1
0

index.cjs 3.7 MB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722272327242725272627272728272927302731273227332734273527362737273827392740274127422743274427452746274727482749275027512752275327542755275627572758275927602761276227632764276527662767276827692770277127722773277427752776277727782779278027812782278327842785278627872788278927902791279227932794279527962797279827992800280128022803280428052806280728082809281028112812281328142815281628172818281928202821282228232824282528262827282828292830283128322833283428352836283728382839284028412842284328442845284628472848284928502851285228532854285528562857285828592860286128622863286428652866286728682869287028712872287328742875287628772878287928802881288228832884288528862887288828892890289128922893289428952896289728982899290029012902290329042905290629072908290929102911291229132914291529162917291829192920292129222923292429252926292729282929293029312932293329342935293629372938293929402941294229432944294529462947294829492950295129522953295429552956295729582959296029612962296329642965296629672968296929702971297229732974297529762977297829792980298129822983298429852986298729882989299029912992299329942995299629972998299930003001300230033004300530063007300830093010301130123013301430153016301730183019302030213022302330243025302630273028302930303031303230333034303530363037303830393040304130423043304430453046304730483049305030513052305330543055305630573058305930603061306230633064306530663067306830693070307130723073307430753076307730783079308030813082308330843085308630873088308930903091309230933094309530963097309830993100310131023103310431053106310731083109311031113112311331143115311631173118311931203121312231233124312531263127312831293130313131323133313431353136313731383139314031413142314331443145314631473148314931503151315231533154315531563157315831593160316131623163316431653166316731683169317031713172317331743175317631773178317931803181318231833184318531863187318831893190319131923193319431953196319731983199320032013202320332043205320632073208320932103211321232133214321532163217321832193220322132223223322432253226322732283229323032313232323332343235323632373238323932403241324232433244324532463247324832493250325132523253325432553256325732583259326032613262326332643265326632673268326932703271327232733274327532763277327832793280328132823283328432853286328732883289329032913292329332943295329632973298329933003301330233033304330533063307330833093310331133123313331433153316331733183319332033213322332333243325332633273328332933303331333233333334333533363337333833393340334133423343334433453346334733483349335033513352335333543355335633573358335933603361336233633364336533663367336833693370337133723373337433753376337733783379338033813382338333843385338633873388338933903391339233933394339533963397339833993400340134023403340434053406340734083409341034113412341334143415341634173418341934203421342234233424342534263427342834293430343134323433343434353436343734383439344034413442344334443445344634473448344934503451345234533454345534563457345834593460346134623463346434653466346734683469347034713472347334743475347634773478347934803481348234833484348534863487348834893490349134923493349434953496349734983499350035013502350335043505350635073508350935103511351235133514351535163517351835193520352135223523352435253526352735283529353035313532353335343535353635373538353935403541354235433544354535463547354835493550355135523553355435553556355735583559356035613562356335643565356635673568356935703571357235733574357535763577357835793580358135823583358435853586358735883589359035913592359335943595359635973598359936003601360236033604360536063607360836093610361136123613361436153616361736183619362036213622362336243625362636273628362936303631363236333634363536363637363836393640364136423643364436453646364736483649365036513652365336543655365636573658365936603661366236633664366536663667366836693670367136723673367436753676367736783679368036813682368336843685368636873688368936903691369236933694369536963697369836993700370137023703370437053706370737083709371037113712371337143715371637173718371937203721372237233724372537263727372837293730373137323733373437353736373737383739374037413742374337443745374637473748374937503751375237533754375537563757375837593760376137623763376437653766376737683769377037713772377337743775377637773778377937803781378237833784378537863787378837893790379137923793379437953796379737983799380038013802380338043805380638073808380938103811381238133814381538163817381838193820382138223823382438253826382738283829383038313832383338343835383638373838383938403841384238433844384538463847384838493850385138523853385438553856385738583859386038613862386338643865386638673868386938703871387238733874387538763877387838793880388138823883388438853886388738883889389038913892389338943895389638973898389939003901390239033904390539063907390839093910391139123913391439153916391739183919392039213922392339243925392639273928392939303931393239333934393539363937393839393940394139423943394439453946394739483949395039513952395339543955395639573958395939603961396239633964396539663967396839693970397139723973397439753976397739783979398039813982398339843985398639873988398939903991399239933994399539963997399839994000400140024003400440054006400740084009401040114012401340144015401640174018401940204021402240234024402540264027402840294030403140324033403440354036403740384039404040414042404340444045404640474048404940504051405240534054405540564057405840594060406140624063406440654066406740684069407040714072407340744075407640774078407940804081408240834084408540864087408840894090409140924093409440954096409740984099410041014102410341044105410641074108410941104111411241134114411541164117411841194120412141224123412441254126412741284129413041314132413341344135413641374138413941404141414241434144414541464147414841494150415141524153415441554156415741584159416041614162416341644165416641674168416941704171417241734174417541764177417841794180418141824183418441854186418741884189419041914192419341944195419641974198419942004201420242034204420542064207420842094210421142124213421442154216421742184219422042214222422342244225422642274228422942304231423242334234423542364237423842394240424142424243424442454246424742484249425042514252425342544255425642574258425942604261426242634264426542664267426842694270427142724273427442754276427742784279428042814282428342844285428642874288428942904291429242934294429542964297429842994300430143024303430443054306430743084309431043114312431343144315431643174318431943204321432243234324432543264327432843294330433143324333433443354336433743384339434043414342434343444345434643474348434943504351435243534354435543564357435843594360436143624363436443654366436743684369437043714372437343744375437643774378437943804381438243834384438543864387438843894390439143924393439443954396439743984399440044014402440344044405440644074408440944104411441244134414441544164417441844194420442144224423442444254426442744284429443044314432443344344435443644374438443944404441444244434444444544464447444844494450445144524453445444554456445744584459446044614462446344644465446644674468446944704471447244734474447544764477447844794480448144824483448444854486448744884489449044914492449344944495449644974498449945004501450245034504450545064507450845094510451145124513451445154516451745184519452045214522452345244525452645274528452945304531453245334534453545364537453845394540454145424543454445454546454745484549455045514552455345544555455645574558455945604561456245634564456545664567456845694570457145724573457445754576457745784579458045814582458345844585458645874588458945904591459245934594459545964597459845994600460146024603460446054606460746084609461046114612461346144615461646174618461946204621462246234624462546264627462846294630463146324633463446354636463746384639464046414642464346444645464646474648464946504651465246534654465546564657465846594660466146624663466446654666466746684669467046714672467346744675467646774678467946804681468246834684468546864687468846894690469146924693469446954696469746984699470047014702470347044705470647074708470947104711471247134714471547164717471847194720472147224723472447254726472747284729473047314732473347344735473647374738473947404741474247434744474547464747474847494750475147524753475447554756475747584759476047614762476347644765476647674768476947704771477247734774477547764777477847794780478147824783478447854786478747884789479047914792479347944795479647974798479948004801480248034804480548064807480848094810481148124813481448154816481748184819482048214822482348244825482648274828482948304831483248334834483548364837483848394840484148424843484448454846484748484849485048514852485348544855485648574858485948604861486248634864486548664867486848694870487148724873487448754876487748784879488048814882488348844885488648874888488948904891489248934894489548964897489848994900490149024903490449054906490749084909491049114912491349144915491649174918491949204921492249234924492549264927492849294930493149324933493449354936493749384939494049414942494349444945494649474948494949504951495249534954495549564957495849594960496149624963496449654966496749684969497049714972497349744975497649774978497949804981498249834984498549864987498849894990499149924993499449954996499749984999500050015002500350045005500650075008500950105011501250135014501550165017501850195020502150225023502450255026502750285029503050315032503350345035503650375038503950405041504250435044504550465047504850495050505150525053505450555056505750585059506050615062506350645065506650675068506950705071507250735074507550765077507850795080508150825083508450855086508750885089509050915092509350945095509650975098509951005101510251035104510551065107510851095110511151125113511451155116511751185119512051215122512351245125512651275128512951305131513251335134513551365137513851395140514151425143514451455146514751485149515051515152515351545155515651575158515951605161516251635164516551665167516851695170517151725173517451755176517751785179518051815182518351845185518651875188518951905191519251935194519551965197519851995200520152025203520452055206520752085209521052115212521352145215521652175218521952205221522252235224522552265227522852295230523152325233523452355236523752385239524052415242524352445245524652475248524952505251525252535254525552565257525852595260526152625263526452655266526752685269527052715272527352745275527652775278527952805281528252835284528552865287528852895290529152925293529452955296529752985299530053015302530353045305530653075308530953105311531253135314531553165317531853195320532153225323532453255326532753285329533053315332533353345335533653375338533953405341534253435344534553465347534853495350535153525353535453555356535753585359536053615362536353645365536653675368536953705371537253735374537553765377537853795380538153825383538453855386538753885389539053915392539353945395539653975398539954005401540254035404540554065407540854095410541154125413541454155416541754185419542054215422542354245425542654275428542954305431543254335434543554365437543854395440544154425443544454455446544754485449545054515452545354545455545654575458545954605461546254635464546554665467546854695470547154725473547454755476547754785479548054815482548354845485548654875488548954905491549254935494549554965497549854995500550155025503550455055506550755085509551055115512551355145515551655175518551955205521552255235524552555265527552855295530553155325533553455355536553755385539554055415542554355445545554655475548554955505551555255535554555555565557555855595560556155625563556455655566556755685569557055715572557355745575557655775578557955805581558255835584558555865587558855895590559155925593559455955596559755985599560056015602560356045605560656075608560956105611561256135614561556165617561856195620562156225623562456255626562756285629563056315632563356345635563656375638563956405641564256435644564556465647564856495650565156525653565456555656565756585659566056615662566356645665566656675668566956705671567256735674567556765677567856795680568156825683568456855686568756885689569056915692569356945695569656975698569957005701570257035704570557065707570857095710571157125713571457155716571757185719572057215722572357245725572657275728572957305731573257335734573557365737573857395740574157425743574457455746574757485749575057515752575357545755575657575758575957605761576257635764576557665767576857695770577157725773577457755776577757785779578057815782578357845785578657875788578957905791579257935794579557965797579857995800580158025803580458055806580758085809581058115812581358145815581658175818581958205821582258235824582558265827582858295830583158325833583458355836583758385839584058415842584358445845584658475848584958505851585258535854585558565857585858595860586158625863586458655866586758685869587058715872587358745875587658775878587958805881588258835884588558865887588858895890589158925893589458955896589758985899590059015902590359045905590659075908590959105911591259135914591559165917591859195920592159225923592459255926592759285929593059315932593359345935593659375938593959405941594259435944594559465947594859495950595159525953595459555956595759585959596059615962596359645965596659675968596959705971597259735974597559765977597859795980598159825983598459855986598759885989599059915992599359945995599659975998599960006001600260036004600560066007600860096010601160126013601460156016601760186019602060216022602360246025602660276028602960306031603260336034603560366037603860396040604160426043604460456046604760486049605060516052605360546055605660576058605960606061606260636064606560666067606860696070607160726073607460756076607760786079608060816082608360846085608660876088608960906091609260936094609560966097609860996100610161026103610461056106610761086109611061116112611361146115611661176118611961206121612261236124612561266127612861296130613161326133613461356136613761386139614061416142614361446145614661476148614961506151615261536154615561566157615861596160616161626163616461656166616761686169617061716172617361746175617661776178617961806181618261836184618561866187618861896190619161926193619461956196619761986199620062016202620362046205620662076208620962106211621262136214621562166217621862196220622162226223622462256226622762286229623062316232623362346235623662376238623962406241624262436244624562466247624862496250625162526253625462556256625762586259626062616262626362646265626662676268626962706271627262736274627562766277627862796280628162826283628462856286628762886289629062916292629362946295629662976298629963006301630263036304630563066307630863096310631163126313631463156316631763186319632063216322632363246325632663276328632963306331633263336334633563366337633863396340634163426343634463456346634763486349635063516352635363546355635663576358635963606361636263636364636563666367636863696370637163726373637463756376637763786379638063816382638363846385638663876388638963906391639263936394639563966397639863996400640164026403640464056406640764086409641064116412641364146415641664176418641964206421642264236424642564266427642864296430643164326433643464356436643764386439644064416442644364446445644664476448644964506451645264536454645564566457645864596460646164626463646464656466646764686469647064716472647364746475647664776478647964806481648264836484648564866487648864896490649164926493649464956496649764986499650065016502650365046505650665076508650965106511651265136514651565166517651865196520652165226523652465256526652765286529653065316532653365346535653665376538653965406541654265436544654565466547654865496550655165526553655465556556655765586559656065616562656365646565656665676568656965706571657265736574657565766577657865796580658165826583658465856586658765886589659065916592659365946595659665976598659966006601660266036604660566066607660866096610661166126613661466156616661766186619662066216622662366246625662666276628662966306631663266336634663566366637663866396640664166426643664466456646664766486649665066516652665366546655665666576658665966606661666266636664666566666667666866696670667166726673667466756676667766786679668066816682668366846685668666876688668966906691669266936694669566966697669866996700670167026703670467056706670767086709671067116712671367146715671667176718671967206721672267236724672567266727672867296730673167326733673467356736673767386739674067416742674367446745674667476748674967506751675267536754675567566757675867596760676167626763676467656766676767686769677067716772677367746775677667776778677967806781678267836784678567866787678867896790679167926793679467956796679767986799680068016802680368046805680668076808680968106811681268136814681568166817681868196820682168226823682468256826682768286829683068316832683368346835683668376838683968406841684268436844684568466847684868496850685168526853685468556856685768586859686068616862686368646865686668676868686968706871687268736874687568766877687868796880688168826883688468856886688768886889689068916892689368946895689668976898689969006901690269036904690569066907690869096910691169126913691469156916691769186919692069216922692369246925692669276928692969306931693269336934693569366937693869396940694169426943694469456946694769486949695069516952695369546955695669576958695969606961696269636964696569666967696869696970697169726973697469756976697769786979698069816982698369846985698669876988698969906991699269936994699569966997699869997000700170027003700470057006700770087009701070117012701370147015701670177018701970207021702270237024702570267027702870297030703170327033703470357036703770387039704070417042704370447045704670477048704970507051705270537054705570567057705870597060706170627063706470657066706770687069707070717072707370747075707670777078707970807081708270837084708570867087708870897090709170927093709470957096709770987099710071017102710371047105710671077108710971107111711271137114711571167117711871197120712171227123712471257126712771287129713071317132713371347135713671377138713971407141714271437144714571467147714871497150715171527153715471557156715771587159716071617162716371647165716671677168716971707171717271737174717571767177717871797180718171827183718471857186718771887189719071917192719371947195719671977198719972007201720272037204720572067207720872097210721172127213721472157216721772187219722072217222722372247225722672277228722972307231723272337234723572367237723872397240724172427243724472457246724772487249725072517252725372547255725672577258725972607261726272637264726572667267726872697270727172727273727472757276727772787279728072817282728372847285728672877288728972907291729272937294729572967297729872997300730173027303730473057306730773087309731073117312731373147315731673177318731973207321732273237324732573267327732873297330733173327333733473357336733773387339734073417342734373447345734673477348734973507351735273537354735573567357735873597360736173627363736473657366736773687369737073717372737373747375737673777378737973807381738273837384738573867387738873897390739173927393739473957396739773987399740074017402740374047405740674077408740974107411741274137414741574167417741874197420742174227423742474257426742774287429743074317432743374347435743674377438743974407441744274437444744574467447744874497450745174527453745474557456745774587459746074617462746374647465746674677468746974707471747274737474747574767477747874797480748174827483748474857486748774887489749074917492749374947495749674977498749975007501750275037504750575067507750875097510751175127513751475157516751775187519752075217522752375247525752675277528752975307531753275337534753575367537753875397540754175427543754475457546754775487549755075517552755375547555755675577558755975607561756275637564756575667567756875697570757175727573757475757576757775787579758075817582758375847585758675877588758975907591759275937594759575967597759875997600760176027603760476057606760776087609761076117612761376147615761676177618761976207621762276237624762576267627762876297630763176327633763476357636763776387639764076417642764376447645764676477648764976507651765276537654765576567657765876597660766176627663766476657666766776687669767076717672767376747675767676777678767976807681768276837684768576867687768876897690769176927693769476957696769776987699770077017702770377047705770677077708770977107711771277137714771577167717771877197720772177227723772477257726772777287729773077317732773377347735773677377738773977407741774277437744774577467747774877497750775177527753775477557756775777587759776077617762776377647765776677677768776977707771777277737774777577767777777877797780778177827783778477857786778777887789779077917792779377947795779677977798779978007801780278037804780578067807780878097810781178127813781478157816781778187819782078217822782378247825782678277828782978307831783278337834783578367837783878397840784178427843784478457846784778487849785078517852785378547855785678577858785978607861786278637864786578667867786878697870787178727873787478757876787778787879788078817882788378847885788678877888788978907891789278937894789578967897789878997900790179027903790479057906790779087909791079117912791379147915791679177918791979207921792279237924792579267927792879297930793179327933793479357936793779387939794079417942794379447945794679477948794979507951795279537954795579567957795879597960796179627963796479657966796779687969797079717972797379747975797679777978797979807981798279837984798579867987798879897990799179927993799479957996799779987999800080018002800380048005800680078008800980108011801280138014801580168017801880198020802180228023802480258026802780288029803080318032803380348035803680378038803980408041804280438044804580468047804880498050805180528053805480558056805780588059806080618062806380648065806680678068806980708071807280738074807580768077807880798080808180828083808480858086808780888089809080918092809380948095809680978098809981008101810281038104810581068107810881098110811181128113811481158116811781188119812081218122812381248125812681278128812981308131813281338134813581368137813881398140814181428143814481458146814781488149815081518152815381548155815681578158815981608161816281638164816581668167816881698170817181728173817481758176817781788179818081818182818381848185818681878188818981908191819281938194819581968197819881998200820182028203820482058206820782088209821082118212821382148215821682178218821982208221822282238224822582268227822882298230823182328233823482358236823782388239824082418242824382448245824682478248824982508251825282538254825582568257825882598260826182628263826482658266826782688269827082718272827382748275827682778278827982808281828282838284828582868287828882898290829182928293829482958296829782988299830083018302830383048305830683078308830983108311831283138314831583168317831883198320832183228323832483258326832783288329833083318332833383348335833683378338833983408341834283438344834583468347834883498350835183528353835483558356835783588359836083618362836383648365836683678368836983708371837283738374837583768377837883798380838183828383838483858386838783888389839083918392839383948395839683978398839984008401840284038404840584068407840884098410841184128413841484158416841784188419842084218422842384248425842684278428842984308431843284338434843584368437843884398440844184428443844484458446844784488449845084518452845384548455845684578458845984608461846284638464846584668467846884698470847184728473847484758476847784788479848084818482848384848485848684878488848984908491849284938494849584968497849884998500850185028503850485058506850785088509851085118512851385148515851685178518851985208521852285238524852585268527852885298530853185328533853485358536853785388539854085418542854385448545854685478548854985508551855285538554855585568557855885598560856185628563856485658566856785688569857085718572857385748575857685778578857985808581858285838584858585868587858885898590859185928593859485958596859785988599860086018602860386048605860686078608860986108611861286138614861586168617861886198620862186228623862486258626862786288629863086318632863386348635863686378638863986408641864286438644864586468647864886498650865186528653865486558656865786588659866086618662866386648665866686678668866986708671867286738674867586768677867886798680868186828683868486858686868786888689869086918692869386948695869686978698869987008701870287038704870587068707870887098710871187128713871487158716871787188719872087218722872387248725872687278728872987308731873287338734873587368737873887398740874187428743874487458746874787488749875087518752875387548755875687578758875987608761876287638764876587668767876887698770877187728773877487758776877787788779878087818782878387848785878687878788878987908791879287938794879587968797879887998800880188028803880488058806880788088809881088118812881388148815881688178818881988208821882288238824882588268827882888298830883188328833883488358836883788388839884088418842884388448845884688478848884988508851885288538854885588568857885888598860886188628863886488658866886788688869887088718872887388748875887688778878887988808881888288838884888588868887888888898890889188928893889488958896889788988899890089018902890389048905890689078908890989108911891289138914891589168917891889198920892189228923892489258926892789288929893089318932893389348935893689378938893989408941894289438944894589468947894889498950895189528953895489558956895789588959896089618962896389648965896689678968896989708971897289738974897589768977897889798980898189828983898489858986898789888989899089918992899389948995899689978998899990009001900290039004900590069007900890099010901190129013901490159016901790189019902090219022902390249025902690279028902990309031903290339034903590369037903890399040904190429043904490459046904790489049905090519052905390549055905690579058905990609061906290639064906590669067906890699070907190729073907490759076907790789079908090819082908390849085908690879088908990909091909290939094909590969097909890999100910191029103910491059106910791089109911091119112911391149115911691179118911991209121912291239124912591269127912891299130913191329133913491359136913791389139914091419142914391449145914691479148914991509151915291539154915591569157915891599160916191629163916491659166916791689169917091719172917391749175917691779178917991809181918291839184918591869187918891899190919191929193919491959196919791989199920092019202920392049205920692079208920992109211921292139214921592169217921892199220922192229223922492259226922792289229923092319232923392349235923692379238923992409241924292439244924592469247924892499250925192529253925492559256925792589259926092619262926392649265926692679268926992709271927292739274927592769277927892799280928192829283928492859286928792889289929092919292929392949295929692979298929993009301930293039304930593069307930893099310931193129313931493159316931793189319932093219322932393249325932693279328932993309331933293339334933593369337933893399340934193429343934493459346934793489349935093519352935393549355935693579358935993609361936293639364936593669367936893699370937193729373937493759376937793789379938093819382938393849385938693879388938993909391939293939394939593969397939893999400940194029403940494059406940794089409941094119412941394149415941694179418941994209421942294239424942594269427942894299430943194329433943494359436943794389439944094419442944394449445944694479448944994509451945294539454945594569457945894599460946194629463946494659466946794689469947094719472947394749475947694779478947994809481948294839484948594869487948894899490949194929493949494959496949794989499950095019502950395049505950695079508950995109511951295139514951595169517951895199520952195229523952495259526952795289529953095319532953395349535953695379538953995409541954295439544954595469547954895499550955195529553955495559556955795589559956095619562956395649565956695679568956995709571957295739574957595769577957895799580958195829583958495859586958795889589959095919592959395949595959695979598959996009601960296039604960596069607960896099610961196129613961496159616961796189619962096219622962396249625962696279628962996309631963296339634963596369637963896399640964196429643964496459646964796489649965096519652965396549655965696579658965996609661966296639664966596669667966896699670967196729673967496759676967796789679968096819682968396849685968696879688968996909691969296939694969596969697969896999700970197029703970497059706970797089709971097119712971397149715971697179718971997209721972297239724972597269727972897299730973197329733973497359736973797389739974097419742974397449745974697479748974997509751975297539754975597569757975897599760976197629763976497659766976797689769977097719772977397749775977697779778977997809781978297839784978597869787978897899790979197929793979497959796979797989799980098019802980398049805980698079808980998109811981298139814981598169817981898199820982198229823982498259826982798289829983098319832983398349835983698379838983998409841984298439844984598469847984898499850985198529853985498559856985798589859986098619862986398649865986698679868986998709871987298739874987598769877987898799880988198829883988498859886988798889889989098919892989398949895989698979898989999009901990299039904990599069907990899099910991199129913991499159916991799189919992099219922992399249925992699279928992999309931993299339934993599369937993899399940994199429943994499459946994799489949995099519952995399549955995699579958995999609961996299639964996599669967996899699970997199729973997499759976997799789979998099819982998399849985998699879988998999909991999299939994999599969997999899991000010001100021000310004100051000610007100081000910010100111001210013100141001510016100171001810019100201002110022100231002410025100261002710028100291003010031100321003310034100351003610037100381003910040100411004210043100441004510046100471004810049100501005110052100531005410055100561005710058100591006010061100621006310064100651006610067100681006910070100711007210073100741007510076100771007810079100801008110082100831008410085100861008710088100891009010091100921009310094100951009610097100981009910100101011010210103101041010510106101071010810109101101011110112101131011410115101161011710118101191012010121101221012310124101251012610127101281012910130101311013210133101341013510136101371013810139101401014110142101431014410145101461014710148101491015010151101521015310154101551015610157101581015910160101611016210163101641016510166101671016810169101701017110172101731017410175101761017710178101791018010181101821018310184101851018610187101881018910190101911019210193101941019510196101971019810199102001020110202102031020410205102061020710208102091021010211102121021310214102151021610217102181021910220102211022210223102241022510226102271022810229102301023110232102331023410235102361023710238102391024010241102421024310244102451024610247102481024910250102511025210253102541025510256102571025810259102601026110262102631026410265102661026710268102691027010271102721027310274102751027610277102781027910280102811028210283102841028510286102871028810289102901029110292102931029410295102961029710298102991030010301103021030310304103051030610307103081030910310103111031210313103141031510316103171031810319103201032110322103231032410325103261032710328103291033010331103321033310334103351033610337103381033910340103411034210343103441034510346103471034810349103501035110352103531035410355103561035710358103591036010361103621036310364103651036610367103681036910370103711037210373103741037510376103771037810379103801038110382103831038410385103861038710388103891039010391103921039310394103951039610397103981039910400104011040210403104041040510406104071040810409104101041110412104131041410415104161041710418104191042010421104221042310424104251042610427104281042910430104311043210433104341043510436104371043810439104401044110442104431044410445104461044710448104491045010451104521045310454104551045610457104581045910460104611046210463104641046510466104671046810469104701047110472104731047410475104761047710478104791048010481104821048310484104851048610487104881048910490104911049210493104941049510496104971049810499105001050110502105031050410505105061050710508105091051010511105121051310514105151051610517105181051910520105211052210523105241052510526105271052810529105301053110532105331053410535105361053710538105391054010541105421054310544105451054610547105481054910550105511055210553105541055510556105571055810559105601056110562105631056410565105661056710568105691057010571105721057310574105751057610577105781057910580105811058210583105841058510586105871058810589105901059110592105931059410595105961059710598105991060010601106021060310604106051060610607106081060910610106111061210613106141061510616106171061810619106201062110622106231062410625106261062710628106291063010631106321063310634106351063610637106381063910640106411064210643106441064510646106471064810649106501065110652106531065410655106561065710658106591066010661106621066310664106651066610667106681066910670106711067210673106741067510676106771067810679106801068110682106831068410685106861068710688106891069010691106921069310694106951069610697106981069910700107011070210703107041070510706107071070810709107101071110712107131071410715107161071710718107191072010721107221072310724107251072610727107281072910730107311073210733107341073510736107371073810739107401074110742107431074410745107461074710748107491075010751107521075310754107551075610757107581075910760107611076210763107641076510766107671076810769107701077110772107731077410775107761077710778107791078010781107821078310784107851078610787107881078910790107911079210793107941079510796107971079810799108001080110802108031080410805108061080710808108091081010811108121081310814108151081610817108181081910820108211082210823108241082510826108271082810829108301083110832108331083410835108361083710838108391084010841108421084310844108451084610847108481084910850108511085210853108541085510856108571085810859108601086110862108631086410865108661086710868108691087010871108721087310874108751087610877108781087910880108811088210883108841088510886108871088810889108901089110892108931089410895108961089710898108991090010901109021090310904109051090610907109081090910910109111091210913109141091510916109171091810919109201092110922109231092410925109261092710928109291093010931109321093310934109351093610937109381093910940109411094210943109441094510946109471094810949109501095110952109531095410955109561095710958109591096010961109621096310964109651096610967109681096910970109711097210973109741097510976109771097810979109801098110982109831098410985109861098710988109891099010991109921099310994109951099610997109981099911000110011100211003110041100511006110071100811009110101101111012110131101411015110161101711018110191102011021110221102311024110251102611027110281102911030110311103211033110341103511036110371103811039110401104111042110431104411045110461104711048110491105011051110521105311054110551105611057110581105911060110611106211063110641106511066110671106811069110701107111072110731107411075110761107711078110791108011081110821108311084110851108611087110881108911090110911109211093110941109511096110971109811099111001110111102111031110411105111061110711108111091111011111111121111311114111151111611117111181111911120111211112211123111241112511126111271112811129111301113111132111331113411135111361113711138111391114011141111421114311144111451114611147111481114911150111511115211153111541115511156111571115811159111601116111162111631116411165111661116711168111691117011171111721117311174111751117611177111781117911180111811118211183111841118511186111871118811189111901119111192111931119411195111961119711198111991120011201112021120311204112051120611207112081120911210112111121211213112141121511216112171121811219112201122111222112231122411225112261122711228112291123011231112321123311234112351123611237112381123911240112411124211243112441124511246112471124811249112501125111252112531125411255112561125711258112591126011261112621126311264112651126611267112681126911270112711127211273112741127511276112771127811279112801128111282112831128411285112861128711288112891129011291112921129311294112951129611297112981129911300113011130211303113041130511306113071130811309113101131111312113131131411315113161131711318113191132011321113221132311324113251132611327113281132911330113311133211333113341133511336113371133811339113401134111342113431134411345113461134711348113491135011351113521135311354113551135611357113581135911360113611136211363113641136511366113671136811369113701137111372113731137411375113761137711378113791138011381113821138311384113851138611387113881138911390113911139211393113941139511396113971139811399114001140111402114031140411405114061140711408114091141011411114121141311414114151141611417114181141911420114211142211423114241142511426114271142811429114301143111432114331143411435114361143711438114391144011441114421144311444114451144611447114481144911450114511145211453114541145511456114571145811459114601146111462114631146411465114661146711468114691147011471114721147311474114751147611477114781147911480114811148211483114841148511486114871148811489114901149111492114931149411495114961149711498114991150011501115021150311504115051150611507115081150911510115111151211513115141151511516115171151811519115201152111522115231152411525115261152711528115291153011531115321153311534115351153611537115381153911540115411154211543115441154511546115471154811549115501155111552115531155411555115561155711558115591156011561115621156311564115651156611567115681156911570115711157211573115741157511576115771157811579115801158111582115831158411585115861158711588115891159011591115921159311594115951159611597115981159911600116011160211603116041160511606116071160811609116101161111612116131161411615116161161711618116191162011621116221162311624116251162611627116281162911630116311163211633116341163511636116371163811639116401164111642116431164411645116461164711648116491165011651116521165311654116551165611657116581165911660116611166211663116641166511666116671166811669116701167111672116731167411675116761167711678116791168011681116821168311684116851168611687116881168911690116911169211693116941169511696116971169811699117001170111702117031170411705117061170711708117091171011711117121171311714117151171611717117181171911720117211172211723117241172511726117271172811729117301173111732117331173411735117361173711738117391174011741117421174311744117451174611747117481174911750117511175211753117541175511756117571175811759117601176111762117631176411765117661176711768117691177011771117721177311774117751177611777117781177911780117811178211783117841178511786117871178811789117901179111792117931179411795117961179711798117991180011801118021180311804118051180611807118081180911810118111181211813118141181511816118171181811819118201182111822118231182411825118261182711828118291183011831118321183311834118351183611837118381183911840118411184211843118441184511846118471184811849118501185111852118531185411855118561185711858118591186011861118621186311864118651186611867118681186911870118711187211873118741187511876118771187811879118801188111882118831188411885118861188711888118891189011891118921189311894118951189611897118981189911900119011190211903119041190511906119071190811909119101191111912119131191411915119161191711918119191192011921119221192311924119251192611927119281192911930119311193211933119341193511936119371193811939119401194111942119431194411945119461194711948119491195011951119521195311954119551195611957119581195911960119611196211963119641196511966119671196811969119701197111972119731197411975119761197711978119791198011981119821198311984119851198611987119881198911990119911199211993119941199511996119971199811999120001200112002120031200412005120061200712008120091201012011120121201312014120151201612017120181201912020120211202212023120241202512026120271202812029120301203112032120331203412035120361203712038120391204012041120421204312044120451204612047120481204912050120511205212053120541205512056120571205812059120601206112062120631206412065120661206712068120691207012071120721207312074120751207612077120781207912080120811208212083120841208512086120871208812089120901209112092120931209412095120961209712098120991210012101121021210312104121051210612107121081210912110121111211212113121141211512116121171211812119121201212112122121231212412125121261212712128121291213012131121321213312134121351213612137121381213912140121411214212143121441214512146121471214812149121501215112152121531215412155121561215712158121591216012161121621216312164121651216612167121681216912170121711217212173121741217512176121771217812179121801218112182121831218412185121861218712188121891219012191121921219312194121951219612197121981219912200122011220212203122041220512206122071220812209122101221112212122131221412215122161221712218122191222012221122221222312224122251222612227122281222912230122311223212233122341223512236122371223812239122401224112242122431224412245122461224712248122491225012251122521225312254122551225612257122581225912260122611226212263122641226512266122671226812269122701227112272122731227412275122761227712278122791228012281122821228312284122851228612287122881228912290122911229212293122941229512296122971229812299123001230112302123031230412305123061230712308123091231012311123121231312314123151231612317123181231912320123211232212323123241232512326123271232812329123301233112332123331233412335123361233712338123391234012341123421234312344123451234612347123481234912350123511235212353123541235512356123571235812359123601236112362123631236412365123661236712368123691237012371123721237312374123751237612377123781237912380123811238212383123841238512386123871238812389123901239112392123931239412395123961239712398123991240012401124021240312404124051240612407124081240912410124111241212413124141241512416124171241812419124201242112422124231242412425124261242712428124291243012431124321243312434124351243612437124381243912440124411244212443124441244512446124471244812449124501245112452124531245412455124561245712458124591246012461124621246312464124651246612467124681246912470124711247212473124741247512476124771247812479124801248112482124831248412485124861248712488124891249012491124921249312494124951249612497124981249912500125011250212503125041250512506125071250812509125101251112512125131251412515125161251712518125191252012521125221252312524125251252612527125281252912530125311253212533125341253512536125371253812539125401254112542125431254412545125461254712548125491255012551125521255312554125551255612557125581255912560125611256212563125641256512566125671256812569125701257112572125731257412575125761257712578125791258012581125821258312584125851258612587125881258912590125911259212593125941259512596125971259812599126001260112602126031260412605126061260712608126091261012611126121261312614126151261612617126181261912620126211262212623126241262512626126271262812629126301263112632126331263412635126361263712638126391264012641126421264312644126451264612647126481264912650126511265212653126541265512656126571265812659126601266112662126631266412665126661266712668126691267012671126721267312674126751267612677126781267912680126811268212683126841268512686126871268812689126901269112692126931269412695126961269712698126991270012701127021270312704127051270612707127081270912710127111271212713127141271512716127171271812719127201272112722127231272412725127261272712728127291273012731127321273312734127351273612737127381273912740127411274212743127441274512746127471274812749127501275112752127531275412755127561275712758127591276012761127621276312764127651276612767127681276912770127711277212773127741277512776127771277812779127801278112782127831278412785127861278712788127891279012791127921279312794127951279612797127981279912800128011280212803128041280512806128071280812809128101281112812128131281412815128161281712818128191282012821128221282312824128251282612827128281282912830128311283212833128341283512836128371283812839128401284112842128431284412845128461284712848128491285012851128521285312854128551285612857128581285912860128611286212863128641286512866128671286812869128701287112872128731287412875128761287712878128791288012881128821288312884128851288612887128881288912890128911289212893128941289512896128971289812899129001290112902129031290412905129061290712908129091291012911129121291312914129151291612917129181291912920129211292212923129241292512926129271292812929129301293112932129331293412935129361293712938129391294012941129421294312944129451294612947129481294912950129511295212953129541295512956129571295812959129601296112962129631296412965129661296712968129691297012971129721297312974129751297612977129781297912980129811298212983129841298512986129871298812989129901299112992129931299412995129961299712998129991300013001130021300313004130051300613007130081300913010130111301213013130141301513016130171301813019130201302113022130231302413025130261302713028130291303013031130321303313034130351303613037130381303913040130411304213043130441304513046130471304813049130501305113052130531305413055130561305713058130591306013061130621306313064130651306613067130681306913070130711307213073130741307513076130771307813079130801308113082130831308413085130861308713088130891309013091130921309313094130951309613097130981309913100131011310213103131041310513106131071310813109131101311113112131131311413115131161311713118131191312013121131221312313124131251312613127131281312913130131311313213133131341313513136131371313813139131401314113142131431314413145131461314713148131491315013151131521315313154131551315613157131581315913160131611316213163131641316513166131671316813169131701317113172131731317413175131761317713178131791318013181131821318313184131851318613187131881318913190131911319213193131941319513196131971319813199132001320113202132031320413205132061320713208132091321013211132121321313214132151321613217132181321913220132211322213223132241322513226132271322813229132301323113232132331323413235132361323713238132391324013241132421324313244132451324613247132481324913250132511325213253132541325513256132571325813259132601326113262132631326413265132661326713268132691327013271132721327313274132751327613277132781327913280132811328213283132841328513286132871328813289132901329113292132931329413295132961329713298132991330013301133021330313304133051330613307133081330913310133111331213313133141331513316133171331813319133201332113322133231332413325133261332713328133291333013331133321333313334133351333613337133381333913340133411334213343133441334513346133471334813349133501335113352133531335413355133561335713358133591336013361133621336313364133651336613367133681336913370133711337213373133741337513376133771337813379133801338113382133831338413385133861338713388133891339013391133921339313394133951339613397133981339913400134011340213403134041340513406134071340813409134101341113412134131341413415134161341713418134191342013421134221342313424134251342613427134281342913430134311343213433134341343513436134371343813439134401344113442134431344413445134461344713448134491345013451134521345313454134551345613457134581345913460134611346213463134641346513466134671346813469134701347113472134731347413475134761347713478134791348013481134821348313484134851348613487134881348913490134911349213493134941349513496134971349813499135001350113502135031350413505135061350713508135091351013511135121351313514135151351613517135181351913520135211352213523135241352513526135271352813529135301353113532135331353413535135361353713538135391354013541135421354313544135451354613547135481354913550135511355213553135541355513556135571355813559135601356113562135631356413565135661356713568135691357013571135721357313574135751357613577135781357913580135811358213583135841358513586135871358813589135901359113592135931359413595135961359713598135991360013601136021360313604136051360613607136081360913610136111361213613136141361513616136171361813619136201362113622136231362413625136261362713628136291363013631136321363313634136351363613637136381363913640136411364213643136441364513646136471364813649136501365113652136531365413655136561365713658136591366013661136621366313664136651366613667136681366913670136711367213673136741367513676136771367813679136801368113682136831368413685136861368713688136891369013691136921369313694136951369613697136981369913700137011370213703137041370513706137071370813709137101371113712137131371413715137161371713718137191372013721137221372313724137251372613727137281372913730137311373213733137341373513736137371373813739137401374113742137431374413745137461374713748137491375013751137521375313754137551375613757137581375913760137611376213763137641376513766137671376813769137701377113772137731377413775137761377713778137791378013781137821378313784137851378613787137881378913790137911379213793137941379513796137971379813799138001380113802138031380413805138061380713808138091381013811138121381313814138151381613817138181381913820138211382213823138241382513826138271382813829138301383113832138331383413835138361383713838138391384013841138421384313844138451384613847138481384913850138511385213853138541385513856138571385813859138601386113862138631386413865138661386713868138691387013871138721387313874138751387613877138781387913880138811388213883138841388513886138871388813889138901389113892138931389413895138961389713898138991390013901139021390313904139051390613907139081390913910139111391213913139141391513916139171391813919139201392113922139231392413925139261392713928139291393013931139321393313934139351393613937139381393913940139411394213943139441394513946139471394813949139501395113952139531395413955139561395713958139591396013961139621396313964139651396613967139681396913970139711397213973139741397513976139771397813979139801398113982139831398413985139861398713988139891399013991139921399313994139951399613997139981399914000140011400214003140041400514006140071400814009140101401114012140131401414015140161401714018140191402014021140221402314024140251402614027140281402914030140311403214033140341403514036140371403814039140401404114042140431404414045140461404714048140491405014051140521405314054140551405614057140581405914060140611406214063140641406514066140671406814069140701407114072140731407414075140761407714078140791408014081140821408314084140851408614087140881408914090140911409214093140941409514096140971409814099141001410114102141031410414105141061410714108141091411014111141121411314114141151411614117141181411914120141211412214123141241412514126141271412814129141301413114132141331413414135141361413714138141391414014141141421414314144141451414614147141481414914150141511415214153141541415514156141571415814159141601416114162141631416414165141661416714168141691417014171141721417314174141751417614177141781417914180141811418214183141841418514186141871418814189141901419114192141931419414195141961419714198141991420014201142021420314204142051420614207142081420914210142111421214213142141421514216142171421814219142201422114222142231422414225142261422714228142291423014231142321423314234142351423614237142381423914240142411424214243142441424514246142471424814249142501425114252142531425414255142561425714258142591426014261142621426314264142651426614267142681426914270142711427214273142741427514276142771427814279142801428114282142831428414285142861428714288142891429014291142921429314294142951429614297142981429914300143011430214303143041430514306143071430814309143101431114312143131431414315143161431714318143191432014321143221432314324143251432614327143281432914330143311433214333143341433514336143371433814339143401434114342143431434414345143461434714348143491435014351143521435314354143551435614357143581435914360143611436214363143641436514366143671436814369143701437114372143731437414375143761437714378143791438014381143821438314384143851438614387143881438914390143911439214393143941439514396143971439814399144001440114402144031440414405144061440714408144091441014411144121441314414144151441614417144181441914420144211442214423144241442514426144271442814429144301443114432144331443414435144361443714438144391444014441144421444314444144451444614447144481444914450144511445214453144541445514456144571445814459144601446114462144631446414465144661446714468144691447014471144721447314474144751447614477144781447914480144811448214483144841448514486144871448814489144901449114492144931449414495
  1. /**
  2. * @license
  3. * Cesium - https://github.com/CesiumGS/cesium
  4. * Version 1.110.1
  5. *
  6. * Copyright 2011-2022 Cesium Contributors
  7. *
  8. * Licensed under the Apache License, Version 2.0 (the "License");
  9. * you may not use this file except in compliance with the License.
  10. * You may obtain a copy of the License at
  11. *
  12. * http://www.apache.org/licenses/LICENSE-2.0
  13. *
  14. * Unless required by applicable law or agreed to in writing, software
  15. * distributed under the License is distributed on an "AS IS" BASIS,
  16. * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  17. * See the License for the specific language governing permissions and
  18. * limitations under the License.
  19. *
  20. * Columbus View (Pat. Pend.)
  21. *
  22. * Portions licensed separately.
  23. * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details.
  24. */
  25. var iTe=Object.create;var d3=Object.defineProperty;var oTe=Object.getOwnPropertyDescriptor;var rTe=Object.getOwnPropertyNames;var sTe=Object.getPrototypeOf,aTe=Object.prototype.hasOwnProperty;var cTe=(e,t)=>()=>(e&&(t=e(e=0)),t);var Kn=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),nZ=(e,t)=>{for(var n in t)d3(e,n,{get:t[n],enumerable:!0})},iZ=(e,t,n,i)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of rTe(t))!aTe.call(e,o)&&o!==n&&d3(e,o,{get:()=>t[o],enumerable:!(i=oTe(t,o))||i.enumerable});return e};var ro=(e,t,n)=>(n=e!=null?iTe(sTe(e)):{},iZ(t||!e||!e.__esModule?d3(n,"default",{value:e,enumerable:!0}):n,e)),Dh=e=>iZ(d3({},"__esModule",{value:!0}),e);var h3=Kn((Wbt,rZ)=>{var qm=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)};qm.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}};qm.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};qm.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};qm.prototype.random_int31=function(){return this.random_int()>>>1};qm.prototype.random_incl=function(){return this.random_int()*(1/4294967295)};qm.prototype.random=function(){return this.random_int()*(1/4294967296)};qm.prototype.random_excl=function(){return(this.random_int()+.5)*(1/4294967296)};qm.prototype.random_long=function(){var e=this.random_int()>>>5,t=this.random_int()>>>6;return(e*67108864+t)*(1/9007199254740992)};rZ.exports=qm});var C$=Kn((eA,tA)=>{/*! https://mths.be/punycode v1.4.0 by @mathias */(function(e){var t=typeof eA=="object"&&eA&&!eA.nodeType&&eA,n=typeof tA=="object"&&tA&&!tA.nodeType&&tA,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,l=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"},A=s-a,C=Math.floor,S=String.fromCharCode,w;function D(U){throw new RangeError(T[U])}function O(U,G){for(var k=U.length,Y=[];k--;)Y[k]=G(U[k]);return Y}function R(U,G){var k=U.split("@"),Y="";k.length>1&&(Y=k[0]+"@",U=k[1]),U=U.replace(b,".");var j=U.split("."),$=O(j,G).join(".");return Y+$}function L(U){for(var G=[],k=0,Y=U.length,j,$;k<Y;)j=U.charCodeAt(k++),j>=55296&&j<=56319&&k<Y?($=U.charCodeAt(k++),($&64512)==56320?G.push(((j&1023)<<10)+($&1023)+65536):(G.push(j),k--)):G.push(j);return G}function N(U){return O(U,function(G){var k="";return G>65535&&(G-=65536,k+=S(G>>>10&1023|55296),G=56320|G&1023),k+=S(G),k}).join("")}function _(U){return U-48<10?U-22:U-65<26?U-65:U-97<26?U-97:s}function E(U,G){return U+22+75*(U<26)-((G!=0)<<5)}function v(U,G,k){var Y=0;for(U=k?C(U/f):U>>1,U+=C(U/G);U>A*c>>1;Y+=s)U=C(U/A);return C(Y+(A+1)*U/(U+l))}function I(U){var G=[],k=U.length,Y,j=0,$=p,W=d,K,Z,me,xe,re,ye,ge,Ae,De;for(K=U.lastIndexOf(g),K<0&&(K=0),Z=0;Z<K;++Z)U.charCodeAt(Z)>=128&&D("not-basic"),G.push(U.charCodeAt(Z));for(me=K>0?K+1:0;me<k;){for(xe=j,re=1,ye=s;me>=k&&D("invalid-input"),ge=_(U.charCodeAt(me++)),(ge>=s||ge>C((r-j)/re))&&D("overflow"),j+=ge*re,Ae=ye<=W?a:ye>=W+c?c:ye-W,!(ge<Ae);ye+=s)De=s-Ae,re>C(r/De)&&D("overflow"),re*=De;Y=G.length+1,W=v(j-xe,Y,xe==0),C(j/Y)>r-$&&D("overflow"),$+=C(j/Y),j%=Y,G.splice(j++,0,$)}return N(G)}function M(U){var G,k,Y,j,$,W,K,Z,me,xe,re,ye=[],ge,Ae,De,Re;for(U=L(U),ge=U.length,G=p,k=0,$=d,W=0;W<ge;++W)re=U[W],re<128&&ye.push(S(re));for(Y=j=ye.length,j&&ye.push(g);Y<ge;){for(K=r,W=0;W<ge;++W)re=U[W],re>=G&&re<K&&(K=re);for(Ae=Y+1,K-G>C((r-k)/Ae)&&D("overflow"),k+=(K-G)*Ae,G=K,W=0;W<ge;++W)if(re=U[W],re<G&&++k>r&&D("overflow"),re==G){for(Z=k,me=s;xe=me<=$?a:me>=$+c?c:me-$,!(Z<xe);me+=s)Re=Z-xe,De=s-xe,ye.push(S(E(xe+Re%De,0))),Z=C(Re/De);ye.push(S(E(Z,0))),$=v(k,Ae,Y==j),k=0,++Y}++k,++G}return ye.join("")}function B(U){return R(U,function(G){return m.test(G)?I(G.slice(4).toLowerCase()):G})}function V(U){return R(U,function(G){return x.test(G)?"xn--"+M(G):G})}if(o={version:"1.3.2",ucs2:{decode:L,encode:N},decode:I,encode:M,toASCII:V,toUnicode:B},typeof define=="function"&&typeof define.amd=="object"&&define.amd)define("punycode",function(){return o});else if(t&&n)if(tA.exports==t)n.exports=o;else for(w in o)o.hasOwnProperty(w)&&(t[w]=o[w]);else e.punycode=o})(eA)});var S$=Kn((E$,z3)=>{/*!
  26. * URI.js - Mutating URLs
  27. * IPv6 Support
  28. *
  29. * Version: 1.19.11
  30. *
  31. * Author: Rodney Rehm
  32. * Web: http://medialize.github.io/URI.js/
  33. *
  34. * Licensed under
  35. * MIT License http://www.opensource.org/licenses/mit-license
  36. *
  37. */(function(e,t){"use strict";typeof z3=="object"&&z3.exports?z3.exports=t():typeof define=="function"&&define.amd?define(t):e.IPv6=t(e)})(E$,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 l;for(l=0;l<a&&s[l]!=="";l++);if(l<c)for(s.splice(l,1,"0000");s.length<c;)s.splice(l,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 A="";for(s[0]===""&&(A=":"),d=0;d<a&&(A+=s[d],d!==a-1);d++)A+=":";return s[a-1]===""&&(A+=":"),A}function i(){return e.IPv6===this&&(e.IPv6=t),this}return{best:n,noConflict:i}})});var v$=Kn((w$,H3)=>{/*!
  38. * URI.js - Mutating URLs
  39. * Second Level Domain (SLD) Support
  40. *
  41. * Version: 1.19.11
  42. *
  43. * Author: Rodney Rehm
  44. * Web: http://medialize.github.io/URI.js/
  45. *
  46. * Licensed under
  47. * MIT License http://www.opensource.org/licenses/mit-license
  48. *
  49. */(function(e,t){"use strict";typeof H3=="object"&&H3.exports?H3.exports=t():typeof define=="function"&&define.amd?define(t):e.SecondLevelDomains=t(e)})(w$,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 Yl=Kn((D$,G3)=>{/*!
  50. * URI.js - Mutating URLs
  51. *
  52. * Version: 1.19.11
  53. *
  54. * Author: Rodney Rehm
  55. * Web: http://medialize.github.io/URI.js/
  56. *
  57. * Licensed under
  58. * MIT License http://www.opensource.org/licenses/mit-license
  59. *
  60. */(function(e,t){"use strict";typeof G3=="object"&&G3.exports?G3.exports=t(C$(),S$(),v$()):typeof define=="function"&&define.amd?define(["./punycode","./IPv6","./SecondLevelDomains"],t):e.URI=t(e.punycode,e.IPv6,e.SecondLevelDomains,e)})(D$,function(e,t,n,i){"use strict";var o=i&&i.URI;function r(E,v){var I=arguments.length>=1,M=arguments.length>=2;if(!(this instanceof r))return I?M?new r(E,v):new r(E):new r;if(E===void 0){if(I)throw new TypeError("undefined is not a valid argument for URI");typeof location<"u"?E=location.href+"":E=""}if(E===null&&I)throw new TypeError("null is not a valid argument for URI");return this.href(E),v!==void 0?this.absoluteTo(v):this}function s(E){return/^[0-9]+$/.test(E)}r.version="1.19.11";var a=r.prototype,c=Object.prototype.hasOwnProperty;function l(E){return E.replace(/([.*+?^=!:${}()|[\]\/\\])/g,"\\$1")}function f(E){return E===void 0?"Undefined":String(Object.prototype.toString.call(E)).slice(8,-1)}function d(E){return f(E)==="Array"}function p(E,v){var I={},M,B;if(f(v)==="RegExp")I=null;else if(d(v))for(M=0,B=v.length;M<B;M++)I[v[M]]=!0;else I[v]=!0;for(M=0,B=E.length;M<B;M++){var V=I&&I[E[M]]!==void 0||!I&&v.test(E[M]);V&&(E.splice(M,1),B--,M--)}return E}function g(E,v){var I,M;if(d(v)){for(I=0,M=v.length;I<M;I++)if(!g(E,v[I]))return!1;return!0}var B=f(v);for(I=0,M=E.length;I<M;I++)if(B==="RegExp"){if(typeof E[I]=="string"&&E[I].match(v))return!0}else if(E[I]===v)return!0;return!1}function m(E,v){if(!d(E)||!d(v)||E.length!==v.length)return!1;E.sort(),v.sort();for(var I=0,M=E.length;I<M;I++)if(E[I]!==v[I])return!1;return!0}function x(E){var v=/^\/+|\/+$/g;return E.replace(v,"")}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(E){if(!(!E||!E.nodeName)){var v=E.nodeName.toLowerCase();if(!(v==="input"&&E.type!=="image"))return r.domAttributes[v]}};function b(E){return escape(E)}function T(E){return encodeURIComponent(E).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(E,v){var I=r.encode(E+"");return v===void 0&&(v=r.escapeQuerySpace),v?I.replace(/%20/g,"+"):I},r.decodeQuery=function(E,v){E+="",v===void 0&&(v=r.escapeQuerySpace);try{return r.decode(v?E.replace(/\+/g,"%20"):E)}catch{return E}};var A={encode:"encode",decode:"decode"},C,S=function(E,v){return function(I){try{return r[v](I+"").replace(r.characters[E][v].expression,function(M){return r.characters[E][v].map[M]})}catch{return I}}};for(C in A)r[C+"PathSegment"]=S("pathname",A[C]),r[C+"UrnPathSegment"]=S("urnpath",A[C]);var w=function(E,v,I){return function(M){var B;I?B=function(k){return r[v](r[I](k))}:B=r[v];for(var V=(M+"").split(E),U=0,G=V.length;U<G;U++)V[U]=B(V[U]);return V.join(E)}};r.decodePath=w("/","decodePathSegment"),r.decodeUrnPath=w(":","decodeUrnPathSegment"),r.recodePath=w("/","encodePathSegment","decode"),r.recodeUrnPath=w(":","encodeUrnPathSegment","decode"),r.encodeReserved=S("reserved","encode"),r.parse=function(E,v){var I;return v||(v={preventInvalidHostname:r.preventInvalidHostname}),E=E.replace(r.leading_whitespace_expression,""),E=E.replace(r.ascii_tab_whitespace,""),I=E.indexOf("#"),I>-1&&(v.fragment=E.substring(I+1)||null,E=E.substring(0,I)),I=E.indexOf("?"),I>-1&&(v.query=E.substring(I+1)||null,E=E.substring(0,I)),E=E.replace(/^(https?|ftp|wss?)?:+[/\\]*/i,"$1://"),E=E.replace(/^[/\\]{2,}/i,"//"),E.substring(0,2)==="//"?(v.protocol=null,E=E.substring(2),E=r.parseAuthority(E,v)):(I=E.indexOf(":"),I>-1&&(v.protocol=E.substring(0,I)||null,v.protocol&&!v.protocol.match(r.protocol_expression)?v.protocol=void 0:E.substring(I+1,I+3).replace(/\\/g,"/")==="//"?(E=E.substring(I+3),E=r.parseAuthority(E,v)):(E=E.substring(I+1),v.urn=!0))),v.path=E,v},r.parseHost=function(E,v){E||(E=""),E=E.replace(/\\/g,"/");var I=E.indexOf("/"),M,B;if(I===-1&&(I=E.length),E.charAt(0)==="[")M=E.indexOf("]"),v.hostname=E.substring(1,M)||null,v.port=E.substring(M+2,I)||null,v.port==="/"&&(v.port=null);else{var V=E.indexOf(":"),U=E.indexOf("/"),G=E.indexOf(":",V+1);G!==-1&&(U===-1||G<U)?(v.hostname=E.substring(0,I)||null,v.port=null):(B=E.substring(0,I).split(":"),v.hostname=B[0]||null,v.port=B[1]||null)}return v.hostname&&E.substring(I).charAt(0)!=="/"&&(I++,E="/"+E),v.preventInvalidHostname&&r.ensureValidHostname(v.hostname,v.protocol),v.port&&r.ensureValidPort(v.port),E.substring(I)||"/"},r.parseAuthority=function(E,v){return E=r.parseUserinfo(E,v),r.parseHost(E,v)},r.parseUserinfo=function(E,v){var I=E,M=E.indexOf("\\");M!==-1&&(E=E.replace(/\\/g,"/"));var B=E.indexOf("/"),V=E.lastIndexOf("@",B>-1?B:E.length-1),U;return V>-1&&(B===-1||V<B)?(U=E.substring(0,V).split(":"),v.username=U[0]?r.decode(U[0]):null,U.shift(),v.password=U[0]?r.decode(U.join(":")):null,E=I.substring(V+1)):(v.username=null,v.password=null),E},r.parseQuery=function(E,v){if(!E)return{};if(E=E.replace(/&+/g,"&").replace(/^\?*&*|&+$/g,""),!E)return{};for(var I={},M=E.split("&"),B=M.length,V,U,G,k=0;k<B;k++)V=M[k].split("="),U=r.decodeQuery(V.shift(),v),G=V.length?r.decodeQuery(V.join("="),v):null,U!=="__proto__"&&(c.call(I,U)?((typeof I[U]=="string"||I[U]===null)&&(I[U]=[I[U]]),I[U].push(G)):I[U]=G);return I},r.build=function(E){var v="",I=!1;return E.protocol&&(v+=E.protocol+":"),!E.urn&&(v||E.hostname)&&(v+="//",I=!0),v+=r.buildAuthority(E)||"",typeof E.path=="string"&&(E.path.charAt(0)!=="/"&&I&&(v+="/"),v+=E.path),typeof E.query=="string"&&E.query&&(v+="?"+E.query),typeof E.fragment=="string"&&E.fragment&&(v+="#"+E.fragment),v},r.buildHost=function(E){var v="";if(E.hostname)r.ip6_expression.test(E.hostname)?v+="["+E.hostname+"]":v+=E.hostname;else return"";return E.port&&(v+=":"+E.port),v},r.buildAuthority=function(E){return r.buildUserinfo(E)+r.buildHost(E)},r.buildUserinfo=function(E){var v="";return E.username&&(v+=r.encode(E.username)),E.password&&(v+=":"+r.encode(E.password)),v&&(v+="@"),v},r.buildQuery=function(E,v,I){var M="",B,V,U,G;for(V in E)if(V!=="__proto__"&&c.call(E,V))if(d(E[V]))for(B={},U=0,G=E[V].length;U<G;U++)E[V][U]!==void 0&&B[E[V][U]+""]===void 0&&(M+="&"+r.buildQueryParameter(V,E[V][U],I),v!==!0&&(B[E[V][U]+""]=!0));else E[V]!==void 0&&(M+="&"+r.buildQueryParameter(V,E[V],I));return M.substring(1)},r.buildQueryParameter=function(E,v,I){return r.encodeQuery(E,I)+(v!==null?"="+r.encodeQuery(v,I):"")},r.addQuery=function(E,v,I){if(typeof v=="object")for(var M in v)c.call(v,M)&&r.addQuery(E,M,v[M]);else if(typeof v=="string"){if(E[v]===void 0){E[v]=I;return}else typeof E[v]=="string"&&(E[v]=[E[v]]);d(I)||(I=[I]),E[v]=(E[v]||[]).concat(I)}else throw new TypeError("URI.addQuery() accepts an object, string as the name parameter")},r.setQuery=function(E,v,I){if(typeof v=="object")for(var M in v)c.call(v,M)&&r.setQuery(E,M,v[M]);else if(typeof v=="string")E[v]=I===void 0?null:I;else throw new TypeError("URI.setQuery() accepts an object, string as the name parameter")},r.removeQuery=function(E,v,I){var M,B,V;if(d(v))for(M=0,B=v.length;M<B;M++)E[v[M]]=void 0;else if(f(v)==="RegExp")for(V in E)v.test(V)&&(E[V]=void 0);else if(typeof v=="object")for(V in v)c.call(v,V)&&r.removeQuery(E,V,v[V]);else if(typeof v=="string")I!==void 0?f(I)==="RegExp"?!d(E[v])&&I.test(E[v])?E[v]=void 0:E[v]=p(E[v],I):E[v]===String(I)&&(!d(I)||I.length===1)?E[v]=void 0:d(E[v])&&(E[v]=p(E[v],I)):E[v]=void 0;else throw new TypeError("URI.removeQuery() accepts an object, string, RegExp as the first parameter")},r.hasQuery=function(E,v,I,M){switch(f(v)){case"String":break;case"RegExp":for(var B in E)if(c.call(E,B)&&v.test(B)&&(I===void 0||r.hasQuery(E,B,I)))return!0;return!1;case"Object":for(var V in v)if(c.call(v,V)&&!r.hasQuery(E,V,v[V]))return!1;return!0;default:throw new TypeError("URI.hasQuery() accepts a string, regular expression or object as the name parameter")}switch(f(I)){case"Undefined":return v in E;case"Boolean":var U=!!(d(E[v])?E[v].length:E[v]);return I===U;case"Function":return!!I(E[v],v,E);case"Array":if(!d(E[v]))return!1;var G=M?g:m;return G(E[v],I);case"RegExp":return d(E[v])?M?g(E[v],I):!1:!!(E[v]&&E[v].match(I));case"Number":I=String(I);case"String":return d(E[v])?M?g(E[v],I):!1:E[v]===I;default:throw new TypeError("URI.hasQuery() accepts undefined, boolean, string, number, RegExp, Function as the value parameter")}},r.joinPaths=function(){for(var E=[],v=[],I=0,M=0;M<arguments.length;M++){var B=new r(arguments[M]);E.push(B);for(var V=B.segment(),U=0;U<V.length;U++)typeof V[U]=="string"&&v.push(V[U]),V[U]&&I++}if(!v.length||!I)return new r("");var G=new r("").segment(v);return(E[0].path()===""||E[0].path().slice(0,1)==="/")&&G.path("/"+G.path()),G.normalize()},r.commonPath=function(E,v){var I=Math.min(E.length,v.length),M;for(M=0;M<I;M++)if(E.charAt(M)!==v.charAt(M)){M--;break}return M<1?E.charAt(0)===v.charAt(0)&&E.charAt(0)==="/"?"/":"":((E.charAt(M)!=="/"||v.charAt(M)!=="/")&&(M=E.substring(0,M).lastIndexOf("/")),E.substring(0,M+1))},r.withinString=function(E,v,I){I||(I={});var M=I.start||r.findUri.start,B=I.end||r.findUri.end,V=I.trim||r.findUri.trim,U=I.parens||r.findUri.parens,G=/[a-z0-9-]=["']?$/i;for(M.lastIndex=0;;){var k=M.exec(E);if(!k)break;var Y=k.index;if(I.ignoreHtml){var j=E.slice(Math.max(Y-3,0),Y);if(j&&G.test(j))continue}for(var $=Y+E.slice(Y).search(B),W=E.slice(Y,$),K=-1;;){var Z=U.exec(W);if(!Z)break;var me=Z.index+Z[0].length;K=Math.max(K,me)}if(K>-1?W=W.slice(0,K)+W.slice(K).replace(V,""):W=W.replace(V,""),!(W.length<=k[0].length)&&!(I.ignore&&I.ignore.test(W))){$=Y+W.length;var xe=v(W,Y,$,E);if(xe===void 0){M.lastIndex=$;continue}xe=String(xe),E=E.slice(0,Y)+xe+E.slice($),M.lastIndex=Y+xe.length}}return M.lastIndex=0,E},r.ensureValidHostname=function(E,v){var I=!!E,M=!!v,B=!1;if(M&&(B=g(r.hostProtocols,v)),B&&!I)throw new TypeError("Hostname cannot be empty, if protocol is "+v);if(E&&E.match(r.invalid_hostname_characters)){if(!e)throw new TypeError('Hostname "'+E+'" contains characters other than [A-Z0-9.-:_] and Punycode.js is not available');if(e.toASCII(E).match(r.invalid_hostname_characters))throw new TypeError('Hostname "'+E+'" contains characters other than [A-Z0-9.-:_]')}},r.ensureValidPort=function(E){if(E){var v=Number(E);if(!(s(v)&&v>0&&v<65536))throw new TypeError('Port "'+E+'" is not a valid port')}},r.noConflict=function(E){if(E){var v={URI:this.noConflict()};return i.URITemplate&&typeof i.URITemplate.noConflict=="function"&&(v.URITemplate=i.URITemplate.noConflict()),i.IPv6&&typeof i.IPv6.noConflict=="function"&&(v.IPv6=i.IPv6.noConflict()),i.SecondLevelDomains&&typeof i.SecondLevelDomains.noConflict=="function"&&(v.SecondLevelDomains=i.SecondLevelDomains.noConflict()),v}else i.URI===this&&(i.URI=o);return this},a.build=function(E){return E===!0?this._deferred_build=!0:(E===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(E){return function(v,I){return v===void 0?this._parts[E]||"":(this._parts[E]=v||null,this.build(!I),this)}}function O(E,v){return function(I,M){return I===void 0?this._parts[E]||"":(I!==null&&(I=I+"",I.charAt(0)===v&&(I=I.substring(1))),this._parts[E]=I,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(E,v){var I=this.query(E,v);return typeof I=="string"&&I.length?"?"+I:I},a.hash=function(E,v){var I=this.fragment(E,v);return typeof I=="string"&&I.length?"#"+I:I},a.pathname=function(E,v){if(E===void 0||E===!0){var I=this._parts.path||(this._parts.hostname?"/":"");return E?(this._parts.urn?r.decodeUrnPath:r.decodePath)(I):I}else return this._parts.urn?this._parts.path=E?r.recodeUrnPath(E):"":this._parts.path=E?r.recodePath(E):"/",this.build(!v),this},a.path=a.pathname,a.href=function(E,v){var I;if(E===void 0)return this.toString();this._string="",this._parts=r._parts();var M=E instanceof r,B=typeof E=="object"&&(E.hostname||E.path||E.pathname);if(E.nodeName){var V=r.getDomAttribute(E);E=E[V]||"",B=!1}if(!M&&B&&E.pathname!==void 0&&(E=E.toString()),typeof E=="string"||E instanceof String)this._parts=r.parse(String(E),this._parts);else if(M||B){var U=M?E._parts:E;for(I in U)I!=="query"&&c.call(this._parts,I)&&(this._parts[I]=U[I]);U.query&&this.query(U.query,!1)}else throw new TypeError("invalid input");return this.build(!v),this},a.is=function(E){var v=!1,I=!1,M=!1,B=!1,V=!1,U=!1,G=!1,k=!this._parts.urn;switch(this._parts.hostname&&(k=!1,I=r.ip4_expression.test(this._parts.hostname),M=r.ip6_expression.test(this._parts.hostname),v=I||M,B=!v,V=B&&n&&n.has(this._parts.hostname),U=B&&r.idn_expression.test(this._parts.hostname),G=B&&r.punycode_expression.test(this._parts.hostname)),E.toLowerCase()){case"relative":return k;case"absolute":return!k;case"domain":case"name":return B;case"sld":return V;case"ip":return v;case"ip4":case"ipv4":case"inet4":return I;case"ip6":case"ipv6":case"inet6":return M;case"idn":return U;case"url":return!this._parts.urn;case"urn":return!!this._parts.urn;case"punycode":return G}return null};var R=a.protocol,L=a.port,N=a.hostname;a.protocol=function(E,v){if(E&&(E=E.replace(/:(\/\/)?$/,""),!E.match(r.protocol_expression)))throw new TypeError('Protocol "'+E+`" contains characters other than [A-Z0-9.+-] or doesn't start with [A-Z]`);return R.call(this,E,v)},a.scheme=a.protocol,a.port=function(E,v){return this._parts.urn?E===void 0?"":this:(E!==void 0&&(E===0&&(E=null),E&&(E+="",E.charAt(0)===":"&&(E=E.substring(1)),r.ensureValidPort(E))),L.call(this,E,v))},a.hostname=function(E,v){if(this._parts.urn)return E===void 0?"":this;if(E!==void 0){var I={preventInvalidHostname:this._parts.preventInvalidHostname},M=r.parseHost(E,I);if(M!=="/")throw new TypeError('Hostname "'+E+'" contains characters other than [A-Z0-9.-]');E=I.hostname,this._parts.preventInvalidHostname&&r.ensureValidHostname(E,this._parts.protocol)}return N.call(this,E,v)},a.origin=function(E,v){if(this._parts.urn)return E===void 0?"":this;if(E===void 0){var I=this.protocol(),M=this.authority();return M?(I?I+"://":"")+this.authority():""}else{var B=r(E);return this.protocol(B.protocol()).authority(B.authority()).build(!v),this}},a.host=function(E,v){if(this._parts.urn)return E===void 0?"":this;if(E===void 0)return this._parts.hostname?r.buildHost(this._parts):"";var I=r.parseHost(E,this._parts);if(I!=="/")throw new TypeError('Hostname "'+E+'" contains characters other than [A-Z0-9.-]');return this.build(!v),this},a.authority=function(E,v){if(this._parts.urn)return E===void 0?"":this;if(E===void 0)return this._parts.hostname?r.buildAuthority(this._parts):"";var I=r.parseAuthority(E,this._parts);if(I!=="/")throw new TypeError('Hostname "'+E+'" contains characters other than [A-Z0-9.-]');return this.build(!v),this},a.userinfo=function(E,v){if(this._parts.urn)return E===void 0?"":this;if(E===void 0){var I=r.buildUserinfo(this._parts);return I&&I.substring(0,I.length-1)}else return E[E.length-1]!=="@"&&(E+="@"),r.parseUserinfo(E,this._parts),this.build(!v),this},a.resource=function(E,v){var I;return E===void 0?this.path()+this.search()+this.hash():(I=r.parse(E),this._parts.path=I.path,this._parts.query=I.query,this._parts.fragment=I.fragment,this.build(!v),this)},a.subdomain=function(E,v){if(this._parts.urn)return E===void 0?"":this;if(E===void 0){if(!this._parts.hostname||this.is("IP"))return"";var I=this._parts.hostname.length-this.domain().length-1;return this._parts.hostname.substring(0,I)||""}else{var M=this._parts.hostname.length-this.domain().length,B=this._parts.hostname.substring(0,M),V=new RegExp("^"+l(B));if(E&&E.charAt(E.length-1)!=="."&&(E+="."),E.indexOf(":")!==-1)throw new TypeError("Domains cannot contain colons");return E&&r.ensureValidHostname(E,this._parts.protocol),this._parts.hostname=this._parts.hostname.replace(V,E),this.build(!v),this}},a.domain=function(E,v){if(this._parts.urn)return E===void 0?"":this;if(typeof E=="boolean"&&(v=E,E=void 0),E===void 0){if(!this._parts.hostname||this.is("IP"))return"";var I=this._parts.hostname.match(/\./g);if(I&&I.length<2)return this._parts.hostname;var M=this._parts.hostname.length-this.tld(v).length-1;return M=this._parts.hostname.lastIndexOf(".",M-1)+1,this._parts.hostname.substring(M)||""}else{if(!E)throw new TypeError("cannot set domain empty");if(E.indexOf(":")!==-1)throw new TypeError("Domains cannot contain colons");if(r.ensureValidHostname(E,this._parts.protocol),!this._parts.hostname||this.is("IP"))this._parts.hostname=E;else{var B=new RegExp(l(this.domain())+"$");this._parts.hostname=this._parts.hostname.replace(B,E)}return this.build(!v),this}},a.tld=function(E,v){if(this._parts.urn)return E===void 0?"":this;if(typeof E=="boolean"&&(v=E,E=void 0),E===void 0){if(!this._parts.hostname||this.is("IP"))return"";var I=this._parts.hostname.lastIndexOf("."),M=this._parts.hostname.substring(I+1);return v!==!0&&n&&n.list[M.toLowerCase()]&&n.get(this._parts.hostname)||M}else{var B;if(E)if(E.match(/[^a-zA-Z0-9-]/))if(n&&n.is(E))B=new RegExp(l(this.tld())+"$"),this._parts.hostname=this._parts.hostname.replace(B,E);else throw new TypeError('TLD "'+E+'" 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(l(this.tld())+"$"),this._parts.hostname=this._parts.hostname.replace(B,E)}else throw new TypeError("cannot set TLD empty");return this.build(!v),this}},a.directory=function(E,v){if(this._parts.urn)return E===void 0?"":this;if(E===void 0||E===!0){if(!this._parts.path&&!this._parts.hostname)return"";if(this._parts.path==="/")return"/";var I=this._parts.path.length-this.filename().length-1,M=this._parts.path.substring(0,I)||(this._parts.hostname?"/":"");return E?r.decodePath(M):M}else{var B=this._parts.path.length-this.filename().length,V=this._parts.path.substring(0,B),U=new RegExp("^"+l(V));return this.is("relative")||(E||(E="/"),E.charAt(0)!=="/"&&(E="/"+E)),E&&E.charAt(E.length-1)!=="/"&&(E+="/"),E=r.recodePath(E),this._parts.path=this._parts.path.replace(U,E),this.build(!v),this}},a.filename=function(E,v){if(this._parts.urn)return E===void 0?"":this;if(typeof E!="string"){if(!this._parts.path||this._parts.path==="/")return"";var I=this._parts.path.lastIndexOf("/"),M=this._parts.path.substring(I+1);return E?r.decodePathSegment(M):M}else{var B=!1;E.charAt(0)==="/"&&(E=E.substring(1)),E.match(/\.?\//)&&(B=!0);var V=new RegExp(l(this.filename())+"$");return E=r.recodePath(E),this._parts.path=this._parts.path.replace(V,E),B?this.normalizePath(v):this.build(!v),this}},a.suffix=function(E,v){if(this._parts.urn)return E===void 0?"":this;if(E===void 0||E===!0){if(!this._parts.path||this._parts.path==="/")return"";var I=this.filename(),M=I.lastIndexOf("."),B,V;return M===-1?"":(B=I.substring(M+1),V=/^[a-z0-9%]+$/i.test(B)?B:"",E?r.decodePathSegment(V):V)}else{E.charAt(0)==="."&&(E=E.substring(1));var U=this.suffix(),G;if(U)E?G=new RegExp(l(U)+"$"):G=new RegExp(l("."+U)+"$");else{if(!E)return this;this._parts.path+="."+r.recodePath(E)}return G&&(E=r.recodePath(E),this._parts.path=this._parts.path.replace(G,E)),this.build(!v),this}},a.segment=function(E,v,I){var M=this._parts.urn?":":"/",B=this.path(),V=B.substring(0,1)==="/",U=B.split(M);if(E!==void 0&&typeof E!="number"&&(I=v,v=E,E=void 0),E!==void 0&&typeof E!="number")throw new Error('Bad segment "'+E+'", must be 0-based integer');if(V&&U.shift(),E<0&&(E=Math.max(U.length+E,0)),v===void 0)return E===void 0?U:U[E];if(E===null||U[E]===void 0)if(d(v)){U=[];for(var G=0,k=v.length;G<k;G++)!v[G].length&&(!U.length||!U[U.length-1].length)||(U.length&&!U[U.length-1].length&&U.pop(),U.push(x(v[G])))}else(v||typeof v=="string")&&(v=x(v),U[U.length-1]===""?U[U.length-1]=v:U.push(v));else v?U[E]=x(v):U.splice(E,1);return V&&U.unshift(""),this.path(U.join(M),I)},a.segmentCoded=function(E,v,I){var M,B,V;if(typeof E!="number"&&(I=v,v=E,E=void 0),v===void 0){if(M=this.segment(E,v,I),!d(M))M=M!==void 0?r.decode(M):void 0;else for(B=0,V=M.length;B<V;B++)M[B]=r.decode(M[B]);return M}if(!d(v))v=typeof v=="string"||v instanceof String?r.encode(v):v;else for(B=0,V=v.length;B<V;B++)v[B]=r.encode(v[B]);return this.segment(E,v,I)};var _=a.query;return a.query=function(E,v){if(E===!0)return r.parseQuery(this._parts.query,this._parts.escapeQuerySpace);if(typeof E=="function"){var I=r.parseQuery(this._parts.query,this._parts.escapeQuerySpace),M=E.call(this,I);return this._parts.query=r.buildQuery(M||I,this._parts.duplicateQueryParameters,this._parts.escapeQuerySpace),this.build(!v),this}else return E!==void 0&&typeof E!="string"?(this._parts.query=r.buildQuery(E,this._parts.duplicateQueryParameters,this._parts.escapeQuerySpace),this.build(!v),this):_.call(this,E,v)},a.setQuery=function(E,v,I){var M=r.parseQuery(this._parts.query,this._parts.escapeQuerySpace);if(typeof E=="string"||E instanceof String)M[E]=v!==void 0?v:null;else if(typeof E=="object")for(var B in E)c.call(E,B)&&(M[B]=E[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 E!="string"&&(I=v),this.build(!I),this},a.addQuery=function(E,v,I){var M=r.parseQuery(this._parts.query,this._parts.escapeQuerySpace);return r.addQuery(M,E,v===void 0?null:v),this._parts.query=r.buildQuery(M,this._parts.duplicateQueryParameters,this._parts.escapeQuerySpace),typeof E!="string"&&(I=v),this.build(!I),this},a.removeQuery=function(E,v,I){var M=r.parseQuery(this._parts.query,this._parts.escapeQuerySpace);return r.removeQuery(M,E,v),this._parts.query=r.buildQuery(M,this._parts.duplicateQueryParameters,this._parts.escapeQuerySpace),typeof E!="string"&&(I=v),this.build(!I),this},a.hasQuery=function(E,v,I){var M=r.parseQuery(this._parts.query,this._parts.escapeQuerySpace);return r.hasQuery(M,E,v,I)},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(E){return typeof this._parts.protocol=="string"&&(this._parts.protocol=this._parts.protocol.toLowerCase(),this.build(!E)),this},a.normalizeHostname=function(E){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(!E)),this},a.normalizePort=function(E){return typeof this._parts.protocol=="string"&&this._parts.port===r.defaultPorts[this._parts.protocol]&&(this._parts.port=null,this.build(!E)),this},a.normalizePath=function(E){var v=this._parts.path;if(!v)return this;if(this._parts.urn)return this._parts.path=r.recodeUrnPath(this._parts.path),this.build(!E),this;if(this._parts.path==="/")return this;v=r.recodePath(v);var I,M="",B,V;for(v.charAt(0)!=="/"&&(I=!0,v="/"+v),(v.slice(-3)==="/.."||v.slice(-2)==="/.")&&(v+="/"),v=v.replace(/(\/(\.\/)+)|(\/\.$)/g,"/").replace(/\/{2,}/g,"/"),I&&(M=v.substring(1).match(/^(\.\.\/)+/)||"",M&&(M=M[0]));B=v.search(/\/\.\.(\/|$)/),B!==-1;){if(B===0){v=v.substring(3);continue}V=v.substring(0,B).lastIndexOf("/"),V===-1&&(V=B),v=v.substring(0,V)+v.substring(B+3)}return I&&this.is("relative")&&(v=M+v.substring(1)),this._parts.path=v,this.build(!E),this},a.normalizePathname=a.normalizePath,a.normalizeQuery=function(E){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(!E)),this},a.normalizeFragment=function(E){return this._parts.fragment||(this._parts.fragment=null,this.build(!E)),this},a.normalizeSearch=a.normalizeQuery,a.normalizeHash=a.normalizeFragment,a.iso8859=function(){var E=r.encode,v=r.decode;r.encode=escape,r.decode=decodeURIComponent;try{this.normalize()}finally{r.encode=E,r.decode=v}return this},a.unicode=function(){var E=r.encode,v=r.decode;r.encode=T,r.decode=unescape;try{this.normalize()}finally{r.encode=E,r.decode=v}return this},a.readable=function(){var E=this.clone();E.username("").password("").normalize();var v="";if(E._parts.protocol&&(v+=E._parts.protocol+"://"),E._parts.hostname&&(E.is("punycode")&&e?(v+=e.toUnicode(E._parts.hostname),E._parts.port&&(v+=":"+E._parts.port)):v+=E.host()),E._parts.hostname&&E._parts.path&&E._parts.path.charAt(0)!=="/"&&(v+="/"),v+=E.path(!0),E._parts.query){for(var I="",M=0,B=E._parts.query.split("&"),V=B.length;M<V;M++){var U=(B[M]||"").split("=");I+="&"+r.decodeQuery(U[0],this._parts.escapeQuerySpace).replace(/&/g,"%26"),U[1]!==void 0&&(I+="="+r.decodeQuery(U[1],this._parts.escapeQuerySpace).replace(/&/g,"%26"))}v+="?"+I.substring(1)}return v+=r.decodeQuery(E.hash(),!0),v},a.absoluteTo=function(E){var v=this.clone(),I=["protocol","username","password","hostname","port"],M,B,V;if(this._parts.urn)throw new Error("URNs do not have any generally defined hierarchical components");if(E instanceof r||(E=new r(E)),v._parts.protocol||(v._parts.protocol=E._parts.protocol,this._parts.hostname))return v;for(B=0;V=I[B];B++)v._parts[V]=E._parts[V];return v._parts.path?(v._parts.path.substring(-2)===".."&&(v._parts.path+="/"),v.path().charAt(0)!=="/"&&(M=E.directory(),M=M||(E.path().indexOf("/")===0?"/":""),v._parts.path=(M?M+"/":"")+v._parts.path,v.normalizePath())):(v._parts.path=E._parts.path,v._parts.query||(v._parts.query=E._parts.query)),v.build(),v},a.relativeTo=function(E){var v=this.clone().normalize(),I,M,B,V,U;if(v._parts.urn)throw new Error("URNs do not have any generally defined hierarchical components");if(E=new r(E).normalize(),I=v._parts,M=E._parts,V=v.path(),U=E.path(),V.charAt(0)!=="/")throw new Error("URI is already relative");if(U.charAt(0)!=="/")throw new Error("Cannot calculate a URI relative to another relative URI");if(I.protocol===M.protocol&&(I.protocol=null),I.username!==M.username||I.password!==M.password||I.protocol!==null||I.username!==null||I.password!==null)return v.build();if(I.hostname===M.hostname&&I.port===M.port)I.hostname=null,I.port=null;else return v.build();if(V===U)return I.path="",v.build();if(B=r.commonPath(V,U),!B)return v.build();var G=M.path.substring(B.length).replace(/[^\/]*$/,"").replace(/.*?\//g,"../");return I.path=G+I.path.substring(B.length)||"./",v.build()},a.equals=function(E){var v=this.clone(),I=new r(E),M={},B={},V={},U,G,k;if(v.normalize(),I.normalize(),v.toString()===I.toString())return!0;if(U=v.query(),G=I.query(),v.query(""),I.query(""),v.toString()!==I.toString()||U.length!==G.length)return!1;M=r.parseQuery(U,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;V[k]=!0}for(k in B)if(c.call(B,k)&&!V[k])return!1;return!0},a.preventInvalidHostname=function(E){return this._parts.preventInvalidHostname=!!E,this},a.duplicateQueryParameters=function(E){return this._parts.duplicateQueryParameters=!!E,this},a.escapeQuerySpace=function(E){return this._parts.escapeQuerySpace=!!E,this},r})});var Ute=Kn((pWt,kte)=>{"use strict";/*! @license DOMPurify 3.0.6 | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/3.0.6/LICENSE */var{entries:Rte,setPrototypeOf:Ste,isFrozen:xRe,getPrototypeOf:bRe,getOwnPropertyDescriptor:Mte}=Object,{freeze:Mc,seal:bd,create:Lte}=Object,{apply:OG,construct:RG}=typeof Reflect<"u"&&Reflect;Mc||(Mc=function(t){return t});bd||(bd=function(t){return t});OG||(OG=function(t,n,i){return t.apply(n,i)});RG||(RG=function(t,n){return new t(...n)});var wk=of(Array.prototype.forEach),wte=of(Array.prototype.pop),wP=of(Array.prototype.push),Ik=of(String.prototype.toLowerCase),wG=of(String.prototype.toString),TRe=of(String.prototype.match),vP=of(String.prototype.replace),ARe=of(String.prototype.indexOf),CRe=of(String.prototype.trim),ou=of(RegExp.prototype.test),DP=ERe(TypeError);function of(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 OG(e,t,i)}}function ERe(e){return function(){for(var t=arguments.length,n=new Array(t),i=0;i<t;i++)n[i]=arguments[i];return RG(e,n)}}function fi(e,t){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:Ik;Ste&&Ste(e,null);let i=t.length;for(;i--;){let o=t[i];if(typeof o=="string"){let r=n(o);r!==o&&(xRe(t)||(t[i]=r),o=r)}e[o]=!0}return e}function IA(e){let t=Lte(null);for(let[n,i]of Rte(e))Mte(e,n)!==void 0&&(t[n]=i);return t}function vk(e,t){for(;e!==null;){let i=Mte(e,t);if(i){if(i.get)return of(i.get);if(typeof i.value=="function")return of(i.value)}e=bRe(e)}function n(i){return console.warn("fallback value for",i),null}return n}var vte=Mc(["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"]),vG=Mc(["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"]),DG=Mc(["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"]),SRe=Mc(["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"]),IG=Mc(["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"]),wRe=Mc(["maction","maligngroup","malignmark","mlongdiv","mscarries","mscarry","msgroup","mstack","msline","msrow","semantics","annotation","annotation-xml","mprescripts","none"]),Dte=Mc(["#text"]),Ite=Mc(["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","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","xmlns","slot"]),PG=Mc(["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"]),Pte=Mc(["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"]),Dk=Mc(["xlink:href","xml:id","xlink:title","xml:space","xmlns:xlink"]),vRe=bd(/\{\{[\w\W]*|[\w\W]*\}\}/gm),DRe=bd(/<%[\w\W]*|[\w\W]*%>/gm),IRe=bd(/\${[\w\W]*}/gm),PRe=bd(/^data-[\-\w.\u00B7-\uFFFF]/),ORe=bd(/^aria-[\-\w]+$/),Nte=bd(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i),RRe=bd(/^(?:\w+script|data):/i),MRe=bd(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g),Fte=bd(/^html$/i),Ote=Object.freeze({__proto__:null,MUSTACHE_EXPR:vRe,ERB_EXPR:DRe,TMPLIT_EXPR:IRe,DATA_ATTR:PRe,ARIA_ATTR:ORe,IS_ALLOWED_URI:Nte,IS_SCRIPT_OR_DATA:RRe,ATTR_WHITESPACE:MRe,DOCTYPE_NAME:Fte}),LRe=function(){return typeof window>"u"?null:window},NRe=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 Bte(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:LRe(),t=sn=>Bte(sn);if(t.version="3.0.6",t.removed=[],!e||!e.document||e.document.nodeType!==9)return t.isSupported=!1,t;let{document:n}=e,i=n,o=i.currentScript,{DocumentFragment:r,HTMLTemplateElement:s,Node:a,Element:c,NodeFilter:l,NamedNodeMap:f=e.NamedNodeMap||e.MozNamedAttrMap,HTMLFormElement:d,DOMParser:p,trustedTypes:g}=e,m=c.prototype,x=vk(m,"cloneNode"),b=vk(m,"nextSibling"),T=vk(m,"childNodes"),A=vk(m,"parentNode");if(typeof s=="function"){let sn=n.createElement("template");sn.content&&sn.content.ownerDocument&&(n=sn.content.ownerDocument)}let C,S="",{implementation:w,createNodeIterator:D,createDocumentFragment:O,getElementsByTagName:R}=n,{importNode:L}=i,N={};t.isSupported=typeof Rte=="function"&&typeof A=="function"&&w&&w.createHTMLDocument!==void 0;let{MUSTACHE_EXPR:_,ERB_EXPR:E,TMPLIT_EXPR:v,DATA_ATTR:I,ARIA_ATTR:M,IS_SCRIPT_OR_DATA:B,ATTR_WHITESPACE:V}=Ote,{IS_ALLOWED_URI:U}=Ote,G=null,k=fi({},[...vte,...vG,...DG,...IG,...Dte]),Y=null,j=fi({},[...Ite,...PG,...Pte,...Dk]),$=Object.seal(Lte(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}})),W=null,K=null,Z=!0,me=!0,xe=!1,re=!0,ye=!1,ge=!1,Ae=!1,De=!1,Re=!1,ze=!1,ut=!1,Vt=!0,cn=!1,ft="user-content-",_n=!0,Mn=!1,Ft={},Ot=null,he=fi({},["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"]),be=null,Gt=fi({},["audio","video","img","source","image","track"]),rt=null,Si=fi({},["alt","class","for","id","label","name","pattern","placeholder","role","summary","title","value","style","xmlns"]),Zi="http://www.w3.org/1998/Math/MathML",Us="http://www.w3.org/2000/svg",Lo="http://www.w3.org/1999/xhtml",fr=Lo,is=!1,Be=null,Ke=fi({},[Zi,Us,Lo],wG),qe=null,Xe=["application/xhtml+xml","text/html"],ht="text/html",mt=null,hn=null,lo=n.createElement("form"),bo=function(Se){return Se instanceof RegExp||Se instanceof Function},os=function(){let Se=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};if(!(hn&&hn===Se)){if((!Se||typeof Se!="object")&&(Se={}),Se=IA(Se),qe=Xe.indexOf(Se.PARSER_MEDIA_TYPE)===-1?qe=ht:qe=Se.PARSER_MEDIA_TYPE,mt=qe==="application/xhtml+xml"?wG:Ik,G="ALLOWED_TAGS"in Se?fi({},Se.ALLOWED_TAGS,mt):k,Y="ALLOWED_ATTR"in Se?fi({},Se.ALLOWED_ATTR,mt):j,Be="ALLOWED_NAMESPACES"in Se?fi({},Se.ALLOWED_NAMESPACES,wG):Ke,rt="ADD_URI_SAFE_ATTR"in Se?fi(IA(Si),Se.ADD_URI_SAFE_ATTR,mt):Si,be="ADD_DATA_URI_TAGS"in Se?fi(IA(Gt),Se.ADD_DATA_URI_TAGS,mt):Gt,Ot="FORBID_CONTENTS"in Se?fi({},Se.FORBID_CONTENTS,mt):he,W="FORBID_TAGS"in Se?fi({},Se.FORBID_TAGS,mt):{},K="FORBID_ATTR"in Se?fi({},Se.FORBID_ATTR,mt):{},Ft="USE_PROFILES"in Se?Se.USE_PROFILES:!1,Z=Se.ALLOW_ARIA_ATTR!==!1,me=Se.ALLOW_DATA_ATTR!==!1,xe=Se.ALLOW_UNKNOWN_PROTOCOLS||!1,re=Se.ALLOW_SELF_CLOSE_IN_ATTR!==!1,ye=Se.SAFE_FOR_TEMPLATES||!1,ge=Se.WHOLE_DOCUMENT||!1,Re=Se.RETURN_DOM||!1,ze=Se.RETURN_DOM_FRAGMENT||!1,ut=Se.RETURN_TRUSTED_TYPE||!1,De=Se.FORCE_BODY||!1,Vt=Se.SANITIZE_DOM!==!1,cn=Se.SANITIZE_NAMED_PROPS||!1,_n=Se.KEEP_CONTENT!==!1,Mn=Se.IN_PLACE||!1,U=Se.ALLOWED_URI_REGEXP||Nte,fr=Se.NAMESPACE||Lo,$=Se.CUSTOM_ELEMENT_HANDLING||{},Se.CUSTOM_ELEMENT_HANDLING&&bo(Se.CUSTOM_ELEMENT_HANDLING.tagNameCheck)&&($.tagNameCheck=Se.CUSTOM_ELEMENT_HANDLING.tagNameCheck),Se.CUSTOM_ELEMENT_HANDLING&&bo(Se.CUSTOM_ELEMENT_HANDLING.attributeNameCheck)&&($.attributeNameCheck=Se.CUSTOM_ELEMENT_HANDLING.attributeNameCheck),Se.CUSTOM_ELEMENT_HANDLING&&typeof Se.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements=="boolean"&&($.allowCustomizedBuiltInElements=Se.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements),ye&&(me=!1),ze&&(Re=!0),Ft&&(G=fi({},[...Dte]),Y=[],Ft.html===!0&&(fi(G,vte),fi(Y,Ite)),Ft.svg===!0&&(fi(G,vG),fi(Y,PG),fi(Y,Dk)),Ft.svgFilters===!0&&(fi(G,DG),fi(Y,PG),fi(Y,Dk)),Ft.mathMl===!0&&(fi(G,IG),fi(Y,Pte),fi(Y,Dk))),Se.ADD_TAGS&&(G===k&&(G=IA(G)),fi(G,Se.ADD_TAGS,mt)),Se.ADD_ATTR&&(Y===j&&(Y=IA(Y)),fi(Y,Se.ADD_ATTR,mt)),Se.ADD_URI_SAFE_ATTR&&fi(rt,Se.ADD_URI_SAFE_ATTR,mt),Se.FORBID_CONTENTS&&(Ot===he&&(Ot=IA(Ot)),fi(Ot,Se.FORBID_CONTENTS,mt)),_n&&(G["#text"]=!0),ge&&fi(G,["html","head","body"]),G.table&&(fi(G,["tbody"]),delete W.tbody),Se.TRUSTED_TYPES_POLICY){if(typeof Se.TRUSTED_TYPES_POLICY.createHTML!="function")throw DP('TRUSTED_TYPES_POLICY configuration option must provide a "createHTML" hook.');if(typeof Se.TRUSTED_TYPES_POLICY.createScriptURL!="function")throw DP('TRUSTED_TYPES_POLICY configuration option must provide a "createScriptURL" hook.');C=Se.TRUSTED_TYPES_POLICY,S=C.createHTML("")}else C===void 0&&(C=NRe(g,o)),C!==null&&typeof S=="string"&&(S=C.createHTML(""));Mc&&Mc(Se),hn=Se}},xs=fi({},["mi","mo","mn","ms","mtext"]),No=fi({},["foreignobject","desc","title","annotation-xml"]),ji=fi({},["title","style","font","a","script"]),br=fi({},vG);fi(br,DG),fi(br,SRe);let Gn=fi({},IG);fi(Gn,wRe);let Ln=function(Se){let at=A(Se);(!at||!at.tagName)&&(at={namespaceURI:fr,tagName:"template"});let an=Ik(Se.tagName),vo=Ik(at.tagName);return Be[Se.namespaceURI]?Se.namespaceURI===Us?at.namespaceURI===Lo?an==="svg":at.namespaceURI===Zi?an==="svg"&&(vo==="annotation-xml"||xs[vo]):!!br[an]:Se.namespaceURI===Zi?at.namespaceURI===Lo?an==="math":at.namespaceURI===Us?an==="math"&&No[vo]:!!Gn[an]:Se.namespaceURI===Lo?at.namespaceURI===Us&&!No[vo]||at.namespaceURI===Zi&&!xs[vo]?!1:!Gn[an]&&(ji[an]||!br[an]):!!(qe==="application/xhtml+xml"&&Be[Se.namespaceURI]):!1},On=function(Se){wP(t.removed,{element:Se});try{Se.parentNode.removeChild(Se)}catch{Se.remove()}},di=function(Se,at){try{wP(t.removed,{attribute:at.getAttributeNode(Se),from:at})}catch{wP(t.removed,{attribute:null,from:at})}if(at.removeAttribute(Se),Se==="is"&&!Y[Se])if(Re||ze)try{On(at)}catch{}else try{at.setAttribute(Se,"")}catch{}},dr=function(Se){let at=null,an=null;if(De)Se="<remove></remove>"+Se;else{let La=TRe(Se,/^[\r\n\t ]+/);an=La&&La[0]}qe==="application/xhtml+xml"&&fr===Lo&&(Se='<html xmlns="http://www.w3.org/1999/xhtml"><head></head><body>'+Se+"</body></html>");let vo=C?C.createHTML(Se):Se;if(fr===Lo)try{at=new p().parseFromString(vo,qe)}catch{}if(!at||!at.documentElement){at=w.createDocument(fr,"template",null);try{at.documentElement.innerHTML=is?S:vo}catch{}}let fa=at.body||at.documentElement;return Se&&an&&fa.insertBefore(n.createTextNode(an),fa.childNodes[0]||null),fr===Lo?R.call(at,ge?"html":"body")[0]:ge?at.documentElement:fa},Vs=function(Se){return D.call(Se.ownerDocument||Se,Se,l.SHOW_ELEMENT|l.SHOW_COMMENT|l.SHOW_TEXT,null)},bs=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")},Ts=function(Se){return typeof a=="function"&&Se instanceof a},Ra=function(Se,at,an){N[Se]&&wk(N[Se],vo=>{vo.call(t,at,an,hn)})},hr=function(Se){let at=null;if(Ra("beforeSanitizeElements",Se,null),bs(Se))return On(Se),!0;let an=mt(Se.nodeName);if(Ra("uponSanitizeElement",Se,{tagName:an,allowedTags:G}),Se.hasChildNodes()&&!Ts(Se.firstElementChild)&&ou(/<[/\w]/g,Se.innerHTML)&&ou(/<[/\w]/g,Se.textContent))return On(Se),!0;if(!G[an]||W[an]){if(!W[an]&&il(an)&&($.tagNameCheck instanceof RegExp&&ou($.tagNameCheck,an)||$.tagNameCheck instanceof Function&&$.tagNameCheck(an)))return!1;if(_n&&!Ot[an]){let vo=A(Se)||Se.parentNode,fa=T(Se)||Se.childNodes;if(fa&&vo){let La=fa.length;for(let ol=La-1;ol>=0;--ol)vo.insertBefore(x(fa[ol],!0),b(Se))}}return On(Se),!0}return Se instanceof c&&!Ln(Se)||(an==="noscript"||an==="noembed"||an==="noframes")&&ou(/<\/no(script|embed|frames)/i,Se.innerHTML)?(On(Se),!0):(ye&&Se.nodeType===3&&(at=Se.textContent,wk([_,E,v],vo=>{at=vP(at,vo," ")}),Se.textContent!==at&&(wP(t.removed,{element:Se.cloneNode()}),Se.textContent=at)),Ra("afterSanitizeElements",Se,null),!1)},od=function(Se,at,an){if(Vt&&(at==="id"||at==="name")&&(an in n||an in lo))return!1;if(!(me&&!K[at]&&ou(I,at))){if(!(Z&&ou(M,at))){if(!Y[at]||K[at]){if(!(il(Se)&&($.tagNameCheck instanceof RegExp&&ou($.tagNameCheck,Se)||$.tagNameCheck instanceof Function&&$.tagNameCheck(Se))&&($.attributeNameCheck instanceof RegExp&&ou($.attributeNameCheck,at)||$.attributeNameCheck instanceof Function&&$.attributeNameCheck(at))||at==="is"&&$.allowCustomizedBuiltInElements&&($.tagNameCheck instanceof RegExp&&ou($.tagNameCheck,an)||$.tagNameCheck instanceof Function&&$.tagNameCheck(an))))return!1}else if(!rt[at]){if(!ou(U,vP(an,V,""))){if(!((at==="src"||at==="xlink:href"||at==="href")&&Se!=="script"&&ARe(an,"data:")===0&&be[Se])){if(!(xe&&!ou(B,vP(an,V,"")))){if(an)return!1}}}}}}return!0},il=function(Se){return Se.indexOf("-")>0},g0=function(Se){Ra("beforeSanitizeAttributes",Se,null);let{attributes:at}=Se;if(!at)return;let an={attrName:"",attrValue:"",keepAttr:!0,allowedAttributes:Y},vo=at.length;for(;vo--;){let fa=at[vo],{name:La,namespaceURI:ol,value:y0}=fa,JS=mt(La),rl=La==="value"?y0:CRe(y0);if(an.attrName=JS,an.attrValue=rl,an.keepAttr=!0,an.forceKeepAttr=void 0,Ra("uponSanitizeAttribute",Se,an),rl=an.attrValue,an.forceKeepAttr||(di(La,Se),!an.keepAttr))continue;if(!re&&ou(/\/>/i,rl)){di(La,Se);continue}ye&&wk([_,E,v],tZ=>{rl=vP(rl,tZ," ")});let eZ=mt(Se.nodeName);if(od(eZ,JS,rl)){if(cn&&(JS==="id"||JS==="name")&&(di(La,Se),rl=ft+rl),C&&typeof g=="object"&&typeof g.getAttributeType=="function"&&!ol)switch(g.getAttributeType(eZ,JS)){case"TrustedHTML":{rl=C.createHTML(rl);break}case"TrustedScriptURL":{rl=C.createScriptURL(rl);break}}try{ol?Se.setAttributeNS(ol,La,rl):Se.setAttribute(La,rl),wte(t.removed)}catch{}}}Ra("afterSanitizeAttributes",Se,null)},Ma=function sn(Se){let at=null,an=Vs(Se);for(Ra("beforeSanitizeShadowDOM",Se,null);at=an.nextNode();)Ra("uponSanitizeShadowNode",at,null),!hr(at)&&(at.content instanceof r&&sn(at.content),g0(at));Ra("afterSanitizeShadowDOM",Se,null)};return t.sanitize=function(sn){let Se=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},at=null,an=null,vo=null,fa=null;if(is=!sn,is&&(sn="<!-->"),typeof sn!="string"&&!Ts(sn))if(typeof sn.toString=="function"){if(sn=sn.toString(),typeof sn!="string")throw DP("dirty is not a string, aborting")}else throw DP("toString is not a function");if(!t.isSupported)return sn;if(Ae||os(Se),t.removed=[],typeof sn=="string"&&(Mn=!1),Mn){if(sn.nodeName){let y0=mt(sn.nodeName);if(!G[y0]||W[y0])throw DP("root node is forbidden and cannot be sanitized in-place")}}else if(sn instanceof a)at=dr("<!---->"),an=at.ownerDocument.importNode(sn,!0),an.nodeType===1&&an.nodeName==="BODY"||an.nodeName==="HTML"?at=an:at.appendChild(an);else{if(!Re&&!ye&&!ge&&sn.indexOf("<")===-1)return C&&ut?C.createHTML(sn):sn;if(at=dr(sn),!at)return Re?null:ut?S:""}at&&De&&On(at.firstChild);let La=Vs(Mn?sn:at);for(;vo=La.nextNode();)hr(vo)||(vo.content instanceof r&&Ma(vo.content),g0(vo));if(Mn)return sn;if(Re){if(ze)for(fa=O.call(at.ownerDocument);at.firstChild;)fa.appendChild(at.firstChild);else fa=at;return(Y.shadowroot||Y.shadowrootmode)&&(fa=L.call(i,fa,!0)),fa}let ol=ge?at.outerHTML:at.innerHTML;return ge&&G["!doctype"]&&at.ownerDocument&&at.ownerDocument.doctype&&at.ownerDocument.doctype.name&&ou(Fte,at.ownerDocument.doctype.name)&&(ol="<!DOCTYPE "+at.ownerDocument.doctype.name+`>
  61. `+ol),ye&&wk([_,E,v],y0=>{ol=vP(ol,y0," ")}),C&&ut?C.createHTML(ol):ol},t.setConfig=function(){let sn=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};os(sn),Ae=!0},t.clearConfig=function(){hn=null,Ae=!1},t.isValidAttribute=function(sn,Se,at){hn||os({});let an=mt(sn),vo=mt(Se);return od(an,vo,at)},t.addHook=function(sn,Se){typeof Se=="function"&&(N[sn]=N[sn]||[],wP(N[sn],Se))},t.removeHook=function(sn){if(N[sn])return wte(N[sn])},t.removeHooks=function(sn){N[sn]&&(N[sn]=[])},t.removeAllHooks=function(){N={}},t}var FRe=Bte();kte.exports=FRe});var Dne=Kn((zP,$G)=>{var Gk=function(){"use strict";var e="b9H79TebbbeJq9Geueu9Geub9Gbb9Gvuuuuueu9Gduueu9Gluuuueu9Gvuuuuub9Gouuuuuub9Gluuuub9GiuuueuiLQdilevlevlooroowwvbDDbelve9Weiiviebeoweuec:G;kekr;qiHo9TW9T9VV95dbH9F9F939H79T9F9J9H229F9Jt9VV7bb8A9TW79O9V9Wt9FW9U9J9V9KW9wWVtW949c919M9MWVbe8F9TW79O9V9Wt9FW9U9J9V9KW9wWVtW949c919M9MWV9c9V919U9KbdE9TW79O9V9Wt9FW9U9J9V9KW9wWVtW949wWV79P9V9UbiY9TW79O9V9Wt9FW9U9J9V9KW69U9KW949c919M9MWVbl8E9TW79O9V9Wt9FW9U9J9V9KW69U9KW949c919M9MWV9c9V919U9Kbv8A9TW79O9V9Wt9FW9U9J9V9KW69U9KW949wWV79P9V9UboE9TW79O9V9Wt9FW9U9J9V9KW69U9KW949tWG91W9U9JWbra9TW79O9V9Wt9FW9U9J9V9KW69U9KW949tWG91W9U9JW9c9V919U9KbwL9TW79O9V9Wt9FW9U9J9V9KWS9P2tWV9p9JtbDK9TW79O9V9Wt9FW9U9J9V9KWS9P2tWV9r919HtbqL9TW79O9V9Wt9FW9U9J9V9KWS9P2tWVT949WbkE9TW79O9V9Wt9F9V9Wt9P9T9P96W9wWVtW94J9H9J9OWbPa9TW79O9V9Wt9F9V9Wt9P9T9P96W9wWVtW94J9H9J9OW9ttV9P9Wbsa9TW79O9V9Wt9F9V9Wt9P9T9P96W9wWVtW94SWt9J9O9sW9T9H9Wbzl79IV9RbHDwebcekdXCq:fSQdbk:fxeYu8Jjjjjbcjo9Rgv8Kjjjjbcbhodnalcefae0mbabcbRb:q:kjjbc:GeV86bbavcjdfcbcjdz:tjjjb8AdnaiTmbavcjdfadalzMjjjb8Akabaefhrabcefhwavalfcbcbcjdal9RalcFe0Ez:tjjjb8AavavcjdfalzMjjjbhDcj;abal9UhodndndndndnalTmbaoc;WFbGgecjdaecjd6Ehqcbhkdninakai9pmiaDcjlfcbcjdz:tjjjb8Aaqaiak9Rakaqfai6Egxcsfgecl4cifcd4hmadakal2fhPdndndndndnaec9WGgsTmbcbhzcehHaPhOawhAxekdnaxTmbcbhAcehHaPhCinaDaAfRbbhXaDcjlfheaChoaxhQinaeaoRbbgLaX9RgXcetaXcKtcK91cr4786bbaoalfhoaecefheaLhXaQcufgQmbkaraw9Ram6miawcbamz:tjjjbgeTmiaCcefhCaeamfhwaAcefgAal6hHaAal9hmbxvkkaraw9Ram6mvawcbamz:tjjjb8AceheinawgXamfhwalaegoSmldnaraw9Ram6mbaocefheawcbamz:tjjjb8AaXmekkcbhwaoal6mvxikindnaxTmbaDazfRbbhXaDcjlfheaOhoaxhQinaeaoRbbgLaX9RgXcetaXcKtcK91cr4786bbaoalfhoaecefheaLhXaQcufgQmbkkaraA9Ram6mearaAcbamz:tjjjbgKamfgw9RcK6mdcbhYaDcjlfhAinaDcjlfaYfh8AcwhCczhLcehQindndnaQce9hmbcuhoa8ARbbmecbhodninaogecsSmeaecefhoaAaefcefRbbTmbkkcucbaecs6EhoxekaQcetc;:FFFeGhocuaQtcu7cFeGhXcbheinaoaXaAaefRbb9nfhoaecefgecz9hmbkkaoaLaoaL6geEhLaQaCaeEhCaQcetgQcw6mbkdndndndnaCcufPdiebkaKaYco4fgeaeRbbcdciaCclSEaYci4coGtV86bbaCcw9hmeawa8A8Pbb83bbawcwfa8Acwf8Pbb83bbawczfhwxdkaKaYco4fgeaeRbbceaYci4coGtV86bbkdncwaC9TgEmbinawcb86bbawcefhwxbkkcuaCtcu7h8Acbh3aAh5ina5heaEhQcbhoinaeRbbgLa8AcFeGgXaLaX6EaoaCtVhoaecefheaQcufgQmbkawao86bba5aEfh5awcefhwa3aEfg3cz6mbkcbheindnaAaefRbbgoaX6mbawao86bbawcefhwkaecefgecz9hmbkkdnaYczfgYas9pmbaAczfhAaraw9RcL0mekkaYas6meawTmeaOcefhOazcefgzal6hHawhAazalSmixbkkcbhwaHceGTmexikcbhwaHceGmdkaDaPaxcufal2falzMjjjb8AaxakfhkawmbkcbhoxokcbhoxvkaiTmekcbhoaraw9Ralcaalca0E6mialc8F9nmexdkcbhoaecufca6mdkawcbcaal9Rgez:tjjjbaefhwkawaDcjdfalzMjjjbalfab9Rhokavcjof8Kjjjjbaok9heeuaecaaeca0Eabcj;abae9Uc;WFbGgdcjdadcjd6Egdfcufad9Uae2adcl4cifcd4adV2fcefkmbcbabBd:q:kjjbk;use3u8Jjjjjbc;ae9Rgl8Kjjjjbcbhvdnaici9UgocHfae0mbabcbydN:kjjbgrc;GeV86bbalc;abfcFecjez:tjjjb8AalcUfgw9cu83ibalc8WfgD9cu83ibalcyfgq9cu83ibalcafgk9cu83ibalcKfgx9cu83ibalczfgm9cu83ibal9cu83iwal9cu83ibabaefc9WfhPabcefgsaofhednaiTmbcmcsarcb9kgzEhHcbhOcbhAcbhCcbhXcbhQindnaeaP9nmbcbhvxikaQcufhvadaCcdtfgoydbhLaocwfydbhKaoclfydbhYcbh8Adndninalc;abfavcsGcitfgoydlhEdndndnaoydbgoaL9hmbaEaYSmekdnaoaY9hmbaEaK9hmba8Acefh8AxekaoaK9hmeaEaL9hmea8Acdfh8Aka8Ac870mdaXcufhvada8AciGcx2goc:y1jjbfydbaCfcdtfydbhEadaocN1jjbfydbaCfcdtfydbhKadaoc:q1jjbfydbaCfcdtfydbhLcbhodnindnalavcsGcdtfydbaE9hmbaohYxdkcuhYavcufhvaocefgocz9hmbkkaEaOSgvaYcb9kaYaH9iGgoce7Gh3dndndndndnaYcbcsavEaoEgvcs9hmbarce9imbaEaEaAaEcefaASgvEgAcefSmecmcsavEhvkasava8Acdtc;WeGV86bbavcs9hmeaEaA9Rgvcetavc8F917hvinaeavcFb0crtavcFbGV86bbaecefheavcje6hoavcr4hvaoTmbkaEhAxdkcPhvasa8AcdtcPV86bbaEhAkavTmbavaH9imekalaXcdtfaEBdbaXcefcsGhXkaOa3fhOalc;abfaQcitfgvaKBdlavaEBdbalc;abfaQcefcsGgvcitfgoaEBdlaoaLBdbavcefhoxikavcufhva8Aclfg8Ac;ab9hmbkkdnadceaKaOScetaYaOSEcx2gvc:q1jjbfydbaCfcdtfydbgLTadavcN1jjbfydbaCfcdtfydbg8AceSGadavc:y1jjbfydbaCfcdtfydbgYcdSGaOcb9hGazGg5ce9hmbaw9cu83ibaD9cu83ibaq9cu83ibak9cu83ibax9cu83ibam9cu83ibal9cu83iwal9cu83ibcbhOkcbhEaXcufgvhodnindnalaocsGcdtfydba8A9hmbaEhKxdkcuhKaocufhoaEcefgEcz9hmbkkcbhodnindnalavcsGcdtfydbaY9hmbaohExdkcuhEavcufhvaocefgocz9hmbkkaOaLaOSg8Efh3dndnaKcm0mbaKcefhKxekcbcsa8Aa3SgvEhKa3avfh3kdndnaEcm0mbaEcefhExekcbcsaYa3SgvEhEa3avfh3kc9:cua8EEh8FaEaKcltVhocbhvdndndninavcj1jjbfRbbaocFeGSmeavcefgvcz9hmbxdkkaLaO9havcm0Va5Vmbasavc;WeV86bbxekasa8F86bbaeao86bbaecefhekdna8EmbaLaA9Rgvcetavc8F917hvinaeavcFb0gocrtavcFbGV86bbavcr4hvaecefheaombkaLhAkdnaKcs9hmba8AaA9Rgvcetavc8F917hvinaeavcFb0gocrtavcFbGV86bbavcr4hvaecefheaombka8AhAkdnaEcs9hmbaYaA9Rgvcetavc8F917hvinaeavcFb0gocrtavcFbGV86bbavcr4hvaecefheaombkaYhAkalaXcdtfaLBdbaXcefcsGhvdndnaKPzbeeeeeeeeeeeeeebekalavcdtfa8ABdbaXcdfcsGhvkdndnaEPzbeeeeeeeeeeeeeebekalavcdtfaYBdbavcefcsGhvkalc;abfaQcitfgoaLBdlaoa8ABdbalc;abfaQcefcsGcitfgoa8ABdlaoaYBdbalc;abfaQcdfcsGcitfgoaYBdlaoaLBdbaQcifhoavhXa3hOkascefhsaocsGhQaCcifgCai6mbkkcbhvaeaP0mbcbhvinaeavfavcj1jjbfRbb86bbavcefgvcz9hmbkaeab9Ravfhvkalc;aef8KjjjjbavkZeeucbhddninadcefgdc8F0meceadtae6mbkkadcrfcFeGcr9Uci2cdfabci9U2cHfkmbcbabBdN:kjjbk:ydewu8Jjjjjbcz9Rhlcbhvdnaicvfae0mbcbhvabcbRbN: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:Ohsxekcjjjj94hskdndnadcl9hmbabaDfgzas86bbazcifam86bbazcdfaw86bbazcefaP86bbxekabaifgzas87ebazcofam87ebazclfaw87ebazcdfaP87ebkalczfhlaicwfhiaDclfhDaecufgembkkk;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:Ohzxekcjjjj94hzkabaDfazcFFFrGaPcKtVBdbaDclfhDascufgsmbkkabarfhbalarfhladcefgdae9hmbkkaocjdf8Kjjjjbk;TkdCui998Jjjjjbc:qd9Rgv8Kjjjjbavc:Oefcbc;Kbz:tjjjb8AcbhodnadTmbcbhoaiTmbdnabae9hmbavcuadcdtgoadcFFFFi0Ecbyd1:kjjbHjjjjbbgeBd:OeavceBd1daeabaozMjjjb8Akavc:yefcwfcbBdbav9cb83i:yeavc:yefaeadaiavc:Oefz:njjjbcuaicdtgraicFFFFi0Egwcbyd1:kjjbHjjjjbbhoavc:Oefavyd1dgDcdtfaoBdbavaDcefgqBd1daoavyd:yegkarzMjjjbhxavc:Oefaqcdtfadci9Ugmcbyd1:kjjbHjjjjbbgoBdbavaDcdfgrBd1daocbamz:tjjjbhPavc:Oefarcdtfawcbyd1:kjjbHjjjjbbgsBdbavaDcifgqBd1daxhoashrinaralIdbalaoydbgwcwawcw6Ecdtfc;ebfIdbMUdbaoclfhoarclfhraicufgimbkavc:OefaqcdtfcuamcdtadcFFFF970Ecbyd1:kjjbHjjjjbbgqBdbavaDclfBd1ddnadci6mbamceamce0EhiaehoaqhrinarasaoydbcdtfIdbasaoclfydbcdtfIdbMasaocwfydbcdtfIdbMUdbaocxfhoarclfhraicufgimbkkavc;mbfhzavhoavyd:CehHavyd:GehOcbhwcbhrcbhAcehCinaohXcihQaearci2gLcdtfgocwfydbhKaoydbhdabaAcx2fgiclfaoclfydbgDBdbaiadBdbaicwfaKBdbaParfce86bbazaKBdwazaDBdlazadBdbaqarcdtfcbBdbdnawTmbcihQaXhiindnaiydbgoadSmbaoaDSmbaoaKSmbazaQcdtfaoBdbaQcefhQkaiclfhiawcufgwmbkkaAcefhAaxadcdtfgoaoydbcufBdbaxaDcdtfgoaoydbcufBdbaxaKcdtfgoaoydbcufBdbcbhwinaOaHaeawaLfcdtfydbcdtgifydbcdtfgKhoakaifgDydbgdhidnadTmbdninaoydbarSmeaoclfhoaicufgiTmdxbkkaoadcdtaKfc98fydbBdbaDaDydbcufBdbkawcefgwci9hmbkdndndnaQTmbcuhrJbbbbhYcbhoinasazaocdtfydbcdtgifgwIdbh8AawalcbaocefgDaocs0EcdtfIdbalaxaifydbgocwaocw6Ecdtfc;ebfIdbMgEUdbdnakaifydbgwTmbaEa8A:thEaOaHaifydbcdtfhoawcdthiinaqaoydbgwcdtfgdaEadIdbMg8AUdba8AaYaYa8A9DgdEhYawaradEhraoclfhoaic98fgimbkkaDhoaDaQ9hmbkarcu9hmekaCam9pmeindnaPaCfRbbmbaChrxdkamaCcefgC9hmbxdkkaQczaQcz6EhwazhoaXhzarcu9hmekkavyd1dhokaocdtavc:Oeffc98fhrdninaoTmearydbcbyd:e:kjjbH:bjjjbbarc98fhraocufhoxbkkavc:qdf8Kjjjjbk;UlevucuaicdtgvaicFFFFi0Egocbyd1:kjjbHjjjjbbhralalyd9GgwcdtfarBdbalawcefBd9GabarBdbaocbyd1:kjjbHjjjjbbhralalyd9GgocdtfarBdbalaocefBd9GabarBdlcuadcdtadcFFFFi0Ecbyd1:kjjbHjjjjbbhralalyd9GgocdtfarBdbalaocefBd9GabarBdwabydbcbavz:tjjjb8Aadci9UhwdnadTmbabydbhoaehladhrinaoalydbcdtfgvavydbcefBdbalclfhlarcufgrmbkkdnaiTmbabydbhlabydlhrcbhvaihoinaravBdbarclfhralydbavfhvalclfhlaocufgombkkdnadci6mbawceawce0EhDabydlhrabydwhvcbhlinaecwfydbhoaeclfydbhdaraeydbcdtfgwawydbgwcefBdbavawcdtfalBdbaradcdtfgdadydbgdcefBdbavadcdtfalBdbaraocdtfgoaoydbgocefBdbavaocdtfalBdbaecxfheaDalcefgl9hmbkkdnaiTmbabydlheabydbhlinaeaeydbalydb9RBdbalclfhlaeclfheaicufgimbkkkQbabaeadaic:01jjbz:mjjjbkQbabaeadaic:C:jjjbz:mjjjbk9DeeuabcFeaicdtz:tjjjbhlcbhbdnadTmbindnalaeydbcdtfgiydbcu9hmbaiabBdbabcefhbkaeclfheadcufgdmbkkabk9teiucbcbyd:m:kjjbgeabcifc98GfgbBd:m:kjjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaik;LeeeudndnaeabVciGTmbabhixekdndnadcz9pmbabhixekabhiinaiaeydbBdbaiclfaeclfydbBdbaicwfaecwfydbBdbaicxfaecxfydbBdbaeczfheaiczfhiadc9Wfgdcs0mbkkadcl6mbinaiaeydbBdbaeclfheaiclfhiadc98fgdci0mbkkdnadTmbinaiaeRbb86bbaicefhiaecefheadcufgdmbkkabk;aeedudndnabciGTmbabhixekaecFeGc:b:c:ew2hldndnadcz9pmbabhixekabhiinaialBdbaicxfalBdbaicwfalBdbaiclfalBdbaiczfhiadc9Wfgdcs0mbkkadcl6mbinaialBdbaiclfhiadc98fgdci0mbkkdnadTmbinaiae86bbaicefhiadcufgdmbkkabk9teiucbcbyd:m:kjjbgeabcrfc94GfgbBd:m:kjjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaik9:eiuZbhedndncbyd:m:kjjbgdaecztgi9nmbcuheadai9RcFFifcz4nbcuSmekadhekcbabae9Rcifc98Gcbyd:m:kjjbfgdBd:m:kjjbdnadZbcztge9nmbadae9RcFFifcz4nb8Akkk:Eddbcjwk:edb4: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:bc:eqkxebbbdbbbaWbb",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(p){n=p.instance,n.exports.__wasm_call_ctors(),n.exports.meshopt_encodeVertexVersion(0),n.exports.meshopt_encodeIndexVersion(1)});function o(p){for(var g=new Uint8Array(p.length),m=0;m<p.length;++m){var x=p.charCodeAt(m);g[m]=x>96?x-97:x>64?x-39:x+4}for(var b=0,m=0;m<p.length;++m)g[b++]=g[m]<60?t[g[m]]:(g[m]-60)*64+g[++m];return g.buffer.slice(0,b)}function r(p){if(!p)throw new Error("Assertion failed")}function s(p){return new Uint8Array(p.buffer,p.byteOffset,p.byteLength)}function a(p,g,m){var x=n.exports.sbrk,b=x(p.length*4),T=x(g*4),A=new Uint8Array(n.exports.memory.buffer),C=s(p);A.set(C,b),m&&m(b,b,p.length,g);var S=n.exports.meshopt_optimizeVertexFetchRemap(T,b,p.length,g);A=new Uint8Array(n.exports.memory.buffer);var w=new Uint32Array(g);new Uint8Array(w.buffer).set(A.subarray(T,T+g*4)),C.set(A.subarray(b,b+p.length*4)),x(b-x(0));for(var D=0;D<p.length;++D)p[D]=w[p[D]];return[w,S]}function c(p,g,m,x,b){var T=n.exports.sbrk,A=T(g),C=T(x*b),S=new Uint8Array(n.exports.memory.buffer);S.set(s(m),C);var w=p(A,g,C,x,b),D=new Uint8Array(w);return D.set(S.subarray(A,A+w)),T(A-T(0)),D}function l(p){for(var g=0,m=0;m<p.length;++m){var x=p[m];g=g<x?x:g}return g}function f(p,g){if(r(g==2||g==4),g==4)return new Uint32Array(p.buffer,p.byteOffset,p.byteLength/4);var m=new Uint16Array(p.buffer,p.byteOffset,p.byteLength/2);return new Uint32Array(m)}function d(p,g,m,x,b,T,A){var C=n.exports.sbrk,S=C(m*x),w=C(m*T),D=new Uint8Array(n.exports.memory.buffer);D.set(s(g),w),p(S,m,x,b,w,A);var O=new Uint8Array(m*x);return O.set(D.subarray(S,S+m*x)),C(S-C(0)),O}return{ready:i,supported:!0,reorderMesh:function(p,g,m){var x=g?m?n.exports.meshopt_optimizeVertexCacheStrip:n.exports.meshopt_optimizeVertexCache:void 0;return a(p,l(p)+1,x)},encodeVertexBuffer:function(p,g,m){r(m>0&&m<=256),r(m%4==0);var x=n.exports.meshopt_encodeVertexBufferBound(g,m);return c(n.exports.meshopt_encodeVertexBuffer,x,p,g,m)},encodeIndexBuffer:function(p,g,m){r(m==2||m==4),r(g%3==0);var x=f(p,m),b=n.exports.meshopt_encodeIndexBufferBound(g,l(x)+1);return c(n.exports.meshopt_encodeIndexBuffer,b,x,g,4)},encodeIndexSequence:function(p,g,m){r(m==2||m==4);var x=f(p,m),b=n.exports.meshopt_encodeIndexSequenceBound(g,l(x)+1);return c(n.exports.meshopt_encodeIndexSequence,b,x,g,4)},encodeGltfBuffer:function(p,g,m,x){var b={ATTRIBUTES:this.encodeVertexBuffer,TRIANGLES:this.encodeIndexBuffer,INDICES:this.encodeIndexSequence};return r(b[x]),b[x](p,g,m)},encodeFilterOct:function(p,g,m,x){return r(m==4||m==8),r(x>=1&&x<=16),d(n.exports.meshopt_encodeFilterOct,p,g,m,x,16)},encodeFilterQuat:function(p,g,m,x){return r(m==8),r(x>=4&&x<=16),d(n.exports.meshopt_encodeFilterQuat,p,g,m,x,16)},encodeFilterExp:function(p,g,m,x,b){r(m>0&&m%4==0),r(x>=1&&x<=24);var T={Separate:0,SharedVector:1,SharedComponent:2};return d(n.exports.meshopt_encodeFilterExp,p,g,m,x,m,b?T[b]:1)}}}();typeof zP=="object"&&typeof $G=="object"?$G.exports=Gk:typeof define=="function"&&define.amd?define([],function(){return Gk}):typeof zP=="object"?zP.MeshoptEncoder=Gk:(typeof self<"u"?self:zP).MeshoptEncoder=Gk});var Ine=Kn((HP,QG)=>{var Wk=function(){"use strict";var e="b9H79Tebbbe8Fv9Gbb9Gvuuuuueu9Giuuub9Geueu9Giuuueuikqbeeedddillviebeoweuec:q;iekr;leDo9TW9T9VV95dbH9F9F939H79T9F9J9H229F9Jt9VV7bb8A9TW79O9V9Wt9F9KW9J9V9KW9wWVtW949c919M9MWVbeY9TW79O9V9Wt9F9KW9J9V9KW69U9KW949c919M9MWVbdE9TW79O9V9Wt9F9KW9J9V9KW69U9KW949tWG91W9U9JWbiL9TW79O9V9Wt9F9KW9J9V9KWS9P2tWV9p9JtblK9TW79O9V9Wt9F9KW9J9V9KWS9P2tWV9r919HtbvL9TW79O9V9Wt9F9KW9J9V9KWS9P2tWVT949Wbol79IV9Rbrq:78Yqdbk:qzezu8Jjjjjbcj;eb9Rgv8Kjjjjbc9:hodnadcefal0mbcuhoaiRbbc:Ge9hmbavaialfgrad9Radz1jjjbhwcj;abad9UhlaicefhodnadTmbalc;WFbGglcjdalcjd6EhDcbhqinaqae9pmeaDaeaq9RaqaDfae6Egkcsfglcl4cifcd4hxdndndndnalc9WGgmTmbcbhPcehsawcjdfhzaohHinaraH9Rax6midnaraHaxfgo9RcK6mbczhlinalgic9Wfglawcj;cbffhOdndndndndnaHalco4fRbbalci4coG4ciGPlbedibkaO9cb83ibaOcwf9cb83ibxikaOaoRblaoRbbgAco4glalciSgCE86bbawcj;cbfaifglcGfaoclfaCfgORbbaAcl4ciGgCaCciSgCE86bbalcVfaOaCfgORbbaAcd4ciGgCaCciSgCE86bbalc7faOaCfgORbbaAciGgAaAciSgAE86bbalctfaOaAfgARbbaoRbegOco4gCaCciSgCE86bbalc91faAaCfgARbbaOcl4ciGgCaCciSgCE86bbalc4faAaCfgARbbaOcd4ciGgCaCciSgCE86bbalc93faAaCfgARbbaOciGgOaOciSgOE86bbalc94faAaOfgARbbaoRbdgOco4gCaCciSgCE86bbalc95faAaCfgARbbaOcl4ciGgCaCciSgCE86bbalc96faAaCfgARbbaOcd4ciGgCaCciSgCE86bbalc97faAaCfgARbbaOciGgOaOciSgOE86bbalc98faAaOfgORbbaoRbigoco4gAaAciSgAE86bbalc99faOaAfgORbbaocl4ciGgAaAciSgAE86bbalc9:faOaAfgORbbaocd4ciGgAaAciSgAE86bbalcufaOaAfglRbbaociGgoaociSgoE86bbalaofhoxdkaOaoRbwaoRbbgAcl4glalcsSgCE86bbawcj;cbfaifglcGfaocwfaCfgORbbaAcsGgAaAcsSgAE86bbalcVfaOaAfgORbbaoRbegAcl4gCaCcsSgCE86bbalc7faOaCfgORbbaAcsGgAaAcsSgAE86bbalctfaOaAfgORbbaoRbdgAcl4gCaCcsSgCE86bbalc91faOaCfgORbbaAcsGgAaAcsSgAE86bbalc4faOaAfgORbbaoRbigAcl4gCaCcsSgCE86bbalc93faOaCfgORbbaAcsGgAaAcsSgAE86bbalc94faOaAfgORbbaoRblgAcl4gCaCcsSgCE86bbalc95faOaCfgORbbaAcsGgAaAcsSgAE86bbalc96faOaAfgORbbaoRbvgAcl4gCaCcsSgCE86bbalc97faOaCfgORbbaAcsGgAaAcsSgAE86bbalc98faOaAfgORbbaoRbogAcl4gCaCcsSgCE86bbalc99faOaCfgORbbaAcsGgAaAcsSgAE86bbalc9:faOaAfgORbbaoRbrgocl4gAaAcsSgAE86bbalcufaOaAfglRbbaocsGgoaocsSgoE86bbalaofhoxekaOao8Pbb83bbaOcwfaocwf8Pbb83bbaoczfhokdnaiam9pmbaiczfhlarao9RcL0mekkaiam6miaoTmidnakTmbawaPfRbbhOawcj;cbfhlazhiakhHinaialRbbgAce4cbaAceG9R7aOfgO86bbaiadfhialcefhlaHcufgHmbkkazcefhzaPcefgPad6hsaohHaPad9hmexvkkcbhoasceGmdxikaoaxad2fhPdnakTmbcbhmcehsawcjdfhCinarao9Rax6miaoTmdaoaxfhoawamfRbbhOawcj;cbfhlaChiakhHinaialRbbgAce4cbaAceG9R7aOfgO86bbaiadfhialcefhlaHcufgHmbkaCcefhCamcefgmad6hsamad9hmbkaPhoxikcbhlcehsinarao9Rax6mdaoTmeaoaxfhoalcefglad6hsadal9hmbkaPhoxdkcbhoasceGTmekc9: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:OhDxekcjjjj94hDkalclf8Uebhqalcdf8UebhkabavcefciGaiVcetfaD87ebdndnaoak:YNgwJb;:FSNJbbbZJbbb:;awJbbbb9GEMgx:lJbbb9p9DTmbax:Ohkxekcjjjj94hkkabavcdfciGaiVcetfak87ebdndnaoaq:YNgoJb;:FSNJbbbZJbbb:;aoJbbbb9GEMgx:lJbbb9p9DTmbax:Ohqxekcjjjj94hqkabavcufciGaiVcetfaq87ebdndnJbbjZararN:tawawN:taoaoN:tgrJbbbbarJbbbb9GE:rJb;:FSNJbbbZMgr:lJbbb9p9DTmbar:Ohqxekcjjjj94hqkabavciGaiVcetfaq87ebalcwfhlaiclfhiaecufgembkkk9mbdnadcd4ae2gdTmbinababydbgecwtcw91:Yaece91cjjj;8ifcjjj98G::NUdbabclfhbadcufgdmbkkk9teiucbcbydj1jjbgeabcifc98GfgbBdj1jjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaik;LeeeudndnaeabVciGTmbabhixekdndnadcz9pmbabhixekabhiinaiaeydbBdbaiclfaeclfydbBdbaicwfaecwfydbBdbaicxfaecxfydbBdbaeczfheaiczfhiadc9Wfgdcs0mbkkadcl6mbinaiaeydbBdbaeclfheaiclfhiadc98fgdci0mbkkdnadTmbinaiaeRbb86bbaicefhiaecefheadcufgdmbkkabk;aeedudndnabciGTmbabhixekaecFeGc:b:c:ew2hldndnadcz9pmbabhixekabhiinaialBdbaicxfalBdbaicwfalBdbaiclfalBdbaiczfhiadc9Wfgdcs0mbkkadcl6mbinaialBdbaiclfhiadc98fgdci0mbkkdnadTmbinaiae86bbaicefhiadcufgdmbkkabkkkebcjwklz9Kbb",t="b9H79TebbbeKl9Gbb9Gvuuuuueu9Giuuub9Geueuikqbbebeedddilve9Weeeviebeoweuec:q;Aekr;leDo9TW9T9VV95dbH9F9F939H79T9F9J9H229F9Jt9VV7bb8A9TW79O9V9Wt9F9KW9J9V9KW9wWVtW949c919M9MWVbdY9TW79O9V9Wt9F9KW9J9V9KW69U9KW949c919M9MWVblE9TW79O9V9Wt9F9KW9J9V9KW69U9KW949tWG91W9U9JWbvL9TW79O9V9Wt9F9KW9J9V9KWS9P2tWV9p9JtboK9TW79O9V9Wt9F9KW9J9V9KWS9P2tWV9r919HtbrL9TW79O9V9Wt9F9KW9J9V9KWS9P2tWVT949Wbwl79IV9RbDq;a9tqlbzik9:evu8Jjjjjbcz9Rhbcbheincbhdcbhiinabcwfadfaicjuaead4ceGglE86bbaialfhiadcefgdcw9hmbkaec:q:yjjbfai86bbaecitc:q1jjbfab8Piw83ibaecefgecjd9hmbkk;d8JlHud97euo978Jjjjjbcj;kb9Rgv8Kjjjjbc9:hodnadcefal0mbcuhoaiRbbc:Ge9hmbavaialfgrad9Rad;8qbbcj;abad9UhoaicefhldnadTmbaoc;WFbGgocjdaocjd6EhwcbhDinaDae9pmeawaeaD9RaDawfae6Egqcsfgoc9WGgkci2hxakcethmaocl4cifcd4hPabaDad2fhscbhzdnincehHalhOcbhAdninaraO9RaP6miavcj;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:yjjbfRbbfhlxekaXalpbbbpklbalczfhlkaocdfhoaiczfgiak6mbkkalTmbaAci6hHalhOaAcefgAclSmdxekkcbhlaHceGmdkdnakTmbavcjdfazfhiavazfpbdbhYcbhXinaiavcj;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:SepxbbjZbbjZbbjZbbjZp:UepxbbjFbbjFbbjFbbjFp9op;Mepkbbadczfhdaeclfgeav6mbkkdnaval9pmbaialciGgecdtgdVcbc;abad9R;8kbaiabavcdtfgvad;8qbbdnaeTmbaiaipblbgocwp:Recwp:Sep;6eaocep:SepxbbjZbbjZbbjZbbjZp:UepxbbjFbbjFbbjFbbjFp9op;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 A=new Uint8Array(T.length),C=0;C<T.length;++C){var S=T.charCodeAt(C);A[C]=S>96?S-97:S>64?S-39:S+4}for(var w=0,C=0;C<T.length;++C)A[w++]=A[C]<60?i[A[C]]:(A[C]-60)*64+A[++C];return A.buffer.slice(0,w)}function c(T,A,C,S,w,D){var O=r.exports.sbrk,R=C+3&-4,L=O(R*S),N=O(w.length),_=new Uint8Array(r.exports.memory.buffer);_.set(w,N);var E=T(L,C,S,N,w.length);if(E==0&&D&&D(L,R,S),A.set(_.subarray(L,L+C*S)),O(L-O(0)),E!=0)throw new Error("Malformed buffer data: "+E)}var l={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 A={object:new Worker(T),pending:0,requests:{}};return A.object.onmessage=function(C){var S=C.data;A.pending-=S.count,A.requests[S.id][S.action](S.value),delete A.requests[S.id]},A}function m(T){for(var A="var instance; var ready = WebAssembly.instantiate(new Uint8Array(["+new Uint8Array(a(o))+"]), {}).then(function(result) { instance = result.instance; instance.exports.__wasm_call_ctors(); });self.onmessage = workerProcess;"+c.toString()+b.toString(),C=new Blob([A],{type:"text/javascript"}),S=URL.createObjectURL(C),w=0;w<T;++w)d[w]=g(S);URL.revokeObjectURL(S)}function x(T,A,C,S,w){for(var D=d[0],O=1;O<d.length;++O)d[O].pending<D.pending&&(D=d[O]);return new Promise(function(R,L){var N=new Uint8Array(C),_=p++;D.pending+=T,D.requests[_]={resolve:R,reject:L},D.object.postMessage({id:_,count:T,size:A,source:N,mode:S,filter:w},[N.buffer])})}function b(T){s.then(function(){var A=T.data;try{var C=new Uint8Array(A.count*A.size);c(r.exports[A.mode],C,A.count,A.size,A.source,r.exports[A.filter]),self.postMessage({id:A.id,count:A.count,action:"resolve",value:C},[C.buffer])}catch(S){self.postMessage({id:A.id,count:A.count,action:"reject",value:S})}})}return{ready:s,supported:!0,useWorkers:function(T){m(T)},decodeVertexBuffer:function(T,A,C,S,w){c(r.exports.meshopt_decodeVertexBuffer,T,A,C,S,r.exports[l[w]])},decodeIndexBuffer:function(T,A,C,S){c(r.exports.meshopt_decodeIndexBuffer,T,A,C,S)},decodeIndexSequence:function(T,A,C,S){c(r.exports.meshopt_decodeIndexSequence,T,A,C,S)},decodeGltfBuffer:function(T,A,C,S,w,D){c(r.exports[f[w]],T,A,C,S,r.exports[l[D]])},decodeGltfBufferAsync:function(T,A,C,S,w){return d.length>0?x(T,A,C,f[S],l[w]):s.then(function(){var D=new Uint8Array(T*A);return c(r.exports[f[S]],D,T,A,C,r.exports[l[w]]),D})}}}();typeof HP=="object"&&typeof QG=="object"?QG.exports=Wk:typeof define=="function"&&define.amd?define([],function(){return Wk}):typeof HP=="object"?HP.MeshoptDecoder=Wk:(typeof self<"u"?self:HP).MeshoptDecoder=Wk});var Pne=Kn((GP,JG)=>{var jk=function(){"use strict";var e="b9H79TebbbecD9Geueu9Geub9Gbb9Gquuuuuuu99uueu9Gvuuuuub9Gluuuue999Giuuue999Gluuuueu9Giuuueuimxdilvorbwwbewlve9Weiiviebeoweuecj;jekr7oo9TW9T9VV95dbH9F9F939H79T9F9J9H229F9Jt9VV7bbz9TW79O9V9Wt9F79P9T9W29P9M95beX9TW79O9V9Wt9F79P9T9W29P9M959t9J9H2Wbla9TW79O9V9Wt9F9V9Wt9P9T9P96W9wWVtW94SWt9J9O9sW9T9H9Wbvl79IV9RboDwebcekdDqq:XJxdbkp8WiKuP99Hu8Jjjjjbcj;bb9Rgq8KjjjjbaqcKfcbc;Kbz1jjjb8AaqcualcdtgkalcFFFFi0Egxcbyd;S1jjbHjjjjbbgmBdKaqceBd94aqamBdwaqaxcbyd;S1jjbHjjjjbbgPBd3aqcdBd94aqaPBdxaqcuadcitadcFFFFe0Ecbyd;S1jjbHjjjjbbgsBdaaqciBd94aqasBdzaqcwfaeadalcbz:cjjjbaqaxcbyd;S1jjbHjjjjbbgzBd8KaqclBd94aqaxcbyd;S1jjbHjjjjbbgHBdyaqcvBd94alcd4alfhOcehAinaAgCcethAaCaO6mbkcbhXaqcuaCcdtgAaCcFFFFi0Ecbyd;S1jjbHjjjjbbgOBd8SaqcoBd94aOcFeaAz1jjjbhQdnalTmbavcd4hLaCcufhKinaiaXaL2cdtfgYydlgCcH4aC7c:F:b:DD2aYydbgCcH4aC7c;D;O:B8J27aYydwgCcH4aC7c:3F;N8N27hOcbhCdndninaQaOaKGgOcdtfg8AydbgAcuSmeaiaAaL2cdtfaYcxz:ljjjbTmdaCcefgCaOfhOaCaK9nmbxdkka8AaXBdbaXhAkazaXcdtfaABdbaXcefgXal9hmbkcbhCaHhAinaAaCBdbaAclfhAalaCcefgC9hmbkcbhCazhAaHhOindnaCaAydbgKSmbaOaHaKcdtfgKydbBdbaKaCBdbkaAclfhAaOclfhOalaCcefgC9hmbkkcbhOaqalcbyd;S1jjbHjjjjbbgYBd8WaqcrBd94aqaxcbyd;S1jjbHjjjjbbgCBd80aqcwBd94aqaxcbyd;S1jjbHjjjjbbgABdUaqcDBd94aCcFeakz1jjjbhEaAcFeakz1jjjbh3dnalTmbascwfh5indnamaOcdtgCfydbg8ETmbasaPaCfydbcitfh8Fa3aCfhaaEaCfhXcbhLindndna8FaLcitfydbgQaO9hmbaXaOBdbaaaOBdbxekdnamaQcdtgkfydbghTmbasaPakfydbcitgCfydbaOSmeahcufh8Aa5aCfhAcbhCina8AaCSmeaCcefhCaAydbhKaAcwfhAaKaO9hmbkaCah6meka3akfgCaOaQaCydbcuSEBdbaXaQaOaXydbcuSEBdbkaLcefgLa8E9hmbkkaOcefgOal9hmbkazhAaHhOa3hKaEhLcbhCindndnaCaAydbg8A9hmbdnaCaOydbg8A9hmbaLydbh8AdnaKydbgQcu9hmba8Acu9hmbaYaCfcb86bbxikaYaCfhXdnaCaQSmbaCa8ASmbaXce86bbxikaXcl86bbxdkdnaCaHa8AcdtgQfydb9hmbdnaKydbgXcuSmbaCaXSmbaLydbgkcuSmbaCakSmba3aQfydbg8EcuSmba8Ea8ASmbaEaQfydbgQcuSmbaQa8ASmbdnazaXcdtfydbazaQcdtfydb9hmbazakcdtfydbaza8Ecdtfydb9hmbaYaCfcd86bbxlkaYaCfcl86bbxikaYaCfcl86bbxdkaYaCfcl86bbxekaYaCfaYa8AfRbb86bbkaAclfhAaOclfhOaKclfhKaLclfhLalaCcefgC9hmbkawceGTmbaYhCalhAindnaCRbbce9hmbaCcl86bbkaCcefhCaAcufgAmbkkcbhLcualcx2alc;v:Q;v:Qe0Ecbyd;S1jjbHjjjjbbhmaqcKfaqyd94gCcdtfamBdbaqaCcefgABd94amaialavz:djjjb8AaqcKfaAcdtfcualc8S2gAalc;D;O;f8U0Ecbyd;S1jjbHjjjjbbgOBdbaqaCcdfBd94aOcbaAz1jjjbhsdnadTmbaehAindnamaAclfydbg8Acx2fgCIdbamaAydbgQcx2fgOIdbgg:tg8JamaAcwfydbgXcx2fgKIdlaOIdlg8K:tg8LNaKIdbag:tg8MaCIdla8K:tg8NN:tgyayNa8NaKIdwaOIdwg8P:tgINa8LaCIdwa8P:tg8NN:tg8La8LNa8Na8MNaIa8JN:tg8Ja8JNMM:rg8MJbbbb9ETmbaya8M:vhya8Ja8M:vh8Ja8La8M:vh8LkasazaQcdtfydbc8S2fgCa8La8M:rg8Ma8LNNg8NaCIdbMUdbaCa8Ja8Ma8JNg8RNgIaCIdlMUdlaCaya8MayNg8SNgRaCIdwMUdwaCa8Ra8LNg8RaCIdxMUdxaCa8Sa8LNg8UaCIdzMUdzaCa8Sa8JNg8SaCIdCMUdCaCa8La8Maya8PNa8LagNa8Ka8JNMM:mg8KNggNg8LaCIdKMUdKaCa8JagNg8JaCId3MUd3aCayagNgyaCIdaMUdaaCaga8KNggaCId8KMUd8KaCa8MaCIdyMUdyasaza8Acdtfydbc8S2fgCa8NaCIdbMUdbaCaIaCIdlMUdlaCaRaCIdwMUdwaCa8RaCIdxMUdxaCa8UaCIdzMUdzaCa8SaCIdCMUdCaCa8LaCIdKMUdKaCa8JaCId3MUd3aCayaCIdaMUdaaCagaCId8KMUd8KaCa8MaCIdyMUdyasazaXcdtfydbc8S2fgCa8NaCIdbMUdbaCaIaCIdlMUdlaCaRaCIdwMUdwaCa8RaCIdxMUdxaCa8UaCIdzMUdzaCa8SaCIdCMUdCaCa8LaCIdKMUdKaCa8JaCId3MUd3aCayaCIdaMUdaaCagaCId8KMUd8KaCa8MaCIdyMUdyaAcxfhAaLcifgLad6mbkcbh8AaehXincbhAinaYaeaAc:81jjbfydbgQa8AfcdtfydbgOfRbbhCdndnaYaXaAfydbgKfRbbgLc99fcFeGcpe0mbaCceSmbaCcd9hmekdnaLcufcFeGce0mbaEaKcdtfydbaO9hmekdnaCcufcFeGce0mba3aOcdtfydbaK9hmekdnaLcv2aCfc:G1jjbfRbbTmbazaOcdtfydbazaKcdtfydb0mekJbbacJbbjZaCceSEh8MaLceShkamaeaQcdtc:81jjbfydba8Afcdtfydbcx2fhCdnamaOcx2fgLIdwamaKcx2fgQIdwg8K:tg8La8LNaLIdbaQIdbg8P:tg8Ja8JNaLIdlaQIdlg8N:tgyayNMM:rggJbbbb9ETmba8Lag:vh8Layag:vhya8Jag:vh8JkJbbaca8MakEh8SdnaCIdwa8K:tg8Ma8La8Ma8LNaCIdba8P:tgRa8JNayaCIdla8N:tg8RNMMgIN:tg8Ma8MNaRa8JaIN:tg8La8LNa8RayaIN:tg8Ja8JNMM:rgyJbbbb9ETmba8May:vh8Ma8Jay:vh8Ja8Lay:vh8LkasazaKcdtfydbc8S2fgCa8La8SagNgya8LNNgIaCIdbMUdbaCa8Jaya8JNg8SNgRaCIdlMUdlaCa8Maya8MNggNg8RaCIdwMUdwaCa8Sa8LNg8SaCIdxMUdxaCaga8LNg8UaCIdzMUdzaCaga8JNg8VaCIdCMUdCaCa8Laya8Ma8KNa8La8PNa8Na8JNMM:mg8KNggNg8LaCIdKMUdKaCa8JagNg8JaCId3MUd3aCa8MagNg8MaCIdaMUdaaCaga8KNggaCId8KMUd8KaCayaCIdyMUdyasazaOcdtfydbc8S2fgCaIaCIdbMUdbaCaRaCIdlMUdlaCa8RaCIdwMUdwaCa8SaCIdxMUdxaCa8UaCIdzMUdzaCa8VaCIdCMUdCaCa8LaCIdKMUdKaCa8JaCId3MUd3aCa8MaCIdaMUdaaCagaCId8KMUd8KaCayaCIdyMUdykaAclfgAcx9hmbkaXcxfhXa8Acifg8Aad6mbkkdnabaeSmbabaeadcdtz:hjjjb8Akcuadcx2adc;v:Q;v:Qe0Ecbyd;S1jjbHjjjjbbhaaqcKfaqyd94gCcdtfaaBdbaqaCcefgABd94aqcKfaAcdtfcuadcdtadcFFFFi0Ecbyd;S1jjbHjjjjbbg5BdbaqaCcdfgABd94aqcKfaAcdtfaxcbyd;S1jjbHjjjjbbgiBdbaqaCcifgABd94aqcKfaAcdtfalcbyd;S1jjbHjjjjbbg8WBdbaqaCclfBd94JbbbbhRdnadao9nmbararNh8Saacwfh8Xaqydwh8Yaqydxh8Zaqydzh80JbbbbhRinaqcwfabadgPalazz:cjjjbcbhhabhXcbhkincbhCindnazaXaCfydbgOcdtgefydbgLazabaCc:81jjbfydbakfcdtfydbgAcdtfydbg8ASmbaYaAfRbbgQcv2aYaOfRbbgKfc;q1jjbfRbbg8FaKcv2aQfg8Ec;q1jjbfRbbgdVcFeGTmbdna8Ec:G1jjbfRbbTmba8AaL0mekdnaKaQ9hmbaKcufcFeGce0mbaEaefydbaA9hmekaaahcx2fgKaAaOadcFeGgLEBdlaKaOaAaLEBdbaKaLa8FGcb9hBdwahcefhhkaCclfgCcx9hmbkaXcxfhXakcifgkaP6mbkdndnahTmbaahAahh8AinaAcwfgQJbbbbJbbjZasazaAydbgOcdtfydbc8S2fgCIdyg8L:va8LJbbbb9BEaCIdwamaAclfgeydbgKcx2fgLIdwg8LNaCIdzaLIdbg8JNaCIdaMg8Ma8MMMa8LNaCIdlaLIdlg8MNaCIdCa8LNaCId3Mg8La8LMMa8MNaCIdba8JNaCIdxa8MNaCIdKMg8La8LMMa8JNaCId8KMMM:lNgyJbbbbJbbjZasazaKaOaQydbgLEgQcdtfydbc8S2fgCIdyg8L:va8LJbbbb9BEaCIdwamaOaKaLEgXcx2fgLIdwg8LNaCIdzaLIdbg8JNaCIdaMg8Ma8MMMa8LNaCIdlaLIdlg8MNaCIdCa8LNaCId3Mg8La8LMMa8MNaCIdba8JNaCIdxa8MNaCIdKMg8La8LMMa8JNaCId8KMMM:lNg8Laya8L9FgCEUdbaeaKaXaCEBdbaAaOaQaCEBdbaAcxfhAa8Acufg8Ambkaqcjefcbcj;abz1jjjb8Aa8XhCahhAinaqcjefaCydbcO4c;8ZGfgOaOydbcefBdbaCcxfhCaAcufgAmbkcbhCcbhAinaqcjefaCfgOydbhKaOaABdbaKaAfhAaCclfgCcj;ab9hmbkcbhCa8XhAinaqcjefaAydbcO4c;8ZGfgOaOydbgOcefBdba5aOcdtfaCBdbaAcxfhAahaCcefgC9hmbkaPao9RgOci9Uh81dnalTmbcbhCaihAinaAaCBdbaAclfhAalaCcefgC9hmbkkcbhBa8Wcbalz1jjjbh83aOcO9UhUa81ce4h85cbh86cbhkdninaaa5akcdtfydbcx2fgXIdwg8Ja8S9Emea86a819pmeJFFuuh8Ldna85ah9pmbaaa5a85cdtfydbcx2fIdwJbb;aZNh8Lkdna8Ja8L9ETmba86aU0mdkdna83azaXydlg87cdtg88fydbgOfg89Rbba83azaXydbgecdtg8:fydbgZfgnRbbVmbdna8YaZcdtgCfydbgKTmba80a8ZaCfydbcitfhCamaOcx2fg8Ecwfhda8EclfhxamaZcx2fg8Fcwfhva8FclfhwcbhAcehQdnindnaiaCydbcdtfydbgLaOSmbaiaCclfydbcdtfydbg8AaOSmbama8Acx2fg8AIdbamaLcx2fgLIdbg8M:tg8LawIdbaLIdlgy:tggNa8FIdba8M:tg8Ka8AIdlay:tg8JN:ta8LaxIdbay:tg8PNa8EIdba8M:tg8Na8JN:tNa8JavIdbaLIdwgy:tgINaga8AIdway:tg8MN:ta8JadIdbay:tgyNa8Pa8MN:tNa8Ma8KNaIa8LN:ta8Ma8NNaya8LN:tNMMJbbbb9DmdkaCcwfhCaAcefgAaK6hQaKaA9hmbkkaQceGTmba85cefh85xekaXcwfhKasaOc8S2fgCasaZc8S2fgAIdbaCIdbMUdbaCaAIdlaCIdlMUdlaCaAIdwaCIdwMUdwaCaAIdxaCIdxMUdxaCaAIdzaCIdzMUdzaCaAIdCaCIdCMUdCaCaAIdKaCIdKMUdKaCaAId3aCId3MUd3aCaAIdaaCIdaMUdaaCaAId8KaCId8KMUd8KaCaAIdyaCIdyMUdydndndndnaYaefgARbbc9:fPdebdkaehCinaiaCcdtgCfaOBdbaHaCfydbgCae9hmbxikkaHa88fydbhCaHa8:fydbheaia8:fa87BdbaCh87kaiaecdtfa87Bdbkance86bba89ce86bbaKIdbg8LaRaRa8L9DEhRaBcefhBcecdaARbbceSEa86fh86kakcefgkah9hmbkkaBTmbdnalTmbcbhAaEhCindnaCydbgOcuSmbdnaAaiaOcdtgKfydbgO9hmbaEaKfydbhOkaCaOBdbkaCclfhCalaAcefgA9hmbkcbhAa3hCindnaCydbgOcuSmbdnaAaiaOcdtgKfydbgO9hmba3aKfydbhOkaCaOBdbkaCclfhCalaAcefgA9hmbkkcbhdabhCcbhLindnaiaCydbcdtfydbgAaiaCclfydbcdtfydbgOSmbaAaiaCcwfydbcdtfydbgKSmbaOaKSmbabadcdtfg8AaABdba8AclfaOBdba8AcwfaKBdbadcifhdkaCcxfhCaLcifgLaP9pmdxbkkaPhdxdkadao0mbkkdnaDTmbaDaR:rUdbkaqyd94gCcdtaqcKffc98fhzdninaCTmeazydbcbyd;W1jjbH:bjjjbbazc98fhzaCcufhCxbkkaqcj;bbf8Kjjjjbadk;pleouabydbcbaicdtz1jjjb8Aadci9UhvdnadTmbabydbhodnalTmbaehradhwinaoalarydbcdtfydbcdtfgDaDydbcefBdbarclfhrawcufgwmbxdkkaehradhwinaoarydbcdtfgDaDydbcefBdbarclfhrawcufgwmbkkdnaiTmbabydbhrabydlhwcbhDaihoinawaDBdbawclfhwarydbaDfhDarclfhraocufgombkkdnadci6mbavceavce0EhqabydlhvabydwhrinaecwfydbhwaeclfydbhDaeydbhodnalTmbalawcdtfydbhwalaDcdtfydbhDalaocdtfydbhokaravaocdtfgdydbcitfaDBdbaradydbcitfawBdladadydbcefBdbaravaDcdtfgdydbcitfawBdbaradydbcitfaoBdladadydbcefBdbaravawcdtfgwydbcitfaoBdbarawydbcitfaDBdlawawydbcefBdbaecxfheaqcufgqmbkkdnaiTmbabydlhrabydbhwinararydbawydb9RBdbawclfhwarclfhraicufgimbkkk:3ldouv998Jjjjjbca9Rglczfcwfcbyd11jjbBdbalcb8Pdj1jjb83izalcwfcbydN1jjbBdbalcb8Pd:m1jjb83ibdnadTmbaicd4hvdnabTmbavcdthocbhraehwinabarcx2fgiaearav2cdtfgDIdbUdbaiaDIdlUdlaiaDIdwUdwcbhiinalczfaifgDawaifIdbgqaDIdbgkakaq9EEUdbalaifgDaqaDIdbgkakaq9DEUdbaiclfgicx9hmbkawaofhwarcefgrad9hmbxdkkavcdthrcbhwincbhiinalczfaifgDaeaifIdbgqaDIdbgkakaq9EEUdbalaifgDaqaDIdbgkakaq9DEUdbaiclfgicx9hmbkaearfheawcefgwad9hmbkkalIdbalIdzgk:tJbbbb:xgqalIdlalIdCgx:tgmamaq9DEgqalIdwalIdKgm:tgPaPaq9DEhPdnabTmbadTmbJbbbbJbbjZaP:vaPJbbbb9BEhqinabaqabIdbak:tNUdbabclfgiaqaiIdbax:tNUdbabcwfgiaqaiIdbam:tNUdbabcxfhbadcufgdmbkkaPk:Qdidui99ducbhi8Jjjjjbca9Rglczfcwfcbyd11jjbBdbalcb8Pdj1jjb83izalcwfcbydN1jjbBdbalcb8Pd:m1jjb83ibdndnaembJbbjFhvJbbjFhoJbbjFhrxekadcd4cdthwincbhdinalczfadfgDabadfIdbgoaDIdbgrarao9EEUdbaladfgDaoaDIdbgrarao9DEUdbadclfgdcx9hmbkabawfhbaicefgiae9hmbkalIdwalIdK:thralIdlalIdC:thoalIdbalIdz:thvkavJbbbb:xgvaoaoav9DEgoararao9DEk9DeeuabcFeaicdtz1jjjbhlcbhbdnadTmbindnalaeydbcdtfgiydbcu9hmbaiabBdbabcefhbkaeclfheadcufgdmbkkabk9teiucbcbyd;01jjbgeabcifc98GfgbBd;01jjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaik;LeeeudndnaeabVciGTmbabhixekdndnadcz9pmbabhixekabhiinaiaeydbBdbaiclfaeclfydbBdbaicwfaecwfydbBdbaicxfaecxfydbBdbaeczfheaiczfhiadc9Wfgdcs0mbkkadcl6mbinaiaeydbBdbaeclfheaiclfhiadc98fgdci0mbkkdnadTmbinaiaeRbb86bbaicefhiaecefheadcufgdmbkkabk;aeedudndnabciGTmbabhixekaecFeGc:b:c:ew2hldndnadcz9pmbabhixekabhiinaialBdbaicxfalBdbaicwfalBdbaiclfalBdbaiczfhiadc9Wfgdcs0mbkkadcl6mbinaialBdbaiclfhiadc98fgdci0mbkkdnadTmbinaiae86bbaicefhiadcufgdmbkkabk9teiucbcbyd;01jjbgeabcrfc94GfgbBd;01jjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaik9:eiuZbhedndncbyd;01jjbgdaecztgi9nmbcuheadai9RcFFifcz4nbcuSmekadhekcbabae9Rcifc98Gcbyd;01jjbfgdBd;01jjbdnadZbcztge9nmbadae9RcFFifcz4nb8Akk6eiucbhidnadTmbdninabRbbglaeRbbgv9hmeaecefheabcefhbadcufgdmbxdkkalav9Rhikaikk:cedbcjwk9PFFuuFFuuFFuuFFuFFFuFFFuFbbbbbbbbeeebeebebbeeebebbbbbebebbbbbebbbdbbbbbbbbbbbbbbbeeeeebebbbbbebbbbbeebbbbbbc;Swkxebbbdbbbj9Kbb",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(p){n=p.instance,n.exports.__wasm_call_ctors()});function o(p){for(var g=new Uint8Array(p.length),m=0;m<p.length;++m){var x=p.charCodeAt(m);g[m]=x>96?x-97:x>64?x-39:x+4}for(var b=0,m=0;m<p.length;++m)g[b++]=g[m]<60?t[g[m]]:(g[m]-60)*64+g[++m];return g.buffer.slice(0,b)}function r(p){if(!p)throw new Error("Assertion failed")}function s(p){return new Uint8Array(p.buffer,p.byteOffset,p.byteLength)}function a(p,g){var m=n.exports.sbrk,x=m(p.length*4),b=m(g*4),T=new Uint8Array(n.exports.memory.buffer),A=s(p);T.set(A,x);var C=n.exports.meshopt_optimizeVertexFetchRemap(b,x,p.length,g);T=new Uint8Array(n.exports.memory.buffer);var S=new Uint32Array(g);new Uint8Array(S.buffer).set(T.subarray(b,b+g*4)),A.set(T.subarray(x,x+p.length*4)),m(x-m(0));for(var w=0;w<p.length;++w)p[w]=S[p[w]];return[S,C]}function c(p){for(var g=0,m=0;m<p.length;++m){var x=p[m];g=g<x?x:g}return g}function l(p,g,m,x,b,T,A,C,S){var w=n.exports.sbrk,D=w(4),O=w(m*4),R=w(b*T),L=w(m*4),N=new Uint8Array(n.exports.memory.buffer);N.set(s(x),R),N.set(s(g),L);var _=p(O,L,m,R,b,T,A,C,S,D);N=new Uint8Array(n.exports.memory.buffer);var E=new Uint32Array(_);s(E).set(N.subarray(O,O+_*4));var v=new Float32Array(1);return s(v).set(N.subarray(D,D+4)),w(D-w(0)),[E,v[0]]}function f(p,g,m,x){var b=n.exports.sbrk,T=b(m*x),A=new Uint8Array(n.exports.memory.buffer);A.set(s(g),T);var C=p(T,m,x);return b(T-b(0)),C}var d={LockBorder:1};return{ready:i,supported:!0,compactMesh:function(p){r(p instanceof Uint32Array||p instanceof Int32Array||p instanceof Uint16Array||p instanceof Int16Array),r(p.length%3==0);var g=p.BYTES_PER_ELEMENT==4?p:new Uint32Array(p);return a(g,c(p)+1)},simplify:function(p,g,m,x,b,T){r(p instanceof Uint32Array||p instanceof Int32Array||p instanceof Uint16Array||p instanceof Int16Array),r(p.length%3==0),r(g instanceof Float32Array),r(g.length%m==0),r(m>=3),r(x%3==0),r(b>=0&&b<=1);for(var A=0,C=0;C<(T?T.length:0);++C)A|=d[T[C]];var S=p.BYTES_PER_ELEMENT==4?p:new Uint32Array(p),w=l(n.exports.meshopt_simplify,S,p.length,g,g.length/m,m*4,x,b,A);return w[0]=p instanceof Uint32Array?w[0]:new p.constructor(w[0]),w},getScale:function(p,g){return r(p instanceof Float32Array),r(p.length%g==0),f(n.exports.meshopt_simplifyScale,p,p.length/g,g*4)}}}();typeof GP=="object"&&typeof JG=="object"?JG.exports=jk:typeof define=="function"&&define.amd?define([],function(){return jk}):typeof GP=="object"?GP.MeshoptSimplifier=jk:(typeof self<"u"?self:GP).MeshoptSimplifier=jk});var Rne=Kn((fXt,One)=>{var RNe=Dne(),MNe=Ine(),LNe=Pne();One.exports={MeshoptEncoder:RNe,MeshoptDecoder:MNe,MeshoptSimplifier:LNe}});var Jre=Kn((agn,Qre)=>{"use strict";Qre.exports=wHe;var dR=1e20;function wHe(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,l,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(l=c,c=Array(r*s),m=0,x=Math.floor(l.length/f);m<x;m++)c[m]=l[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),A=Array(a),C=Array(a),S=Array(a+1),w=Array(a);for(m=0,x=r*s;m<x;m++){var D=c[m];b[m]=D===1?0:D===0?dR:Math.pow(Math.max(0,.5-D),2),T[m]=D===1?dR:D===0?0:Math.pow(Math.max(0,D-.5),2)}Zre(b,r,s,A,C,w,S),Zre(T,r,s,A,C,w,S);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 Zre(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($re(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($re(i,o,r,s,t),a=0;a<t;a++)e[c*t+a]=Math.sqrt(o[a])}}function $re(e,t,n,i,o){n[0]=0,i[0]=-dR,i[1]=+dR;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]=+dR}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 ose=Kn((Egn,SU)=>{function BHe(){var e=0,t=1,n=2,i=3,o=4,r=5,s=6,a=7,c=8,l=9,f=10,d=11,p=12,g=13,m=14,x=15,b=16,T=17,A=0,C=1,S=2,w=3,D=4;function O(_,E){return 55296<=_.charCodeAt(E)&&_.charCodeAt(E)<=56319&&56320<=_.charCodeAt(E+1)&&_.charCodeAt(E+1)<=57343}function R(_,E){E===void 0&&(E=0);var v=_.charCodeAt(E);if(55296<=v&&v<=56319&&E<_.length-1){var I=v,M=_.charCodeAt(E+1);return 56320<=M&&M<=57343?(I-55296)*1024+(M-56320)+65536:I}if(56320<=v&&v<=57343&&E>=1){var I=_.charCodeAt(E-1),M=v;return 55296<=I&&I<=56319?(I-55296)*1024+(M-56320)+65536:M}return v}function L(_,E,v){var I=[_].concat(E).concat([v]),M=I[I.length-2],B=v,V=I.lastIndexOf(m);if(V>1&&I.slice(1,V).every(function(k){return k==i})&&[i,g,T].indexOf(_)==-1)return S;var U=I.lastIndexOf(o);if(U>0&&I.slice(1,U).every(function(k){return k==o})&&[p,o].indexOf(M)==-1)return I.filter(function(k){return k==o}).length%2==1?w:D;if(M==e&&B==t)return A;if(M==n||M==e||M==t)return B==m&&E.every(function(k){return k==i})?S:C;if(B==n||B==e||B==t)return C;if(M==s&&(B==s||B==a||B==l||B==f))return A;if((M==l||M==a)&&(B==a||B==c))return A;if((M==f||M==c)&&B==c)return A;if(B==i||B==x)return A;if(B==r)return A;if(M==p)return A;var G=I.indexOf(i)!=-1?I.lastIndexOf(i)-1:I.length-2;return[g,T].indexOf(I[G])!=-1&&I.slice(G+1,-1).every(function(k){return k==i})&&B==m||M==x&&[b,T].indexOf(B)!=-1?A:E.indexOf(o)!=-1?S:M==o&&B==o?A:C}this.nextBreak=function(_,E){if(E===void 0&&(E=0),E<0)return 0;if(E>=_.length-1)return _.length;for(var v=N(R(_,E)),I=[],M=E+1;M<_.length;M++)if(!O(_,M-1)){var B=N(R(_,M));if(L(v,I,B))return M;I.push(B)}return _.length},this.splitGraphemes=function(_){for(var E=[],v=0,I;(I=this.nextBreak(_,v))<_.length;)E.push(_.slice(v,I)),v=I;return v<_.length&&E.push(_.slice(v)),E},this.iterateGraphemes=function(_){var E=0,v={next:function(){var I,M;return(M=this.nextBreak(_,E))<_.length?(I=_.slice(E,M),E=M,{value:I,done:!1}):E<_.length?(I=_.slice(E),E=_.length,{value:I,done:!1}):{value:void 0,done:!0}}.bind(this)};return typeof Symbol<"u"&&Symbol.iterator&&(v[Symbol.iterator]=function(){return v}),v},this.countGraphemes=function(_){for(var E=0,v=0,I;(I=this.nextBreak(_,v))<_.length;)v=I,E++;return v<_.length&&E++,E};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?l: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 SU<"u"&&SU.exports&&(SU.exports=BHe)});var Vse=Kn((lTn,b9)=>{"use strict";b9.exports=RU;b9.exports.default=RU;function RU(e,t,n){n=n||2;var i=t&&t.length,o=i?t[0]*n:e.length,r=Bse(e,0,o,n,!0),s=[];if(!r||r.next===r.prev)return s;var a,c,l,f,d,p,g;if(i&&(r=zGe(e,t,r,n)),e.length>80*n){a=l=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>l&&(l=d),p>f&&(f=p);g=Math.max(l-a,f-c),g=g!==0?32767/g:0}return FR(r,s,n,a,c,g,0),s}function Bse(e,t,n,i,o){var r,s;if(o===x9(e,t,n,i)>0)for(r=t;r<n;r+=i)s=Fse(r,e[r],e[r+1],s);else for(r=n-i;r>=t;r-=i)s=Fse(r,e[r],e[r+1],s);return s&&MU(s,s.next)&&(kR(s),s=s.next),s}function Jx(e,t){if(!e)return e;t||(t=e);var n=e,i;do if(i=!1,!n.steiner&&(MU(n,n.next)||Dr(n.prev,n,n.next)===0)){if(kR(n),n=t=n.prev,n===n.next)break;i=!0}else n=n.next;while(i||n!==t);return t}function FR(e,t,n,i,o,r,s){if(e){!s&&r&&qGe(e,i,o,r);for(var a=e,c,l;e.prev!==e.next;){if(c=e.prev,l=e.next,r?kGe(e,i,o,r):BGe(e)){t.push(c.i/n|0),t.push(e.i/n|0),t.push(l.i/n|0),kR(e),e=l.next,a=l.next;continue}if(e=l,e===a){s?s===1?(e=UGe(Jx(e),t,n),FR(e,t,n,i,o,r,2)):s===2&&VGe(e,t,n,i,o,r):FR(Jx(e),t,n,i,o,r,1);break}}}}function BGe(e){var t=e.prev,n=e,i=e.next;if(Dr(t,n,i)>=0)return!1;for(var o=t.x,r=n.x,s=i.x,a=t.y,c=n.y,l=i.y,f=o<r?o<s?o:s:r<s?r:s,d=a<c?a<l?a:l:c<l?c:l,p=o>r?o>s?o:s:r>s?r:s,g=a>c?a>l?a:l:c>l?c:l,m=i.next;m!==t;){if(m.x>=f&&m.x<=p&&m.y>=d&&m.y<=g&&mC(o,a,r,c,s,l,m.x,m.y)&&Dr(m.prev,m,m.next)>=0)return!1;m=m.next}return!0}function kGe(e,t,n,i){var o=e.prev,r=e,s=e.next;if(Dr(o,r,s)>=0)return!1;for(var a=o.x,c=r.x,l=s.x,f=o.y,d=r.y,p=s.y,g=a<c?a<l?a:l:c<l?c:l,m=f<d?f<p?f:p:d<p?d:p,x=a>c?a>l?a:l:c>l?c:l,b=f>d?f>p?f:p:d>p?d:p,T=g9(g,m,t,n,i),A=g9(x,b,t,n,i),C=e.prevZ,S=e.nextZ;C&&C.z>=T&&S&&S.z<=A;){if(C.x>=g&&C.x<=x&&C.y>=m&&C.y<=b&&C!==o&&C!==s&&mC(a,f,c,d,l,p,C.x,C.y)&&Dr(C.prev,C,C.next)>=0||(C=C.prevZ,S.x>=g&&S.x<=x&&S.y>=m&&S.y<=b&&S!==o&&S!==s&&mC(a,f,c,d,l,p,S.x,S.y)&&Dr(S.prev,S,S.next)>=0))return!1;S=S.nextZ}for(;C&&C.z>=T;){if(C.x>=g&&C.x<=x&&C.y>=m&&C.y<=b&&C!==o&&C!==s&&mC(a,f,c,d,l,p,C.x,C.y)&&Dr(C.prev,C,C.next)>=0)return!1;C=C.prevZ}for(;S&&S.z<=A;){if(S.x>=g&&S.x<=x&&S.y>=m&&S.y<=b&&S!==o&&S!==s&&mC(a,f,c,d,l,p,S.x,S.y)&&Dr(S.prev,S,S.next)>=0)return!1;S=S.nextZ}return!0}function UGe(e,t,n){var i=e;do{var o=i.prev,r=i.next.next;!MU(o,r)&&kse(o,i,i.next,r)&&BR(o,r)&&BR(r,o)&&(t.push(o.i/n|0),t.push(i.i/n|0),t.push(r.i/n|0),kR(i),kR(i.next),i=e=r),i=i.next}while(i!==e);return Jx(i)}function VGe(e,t,n,i,o,r){var s=e;do{for(var a=s.next.next;a!==s.prev;){if(s.i!==a.i&&KGe(s,a)){var c=Use(s,a);s=Jx(s,s.next),c=Jx(c,c.next),FR(s,t,n,i,o,r,0),FR(c,t,n,i,o,r,0);return}a=a.next}s=s.next}while(s!==e)}function zGe(e,t,n,i){var o=[],r,s,a,c,l;for(r=0,s=t.length;r<s;r++)a=t[r]*i,c=r<s-1?t[r+1]*i:e.length,l=Bse(e,a,c,i,!1),l===l.next&&(l.steiner=!0),o.push(XGe(l));for(o.sort(HGe),r=0;r<o.length;r++)n=GGe(o[r],n);return n}function HGe(e,t){return e.x-t.x}function GGe(e,t){var n=WGe(e,t);if(!n)return t;var i=Use(n,e);return Jx(i,i.next),Jx(n,n.next)}function WGe(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,l=s.x,f=s.y,d=1/0,p;n=s;do i>=n.x&&n.x>=l&&i!==n.x&&mC(o<f?i:r,o,l,f,o<f?r:i,o,n.x,n.y)&&(p=Math.abs(o-n.y)/(i-n.x),BR(n,e)&&(p<d||p===d&&(n.x>s.x||n.x===s.x&&jGe(s,n)))&&(s=n,d=p)),n=n.next;while(n!==c);return s}function jGe(e,t){return Dr(e.prev,e,t.prev)<0&&Dr(t.next,e,e.next)<0}function qGe(e,t,n,i){var o=e;do o.z===0&&(o.z=g9(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,YGe(o)}function YGe(e){var t,n,i,o,r,s,a,c,l=1;do{for(n=e,e=null,r=null,s=0;n;){for(s++,i=n,a=0,t=0;t<l&&(a++,i=i.nextZ,!!i);t++);for(c=l;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,l*=2}while(s>1);return e}function g9(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 XGe(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 mC(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 KGe(e,t){return e.next.i!==t.i&&e.prev.i!==t.i&&!ZGe(e,t)&&(BR(e,t)&&BR(t,e)&&$Ge(e,t)&&(Dr(e.prev,e,t.prev)||Dr(e,t.prev,t))||MU(e,t)&&Dr(e.prev,e,e.next)>0&&Dr(t.prev,t,t.next)>0)}function Dr(e,t,n){return(t.y-e.y)*(n.x-t.x)-(t.x-e.x)*(n.y-t.y)}function MU(e,t){return e.x===t.x&&e.y===t.y}function kse(e,t,n,i){var o=OU(Dr(e,t,n)),r=OU(Dr(e,t,i)),s=OU(Dr(n,i,e)),a=OU(Dr(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 OU(e){return e>0?1:e<0?-1:0}function ZGe(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&&kse(n,n.next,e,t))return!0;n=n.next}while(n!==e);return!1}function BR(e,t){return Dr(e.prev,e,e.next)<0?Dr(e,t,e.next)>=0&&Dr(e,e.prev,t)>=0:Dr(e,t,e.prev)<0||Dr(e,e.next,t)<0}function $Ge(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 Use(e,t){var n=new y9(e.i,e.x,e.y),i=new y9(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 Fse(e,t,n,i){var o=new y9(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 kR(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 y9(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}RU.deviation=function(e,t,n,i){var o=t&&t.length,r=o?t[0]*n:e.length,s=Math.abs(x9(e,0,r,n));if(o)for(var a=0,c=t.length;a<c;a++){var l=t[a]*n,f=a<c-1?t[a+1]*n:e.length;s-=Math.abs(x9(e,l,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 x9(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}RU.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 lfe=Kn((XW,KW)=>{(function(e,t){typeof XW=="object"&&typeof KW<"u"?KW.exports=t():typeof define=="function"&&define.amd?define(t):(e=e||self,e.RBush=t())})(XW,function(){"use strict";function e(C,S,w,D,O){t(C,S,w||0,D||C.length-1,O||i)}function t(C,S,w,D,O){for(;D>w;){if(D-w>600){var R=D-w+1,L=S-w+1,N=Math.log(R),_=.5*Math.exp(2*N/3),E=.5*Math.sqrt(N*_*(R-_)/R)*(L-R/2<0?-1:1),v=Math.max(w,Math.floor(S-L*_/R+E)),I=Math.min(D,Math.floor(S+(R-L)*_/R+E));t(C,S,v,I,O)}var M=C[S],B=w,V=D;for(n(C,w,S),O(C[D],M)>0&&n(C,w,D);B<V;){for(n(C,B,V),B++,V--;O(C[B],M)<0;)B++;for(;O(C[V],M)>0;)V--}O(C[w],M)===0?n(C,w,V):(V++,n(C,V,D)),V<=S&&(w=V+1),S<=V&&(D=V-1)}}function n(C,S,w){var D=C[S];C[S]=C[w],C[w]=D}function i(C,S){return C<S?-1:C>S?1:0}var o=function(S){S===void 0&&(S=9),this._maxEntries=Math.max(4,S),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(S){var w=this.data,D=[];if(!b(S,w))return D;for(var O=this.toBBox,R=[];w;){for(var L=0;L<w.children.length;L++){var N=w.children[L],_=w.leaf?O(N):N;b(S,_)&&(w.leaf?D.push(N):x(S,_)?this._all(N,D):R.push(N))}w=R.pop()}return D},o.prototype.collides=function(S){var w=this.data;if(!b(S,w))return!1;for(var D=[];w;){for(var O=0;O<w.children.length;O++){var R=w.children[O],L=w.leaf?this.toBBox(R):R;if(b(S,L)){if(w.leaf||x(S,L))return!0;D.push(R)}}w=D.pop()}return!1},o.prototype.load=function(S){if(!(S&&S.length))return this;if(S.length<this._minEntries){for(var w=0;w<S.length;w++)this.insert(S[w]);return this}var D=this._build(S.slice(),0,S.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(S){return S&&this._insert(S,this.data.height-1),this},o.prototype.clear=function(){return this.data=T([]),this},o.prototype.remove=function(S,w){if(!S)return this;for(var D=this.data,O=this.toBBox(S),R=[],L=[],N,_,E;D||R.length;){if(D||(D=R.pop(),_=R[R.length-1],N=L.pop(),E=!0),D.leaf){var v=r(S,D.children,w);if(v!==-1)return D.children.splice(v,1),R.push(D),this._condense(R),this}!E&&!D.leaf&&x(D,O)?(R.push(D),L.push(N),N=0,_=D,D=D.children[0]):_?(N++,D=_.children[N],E=!1):D=null}return this},o.prototype.toBBox=function(S){return S},o.prototype.compareMinX=function(S,w){return S.minX-w.minX},o.prototype.compareMinY=function(S,w){return S.minY-w.minY},o.prototype.toJSON=function(){return this.data},o.prototype.fromJSON=function(S){return this.data=S,this},o.prototype._all=function(S,w){for(var D=[];S;)S.leaf?w.push.apply(w,S.children):D.push.apply(D,S.children),S=D.pop();return w},o.prototype._build=function(S,w,D,O){var R=D-w+1,L=this._maxEntries,N;if(R<=L)return N=T(S.slice(w,D+1)),s(N,this.toBBox),N;O||(O=Math.ceil(Math.log(R)/Math.log(L)),L=Math.ceil(R/Math.pow(L,O-1))),N=T([]),N.leaf=!1,N.height=O;var _=Math.ceil(R/L),E=_*Math.ceil(Math.sqrt(L));A(S,w,D,E,this.compareMinX);for(var v=w;v<=D;v+=E){var I=Math.min(v+E-1,D);A(S,v,I,_,this.compareMinY);for(var M=v;M<=I;M+=_){var B=Math.min(M+_-1,I);N.children.push(this._build(S,M,B,O-1))}}return s(N,this.toBBox),N},o.prototype._chooseSubtree=function(S,w,D,O){for(;O.push(w),!(w.leaf||O.length-1===D);){for(var R=1/0,L=1/0,N=void 0,_=0;_<w.children.length;_++){var E=w.children[_],v=d(E),I=g(S,E)-v;I<L?(L=I,R=v<R?v:R,N=E):I===L&&v<R&&(R=v,N=E)}w=N||w.children[0]}return w},o.prototype._insert=function(S,w,D){var O=D?S:this.toBBox(S),R=[],L=this._chooseSubtree(O,this.data,w,R);for(L.children.push(S),c(L,O);w>=0&&R[w].children.length>this._maxEntries;)this._split(R,w),w--;this._adjustParentBBoxes(O,R,w)},o.prototype._split=function(S,w){var D=S[w],O=D.children.length,R=this._minEntries;this._chooseSplitAxis(D,R,O);var L=this._chooseSplitIndex(D,R,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),w?S[w-1].children.push(N):this._splitRoot(D,N)},o.prototype._splitRoot=function(S,w){this.data=T([S,w]),this.data.height=S.height+1,this.data.leaf=!1,s(this.data,this.toBBox)},o.prototype._chooseSplitIndex=function(S,w,D){for(var O,R=1/0,L=1/0,N=w;N<=D-w;N++){var _=a(S,0,N,this.toBBox),E=a(S,N,D,this.toBBox),v=m(_,E),I=d(_)+d(E);v<R?(R=v,O=N,L=I<L?I:L):v===R&&I<L&&(L=I,O=N)}return O||D-w},o.prototype._chooseSplitAxis=function(S,w,D){var O=S.leaf?this.compareMinX:l,R=S.leaf?this.compareMinY:f,L=this._allDistMargin(S,w,D,O),N=this._allDistMargin(S,w,D,R);L<N&&S.children.sort(O)},o.prototype._allDistMargin=function(S,w,D,O){S.children.sort(O);for(var R=this.toBBox,L=a(S,0,w,R),N=a(S,D-w,D,R),_=p(L)+p(N),E=w;E<D-w;E++){var v=S.children[E];c(L,S.leaf?R(v):v),_+=p(L)}for(var I=D-w-1;I>=w;I--){var M=S.children[I];c(N,S.leaf?R(M):M),_+=p(N)}return _},o.prototype._adjustParentBBoxes=function(S,w,D){for(var O=D;O>=0;O--)c(w[O],S)},o.prototype._condense=function(S){for(var w=S.length-1,D=void 0;w>=0;w--)S[w].children.length===0?w>0?(D=S[w-1].children,D.splice(D.indexOf(S[w]),1)):this.clear():s(S[w],this.toBBox)};function r(C,S,w){if(!w)return S.indexOf(C);for(var D=0;D<S.length;D++)if(w(C,S[D]))return D;return-1}function s(C,S){a(C,0,C.children.length,S,C)}function a(C,S,w,D,O){O||(O=T(null)),O.minX=1/0,O.minY=1/0,O.maxX=-1/0,O.maxY=-1/0;for(var R=S;R<w;R++){var L=C.children[R];c(O,C.leaf?D(L):L)}return O}function c(C,S){return C.minX=Math.min(C.minX,S.minX),C.minY=Math.min(C.minY,S.minY),C.maxX=Math.max(C.maxX,S.maxX),C.maxY=Math.max(C.maxY,S.maxY),C}function l(C,S){return C.minX-S.minX}function f(C,S){return C.minY-S.minY}function d(C){return(C.maxX-C.minX)*(C.maxY-C.minY)}function p(C){return C.maxX-C.minX+(C.maxY-C.minY)}function g(C,S){return(Math.max(S.maxX,C.maxX)-Math.min(S.minX,C.minX))*(Math.max(S.maxY,C.maxY)-Math.min(S.minY,C.minY))}function m(C,S){var w=Math.max(C.minX,S.minX),D=Math.max(C.minY,S.minY),O=Math.min(C.maxX,S.maxX),R=Math.min(C.maxY,S.maxY);return Math.max(0,O-w)*Math.max(0,R-D)}function x(C,S){return C.minX<=S.minX&&C.minY<=S.minY&&S.maxX<=C.maxX&&S.maxY<=C.maxY}function b(C,S){return S.minX<=C.maxX&&S.minY<=C.maxY&&S.maxX>=C.minX&&S.maxY>=C.minY}function T(C){return{children:C,height:1,leaf:!0,minX:1/0,minY:1/0,maxX:-1/0,maxY:-1/0}}function A(C,S,w,D,O){for(var R=[S,w];R.length;)if(w=R.pop(),S=R.pop(),!(w-S<=D)){var L=S+Math.ceil((w-S)/D/2)*D;e(C,L,S,w,O),R.push(S,L,L,w)}}return o})});var cde=Kn((PV,ade)=>{(function(e,t){typeof PV=="object"&&typeof ade<"u"?t(PV):typeof define=="function"&&define.amd?define(["exports"],t):(e=e||self,t(e.topojson=e.topojson||{}))})(PV,function(e){"use strict";function t(C){return C}function n(C){if(C==null)return t;var S,w,D=C.scale[0],O=C.scale[1],R=C.translate[0],L=C.translate[1];return function(N,_){_||(S=w=0);var E=2,v=N.length,I=new Array(v);for(I[0]=(S+=N[0])*D+R,I[1]=(w+=N[1])*O+L;E<v;)I[E]=N[E],++E;return I}}function i(C){var S=n(C.transform),w,D=1/0,O=D,R=-D,L=-D;function N(E){E=S(E),E[0]<D&&(D=E[0]),E[0]>R&&(R=E[0]),E[1]<O&&(O=E[1]),E[1]>L&&(L=E[1])}function _(E){switch(E.type){case"GeometryCollection":E.geometries.forEach(_);break;case"Point":N(E.coordinates);break;case"MultiPoint":E.coordinates.forEach(N);break}}C.arcs.forEach(function(E){for(var v=-1,I=E.length,M;++v<I;)M=S(E[v],v),M[0]<D&&(D=M[0]),M[0]>R&&(R=M[0]),M[1]<O&&(O=M[1]),M[1]>L&&(L=M[1])});for(w in C.objects)_(C.objects[w]);return[D,O,R,L]}function o(C,S){for(var w,D=C.length,O=D-S;O<--D;)w=C[O],C[O++]=C[D],C[D]=w}function r(C,S){return typeof S=="string"&&(S=C.objects[S]),S.type==="GeometryCollection"?{type:"FeatureCollection",features:S.geometries.map(function(w){return s(C,w)})}:s(C,S)}function s(C,S){var w=S.id,D=S.bbox,O=S.properties==null?{}:S.properties,R=a(C,S);return w==null&&D==null?{type:"Feature",properties:O,geometry:R}:D==null?{type:"Feature",id:w,properties:O,geometry:R}:{type:"Feature",id:w,bbox:D,properties:O,geometry:R}}function a(C,S){var w=n(C.transform),D=C.arcs;function O(v,I){I.length&&I.pop();for(var M=D[v<0?~v:v],B=0,V=M.length;B<V;++B)I.push(w(M[B],B));v<0&&o(I,V)}function R(v){return w(v)}function L(v){for(var I=[],M=0,B=v.length;M<B;++M)O(v[M],I);return I.length<2&&I.push(I[0]),I}function N(v){for(var I=L(v);I.length<4;)I.push(I[0]);return I}function _(v){return v.map(N)}function E(v){var I=v.type,M;switch(I){case"GeometryCollection":return{type:I,geometries:v.geometries.map(E)};case"Point":M=R(v.coordinates);break;case"MultiPoint":M=v.coordinates.map(R);break;case"LineString":M=L(v.arcs);break;case"MultiLineString":M=v.arcs.map(L);break;case"Polygon":M=_(v.arcs);break;case"MultiPolygon":M=v.arcs.map(_);break;default:return null}return{type:I,coordinates:M}}return E(S)}function c(C,S){var w={},D={},O={},R=[],L=-1;S.forEach(function(E,v){var I=C.arcs[E<0?~E:E],M;I.length<3&&!I[1][0]&&!I[1][1]&&(M=S[++L],S[L]=E,S[v]=M)}),S.forEach(function(E){var v=N(E),I=v[0],M=v[1],B,V;if(B=O[I])if(delete O[B.end],B.push(E),B.end=M,V=D[M]){delete D[V.start];var U=V===B?B:B.concat(V);D[U.start=B.start]=O[U.end=V.end]=U}else D[B.start]=O[B.end]=B;else if(B=D[M])if(delete D[B.start],B.unshift(E),B.start=I,V=O[I]){delete O[V.end];var G=V===B?B:V.concat(B);D[G.start=V.start]=O[G.end=B.end]=G}else D[B.start]=O[B.end]=B;else B=[E],D[B.start=I]=O[B.end=M]=B});function N(E){var v=C.arcs[E<0?~E:E],I=v[0],M;return C.transform?(M=[0,0],v.forEach(function(B){M[0]+=B[0],M[1]+=B[1]})):M=v[v.length-1],E<0?[M,I]:[I,M]}function _(E,v){for(var I in E){var M=E[I];delete v[M.start],delete M.start,delete M.end,M.forEach(function(B){w[B<0?~B:B]=1}),R.push(M)}}return _(O,D),_(D,O),S.forEach(function(E){w[E<0?~E:E]||R.push([E])}),R}function l(C){return a(C,f.apply(this,arguments))}function f(C,S,w){var D,O,R;if(arguments.length>1)D=d(C,S,w);else for(O=0,D=new Array(R=C.arcs.length);O<R;++O)D[O]=O;return{type:"MultiLineString",arcs:c(C,D)}}function d(C,S,w){var D=[],O=[],R;function L(I){var M=I<0?~I:I;(O[M]||(O[M]=[])).push({i:I,g:R})}function N(I){I.forEach(L)}function _(I){I.forEach(N)}function E(I){I.forEach(_)}function v(I){switch(R=I,I.type){case"GeometryCollection":I.geometries.forEach(v);break;case"LineString":N(I.arcs);break;case"MultiLineString":case"Polygon":_(I.arcs);break;case"MultiPolygon":E(I.arcs);break}}return v(S),O.forEach(w==null?function(I){D.push(I[0].i)}:function(I){w(I[0].g,I[I.length-1].g)&&D.push(I[0].i)}),D}function p(C){for(var S=-1,w=C.length,D,O=C[w-1],R=0;++S<w;)D=O,O=C[S],R+=D[0]*O[1]-D[1]*O[0];return Math.abs(R)}function g(C){return a(C,m.apply(this,arguments))}function m(C,S){var w={},D=[],O=[];S.forEach(R);function R(_){switch(_.type){case"GeometryCollection":_.geometries.forEach(R);break;case"Polygon":L(_.arcs);break;case"MultiPolygon":_.arcs.forEach(L);break}}function L(_){_.forEach(function(E){E.forEach(function(v){(w[v=v<0?~v:v]||(w[v]=[])).push(_)})}),D.push(_)}function N(_){return p(a(C,{type:"Polygon",arcs:[_]}).coordinates[0])}return D.forEach(function(_){if(!_._){var E=[],v=[_];for(_._=1,O.push(E);_=v.pop();)E.push(_),_.forEach(function(I){I.forEach(function(M){w[M<0?~M:M].forEach(function(B){B._||(B._=1,v.push(B))})})})}}),D.forEach(function(_){delete _._}),{type:"MultiPolygon",arcs:O.map(function(_){var E=[],v;if(_.forEach(function(U){U.forEach(function(G){G.forEach(function(k){w[k<0?~k:k].length<2&&E.push(k)})})}),E=c(C,E),(v=E.length)>1)for(var I=1,M=N(E[0]),B,V;I<v;++I)(B=N(E[I]))>M&&(V=E[0],E[0]=E[I],E[I]=V,M=B);return E}).filter(function(_){return _.length>0})}}function x(C,S){for(var w=0,D=C.length;w<D;){var O=w+D>>>1;C[O]<S?w=O+1:D=O}return w}function b(C){var S={},w=C.map(function(){return[]});function D(U,G){U.forEach(function(k){k<0&&(k=~k);var Y=S[k];Y?Y.push(G):S[k]=[G]})}function O(U,G){U.forEach(function(k){D(k,G)})}function R(U,G){U.type==="GeometryCollection"?U.geometries.forEach(function(k){R(k,G)}):U.type in L&&L[U.type](U.arcs,G)}var L={LineString:D,MultiLineString:O,Polygon:O,MultiPolygon:function(U,G){U.forEach(function(k){O(k,G)})}};C.forEach(R);for(var N in S)for(var _=S[N],E=_.length,v=0;v<E;++v)for(var I=v+1;I<E;++I){var M=_[v],B=_[I],V;(V=w[M])[N=x(V,B)]!==B&&V.splice(N,0,B),(V=w[B])[N=x(V,M)]!==M&&V.splice(N,0,M)}return w}function T(C){if(C==null)return t;var S,w,D=C.scale[0],O=C.scale[1],R=C.translate[0],L=C.translate[1];return function(N,_){_||(S=w=0);var E=2,v=N.length,I=new Array(v),M=Math.round((N[0]-R)/D),B=Math.round((N[1]-L)/O);for(I[0]=M-S,S=M,I[1]=B-w,w=B;E<v;)I[E]=N[E],++E;return I}}function A(C,S){if(C.transform)throw new Error("already quantized");if(!S||!S.scale){if(!((L=Math.floor(S))>=2))throw new Error("n must be \u22652");_=C.bbox||i(C);var w=_[0],D=_[1],O=_[2],R=_[3],L;S={scale:[O-w?(O-w)/(L-1):1,R-D?(R-D)/(L-1):1],translate:[w,D]}}else _=C.bbox;var N=T(S),_,E,v=C.objects,I={};function M(U){return N(U)}function B(U){var G;switch(U.type){case"GeometryCollection":G={type:"GeometryCollection",geometries:U.geometries.map(B)};break;case"Point":G={type:"Point",coordinates:M(U.coordinates)};break;case"MultiPoint":G={type:"MultiPoint",coordinates:U.coordinates.map(M)};break;default:return U}return U.id!=null&&(G.id=U.id),U.bbox!=null&&(G.bbox=U.bbox),U.properties!=null&&(G.properties=U.properties),G}function V(U){var G=0,k=1,Y=U.length,j,$=new Array(Y);for($[0]=N(U[0],0);++G<Y;)((j=N(U[G],G))[0]||j[1])&&($[k++]=j);return k===1&&($[k++]=[0,0]),$.length=k,$}for(E in v)I[E]=B(v[E]);return{type:"Topology",bbox:_,transform:S,objects:I,arcs:C.arcs.map(V)}}e.bbox=i,e.feature=r,e.merge=g,e.mergeArcs=m,e.mesh=l,e.meshArcs=f,e.neighbors=b,e.quantize=A,e.transform=n,e.untransform=T,Object.defineProperty(e,"__esModule",{value:!0})})});var Dde=Kn(MV=>{"use strict";Object.defineProperty(MV,"__esModule",{value:!0});MV.version=void 0;MV.version="4.0.0"});var wE=Kn(cc=>{"use strict";Object.defineProperty(cc,"__esModule",{value:!0});cc.assertNever=cc.removeWithPredicate=cc.remove=cc.ellipsis=cc.defaults=cc.isBoolean=cc.isUndefined=void 0;function Ide(e){return e===void 0}cc.isUndefined=Ide;function HZe(e){return typeof e=="boolean"}cc.isBoolean=HZe;function GZe(e,t){for(var n in t)t.hasOwnProperty(n)&&Ide(e[n])&&(e[n]=t[n]);return e}cc.defaults=GZe;function WZe(e,t,n){var i;return e.length>t&&(n==null?(n="&hellip;",i=3):i=n.length,e=e.substring(0,t-i)+n),e}cc.ellipsis=WZe;function jZe(e,t){for(var n=e.length-1;n>=0;n--)e[n]===t&&e.splice(n,1)}cc.remove=jZe;function qZe(e,t){for(var n=e.length-1;n>=0;n--)t(e[n])===!0&&e.splice(n,1)}cc.removeWithPredicate=qZe;function YZe(e){throw new Error("Unhandled case for value: '".concat(e,"'"))}cc.assertNever=YZe});var Fb=Kn(Ci=>{"use strict";Object.defineProperty(Ci,"__esModule",{value:!0});Ci.alphaNumericAndMarksRe=Ci.alphaNumericAndMarksCharsStr=Ci.alphaNumericCharsRe=Ci.decimalNumbersStr=Ci.alphaCharsAndMarksStr=Ci.marksStr=Ci.emojiStr=Ci.alphaCharsStr=Ci.controlCharsRe=Ci.quoteRe=Ci.whitespaceRe=Ci.nonDigitRe=Ci.digitRe=Ci.letterRe=void 0;Ci.letterRe=/[A-Za-z]/;Ci.digitRe=/[\d]/;Ci.nonDigitRe=/[\D]/;Ci.whitespaceRe=/\s/;Ci.quoteRe=/['"]/;Ci.controlCharsRe=/[\x00-\x1F\x7F]/;Ci.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;Ci.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;Ci.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;Ci.alphaCharsAndMarksStr=Ci.alphaCharsStr+Ci.emojiStr+Ci.marksStr;Ci.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;Ci.alphaNumericCharsRe=new RegExp("[".concat(Ci.alphaCharsStr+Ci.decimalNumbersStr,"]"));Ci.alphaNumericAndMarksCharsStr=Ci.alphaCharsAndMarksStr+Ci.decimalNumbersStr;Ci.alphaNumericAndMarksRe=new RegExp("[".concat(Ci.alphaNumericAndMarksCharsStr,"]"))});var FV=Kn(NV=>{"use strict";Object.defineProperty(NV,"__esModule",{value:!0});NV.HtmlTag=void 0;var LV=Fb(),XZe=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(LV.whitespaceRe):[],o=t.split(LV.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(LV.whitespaceRe):[],o=t.split(LV.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}();NV.HtmlTag=XZe});var Pde=Kn(BV=>{"use strict";Object.defineProperty(BV,"__esModule",{value:!0});BV.truncateSmart=void 0;function KZe(e,t,n){var i,o;n==null?(n="&hellip;",o=3,i=8):(o=n.length,i=n.length);var r=function(A){var C={},S=A,w=S.match(/^([a-z]+):\/\//i);return w&&(C.scheme=w[1],S=S.substr(w[0].length)),w=S.match(/^(.*?)(?=(\?|#|\/|$))/i),w&&(C.host=w[1],S=S.substr(w[0].length)),w=S.match(/^\/(.*?)(?=(\?|#|$))/i),w&&(C.path=w[1],S=S.substr(w[0].length)),w=S.match(/^\?(.*?)(?=(#|$))/i),w&&(C.query=w[1],S=S.substr(w[0].length)),w=S.match(/^#(.*?)$/i),w&&(C.fragment=w[1]),C},s=function(A){var C="";return A.scheme&&A.host&&(C+=A.scheme+"://"),A.host&&(C+=A.host),A.path&&(C+="/"+A.path),A.query&&(C+="?"+A.query),A.fragment&&(C+="#"+A.fragment),C},a=function(A,C){var S=C/2,w=Math.ceil(S),D=-1*Math.floor(S),O="";return D<0&&(O=A.substr(D)),A.substr(0,w)+n+O};if(e.length<=t)return e;var c=t-o,l=r(e);if(l.query){var f=l.query.match(/^(.*?)(?=(\?|\#))(.*?)$/i);f&&(l.query=l.query.substr(0,f[1].length),e=s(l))}if(e.length<=t||(l.host&&(l.host=l.host.replace(/^www\./,""),e=s(l)),e.length<=t))return e;var d="";if(l.host&&(d+=l.host),d.length>=c)return l.host.length==t?(l.host.substr(0,t-o)+n).substr(0,c+i):a(d,c).substr(0,c+i);var p="";if(l.path&&(p+="/"+l.path),l.query&&(p+="?"+l.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(l.fragment){var m="#"+l.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(l.scheme&&l.host){var b=l.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)}BV.truncateSmart=KZe});var Ode=Kn(kV=>{"use strict";Object.defineProperty(kV,"__esModule",{value:!0});kV.truncateMiddle=void 0;function ZZe(e,t,n){if(e.length<=t)return e;var i,o;n==null?(n="&hellip;",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)}kV.truncateMiddle=ZZe});var Rde=Kn(UV=>{"use strict";Object.defineProperty(UV,"__esModule",{value:!0});UV.truncateEnd=void 0;var $Ze=wE();function QZe(e,t,n){return(0,$Ze.ellipsis)(e,t,n)}UV.truncateEnd=QZe});var pj=Kn(VV=>{"use strict";Object.defineProperty(VV,"__esModule",{value:!0});VV.AnchorTagBuilder=void 0;var JZe=FV(),e$e=Pde(),t$e=Ode(),n$e=Rde(),i$e=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 JZe.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,e$e.truncateSmart)(t,i):o==="middle"?(0,t$e.truncateMiddle)(t,i):(0,n$e.truncateEnd)(t,i)},e}();VV.AnchorTagBuilder=i$e});var ym={};nZ(ym,{__addDisposableResource:()=>Jde,__assign:()=>zV,__asyncDelegator:()=>jde,__asyncGenerator:()=>Wde,__asyncValues:()=>qde,__await:()=>vE,__awaiter:()=>kde,__classPrivateFieldGet:()=>Zde,__classPrivateFieldIn:()=>Qde,__classPrivateFieldSet:()=>$de,__createBinding:()=>GV,__decorate:()=>Nde,__disposeResources:()=>ehe,__esDecorate:()=>o$e,__exportStar:()=>Vde,__extends:()=>Mde,__generator:()=>Ude,__importDefault:()=>Kde,__importStar:()=>Xde,__makeTemplateObject:()=>Yde,__metadata:()=>Bde,__param:()=>Fde,__propKey:()=>s$e,__read:()=>gj,__rest:()=>Lde,__runInitializers:()=>r$e,__setFunctionName:()=>a$e,__spread:()=>zde,__spreadArray:()=>Gde,__spreadArrays:()=>Hde,__values:()=>HV,default:()=>u$e});function Mde(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");_j(e,t);function n(){this.constructor=e}e.prototype=t===null?Object.create(t):(n.prototype=t.prototype,new n)}function Lde(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 Nde(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 Fde(e,t){return function(n,i){t(n,i,e)}}function o$e(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",l=!t&&e?i.static?e:e.prototype:null,f=t||(l?Object.getOwnPropertyDescriptor(l,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)}l&&Object.defineProperty(l,i.name,f),p=!0}function r$e(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 s$e(e){return typeof e=="symbol"?e:"".concat(e)}function a$e(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 Bde(e,t){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(e,t)}function kde(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{l(i.next(f))}catch(d){s(d)}}function c(f){try{l(i.throw(f))}catch(d){s(d)}}function l(f){f.done?r(f.value):o(f.value).then(a,c)}l((i=i.apply(e,t||[])).next())})}function Ude(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(l){return function(f){return c([l,f])}}function c(l){if(i)throw new TypeError("Generator is already executing.");for(;s&&(s=0,l[0]&&(n=0)),n;)try{if(i=1,o&&(r=l[0]&2?o.return:l[0]?o.throw||((r=o.return)&&r.call(o),0):o.next)&&!(r=r.call(o,l[1])).done)return r;switch(o=0,r&&(l=[l[0]&2,r.value]),l[0]){case 0:case 1:r=l;break;case 4:return n.label++,{value:l[1],done:!1};case 5:n.label++,o=l[1],l=[0];continue;case 7:l=n.ops.pop(),n.trys.pop();continue;default:if(r=n.trys,!(r=r.length>0&&r[r.length-1])&&(l[0]===6||l[0]===2)){n=0;continue}if(l[0]===3&&(!r||l[1]>r[0]&&l[1]<r[3])){n.label=l[1];break}if(l[0]===6&&n.label<r[1]){n.label=r[1],r=l;break}if(r&&n.label<r[2]){n.label=r[2],n.ops.push(l);break}r[2]&&n.ops.pop(),n.trys.pop();continue}l=t.call(e,n)}catch(f){l=[6,f],o=0}finally{i=r=0}if(l[0]&5)throw l[1];return{value:l[0]?l[1]:void 0,done:!0}}}function Vde(e,t){for(var n in e)n!=="default"&&!Object.prototype.hasOwnProperty.call(t,n)&&GV(t,e,n)}function HV(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 gj(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 zde(){for(var e=[],t=0;t<arguments.length;t++)e=e.concat(gj(arguments[t]));return e}function Hde(){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 Gde(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 vE(e){return this instanceof vE?(this.v=e,this):new vE(e)}function Wde(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 vE?Promise.resolve(p.value.v).then(l,f):d(r[0][2],p)}function l(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 jde(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:vE(e[o](s)),done:!1}:r?r(s):s}:r}}function qde(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 HV=="function"?HV(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(l){r({value:l,done:a})},s)}}function Yde(e,t){return Object.defineProperty?Object.defineProperty(e,"raw",{value:t}):e.raw=t,e}function Xde(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)&&GV(t,e,n);return c$e(t,e),t}function Kde(e){return e&&e.__esModule?e:{default:e}}function Zde(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 $de(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 Qde(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 Jde(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 ehe(e){function t(i){e.error=e.hasError?new l$e(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 _j,zV,GV,c$e,l$e,u$e,xm=cTe(()=>{_j=function(e,t){return _j=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])},_j(e,t)};zV=function(){return zV=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},zV.apply(this,arguments)};GV=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]};c$e=Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t};l$e=typeof SuppressedError=="function"?SuppressedError:function(e,t,n){var i=new Error(n);return i.name="SuppressedError",i.error=e,i.suppressed=t,i};u$e={__extends:Mde,__assign:zV,__rest:Lde,__decorate:Nde,__param:Fde,__metadata:Bde,__awaiter:kde,__generator:Ude,__createBinding:GV,__exportStar:Vde,__values:HV,__read:gj,__spread:zde,__spreadArrays:Hde,__spreadArray:Gde,__await:vE,__asyncGenerator:Wde,__asyncDelegator:jde,__asyncValues:qde,__makeTemplateObject:Yde,__importStar:Xde,__importDefault:Kde,__classPrivateFieldGet:Zde,__classPrivateFieldSet:$de,__classPrivateFieldIn:Qde,__addDisposableResource:Jde,__disposeResources:ehe}});var Bb=Kn(WV=>{"use strict";Object.defineProperty(WV,"__esModule",{value:!0});WV.AbstractMatch=void 0;var f$e=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}();WV.AbstractMatch=f$e});var the=Kn(kb=>{"use strict";Object.defineProperty(kb,"__esModule",{value:!0});kb.tldRegex=kb.tldRegexStr=void 0;kb.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)";kb.tldRegex=new RegExp("^"+kb.tldRegexStr+"$")});var jV=Kn(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 Ub=Fb(),d$e=the();Bn.domainNameCharRegex=Ub.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 h$e(e){return Ub.letterRe.test(e)}Bn.isSchemeStartChar=h$e;function m$e(e){return Ub.letterRe.test(e)||Ub.digitRe.test(e)||e==="+"||e==="-"||e==="."}Bn.isSchemeChar=m$e;function nhe(e){return Ub.alphaNumericAndMarksRe.test(e)}Bn.isDomainLabelStartChar=nhe;function p$e(e){return e==="_"||nhe(e)}Bn.isDomainLabelChar=p$e;function _$e(e){return Ub.alphaNumericAndMarksRe.test(e)||Bn.urlSuffixAllowedSpecialCharsRe.test(e)||Bn.urlSuffixNotAllowedAsLastCharRe.test(e)}Bn.isPathChar=_$e;function g$e(e){return Bn.urlSuffixStartCharsRe.test(e)}Bn.isUrlSuffixStartChar=g$e;function ihe(e){return d$e.tldRegex.test(e.toLowerCase())}Bn.isKnownTld=ihe;function y$e(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||!Ub.letterRe.test(i))}Bn.isValidSchemeUrl=y$e;function x$e(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!!ihe(o)}Bn.isValidTldMatch=x$e;var b$e=/^(?:(?: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]?)$/,T$e=/[:/?#]/;function A$e(e){var t=e.split(T$e,1)[0];return b$e.test(t)}Bn.isValidIpV4Address=A$e});var yj=Kn(qV=>{"use strict";Object.defineProperty(qV,"__esModule",{value:!0});qV.UrlMatch=void 0;var C$e=(xm(),Dh(ym)),E$e=Bb(),S$e=jV(),w$e=/^(https?:\/\/)?(www\.)?/i,v$e=/^\/\//,D$e=function(e){(0,C$e.__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(/&amp;/g,"&")},t.prototype.getAnchorText=function(){var n=this.getMatchedText();return this.protocolRelativeMatch&&(n=O$e(n)),this.stripPrefix.scheme&&(n=I$e(n)),this.stripPrefix.www&&(n=P$e(n)),this.stripTrailingSlash&&(n=R$e(n)),this.decodePercentEncoding&&(n=M$e(n)),n},t}(E$e.AbstractMatch);qV.UrlMatch=D$e;function I$e(e){return e.replace(S$e.httpSchemePrefixRe,"")}function P$e(e){return e.replace(w$e,"$1")}function O$e(e){return e.replace(v$e,"")}function R$e(e){return e.charAt(e.length-1)==="/"&&(e=e.slice(0,-1)),e}function M$e(e){var t=e.replace(/%22/gi,"&quot;").replace(/%26/gi,"&amp;").replace(/%27/gi,"&#39;").replace(/%3C/gi,"&lt;").replace(/%3E/gi,"&gt;");try{return decodeURIComponent(t)}catch{return t}}});var rhe=Kn(bm=>{"use strict";Object.defineProperty(bm,"__esModule",{value:!0});bm.isValidEmail=bm.isEmailLocalPartChar=bm.isEmailLocalPartStartChar=bm.mailtoSchemePrefixRe=void 0;var ohe=Fb(),L$e=jV();bm.mailtoSchemePrefixRe=/^mailto:/i;var N$e=new RegExp("[".concat(ohe.alphaNumericAndMarksCharsStr,"!#$%&'*+/=?^_`{|}~-]"));function F$e(e){return ohe.alphaNumericAndMarksRe.test(e)}bm.isEmailLocalPartStartChar=F$e;function B$e(e){return N$e.test(e)}bm.isEmailLocalPartChar=B$e;function k$e(e){var t=e.split(".").pop()||"";return(0,L$e.isKnownTld)(t)}bm.isValidEmail=k$e});var xj=Kn(YV=>{"use strict";Object.defineProperty(YV,"__esModule",{value:!0});YV.EmailMatch=void 0;var U$e=(xm(),Dh(ym)),V$e=Bb(),z$e=function(e){(0,U$e.__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}(V$e.AbstractMatch);YV.EmailMatch=z$e});var bj=Kn(Iy=>{"use strict";Object.defineProperty(Iy,"__esModule",{value:!0});Iy.hashtagServices=Iy.isValidHashtag=Iy.isHashtagTextChar=void 0;var H$e=Fb();function G$e(e){return e==="_"||H$e.alphaNumericAndMarksRe.test(e)}Iy.isHashtagTextChar=G$e;function W$e(e){return e.length<=140}Iy.isValidHashtag=W$e;Iy.hashtagServices=["twitter","facebook","instagram","tiktok"]});var Tj=Kn(XV=>{"use strict";Object.defineProperty(XV,"__esModule",{value:!0});XV.HashtagMatch=void 0;var j$e=(xm(),Dh(ym)),q$e=wE(),Y$e=Bb(),X$e=function(e){(0,j$e.__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,q$e.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}(Y$e.AbstractMatch);XV.HashtagMatch=X$e});var Aj=Kn(Py=>{"use strict";Object.defineProperty(Py,"__esModule",{value:!0});Py.mentionServices=Py.isValidMention=Py.isMentionTextChar=void 0;var K$e={twitter:/^@\w{1,15}$/,instagram:/^@[_\w]{1,30}$/,soundcloud:/^@[-a-z0-9_]{3,25}$/,tiktok:/^@[.\w]{1,23}[\w]$/},Z$e=/[-\w.]/;function $$e(e){return Z$e.test(e)}Py.isMentionTextChar=$$e;function Q$e(e,t){var n=K$e[t];return n.test(e)}Py.isValidMention=Q$e;Py.mentionServices=["twitter","instagram","soundcloud","tiktok"]});var Cj=Kn(KV=>{"use strict";Object.defineProperty(KV,"__esModule",{value:!0});KV.MentionMatch=void 0;var J$e=(xm(),Dh(ym)),eQe=Bb(),tQe=function(e){(0,J$e.__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}(eQe.AbstractMatch);KV.MentionMatch=tQe});var she=Kn(Oy=>{"use strict";Object.defineProperty(Oy,"__esModule",{value:!0});Oy.isValidPhoneNumber=Oy.isPhoneNumberControlChar=Oy.isPhoneNumberSeparatorChar=void 0;var nQe=/[-. ]/,iQe=/[-. ()]/,oQe=/[,;]/,rQe=/(?:(?:(?:(\+)?\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]+#?)*/,sQe=/(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})/,aQe=new RegExp("^".concat(rQe.source,"|").concat(sQe.source,"$"));function cQe(e){return nQe.test(e)}Oy.isPhoneNumberSeparatorChar=cQe;function lQe(e){return oQe.test(e)}Oy.isPhoneNumberControlChar=lQe;function uQe(e){var t=e.charAt(0)==="+"||iQe.test(e);return t&&aQe.test(e)}Oy.isValidPhoneNumber=uQe});var Ej=Kn(ZV=>{"use strict";Object.defineProperty(ZV,"__esModule",{value:!0});ZV.PhoneMatch=void 0;var fQe=(xm(),Dh(ym)),dQe=Bb(),hQe=function(e){(0,fQe.__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}(dQe.AbstractMatch);ZV.PhoneMatch=hQe});var Pj=Kn(PE=>{"use strict";Object.defineProperty(PE,"__esModule",{value:!0});PE.excludeUnbalancedTrailingBracesAndPunctuation=PE.parseMatches=void 0;var Ca=Fb(),mQe=yj(),Eo=wE(),ar=jV(),DE=rhe(),pQe=xj(),Sj=bj(),_Qe=Tj(),wj=Aj(),gQe=Cj(),IE=she(),yQe=Ej();function xQe(e,t){for(var n=t.tagBuilder,i=t.stripPrefix,o=t.stripTrailingSlash,r=t.decodePercentEncoding,s=t.hashtagServiceName,a=t.mentionServiceName,c=[],l=e.length,f=[],d=0;d<l;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:A(m,p);break;case 2:C(m,p);break;case 3:S(m,p);break;case 4:w(m,p);break;case 5:R(m,p);break;case 6:L(m,p);break;case 7:N(m,p);break;case 13:_(m,p);break;case 14:E(m,p);break;case 8:v(m,p);break;case 9:I(m,p);break;case 10:M(m,p);break;case 15:B(m,p);break;case 16:V(m,p);break;case 17:U(m,p);break;case 18:G(m,p);break;case 19:k(m,p);break;case 20:Y(m,p);break;case 21:j(m,p);break;case 22:$(m,p);break;case 23:W(m,p);break;case 24:K(m,p);break;case 25:Z(m,p);break;case 26:me(m,p);break;case 27:xe(m,p);break;case 28:re(m,p);break;case 29:ye(m,p);break;case 30:ge(m,p);break;case 31:Ae(m,p);break;case 32:Re(m,p);break;case 33:ze(m,p);break;case 34:ut(m,p);break;case 35:Vt(m,p);break;case 36:cn(m,p);break;case 37:De(m,p);break;case 38:ft(m,p);break;case 39:_n(m,p);break;case 40:Mn(m,p);break;case 41:Ft(m,p);break;default:(0,Eo.assertNever)(m.state)}}}for(var x=f.length-1;x>=0;x--)f.forEach(function(he){return Ot(he)});return c;function b(he){if(he==="#")f.push(CQe(d,28));else if(he==="@")f.push(EQe(d,30));else if(he==="/")f.push(Dj(d,11));else if(he==="+")f.push(Ij(d,37));else if(he==="(")f.push(Ij(d,32));else{if(Ca.digitRe.test(he)&&(f.push(Ij(d,38)),f.push(TQe(d,13))),(0,DE.isEmailLocalPartStartChar)(he)){var be=he.toLowerCase()==="m"?15:22;f.push(AQe(d,be))}(0,ar.isSchemeStartChar)(he)&&f.push(vj(d,0)),Ca.alphaNumericAndMarksRe.test(he)&&f.push(Dj(d,5))}}function T(he,be){be===":"?he.state=2:be==="-"?he.state=1:(0,ar.isSchemeChar)(be)||(0,Eo.remove)(f,he)}function A(he,be){be==="-"||(be==="/"?((0,Eo.remove)(f,he),f.push(Dj(d,11))):(0,ar.isSchemeChar)(be)?he.state=0:(0,Eo.remove)(f,he))}function C(he,be){be==="/"?he.state=3:be==="."?(0,Eo.remove)(f,he):(0,ar.isDomainLabelStartChar)(be)?(he.state=5,(0,ar.isSchemeStartChar)(be)&&f.push(vj(d,0))):(0,Eo.remove)(f,he)}function S(he,be){be==="/"?he.state=4:(0,ar.isPathChar)(be)?(he.state=10,he.acceptStateReached=!0):Ot(he)}function w(he,be){be==="/"?he.state=10:(0,ar.isDomainLabelStartChar)(be)?(he.state=5,he.acceptStateReached=!0):(0,Eo.remove)(f,he)}function D(he,be){be==="/"?he.state=12:(0,Eo.remove)(f,he)}function O(he,be){(0,ar.isDomainLabelStartChar)(be)?he.state=5:(0,Eo.remove)(f,he)}function R(he,be){be==="."?he.state=7:be==="-"?he.state=6:be===":"?he.state=8:(0,ar.isUrlSuffixStartChar)(be)?he.state=10:(0,ar.isDomainLabelChar)(be)||Ot(he)}function L(he,be){be==="-"||(be==="."?Ot(he):(0,ar.isDomainLabelStartChar)(be)?he.state=5:Ot(he))}function N(he,be){be==="."?Ot(he):(0,ar.isDomainLabelStartChar)(be)?(he.state=5,he.acceptStateReached=!0):Ot(he)}function _(he,be){be==="."?he.state=14:be===":"?he.state=8:Ca.digitRe.test(be)||((0,ar.isUrlSuffixStartChar)(be)?he.state=10:Ca.alphaNumericAndMarksRe.test(be)?(0,Eo.remove)(f,he):Ot(he))}function E(he,be){Ca.digitRe.test(be)?(he.octetsEncountered++,he.octetsEncountered===4&&(he.acceptStateReached=!0),he.state=13):Ot(he)}function v(he,be){Ca.digitRe.test(be)?he.state=9:Ot(he)}function I(he,be){Ca.digitRe.test(be)||((0,ar.isUrlSuffixStartChar)(be)?he.state=10:Ot(he))}function M(he,be){(0,ar.isPathChar)(be)||Ot(he)}function B(he,be){be.toLowerCase()==="a"?he.state=16:$(he,be)}function V(he,be){be.toLowerCase()==="i"?he.state=17:$(he,be)}function U(he,be){be.toLowerCase()==="l"?he.state=18:$(he,be)}function G(he,be){be.toLowerCase()==="t"?he.state=19:$(he,be)}function k(he,be){be.toLowerCase()==="o"?he.state=20:$(he,be)}function Y(he,be){be.toLowerCase()===":"?he.state=21:$(he,be)}function j(he,be){(0,DE.isEmailLocalPartChar)(be)?he.state=22:(0,Eo.remove)(f,he)}function $(he,be){be==="."?he.state=23:be==="@"?he.state=24:(0,DE.isEmailLocalPartChar)(be)?he.state=22:(0,Eo.remove)(f,he)}function W(he,be){be==="."||be==="@"?(0,Eo.remove)(f,he):(0,DE.isEmailLocalPartChar)(be)?he.state=22:(0,Eo.remove)(f,he)}function K(he,be){(0,ar.isDomainLabelStartChar)(be)?he.state=25:(0,Eo.remove)(f,he)}function Z(he,be){be==="."?he.state=27:be==="-"?he.state=26:(0,ar.isDomainLabelChar)(be)||Ot(he)}function me(he,be){be==="-"||be==="."?Ot(he):(0,ar.isDomainLabelChar)(be)?he.state=25:Ot(he)}function xe(he,be){be==="."||be==="-"?Ot(he):(0,ar.isDomainLabelStartChar)(be)?(he.state=25,he.acceptStateReached=!0):Ot(he)}function re(he,be){(0,Sj.isHashtagTextChar)(be)?(he.state=29,he.acceptStateReached=!0):(0,Eo.remove)(f,he)}function ye(he,be){(0,Sj.isHashtagTextChar)(be)||Ot(he)}function ge(he,be){(0,wj.isMentionTextChar)(be)?(he.state=31,he.acceptStateReached=!0):(0,Eo.remove)(f,he)}function Ae(he,be){(0,wj.isMentionTextChar)(be)||(Ca.alphaNumericAndMarksRe.test(be)?(0,Eo.remove)(f,he):Ot(he))}function De(he,be){Ca.digitRe.test(be)?he.state=38:((0,Eo.remove)(f,he),b(be))}function Re(he,be){Ca.digitRe.test(be)?he.state=33:(0,Eo.remove)(f,he),b(be)}function ze(he,be){Ca.digitRe.test(be)?he.state=34:(0,Eo.remove)(f,he)}function ut(he,be){Ca.digitRe.test(be)?he.state=35:(0,Eo.remove)(f,he)}function Vt(he,be){be===")"?he.state=36:(0,Eo.remove)(f,he)}function cn(he,be){Ca.digitRe.test(be)?he.state=38:(0,IE.isPhoneNumberSeparatorChar)(be)?he.state=39:(0,Eo.remove)(f,he)}function ft(he,be){he.acceptStateReached=!0,(0,IE.isPhoneNumberControlChar)(be)?he.state=40:be==="#"?he.state=41:Ca.digitRe.test(be)||(be==="("?he.state=32:(0,IE.isPhoneNumberSeparatorChar)(be)?he.state=39:(Ot(he),(0,ar.isSchemeStartChar)(be)&&f.push(vj(d,0))))}function _n(he,be){Ca.digitRe.test(be)?he.state=38:be==="("?he.state=32:(Ot(he),b(be))}function Mn(he,be){(0,IE.isPhoneNumberControlChar)(be)||(be==="#"?he.state=41:Ca.digitRe.test(be)?he.state=38:Ot(he))}function Ft(he,be){(0,IE.isPhoneNumberControlChar)(be)?he.state=40:Ca.digitRe.test(be)?(0,Eo.remove)(f,he):Ot(he)}function Ot(he){if((0,Eo.remove)(f,he),!!he.acceptStateReached){var be=he.startIdx,Gt=e.slice(he.startIdx,d);if(Gt=lhe(Gt),he.type==="url"){var rt=e.charAt(he.startIdx-1);if(rt==="@")return;var Si=he.matchType;if(Si==="scheme"){var Zi=ar.httpSchemeRe.exec(Gt);if(Zi&&(be=be+Zi.index,Gt=Gt.slice(Zi.index)),!(0,ar.isValidSchemeUrl)(Gt))return}else if(Si==="tld"){if(!(0,ar.isValidTldMatch)(Gt))return}else if(Si==="ipV4"){if(!(0,ar.isValidIpV4Address)(Gt))return}else(0,Eo.assertNever)(Si);c.push(new mQe.UrlMatch({tagBuilder:n,matchedText:Gt,offset:be,urlMatchType:Si,url:Gt,protocolRelativeMatch:Gt.slice(0,2)==="//",stripPrefix:i,stripTrailingSlash:o,decodePercentEncoding:r}))}else if(he.type==="email")(0,DE.isValidEmail)(Gt)&&c.push(new pQe.EmailMatch({tagBuilder:n,matchedText:Gt,offset:be,email:Gt.replace(DE.mailtoSchemePrefixRe,"")}));else if(he.type==="hashtag")(0,Sj.isValidHashtag)(Gt)&&c.push(new _Qe.HashtagMatch({tagBuilder:n,matchedText:Gt,offset:be,serviceName:s,hashtag:Gt.slice(1)}));else if(he.type==="mention")(0,wj.isValidMention)(Gt,a)&&c.push(new gQe.MentionMatch({tagBuilder:n,matchedText:Gt,offset:be,serviceName:a,mention:Gt.slice(1)}));else if(he.type==="phone"){if(Gt=Gt.replace(/ +$/g,""),(0,IE.isValidPhoneNumber)(Gt)){var Us=Gt.replace(/[^0-9,;#]/g,"");c.push(new yQe.PhoneMatch({tagBuilder:n,matchedText:Gt,offset:be,number:Us,plusSign:Gt.charAt(0)==="+"}))}}else(0,Eo.assertNever)(he)}}}PE.parseMatches=xQe;var bQe=/[\(\{\[]/,ahe=/[\)\}\]]/,che={")":"(","}":"{","]":"["};function lhe(e){for(var t={"(":0,"{":0,"[":0},n=0;n<e.length;n++){var i=e.charAt(n);bQe.test(i)?t[i]++:ahe.test(i)&&t[che[i]]--}for(var o=e.length-1,r;o>=0;)if(r=e.charAt(o),ahe.test(r)){var s=che[r];if(t[s]<0)t[s]++,o--;else break}else if(ar.urlSuffixedCharsNotAllowedAtEndRe.test(r))o--;else break;return e.slice(0,o+1)}PE.excludeUnbalancedTrailingBracesAndPunctuation=lhe;function vj(e,t){return{type:"url",startIdx:e,state:t,acceptStateReached:!1,matchType:"scheme"}}function Dj(e,t){return{type:"url",startIdx:e,state:t,acceptStateReached:!1,matchType:"tld"}}function TQe(e,t){return{type:"url",startIdx:e,state:t,acceptStateReached:!1,matchType:"ipV4",octetsEncountered:1}}function AQe(e,t){return{type:"email",startIdx:e,state:t,acceptStateReached:!1}}function CQe(e,t){return{type:"hashtag",startIdx:e,state:t,acceptStateReached:!1}}function EQe(e,t){return{type:"mention",startIdx:e,state:t,acceptStateReached:!1}}function Ij(e,t){return{type:"phone",startIdx:e,state:t,acceptStateReached:!1}}});var uhe=Kn($V=>{"use strict";Object.defineProperty($V,"__esModule",{value:!0});$V.parseHtml=void 0;var lc=(xm(),Dh(ym)),jc=Fb(),SQe=wE();function wQe(e,t){for(var n=t.onOpenTag,i=t.onCloseTag,o=t.onText,r=t.onComment,s=t.onDoctype,a=new Tm,c=0,l=e.length,f=0,d=0,p=a;c<l;){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:A(g);break;case 5:C(g);break;case 6:S(g);break;case 7:w(g);break;case 8:D(g);break;case 9:O(g);break;case 10:R(g);break;case 11:L(g);break;case 12:N(g);break;case 13:_(g);break;case 14:E(g);break;case 15:v(g);break;case 16:I(g);break;case 17:M(g);break;case 18:B(g);break;case 19:V(g);break;case 20:U(g);break;default:(0,SQe.assertNever)(f)}c++}d<c&&j();function m(K){K==="<"&&k()}function x(K){K==="!"?f=13:K==="/"?(f=2,p=new Tm((0,lc.__assign)((0,lc.__assign)({},p),{isClosing:!0}))):K==="<"?k():jc.letterRe.test(K)?(f=3,p=new Tm((0,lc.__assign)((0,lc.__assign)({},p),{isOpening:!0}))):(f=0,p=a)}function b(K){jc.whitespaceRe.test(K)?(p=new Tm((0,lc.__assign)((0,lc.__assign)({},p),{name:$()})),f=4):K==="<"?k():K==="/"?(p=new Tm((0,lc.__assign)((0,lc.__assign)({},p),{name:$()})),f=12):K===">"?(p=new Tm((0,lc.__assign)((0,lc.__assign)({},p),{name:$()})),Y()):!jc.letterRe.test(K)&&!jc.digitRe.test(K)&&K!==":"&&G()}function T(K){K===">"?G():jc.letterRe.test(K)?f=3:G()}function A(K){jc.whitespaceRe.test(K)||(K==="/"?f=12:K===">"?Y():K==="<"?k():K==="="||jc.quoteRe.test(K)||jc.controlCharsRe.test(K)?G():f=5)}function C(K){jc.whitespaceRe.test(K)?f=6:K==="/"?f=12:K==="="?f=7:K===">"?Y():K==="<"?k():jc.quoteRe.test(K)&&G()}function S(K){jc.whitespaceRe.test(K)||(K==="/"?f=12:K==="="?f=7:K===">"?Y():K==="<"?k():jc.quoteRe.test(K)?G():f=5)}function w(K){jc.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 R(K){jc.whitespaceRe.test(K)?f=4:K===">"?Y():K==="<"&&k()}function L(K){jc.whitespaceRe.test(K)?f=4:K==="/"?f=12:K===">"?Y():K==="<"?k():(f=4,W())}function N(K){K===">"?(p=new Tm((0,lc.__assign)((0,lc.__assign)({},p),{isClosing:!0})),Y()):f=4}function _(K){e.substr(c,2)==="--"?(c+=2,p=new Tm((0,lc.__assign)((0,lc.__assign)({},p),{type:"comment"})),f=14):e.substr(c,7).toUpperCase()==="DOCTYPE"?(c+=7,p=new Tm((0,lc.__assign)((0,lc.__assign)({},p),{type:"doctype"})),f=20):G()}function E(K){K==="-"?f=15:K===">"?G():f=16}function v(K){K==="-"?f=18:K===">"?G():f=16}function I(K){K==="-"&&(f=17)}function M(K){K==="-"?f=18:f=16}function B(K){K===">"?Y():K==="!"?f=19:K==="-"||(f=16)}function V(K){K==="-"?f=17:K===">"?Y():f=16}function U(K){K===">"?Y():K==="<"&&k()}function G(){f=0,p=a}function k(){f=1,p=new Tm({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 j(){var K=e.slice(d,c);o(K,d),d=c+1}function $(){var K=p.idx+(p.isClosing?2:1);return e.slice(K,c).toLowerCase()}function W(){c--}}$V.parseHtml=wQe;var Tm=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 QV=Kn(Oj=>{"use strict";Object.defineProperty(Oj,"__esModule",{value:!0});var vQe=Dde(),hs=wE(),DQe=pj(),IQe=FV(),PQe=Pj(),OQe=uhe(),RQe=Aj(),MQe=bj(),LQe=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=NQe(t.urls),this.email=(0,hs.isBoolean)(t.email)?t.email:this.email,this.phone=(0,hs.isBoolean)(t.phone)?t.phone:this.phone,this.hashtag=t.hashtag||this.hashtag,this.mention=t.mention||this.mention,this.newWindow=(0,hs.isBoolean)(t.newWindow)?t.newWindow:this.newWindow,this.stripPrefix=FQe(t.stripPrefix),this.stripTrailingSlash=(0,hs.isBoolean)(t.stripTrailingSlash)?t.stripTrailingSlash:this.stripTrailingSlash,this.decodePercentEncoding=(0,hs.isBoolean)(t.decodePercentEncoding)?t.decodePercentEncoding:this.decodePercentEncoding,this.sanitizeHtml=t.sanitizeHtml||!1;var n=this.mention;if(n!==!1&&RQe.mentionServices.indexOf(n)===-1)throw new Error("invalid `mention` cfg '".concat(n,"' - see docs"));var i=this.hashtag;if(i!==!1&&MQe.hashtagServices.indexOf(i)===-1)throw new Error("invalid `hashtag` cfg '".concat(i,"' - see docs"));this.truncate=BQe(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,OQe.parseHtml)(t,{onOpenTag:function(s){i.indexOf(s)>=0&&o++},onText:function(s,a){if(o===0){var c=/(&nbsp;|&#160;|&lt;|&#60;|&gt;|&#62;|&quot;|&#34;|&#39;)/gi,l=s.split(c),f=a;l.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,l){return c.getOffset()-l.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,hs.removeWithPredicate)(t,function(n){return n.getType()==="hashtag"}),this.email||(0,hs.removeWithPredicate)(t,function(n){return n.getType()==="email"}),this.phone||(0,hs.removeWithPredicate)(t,function(n){return n.getType()==="phone"}),this.mention||(0,hs.removeWithPredicate)(t,function(n){return n.getType()==="mention"}),this.urls.schemeMatches||(0,hs.removeWithPredicate)(t,function(n){return n.getType()==="url"&&n.getUrlMatchType()==="scheme"}),this.urls.tldMatches||(0,hs.removeWithPredicate)(t,function(n){return n.getType()==="url"&&n.getUrlMatchType()==="tld"}),this.urls.ipV4Matches||(0,hs.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,PQe.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,"&lt;").replace(/>/g,"&gt;"));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 IQe.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 DQe.AnchorTagBuilder({newWindow:this.newWindow,truncate:this.truncate,className:this.className})),t},e.version=vQe.version,e}();Oj.default=LQe;function NQe(e){return e==null&&(e=!0),(0,hs.isBoolean)(e)?{schemeMatches:e,tldMatches:e,ipV4Matches:e}:{schemeMatches:(0,hs.isBoolean)(e.schemeMatches)?e.schemeMatches:!0,tldMatches:(0,hs.isBoolean)(e.tldMatches)?e.tldMatches:!0,ipV4Matches:(0,hs.isBoolean)(e.ipV4Matches)?e.ipV4Matches:!0}}function FQe(e){return e==null&&(e=!0),(0,hs.isBoolean)(e)?{scheme:e,www:e}:{scheme:(0,hs.isBoolean)(e.scheme)?e.scheme:!0,www:(0,hs.isBoolean)(e.www)?e.www:!0}}function BQe(e){return typeof e=="number"?{length:e,location:"end"}:(0,hs.defaults)(e||{},{length:Number.POSITIVE_INFINITY,location:"end"})}});var dhe=Kn(fhe=>{"use strict";Object.defineProperty(fhe,"__esModule",{value:!0})});var hhe=Kn(D_=>{"use strict";Object.defineProperty(D_,"__esModule",{value:!0});var Vb=(xm(),Dh(ym));(0,Vb.__exportStar)(dhe(),D_);(0,Vb.__exportStar)(xj(),D_);(0,Vb.__exportStar)(Tj(),D_);(0,Vb.__exportStar)(Bb(),D_);(0,Vb.__exportStar)(Cj(),D_);(0,Vb.__exportStar)(Ej(),D_);(0,Vb.__exportStar)(yj(),D_)});var mhe=Kn(Rj=>{"use strict";Object.defineProperty(Rj,"__esModule",{value:!0});var kQe=(xm(),Dh(ym));(0,kQe.__exportStar)(Pj(),Rj)});var Mj=Kn((rh,_he)=>{"use strict";rh=_he.exports=QV().default;Object.defineProperty(rh,"__esModule",{value:!0});rh.Autolinker=void 0;var OE=(xm(),Dh(ym)),phe=(0,OE.__importDefault)(QV());rh.Autolinker=phe.default;rh.default=phe.default;(0,OE.__exportStar)(QV(),rh);(0,OE.__exportStar)(pj(),rh);(0,OE.__exportStar)(FV(),rh);(0,OE.__exportStar)(hhe(),rh);(0,OE.__exportStar)(mhe(),rh)});var ZY=Kn((exports,module)=>{/*!
  62. * protobuf.js v7.2.5 (c) 2016, daniel wirtz
  63. * compiled tue, 22 aug 2023 00:04:28 utc
  64. * licensed under the bsd-3-clause license
  65. * see: https://github.com/dcodeio/protobuf.js for details
  66. */(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,l=!0;c<arguments.length;)s[a++]=arguments[c++];return new Promise(function(d,p){s[a]=function(m){if(l)if(l=!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){l&&(l=!1,p(g))}})}},{}],2:[function(e,t,n){"use strict";var i=n;i.length=function(l){var f=l.length;if(!f)return 0;for(var d=0;--f%4>1&&l.charAt(f)==="=";)++d;return Math.ceil(l.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(l,f,d){for(var p=null,g=[],m=0,x=0,b;f<d;){var T=l[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(l,f,d){for(var p=d,g=0,m,x=0;x<l.length;){var b=l.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(l){return/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/.test(l)}},{}],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 l=new Float32Array([-0]),f=new Uint8Array(l.buffer),d=f[3]===128;function p(b,T,A){l[0]=b,T[A]=f[0],T[A+1]=f[1],T[A+2]=f[2],T[A+3]=f[3]}function g(b,T,A){l[0]=b,T[A]=f[3],T[A+1]=f[2],T[A+2]=f[1],T[A+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],l[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],l[0]}c.readFloatLE=d?m:x,c.readFloatBE=d?x:m}():function(){function l(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=l.bind(null,o),c.writeFloatBE=l.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 l=new Float64Array([-0]),f=new Uint8Array(l.buffer),d=f[7]===128;function p(b,T,A){l[0]=b,T[A]=f[0],T[A+1]=f[1],T[A+2]=f[2],T[A+3]=f[3],T[A+4]=f[4],T[A+5]=f[5],T[A+6]=f[6],T[A+7]=f[7]}function g(b,T,A){l[0]=b,T[A]=f[7],T[A+1]=f[6],T[A+2]=f[5],T[A+3]=f[4],T[A+4]=f[3],T[A+5]=f[2],T[A+6]=f[1],T[A+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],l[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],l[0]}c.readDoubleLE=d?m:x,c.readDoubleBE=d?x:m}():function(){function l(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 A;if(m<22250738585072014e-324)A=m/5e-324,d(A>>>0,x,b+p),d((T<<31|A/4294967296)>>>0,x,b+g);else{var C=Math.floor(Math.log(m)/Math.LN2);C===1024&&(C=1023),A=m*Math.pow(2,-C),d(A*4503599627370496>>>0,x,b+p),d((T<<31|C+1023<<20|A*1048576&1048575)>>>0,x,b+g)}}}c.writeDoubleLE=l.bind(null,o,0,4),c.writeDoubleBE=l.bind(null,r,4,0);function f(d,p,g,m,x){var b=d(m,x+p),T=d(m,x+g),A=(T>>31)*2+1,C=T>>>20&2047,S=4294967296*(T&1048575)+b;return C===2047?S?NaN:A*(1/0):C===0?A*5e-324*S:A*Math.pow(2,C-1075)*(S+4503599627370496)}c.readDoubleLE=f.bind(null,s,0,4),c.readDoubleBE=f.bind(null,a,4,0)}(),c}function o(c,l,f){l[f]=c&255,l[f+1]=c>>>8&255,l[f+2]=c>>>16&255,l[f+3]=c>>>24}function r(c,l,f){l[f]=c>>>24,l[f+1]=c>>>16&255,l[f+2]=c>>>8&255,l[f+3]=c&255}function s(c,l){return(c[l]|c[l+1]<<8|c[l+2]<<16|c[l+3]<<24)>>>0}function a(c,l){return(c[l]<<24|c[l+1]<<16|c[l+2]<<8|c[l+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,l=null,f=a;return function(p){if(p<1||p>c)return o(p);f+p>a&&(l=o(a),f=0);var g=r.call(l,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 l=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&&((l||(l=[])).push(String.fromCharCode.apply(String,f)),d=0);return l?(d&&l.push(String.fromCharCode.apply(String,f.slice(0,d))),l.join("")):String.fromCharCode.apply(String,f.slice(0,d))},i.write=function(r,s,a){for(var c=a,l,f,d=0;d<r.length;++d)l=r.charCodeAt(d),l<128?s[a++]=l:l<2048?(s[a++]=l>>6|192,s[a++]=l&63|128):(l&64512)===55296&&((f=r.charCodeAt(d+1))&64512)===56320?(l=65536+((l&1023)<<10)+(f&1023),++d,s[a++]=l>>18|240,s[a++]=l>>12&63|128,s[a++]=l>>6&63|128,s[a++]=l&63|128):(s[a++]=l>>12|224,s[a++]=l>>6&63|128,s[a++]=l&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 l=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(A){return i.Buffer.isBuffer(A)?new o(A):l(A)})(b)}:l};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 A=i.Buffer;return A?A.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,l,f){if(!l)throw TypeError("request must be specified");var d=this;if(!f)return i.asPromise(r,d,s,a,c,l);if(!d.rpcImpl)return setTimeout(function(){f(Error("already ended"))},0),undefined;try{return d.rpcImpl(s,a[d.requestDelimited?"encodeDelimited":"encode"](l).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,l){this.lo=c>>>0,this.hi=l>>>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(l){if(l===0)return r;var f=l<0;f&&(l=-l);var d=l>>>0,p=(l-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(l){if(typeof l=="number")return o.fromNumber(l);if(i.isString(l))if(i.Long)l=i.Long.fromString(l);else return o.fromNumber(parseInt(l,10));return l.low||l.high?new o(l.low>>>0,l.high>>>0):r},o.prototype.toNumber=function(l){if(!l&&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(l){return i.Long?new i.Long(this.lo|0,this.hi|0,!!l):{low:this.lo|0,high:this.hi|0,unsigned:!!l}};var a=String.prototype.charCodeAt;o.fromHash=function(l){return l===s?r:new o((a.call(l,0)|a.call(l,1)<<8|a.call(l,2)<<16|a.call(l,3)<<24)>>>0,(a.call(l,4)|a.call(l,5)<<8|a.call(l,6)<<16|a.call(l,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 l=this.hi>>31;return this.hi=((this.hi<<1|this.lo>>>31)^l)>>>0,this.lo=(this.lo<<1^l)>>>0,this},o.prototype.zzDecode=function(){var l=-(this.lo&1);return this.lo=((this.lo>>>1|this.hi<<31)^l)>>>0,this.hi=(this.hi>>>1^l)>>>0,this},o.prototype.length=function(){var l=this.lo,f=(this.lo>>>28|this.hi<<4)>>>0,d=this.hi>>>24;return d===0?f===0?l<16384?l<128?1:2:l<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 l=a[c];return l!=null&&a.hasOwnProperty(c)?typeof l!="object"||(Array.isArray(l)?l.length:Object.keys(l).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 l=i.LongBits.fromHash(a);return i.Long?i.Long.fromBits(l.lo,l.hi,c):l.toNumber(!!c)};function o(s,a,c){for(var l=Object.keys(a),f=0;f<l.length;++f)(s[l[f]]===undefined||!c)&&(s[l[f]]=a[l[f]]);return s}i.merge=o,i.lcFirst=function(a){return a.charAt(0).toLowerCase()+a.substring(1)};function r(s){function a(c,l){if(!(this instanceof a))return new a(c,l);Object.defineProperty(this,"message",{get:function(){return c}}),Error.captureStackTrace?Error.captureStackTrace(this,a):Object.defineProperty(this,"stack",{value:new Error().stack||""}),l&&o(this,l)}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={},l=0;l<a.length;++l)c[a[l]]=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 l=0;l<a.length;++l)a[l]!==c&&delete this[a[l]]}},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,l){return new s(c,l)},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(C,S,w){this.fn=C,this.len=S,this.next=undefined,this.val=w}function l(){}function f(C){this.head=C.head,this.tail=C.tail,this.len=C.len,this.next=C.states}function d(){this.len=0,this.head=new c(l,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(S){return new i.Array(S)},i.Array!==Array&&(d.alloc=i.pool(d.alloc,i.Array.prototype.subarray)),d.prototype._push=function(S,w,D){return this.tail=this.tail.next=new c(S,w,D),this.len+=w,this};function g(C,S,w){S[w]=C&255}function m(C,S,w){for(;C>127;)S[w++]=C&127|128,C>>>=7;S[w]=C}function x(C,S){this.len=C,this.next=undefined,this.val=S}x.prototype=Object.create(c.prototype),x.prototype.fn=m,d.prototype.uint32=function(S){return this.len+=(this.tail=this.tail.next=new x((S=S>>>0)<128?1:S<16384?2:S<2097152?3:S<268435456?4:5,S)).len,this},d.prototype.int32=function(S){return S<0?this._push(b,10,r.fromNumber(S)):this.uint32(S)},d.prototype.sint32=function(S){return this.uint32((S<<1^S>>31)>>>0)};function b(C,S,w){for(;C.hi;)S[w++]=C.lo&127|128,C.lo=(C.lo>>>7|C.hi<<25)>>>0,C.hi>>>=7;for(;C.lo>127;)S[w++]=C.lo&127|128,C.lo=C.lo>>>7;S[w++]=C.lo}d.prototype.uint64=function(S){var w=r.from(S);return this._push(b,w.length(),w)},d.prototype.int64=d.prototype.uint64,d.prototype.sint64=function(S){var w=r.from(S).zzEncode();return this._push(b,w.length(),w)},d.prototype.bool=function(S){return this._push(g,1,S?1:0)};function T(C,S,w){S[w]=C&255,S[w+1]=C>>>8&255,S[w+2]=C>>>16&255,S[w+3]=C>>>24}d.prototype.fixed32=function(S){return this._push(T,4,S>>>0)},d.prototype.sfixed32=d.prototype.fixed32,d.prototype.fixed64=function(S){var w=r.from(S);return this._push(T,4,w.lo)._push(T,4,w.hi)},d.prototype.sfixed64=d.prototype.fixed64,d.prototype.float=function(S){return this._push(i.float.writeFloatLE,4,S)},d.prototype.double=function(S){return this._push(i.float.writeDoubleLE,8,S)};var A=i.Array.prototype.set?function(S,w,D){w.set(S,D)}:function(S,w,D){for(var O=0;O<S.length;++O)w[D+O]=S[O]};d.prototype.bytes=function(S){var w=S.length>>>0;if(!w)return this._push(g,1,0);if(i.isString(S)){var D=d.alloc(w=s.length(S));s.decode(S,D,0),S=D}return this.uint32(w)._push(A,w,S)},d.prototype.string=function(S){var w=a.length(S);return w?this.uint32(w)._push(a.write,w,S):this._push(g,1,0)},d.prototype.fork=function(){return this.states=new f(this),this.head=this.tail=new c(l,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(l,0,0),this.len=0),this},d.prototype.ldelim=function(){var S=this.head,w=this.tail,D=this.len;return this.reset().uint32(D),D&&(this.tail.next=S.next,this.tail=w,this.len+=D),this},d.prototype.finish=function(){for(var S=this.head.next,w=this.constructor.alloc(this.len),D=0;S;)S.fn(S.val,w,D),D+=S.len,S=S.next;return w},d._configure=function(C){o=C,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,l,f){l.set(c,f)}:function(c,l,f){if(c.copy)c.copy(l,f,0,c.length);else for(var d=0;d<c.length;)l[f++]=c[d++]}},r.prototype.bytes=function(c){o.isString(c)&&(c=o._Buffer_from(c,"base64"));var l=c.length>>>0;return this.uint32(l),l&&this._push(r.writeBytesBuffer,l,c),this};function s(a,c,l){a.length<40?o.utf8.write(a,c,l):c.utf8Write?c.utf8Write(a,l):c.write(a,l)}r.prototype.string=function(c){var l=o.Buffer.byteLength(c);return this.uint32(l),l&&this._push(s,l,c),this},r._configure()},{15:15,16:16}]},{},[8])})()});var Gxe=Kn((bSi,R8)=>{/* 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,A=Math.floor(f.width/b),C=Math.floor(f.height/T),S=2*f.maxZError,w=Number.MAX_VALUE,D;p=p||(f.mask?f.mask.bitset:null);var O,R;O=new d(f.width*f.height),m&&p&&(R=new Uint8Array(f.width*f.height));for(var L=new Float32Array(A*C),N,_,E=0;E<=T;E++){var v=E!==T?C:f.height%T;if(v!==0)for(var I=0;I<=b;I++){var M=I!==b?A:f.width%b;if(M!==0){var B=E*f.width*C+I*A,V=f.width-M,U=f.pixels.blocks[x],G,k,Y;U.encoding<2?(U.encoding===0?G=U.rawData:(l(U.stuffedData,U.bitsPerPixel,U.numValidPixels,U.offset,S,L,f.pixels.maxValue),G=L),k=0):U.encoding===2?Y=0:Y=U.offset;var j;if(p)for(_=0;_<v;_++){for(B&7&&(j=p[B>>3],j<<=B&7),N=0;N<M;N++)B&7||(j=p[B>>3]),j&128?(R&&(R[B]=1),D=U.encoding<2?G[k++]:Y,w=w>D?D:w,O[B++]=D):(R&&(R[B]=0),O[B++]=g),j<<=1;B+=V}else if(U.encoding<2)for(_=0;_<v;_++){for(N=0;N<M;N++)D=G[k++],w=w>D?D:w,O[B++]=D;B+=V}else for(w=w>Y?Y:w,_=0;_<v;_++){for(N=0;N<M;N++)O[B++]=Y;B+=V}if(U.encoding===1&&k!==U.numValidPixels)throw"Block and Mask do not match";x++}}}return{resultPixels:O,resultMask:R,minValue:w}},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),A=2,C=0;do{if(T>0)for(;T--;)b[C++]=x.getUint8(A++);else{var S=x.getUint8(A++);for(T=-T;T--;)b[C++]=S}T=x.getInt16(A,!0),A+=2}while(A<g.mask.numBytes);if(T!==-32768||C<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 w=g.pixels.numBlocksX,D=g.pixels.numBlocksY,O=w+(g.width%w>0?1:0),R=D+(g.height%D>0?1:0);g.pixels.blocks=new Array(O*R);for(var L=0,N=0;N<R;N++)for(var _=0;_<O;_++){var E=0,v=f.byteLength-d;x=new DataView(f,d,Math.min(10,v));var I={};g.pixels.blocks[L++]=I;var M=x.getUint8(0);if(E++,I.encoding=M&63,I.encoding>3)throw"Invalid block encoding ("+I.encoding+")";if(I.encoding===2){d++;continue}if(M!==0&&M!==2){if(M>>=6,I.offsetType=M,M===2)I.offset=x.getInt8(1),E++;else if(M===1)I.offset=x.getInt16(1,!0),E+=2;else if(M===0)I.offset=x.getFloat32(1,!0),E+=4;else throw"Invalid block offset type";if(I.encoding===1)if(M=x.getUint8(E),E++,I.bitsPerPixel=M&63,M>>=6,I.numValidPixelsType=M,M===2)I.numValidPixels=x.getUint8(E),E++;else if(M===1)I.numValidPixels=x.getUint16(E,!0),E+=2;else if(M===0)I.numValidPixels=x.getUint32(E,!0),E+=4;else throw"Invalid valid pixel count type"}if(d+=E,I.encoding!==3){var B,V;if(I.encoding===0){var U=(g.pixels.numBytes-1)/4;if(U!==Math.floor(U))throw"uncompressed block has invalid length";B=new ArrayBuffer(U*4),V=new Uint8Array(B),V.set(new Uint8Array(f,d,U*4));var G=new Float32Array(B);I.rawData=G,d+=U*4}else if(I.encoding===1){var k=Math.ceil(I.numValidPixels*I.bitsPerPixel/8),Y=Math.ceil(k/4);B=new ArrayBuffer(Y*4),V=new Uint8Array(B),V.set(new Uint8Array(f,d,k)),I.stuffedData=new Uint32Array(B),d+=k}}}return g.eofOffset=d,g},l=function(f,d,p,g,m,x,b){var T=(1<<d)-1,A=0,C,S=0,w,D,O=Math.ceil((b-g)/m),R=f.length*4-Math.ceil(d*p/8);for(f[f.length-1]<<=8*R,C=0;C<p;C++){if(S===0&&(D=f[A++],S=32),S>=d)w=D>>>S-d&T,S-=d;else{var L=d-S;w=(D&T)<<L&T,D=f[A++],S=32-L,w+=D>>>S}x[C]=w<O?g+w*m:b}return x};return o}(),t=function(){"use strict";var o={unstuff:function(c,l,f,d,p,g,m,x){var b=(1<<f)-1,T=0,A,C=0,S,w,D,O,R=c.length*4-Math.ceil(f*d/8);if(c[c.length-1]<<=8*R,p)for(A=0;A<d;A++)C===0&&(w=c[T++],C=32),C>=f?(S=w>>>C-f&b,C-=f):(D=f-C,S=(w&b)<<D&b,w=c[T++],C=32-D,S+=w>>>C),l[A]=p[S];else for(O=Math.ceil((x-g)/m),A=0;A<d;A++)C===0&&(w=c[T++],C=32),C>=f?(S=w>>>C-f&b,C-=f):(D=f-C,S=(w&b)<<D&b,w=c[T++],C=32-D,S+=w>>>C),l[A]=S<O?g+S*m:x},unstuffLUT:function(c,l,f,d,p,g){var m=(1<<l)-1,x=0,b=0,T=0,A=0,C=0,S,w=[],D=c.length*4-Math.ceil(l*f/8);c[c.length-1]<<=8*D;var O=Math.ceil((g-d)/p);for(b=0;b<f;b++)A===0&&(S=c[x++],A=32),A>=l?(C=S>>>A-l&m,A-=l):(T=l-A,C=(S&m)<<T&m,S=c[x++],A=32-T,C+=S>>>A),w[b]=C<O?d+C*p:g;return w.unshift(d),w},unstuff2:function(c,l,f,d,p,g,m,x){var b=(1<<f)-1,T=0,A,C=0,S=0,w,D,O;if(p)for(A=0;A<d;A++)C===0&&(D=c[T++],C=32,S=0),C>=f?(w=D>>>S&b,C-=f,S+=f):(O=f-C,w=D>>>S&b,D=c[T++],C=32-O,w|=(D&(1<<O)-1)<<f-O,S=O),l[A]=p[w];else{var R=Math.ceil((x-g)/m);for(A=0;A<d;A++)C===0&&(D=c[T++],C=32,S=0),C>=f?(w=D>>>S&b,C-=f,S+=f):(O=f-C,w=D>>>S&b,D=c[T++],C=32-O,w|=(D&(1<<O)-1)<<f-O,S=O),l[A]=w<R?g+w*m:x}return l},unstuffLUT2:function(c,l,f,d,p,g){var m=(1<<l)-1,x=0,b=0,T=0,A=0,C=0,S=0,w,D=[],O=Math.ceil((g-d)/p);for(b=0;b<f;b++)A===0&&(w=c[x++],A=32,S=0),A>=l?(C=w>>>S&m,A-=l,S+=l):(T=l-A,C=w>>>S&m,w=c[x++],A=32-T,C|=(w&(1<<T)-1)<<l-T,S=T),D[b]=C<O?d+C*p:g;return D.unshift(d),D},originalUnstuff:function(c,l,f,d){var p=(1<<f)-1,g=0,m,x=0,b,T,A,C=c.length*4-Math.ceil(f*d/8);for(c[c.length-1]<<=8*C,m=0;m<d;m++)x===0&&(T=c[g++],x=32),x>=f?(b=T>>>x-f&p,x-=f):(A=f-x,b=(T&p)<<A&p,T=c[g++],x=32-A,b+=T>>>x),l[m]=b;return l},originalUnstuff2:function(c,l,f,d){var p=(1<<f)-1,g=0,m,x=0,b=0,T,A,C;for(m=0;m<d;m++)x===0&&(A=c[g++],x=32,b=0),x>=f?(T=A>>>b&p,x-=f,b+=f):(C=f-x,T=A>>>b&p,A=c[g++],x=32-C,T|=(A&(1<<C)-1)<<f-C,b=C),l[m]=T;return l}},r={HUFFMAN_LUT_BITS_MAX:12,computeChecksumFletcher32:function(c){for(var l=65535,f=65535,d=c.length,p=Math.floor(d/2),g=0;p;){var m=p>=359?359:p;p-=m;do l+=c[g++]<<8,f+=l+=c[g++];while(--m);l=(l&65535)+(l>>>16),f=(f&65535)+(f>>>16)}return d&1&&(f+=l+=c[g]<<8),l=(l&65535)+(l>>>16),f=(f&65535)+(f>>>16),(f<<16|l)>>>0},readHeaderInfo:function(c,l){var f=l.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,l.headerInfo=p,l.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,l){var f=l.headerInfo,d=this.getDataTypeArray(f.imageType),p=f.numDims*this.getDataTypeSize(f.imageType),g=this.readSubArray(c,l.ptr,d,p),m=this.readSubArray(c,l.ptr+p,d,p);l.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,l,f,d){var p;if(f===Uint8Array)p=new Uint8Array(c,l,d);else{var g=new ArrayBuffer(d),m=new Uint8Array(g);m.set(new Uint8Array(c,l,d)),p=new f(g)}return p},readMask:function(c,l){var f=l.ptr,d=l.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),l.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 A=m.getInt16(0,!0),C=2,S=0,w=0;do{if(A>0)for(;A--;)b[S++]=m.getUint8(C++);else for(w=m.getUint8(C++),A=-A;A--;)b[S++]=w;A=m.getInt16(C,!0),C+=2}while(C<x.numBytes);if(A!==-32768||S<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);l.pixels.resultMask=T,x.bitset=b,f+=x.numBytes}return l.ptr=f,l.mask=x,!0},readDataOneSweep:function(c,l,f){var d=l.ptr,p=l.headerInfo,g=p.numDims,m=p.width*p.height,x=p.imageType,b=p.numValidPixel*r.getDataTypeSize(x)*g,T,A=l.pixels.resultMask;if(f===Uint8Array)T=new Uint8Array(c,d,b);else{var C=new ArrayBuffer(b),S=new Uint8Array(C);S.set(new Uint8Array(c,d,b)),T=new f(C)}if(T.length===m*g)l.pixels.resultPixels=T;else{l.pixels.resultPixels=new f(m*g);var w=0,D=0,O=0,R=0;if(g>1)for(O=0;O<g;O++)for(R=O*m,D=0;D<m;D++)A[D]&&(l.pixels.resultPixels[R+D]=T[w++]);else for(D=0;D<m;D++)A[D]&&(l.pixels.resultPixels[D]=T[w++])}return d+=b,l.ptr=d,!0},readHuffmanTree:function(c,l){var f=this.HUFFMAN_LUT_BITS_MAX,d=new DataView(c,l.ptr,16);l.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,l,b);var T=[],A,C,S,w;for(A=m;A<x;A++)C=A-(A<g?0:g),T[C]={first:b[A-m],second:null};var D=c.byteLength-l.ptr,O=Math.ceil(D/4),R=new ArrayBuffer(O*4),L=new Uint8Array(R);L.set(new Uint8Array(c,l.ptr,D));var N=new Uint32Array(R),_=0,E,v=0;for(E=N[0],A=m;A<x;A++)C=A-(A<g?0:g),w=T[C].first,w>0&&(T[C].second=E<<_>>>32-w,32-_>=w?(_+=w,_===32&&(_=0,v++,E=N[v])):(_+=w-32,v++,E=N[v],T[C].second|=E>>>32-_));var I=0,M=0,B=new s;for(A=0;A<T.length;A++)T[A]!==void 0&&(I=Math.max(I,T[A].first));I>=f?M=f:M=I,I>=30&&console.log("WARning, large NUM LUT BITS IS "+I);var V=[],U,G,k,Y,j,$;for(A=m;A<x;A++)if(C=A-(A<g?0:g),w=T[C].first,w>0)if(U=[w,C],w<=M)for(G=T[C].second<<M-w,k=1<<M-w,S=0;S<k;S++)V[G|S]=U;else for(G=T[C].second,$=B,Y=w-1;Y>=0;Y--)j=G>>>Y&1,j?($.right||($.right=new s),$=$.right):($.left||($.left=new s),$=$.left),Y===0&&!$.val&&($.val=U[1]);return{decodeLut:V,numBitsLUTQick:M,numBitsLUT:I,tree:B,stuffedData:N,srcPtr:v,bitPos:_}},readHuffman:function(c,l,f){var d=l.headerInfo,p=d.numDims,g=l.headerInfo.height,m=l.headerInfo.width,x=m*g,b=this.readHuffmanTree(c,l),T=b.decodeLut,A=b.tree,C=b.stuffedData,S=b.srcPtr,w=b.bitPos,D=b.numBitsLUTQick,O=b.numBitsLUT,R=l.headerInfo.imageType===0?128:0,L,N,_,E=l.pixels.resultMask,v,I,M,B,V,U,G,k=0;w>0&&(S++,w=0);var Y=C[S],j=l.encodeMode===1,$=new f(x*p),W=$,K;for(K=0;K<d.numDims;K++){if(p>1&&(W=new f($.buffer,x*K,x),k=0),l.headerInfo.numValidPixel===m*g)for(U=0,B=0;B<g;B++)for(V=0;V<m;V++,U++){if(N=0,v=Y<<w>>>32-D,I=v,32-w<D&&(v|=C[S+1]>>>64-w-D,I=v),T[I])N=T[I][1],w+=T[I][0];else for(v=Y<<w>>>32-O,I=v,32-w<O&&(v|=C[S+1]>>>64-w-O,I=v),L=A,G=0;G<O;G++)if(M=v>>>O-G-1&1,L=M?L.right:L.left,!(L.left||L.right)){N=L.val,w=w+G+1;break}w>=32&&(w-=32,S++,Y=C[S]),_=N-R,j?(V>0?_+=k:B>0?_+=W[U-m]:_+=k,_&=255,W[U]=_,k=_):W[U]=_}else for(U=0,B=0;B<g;B++)for(V=0;V<m;V++,U++)if(E[U]){if(N=0,v=Y<<w>>>32-D,I=v,32-w<D&&(v|=C[S+1]>>>64-w-D,I=v),T[I])N=T[I][1],w+=T[I][0];else for(v=Y<<w>>>32-O,I=v,32-w<O&&(v|=C[S+1]>>>64-w-O,I=v),L=A,G=0;G<O;G++)if(M=v>>>O-G-1&1,L=M?L.right:L.left,!(L.left||L.right)){N=L.val,w=w+G+1;break}w>=32&&(w-=32,S++,Y=C[S]),_=N-R,j?(V>0&&E[U-1]?_+=k:B>0&&E[U-m]?_+=W[U-m]:_+=k,_&=255,W[U]=_,k=_):W[U]=_}l.ptr=l.ptr+(S+1)*4+(w>0?4:0)}l.pixels.resultPixels=$},decodeBits:function(c,l,f,d,p){{var g=l.headerInfo,m=g.fileVersion,x=0,b=new DataView(c,l.ptr,5),T=b.getUint8(0);x++;var A=T>>6,C=A===0?4:3-A,S=(T&32)>0,w=T&31,D=0;if(C===1)D=b.getUint8(x),x++;else if(C===2)D=b.getUint16(x,!0),x+=2;else if(C===4)D=b.getUint32(x,!0),x+=4;else throw"Invalid valid pixel count type";var O=2*g.maxZError,R,L,N,_,E,v,I,M,B,V,U=g.numDims>1?g.maxValues[p]:g.zMax;if(S){for(l.counter.lut++,M=b.getUint8(x),B=w,x++,_=Math.ceil((M-1)*w/8),E=Math.ceil(_/4),L=new ArrayBuffer(E*4),N=new Uint8Array(L),l.ptr+=x,N.set(new Uint8Array(c,l.ptr,_)),I=new Uint32Array(L),l.ptr+=_,V=0;M-1>>>V;)V++;_=Math.ceil(D*V/8),E=Math.ceil(_/4),L=new ArrayBuffer(E*4),N=new Uint8Array(L),N.set(new Uint8Array(c,l.ptr,_)),R=new Uint32Array(L),l.ptr+=_,m>=3?v=o.unstuffLUT2(I,w,M-1,d,O,U):v=o.unstuffLUT(I,w,M-1,d,O,U),m>=3?o.unstuff2(R,f,V,D,v):o.unstuff(R,f,V,D,v)}else l.counter.bitstuffer++,V=w,l.ptr+=x,V>0&&(_=Math.ceil(D*V/8),E=Math.ceil(_/4),L=new ArrayBuffer(E*4),N=new Uint8Array(L),N.set(new Uint8Array(c,l.ptr,_)),R=new Uint32Array(L),l.ptr+=_,m>=3?d==null?o.originalUnstuff2(R,f,V,D):o.unstuff2(R,f,V,D,!1,d,O,U):d==null?o.originalUnstuff(R,f,V,D):o.unstuff(R,f,V,D,!1,d,O,U))}},readTiles:function(c,l,f){var d=l.headerInfo,p=d.width,g=d.height,m=d.microBlockSize,x=d.imageType,b=r.getDataTypeSize(x),T=Math.ceil(p/m),A=Math.ceil(g/m);l.pixels.numBlocksY=A,l.pixels.numBlocksX=T,l.pixels.ptr=0;var C=0,S=0,w=0,D=0,O=0,R=0,L=0,N=0,_=0,E=0,v=0,I=0,M=0,B=0,V=0,U=0,G,k,Y,j,$,W,K=new f(m*m),Z=g%m||m,me=p%m||m,xe,re,ye=d.numDims,ge,Ae=l.pixels.resultMask,De=l.pixels.resultPixels;for(w=0;w<A;w++)for(O=w!==A-1?m:Z,D=0;D<T;D++)for(R=D!==T-1?m:me,v=w*p*m+D*m,I=p-R,ge=0;ge<ye;ge++){if(ye>1&&(De=new f(l.pixels.resultPixels.buffer,p*g*ge*b,p*g)),L=c.byteLength-l.ptr,G=new DataView(c,l.ptr,Math.min(10,L)),k={},U=0,N=G.getUint8(0),U++,_=N>>6&255,E=N>>2&15,E!==(D*m>>3&15))throw"integrity issue";if(W=N&3,W>3)throw l.ptr+=U,"Invalid block encoding ("+W+")";if(W===2){l.counter.constant++,l.ptr+=U;continue}else if(W===0){if(l.counter.uncompressed++,l.ptr+=U,M=O*R*b,B=c.byteLength-l.ptr,M=M<B?M:B,Y=new ArrayBuffer(M%b===0?M:M+b-M%b),j=new Uint8Array(Y),j.set(new Uint8Array(c,l.ptr,M)),$=new f(Y),V=0,Ae)for(C=0;C<O;C++){for(S=0;S<R;S++)Ae[v]&&(De[v]=$[V++]),v++;v+=I}else for(C=0;C<O;C++){for(S=0;S<R;S++)De[v++]=$[V++];v+=I}l.ptr+=V*b}else if(xe=r.getDataTypeUsed(x,_),re=r.getOnePixel(k,U,xe,G),U+=r.getDataTypeSize(xe),W===3)if(l.ptr+=U,l.counter.constantoffset++,Ae)for(C=0;C<O;C++){for(S=0;S<R;S++)Ae[v]&&(De[v]=re),v++;v+=I}else for(C=0;C<O;C++){for(S=0;S<R;S++)De[v++]=re;v+=I}else if(l.ptr+=U,r.decodeBits(c,l,K,re,ge),U=0,Ae)for(C=0;C<O;C++){for(S=0;S<R;S++)Ae[v]&&(De[v]=K[U++]),v++;v+=I}else for(C=0;C<O;C++){for(S=0;S<R;S++)De[v++]=K[U++];v+=I}}},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 l=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]=l);else for(m=0;m<d;m++)b[m]&&(c.pixels.resultPixels[m]=l);else if(c.pixels.resultPixels.fill)c.pixels.resultPixels.fill(l);else for(m=0;m<p;m++)c.pixels.resultPixels[m]=l},getDataTypeArray:function(c){var l;switch(c){case 0:l=Int8Array;break;case 1:l=Uint8Array;break;case 2:l=Int16Array;break;case 3:l=Uint16Array;break;case 4:l=Int32Array;break;case 5:l=Uint32Array;break;case 6:l=Float32Array;break;case 7:l=Float64Array;break;default:l=Float32Array}return l},getPixelType:function(c){var l;switch(c){case 0:l="S8";break;case 1:l="U8";break;case 2:l="S16";break;case 3:l="U16";break;case 4:l="S32";break;case 5:l="U32";break;case 6:l="F32";break;case 7:l="F64";break;default:l="F32"}return l},isValidPixelValue:function(c,l){if(l==null)return!1;var f;switch(c){case 0:f=l>=-128&&l<=127;break;case 1:f=l>=0&&l<=255;break;case 2:f=l>=-32768&&l<=32767;break;case 3:f=l>=0&&l<=65536;break;case 4:f=l>=-2147483648&&l<=2147483647;break;case 5:f=l>=0&&l<=4294967296;break;case 6:f=l>=-34027999387901484e22&&l<=34027999387901484e22;break;case 7:f=l>=5e-324&&l<=17976931348623157e292;break;default:f=!1}return f},getDataTypeSize:function(c){var l=0;switch(c){case 0:case 1:l=1;break;case 2:case 3:l=2;break;case 4:case 5:case 6:l=4;break;case 7:l=8;break;default:l=c}return l},getDataTypeUsed:function(c,l){var f=c;switch(c){case 2:case 4:f=c-l;break;case 3:case 5:f=c-2*l;break;case 6:l===0?f=c:l===1?f=2:f=1;break;case 7:l===0?f=c:f=c-2*l+1;break;default:f=c;break}return f},getOnePixel:function(c,l,f,d){var p=0;switch(f){case 0:p=d.getInt8(l);break;case 1:p=d.getUint8(l);break;case 2:p=d.getInt16(l,!0);break;case 3:p=d.getUint16(l,!0);break;case 4:p=d.getInt32(l,!0);break;case 5:p=d.getUInt32(l,!0);break;case 6:p=d.getFloat32(l,!0);break;case 7:p=d.getFloat64(l,!0);break;default:throw"the decoder does not understand this pixel type"}return p}},s=function(c,l,f){this.val=c,this.left=l,this.right=f},a={decode:function(c,l){l=l||{};var f=l.noDataValue,d=0,p={};if(p.ptr=l.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=l.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),A=T.getUint8(0);if(p.ptr++,A)r.readDataOneSweep(c,p,x);else if(m>1&&g.imageType<=1&&Math.abs(g.maxZError-.5)<1e-5){var C=T.getUint8(1);if(p.ptr++,p.encodeMode=C,C>2||m<4&&C>1)throw"Invalid Huffman flag "+C;C?r.readHuffman(c,p,x):r.readTiles(c,p,x)}else r.readTiles(c,p,x)}p.eofOffset=p.ptr;var S;l.inputOffset?(S=p.headerInfo.blobSize+l.inputOffset-p.ptr,Math.abs(S)>=1&&(p.eofOffset=l.inputOffset+p.headerInfo.blobSize)):(S=p.headerInfo.blobSize-p.ptr,Math.abs(S)>=1&&(p.eofOffset=p.headerInfo.blobSize));var w={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]||(w.pixelData[d]=f);w.noDataValue=f}return p.noDataValue=f,l.returnFileInfo&&(w.fileInfo=r.formatFileInfo(p)),w}},getBandCount:function(c){var l=0,f=0,d={};for(d.ptr=0,d.pixels={};f<c.byteLength-58;)r.readHeaderInfo(c,d),f+=d.headerInfo.blobSize,l++,d.ptr=f;return l}};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),l,f;if(c.trim()==="CntZImage")l=e,f=1;else if(c.substring(0,5)==="Lerc2")l=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 A=l.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=A.fileInfo.eofOffset,d===0&&(g=A.encodedMaskData,b=A.maskData,T.width=A.width,T.height=A.height,T.dimCount=A.dimCount||1,T.pixelType=A.pixelType||A.fileInfo.pixelType,T.mask=A.maskData),f>1&&A.fileInfo.mask&&A.fileInfo.mask.numBytes>0&&m.push(A.maskData),d++,T.pixels.push(A.pixelData),T.statistics.push({minValue:A.minValue,maxValue:A.maxValue,noDataValue:A.noDataValue,dimStats:A.dimStats})}var C,S,w;if(f>1&&m.length>1){for(w=T.width*T.height,T.bandMasks=m,b=new Uint8Array(w),b.set(m[0]),C=1;C<m.length;C++)for(x=m[C],S=0;S<w;S++)b[S]=b[S]&x[S];T.maskData=b}return T}};typeof define=="function"&&define.amd?define([],function(){return i}):typeof R8<"u"&&R8.exports?R8.exports=i:this.Lerc=i})()});var Ybe=Kn((s3,jK)=>{/*! NoSleep.min.js v0.12.0 - git.io/vfn01 - Rich Tibbett - MIT license */(function(e,t){typeof s3=="object"&&typeof jK=="object"?jK.exports=t():typeof define=="function"&&define.amd?define([],t):typeof s3=="object"?s3.NoSleep=t():e.NoSleep=t()})(s3,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},l=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(`
  67. NoSleep enabled for older iOS devices. This can interrupt
  68. active or long-running network requests from completing successfully.
  69. See https://github.com/richtr/NoSleep.js/issues/15 for more details.
  70. `),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(`
  71. NoSleep now disabled for older iOS devices.
  72. `),window.clearInterval(this.noSleepTimer),this.noSleepTimer=null):this.noSleepVideo.pause(),this.enabled=!1}},{key:"isEnabled",get:function(){return this.enabled}}]),f}();e.exports=l},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 Nbt={};nZ(Nbt,{AlphaMode:()=>Zh,AlphaPipelineStage:()=>sO,Animation:()=>SB,AnimationViewModel:()=>wB,Appearance:()=>eo,ApproximateTerrainHeights:()=>li,ArcGISTiledElevationTerrainProvider:()=>MY,ArcGisBaseMapType:()=>mh,ArcGisMapServerImageryProvider:()=>M_,ArcGisMapService:()=>Pu,ArcType:()=>qt,ArticulationStageType:()=>Qa,AssociativeArray:()=>xt,AttributeCompression:()=>qn,AttributeType:()=>on,AutoExposure:()=>R2,AutomaticUniforms:()=>Ym,Axis:()=>Po,AxisAlignedBoundingBox:()=>hg,B3dmLoader:()=>E1,B3dmParser:()=>T1,BaseLayerPicker:()=>DB,BaseLayerPickerViewModel:()=>vB,BatchTable:()=>G0,BatchTableHierarchy:()=>_x,BatchTexture:()=>Fc,BatchTexturePipelineStage:()=>aO,Billboard:()=>fo,BillboardCollection:()=>uu,BillboardGraphics:()=>Wa,BillboardVisualizer:()=>cI,BingMapsGeocoderService:()=>NY,BingMapsImageryProvider:()=>JL,BingMapsStyle:()=>ZE,BlendEquation:()=>pa,BlendFunction:()=>To,BlendOption:()=>Co,BlendingState:()=>un,BoundingRectangle:()=>We,BoundingSphere:()=>se,BoundingSphereState:()=>ot,BoundingVolumeSemantics:()=>Mx,BoxEmitter:()=>EX,BoxGeometry:()=>hl,BoxGeometryUpdater:()=>SP,BoxGraphics:()=>nx,BoxOutlineGeometry:()=>fd,BrdfLutGenerator:()=>RN,Buffer:()=>ct,BufferLoader:()=>Ax,BufferUsage:()=>Ne,CPUStylingPipelineStage:()=>fO,CallbackProperty:()=>xd,Camera:()=>co,CameraEventAggregator:()=>V2,CameraEventType:()=>Mi,CameraFlightPath:()=>LN,Cartesian2:()=>z,Cartesian3:()=>h,Cartesian4:()=>oe,Cartographic:()=>fe,CartographicGeocoderService:()=>BY,CatmullRomSpline:()=>kY,Cesium3DContentGroup:()=>px,Cesium3DTile:()=>Cf,Cesium3DTileBatchTable:()=>Tp,Cesium3DTileColorBlendMode:()=>xl,Cesium3DTileContent:()=>SX,Cesium3DTileContentFactory:()=>Zx,Cesium3DTileContentState:()=>zo,Cesium3DTileContentType:()=>us,Cesium3DTileFeature:()=>ws,Cesium3DTileFeatureTable:()=>Md,Cesium3DTileOptimizationHint:()=>gf,Cesium3DTileOptimizations:()=>GR,Cesium3DTilePass:()=>Mo,Cesium3DTilePassState:()=>qf,Cesium3DTilePointFeature:()=>jp,Cesium3DTileRefine:()=>Bo,Cesium3DTileStyle:()=>DT,Cesium3DTileStyleEngine:()=>KR,Cesium3DTilesInspector:()=>LB,Cesium3DTilesInspectorViewModel:()=>MB,Cesium3DTilesVoxelProvider:()=>IX,Cesium3DTileset:()=>Zs,Cesium3DTilesetBaseTraversal:()=>tM,Cesium3DTilesetCache:()=>qR,Cesium3DTilesetGraphics:()=>lx,Cesium3DTilesetHeatmap:()=>YR,Cesium3DTilesetMetadata:()=>cb,Cesium3DTilesetMostDetailedTraversal:()=>QR,Cesium3DTilesetSkipTraversal:()=>oM,Cesium3DTilesetStatistics:()=>a_,Cesium3DTilesetTraversal:()=>Rs,Cesium3DTilesetVisualizer:()=>rM,CesiumInspector:()=>BB,CesiumInspectorViewModel:()=>FB,CesiumTerrainProvider:()=>gF,CesiumWidget:()=>lF,Check:()=>sl,CheckerboardMaterialProperty:()=>DC,CircleEmitter:()=>OF,CircleGeometry:()=>WY,CircleOutlineGeometry:()=>jY,ClassificationModelDrawCommand:()=>V1,ClassificationPipelineStage:()=>cO,ClassificationPrimitive:()=>TA,ClassificationType:()=>Vn,ClearCommand:()=>ti,ClippingPlane:()=>Lx,ClippingPlaneCollection:()=>cs,Clock:()=>Xd,ClockRange:()=>Fr,ClockStep:()=>ho,ClockViewModel:()=>TB,CloudCollection:()=>NX,CloudType:()=>LS,Color:()=>H,ColorBlendMode:()=>$a,ColorGeometryInstanceAttribute:()=>kt,ColorMaterialProperty:()=>Nt,Command:()=>RK,ComponentDatatype:()=>X,Composite3DTileContent:()=>NP,CompositeEntityCollection:()=>q9,CompositeMaterialProperty:()=>PC,CompositePositionProperty:()=>$s,CompositeProperty:()=>ic,CompressedTextureBuffer:()=>Tw,ComputeCommand:()=>Xu,ComputeEngine:()=>aw,ConditionsExpression:()=>vF,ConeEmitter:()=>BX,ConstantPositionProperty:()=>Oc,ConstantProperty:()=>Qn,ConstantSpline:()=>D1,ContentMetadata:()=>RR,Context:()=>tI,ContextLimits:()=>Ut,CoplanarPolygonGeometry:()=>GM,CoplanarPolygonGeometryLibrary:()=>t_,CoplanarPolygonOutlineGeometry:()=>Tf,CornerType:()=>Pi,CorridorGeometry:()=>mb,CorridorGeometryLibrary:()=>Bi,CorridorGeometryUpdater:()=>mM,CorridorGraphics:()=>ox,CorridorOutlineGeometry:()=>hM,Credit:()=>bt,CreditDisplay:()=>kN,CubeMap:()=>Ha,CubeMapFace:()=>Bh,CubicRealPolynomial:()=>z0,CullFace:()=>pi,CullingVolume:()=>es,CumulusCloud:()=>zu,CustomDataSource:()=>bM,CustomHeightmapTerrainProvider:()=>qY,CustomShader:()=>VT,CustomShaderMode:()=>Gp,CustomShaderPipelineStage:()=>yO,CustomShaderTranslucencyMode:()=>qg,CylinderGeometry:()=>TM,CylinderGeometryLibrary:()=>pb,CylinderGeometryUpdater:()=>CM,CylinderGraphics:()=>rx,CylinderOutlineGeometry:()=>AM,CzmlDataSource:()=>MM,DataSource:()=>Lr,DataSourceClock:()=>Kd,DataSourceCollection:()=>LM,DataSourceDisplay:()=>bL,DebugAppearance:()=>kX,DebugCameraPrimitive:()=>Rm,DebugInspector:()=>X2,DebugModelMatrixPrimitive:()=>MF,DefaultProxy:()=>YY,DepthFunction:()=>ja,DepthPlane:()=>qN,DequantizationPipelineStage:()=>bO,DerivedCommand:()=>U_,DeveloperError:()=>de,DeviceOrientationCameraController:()=>XN,DirectionalLight:()=>UX,DiscardEmptyTileImagePolicy:()=>$E,DiscardMissingTileImagePolicy:()=>$L,DistanceDisplayCondition:()=>St,DistanceDisplayConditionGeometryInstanceAttribute:()=>Un,DoubleEndedPriorityQueue:()=>CT,DoublyLinkedList:()=>jR,DracoLoader:()=>Ip,DrawCommand:()=>Je,DynamicGeometryBatch:()=>Cb,DynamicGeometryUpdater:()=>ii,EarthOrientationParameters:()=>xw,EarthOrientationParametersSample:()=>tg,EasingFunction:()=>kr,EllipseGeometry:()=>Wc,EllipseGeometryLibrary:()=>Ml,EllipseGeometryUpdater:()=>FM,EllipseGraphics:()=>sx,EllipseOutlineGeometry:()=>xu,Ellipsoid:()=>ie,EllipsoidGeodesic:()=>nf,EllipsoidGeometry:()=>Ns,EllipsoidGeometryUpdater:()=>kM,EllipsoidGraphics:()=>ax,EllipsoidOutlineGeometry:()=>du,EllipsoidPrimitive:()=>wN,EllipsoidRhumbLine:()=>_a,EllipsoidSurfaceAppearance:()=>VX,EllipsoidTangentPlane:()=>Sr,EllipsoidTerrainProvider:()=>Dm,EllipsoidalOccluder:()=>h_,Empty3DTileContent:()=>hC,EncodedCartesian3:()=>jn,Entity:()=>Yo,EntityCluster:()=>hu,EntityCollection:()=>Ms,EntityView:()=>AL,Event:()=>pe,EventHelper:()=>Or,Expression:()=>sf,ExpressionNodeType:()=>dt,ExtrapolationType:()=>pu,FeatureDetection:()=>Bt,FeatureIdPipelineStage:()=>jg,Fog:()=>KN,ForEach:()=>Ie,FrameRateMonitor:()=>FF,FrameState:()=>ZN,Framebuffer:()=>Hs,FramebufferManager:()=>ui,FrustumCommands:()=>e2,FrustumGeometry:()=>tT,FrustumOutlineGeometry:()=>zN,Fullscreen:()=>mr,FullscreenButton:()=>UB,FullscreenButtonViewModel:()=>kB,GeoJsonDataSource:()=>SL,GeoJsonLoader:()=>S1,GeocodeType:()=>o0,Geocoder:()=>GB,GeocoderService:()=>IS,GeocoderViewModel:()=>HB,GeographicProjection:()=>wi,GeographicTilingScheme:()=>zi,Geometry:()=>st,Geometry3DTileContent:()=>BP,GeometryAttribute:()=>we,GeometryAttributes:()=>fn,GeometryFactory:()=>KY,GeometryInstance:()=>yt,GeometryInstanceAttribute:()=>qa,GeometryOffsetAttribute:()=>tn,GeometryPipeline:()=>Nn,GeometryPipelineStage:()=>EO,GeometryType:()=>Ku,GeometryUpdater:()=>oi,GeometryVisualizer:()=>aL,GetFeatureInfoFormat:()=>$b,Globe:()=>AN,GlobeDepth:()=>t2,GlobeSurfaceShaderSet:()=>ZL,GlobeSurfaceTile:()=>Gf,GlobeSurfaceTileProvider:()=>dN,GlobeTranslucency:()=>hN,GlobeTranslucencyFramebuffer:()=>n2,GlobeTranslucencyState:()=>$N,GltfBufferViewLoader:()=>NA,GltfDracoLoader:()=>FA,GltfImageLoader:()=>BA,GltfIndexBufferLoader:()=>kA,GltfJsonLoader:()=>VA,GltfLoader:()=>Lp,GltfLoaderUtil:()=>Cl,GltfStructuralMetadataLoader:()=>g1,GltfTextureLoader:()=>zA,GltfVertexBufferLoader:()=>HA,GoogleEarthEnterpriseImageryProvider:()=>HX,GoogleEarthEnterpriseMapsProvider:()=>nN,GoogleEarthEnterpriseMetadata:()=>K_,GoogleEarthEnterpriseTerrainData:()=>PS,GoogleEarthEnterpriseTerrainProvider:()=>iX,GoogleEarthEnterpriseTileInformation:()=>xF,GoogleMaps:()=>ST,GpxDataSource:()=>IL,GregorianDate:()=>Qm,GridImageryProvider:()=>GX,GridMaterialProperty:()=>VC,GroundGeometryUpdater:()=>Yn,GroundPolylineGeometry:()=>Q0,GroundPolylinePrimitive:()=>pd,GroundPrimitive:()=>Ic,GroupMetadata:()=>SC,HeadingPitchRange:()=>Bf,HeadingPitchRoll:()=>za,Heap:()=>pw,HeightReference:()=>Ge,HeightmapEncoding:()=>Vf,HeightmapTerrainData:()=>wa,HeightmapTessellator:()=>jE,HermitePolynomialApproximation:()=>EM,HermiteSpline:()=>Hg,HilbertOrder:()=>OA,HomeButton:()=>zB,HomeButtonViewModel:()=>VB,HorizontalOrigin:()=>mi,I3SDataProvider:()=>LT,I3SDecoder:()=>BF,I3SFeature:()=>kF,I3SField:()=>UF,I3SGeometry:()=>FS,I3SLayer:()=>kS,I3SNode:()=>BS,I3dmLoader:()=>v1,I3dmParser:()=>w1,Iau2000Orientation:()=>EN,Iau2006XysData:()=>bw,Iau2006XysSample:()=>M0,IauOrientationAxes:()=>SN,IauOrientationParameters:()=>CN,ImageBasedLighting:()=>mx,ImageBasedLightingPipelineStage:()=>j1,ImageMaterialProperty:()=>yg,Imagery:()=>iS,ImageryLayer:()=>oa,ImageryLayerCollection:()=>mN,ImageryLayerFeatureInfo:()=>hh,ImageryProvider:()=>Kc,ImageryState:()=>ci,Implicit3DTileContent:()=>WA,ImplicitAvailabilityBitstream:()=>MA,ImplicitMetadataView:()=>LA,ImplicitSubdivisionScheme:()=>Gr,ImplicitSubtree:()=>Ox,ImplicitSubtreeCache:()=>IF,ImplicitSubtreeMetadata:()=>kP,ImplicitTileCoordinates:()=>fb,ImplicitTileset:()=>ub,IndexDatatype:()=>Fe,InfoBox:()=>jB,InfoBoxViewModel:()=>WB,InspectorShared:()=>Oa,InstanceAttributeSemantic:()=>Wr,InstancingPipelineStage:()=>nO,InterpolationAlgorithm:()=>oX,InterpolationType:()=>Od,Intersect:()=>Kt,IntersectionTests:()=>xi,Intersections2D:()=>Y_,Interval:()=>Ec,InvertClassification:()=>mS,Ion:()=>Ad,IonGeocoderService:()=>AF,IonImageryProvider:()=>L_,IonResource:()=>ru,IonWorldImageryStyle:()=>N_,Iso8601:()=>Ve,JobScheduler:()=>QN,JobType:()=>xa,JsonMetadataTable:()=>Rp,JulianDate:()=>J,KTX2Transcoder:()=>Aw,KeyboardEventModifier:()=>aa,KeyframeNode:()=>Ki,KmlCamera:()=>PL,KmlDataSource:()=>qL,KmlLookAt:()=>UL,KmlTour:()=>VL,KmlTourFlyTo:()=>HL,KmlTourWait:()=>GL,Label:()=>Qg,LabelCollection:()=>im,LabelGraphics:()=>_d,LabelStyle:()=>Vo,LabelVisualizer:()=>cL,LagrangePolynomialApproximation:()=>SM,LeapSecond:()=>Ui,Light:()=>qX,LightingModel:()=>Qh,LightingPipelineStage:()=>wO,LinearApproximation:()=>gb,LinearSpline:()=>zg,ManagedArray:()=>Nc,MapMode2D:()=>zl,MapProjection:()=>aX,MapboxImageryProvider:()=>iN,MapboxStyleImageryProvider:()=>YX,Material:()=>Vi,MaterialAppearance:()=>so,MaterialPipelineStage:()=>DO,MaterialProperty:()=>qo,Math:()=>P,Matrix2:()=>Qi,Matrix3:()=>Q,Matrix4:()=>F,Megatexture:()=>VS,MetadataClass:()=>vd,MetadataClassProperty:()=>vg,MetadataComponentType:()=>Qt,MetadataEntity:()=>Fn,MetadataEnum:()=>o1,MetadataEnumValue:()=>i1,MetadataPipelineStage:()=>lf,MetadataSchema:()=>Dd,MetadataSchemaLoader:()=>GA,MetadataSemantic:()=>Rx,MetadataTable:()=>Tl,MetadataTableProperty:()=>VP,MetadataType:()=>Ht,MipmapHint:()=>kh,Model:()=>Fd,Model3DTileContent:()=>em,ModelAlphaOptions:()=>WO,ModelAnimation:()=>R1,ModelAnimationChannel:()=>O1,ModelAnimationCollection:()=>M1,ModelAnimationLoop:()=>wl,ModelAnimationState:()=>Ld,ModelArticulation:()=>Y1,ModelArticulationStage:()=>q1,ModelClippingPlanesPipelineStage:()=>Z1,ModelColorPipelineStage:()=>Wg,ModelComponents:()=>Mt,ModelDrawCommand:()=>z1,ModelFeature:()=>L1,ModelFeatureTable:()=>F1,ModelGraphics:()=>pp,ModelLightingOptions:()=>QO,ModelMatrixUpdateStage:()=>iO,ModelNode:()=>$1,ModelRenderResources:()=>jO,ModelRuntimeNode:()=>rO,ModelRuntimePrimitive:()=>HO,ModelSceneGraph:()=>eR,ModelSilhouettePipelineStage:()=>XO,ModelSkin:()=>GO,ModelSplitterPipelineStage:()=>ZO,ModelStatistics:()=>tR,ModelType:()=>or,ModelUtility:()=>Jt,ModelVisualizer:()=>uL,Moon:()=>DN,MorphTargetsPipelineStage:()=>PO,MorphWeightSpline:()=>cX,MortonOrder:()=>cy,Multiple3DTileContent:()=>NR,MultisampleFramebuffer:()=>nI,NavigationHelpButton:()=>YB,NavigationHelpButtonViewModel:()=>qB,NearFarScalar:()=>Pt,NeverTileDiscardPolicy:()=>KX,NodeRenderResources:()=>$O,NodeStatisticsPipelineStage:()=>oO,NodeTransformationProperty:()=>cx,OIT:()=>o2,Occluder:()=>IN,OctahedralProjectedCubeMap:()=>Td,OffsetGeometryInstanceAttribute:()=>Yi,OpenCageGeocoderService:()=>uX,OpenStreetMapImageryProvider:()=>$_,OrderedGroundPrimitiveCollection:()=>NM,OrientedBoundingBox:()=>In,OrthographicFrustum:()=>$t,OrthographicOffCenterFrustum:()=>Cr,Packable:()=>fX,PackableForInterpolation:()=>dX,Particle:()=>zS,ParticleBurst:()=>$X,ParticleEmitter:()=>QX,ParticleSystem:()=>JX,Pass:()=>Ee,PassState:()=>Ga,PathGraphics:()=>_p,PathVisualizer:()=>dL,PeliasGeocoderService:()=>TF,PerInstanceColorAppearance:()=>nn,PerformanceDisplay:()=>V_,PerformanceWatchdog:()=>KB,PerformanceWatchdogViewModel:()=>XB,PerspectiveFrustum:()=>Ei,PerspectiveOffCenterFrustum:()=>$c,PickDepth:()=>JN,PickDepthFramebuffer:()=>s2,PickFramebuffer:()=>l2,Picking:()=>h2,PickingPipelineStage:()=>OO,PinBuilder:()=>v_,PixelDatatype:()=>Ye,PixelFormat:()=>nt,Plane:()=>en,PlaneGeometry:()=>UM,PlaneGeometryUpdater:()=>zM,PlaneGraphics:()=>yP,PlaneOutlineGeometry:()=>VM,PntsLoader:()=>iR,PntsParser:()=>Wx,PointCloud:()=>WF,PointCloudEyeDomeLighting:()=>Np,PointCloudShading:()=>$h,PointCloudStylingPipelineStage:()=>MO,PointGraphics:()=>ux,PointPrimitive:()=>Ls,PointPrimitiveCollection:()=>NC,PointVisualizer:()=>mL,PolygonGeometry:()=>vb,PolygonGeometryLibrary:()=>Hn,PolygonGeometryUpdater:()=>jM,PolygonGraphics:()=>gd,PolygonHierarchy:()=>ga,PolygonOutlineGeometry:()=>WM,PolygonPipeline:()=>ai,Polyline:()=>mf,PolylineArrowMaterialProperty:()=>HC,PolylineCollection:()=>Ud,PolylineColorAppearance:()=>zr,PolylineDashMaterialProperty:()=>WC,PolylineGeometry:()=>w_,PolylineGeometryUpdater:()=>gL,PolylineGlowMaterialProperty:()=>qC,PolylineGraphics:()=>Ya,PolylineMaterialAppearance:()=>Ws,PolylineOutlineMaterialProperty:()=>_y,PolylinePipeline:()=>Ii,PolylineVisualizer:()=>xL,PolylineVolumeGeometry:()=>XM,PolylineVolumeGeometryLibrary:()=>Wd,PolylineVolumeGeometryUpdater:()=>QM,PolylineVolumeGraphics:()=>fx,PolylineVolumeOutlineGeometry:()=>$M,PositionProperty:()=>hp,PositionPropertyArray:()=>g_,PostProcessStage:()=>_o,PostProcessStageCollection:()=>F2,PostProcessStageComposite:()=>Qc,PostProcessStageLibrary:()=>Xf,PostProcessStageSampleMode:()=>Mu,PostProcessStageTextureCache:()=>hT,Primitive:()=>En,PrimitiveCollection:()=>Rl,PrimitiveLoadPlan:()=>kx,PrimitiveOutlineGenerator:()=>Bx,PrimitiveOutlinePipelineStage:()=>FO,PrimitivePipeline:()=>K0,PrimitiveRenderResources:()=>JO,PrimitiveState:()=>gr,PrimitiveStatisticsPipelineStage:()=>BO,PrimitiveType:()=>Me,ProjectionPicker:()=>$B,ProjectionPickerViewModel:()=>ZB,Property:()=>q,PropertyArray:()=>XC,PropertyAttribute:()=>Fx,PropertyAttributeProperty:()=>h1,PropertyBag:()=>gl,PropertyTable:()=>Bc,PropertyTexture:()=>Nx,PropertyTextureProperty:()=>d1,ProviderViewModel:()=>Kr,Proxy:()=>hX,QuadraticRealPolynomial:()=>wc,QuadtreeOccluders:()=>pN,QuadtreePrimitive:()=>TN,QuadtreeTile:()=>_N,QuadtreeTileLoadState:()=>Bs,QuadtreeTileProvider:()=>rK,QuantizedMeshTerrainData:()=>AT,QuarticRealPolynomial:()=>HI,Quaternion:()=>Le,QuaternionSpline:()=>P1,Queue:()=>oy,Ray:()=>Tn,Rectangle:()=>ce,RectangleCollisionChecker:()=>Ob,RectangleGeometry:()=>Ib,RectangleGeometryLibrary:()=>fs,RectangleGeometryUpdater:()=>JM,RectangleGraphics:()=>yd,RectangleOutlineGeometry:()=>eb,ReferenceFrame:()=>no,ReferenceProperty:()=>y_,RenderState:()=>ke,Renderbuffer:()=>$l,RenderbufferFormat:()=>Ac,Request:()=>Go,RequestErrorEvent:()=>Lh,RequestScheduler:()=>Ua,RequestState:()=>Jn,RequestType:()=>Jr,Resource:()=>ve,ResourceCache:()=>Hi,ResourceCacheKey:()=>El,ResourceCacheStatistics:()=>c1,ResourceLoader:()=>io,ResourceLoaderState:()=>Et,Rotation:()=>Df,RuntimeError:()=>ue,S2Cell:()=>Sp,SDFSettings:()=>Ps,SampledPositionProperty:()=>Js,SampledProperty:()=>gu,Sampler:()=>ln,ScaledPositionProperty:()=>_m,Scene:()=>Z2,SceneFramebuffer:()=>sT,SceneMode:()=>te,SceneMode2DPipelineStage:()=>kO,SceneModePicker:()=>JB,SceneModePickerViewModel:()=>QB,SceneTransforms:()=>Xi,SceneTransitioner:()=>U2,ScreenSpaceCameraController:()=>G2,ScreenSpaceEventHandler:()=>Nu,ScreenSpaceEventType:()=>xn,SelectedFeatureIdPipelineStage:()=>Yg,SelectionIndicator:()=>n3,SelectionIndicatorViewModel:()=>t3,ShaderBuilder:()=>B0,ShaderCache:()=>KD,ShaderDestination:()=>Ce,ShaderFunction:()=>rI,ShaderProgram:()=>Yt,ShaderSource:()=>Ue,ShaderStruct:()=>oI,ShadowMap:()=>G_,ShadowMapShader:()=>Fm,ShadowMode:()=>yn,ShadowVolumeAppearance:()=>tu,ShowGeometryInstanceAttribute:()=>gn,Simon1994PlanetaryPositions:()=>lg,SimplePolylineGeometry:()=>mX,SingleTileImageryProvider:()=>oN,SkinningPipelineStage:()=>VO,SkyAtmosphere:()=>J2,SkyBox:()=>nF,SpatialNode:()=>qF,SphereEmitter:()=>aK,SphereGeometry:()=>pX,SphereOutlineGeometry:()=>i_,Spherical:()=>wM,Spline:()=>oo,SplitDirection:()=>kc,Splitter:()=>HS,StaticGeometryColorBatch:()=>Rf,StaticGeometryPerMaterialBatch:()=>Mf,StaticGroundGeometryColorBatch:()=>gE,StaticGroundGeometryPerMaterialBatch:()=>eL,StaticGroundPolylinePerMaterialBatch:()=>yL,StaticOutlineGeometryBatch:()=>bE,StencilConstants:()=>Lt,StencilFunction:()=>zn,StencilOperation:()=>lt,SteppedSpline:()=>I1,Stereographic:()=>ac,StripeMaterialProperty:()=>ZC,StripeOrientation:()=>$d,StructuralMetadata:()=>ba,StyleCommandsNeeded:()=>Nd,StyleExpression:()=>cK,Sun:()=>cF,SunLight:()=>op,SunPostProcess:()=>q2,SupportedImageFormats:()=>y1,SvgPathBindingHandler:()=>xB,TaskProcessor:()=>hi,Terrain:()=>XF,TerrainData:()=>dh,TerrainEncoding:()=>dc,TerrainExaggeration:()=>vc,TerrainFillMesh:()=>aS,TerrainMesh:()=>Hf,TerrainOffsetProperty:()=>dx,TerrainProvider:()=>jr,TerrainQuantization:()=>Fs,TerrainState:()=>ao,Texture:()=>It,TextureAtlas:()=>$g,TextureCache:()=>ZD,TextureMagnificationFilter:()=>yi,TextureManager:()=>hB,TextureMinificationFilter:()=>rn,TextureUniform:()=>vK,TextureWrap:()=>Sn,TileAvailability:()=>Th,TileBoundingRegion:()=>bf,TileBoundingS2Cell:()=>zR,TileBoundingSphere:()=>o_,TileBoundingVolume:()=>lK,TileCoordinatesImageryProvider:()=>ZF,TileDiscardPolicy:()=>fK,TileEdge:()=>pn,TileImagery:()=>oS,TileMapServiceImageryProvider:()=>Gy,TileMetadata:()=>MR,TileOrientedBoundingBox:()=>Af,TileProviderError:()=>wo,TileReplacementQueue:()=>gN,TileSelectionResult:()=>$n,TileState:()=>dK,Tileset3DTileContent:()=>sR,TilesetMetadata:()=>HR,TilesetPipelineStage:()=>G1,TilingScheme:()=>_X,TimeConstants:()=>Zn,TimeDynamicImagery:()=>Qb,TimeDynamicPointCloud:()=>jS,TimeInterval:()=>bn,TimeIntervalCollection:()=>Mr,TimeIntervalCollectionPositionProperty:()=>x_,TimeIntervalCollectionProperty:()=>b_,TimeStandard:()=>Xn,Timeline:()=>r3,TimelineHighlightRange:()=>i3,TimelineTrack:()=>o3,Tipsify:()=>YI,ToggleButtonViewModel:()=>d0,Tonemapper:()=>Qy,Transforms:()=>Rt,TranslationRotationScale:()=>xg,TranslucentTileClassification:()=>f2,TridiagonalSystemSolver:()=>QA,TrustedServers:()=>oA,TweenCollection:()=>gT,UniformState:()=>eI,UniformType:()=>YS,UrlTemplateImageryProvider:()=>va,VERSION:()=>Lbt,VRButton:()=>c3,VRButtonViewModel:()=>a3,VRTheWorldTerrainProvider:()=>gX,VaryingType:()=>DK,Vector3DTileBatch:()=>Yh,Vector3DTileClampedPolylines:()=>IR,Vector3DTileContent:()=>OR,Vector3DTileGeometry:()=>Cp,Vector3DTilePoints:()=>AR,Vector3DTilePolygons:()=>CR,Vector3DTilePolylines:()=>Kx,Vector3DTilePrimitive:()=>xx,VelocityOrientationProperty:()=>DM,VelocityVectorProperty:()=>Tb,VertexArray:()=>ni,VertexArrayFacade:()=>sp,VertexAttributeSemantic:()=>Tt,VertexFormat:()=>Pe,VerticalOrigin:()=>Dn,VideoSynchronizer:()=>yX,View:()=>lT,Viewer:()=>YK,ViewportQuad:()=>pK,Visibility:()=>lr,Visualizer:()=>U7,VoxelBoxShape:()=>Hm,VoxelContent:()=>PF,VoxelCylinderShape:()=>Gm,VoxelEllipsoidShape:()=>IT,VoxelInspector:()=>f3,VoxelInspectorViewModel:()=>u3,VoxelPrimitive:()=>KS,VoxelProvider:()=>xK,VoxelRenderResources:()=>uB,VoxelShape:()=>bK,VoxelShapeType:()=>Wi,VoxelTraversal:()=>qS,VulkanConstants:()=>xX,WallGeometry:()=>nL,WallGeometryLibrary:()=>Rb,WallGeometryUpdater:()=>rL,WallGraphics:()=>gp,WallOutlineGeometry:()=>oL,WebGLConstants:()=>ee,WebMapServiceImageryProvider:()=>sN,WebMapTileServiceImageryProvider:()=>cN,WebMercatorProjection:()=>Di,WebMercatorTilingScheme:()=>qr,WindingOrder:()=>$r,WireframeIndexGenerator:()=>aC,WireframePipelineStage:()=>zO,_shadersAcesTonemappingStage:()=>m2,_shadersAdditiveBlend:()=>W2,_shadersAdjustTranslucentFS:()=>pS,_shadersAllMaterialAppearanceFS:()=>fI,_shadersAllMaterialAppearanceVS:()=>dI,_shadersAmbientOcclusionGenerate:()=>p2,_shadersAmbientOcclusionModulate:()=>_2,_shadersAspectRampMaterial:()=>gI,_shadersAtmosphereCommon:()=>O_,_shadersBasicMaterialAppearanceFS:()=>hI,_shadersBasicMaterialAppearanceVS:()=>mI,_shadersBillboardCollectionFS:()=>aR,_shadersBillboardCollectionVS:()=>cR,_shadersBlackAndWhite:()=>g2,_shadersBloomComposite:()=>y2,_shadersBrdfLutGeneratorFS:()=>PN,_shadersBrightPass:()=>j2,_shadersBrightness:()=>x2,_shadersBumpMapMaterial:()=>yI,_shadersCPUStylingStageFS:()=>uO,_shadersCPUStylingStageVS:()=>lO,_shadersCheckerboardMaterial:()=>xI,_shadersCloudCollectionFS:()=>uF,_shadersCloudCollectionVS:()=>fF,_shadersCloudNoiseFS:()=>dF,_shadersCloudNoiseVS:()=>hF,_shadersCompareAndPackTranslucentDepth:()=>u2,_shadersCompositeOITFS:()=>i2,_shadersCompositeTranslucentClassification:()=>cT,_shadersContrastBias:()=>b2,_shadersCustomShaderStageFS:()=>hO,_shadersCustomShaderStageVS:()=>dO,_shadersCzmBuiltins:()=>L0,_shadersDepthOfField:()=>T2,_shadersDepthPlaneFS:()=>HN,_shadersDepthPlaneVS:()=>GN,_shadersDepthView:()=>A2,_shadersDepthViewPacked:()=>wK,_shadersDotMaterial:()=>bI,_shadersEdgeDetection:()=>C2,_shadersElevationBandMaterial:()=>TI,_shadersElevationContourMaterial:()=>AI,_shadersElevationRampMaterial:()=>CI,_shadersEllipsoidFS:()=>lS,_shadersEllipsoidSurfaceAppearanceFS:()=>LF,_shadersEllipsoidSurfaceAppearanceVS:()=>NF,_shadersEllipsoidVS:()=>uS,_shadersFXAA:()=>S2,_shadersFXAA3_11:()=>O2,_shadersFadeMaterial:()=>EI,_shadersFeatureIdStageFS:()=>mO,_shadersFeatureIdStageVS:()=>pO,_shadersFilmicTonemapping:()=>E2,_shadersGaussianBlur1D:()=>$y,_shadersGeometryStageFS:()=>TO,_shadersGeometryStageVS:()=>AO,_shadersGlobeFS:()=>XL,_shadersGlobeVS:()=>KL,_shadersGridMaterial:()=>SI,_shadersGroundAtmosphere:()=>YE,_shadersHSBToRGB:()=>yv,_shadersHSLToRGB:()=>xv,_shadersImageBasedLightingStageFS:()=>W1,_shadersInstancingStageCommon:()=>Q1,_shadersInstancingStageVS:()=>J1,_shadersIntersectBox:()=>nB,_shadersIntersectClippingPlanes:()=>tB,_shadersIntersectCylinder:()=>iB,_shadersIntersectDepth:()=>eB,_shadersIntersectEllipsoid:()=>oB,_shadersIntersection:()=>kT,_shadersIntersectionUtils:()=>JF,_shadersLegacyInstancingStageVS:()=>eO,_shadersLensFlare:()=>w2,_shadersLightingStageFS:()=>SO,_shadersMaterialStageFS:()=>vO,_shadersMegatexture:()=>lB,_shadersMetadataStageFS:()=>_O,_shadersMetadataStageVS:()=>gO,_shadersModelClippingPlanesStageFS:()=>K1,_shadersModelColorStageFS:()=>X1,_shadersModelFS:()=>B1,_shadersModelSilhouetteStageFS:()=>qO,_shadersModelSilhouetteStageVS:()=>YO,_shadersModelSplitterStageFS:()=>KO,_shadersModelVS:()=>k1,_shadersModifiedReinhardTonemapping:()=>v2,_shadersMorphTargetsStageVS:()=>IO,_shadersNightVision:()=>D2,_shadersNormalMapMaterial:()=>wI,_shadersOctahedralProjectionAtlasFS:()=>IP,_shadersOctahedralProjectionFS:()=>PP,_shadersOctahedralProjectionVS:()=>OP,_shadersOctree:()=>cB,_shadersPassThrough:()=>Hl,_shadersPassThroughDepth:()=>Xy,_shadersPerInstanceColorAppearanceFS:()=>FI,_shadersPerInstanceColorAppearanceVS:()=>BI,_shadersPerInstanceFlatColorAppearanceFS:()=>V0,_shadersPerInstanceFlatColorAppearanceVS:()=>kI,_shadersPointCloudEyeDomeLighting:()=>x1,_shadersPointCloudStylingStageVS:()=>RO,_shadersPointPrimitiveCollectionFS:()=>py,_shadersPointPrimitiveCollectionVS:()=>pM,_shadersPolylineArrowMaterial:()=>vI,_shadersPolylineColorAppearanceVS:()=>rP,_shadersPolylineCommon:()=>nu,_shadersPolylineDashMaterial:()=>DI,_shadersPolylineFS:()=>ex,_shadersPolylineGlowMaterial:()=>II,_shadersPolylineMaterialAppearanceVS:()=>sP,_shadersPolylineOutlineMaterial:()=>PI,_shadersPolylineShadowVolumeFS:()=>tP,_shadersPolylineShadowVolumeMorphFS:()=>nP,_shadersPolylineShadowVolumeMorphVS:()=>iP,_shadersPolylineShadowVolumeVS:()=>oP,_shadersPolylineVS:()=>_R,_shadersPrimitiveOutlineStageFS:()=>NO,_shadersPrimitiveOutlineStageVS:()=>LO,_shadersRGBToHSB:()=>bv,_shadersRGBToHSL:()=>Tv,_shadersRGBToXYZ:()=>Av,_shadersReinhardTonemapping:()=>I2,_shadersReprojectWebMercatorFS:()=>lN,_shadersReprojectWebMercatorVS:()=>uN,_shadersRimLightingMaterial:()=>OI,_shadersSelectedFeatureIdStageCommon:()=>sC,_shadersShadowVolumeAppearanceFS:()=>xA,_shadersShadowVolumeAppearanceVS:()=>GI,_shadersShadowVolumeFS:()=>mg,_shadersSilhouette:()=>P2,_shadersSkinningStageVS:()=>UO,_shadersSkyAtmosphereCommon:()=>bS,_shadersSkyAtmosphereFS:()=>$2,_shadersSkyAtmosphereVS:()=>Q2,_shadersSkyBoxFS:()=>eF,_shadersSkyBoxVS:()=>tF,_shadersSlopeRampMaterial:()=>RI,_shadersStripeMaterial:()=>MI,_shadersSunFS:()=>iF,_shadersSunTextureFS:()=>oF,_shadersSunVS:()=>rF,_shadersTexturedMaterialAppearanceFS:()=>pI,_shadersTexturedMaterialAppearanceVS:()=>_I,_shadersVector3DTileClampedPolylinesFS:()=>vR,_shadersVector3DTileClampedPolylinesVS:()=>wR,_shadersVector3DTilePolylinesVS:()=>ER,_shadersVectorTileVS:()=>PA,_shadersViewportQuadFS:()=>mF,_shadersViewportQuadVS:()=>A0,_shadersVoxelFS:()=>$F,_shadersVoxelVS:()=>QF,_shadersWater:()=>LI,_shadersXYZToRGB:()=>Cv,_shadersacesTonemapping:()=>Ev,_shadersalphaWeight:()=>Sv,_shadersantialias:()=>wv,_shadersapproximateSphericalCoordinates:()=>vv,_shadersbackFacing:()=>Dv,_shadersbranchFreeTernary:()=>Iv,_shaderscascadeColor:()=>Pv,_shaderscascadeDistance:()=>Ov,_shaderscascadeMatrix:()=>Rv,_shaderscascadeWeights:()=>Mv,_shaderscolumbusViewMorph:()=>Lv,_shaderscomputePosition:()=>Nv,_shadersconvertUvToBox:()=>rB,_shadersconvertUvToCylinder:()=>sB,_shadersconvertUvToEllipsoid:()=>aB,_shaderscosineAndSine:()=>Fv,_shadersdecompressTextureCoordinates:()=>Bv,_shadersdefaultPbrMaterial:()=>kv,_shadersdegreesPerRadian:()=>Sw,_shadersdepthClamp:()=>Uv,_shadersdepthRange:()=>ww,_shadersdepthRangeStruct:()=>lv,_shaderseastNorthUpToEyeCoordinates:()=>Vv,_shadersellipsoidContainsPoint:()=>zv,_shadersellipsoidWgs84TextureCoordinates:()=>Hv,_shadersepsilon1:()=>vw,_shadersepsilon2:()=>Dw,_shadersepsilon3:()=>Iw,_shadersepsilon4:()=>Pw,_shadersepsilon5:()=>Ow,_shadersepsilon6:()=>Rw,_shadersepsilon7:()=>Mw,_shadersequalsEpsilon:()=>Gv,_shaderseyeOffset:()=>Wv,_shaderseyeToWindowCoordinates:()=>jv,_shadersfastApproximateAtan:()=>qv,_shadersfog:()=>Yv,_shadersgammaCorrect:()=>Xv,_shadersgeodeticSurfaceNormal:()=>Kv,_shadersgetDefaultMaterial:()=>Zv,_shadersgetLambertDiffuse:()=>$v,_shadersgetSpecular:()=>Qv,_shadersgetWaterNoise:()=>Jv,_shadershue:()=>eD,_shadersinfinity:()=>Lw,_shadersinverseGamma:()=>tD,_shadersisEmpty:()=>nD,_shadersisFull:()=>iD,_shaderslatitudeToWebMercatorFraction:()=>oD,_shaderslineDistance:()=>rD,_shaderslinearToSrgb:()=>sD,_shadersluminance:()=>aD,_shadersmaterial:()=>uv,_shadersmaterialInput:()=>fv,_shadersmetersPerPixel:()=>cD,_shadersmodelMaterial:()=>dv,_shadersmodelToWindowCoordinates:()=>lD,_shadersmodelVertexOutput:()=>hv,_shadersmultiplyWithColorBalance:()=>uD,_shadersnearFarScalar:()=>fD,_shadersoctDecode:()=>dD,_shadersoneOverPi:()=>Nw,_shadersoneOverTwoPi:()=>Fw,_shaderspackDepth:()=>hD,_shaderspassCesium3DTile:()=>Bw,_shaderspassCesium3DTileClassification:()=>kw,_shaderspassCesium3DTileClassificationIgnoreShow:()=>Uw,_shaderspassClassification:()=>Vw,_shaderspassCompute:()=>zw,_shaderspassEnvironment:()=>Hw,_shaderspassGlobe:()=>Gw,_shaderspassOpaque:()=>Ww,_shaderspassOverlay:()=>jw,_shaderspassTerrainClassification:()=>qw,_shaderspassTranslucent:()=>Yw,_shaderspassVoxels:()=>Xw,_shaderspbrLighting:()=>mD,_shaderspbrMetallicRoughnessMaterial:()=>pD,_shaderspbrParameters:()=>mv,_shaderspbrSpecularGlossinessMaterial:()=>_D,_shadersphong:()=>gD,_shaderspi:()=>Kw,_shaderspiOverFour:()=>Zw,_shaderspiOverSix:()=>$w,_shaderspiOverThree:()=>Qw,_shaderspiOverTwo:()=>Jw,_shadersplaneDistance:()=>yD,_shaderspointAlongRay:()=>xD,_shadersradiansPerDegree:()=>ev,_shadersray:()=>pv,_shadersrayEllipsoidIntersectionInterval:()=>bD,_shadersraySegment:()=>_v,_shadersraySphereIntersectionInterval:()=>TD,_shadersreadDepth:()=>AD,_shadersreadNonPerspective:()=>CD,_shadersreverseLogDepth:()=>ED,_shadersround:()=>SD,_shaderssampleOctahedralProjection:()=>wD,_shaderssaturation:()=>vD,_shaderssceneMode2D:()=>tv,_shaderssceneMode3D:()=>nv,_shaderssceneModeColumbusView:()=>iv,_shaderssceneModeMorphing:()=>ov,_shadersshadowDepthCompare:()=>DD,_shadersshadowParameters:()=>gv,_shadersshadowVisibility:()=>ID,_shaderssignNotZero:()=>PD,_shaderssolarRadius:()=>rv,_shaderssphericalHarmonics:()=>OD,_shaderssrgbToLinear:()=>RD,_shaderstangentToEyeSpaceMatrix:()=>MD,_shaderstextureCube:()=>LD,_shadersthreePiOver2:()=>sv,_shaderstransformPlane:()=>ND,_shaderstranslateRelativeToEye:()=>FD,_shaderstranslucentPhong:()=>BD,_shaderstranspose:()=>kD,_shaderstwoPi:()=>av,_shadersunpackDepth:()=>UD,_shadersunpackFloat:()=>VD,_shadersunpackUint:()=>zD,_shadersvalueTransform:()=>HD,_shadersvertexLogDepth:()=>GD,_shaderswebMercatorMaxLatitude:()=>cv,_shaderswindowToEyeCoordinates:()=>WD,_shaderswriteDepthClamp:()=>jD,_shaderswriteLogDepth:()=>qD,_shaderswriteNonPerspective:()=>YD,addBuffer:()=>QP,addDefaults:()=>WP,addExtensionsRequired:()=>KP,addExtensionsUsed:()=>af,addPipelineExtras:()=>Og,addToArray:()=>as,appendForwardSlash:()=>fw,arrayRemoveDuplicates:()=>yo,barycentricCoordinates:()=>W0,binarySearch:()=>Do,buildDrawCommand:()=>H1,buildModuleUrl:()=>Zt,buildVoxelDrawCommands:()=>dB,clone:()=>He,combine:()=>gt,computeFlyToLocationForRectangle:()=>HT,createBillboardPointCallback:()=>jx,createCommand:()=>An,createDefaultImageryProviderViewModels:()=>IB,createDefaultTerrainProviderViewModels:()=>PB,createElevationBandMaterial:()=>AK,createGooglePhotorealistic3DTileset:()=>CK,createGuid:()=>Wn,createMaterialPropertyDescriptor:()=>Io,createOsmBuildingsAsync:()=>EK,createPropertyDescriptor:()=>ae,createRawPropertyDescriptor:()=>_l,createTangentSpaceDebugPrimitive:()=>SK,createTaskProcessorWorker:()=>IK,createUniform:()=>ow,createUniformArray:()=>rw,createWorldImageryAsync:()=>F_,createWorldTerrainAsync:()=>vT,decodeGoogleEarthEnterpriseData:()=>EF,decodeVectorPolylinePositions:()=>PR,defaultValue:()=>y,defer:()=>cl,defined:()=>u,demodernizeShader:()=>XD,deprecationWarning:()=>Qr,destroyObject:()=>le,exportKml:()=>W7,findAccessorMinMax:()=>vx,findContentMetadata:()=>$x,findGroupMetadata:()=>Qx,findTileMetadata:()=>LR,forEachTextureInMaterial:()=>UA,formatError:()=>wm,freezeRenderState:()=>RH,getAbsoluteUri:()=>Rh,getAccessorByteStride:()=>Al,getBaseUri:()=>dw,getBinaryAccessor:()=>su,getClipAndStyleCode:()=>HF,getClippingFunction:()=>R_,getComponentReader:()=>Op,getElement:()=>wn,getExtensionFromUri:()=>E0,getFilenameFromUri:()=>p_,getImageFromTypedArray:()=>SF,getImagePixels:()=>ad,getJsonFromTypedArray:()=>Oo,getMagic:()=>Cd,getStringFromTypedArray:()=>yl,getTimestamp:()=>_i,hasExtension:()=>ri,heightReferenceOnEntityPropertyChanged:()=>yp,isBitSet:()=>xc,isBlobUri:()=>S0,isCrossOriginUrl:()=>w0,isDataUri:()=>ep,isLeapYear:()=>Jm,knockout:()=>Te,knockout_3_5_1:()=>GT,knockout_es5:()=>yB,loadAndExecuteScript:()=>v0,loadCubeMap:()=>sI,loadImageFromTypedArray:()=>Ex,loadKTX2:()=>ul,mergeSort:()=>k_,moveTechniqueRenderStates:()=>XP,moveTechniquesToExtension:()=>ZP,numberOfComponentsForType:()=>cu,objectToQuery:()=>D0,oneTimeWarning:()=>Dt,parseBatchTable:()=>kp,parseFeatureMetadataLegacy:()=>_1,parseGlb:()=>qP,parseResponseHeaders:()=>hw,parseStructuralMetadata:()=>p1,pointInsideTriangle:()=>TX,preprocess3DTileContent:()=>sm,processVoxelProperties:()=>fB,queryToObject:()=>Xl,readAccessorPacked:()=>JP,removeExtension:()=>Dx,removeExtensionsRequired:()=>jP,removeExtensionsUsed:()=>wx,removePipelineExtras:()=>YP,removeUnusedElements:()=>$P,resizeImageToNextPowerOfTwo:()=>Lg,sampleTerrain:()=>lL,sampleTerrainMostDetailed:()=>S_,scaleToGeodeticSurface:()=>T0,subdivideArray:()=>WI,subscribeAndEvaluate:()=>la,updateAccessorComponentTypes:()=>e1,updateVersion:()=>t1,usesExtension:()=>ir,viewerCesium3DTilesInspectorMixin:()=>XK,viewerCesiumInspectorMixin:()=>KK,viewerDragDropMixin:()=>$K,viewerPerformanceWatchdogMixin:()=>QK,viewerVoxelInspectorMixin:()=>JK,webGLConstantToGlslType:()=>AX,wrapFunction:()=>wF,writeTextToCanvas:()=>Yx});module.exports=Dh(Nbt);function lTe(e){return e!=null}var u=lTe;function x0(e){this.name="DeveloperError",this.message=e;let t;try{throw new Error}catch(n){t=n.stack}this.stack=t}u(Object.create)&&(x0.prototype=Object.create(Error.prototype),x0.prototype.constructor=x0);x0.prototype.toString=function(){let e=`${this.name}: ${this.message}`;return u(this.stack)&&(e+=`
  73. ${this.stack.toString()}`),e};x0.throwInstantiationError=function(){throw new x0("This function defines an interface and should not be called directly.")};var de=x0;var rs={};rs.typeOf={};function uTe(e){return`${e} is required, actual value was undefined`}function YT(e,t,n){return`Expected ${n} to be typeof ${t}, actual typeof was ${e}`}rs.defined=function(e,t){if(!u(t))throw new de(uTe(e))};rs.typeOf.func=function(e,t){if(typeof t!="function")throw new de(YT(typeof t,"function",e))};rs.typeOf.string=function(e,t){if(typeof t!="string")throw new de(YT(typeof t,"string",e))};rs.typeOf.number=function(e,t){if(typeof t!="number")throw new de(YT(typeof t,"number",e))};rs.typeOf.number.lessThan=function(e,t,n){if(rs.typeOf.number(e,t),t>=n)throw new de(`Expected ${e} to be less than ${n}, actual value was ${t}`)};rs.typeOf.number.lessThanOrEquals=function(e,t,n){if(rs.typeOf.number(e,t),t>n)throw new de(`Expected ${e} to be less than or equal to ${n}, actual value was ${t}`)};rs.typeOf.number.greaterThan=function(e,t,n){if(rs.typeOf.number(e,t),t<=n)throw new de(`Expected ${e} to be greater than ${n}, actual value was ${t}`)};rs.typeOf.number.greaterThanOrEquals=function(e,t,n){if(rs.typeOf.number(e,t),t<n)throw new de(`Expected ${e} to be greater than or equal to ${n}, actual value was ${t}`)};rs.typeOf.object=function(e,t){if(typeof t!="object")throw new de(YT(typeof t,"object",e))};rs.typeOf.bool=function(e,t){if(typeof t!="boolean")throw new de(YT(typeof t,"boolean",e))};rs.typeOf.bigint=function(e,t){if(typeof t!="bigint")throw new de(YT(typeof t,"bigint",e))};rs.typeOf.number.equals=function(e,t,n,i){if(rs.typeOf.number(e,n),rs.typeOf.number(t,i),n!==i)throw new de(`${e} must be equal to ${t}, the actual values are ${n} and ${i}`)};var sl=rs;function oZ(e,t){return e??t}oZ.EMPTY_OBJECT=Object.freeze({});var y=oZ;var mH=ro(h3(),1);var it={};it.EPSILON1=.1;it.EPSILON2=.01;it.EPSILON3=.001;it.EPSILON4=1e-4;it.EPSILON5=1e-5;it.EPSILON6=1e-6;it.EPSILON7=1e-7;it.EPSILON8=1e-8;it.EPSILON9=1e-9;it.EPSILON10=1e-10;it.EPSILON11=1e-11;it.EPSILON12=1e-12;it.EPSILON13=1e-13;it.EPSILON14=1e-14;it.EPSILON15=1e-15;it.EPSILON16=1e-16;it.EPSILON17=1e-17;it.EPSILON18=1e-18;it.EPSILON19=1e-19;it.EPSILON20=1e-20;it.EPSILON21=1e-21;it.GRAVITATIONALPARAMETER=3986004418e5;it.SOLAR_RADIUS=6955e5;it.LUNAR_RADIUS=1737400;it.SIXTY_FOUR_KILOBYTES=64*1024;it.FOUR_GIGABYTES=4*1024*1024*1024;it.sign=y(Math.sign,function(t){return t=+t,t===0||t!==t?t:t>0?1:-1});it.signNotZero=function(e){return e<0?-1:1};it.toSNorm=function(e,t){return t=y(t,255),Math.round((it.clamp(e,-1,1)*.5+.5)*t)};it.fromSNorm=function(e,t){return t=y(t,255),it.clamp(e,0,t)/t*2-1};it.normalize=function(e,t,n){return n=Math.max(n-t,0),n===0?0:it.clamp((e-t)/n,0,1)};it.sinh=y(Math.sinh,function(t){return(Math.exp(t)-Math.exp(-t))/2});it.cosh=y(Math.cosh,function(t){return(Math.exp(t)+Math.exp(-t))/2});it.lerp=function(e,t,n){return(1-n)*e+n*t};it.PI=Math.PI;it.ONE_OVER_PI=1/Math.PI;it.PI_OVER_TWO=Math.PI/2;it.PI_OVER_THREE=Math.PI/3;it.PI_OVER_FOUR=Math.PI/4;it.PI_OVER_SIX=Math.PI/6;it.THREE_PI_OVER_TWO=3*Math.PI/2;it.TWO_PI=2*Math.PI;it.ONE_OVER_TWO_PI=1/(2*Math.PI);it.RADIANS_PER_DEGREE=Math.PI/180;it.DEGREES_PER_RADIAN=180/Math.PI;it.RADIANS_PER_ARCSECOND=it.RADIANS_PER_DEGREE/3600;it.toRadians=function(e){return e*it.RADIANS_PER_DEGREE};it.toDegrees=function(e){return e*it.DEGREES_PER_RADIAN};it.convertLongitudeRange=function(e){let t=it.TWO_PI,n=e-Math.floor(e/t)*t;return n<-Math.PI?n+t:n>=Math.PI?n-t:n};it.clampToLatitudeRange=function(e){return it.clamp(e,-1*it.PI_OVER_TWO,it.PI_OVER_TWO)};it.negativePiToPi=function(e){return e>=-it.PI&&e<=it.PI?e:it.zeroToTwoPi(e+it.PI)-it.PI};it.zeroToTwoPi=function(e){if(e>=0&&e<=it.TWO_PI)return e;let t=it.mod(e,it.TWO_PI);return Math.abs(t)<it.EPSILON14&&Math.abs(e)>it.EPSILON14?it.TWO_PI:t};it.mod=function(e,t){return it.sign(e)===it.sign(t)&&Math.abs(e)<Math.abs(t)?e:(e%t+t)%t};it.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))};it.lessThan=function(e,t,n){return e-t<-n};it.lessThanOrEquals=function(e,t,n){return e-t<n};it.greaterThan=function(e,t,n){return e-t>n};it.greaterThanOrEquals=function(e,t,n){return e-t>-n};var m3=[1];it.factorial=function(e){let t=m3.length;if(e>=t){let n=m3[t-1];for(let i=t;i<=e;i++){let o=n*i;m3.push(o),n=o}}return m3[e]};it.incrementWrap=function(e,t,n){return n=y(n,0),++e,e>t&&(e=n),e};it.isPowerOfTwo=function(e){return e!==0&&(e&e-1)===0};it.nextPowerOfTwo=function(e){return--e,e|=e>>1,e|=e>>2,e|=e>>4,e|=e>>8,e|=e>>16,++e,e};it.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};it.clamp=function(e,t,n){return e<t?t:e>n?n:e};var sZ=new mH.default;it.setRandomNumberSeed=function(e){sZ=new mH.default(e)};it.nextRandomNumber=function(){return sZ.random()};it.randomBetween=function(e,t){return it.nextRandomNumber()*(t-e)+e};it.acosClamped=function(e){return Math.acos(it.clamp(e,-1,1))};it.asinClamped=function(e){return Math.asin(it.clamp(e,-1,1))};it.chordLength=function(e,t){return 2*t*Math.sin(e*.5)};it.logBase=function(e,t){return Math.log(e)/Math.log(t)};it.cbrt=y(Math.cbrt,function(t){let n=Math.pow(Math.abs(t),.3333333333333333);return t<0?-n:n});it.log2=y(Math.log2,function(t){return Math.log(t)*Math.LOG2E});it.fog=function(e,t){let n=e*t;return 1-Math.exp(-(n*n))};it.fastApproximateAtan=function(e){return e*(-.1784*Math.abs(e)-.0663*e*e+1.0301)};it.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=it.fastApproximateAtan(r),i=Math.abs(t)>Math.abs(e)?it.PI_OVER_TWO-i:i,i=e<0?it.PI-i:i,i=t<0?-i:i,i};var P=it;function $e(e,t,n){this.x=y(e,0),this.y=y(t,0),this.z=y(n,0)}$e.fromSpherical=function(e,t){u(t)||(t=new $e);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};$e.fromElements=function(e,t,n,i){return u(i)?(i.x=e,i.y=t,i.z=n,i):new $e(e,t,n)};$e.clone=function(e,t){if(u(e))return u(t)?(t.x=e.x,t.y=e.y,t.z=e.z,t):new $e(e.x,e.y,e.z)};$e.fromCartesian4=$e.clone;$e.packedLength=3;$e.pack=function(e,t,n){return n=y(n,0),t[n++]=e.x,t[n++]=e.y,t[n]=e.z,t};$e.unpack=function(e,t,n){return t=y(t,0),u(n)||(n=new $e),n.x=e[t++],n.y=e[t++],n.z=e[t],n};$e.packArray=function(e,t){let n=e.length,i=n*3;u(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*3);return t};$e.unpackArray=function(e,t){let n=e.length;u(t)?t.length=n/3:t=new Array(n/3);for(let i=0;i<n;i+=3){let o=i/3;t[o]=$e.unpack(e,i,t[o])}return t};$e.fromArray=$e.unpack;$e.maximumComponent=function(e){return Math.max(e.x,e.y,e.z)};$e.minimumComponent=function(e){return Math.min(e.x,e.y,e.z)};$e.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};$e.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};$e.clamp=function(e,t,n,i){let o=P.clamp(e.x,t.x,n.x),r=P.clamp(e.y,t.y,n.y),s=P.clamp(e.z,t.z,n.z);return i.x=o,i.y=r,i.z=s,i};$e.magnitudeSquared=function(e){return e.x*e.x+e.y*e.y+e.z*e.z};$e.magnitude=function(e){return Math.sqrt($e.magnitudeSquared(e))};var _3=new $e;$e.distance=function(e,t){return $e.subtract(e,t,_3),$e.magnitude(_3)};$e.distanceSquared=function(e,t){return $e.subtract(e,t,_3),$e.magnitudeSquared(_3)};$e.normalize=function(e,t){let n=$e.magnitude(e);return t.x=e.x/n,t.y=e.y/n,t.z=e.z/n,t};$e.dot=function(e,t){return e.x*t.x+e.y*t.y+e.z*t.z};$e.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};$e.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};$e.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};$e.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};$e.multiplyByScalar=function(e,t,n){return n.x=e.x*t,n.y=e.y*t,n.z=e.z*t,n};$e.divideByScalar=function(e,t,n){return n.x=e.x/t,n.y=e.y/t,n.z=e.z/t,n};$e.negate=function(e,t){return t.x=-e.x,t.y=-e.y,t.z=-e.z,t};$e.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 aZ=new $e;$e.lerp=function(e,t,n,i){return $e.multiplyByScalar(t,n,aZ),i=$e.multiplyByScalar(e,1-n,i),$e.add(aZ,i,i)};var p3=new $e,pH=new $e;$e.angleBetween=function(e,t){$e.normalize(e,p3),$e.normalize(t,pH);let n=$e.dot(p3,pH),i=$e.magnitude($e.cross(p3,pH,p3));return Math.atan2(i,n)};var fTe=new $e;$e.mostOrthogonalAxis=function(e,t){let n=$e.normalize(e,fTe);return $e.abs(n,n),n.x<=n.y?n.x<=n.z?t=$e.clone($e.UNIT_X,t):t=$e.clone($e.UNIT_Z,t):n.y<=n.z?t=$e.clone($e.UNIT_Y,t):t=$e.clone($e.UNIT_Z,t),t};$e.projectVector=function(e,t,n){let i=$e.dot(e,t)/$e.dot(t,t);return $e.multiplyByScalar(t,i,n)};$e.equals=function(e,t){return e===t||u(e)&&u(t)&&e.x===t.x&&e.y===t.y&&e.z===t.z};$e.equalsArray=function(e,t,n){return e.x===t[n]&&e.y===t[n+1]&&e.z===t[n+2]};$e.equalsEpsilon=function(e,t,n,i){return e===t||u(e)&&u(t)&&P.equalsEpsilon(e.x,t.x,n,i)&&P.equalsEpsilon(e.y,t.y,n,i)&&P.equalsEpsilon(e.z,t.z,n,i)};$e.cross=function(e,t,n){let i=e.x,o=e.y,r=e.z,s=t.x,a=t.y,c=t.z,l=o*c-r*a,f=r*s-i*c,d=i*a-o*s;return n.x=l,n.y=f,n.z=d,n};$e.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};$e.fromDegrees=function(e,t,n,i,o){return e=P.toRadians(e),t=P.toRadians(t),$e.fromRadians(e,t,n,i,o)};var ju=new $e,XT=new $e,dTe=new $e(6378137*6378137,6378137*6378137,6356752314245179e-9*6356752314245179e-9);$e.fromRadians=function(e,t,n,i,o){n=y(n,0);let r=u(i)?i.radiiSquared:dTe,s=Math.cos(t);ju.x=s*Math.cos(e),ju.y=s*Math.sin(e),ju.z=Math.sin(t),ju=$e.normalize(ju,ju),$e.multiplyComponents(r,ju,XT);let a=Math.sqrt($e.dot(ju,XT));return XT=$e.divideByScalar(XT,a,XT),ju=$e.multiplyByScalar(ju,n,ju),u(o)||(o=new $e),$e.add(XT,ju,o)};$e.fromDegreesArray=function(e,t,n){let i=e.length;u(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]=$e.fromDegrees(r,s,0,t,n[a])}return n};$e.fromRadiansArray=function(e,t,n){let i=e.length;u(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]=$e.fromRadians(r,s,0,t,n[a])}return n};$e.fromDegreesArrayHeights=function(e,t,n){let i=e.length;u(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]=$e.fromDegrees(r,s,a,t,n[c])}return n};$e.fromRadiansArrayHeights=function(e,t,n){let i=e.length;u(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]=$e.fromRadians(r,s,a,t,n[c])}return n};$e.ZERO=Object.freeze(new $e(0,0,0));$e.ONE=Object.freeze(new $e(1,1,1));$e.UNIT_X=Object.freeze(new $e(1,0,0));$e.UNIT_Y=Object.freeze(new $e(0,1,0));$e.UNIT_Z=Object.freeze(new $e(0,0,1));$e.prototype.clone=function(e){return $e.clone(this,e)};$e.prototype.equals=function(e){return $e.equals(this,e)};$e.prototype.equalsEpsilon=function(e,t,n){return $e.equalsEpsilon(this,e,t,n)};$e.prototype.toString=function(){return`(${this.x}, ${this.y}, ${this.z})`};var h=$e;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 u(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 u(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(u(e))return u(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),u(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;u(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;u(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=P.clamp(e.x,t.x,n.x),r=P.clamp(e.y,t.y,n.y),s=P.clamp(e.z,t.z,n.z),a=P.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 g3=new pt;pt.distance=function(e,t){return pt.subtract(e,t,g3),pt.magnitude(g3)};pt.distanceSquared=function(e,t){return pt.subtract(e,t,g3),pt.magnitudeSquared(g3)};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 cZ=new pt;pt.lerp=function(e,t,n,i){return pt.multiplyByScalar(t,n,cZ),i=pt.multiplyByScalar(e,1-n,i),pt.add(cZ,i,i)};var hTe=new pt;pt.mostOrthogonalAxis=function(e,t){let n=pt.normalize(e,hTe);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||u(e)&&u(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||u(e)&&u(t)&&P.equalsEpsilon(e.x,t.x,n,i)&&P.equalsEpsilon(e.y,t.y,n,i)&&P.equalsEpsilon(e.z,t.z,n,i)&&P.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 _H=new Float32Array(1),Na=new Uint8Array(_H.buffer),mTe=new Uint32Array([287454020]),pTe=new Uint8Array(mTe.buffer),lZ=pTe[0]===68;pt.packFloat=function(e,t){return u(t)||(t=new pt),_H[0]=e,lZ?(t.x=Na[0],t.y=Na[1],t.z=Na[2],t.w=Na[3]):(t.x=Na[3],t.y=Na[2],t.z=Na[1],t.w=Na[0]),t};pt.unpackFloat=function(e){return lZ?(Na[0]=e.x,Na[1]=e.y,Na[2]=e.z,Na[3]=e.w):(Na[0]=e.w,Na[1]=e.z,Na[2]=e.y,Na[3]=e.x),_H[0]};var oe=pt;function Qe(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)}Qe.packedLength=9;Qe.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};Qe.unpack=function(e,t,n){return t=y(t,0),u(n)||(n=new Qe),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};Qe.packArray=function(e,t){let n=e.length,i=n*9;u(t)?!Array.isArray(t)&&t.length!==i||t.length!==i&&(t.length=i):t=new Array(i);for(let o=0;o<n;++o)Qe.pack(e[o],t,o*9);return t};Qe.unpackArray=function(e,t){let n=e.length;u(t)?t.length=n/9:t=new Array(n/9);for(let i=0;i<n;i+=9){let o=i/9;t[o]=Qe.unpack(e,i,t[o])}return t};Qe.clone=function(e,t){if(u(e))return u(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 Qe(e[0],e[3],e[6],e[1],e[4],e[7],e[2],e[5],e[8])};Qe.fromArray=Qe.unpack;Qe.fromColumnMajorArray=function(e,t){return Qe.clone(e,t)};Qe.fromRowMajorArray=function(e,t){return u(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 Qe(e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7],e[8])};Qe.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,l=e.z*e.z,f=e.z*e.w,d=e.w*e.w,p=n-s-l+d,g=2*(i-f),m=2*(o+c),x=2*(i+f),b=-n+s-l+d,T=2*(a-r),A=2*(o-c),C=2*(a+r),S=-n-s+l+d;return u(t)?(t[0]=p,t[1]=x,t[2]=A,t[3]=g,t[4]=b,t[5]=C,t[6]=m,t[7]=T,t[8]=S,t):new Qe(p,g,m,x,b,T,A,C,S)};Qe.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,l=-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 u(t)?(t[0]=c,t[1]=d,t[2]=m,t[3]=l,t[4]=p,t[5]=x,t[6]=f,t[7]=g,t[8]=b,t):new Qe(c,l,f,d,p,g,m,x,b)};Qe.fromScale=function(e,t){return u(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 Qe(e.x,0,0,0,e.y,0,0,0,e.z)};Qe.fromUniformScale=function(e,t){return u(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 Qe(e,0,0,0,e,0,0,0,e)};Qe.fromCrossProduct=function(e,t){return u(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 Qe(0,-e.z,e.y,e.z,0,-e.x,-e.y,e.x,0)};Qe.fromRotationX=function(e,t){let n=Math.cos(e),i=Math.sin(e);return u(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 Qe(1,0,0,0,n,-i,0,i,n)};Qe.fromRotationY=function(e,t){let n=Math.cos(e),i=Math.sin(e);return u(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 Qe(n,0,i,0,1,0,-i,0,n)};Qe.fromRotationZ=function(e,t){let n=Math.cos(e),i=Math.sin(e);return u(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 Qe(n,-i,0,i,n,0,0,0,1)};Qe.toArray=function(e,t){return u(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]]};Qe.getElementIndex=function(e,t){return e*3+t};Qe.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};Qe.setColumn=function(e,t,n,i){i=Qe.clone(e,i);let o=t*3;return i[o]=n.x,i[o+1]=n.y,i[o+2]=n.z,i};Qe.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};Qe.setRow=function(e,t,n,i){return i=Qe.clone(e,i),i[t]=n.x,i[t+3]=n.y,i[t+6]=n.z,i};var _Te=new h;Qe.setScale=function(e,t,n){let i=Qe.getScale(e,_Te),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 gTe=new h;Qe.setUniformScale=function(e,t,n){let i=Qe.getScale(e,gTe),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 gH=new h;Qe.getScale=function(e,t){return t.x=h.magnitude(h.fromElements(e[0],e[1],e[2],gH)),t.y=h.magnitude(h.fromElements(e[3],e[4],e[5],gH)),t.z=h.magnitude(h.fromElements(e[6],e[7],e[8],gH)),t};var uZ=new h;Qe.getMaximumScale=function(e){return Qe.getScale(e,uZ),h.maximumComponent(uZ)};var yTe=new h;Qe.setRotation=function(e,t,n){let i=Qe.getScale(e,yTe);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 xTe=new h;Qe.getRotation=function(e,t){let n=Qe.getScale(e,xTe);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};Qe.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],l=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]=l,n[7]=f,n[8]=d,n};Qe.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};Qe.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};Qe.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};Qe.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};Qe.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};Qe.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};Qe.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};Qe.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],l=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]=l,t[8]=f,t};function bTe(e){let t=0;for(let n=0;n<9;++n){let i=e[n];t+=i*i}return Math.sqrt(t)}var yH=[1,0,0],xH=[2,2,1];function TTe(e){let t=0;for(let n=0;n<3;++n){let i=e[Qe.getElementIndex(xH[n],yH[n])];t+=2*i*i}return Math.sqrt(t)}function ATe(e,t){let n=P.EPSILON15,i=0,o=1;for(let l=0;l<3;++l){let f=Math.abs(e[Qe.getElementIndex(xH[l],yH[l])]);f>i&&(o=l,i=f)}let r=1,s=0,a=yH[o],c=xH[o];if(Math.abs(e[Qe.getElementIndex(c,a)])>n){let l=e[Qe.getElementIndex(c,c)],f=e[Qe.getElementIndex(a,a)],d=e[Qe.getElementIndex(c,a)],p=(l-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=Qe.clone(Qe.IDENTITY,t),t[Qe.getElementIndex(a,a)]=t[Qe.getElementIndex(c,c)]=r,t[Qe.getElementIndex(c,a)]=s,t[Qe.getElementIndex(a,c)]=-s,t}var y3=new Qe,fZ=new Qe;Qe.computeEigenDecomposition=function(e,t){let n=P.EPSILON20,i=10,o=0,r=0;u(t)||(t={});let s=t.unitary=Qe.clone(Qe.IDENTITY,t.unitary),a=t.diagonal=Qe.clone(e,t.diagonal),c=n*bTe(a);for(;r<i&&TTe(a)>c;)ATe(a,y3),Qe.transpose(y3,fZ),Qe.multiply(a,y3,a),Qe.multiply(fZ,a,a),Qe.multiply(s,y3,s),++o>2&&(++r,o=0);return t};Qe.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};Qe.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],l=e[8];return t*(r*l-c*s)+o*(c*i-n*l)+a*(n*s-r*i)};Qe.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],l=e[7],f=e[8],d=Qe.determinant(e);t[0]=s*f-l*a,t[1]=l*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*l-c*s,t[7]=c*i-n*l,t[8]=n*s-r*i;let p=1/d;return Qe.multiplyByScalar(t,p,t)};var CTe=new Qe;Qe.inverseTranspose=function(e,t){return Qe.inverse(Qe.transpose(e,CTe),t)};Qe.equals=function(e,t){return e===t||u(e)&&u(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]};Qe.equalsEpsilon=function(e,t,n){return n=y(n,0),e===t||u(e)&&u(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};Qe.IDENTITY=Object.freeze(new Qe(1,0,0,0,1,0,0,0,1));Qe.ZERO=Object.freeze(new Qe(0,0,0,0,0,0,0,0,0));Qe.COLUMN0ROW0=0;Qe.COLUMN0ROW1=1;Qe.COLUMN0ROW2=2;Qe.COLUMN1ROW0=3;Qe.COLUMN1ROW1=4;Qe.COLUMN1ROW2=5;Qe.COLUMN2ROW0=6;Qe.COLUMN2ROW1=7;Qe.COLUMN2ROW2=8;Object.defineProperties(Qe.prototype,{length:{get:function(){return Qe.packedLength}}});Qe.prototype.clone=function(e){return Qe.clone(this,e)};Qe.prototype.equals=function(e){return Qe.equals(this,e)};Qe.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]};Qe.prototype.equalsEpsilon=function(e,t){return Qe.equalsEpsilon(this,e,t)};Qe.prototype.toString=function(){return`(${this[0]}, ${this[3]}, ${this[6]})
  74. (${this[1]}, ${this[4]}, ${this[7]})
  75. (${this[2]}, ${this[5]}, ${this[8]})`};var Q=Qe;function ew(e){this.name="RuntimeError",this.message=e;let t;try{throw new Error}catch(n){t=n.stack}this.stack=t}u(Object.create)&&(ew.prototype=Object.create(Error.prototype),ew.prototype.constructor=ew);ew.prototype.toString=function(){let e=`${this.name}: ${this.message}`;return u(this.stack)&&(e+=`
  76. ${this.stack.toString()}`),e};var ue=ew;function Ze(e,t,n,i,o,r,s,a,c,l,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(l,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)}Ze.packedLength=16;Ze.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};Ze.unpack=function(e,t,n){return t=y(t,0),u(n)||(n=new Ze),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};Ze.packArray=function(e,t){let n=e.length,i=n*16;u(t)?!Array.isArray(t)&&t.length!==i||t.length!==i&&(t.length=i):t=new Array(i);for(let o=0;o<n;++o)Ze.pack(e[o],t,o*16);return t};Ze.unpackArray=function(e,t){let n=e.length;u(t)?t.length=n/16:t=new Array(n/16);for(let i=0;i<n;i+=16){let o=i/16;t[o]=Ze.unpack(e,i,t[o])}return t};Ze.clone=function(e,t){if(u(e))return u(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 Ze(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])};Ze.fromArray=Ze.unpack;Ze.fromColumnMajorArray=function(e,t){return Ze.clone(e,t)};Ze.fromRowMajorArray=function(e,t){return u(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 Ze(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])};Ze.fromRotationTranslation=function(e,t,n){return t=y(t,h.ZERO),u(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 Ze(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)};Ze.fromTranslationQuaternionRotationScale=function(e,t,n,i){u(i)||(i=new Ze);let o=n.x,r=n.y,s=n.z,a=t.x*t.x,c=t.x*t.y,l=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,A=2*(c-x),C=2*(l+g),S=2*(c+x),w=-a+d-m+b,D=2*(p-f),O=2*(l-g),R=2*(p+f),L=-a-d+m+b;return i[0]=T*o,i[1]=S*o,i[2]=O*o,i[3]=0,i[4]=A*r,i[5]=w*r,i[6]=R*r,i[7]=0,i[8]=C*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};Ze.fromTranslationRotationScale=function(e,t){return Ze.fromTranslationQuaternionRotationScale(e.translation,e.rotation,e.scale,t)};Ze.fromTranslation=function(e,t){return Ze.fromRotationTranslation(Q.IDENTITY,e,t)};Ze.fromScale=function(e,t){return u(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 Ze(e.x,0,0,0,0,e.y,0,0,0,0,e.z,0,0,0,0,1)};Ze.fromUniformScale=function(e,t){return u(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 Ze(e,0,0,0,0,e,0,0,0,0,e,0,0,0,0,1)};Ze.fromRotation=function(e,t){return u(t)||(t=new Ze),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 KT=new h,ZT=new h,tw=new h;Ze.fromCamera=function(e,t){let n=e.position,i=e.direction,o=e.up;h.normalize(i,KT),h.normalize(h.cross(KT,o,ZT),ZT),h.normalize(h.cross(ZT,KT,tw),tw);let r=ZT.x,s=ZT.y,a=ZT.z,c=KT.x,l=KT.y,f=KT.z,d=tw.x,p=tw.y,g=tw.z,m=n.x,x=n.y,b=n.z,T=r*-m+s*-x+a*-b,A=d*-m+p*-x+g*-b,C=c*m+l*x+f*b;return u(t)?(t[0]=r,t[1]=d,t[2]=-c,t[3]=0,t[4]=s,t[5]=p,t[6]=-l,t[7]=0,t[8]=a,t[9]=g,t[10]=-f,t[11]=0,t[12]=T,t[13]=A,t[14]=C,t[15]=1,t):new Ze(r,s,a,T,d,p,g,A,-c,-l,-f,C,0,0,0,1)};Ze.computePerspectiveFieldOfView=function(e,t,n,i,o){let s=1/Math.tan(e*.5),a=s/t,c=(i+n)/(n-i),l=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]=l,o[15]=0,o};Ze.computeOrthographicOffCenter=function(e,t,n,i,o,r,s){let a=1/(t-e),c=1/(i-n),l=1/(r-o),f=-(t+e)*a,d=-(i+n)*c,p=-(r+o)*l;return a*=2,c*=2,l*=-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]=l,s[11]=0,s[12]=f,s[13]=d,s[14]=p,s[15]=1,s};Ze.computePerspectiveOffCenter=function(e,t,n,i,o,r,s){let a=2*o/(t-e),c=2*o/(i-n),l=(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]=l,s[9]=f,s[10]=d,s[11]=p,s[12]=0,s[13]=0,s[14]=g,s[15]=0,s};Ze.computeInfinitePerspectiveOffCenter=function(e,t,n,i,o,r){let s=2*o/(t-e),a=2*o/(i-n),c=(t+e)/(t-e),l=(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]=l,r[10]=f,r[11]=d,r[12]=0,r[13]=0,r[14]=p,r[15]=0,r};Ze.computeViewportTransformation=function(e,t,n,i){u(i)||(i=new Ze),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,l=a*.5,f=(n-t)*.5,d=c,p=l,g=f,m=o+c,x=r+l,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};Ze.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};Ze.toArray=function(e,t){return u(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]]};Ze.getElementIndex=function(e,t){return e*4+t};Ze.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};Ze.setColumn=function(e,t,n,i){i=Ze.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};Ze.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};Ze.setRow=function(e,t,n,i){return i=Ze.clone(e,i),i[t]=n.x,i[t+4]=n.y,i[t+8]=n.z,i[t+12]=n.w,i};Ze.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 ETe=new h;Ze.setScale=function(e,t,n){let i=Ze.getScale(e,ETe),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 STe=new h;Ze.setUniformScale=function(e,t,n){let i=Ze.getScale(e,STe),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 bH=new h;Ze.getScale=function(e,t){return t.x=h.magnitude(h.fromElements(e[0],e[1],e[2],bH)),t.y=h.magnitude(h.fromElements(e[4],e[5],e[6],bH)),t.z=h.magnitude(h.fromElements(e[8],e[9],e[10],bH)),t};var dZ=new h;Ze.getMaximumScale=function(e){return Ze.getScale(e,dZ),h.maximumComponent(dZ)};var wTe=new h;Ze.setRotation=function(e,t,n){let i=Ze.getScale(e,wTe);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 vTe=new h;Ze.getRotation=function(e,t){let n=Ze.getScale(e,vTe);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};Ze.multiply=function(e,t,n){let i=e[0],o=e[1],r=e[2],s=e[3],a=e[4],c=e[5],l=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],A=e[15],C=t[0],S=t[1],w=t[2],D=t[3],O=t[4],R=t[5],L=t[6],N=t[7],_=t[8],E=t[9],v=t[10],I=t[11],M=t[12],B=t[13],V=t[14],U=t[15],G=i*C+a*S+d*w+x*D,k=o*C+c*S+p*w+b*D,Y=r*C+l*S+g*w+T*D,j=s*C+f*S+m*w+A*D,$=i*O+a*R+d*L+x*N,W=o*O+c*R+p*L+b*N,K=r*O+l*R+g*L+T*N,Z=s*O+f*R+m*L+A*N,me=i*_+a*E+d*v+x*I,xe=o*_+c*E+p*v+b*I,re=r*_+l*E+g*v+T*I,ye=s*_+f*E+m*v+A*I,ge=i*M+a*B+d*V+x*U,Ae=o*M+c*B+p*V+b*U,De=r*M+l*B+g*V+T*U,Re=s*M+f*B+m*V+A*U;return n[0]=G,n[1]=k,n[2]=Y,n[3]=j,n[4]=$,n[5]=W,n[6]=K,n[7]=Z,n[8]=me,n[9]=xe,n[10]=re,n[11]=ye,n[12]=ge,n[13]=Ae,n[14]=De,n[15]=Re,n};Ze.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};Ze.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};Ze.multiplyTransformation=function(e,t,n){let i=e[0],o=e[1],r=e[2],s=e[4],a=e[5],c=e[6],l=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],A=t[4],C=t[5],S=t[6],w=t[8],D=t[9],O=t[10],R=t[12],L=t[13],N=t[14],_=i*x+s*b+l*T,E=o*x+a*b+f*T,v=r*x+c*b+d*T,I=i*A+s*C+l*S,M=o*A+a*C+f*S,B=r*A+c*C+d*S,V=i*w+s*D+l*O,U=o*w+a*D+f*O,G=r*w+c*D+d*O,k=i*R+s*L+l*N+p,Y=o*R+a*L+f*N+g,j=r*R+c*L+d*N+m;return n[0]=_,n[1]=E,n[2]=v,n[3]=0,n[4]=I,n[5]=M,n[6]=B,n[7]=0,n[8]=V,n[9]=U,n[10]=G,n[11]=0,n[12]=k,n[13]=Y,n[14]=j,n[15]=1,n};Ze.multiplyByMatrix3=function(e,t,n){let i=e[0],o=e[1],r=e[2],s=e[4],a=e[5],c=e[6],l=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],A=t[6],C=t[7],S=t[8],w=i*p+s*g+l*m,D=o*p+a*g+f*m,O=r*p+c*g+d*m,R=i*x+s*b+l*T,L=o*x+a*b+f*T,N=r*x+c*b+d*T,_=i*A+s*C+l*S,E=o*A+a*C+f*S,v=r*A+c*C+d*S;return n[0]=w,n[1]=D,n[2]=O,n[3]=0,n[4]=R,n[5]=L,n[6]=N,n[7]=0,n[8]=_,n[9]=E,n[10]=v,n[11]=0,n[12]=e[12],n[13]=e[13],n[14]=e[14],n[15]=e[15],n};Ze.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};Ze.multiplyByScale=function(e,t,n){let i=t.x,o=t.y,r=t.z;return i===1&&o===1&&r===1?Ze.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)};Ze.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};Ze.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,l=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=l,n.w=f,n};Ze.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};Ze.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};Ze.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};Ze.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};Ze.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};Ze.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};Ze.equals=function(e,t){return e===t||u(e)&&u(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]};Ze.equalsEpsilon=function(e,t,n){return n=y(n,0),e===t||u(e)&&u(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};Ze.getTranslation=function(e,t){return t.x=e[12],t.y=e[13],t.z=e[14],t};Ze.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 DTe=new Q,ITe=new Q,PTe=new oe,OTe=new oe(0,0,0,1);Ze.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],l=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],A=p*T,C=g*b,S=d*T,w=g*x,D=d*b,O=p*x,R=f*T,L=g*m,N=f*b,_=p*m,E=f*x,v=d*m,I=A*a+w*c+D*l-(C*a+S*c+O*l),M=C*s+R*c+_*l-(A*s+L*c+N*l),B=S*s+L*a+E*l-(w*s+R*a+v*l),V=O*s+N*a+v*c-(D*s+_*a+E*c),U=C*i+S*o+O*r-(A*i+w*o+D*r),G=A*n+L*o+N*r-(C*n+R*o+_*r),k=w*n+R*i+v*r-(S*n+L*i+E*r),Y=D*n+_*i+E*o-(O*n+N*i+v*o);A=o*l,C=r*c,S=i*l,w=r*a,D=i*c,O=o*a,R=n*l,L=r*s,N=n*c,_=o*s,E=n*a,v=i*s;let j=A*x+w*b+D*T-(C*x+S*b+O*T),$=C*m+R*b+_*T-(A*m+L*b+N*T),W=S*m+L*x+E*T-(w*m+R*x+v*T),K=O*m+N*x+v*b-(D*m+_*x+E*b),Z=S*p+O*g+C*d-(D*g+A*d+w*p),me=N*g+A*f+L*p-(R*p+_*g+C*f),xe=R*d+v*g+w*f-(E*g+S*f+L*d),re=E*p+D*f+_*d-(N*d+v*p+O*f),ye=n*I+i*M+o*B+r*V;if(Math.abs(ye)<P.EPSILON21){if(Q.equalsEpsilon(Ze.getMatrix3(e,DTe),ITe,P.EPSILON7)&&oe.equals(Ze.getRow(e,3,PTe),OTe))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 ue("matrix is not invertible because its determinate is zero.")}return ye=1/ye,t[0]=I*ye,t[1]=M*ye,t[2]=B*ye,t[3]=V*ye,t[4]=U*ye,t[5]=G*ye,t[6]=k*ye,t[7]=Y*ye,t[8]=j*ye,t[9]=$*ye,t[10]=W*ye,t[11]=K*ye,t[12]=Z*ye,t[13]=me*ye,t[14]=xe*ye,t[15]=re*ye,t};Ze.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],l=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-l*p-f*g;return t[0]=n,t[1]=r,t[2]=c,t[3]=0,t[4]=i,t[5]=s,t[6]=l,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 RTe=new Ze;Ze.inverseTranspose=function(e,t){return Ze.inverse(Ze.transpose(e,RTe),t)};Ze.IDENTITY=Object.freeze(new Ze(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1));Ze.ZERO=Object.freeze(new Ze(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0));Ze.COLUMN0ROW0=0;Ze.COLUMN0ROW1=1;Ze.COLUMN0ROW2=2;Ze.COLUMN0ROW3=3;Ze.COLUMN1ROW0=4;Ze.COLUMN1ROW1=5;Ze.COLUMN1ROW2=6;Ze.COLUMN1ROW3=7;Ze.COLUMN2ROW0=8;Ze.COLUMN2ROW1=9;Ze.COLUMN2ROW2=10;Ze.COLUMN2ROW3=11;Ze.COLUMN3ROW0=12;Ze.COLUMN3ROW1=13;Ze.COLUMN3ROW2=14;Ze.COLUMN3ROW3=15;Object.defineProperties(Ze.prototype,{length:{get:function(){return Ze.packedLength}}});Ze.prototype.clone=function(e){return Ze.clone(this,e)};Ze.prototype.equals=function(e){return Ze.equals(this,e)};Ze.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]};Ze.prototype.equalsEpsilon=function(e,t){return Ze.equalsEpsilon(this,e,t)};Ze.prototype.toString=function(){return`(${this[0]}, ${this[4]}, ${this[8]}, ${this[12]})
  77. (${this[1]}, ${this[5]}, ${this[9]}, ${this[13]})
  78. (${this[2]}, ${this[6]}, ${this[10]}, ${this[14]})
  79. (${this[3]}, ${this[7]}, ${this[11]}, ${this[15]})`};var F=Ze;var MTe={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(MTe);var LTe=new h;function zt(e){this._size=e.size,this._datatype=e.datatype,this.getValue=e.getValue}var zs={};zs[ee.FLOAT]="float";zs[ee.FLOAT_VEC2]="vec2";zs[ee.FLOAT_VEC3]="vec3";zs[ee.FLOAT_VEC4]="vec4";zs[ee.INT]="int";zs[ee.INT_VEC2]="ivec2";zs[ee.INT_VEC3]="ivec3";zs[ee.INT_VEC4]="ivec4";zs[ee.BOOL]="bool";zs[ee.BOOL_VEC2]="bvec2";zs[ee.BOOL_VEC3]="bvec3";zs[ee.BOOL_VEC4]="bvec4";zs[ee.FLOAT_MAT2]="mat2";zs[ee.FLOAT_MAT3]="mat3";zs[ee.FLOAT_MAT4]="mat4";zs[ee.SAMPLER_2D]="sampler2D";zs[ee.SAMPLER_CUBE]="samplerCube";zt.prototype.getDeclaration=function(e){let t=`uniform ${zs[this._datatype]} ${e}`,n=this._size;return n===1?t+=";":t+=`[${n.toString()}];`,t};var NTe={czm_viewport:new zt({size:1,datatype:ee.FLOAT_VEC4,getValue:function(e){return e.viewportCartesian4}}),czm_viewportOrthographic:new zt({size:1,datatype:ee.FLOAT_MAT4,getValue:function(e){return e.viewportOrthographic}}),czm_viewportTransformation:new zt({size:1,datatype:ee.FLOAT_MAT4,getValue:function(e){return e.viewportTransformation}}),czm_globeDepthTexture:new zt({size:1,datatype:ee.SAMPLER_2D,getValue:function(e){return e.globeDepthTexture}}),czm_model:new zt({size:1,datatype:ee.FLOAT_MAT4,getValue:function(e){return e.model}}),czm_inverseModel:new zt({size:1,datatype:ee.FLOAT_MAT4,getValue:function(e){return e.inverseModel}}),czm_view:new zt({size:1,datatype:ee.FLOAT_MAT4,getValue:function(e){return e.view}}),czm_view3D:new zt({size:1,datatype:ee.FLOAT_MAT4,getValue:function(e){return e.view3D}}),czm_viewRotation:new zt({size:1,datatype:ee.FLOAT_MAT3,getValue:function(e){return e.viewRotation}}),czm_viewRotation3D:new zt({size:1,datatype:ee.FLOAT_MAT3,getValue:function(e){return e.viewRotation3D}}),czm_inverseView:new zt({size:1,datatype:ee.FLOAT_MAT4,getValue:function(e){return e.inverseView}}),czm_inverseView3D:new zt({size:1,datatype:ee.FLOAT_MAT4,getValue:function(e){return e.inverseView3D}}),czm_inverseViewRotation:new zt({size:1,datatype:ee.FLOAT_MAT3,getValue:function(e){return e.inverseViewRotation}}),czm_inverseViewRotation3D:new zt({size:1,datatype:ee.FLOAT_MAT3,getValue:function(e){return e.inverseViewRotation3D}}),czm_projection:new zt({size:1,datatype:ee.FLOAT_MAT4,getValue:function(e){return e.projection}}),czm_inverseProjection:new zt({size:1,datatype:ee.FLOAT_MAT4,getValue:function(e){return e.inverseProjection}}),czm_infiniteProjection:new zt({size:1,datatype:ee.FLOAT_MAT4,getValue:function(e){return e.infiniteProjection}}),czm_modelView:new zt({size:1,datatype:ee.FLOAT_MAT4,getValue:function(e){return e.modelView}}),czm_modelView3D:new zt({size:1,datatype:ee.FLOAT_MAT4,getValue:function(e){return e.modelView3D}}),czm_modelViewRelativeToEye:new zt({size:1,datatype:ee.FLOAT_MAT4,getValue:function(e){return e.modelViewRelativeToEye}}),czm_inverseModelView:new zt({size:1,datatype:ee.FLOAT_MAT4,getValue:function(e){return e.inverseModelView}}),czm_inverseModelView3D:new zt({size:1,datatype:ee.FLOAT_MAT4,getValue:function(e){return e.inverseModelView3D}}),czm_viewProjection:new zt({size:1,datatype:ee.FLOAT_MAT4,getValue:function(e){return e.viewProjection}}),czm_inverseViewProjection:new zt({size:1,datatype:ee.FLOAT_MAT4,getValue:function(e){return e.inverseViewProjection}}),czm_modelViewProjection:new zt({size:1,datatype:ee.FLOAT_MAT4,getValue:function(e){return e.modelViewProjection}}),czm_inverseModelViewProjection:new zt({size:1,datatype:ee.FLOAT_MAT4,getValue:function(e){return e.inverseModelViewProjection}}),czm_modelViewProjectionRelativeToEye:new zt({size:1,datatype:ee.FLOAT_MAT4,getValue:function(e){return e.modelViewProjectionRelativeToEye}}),czm_modelViewInfiniteProjection:new zt({size:1,datatype:ee.FLOAT_MAT4,getValue:function(e){return e.modelViewInfiniteProjection}}),czm_orthographicIn3D:new zt({size:1,datatype:ee.FLOAT,getValue:function(e){return e.orthographicIn3D?1:0}}),czm_normal:new zt({size:1,datatype:ee.FLOAT_MAT3,getValue:function(e){return e.normal}}),czm_normal3D:new zt({size:1,datatype:ee.FLOAT_MAT3,getValue:function(e){return e.normal3D}}),czm_inverseNormal:new zt({size:1,datatype:ee.FLOAT_MAT3,getValue:function(e){return e.inverseNormal}}),czm_inverseNormal3D:new zt({size:1,datatype:ee.FLOAT_MAT3,getValue:function(e){return e.inverseNormal3D}}),czm_eyeHeight:new zt({size:1,datatype:ee.FLOAT,getValue:function(e){return e.eyeHeight}}),czm_eyeHeight2D:new zt({size:1,datatype:ee.FLOAT_VEC2,getValue:function(e){return e.eyeHeight2D}}),czm_entireFrustum:new zt({size:1,datatype:ee.FLOAT_VEC2,getValue:function(e){return e.entireFrustum}}),czm_currentFrustum:new zt({size:1,datatype:ee.FLOAT_VEC2,getValue:function(e){return e.currentFrustum}}),czm_frustumPlanes:new zt({size:1,datatype:ee.FLOAT_VEC4,getValue:function(e){return e.frustumPlanes}}),czm_farDepthFromNearPlusOne:new zt({size:1,datatype:ee.FLOAT,getValue:function(e){return e.farDepthFromNearPlusOne}}),czm_log2FarDepthFromNearPlusOne:new zt({size:1,datatype:ee.FLOAT,getValue:function(e){return e.log2FarDepthFromNearPlusOne}}),czm_oneOverLog2FarDepthFromNearPlusOne:new zt({size:1,datatype:ee.FLOAT,getValue:function(e){return e.oneOverLog2FarDepthFromNearPlusOne}}),czm_sunPositionWC:new zt({size:1,datatype:ee.FLOAT_VEC3,getValue:function(e){return e.sunPositionWC}}),czm_sunPositionColumbusView:new zt({size:1,datatype:ee.FLOAT_VEC3,getValue:function(e){return e.sunPositionColumbusView}}),czm_sunDirectionEC:new zt({size:1,datatype:ee.FLOAT_VEC3,getValue:function(e){return e.sunDirectionEC}}),czm_sunDirectionWC:new zt({size:1,datatype:ee.FLOAT_VEC3,getValue:function(e){return e.sunDirectionWC}}),czm_moonDirectionEC:new zt({size:1,datatype:ee.FLOAT_VEC3,getValue:function(e){return e.moonDirectionEC}}),czm_lightDirectionEC:new zt({size:1,datatype:ee.FLOAT_VEC3,getValue:function(e){return e.lightDirectionEC}}),czm_lightDirectionWC:new zt({size:1,datatype:ee.FLOAT_VEC3,getValue:function(e){return e.lightDirectionWC}}),czm_lightColor:new zt({size:1,datatype:ee.FLOAT_VEC3,getValue:function(e){return e.lightColor}}),czm_lightColorHdr:new zt({size:1,datatype:ee.FLOAT_VEC3,getValue:function(e){return e.lightColorHdr}}),czm_encodedCameraPositionMCHigh:new zt({size:1,datatype:ee.FLOAT_VEC3,getValue:function(e){return e.encodedCameraPositionMCHigh}}),czm_encodedCameraPositionMCLow:new zt({size:1,datatype:ee.FLOAT_VEC3,getValue:function(e){return e.encodedCameraPositionMCLow}}),czm_viewerPositionWC:new zt({size:1,datatype:ee.FLOAT_VEC3,getValue:function(e){return F.getTranslation(e.inverseView,LTe)}}),czm_frameNumber:new zt({size:1,datatype:ee.FLOAT,getValue:function(e){return e.frameState.frameNumber}}),czm_morphTime:new zt({size:1,datatype:ee.FLOAT,getValue:function(e){return e.frameState.morphTime}}),czm_sceneMode:new zt({size:1,datatype:ee.FLOAT,getValue:function(e){return e.frameState.mode}}),czm_pass:new zt({size:1,datatype:ee.FLOAT,getValue:function(e){return e.pass}}),czm_backgroundColor:new zt({size:1,datatype:ee.FLOAT_VEC4,getValue:function(e){return e.backgroundColor}}),czm_brdfLut:new zt({size:1,datatype:ee.SAMPLER_2D,getValue:function(e){return e.brdfLut}}),czm_environmentMap:new zt({size:1,datatype:ee.SAMPLER_CUBE,getValue:function(e){return e.environmentMap}}),czm_specularEnvironmentMaps:new zt({size:1,datatype:ee.SAMPLER_2D,getValue:function(e){return e.specularEnvironmentMaps}}),czm_specularEnvironmentMapSize:new zt({size:1,datatype:ee.FLOAT_VEC2,getValue:function(e){return e.specularEnvironmentMapsDimensions}}),czm_specularEnvironmentMapsMaximumLOD:new zt({size:1,datatype:ee.FLOAT,getValue:function(e){return e.specularEnvironmentMapsMaximumLOD}}),czm_sphericalHarmonicCoefficients:new zt({size:9,datatype:ee.FLOAT_VEC3,getValue:function(e){return e.sphericalHarmonicCoefficients}}),czm_temeToPseudoFixed:new zt({size:1,datatype:ee.FLOAT_MAT3,getValue:function(e){return e.temeToPseudoFixedMatrix}}),czm_pixelRatio:new zt({size:1,datatype:ee.FLOAT,getValue:function(e){return e.pixelRatio}}),czm_fogDensity:new zt({size:1,datatype:ee.FLOAT,getValue:function(e){return e.fogDensity}}),czm_splitPosition:new zt({size:1,datatype:ee.FLOAT,getValue:function(e){return e.splitPosition}}),czm_geometricToleranceOverMeter:new zt({size:1,datatype:ee.FLOAT,getValue:function(e){return e.geometricToleranceOverMeter}}),czm_minimumDisableDepthTestDistance:new zt({size:1,datatype:ee.FLOAT,getValue:function(e){return e.minimumDisableDepthTestDistance}}),czm_invertClassificationColor:new zt({size:1,datatype:ee.FLOAT_VEC4,getValue:function(e){return e.invertClassificationColor}}),czm_gamma:new zt({size:1,datatype:ee.FLOAT,getValue:function(e){return e.gamma}}),czm_ellipsoidRadii:new zt({size:1,datatype:ee.FLOAT_VEC3,getValue:function(e){return e.ellipsoid.radii}}),czm_ellipsoidInverseRadii:new zt({size:1,datatype:ee.FLOAT_VEC3,getValue:function(e){return e.ellipsoid.oneOverRadii}})},Ym=NTe;function FTe(){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 Wn=FTe;function BTe(){return!0}function kTe(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=BTe}var le=kTe;var As={UNSIGNED_BYTE:ee.UNSIGNED_BYTE,UNSIGNED_SHORT:ee.UNSIGNED_SHORT,UNSIGNED_INT:ee.UNSIGNED_INT};As.getSizeInBytes=function(e){switch(e){case As.UNSIGNED_BYTE:return Uint8Array.BYTES_PER_ELEMENT;case As.UNSIGNED_SHORT:return Uint16Array.BYTES_PER_ELEMENT;case As.UNSIGNED_INT:return Uint32Array.BYTES_PER_ELEMENT}};As.fromSizeInBytes=function(e){switch(e){case 2:return As.UNSIGNED_SHORT;case 4:return As.UNSIGNED_INT;case 1:return As.UNSIGNED_BYTE}};As.validate=function(e){return u(e)&&(e===As.UNSIGNED_BYTE||e===As.UNSIGNED_SHORT||e===As.UNSIGNED_INT)};As.createTypedArray=function(e,t){return e>=P.SIXTY_FOUR_KILOBYTES?new Uint32Array(t):new Uint16Array(t)};As.createTypedArrayFromArrayBuffer=function(e,t,n,i){return e>=P.SIXTY_FOUR_KILOBYTES?new Uint32Array(t,n,i):new Uint16Array(t,n,i)};As.fromTypedArray=function(e){if(e instanceof Uint8Array)return As.UNSIGNED_BYTE;if(e instanceof Uint16Array)return As.UNSIGNED_SHORT;if(e instanceof Uint32Array)return As.UNSIGNED_INT};var Fe=Object.freeze(As);var x3={STREAM_DRAW:ee.STREAM_DRAW,STATIC_DRAW:ee.STATIC_DRAW,DYNAMIC_DRAW:ee.DYNAMIC_DRAW,validate:function(e){return e===x3.STREAM_DRAW||e===x3.STATIC_DRAW||e===x3.DYNAMIC_DRAW}},Ne=Object.freeze(x3);function qu(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=u(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=Wn(),this._gl=t,this._webgl2=e.context._webgl2,this._bufferTarget=n,this._sizeInBytes=o,this._usage=r,this._buffer=a,this.vertexArrayDestroyable=!0}qu.createVertexBuffer=function(e){return new qu({context:e.context,bufferTarget:ee.ARRAY_BUFFER,typedArray:e.typedArray,sizeInBytes:e.sizeInBytes,usage:e.usage})};qu.createIndexBuffer=function(e){let t=e.context,n=e.indexDatatype,i=Fe.getSizeInBytes(n),o=new qu({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(qu.prototype,{sizeInBytes:{get:function(){return this._sizeInBytes}},usage:{get:function(){return this._usage}}});qu.prototype._getBuffer=function(){return this._buffer};qu.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)};qu.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)};qu.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)};qu.prototype.isDestroyed=function(){return!1};qu.prototype.destroy=function(){return this._gl.deleteBuffer(this._buffer),le(this)};var ct=qu;var J_,Tr={requestFullscreen:void 0,exitFullscreen:void 0,fullscreenEnabled:void 0,fullscreenElement:void 0,fullscreenchange:void 0,fullscreenerror:void 0},al={};Object.defineProperties(al,{element:{get:function(){if(al.supportsFullscreen())return document[Tr.fullscreenElement]}},changeEventName:{get:function(){if(al.supportsFullscreen())return Tr.fullscreenchange}},errorEventName:{get:function(){if(al.supportsFullscreen())return Tr.fullscreenerror}},enabled:{get:function(){if(al.supportsFullscreen())return document[Tr.fullscreenEnabled]}},fullscreen:{get:function(){if(al.supportsFullscreen())return al.element!==null}}});al.supportsFullscreen=function(){if(u(J_))return J_;J_=!1;let e=document.body;if(typeof e.requestFullscreen=="function")return Tr.requestFullscreen="requestFullscreen",Tr.exitFullscreen="exitFullscreen",Tr.fullscreenEnabled="fullscreenEnabled",Tr.fullscreenElement="fullscreenElement",Tr.fullscreenchange="fullscreenchange",Tr.fullscreenerror="fullscreenerror",J_=!0,J_;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"?(Tr.requestFullscreen=n,J_=!0):(n=`${r}RequestFullScreen`,typeof e[n]=="function"&&(Tr.requestFullscreen=n,J_=!0)),n=`${r}ExitFullscreen`,typeof document[n]=="function"?Tr.exitFullscreen=n:(n=`${r}CancelFullScreen`,typeof document[n]=="function"&&(Tr.exitFullscreen=n)),n=`${r}FullscreenEnabled`,document[n]!==void 0?Tr.fullscreenEnabled=n:(n=`${r}FullScreenEnabled`,document[n]!==void 0&&(Tr.fullscreenEnabled=n)),n=`${r}FullscreenElement`,document[n]!==void 0?Tr.fullscreenElement=n:(n=`${r}FullScreenElement`,document[n]!==void 0&&(Tr.fullscreenElement=n)),n=`${r}fullscreenchange`,document[`on${n}`]!==void 0&&(r==="ms"&&(n="MSFullscreenChange"),Tr.fullscreenchange=n),n=`${r}fullscreenerror`,document[`on${n}`]!==void 0&&(r==="ms"&&(n="MSFullscreenError"),Tr.fullscreenerror=n)}return J_};al.requestFullscreen=function(e,t){al.supportsFullscreen()&&e[Tr.requestFullscreen]({vrDisplay:t})};al.exitFullscreen=function(){al.supportsFullscreen()&&document[Tr.exitFullscreen]()};al._names=Tr;var mr=al;var Fa;typeof navigator<"u"?Fa=navigator:Fa={};function b0(e){let t=e.split(".");for(let n=0,i=t.length;n<i;++n)t[n]=parseInt(t[n],10);return t}var b3,hZ;function wH(){if(!u(b3)&&(b3=!1,!w3())){let e=/ Chrome\/([\.0-9]+)/.exec(Fa.userAgent);e!==null&&(b3=!0,hZ=b0(e[1]))}return b3}function UTe(){return wH()&&hZ}var T3,mZ;function pZ(){if(!u(T3)&&(T3=!1,!wH()&&!w3()&&/ Safari\/[\.0-9]+/.test(Fa.userAgent))){let e=/ Version\/([\.0-9]+)/.exec(Fa.userAgent);e!==null&&(T3=!0,mZ=b0(e[1]))}return T3}function VTe(){return pZ()&&mZ}var A3,EH;function _Z(){if(!u(A3)){A3=!1;let e=/ AppleWebKit\/([\.0-9]+)(\+?)/.exec(Fa.userAgent);e!==null&&(A3=!0,EH=b0(e[1]),EH.isNightly=!!e[2])}return A3}function zTe(){return _Z()&&EH}var nw,SH;function gZ(){if(!u(nw)){nw=!1;let e;Fa.appName==="Microsoft Internet Explorer"?(e=/MSIE ([0-9]{1,}[\.0-9]{0,})/.exec(Fa.userAgent),e!==null&&(nw=!0,SH=b0(e[1]))):Fa.appName==="Netscape"&&(e=/Trident\/.*rv:([0-9]{1,}[\.0-9]{0,})/.exec(Fa.userAgent),e!==null&&(nw=!0,SH=b0(e[1])))}return nw}function HTe(){return gZ()&&SH}var C3,yZ;function w3(){if(!u(C3)){C3=!1;let e=/ Edg\/([\.0-9]+)/.exec(Fa.userAgent);e!==null&&(C3=!0,yZ=b0(e[1]))}return C3}function GTe(){return w3()&&yZ}var E3,vH;function v3(){if(!u(E3)){E3=!1;let e=/Firefox\/([\.0-9]+)/.exec(Fa.userAgent);e!==null&&(E3=!0,vH=b0(e[1]))}return E3}var TH;function WTe(){return u(TH)||(TH=/Windows/i.test(Fa.appVersion)),TH}var AH;function jTe(){return u(AH)||(AH=navigator.platform==="iPhone"||navigator.platform==="iPod"||navigator.platform==="iPad"),AH}function qTe(){return v3()&&vH}var CH;function YTe(){return u(CH)||(CH=!v3()&&typeof PointerEvent<"u"&&(!u(Fa.pointerEnabled)||Fa.pointerEnabled)),CH}var xZ,S3;function bZ(){if(!u(S3)){let e=document.createElement("canvas");e.setAttribute("style","image-rendering: -moz-crisp-edges;image-rendering: pixelated;");let t=e.style.imageRendering;S3=u(t)&&t!=="",S3&&(xZ=t)}return S3}function XTe(){return bZ()?xZ:void 0}function Tc(){return Tc._result}Tc._promise=void 0;Tc._result=void 0;Tc.initialize=function(){return u(Tc._promise)||(Tc._promise=new Promise(e=>{let t=new Image;t.onload=function(){Tc._result=t.width>0&&t.height>0,e(Tc._result)},t.onerror=function(){Tc._result=!1,e(Tc._result)},t.src="data:image/webp;base64,UklGRiIAAABXRUJQVlA4IBYAAAAwAQCdASoBAAEADsD+JaQAA3AAAAAA"})),Tc._promise};Object.defineProperties(Tc,{initialized:{get:function(){return u(Tc._result)}}});var $T=[];typeof ArrayBuffer<"u"&&($T.push(Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array),typeof Uint8ClampedArray<"u"&&$T.push(Uint8ClampedArray),typeof Uint8ClampedArray<"u"&&$T.push(Uint8ClampedArray),typeof BigInt64Array<"u"&&$T.push(BigInt64Array),typeof BigUint64Array<"u"&&$T.push(BigUint64Array));var Yu={isChrome:wH,chromeVersion:UTe,isSafari:pZ,safariVersion:VTe,isWebkit:_Z,webkitVersion:zTe,isInternetExplorer:gZ,internetExplorerVersion:HTe,isEdge:w3,edgeVersion:GTe,isFirefox:v3,firefoxVersion:qTe,isWindows:WTe,isIPadOrIOS:jTe,hardwareConcurrency:y(Fa.hardwareConcurrency,3),supportsPointerEvents:YTe,supportsImageRenderingPixelated:bZ,supportsWebP:Tc,imageRenderingValue:XTe,typedArrayTypes:$T};Yu.supportsBasis=function(e){return Yu.supportsWebAssembly()&&e.context.supportsBasis};Yu.supportsFullscreen=function(){return mr.supportsFullscreen()};Yu.supportsTypedArrays=function(){return typeof ArrayBuffer<"u"};Yu.supportsBigInt64Array=function(){return typeof BigInt64Array<"u"};Yu.supportsBigUint64Array=function(){return typeof BigUint64Array<"u"};Yu.supportsBigInt=function(){return typeof BigInt<"u"};Yu.supportsWebWorkers=function(){return typeof Worker<"u"};Yu.supportsWebAssembly=function(){return typeof WebAssembly<"u"};Yu.supportsWebgl2=function(e){return e.context.webgl2};Yu.supportsEsmWebWorkers=function(){return!v3()||parseInt(vH)>=114};var Bt=Yu;function DH(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 ne(e,t,n,i){this.red=y(e,1),this.green=y(t,1),this.blue=y(n,1),this.alpha=y(i,1)}ne.fromCartesian4=function(e,t){return u(t)?(t.red=e.x,t.green=e.y,t.blue=e.z,t.alpha=e.w,t):new ne(e.x,e.y,e.z,e.w)};ne.fromBytes=function(e,t,n,i,o){return e=ne.byteToFloat(y(e,255)),t=ne.byteToFloat(y(t,255)),n=ne.byteToFloat(y(n,255)),i=ne.byteToFloat(y(i,255)),u(o)?(o.red=e,o.green=t,o.blue=n,o.alpha=i,o):new ne(e,t,n,i)};ne.fromAlpha=function(e,t,n){return u(n)?(n.red=e.red,n.green=e.green,n.blue=e.blue,n.alpha=t,n):new ne(e.red,e.green,e.blue,t)};var IH,PH,Xm;Bt.supportsTypedArrays()&&(IH=new ArrayBuffer(4),PH=new Uint32Array(IH),Xm=new Uint8Array(IH));ne.fromRgba=function(e,t){return PH[0]=e,ne.fromBytes(Xm[0],Xm[1],Xm[2],Xm[3],t)};ne.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 l=2*n-c;r=DH(l,c,e+1/3),s=DH(l,c,e),a=DH(l,c,e-1/3)}return u(o)?(o.red=r,o.green=s,o.blue=a,o.alpha=i,o):new ne(r,s,a,i)};ne.fromRandom=function(e,t){e=y(e,y.EMPTY_OBJECT);let n=e.red;if(!u(n)){let s=y(e.minimumRed,0),a=y(e.maximumRed,1);n=s+P.nextRandomNumber()*(a-s)}let i=e.green;if(!u(i)){let s=y(e.minimumGreen,0),a=y(e.maximumGreen,1);i=s+P.nextRandomNumber()*(a-s)}let o=e.blue;if(!u(o)){let s=y(e.minimumBlue,0),a=y(e.maximumBlue,1);o=s+P.nextRandomNumber()*(a-s)}let r=e.alpha;if(!u(r)){let s=y(e.minimumAlpha,0),a=y(e.maximumAlpha,1);r=s+P.nextRandomNumber()*(a-s)}return u(t)?(t.red=n,t.green=i,t.blue=o,t.alpha=r,t):new ne(n,i,o,r)};var KTe=/^#([0-9a-f])([0-9a-f])([0-9a-f])([0-9a-f])?$/i,ZTe=/^#([0-9a-f]{2})([0-9a-f]{2})([0-9a-f]{2})([0-9a-f]{2})?$/i,$Te=/^rgba?\s*\(\s*([0-9.]+%?)\s*[,\s]+\s*([0-9.]+%?)\s*[,\s]+\s*([0-9.]+%?)(?:\s*[,\s/]+\s*([0-9.]+))?\s*\)$/i,QTe=/^hsla?\s*\(\s*([0-9.]+)\s*[,\s]+\s*([0-9.]+%)\s*[,\s]+\s*([0-9.]+%)(?:\s*[,\s/]+\s*([0-9.]+))?\s*\)$/i;ne.fromCssColorString=function(e,t){u(t)||(t=new ne),e=e.trim();let n=ne[e.toUpperCase()];if(u(n))return ne.clone(n,t),t;let i=KTe.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=ZTe.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=$Te.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=QTe.exec(e),i!==null?ne.fromHsl(parseFloat(i[1])/360,parseFloat(i[2])/100,parseFloat(i[3])/100,parseFloat(y(i[4],"1.0")),t):(t=void 0,t))))};ne.packedLength=4;ne.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};ne.unpack=function(e,t,n){return t=y(t,0),u(n)||(n=new ne),n.red=e[t++],n.green=e[t++],n.blue=e[t++],n.alpha=e[t],n};ne.byteToFloat=function(e){return e/255};ne.floatToByte=function(e){return e===1?255:e*256|0};ne.clone=function(e,t){if(u(e))return u(t)?(t.red=e.red,t.green=e.green,t.blue=e.blue,t.alpha=e.alpha,t):new ne(e.red,e.green,e.blue,e.alpha)};ne.equals=function(e,t){return e===t||u(e)&&u(t)&&e.red===t.red&&e.green===t.green&&e.blue===t.blue&&e.alpha===t.alpha};ne.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]};ne.prototype.clone=function(e){return ne.clone(this,e)};ne.prototype.equals=function(e){return ne.equals(this,e)};ne.prototype.equalsEpsilon=function(e,t){return this===e||u(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};ne.prototype.toString=function(){return`(${this.red}, ${this.green}, ${this.blue}, ${this.alpha})`};ne.prototype.toCssColorString=function(){let e=ne.floatToByte(this.red),t=ne.floatToByte(this.green),n=ne.floatToByte(this.blue);return this.alpha===1?`rgb(${e},${t},${n})`:`rgba(${e},${t},${n},${this.alpha})`};ne.prototype.toCssHexString=function(){let e=ne.floatToByte(this.red).toString(16);e.length<2&&(e=`0${e}`);let t=ne.floatToByte(this.green).toString(16);t.length<2&&(t=`0${t}`);let n=ne.floatToByte(this.blue).toString(16);if(n.length<2&&(n=`0${n}`),this.alpha<1){let i=ne.floatToByte(this.alpha).toString(16);return i.length<2&&(i=`0${i}`),`#${e}${t}${n}${i}`}return`#${e}${t}${n}`};ne.prototype.toBytes=function(e){let t=ne.floatToByte(this.red),n=ne.floatToByte(this.green),i=ne.floatToByte(this.blue),o=ne.floatToByte(this.alpha);return u(e)?(e[0]=t,e[1]=n,e[2]=i,e[3]=o,e):[t,n,i,o]};ne.prototype.toRgba=function(){return Xm[0]=ne.floatToByte(this.red),Xm[1]=ne.floatToByte(this.green),Xm[2]=ne.floatToByte(this.blue),Xm[3]=ne.floatToByte(this.alpha),PH[0]};ne.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};ne.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};ne.prototype.withAlpha=function(e,t){return ne.fromAlpha(this,e,t)};ne.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};ne.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};ne.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};ne.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};ne.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};ne.lerp=function(e,t,n,i){return i.red=P.lerp(e.red,t.red,n),i.green=P.lerp(e.green,t.green,n),i.blue=P.lerp(e.blue,t.blue,n),i.alpha=P.lerp(e.alpha,t.alpha,n),i};ne.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};ne.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};ne.ALICEBLUE=Object.freeze(ne.fromCssColorString("#F0F8FF"));ne.ANTIQUEWHITE=Object.freeze(ne.fromCssColorString("#FAEBD7"));ne.AQUA=Object.freeze(ne.fromCssColorString("#00FFFF"));ne.AQUAMARINE=Object.freeze(ne.fromCssColorString("#7FFFD4"));ne.AZURE=Object.freeze(ne.fromCssColorString("#F0FFFF"));ne.BEIGE=Object.freeze(ne.fromCssColorString("#F5F5DC"));ne.BISQUE=Object.freeze(ne.fromCssColorString("#FFE4C4"));ne.BLACK=Object.freeze(ne.fromCssColorString("#000000"));ne.BLANCHEDALMOND=Object.freeze(ne.fromCssColorString("#FFEBCD"));ne.BLUE=Object.freeze(ne.fromCssColorString("#0000FF"));ne.BLUEVIOLET=Object.freeze(ne.fromCssColorString("#8A2BE2"));ne.BROWN=Object.freeze(ne.fromCssColorString("#A52A2A"));ne.BURLYWOOD=Object.freeze(ne.fromCssColorString("#DEB887"));ne.CADETBLUE=Object.freeze(ne.fromCssColorString("#5F9EA0"));ne.CHARTREUSE=Object.freeze(ne.fromCssColorString("#7FFF00"));ne.CHOCOLATE=Object.freeze(ne.fromCssColorString("#D2691E"));ne.CORAL=Object.freeze(ne.fromCssColorString("#FF7F50"));ne.CORNFLOWERBLUE=Object.freeze(ne.fromCssColorString("#6495ED"));ne.CORNSILK=Object.freeze(ne.fromCssColorString("#FFF8DC"));ne.CRIMSON=Object.freeze(ne.fromCssColorString("#DC143C"));ne.CYAN=Object.freeze(ne.fromCssColorString("#00FFFF"));ne.DARKBLUE=Object.freeze(ne.fromCssColorString("#00008B"));ne.DARKCYAN=Object.freeze(ne.fromCssColorString("#008B8B"));ne.DARKGOLDENROD=Object.freeze(ne.fromCssColorString("#B8860B"));ne.DARKGRAY=Object.freeze(ne.fromCssColorString("#A9A9A9"));ne.DARKGREEN=Object.freeze(ne.fromCssColorString("#006400"));ne.DARKGREY=ne.DARKGRAY;ne.DARKKHAKI=Object.freeze(ne.fromCssColorString("#BDB76B"));ne.DARKMAGENTA=Object.freeze(ne.fromCssColorString("#8B008B"));ne.DARKOLIVEGREEN=Object.freeze(ne.fromCssColorString("#556B2F"));ne.DARKORANGE=Object.freeze(ne.fromCssColorString("#FF8C00"));ne.DARKORCHID=Object.freeze(ne.fromCssColorString("#9932CC"));ne.DARKRED=Object.freeze(ne.fromCssColorString("#8B0000"));ne.DARKSALMON=Object.freeze(ne.fromCssColorString("#E9967A"));ne.DARKSEAGREEN=Object.freeze(ne.fromCssColorString("#8FBC8F"));ne.DARKSLATEBLUE=Object.freeze(ne.fromCssColorString("#483D8B"));ne.DARKSLATEGRAY=Object.freeze(ne.fromCssColorString("#2F4F4F"));ne.DARKSLATEGREY=ne.DARKSLATEGRAY;ne.DARKTURQUOISE=Object.freeze(ne.fromCssColorString("#00CED1"));ne.DARKVIOLET=Object.freeze(ne.fromCssColorString("#9400D3"));ne.DEEPPINK=Object.freeze(ne.fromCssColorString("#FF1493"));ne.DEEPSKYBLUE=Object.freeze(ne.fromCssColorString("#00BFFF"));ne.DIMGRAY=Object.freeze(ne.fromCssColorString("#696969"));ne.DIMGREY=ne.DIMGRAY;ne.DODGERBLUE=Object.freeze(ne.fromCssColorString("#1E90FF"));ne.FIREBRICK=Object.freeze(ne.fromCssColorString("#B22222"));ne.FLORALWHITE=Object.freeze(ne.fromCssColorString("#FFFAF0"));ne.FORESTGREEN=Object.freeze(ne.fromCssColorString("#228B22"));ne.FUCHSIA=Object.freeze(ne.fromCssColorString("#FF00FF"));ne.GAINSBORO=Object.freeze(ne.fromCssColorString("#DCDCDC"));ne.GHOSTWHITE=Object.freeze(ne.fromCssColorString("#F8F8FF"));ne.GOLD=Object.freeze(ne.fromCssColorString("#FFD700"));ne.GOLDENROD=Object.freeze(ne.fromCssColorString("#DAA520"));ne.GRAY=Object.freeze(ne.fromCssColorString("#808080"));ne.GREEN=Object.freeze(ne.fromCssColorString("#008000"));ne.GREENYELLOW=Object.freeze(ne.fromCssColorString("#ADFF2F"));ne.GREY=ne.GRAY;ne.HONEYDEW=Object.freeze(ne.fromCssColorString("#F0FFF0"));ne.HOTPINK=Object.freeze(ne.fromCssColorString("#FF69B4"));ne.INDIANRED=Object.freeze(ne.fromCssColorString("#CD5C5C"));ne.INDIGO=Object.freeze(ne.fromCssColorString("#4B0082"));ne.IVORY=Object.freeze(ne.fromCssColorString("#FFFFF0"));ne.KHAKI=Object.freeze(ne.fromCssColorString("#F0E68C"));ne.LAVENDER=Object.freeze(ne.fromCssColorString("#E6E6FA"));ne.LAVENDAR_BLUSH=Object.freeze(ne.fromCssColorString("#FFF0F5"));ne.LAWNGREEN=Object.freeze(ne.fromCssColorString("#7CFC00"));ne.LEMONCHIFFON=Object.freeze(ne.fromCssColorString("#FFFACD"));ne.LIGHTBLUE=Object.freeze(ne.fromCssColorString("#ADD8E6"));ne.LIGHTCORAL=Object.freeze(ne.fromCssColorString("#F08080"));ne.LIGHTCYAN=Object.freeze(ne.fromCssColorString("#E0FFFF"));ne.LIGHTGOLDENRODYELLOW=Object.freeze(ne.fromCssColorString("#FAFAD2"));ne.LIGHTGRAY=Object.freeze(ne.fromCssColorString("#D3D3D3"));ne.LIGHTGREEN=Object.freeze(ne.fromCssColorString("#90EE90"));ne.LIGHTGREY=ne.LIGHTGRAY;ne.LIGHTPINK=Object.freeze(ne.fromCssColorString("#FFB6C1"));ne.LIGHTSEAGREEN=Object.freeze(ne.fromCssColorString("#20B2AA"));ne.LIGHTSKYBLUE=Object.freeze(ne.fromCssColorString("#87CEFA"));ne.LIGHTSLATEGRAY=Object.freeze(ne.fromCssColorString("#778899"));ne.LIGHTSLATEGREY=ne.LIGHTSLATEGRAY;ne.LIGHTSTEELBLUE=Object.freeze(ne.fromCssColorString("#B0C4DE"));ne.LIGHTYELLOW=Object.freeze(ne.fromCssColorString("#FFFFE0"));ne.LIME=Object.freeze(ne.fromCssColorString("#00FF00"));ne.LIMEGREEN=Object.freeze(ne.fromCssColorString("#32CD32"));ne.LINEN=Object.freeze(ne.fromCssColorString("#FAF0E6"));ne.MAGENTA=Object.freeze(ne.fromCssColorString("#FF00FF"));ne.MAROON=Object.freeze(ne.fromCssColorString("#800000"));ne.MEDIUMAQUAMARINE=Object.freeze(ne.fromCssColorString("#66CDAA"));ne.MEDIUMBLUE=Object.freeze(ne.fromCssColorString("#0000CD"));ne.MEDIUMORCHID=Object.freeze(ne.fromCssColorString("#BA55D3"));ne.MEDIUMPURPLE=Object.freeze(ne.fromCssColorString("#9370DB"));ne.MEDIUMSEAGREEN=Object.freeze(ne.fromCssColorString("#3CB371"));ne.MEDIUMSLATEBLUE=Object.freeze(ne.fromCssColorString("#7B68EE"));ne.MEDIUMSPRINGGREEN=Object.freeze(ne.fromCssColorString("#00FA9A"));ne.MEDIUMTURQUOISE=Object.freeze(ne.fromCssColorString("#48D1CC"));ne.MEDIUMVIOLETRED=Object.freeze(ne.fromCssColorString("#C71585"));ne.MIDNIGHTBLUE=Object.freeze(ne.fromCssColorString("#191970"));ne.MINTCREAM=Object.freeze(ne.fromCssColorString("#F5FFFA"));ne.MISTYROSE=Object.freeze(ne.fromCssColorString("#FFE4E1"));ne.MOCCASIN=Object.freeze(ne.fromCssColorString("#FFE4B5"));ne.NAVAJOWHITE=Object.freeze(ne.fromCssColorString("#FFDEAD"));ne.NAVY=Object.freeze(ne.fromCssColorString("#000080"));ne.OLDLACE=Object.freeze(ne.fromCssColorString("#FDF5E6"));ne.OLIVE=Object.freeze(ne.fromCssColorString("#808000"));ne.OLIVEDRAB=Object.freeze(ne.fromCssColorString("#6B8E23"));ne.ORANGE=Object.freeze(ne.fromCssColorString("#FFA500"));ne.ORANGERED=Object.freeze(ne.fromCssColorString("#FF4500"));ne.ORCHID=Object.freeze(ne.fromCssColorString("#DA70D6"));ne.PALEGOLDENROD=Object.freeze(ne.fromCssColorString("#EEE8AA"));ne.PALEGREEN=Object.freeze(ne.fromCssColorString("#98FB98"));ne.PALETURQUOISE=Object.freeze(ne.fromCssColorString("#AFEEEE"));ne.PALEVIOLETRED=Object.freeze(ne.fromCssColorString("#DB7093"));ne.PAPAYAWHIP=Object.freeze(ne.fromCssColorString("#FFEFD5"));ne.PEACHPUFF=Object.freeze(ne.fromCssColorString("#FFDAB9"));ne.PERU=Object.freeze(ne.fromCssColorString("#CD853F"));ne.PINK=Object.freeze(ne.fromCssColorString("#FFC0CB"));ne.PLUM=Object.freeze(ne.fromCssColorString("#DDA0DD"));ne.POWDERBLUE=Object.freeze(ne.fromCssColorString("#B0E0E6"));ne.PURPLE=Object.freeze(ne.fromCssColorString("#800080"));ne.RED=Object.freeze(ne.fromCssColorString("#FF0000"));ne.ROSYBROWN=Object.freeze(ne.fromCssColorString("#BC8F8F"));ne.ROYALBLUE=Object.freeze(ne.fromCssColorString("#4169E1"));ne.SADDLEBROWN=Object.freeze(ne.fromCssColorString("#8B4513"));ne.SALMON=Object.freeze(ne.fromCssColorString("#FA8072"));ne.SANDYBROWN=Object.freeze(ne.fromCssColorString("#F4A460"));ne.SEAGREEN=Object.freeze(ne.fromCssColorString("#2E8B57"));ne.SEASHELL=Object.freeze(ne.fromCssColorString("#FFF5EE"));ne.SIENNA=Object.freeze(ne.fromCssColorString("#A0522D"));ne.SILVER=Object.freeze(ne.fromCssColorString("#C0C0C0"));ne.SKYBLUE=Object.freeze(ne.fromCssColorString("#87CEEB"));ne.SLATEBLUE=Object.freeze(ne.fromCssColorString("#6A5ACD"));ne.SLATEGRAY=Object.freeze(ne.fromCssColorString("#708090"));ne.SLATEGREY=ne.SLATEGRAY;ne.SNOW=Object.freeze(ne.fromCssColorString("#FFFAFA"));ne.SPRINGGREEN=Object.freeze(ne.fromCssColorString("#00FF7F"));ne.STEELBLUE=Object.freeze(ne.fromCssColorString("#4682B4"));ne.TAN=Object.freeze(ne.fromCssColorString("#D2B48C"));ne.TEAL=Object.freeze(ne.fromCssColorString("#008080"));ne.THISTLE=Object.freeze(ne.fromCssColorString("#D8BFD8"));ne.TOMATO=Object.freeze(ne.fromCssColorString("#FF6347"));ne.TURQUOISE=Object.freeze(ne.fromCssColorString("#40E0D0"));ne.VIOLET=Object.freeze(ne.fromCssColorString("#EE82EE"));ne.WHEAT=Object.freeze(ne.fromCssColorString("#F5DEB3"));ne.WHITE=Object.freeze(ne.fromCssColorString("#FFFFFF"));ne.WHITESMOKE=Object.freeze(ne.fromCssColorString("#F5F5F5"));ne.YELLOW=Object.freeze(ne.fromCssColorString("#FFFF00"));ne.YELLOWGREEN=Object.freeze(ne.fromCssColorString("#9ACD32"));ne.TRANSPARENT=Object.freeze(new ne(0,0,0,0));var H=ne;function D3(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}D3.ALL=Object.freeze(new D3({color:new H(0,0,0,0),depth:1,stencil:0}));D3.prototype.execute=function(e,t){e.clear(this,t)};var ti=D3;var JTe={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(JTe);function TZ(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}TZ.prototype.execute=function(e){e.execute(this)};var Xu=TZ;function vt(e,t){this.x=y(e,0),this.y=y(t,0)}vt.fromElements=function(e,t,n){return u(n)?(n.x=e,n.y=t,n):new vt(e,t)};vt.clone=function(e,t){if(u(e))return u(t)?(t.x=e.x,t.y=e.y,t):new vt(e.x,e.y)};vt.fromCartesian3=vt.clone;vt.fromCartesian4=vt.clone;vt.packedLength=2;vt.pack=function(e,t,n){return n=y(n,0),t[n++]=e.x,t[n]=e.y,t};vt.unpack=function(e,t,n){return t=y(t,0),u(n)||(n=new vt),n.x=e[t++],n.y=e[t],n};vt.packArray=function(e,t){let n=e.length,i=n*2;u(t)?!Array.isArray(t)&&t.length!==i||t.length!==i&&(t.length=i):t=new Array(i);for(let o=0;o<n;++o)vt.pack(e[o],t,o*2);return t};vt.unpackArray=function(e,t){let n=e.length;u(t)?t.length=n/2:t=new Array(n/2);for(let i=0;i<n;i+=2){let o=i/2;t[o]=vt.unpack(e,i,t[o])}return t};vt.fromArray=vt.unpack;vt.maximumComponent=function(e){return Math.max(e.x,e.y)};vt.minimumComponent=function(e){return Math.min(e.x,e.y)};vt.minimumByComponent=function(e,t,n){return n.x=Math.min(e.x,t.x),n.y=Math.min(e.y,t.y),n};vt.maximumByComponent=function(e,t,n){return n.x=Math.max(e.x,t.x),n.y=Math.max(e.y,t.y),n};vt.clamp=function(e,t,n,i){let o=P.clamp(e.x,t.x,n.x),r=P.clamp(e.y,t.y,n.y);return i.x=o,i.y=r,i};vt.magnitudeSquared=function(e){return e.x*e.x+e.y*e.y};vt.magnitude=function(e){return Math.sqrt(vt.magnitudeSquared(e))};var I3=new vt;vt.distance=function(e,t){return vt.subtract(e,t,I3),vt.magnitude(I3)};vt.distanceSquared=function(e,t){return vt.subtract(e,t,I3),vt.magnitudeSquared(I3)};vt.normalize=function(e,t){let n=vt.magnitude(e);return t.x=e.x/n,t.y=e.y/n,t};vt.dot=function(e,t){return e.x*t.x+e.y*t.y};vt.cross=function(e,t){return e.x*t.y-e.y*t.x};vt.multiplyComponents=function(e,t,n){return n.x=e.x*t.x,n.y=e.y*t.y,n};vt.divideComponents=function(e,t,n){return n.x=e.x/t.x,n.y=e.y/t.y,n};vt.add=function(e,t,n){return n.x=e.x+t.x,n.y=e.y+t.y,n};vt.subtract=function(e,t,n){return n.x=e.x-t.x,n.y=e.y-t.y,n};vt.multiplyByScalar=function(e,t,n){return n.x=e.x*t,n.y=e.y*t,n};vt.divideByScalar=function(e,t,n){return n.x=e.x/t,n.y=e.y/t,n};vt.negate=function(e,t){return t.x=-e.x,t.y=-e.y,t};vt.abs=function(e,t){return t.x=Math.abs(e.x),t.y=Math.abs(e.y),t};var AZ=new vt;vt.lerp=function(e,t,n,i){return vt.multiplyByScalar(t,n,AZ),i=vt.multiplyByScalar(e,1-n,i),vt.add(AZ,i,i)};var CZ=new vt,EZ=new vt;vt.angleBetween=function(e,t){return vt.normalize(e,CZ),vt.normalize(t,EZ),P.acosClamped(vt.dot(CZ,EZ))};var eAe=new vt;vt.mostOrthogonalAxis=function(e,t){let n=vt.normalize(e,eAe);return vt.abs(n,n),n.x<=n.y?t=vt.clone(vt.UNIT_X,t):t=vt.clone(vt.UNIT_Y,t),t};vt.equals=function(e,t){return e===t||u(e)&&u(t)&&e.x===t.x&&e.y===t.y};vt.equalsArray=function(e,t,n){return e.x===t[n]&&e.y===t[n+1]};vt.equalsEpsilon=function(e,t,n,i){return e===t||u(e)&&u(t)&&P.equalsEpsilon(e.x,t.x,n,i)&&P.equalsEpsilon(e.y,t.y,n,i)};vt.ZERO=Object.freeze(new vt(0,0));vt.ONE=Object.freeze(new vt(1,1));vt.UNIT_X=Object.freeze(new vt(1,0));vt.UNIT_Y=Object.freeze(new vt(0,1));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,n){return vt.equalsEpsilon(this,e,t,n)};vt.prototype.toString=function(){return`(${this.x}, ${this.y})`};var z=vt;var tAe=new h,nAe=new h;function iAe(e,t,n,i,o){let r=e.x,s=e.y,a=e.z,c=t.x,l=t.y,f=t.z,d=r*r*c*c,p=s*s*l*l,g=a*a*f*f,m=d+p+g,x=Math.sqrt(1/m),b=h.multiplyByScalar(e,x,tAe);if(m<i)return isFinite(x)?h.clone(b,o):void 0;let T=n.x,A=n.y,C=n.z,S=nAe;S.x=b.x*T*2,S.y=b.y*A*2,S.z=b.z*C*2;let w=(1-x)*h.magnitude(e)/(.5*h.magnitude(S)),D=0,O,R,L,N,_,E,v,I,M,B,V;do{w-=D,L=1/(1+w*T),N=1/(1+w*A),_=1/(1+w*C),E=L*L,v=N*N,I=_*_,M=E*L,B=v*N,V=I*_,O=d*E+p*v+g*I-1,R=d*M*T+p*B*A+g*V*C;let U=-2*R;D=O/U}while(Math.abs(O)>P.EPSILON12);return u(o)?(o.x=r*L,o.y=s*N,o.z=a*_,o):new h(r*L,s*N,a*_)}var T0=iAe;function Zr(e,t,n){this.longitude=y(e,0),this.latitude=y(t,0),this.height=y(n,0)}Zr.fromRadians=function(e,t,n,i){return n=y(n,0),u(i)?(i.longitude=e,i.latitude=t,i.height=n,i):new Zr(e,t,n)};Zr.fromDegrees=function(e,t,n,i){return e=P.toRadians(e),t=P.toRadians(t),Zr.fromRadians(e,t,n,i)};var oAe=new h,rAe=new h,sAe=new h,aAe=new h(1/6378137,1/6378137,1/6356752314245179e-9),cAe=new h(1/(6378137*6378137),1/(6378137*6378137),1/(6356752314245179e-9*6356752314245179e-9)),lAe=P.EPSILON1;Zr.fromCartesian=function(e,t,n){let i=u(t)?t.oneOverRadii:aAe,o=u(t)?t.oneOverRadiiSquared:cAe,r=u(t)?t._centerToleranceSquared:lAe,s=T0(e,i,o,r,rAe);if(!u(s))return;let a=h.multiplyComponents(s,o,oAe);a=h.normalize(a,a);let c=h.subtract(e,s,sAe),l=Math.atan2(a.y,a.x),f=Math.asin(a.z),d=P.sign(h.dot(c,e))*h.magnitude(c);return u(n)?(n.longitude=l,n.latitude=f,n.height=d,n):new Zr(l,f,d)};Zr.toCartesian=function(e,t,n){return h.fromRadians(e.longitude,e.latitude,e.height,t,n)};Zr.clone=function(e,t){if(u(e))return u(t)?(t.longitude=e.longitude,t.latitude=e.latitude,t.height=e.height,t):new Zr(e.longitude,e.latitude,e.height)};Zr.equals=function(e,t){return e===t||u(e)&&u(t)&&e.longitude===t.longitude&&e.latitude===t.latitude&&e.height===t.height};Zr.equalsEpsilon=function(e,t,n){return n=y(n,0),e===t||u(e)&&u(t)&&Math.abs(e.longitude-t.longitude)<=n&&Math.abs(e.latitude-t.latitude)<=n&&Math.abs(e.height-t.height)<=n};Zr.ZERO=Object.freeze(new Zr(0,0,0));Zr.prototype.clone=function(e){return Zr.clone(this,e)};Zr.prototype.equals=function(e){return Zr.equals(this,e)};Zr.prototype.equalsEpsilon=function(e,t){return Zr.equalsEpsilon(this,e,t)};Zr.prototype.toString=function(){return`(${this.longitude}, ${this.latitude}, ${this.height})`};var fe=Zr;function wZ(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=P.EPSILON1,e._radiiSquared.z!==0&&(e._squaredXOverSquaredZ=e._radiiSquared.x/e._radiiSquared.z)}function $i(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,wZ(this,e,t,n)}Object.defineProperties($i.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}}});$i.clone=function(e,t){if(!u(e))return;let n=e._radii;return u(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 $i(n.x,n.y,n.z)};$i.fromCartesian3=function(e,t){return u(t)||(t=new $i),u(e)&&wZ(t,e.x,e.y,e.z),t};$i.WGS84=Object.freeze(new $i(6378137,6378137,6356752314245179e-9));$i.UNIT_SPHERE=Object.freeze(new $i(1,1,1));$i.MOON=Object.freeze(new $i(P.LUNAR_RADIUS,P.LUNAR_RADIUS,P.LUNAR_RADIUS));$i.prototype.clone=function(e){return $i.clone(this,e)};$i.packedLength=h.packedLength;$i.pack=function(e,t,n){return n=y(n,0),h.pack(e._radii,t,n),t};$i.unpack=function(e,t,n){t=y(t,0);let i=h.unpack(e,t);return $i.fromCartesian3(i,n)};$i.prototype.geocentricSurfaceNormal=h.normalize;$i.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 u(t)||(t=new h),t.x=r,t.y=s,t.z=a,h.normalize(t,t)};$i.prototype.geodeticSurfaceNormal=function(e,t){if(!h.equalsEpsilon(e,h.ZERO,P.EPSILON14))return u(t)||(t=new h),t=h.multiplyComponents(e,this._oneOverRadiiSquared,t),h.normalize(t,t)};var uAe=new h,fAe=new h;$i.prototype.cartographicToCartesian=function(e,t){let n=uAe,i=fAe;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),u(t)||(t=new h),h.add(i,n,t)};$i.prototype.cartographicArrayToCartesianArray=function(e,t){let n=e.length;u(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 dAe=new h,hAe=new h,mAe=new h;$i.prototype.cartesianToCartographic=function(e,t){let n=this.scaleToGeodeticSurface(e,hAe);if(!u(n))return;let i=this.geodeticSurfaceNormal(n,dAe),o=h.subtract(e,n,mAe),r=Math.atan2(i.y,i.x),s=Math.asin(i.z),a=P.sign(h.dot(o,e))*h.magnitude(o);return u(t)?(t.longitude=r,t.latitude=s,t.height=a,t):new fe(r,s,a)};$i.prototype.cartesianArrayToCartographicArray=function(e,t){let n=e.length;u(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};$i.prototype.scaleToGeodeticSurface=function(e,t){return T0(e,this._oneOverRadii,this._oneOverRadiiSquared,this._centerToleranceSquared,t)};$i.prototype.scaleToGeocentricSurface=function(e,t){u(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)};$i.prototype.transformPositionToScaledSpace=function(e,t){return u(t)||(t=new h),h.multiplyComponents(e,this._oneOverRadii,t)};$i.prototype.transformPositionFromScaledSpace=function(e,t){return u(t)||(t=new h),h.multiplyComponents(e,this._radii,t)};$i.prototype.equals=function(e){return this===e||u(e)&&h.equals(this._radii,e._radii)};$i.prototype.toString=function(){return this._radii.toString()};$i.prototype.getSurfaceNormalIntersectionWithZAxis=function(e,t,n){t=y(t,0);let i=this._squaredXOverSquaredZ;if(u(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 pAe=[.14887433898163,.43339539412925,.67940956829902,.86506336668898,.97390652851717,0],_Ae=[.29552422471475,.26926671930999,.21908636251598,.14945134915058,.066671344308684,0];function SZ(e,t,n){let i=.5*(t+e),o=.5*(t-e),r=0;for(let s=0;s<5;s++){let a=o*pAe[s];r+=_Ae[s]*(n(i+a)+n(i-a))}return r*=o,r}$i.prototype.surfaceArea=function(e){let t=e.west,n=e.east,i=e.south,o=e.north;for(;n<t;)n+=P.TWO_PI;let r=this._radiiSquared,s=r.x,a=r.y,c=r.z,l=s*a;return SZ(i,o,function(f){let d=Math.cos(f),p=Math.sin(f);return Math.cos(f)*SZ(t,n,function(g){let m=Math.cos(g),x=Math.sin(g);return Math.sqrt(l*p*p+c*(a*m*m+s*x*x)*d*d)})})};var ie=$i;function P3(e){this._ellipsoid=y(e,ie.WGS84),this._semimajorAxis=this._ellipsoid.maximumRadius,this._oneOverSemimajorAxis=1/this._semimajorAxis}Object.defineProperties(P3.prototype,{ellipsoid:{get:function(){return this._ellipsoid}}});P3.prototype.project=function(e,t){let n=this._semimajorAxis,i=e.longitude*n,o=e.latitude*n,r=e.height;return u(t)?(t.x=i,t.y=o,t.z=r,t):new h(i,o,r)};P3.prototype.unproject=function(e,t){let n=this._oneOverSemimajorAxis,i=e.x*n,o=e.y*n,r=e.z;return u(t)?(t.longitude=i,t.latitude=o,t.height=r,t):new fe(i,o,r)};var wi=P3;var gAe={OUTSIDE:-1,INTERSECTING:0,INSIDE:1},Kt=Object.freeze(gAe);function kn(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(kn.prototype,{width:{get:function(){return kn.computeWidth(this)}},height:{get:function(){return kn.computeHeight(this)}}});kn.packedLength=4;kn.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};kn.unpack=function(e,t,n){return t=y(t,0),u(n)||(n=new kn),n.west=e[t++],n.south=e[t++],n.east=e[t++],n.north=e[t],n};kn.computeWidth=function(e){let t=e.east,n=e.west;return t<n&&(t+=P.TWO_PI),t-n};kn.computeHeight=function(e){return e.north-e.south};kn.fromDegrees=function(e,t,n,i,o){return e=P.toRadians(y(e,0)),t=P.toRadians(y(t,0)),n=P.toRadians(y(n,0)),i=P.toRadians(y(i,0)),u(o)?(o.west=e,o.south=t,o.east=n,o.north=i,o):new kn(e,t,n,i)};kn.fromRadians=function(e,t,n,i,o){return u(o)?(o.west=y(e,0),o.south=y(t,0),o.east=y(n,0),o.north=y(i,0),o):new kn(e,t,n,i)};kn.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,l=e.length;c<l;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+P.TWO_PI;o=Math.min(o,d),r=Math.max(r,d)}return i-n>r-o&&(n=o,i=r,i>P.PI&&(i=i-P.TWO_PI),n>P.PI&&(n=n-P.TWO_PI)),u(t)?(t.west=n,t.south=s,t.east=i,t.north=a,t):new kn(n,s,i,a)};kn.fromCartesianArray=function(e,t,n){t=y(t,ie.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 l=0,f=e.length;l<f;l++){let d=t.cartesianToCartographic(e[l]);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+P.TWO_PI;r=Math.min(r,p),s=Math.max(s,p)}return o-i>s-r&&(i=r,o=s,o>P.PI&&(o=o-P.TWO_PI),i>P.PI&&(i=i-P.TWO_PI)),u(n)?(n.west=i,n.south=a,n.east=o,n.north=c,n):new kn(i,a,o,c)};kn.clone=function(e,t){if(u(e))return u(t)?(t.west=e.west,t.south=e.south,t.east=e.east,t.north=e.north,t):new kn(e.west,e.south,e.east,e.north)};kn.equalsEpsilon=function(e,t,n){return n=y(n,0),e===t||u(e)&&u(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};kn.prototype.clone=function(e){return kn.clone(this,e)};kn.prototype.equals=function(e){return kn.equals(this,e)};kn.equals=function(e,t){return e===t||u(e)&&u(t)&&e.west===t.west&&e.south===t.south&&e.east===t.east&&e.north===t.north};kn.prototype.equalsEpsilon=function(e,t){return kn.equalsEpsilon(this,e,t)};kn.validate=function(e){};kn.southwest=function(e,t){return u(t)?(t.longitude=e.west,t.latitude=e.south,t.height=0,t):new fe(e.west,e.south)};kn.northwest=function(e,t){return u(t)?(t.longitude=e.west,t.latitude=e.north,t.height=0,t):new fe(e.west,e.north)};kn.northeast=function(e,t){return u(t)?(t.longitude=e.east,t.latitude=e.north,t.height=0,t):new fe(e.east,e.north)};kn.southeast=function(e,t){return u(t)?(t.longitude=e.east,t.latitude=e.south,t.height=0,t):new fe(e.east,e.south)};kn.center=function(e,t){let n=e.east,i=e.west;n<i&&(n+=P.TWO_PI);let o=P.negativePiToPi((i+n)*.5),r=(e.south+e.north)*.5;return u(t)?(t.longitude=o,t.latitude=r,t.height=0,t):new fe(o,r)};kn.intersection=function(e,t,n){let i=e.east,o=e.west,r=t.east,s=t.west;i<o&&r>0?i+=P.TWO_PI:r<s&&i>0&&(r+=P.TWO_PI),i<o&&s<0?s+=P.TWO_PI:r<s&&o<0&&(o+=P.TWO_PI);let a=P.negativePiToPi(Math.max(o,s)),c=P.negativePiToPi(Math.min(i,r));if((e.west<e.east||t.west<t.east)&&c<=a)return;let l=Math.max(e.south,t.south),f=Math.min(e.north,t.north);if(!(l>=f))return u(n)?(n.west=a,n.south=l,n.east=c,n.north=f,n):new kn(a,l,c,f)};kn.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 u(n)?(n.west=i,n.south=o,n.east=r,n.north=s,n):new kn(i,o,r,s)};kn.union=function(e,t,n){u(n)||(n=new kn);let i=e.east,o=e.west,r=t.east,s=t.west;i<o&&r>0?i+=P.TWO_PI:r<s&&i>0&&(r+=P.TWO_PI),i<o&&s<0?s+=P.TWO_PI:r<s&&o<0&&(o+=P.TWO_PI);let a=P.negativePiToPi(Math.min(o,s)),c=P.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};kn.expand=function(e,t,n){return u(n)||(n=new kn),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};kn.contains=function(e,t){let n=t.longitude,i=t.latitude,o=e.west,r=e.east;return r<o&&(r+=P.TWO_PI,n<0&&(n+=P.TWO_PI)),(n>o||P.equalsEpsilon(n,o,P.EPSILON14))&&(n<r||P.equalsEpsilon(n,r,P.EPSILON14))&&i>=e.south&&i<=e.north};var yAe=new fe;kn.subsample=function(e,t,n,i){t=y(t,ie.WGS84),n=y(n,0),u(i)||(i=[]);let o=0,r=e.north,s=e.south,a=e.east,c=e.west,l=yAe;l.height=n,l.longitude=c,l.latitude=r,i[o]=t.cartographicToCartesian(l,i[o]),o++,l.longitude=a,i[o]=t.cartographicToCartesian(l,i[o]),o++,l.latitude=s,i[o]=t.cartographicToCartesian(l,i[o]),o++,l.longitude=c,i[o]=t.cartographicToCartesian(l,i[o]),o++,r<0?l.latitude=r:s>0?l.latitude=s:l.latitude=0;for(let f=1;f<8;++f)l.longitude=-Math.PI+f*P.PI_OVER_TWO,kn.contains(e,l)&&(i[o]=t.cartographicToCartesian(l,i[o]),o++);return l.latitude===0&&(l.longitude=c,i[o]=t.cartographicToCartesian(l,i[o]),o++,l.longitude=a,i[o]=t.cartographicToCartesian(l,i[o]),o++),i.length=o,i};kn.subsection=function(e,t,n,i,o,r){if(u(r)||(r=new kn),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=P.TWO_PI+e.east-e.west;r.west=P.negativePiToPi(e.west+t*a),r.east=P.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};kn.MAX_VALUE=Object.freeze(new kn(-Math.PI,-P.PI_OVER_TWO,Math.PI,P.PI_OVER_TWO));var ce=kn;function Ar(e,t,n,i){this.x=y(e,0),this.y=y(t,0),this.width=y(n,0),this.height=y(i,0)}Ar.packedLength=4;Ar.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};Ar.unpack=function(e,t,n){return t=y(t,0),u(n)||(n=new Ar),n.x=e[t++],n.y=e[t++],n.width=e[t++],n.height=e[t],n};Ar.fromPoints=function(e,t){if(u(t)||(t=new Ar),!u(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],l=c.x,f=c.y;i=Math.min(l,i),r=Math.max(l,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 xAe=new wi,bAe=new fe,TAe=new fe;Ar.fromRectangle=function(e,t,n){if(u(n)||(n=new Ar),!u(e))return n.x=0,n.y=0,n.width=0,n.height=0,n;t=y(t,xAe);let i=t.project(ce.southwest(e,bAe)),o=t.project(ce.northeast(e,TAe));return z.subtract(o,i,o),n.x=i.x,n.y=i.y,n.width=o.x,n.height=o.y,n};Ar.clone=function(e,t){if(u(e))return u(t)?(t.x=e.x,t.y=e.y,t.width=e.width,t.height=e.height,t):new Ar(e.x,e.y,e.width,e.height)};Ar.union=function(e,t,n){u(n)||(n=new Ar);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};Ar.expand=function(e,t,n){n=Ar.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};Ar.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?Kt.OUTSIDE:Kt.INTERSECTING};Ar.equals=function(e,t){return e===t||u(e)&&u(t)&&e.x===t.x&&e.y===t.y&&e.width===t.width&&e.height===t.height};Ar.prototype.clone=function(e){return Ar.clone(this,e)};Ar.prototype.intersect=function(e){return Ar.intersect(this,e)};Ar.prototype.equals=function(e){return Ar.equals(this,e)};var We=Ar;var da={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};da.isLines=function(e){return e===da.LINES||e===da.LINE_LOOP||e===da.LINE_STRIP};da.isTriangles=function(e){return e===da.TRIANGLES||e===da.TRIANGLE_STRIP||e===da.TRIANGLE_FAN};da.validate=function(e){return e===da.POINTS||e===da.LINES||e===da.LINE_LOOP||e===da.LINE_STRIP||e===da.TRIANGLES||e===da.TRIANGLE_STRIP||e===da.TRIANGLE_FAN};var Me=Object.freeze(da);var A0=`in vec4 position;
  80. in vec2 textureCoordinates;
  81. out vec2 v_textureCoordinates;
  82. void main()
  83. {
  84. gl_Position = position;
  85. v_textureCoordinates = textureCoordinates;
  86. }
  87. `;var pr={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 iw(e){e=y(e,y.EMPTY_OBJECT),this._boundingVolume=e.boundingVolume,this._orientedBoundingBox=e.orientedBoundingBox,this._modelMatrix=e.modelMatrix,this._primitiveType=y(e.primitiveType,Me.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 Ba(e,t){return(e._flags&t)===t}function eg(e,t,n){n?e._flags|=t:e._flags&=~t}Object.defineProperties(iw.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 Ba(this,pr.CULL)},set:function(e){Ba(this,pr.CULL)!==e&&(eg(this,pr.CULL,e),this.dirty=!0)}},occlude:{get:function(){return Ba(this,pr.OCCLUDE)},set:function(e){Ba(this,pr.OCCLUDE)!==e&&(eg(this,pr.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 Ba(this,pr.CAST_SHADOWS)},set:function(e){Ba(this,pr.CAST_SHADOWS)!==e&&(eg(this,pr.CAST_SHADOWS,e),this.dirty=!0)}},receiveShadows:{get:function(){return Ba(this,pr.RECEIVE_SHADOWS)},set:function(e){Ba(this,pr.RECEIVE_SHADOWS)!==e&&(eg(this,pr.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 Ba(this,pr.EXECUTE_IN_CLOSEST_FRUSTUM)},set:function(e){Ba(this,pr.EXECUTE_IN_CLOSEST_FRUSTUM)!==e&&(eg(this,pr.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 Ba(this,pr.DEBUG_SHOW_BOUNDING_VOLUME)},set:function(e){Ba(this,pr.DEBUG_SHOW_BOUNDING_VOLUME)!==e&&(eg(this,pr.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 Ba(this,pr.PICK_ONLY)},set:function(e){Ba(this,pr.PICK_ONLY)!==e&&(eg(this,pr.PICK_ONLY,e),this.dirty=!0)}},depthForTranslucentClassification:{get:function(){return Ba(this,pr.DEPTH_FOR_TRANSLUCENT_CLASSIFICATION)},set:function(e){Ba(this,pr.DEPTH_FOR_TRANSLUCENT_CLASSIFICATION)!==e&&(eg(this,pr.DEPTH_FOR_TRANSLUCENT_CLASSIFICATION,e),this.dirty=!0)}}});iw.shallowClone=function(e,t){if(u(e))return u(t)||(t=new iw),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};iw.prototype.execute=function(e,t){e.draw(this,t)};var Je=iw;var vi={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};vi.toWebGLConstant=function(e,t){switch(e){case vi.UNSIGNED_BYTE:return ee.UNSIGNED_BYTE;case vi.UNSIGNED_SHORT:return ee.UNSIGNED_SHORT;case vi.UNSIGNED_INT:return ee.UNSIGNED_INT;case vi.FLOAT:return ee.FLOAT;case vi.HALF_FLOAT:return t.webgl2?ee.HALF_FLOAT:ee.HALF_FLOAT_OES;case vi.UNSIGNED_INT_24_8:return ee.UNSIGNED_INT_24_8;case vi.UNSIGNED_SHORT_4_4_4_4:return ee.UNSIGNED_SHORT_4_4_4_4;case vi.UNSIGNED_SHORT_5_5_5_1:return ee.UNSIGNED_SHORT_5_5_5_1;case vi.UNSIGNED_SHORT_5_6_5:return vi.UNSIGNED_SHORT_5_6_5}};vi.isPacked=function(e){return e===vi.UNSIGNED_INT_24_8||e===vi.UNSIGNED_SHORT_4_4_4_4||e===vi.UNSIGNED_SHORT_5_5_5_1||e===vi.UNSIGNED_SHORT_5_6_5};vi.sizeInBytes=function(e){switch(e){case vi.UNSIGNED_BYTE:return 1;case vi.UNSIGNED_SHORT:case vi.UNSIGNED_SHORT_4_4_4_4:case vi.UNSIGNED_SHORT_5_5_5_1:case vi.UNSIGNED_SHORT_5_6_5:case vi.HALF_FLOAT:return 2;case vi.UNSIGNED_INT:case vi.FLOAT:case vi.UNSIGNED_INT_24_8:return 4}};vi.validate=function(e){return e===vi.UNSIGNED_BYTE||e===vi.UNSIGNED_SHORT||e===vi.UNSIGNED_INT||e===vi.FLOAT||e===vi.HALF_FLOAT||e===vi.UNSIGNED_INT_24_8||e===vi.UNSIGNED_SHORT_4_4_4_4||e===vi.UNSIGNED_SHORT_5_5_5_1||e===vi.UNSIGNED_SHORT_5_6_5};var Ye=Object.freeze(vi);var tt={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};tt.componentsLength=function(e){switch(e){case tt.RGB:return 3;case tt.RGBA:return 4;case tt.LUMINANCE_ALPHA:case tt.RG:return 2;case tt.ALPHA:case tt.RED:case tt.LUMINANCE:return 1;default:return 1}};tt.validate=function(e){return e===tt.DEPTH_COMPONENT||e===tt.DEPTH_STENCIL||e===tt.ALPHA||e===tt.RED||e===tt.RG||e===tt.RGB||e===tt.RGBA||e===tt.LUMINANCE||e===tt.LUMINANCE_ALPHA||e===tt.RGB_DXT1||e===tt.RGBA_DXT1||e===tt.RGBA_DXT3||e===tt.RGBA_DXT5||e===tt.RGB_PVRTC_4BPPV1||e===tt.RGB_PVRTC_2BPPV1||e===tt.RGBA_PVRTC_4BPPV1||e===tt.RGBA_PVRTC_2BPPV1||e===tt.RGBA_ASTC||e===tt.RGB_ETC1||e===tt.RGB8_ETC2||e===tt.RGBA8_ETC2_EAC||e===tt.RGBA_BC7};tt.isColorFormat=function(e){return e===tt.ALPHA||e===tt.RGB||e===tt.RGBA||e===tt.LUMINANCE||e===tt.LUMINANCE_ALPHA};tt.isDepthFormat=function(e){return e===tt.DEPTH_COMPONENT||e===tt.DEPTH_STENCIL};tt.isCompressedFormat=function(e){return e===tt.RGB_DXT1||e===tt.RGBA_DXT1||e===tt.RGBA_DXT3||e===tt.RGBA_DXT5||e===tt.RGB_PVRTC_4BPPV1||e===tt.RGB_PVRTC_2BPPV1||e===tt.RGBA_PVRTC_4BPPV1||e===tt.RGBA_PVRTC_2BPPV1||e===tt.RGBA_ASTC||e===tt.RGB_ETC1||e===tt.RGB8_ETC2||e===tt.RGBA8_ETC2_EAC||e===tt.RGBA_BC7};tt.isDXTFormat=function(e){return e===tt.RGB_DXT1||e===tt.RGBA_DXT1||e===tt.RGBA_DXT3||e===tt.RGBA_DXT5};tt.isPVRTCFormat=function(e){return e===tt.RGB_PVRTC_4BPPV1||e===tt.RGB_PVRTC_2BPPV1||e===tt.RGBA_PVRTC_4BPPV1||e===tt.RGBA_PVRTC_2BPPV1};tt.isASTCFormat=function(e){return e===tt.RGBA_ASTC};tt.isETC1Format=function(e){return e===tt.RGB_ETC1};tt.isETC2Format=function(e){return e===tt.RGB8_ETC2||e===tt.RGBA8_ETC2_EAC};tt.isBC7Format=function(e){return e===tt.RGBA_BC7};tt.compressedTextureSizeInBytes=function(e,t,n){switch(e){case tt.RGB_DXT1:case tt.RGBA_DXT1:case tt.RGB_ETC1:case tt.RGB8_ETC2:return Math.floor((t+3)/4)*Math.floor((n+3)/4)*8;case tt.RGBA_DXT3:case tt.RGBA_DXT5:case tt.RGBA_ASTC:case tt.RGBA8_ETC2_EAC:return Math.floor((t+3)/4)*Math.floor((n+3)/4)*16;case tt.RGB_PVRTC_4BPPV1:case tt.RGBA_PVRTC_4BPPV1:return Math.floor((Math.max(t,8)*Math.max(n,8)*4+7)/8);case tt.RGB_PVRTC_2BPPV1:case tt.RGBA_PVRTC_2BPPV1:return Math.floor((Math.max(t,16)*Math.max(n,8)*2+7)/8);case tt.RGBA_BC7:return Math.ceil(t/4)*Math.ceil(n/4)*16;default:return 0}};tt.textureSizeInBytes=function(e,t,n,i){let o=tt.componentsLength(e);return Ye.isPacked(t)&&(o=1),o*Ye.sizeInBytes(t)*n*i};tt.alignmentInBytes=function(e,t,n){let i=tt.textureSizeInBytes(e,t,n,1)%4;return i===0?4:i===2?2:1};tt.createTypedArray=function(e,t,n,i){let o,r=Ye.sizeInBytes(t);r===Uint8Array.BYTES_PER_ELEMENT?o=Uint8Array:r===Uint16Array.BYTES_PER_ELEMENT?o=Uint16Array:r===Float32Array.BYTES_PER_ELEMENT&&t===Ye.FLOAT?o=Float32Array:o=Uint32Array;let s=tt.componentsLength(e)*n*i;return new o(s)};tt.flipY=function(e,t,n,i,o){if(o===1)return e;let r=tt.createTypedArray(t,n,i,o),s=tt.componentsLength(t),a=i*s;for(let c=0;c<o;++c){let l=c*i*s,f=(o-c-1)*i*s;for(let d=0;d<a;++d)r[f+d]=e[l+d]}return r};tt.toInternalFormat=function(e,t,n){if(!n.webgl2)return e;if(e===tt.DEPTH_STENCIL)return ee.DEPTH24_STENCIL8;if(e===tt.DEPTH_COMPONENT){if(t===Ye.UNSIGNED_SHORT)return ee.DEPTH_COMPONENT16;if(t===Ye.UNSIGNED_INT)return ee.DEPTH_COMPONENT24}if(t===Ye.FLOAT)switch(e){case tt.RGBA:return ee.RGBA32F;case tt.RGB:return ee.RGB32F;case tt.RG:return ee.RG32F;case tt.RED:return ee.R32F}if(t===Ye.HALF_FLOAT)switch(e){case tt.RGBA:return ee.RGBA16F;case tt.RGB:return ee.RGB16F;case tt.RG:return ee.RG16F;case tt.RED:return ee.R16F}return e};var nt=Object.freeze(tt);var _r={_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(_r,{maximumCombinedTextureImageUnits:{get:function(){return _r._maximumCombinedTextureImageUnits}},maximumCubeMapSize:{get:function(){return _r._maximumCubeMapSize}},maximumFragmentUniformVectors:{get:function(){return _r._maximumFragmentUniformVectors}},maximumTextureImageUnits:{get:function(){return _r._maximumTextureImageUnits}},maximumRenderbufferSize:{get:function(){return _r._maximumRenderbufferSize}},maximumTextureSize:{get:function(){return _r._maximumTextureSize}},maximumVaryingVectors:{get:function(){return _r._maximumVaryingVectors}},maximumVertexAttributes:{get:function(){return _r._maximumVertexAttributes}},maximumVertexTextureImageUnits:{get:function(){return _r._maximumVertexTextureImageUnits}},maximumVertexUniformVectors:{get:function(){return _r._maximumVertexUniformVectors}},minimumAliasedLineWidth:{get:function(){return _r._minimumAliasedLineWidth}},maximumAliasedLineWidth:{get:function(){return _r._maximumAliasedLineWidth}},minimumAliasedPointSize:{get:function(){return _r._minimumAliasedPointSize}},maximumAliasedPointSize:{get:function(){return _r._maximumAliasedPointSize}},maximumViewportWidth:{get:function(){return _r._maximumViewportWidth}},maximumViewportHeight:{get:function(){return _r._maximumViewportHeight}},maximumTextureFilterAnisotropy:{get:function(){return _r._maximumTextureFilterAnisotropy}},maximumDrawBuffers:{get:function(){return _r._maximumDrawBuffers}},maximumColorAttachments:{get:function(){return _r._maximumColorAttachments}},maximumSamples:{get:function(){return _r._maximumSamples}},highpFloatSupported:{get:function(){return _r._highpFloatSupported}},highpIntSupported:{get:function(){return _r._highpIntSupported}}});var Ut=_r;function OH(e,t,n){let i=e._gl;i.framebufferTexture2D(i.FRAMEBUFFER,t,n._target,n._texture,0)}function O3(e,t,n){let i=e._gl;i.framebufferRenderbuffer(i.FRAMEBUFFER,t,i.RENDERBUFFER,n._getRenderbuffer())}function rd(e){e=y(e,y.EMPTY_OBJECT);let n=e.context._gl,i=Ut.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=u(e.depthTexture)||u(e.depthRenderbuffer),r=u(e.depthStencilTexture)||u(e.depthStencilRenderbuffer);this._bind();let s,a,c,l,f;if(u(e.colorTextures)){let d=e.colorTextures;for(l=this._colorTextures.length=this._activeColorAttachments.length=d.length,c=0;c<l;++c)s=d[c],f=this._gl.COLOR_ATTACHMENT0+c,OH(this,f,s),this._activeColorAttachments[c]=f,this._colorTextures[c]=s}if(u(e.colorRenderbuffers)){let d=e.colorRenderbuffers;for(l=this._colorRenderbuffers.length=this._activeColorAttachments.length=d.length,c=0;c<l;++c)a=d[c],f=this._gl.COLOR_ATTACHMENT0+c,O3(this,f,a),this._activeColorAttachments[c]=f,this._colorRenderbuffers[c]=a}u(e.depthTexture)&&(s=e.depthTexture,OH(this,this._gl.DEPTH_ATTACHMENT,s),this._depthTexture=s),u(e.depthRenderbuffer)&&(a=e.depthRenderbuffer,O3(this,this._gl.DEPTH_ATTACHMENT,a),this._depthRenderbuffer=a),u(e.stencilRenderbuffer)&&(a=e.stencilRenderbuffer,O3(this,this._gl.STENCIL_ATTACHMENT,a),this._stencilRenderbuffer=a),u(e.depthStencilTexture)&&(s=e.depthStencilTexture,OH(this,this._gl.DEPTH_STENCIL_ATTACHMENT,s),this._depthStencilTexture=s),u(e.depthStencilRenderbuffer)&&(a=e.depthStencilRenderbuffer,O3(this,this._gl.DEPTH_STENCIL_ATTACHMENT,a),this._depthStencilRenderbuffer=a),this._unBind()}Object.defineProperties(rd.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)}}});rd.prototype._bind=function(){let e=this._gl;e.bindFramebuffer(e.FRAMEBUFFER,this._framebuffer)};rd.prototype._unBind=function(){let e=this._gl;e.bindFramebuffer(e.FRAMEBUFFER,null)};rd.prototype.bindDraw=function(){let e=this._gl;e.bindFramebuffer(e.DRAW_FRAMEBUFFER,this._framebuffer)};rd.prototype.bindRead=function(){let e=this._gl;e.bindFramebuffer(e.READ_FRAMEBUFFER,this._framebuffer)};rd.prototype._getActiveColorAttachments=function(){return this._activeColorAttachments};rd.prototype.getColorTexture=function(e){return this._colorTextures[e]};rd.prototype.getColorRenderbuffer=function(e){return this._colorRenderbuffers[e]};rd.prototype.isDestroyed=function(){return!1};rd.prototype.destroy=function(){if(this.destroyAttachments){let e=0,t=this._colorTextures,n=t.length;for(;e<n;++e){let o=t[e];u(o)&&o.destroy()}let i=this._colorRenderbuffers;for(n=i.length,e=0;e<n;++e){let o=i[e];u(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),le(this)};var Hs=rd;var R3={CLOCKWISE:ee.CW,COUNTER_CLOCKWISE:ee.CCW};R3.validate=function(e){return e===R3.CLOCKWISE||e===R3.COUNTER_CLOCKWISE};var $r=Object.freeze(R3);function vZ(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]=vZ(e[t]));return Object.freeze(e)}var RH=vZ;function Ph(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),l=y(t.blending,y.EMPTY_OBJECT),f=y(l.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,$r.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:We.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(l.enabled,!1),color:new H(y(f.red,0),y(f.green,0),y(f.blue,0),y(f.alpha,0)),equationRgb:y(l.equationRgb,ee.FUNC_ADD),equationAlpha:y(l.equationAlpha,ee.FUNC_ADD),functionSourceRgb:y(l.functionSourceRgb,ee.ONE),functionSourceAlpha:y(l.functionSourceAlpha,ee.ONE),functionDestinationRgb:y(l.functionDestinationRgb,ee.ZERO),functionDestinationAlpha:y(l.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=u(x)?new We(x.x,x.y,x.width,x.height):void 0,this.id=0,this._applyFunctions=[]}var AAe=0,Ih={};Ph.fromCache=function(e){let t=JSON.stringify(e),n=Ih[t];if(u(n))return++n.referenceCount,n.state;let i=new Ph(e),o=JSON.stringify(i);return n=Ih[o],u(n)||(i.id=AAe++,n={referenceCount:0,state:i},Ih[o]=n),++n.referenceCount,Ih[t]={referenceCount:1,state:n.state},n.state};Ph.removeFromCache=function(e){let t=new Ph(e),n=JSON.stringify(t),i=Ih[n],o=JSON.stringify(e),r=Ih[o];u(r)&&(--r.referenceCount,r.referenceCount===0&&(delete Ih[o],u(i)&&--i.referenceCount)),u(i)&&i.referenceCount===0&&delete Ih[n]};Ph.getCache=function(){return Ih};Ph.clearCache=function(){Ih={}};function C0(e,t,n){n?e.enable(t):e.disable(t)}function DZ(e,t){e.frontFace(t.frontFace)}function IZ(e,t){let n=t.cull,i=n.enabled;C0(e,e.CULL_FACE,i),i&&e.cullFace(n.face)}function PZ(e,t){e.lineWidth(t.lineWidth)}function OZ(e,t){let n=t.polygonOffset,i=n.enabled;C0(e,e.POLYGON_OFFSET_FILL,i),i&&e.polygonOffset(n.factor,n.units)}function RZ(e,t,n){let i=t.scissorTest,o=u(n.scissorTest)?n.scissorTest.enabled:i.enabled;if(C0(e,e.SCISSOR_TEST,o),o){let r=u(n.scissorTest)?n.scissorTest.rectangle:i.rectangle;e.scissor(r.x,r.y,r.width,r.height)}}function MZ(e,t){let n=t.depthRange;e.depthRange(n.near,n.far)}function LZ(e,t){let n=t.depthTest,i=n.enabled;C0(e,e.DEPTH_TEST,i),i&&e.depthFunc(n.func)}function NZ(e,t){let n=t.colorMask;e.colorMask(n.red,n.green,n.blue,n.alpha)}function FZ(e,t){e.depthMask(t.depthMask)}function BZ(e,t){e.stencilMask(t.stencilMask)}function CAe(e,t){e.blendColor(t.red,t.green,t.blue,t.alpha)}function kZ(e,t,n){let i=t.blending,o=u(n.blendingEnabled)?n.blendingEnabled:i.enabled;C0(e,e.BLEND,o),o&&(CAe(e,i.color),e.blendEquationSeparate(i.equationRgb,i.equationAlpha),e.blendFuncSeparate(i.functionSourceRgb,i.functionDestinationRgb,i.functionSourceAlpha,i.functionDestinationAlpha))}function UZ(e,t){let n=t.stencilTest,i=n.enabled;if(C0(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,l=c.fail,f=c.zFail,d=c.zPass;e.stencilOpSeparate(e.FRONT,l,f,d);let p=n.backOperation,g=p.fail,m=p.zFail,x=p.zPass;e.stencilOpSeparate(e.BACK,g,m,x)}}function VZ(e,t){let n=t.sampleCoverage,i=n.enabled;C0(e,e.SAMPLE_COVERAGE,i),i&&e.sampleCoverage(n.value,n.invert)}var EAe=new We;function zZ(e,t,n){let i=y(t.viewport,n.viewport);u(i)||(i=EAe,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)}Ph.apply=function(e,t,n){DZ(e,t),IZ(e,t),PZ(e,t),OZ(e,t),MZ(e,t),LZ(e,t),NZ(e,t),FZ(e,t),BZ(e,t),UZ(e,t),VZ(e,t),RZ(e,t,n),kZ(e,t,n),zZ(e,t,n)};function SAe(e,t){let n=[];return e.frontFace!==t.frontFace&&n.push(DZ),(e.cull.enabled!==t.cull.enabled||e.cull.face!==t.cull.face)&&n.push(IZ),e.lineWidth!==t.lineWidth&&n.push(PZ),(e.polygonOffset.enabled!==t.polygonOffset.enabled||e.polygonOffset.factor!==t.polygonOffset.factor||e.polygonOffset.units!==t.polygonOffset.units)&&n.push(OZ),(e.depthRange.near!==t.depthRange.near||e.depthRange.far!==t.depthRange.far)&&n.push(MZ),(e.depthTest.enabled!==t.depthTest.enabled||e.depthTest.func!==t.depthTest.func)&&n.push(LZ),(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(NZ),e.depthMask!==t.depthMask&&n.push(FZ),e.stencilMask!==t.stencilMask&&n.push(BZ),(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(UZ),(e.sampleCoverage.enabled!==t.sampleCoverage.enabled||e.sampleCoverage.value!==t.sampleCoverage.value||e.sampleCoverage.invert!==t.sampleCoverage.invert)&&n.push(VZ),n}Ph.partialApply=function(e,t,n,i,o,r){if(t!==n){let f=n._applyFunctions[t.id];u(f)||(f=SAe(t,n),n._applyFunctions[t.id]=f);let d=f.length;for(let p=0;p<d;++p)f[p](e,n)}let s=u(i.scissorTest)?i.scissorTest:t.scissorTest,a=u(o.scissorTest)?o.scissorTest:n.scissorTest;(s!==a||r)&&RZ(e,n,o);let c=u(i.blendingEnabled)?i.blendingEnabled:t.blending.enabled,l=u(o.blendingEnabled)?o.blendingEnabled:n.blending.enabled;(c!==l||l&&t.blending!==n.blending)&&kZ(e,n,o),(t!==n||i!==o||i.context!==o.context)&&zZ(e,n,o)};Ph.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:We.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:u(e.viewport)?We.clone(e.viewport):void 0}};var ke=Ph;function jt(e,t,n,i){this[0]=y(e,0),this[1]=y(n,0),this[2]=y(t,0),this[3]=y(i,0)}jt.packedLength=4;jt.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};jt.unpack=function(e,t,n){return t=y(t,0),u(n)||(n=new jt),n[0]=e[t++],n[1]=e[t++],n[2]=e[t++],n[3]=e[t++],n};jt.packArray=function(e,t){let n=e.length,i=n*4;u(t)?!Array.isArray(t)&&t.length!==i||t.length!==i&&(t.length=i):t=new Array(i);for(let o=0;o<n;++o)jt.pack(e[o],t,o*4);return t};jt.unpackArray=function(e,t){let n=e.length;u(t)?t.length=n/4:t=new Array(n/4);for(let i=0;i<n;i+=4){let o=i/4;t[o]=jt.unpack(e,i,t[o])}return t};jt.clone=function(e,t){if(u(e))return u(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t):new jt(e[0],e[2],e[1],e[3])};jt.fromArray=jt.unpack;jt.fromColumnMajorArray=function(e,t){return jt.clone(e,t)};jt.fromRowMajorArray=function(e,t){return u(t)?(t[0]=e[0],t[1]=e[2],t[2]=e[1],t[3]=e[3],t):new jt(e[0],e[1],e[2],e[3])};jt.fromScale=function(e,t){return u(t)?(t[0]=e.x,t[1]=0,t[2]=0,t[3]=e.y,t):new jt(e.x,0,0,e.y)};jt.fromUniformScale=function(e,t){return u(t)?(t[0]=e,t[1]=0,t[2]=0,t[3]=e,t):new jt(e,0,0,e)};jt.fromRotation=function(e,t){let n=Math.cos(e),i=Math.sin(e);return u(t)?(t[0]=n,t[1]=i,t[2]=-i,t[3]=n,t):new jt(n,-i,i,n)};jt.toArray=function(e,t){return u(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]]};jt.getElementIndex=function(e,t){return e*2+t};jt.getColumn=function(e,t,n){let i=t*2,o=e[i],r=e[i+1];return n.x=o,n.y=r,n};jt.setColumn=function(e,t,n,i){i=jt.clone(e,i);let o=t*2;return i[o]=n.x,i[o+1]=n.y,i};jt.getRow=function(e,t,n){let i=e[t],o=e[t+2];return n.x=i,n.y=o,n};jt.setRow=function(e,t,n,i){return i=jt.clone(e,i),i[t]=n.x,i[t+2]=n.y,i};var wAe=new z;jt.setScale=function(e,t,n){let i=jt.getScale(e,wAe),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 vAe=new z;jt.setUniformScale=function(e,t,n){let i=jt.getScale(e,vAe),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 HZ=new z;jt.getScale=function(e,t){return t.x=z.magnitude(z.fromElements(e[0],e[1],HZ)),t.y=z.magnitude(z.fromElements(e[2],e[3],HZ)),t};var GZ=new z;jt.getMaximumScale=function(e){return jt.getScale(e,GZ),z.maximumComponent(GZ)};var DAe=new z;jt.setRotation=function(e,t,n){let i=jt.getScale(e,DAe);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 IAe=new z;jt.getRotation=function(e,t){let n=jt.getScale(e,IAe);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};jt.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};jt.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};jt.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};jt.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};jt.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};jt.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};jt.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};jt.negate=function(e,t){return t[0]=-e[0],t[1]=-e[1],t[2]=-e[2],t[3]=-e[3],t};jt.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};jt.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};jt.equals=function(e,t){return e===t||u(e)&&u(t)&&e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]&&e[3]===t[3]};jt.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]};jt.equalsEpsilon=function(e,t,n){return n=y(n,0),e===t||u(e)&&u(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};jt.IDENTITY=Object.freeze(new jt(1,0,0,1));jt.ZERO=Object.freeze(new jt(0,0,0,0));jt.COLUMN0ROW0=0;jt.COLUMN0ROW1=1;jt.COLUMN1ROW0=2;jt.COLUMN1ROW1=3;Object.defineProperties(jt.prototype,{length:{get:function(){return jt.packedLength}}});jt.prototype.clone=function(e){return jt.clone(this,e)};jt.prototype.equals=function(e){return jt.equals(this,e)};jt.prototype.equalsEpsilon=function(e,t){return jt.equalsEpsilon(this,e,t)};jt.prototype.toString=function(){return`(${this[0]}, ${this[2]})
  88. (${this[1]}, ${this[3]})`};var Qi=jt;function PAe(e,t,n,i){switch(t.type){case e.FLOAT:return new WZ(e,t,n,i);case e.FLOAT_VEC2:return new jZ(e,t,n,i);case e.FLOAT_VEC3:return new qZ(e,t,n,i);case e.FLOAT_VEC4:return new YZ(e,t,n,i);case e.SAMPLER_2D:case e.SAMPLER_CUBE:return new MH(e,t,n,i);case e.INT:case e.BOOL:return new XZ(e,t,n,i);case e.INT_VEC2:case e.BOOL_VEC2:return new KZ(e,t,n,i);case e.INT_VEC3:case e.BOOL_VEC3:return new ZZ(e,t,n,i);case e.INT_VEC4:case e.BOOL_VEC4:return new $Z(e,t,n,i);case e.FLOAT_MAT2:return new QZ(e,t,n,i);case e.FLOAT_MAT3:return new JZ(e,t,n,i);case e.FLOAT_MAT4:return new e$(e,t,n,i);default:throw new ue(`Unrecognized uniform type: ${t.type} for uniform "${n}".`)}}function WZ(e,t,n,i){this.name=n,this.value=void 0,this._value=0,this._gl=e,this._location=i}WZ.prototype.set=function(){this.value!==this._value&&(this._value=this.value,this._gl.uniform1f(this._location,this.value))};function jZ(e,t,n,i){this.name=n,this.value=void 0,this._value=new z,this._gl=e,this._location=i}jZ.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 qZ(e,t,n,i){this.name=n,this.value=void 0,this._value=void 0,this._gl=e,this._location=i}qZ.prototype.set=function(){let e=this.value;u(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)):u(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 YZ(e,t,n,i){this.name=n,this.value=void 0,this._value=void 0,this._gl=e,this._location=i}YZ.prototype.set=function(){let e=this.value;u(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)):u(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 MH(e,t,n,i){this.name=n,this.value=void 0,this._gl=e,this._location=i,this.textureUnitIndex=void 0}MH.prototype.set=function(){let e=this._gl;e.activeTexture(e.TEXTURE0+this.textureUnitIndex);let t=this.value;e.bindTexture(t._target,t._texture)};MH.prototype._setSampler=function(e){return this.textureUnitIndex=e,this._gl.uniform1i(this._location,e),e+1};function XZ(e,t,n,i){this.name=n,this.value=void 0,this._value=0,this._gl=e,this._location=i}XZ.prototype.set=function(){this.value!==this._value&&(this._value=this.value,this._gl.uniform1i(this._location,this.value))};function KZ(e,t,n,i){this.name=n,this.value=void 0,this._value=new z,this._gl=e,this._location=i}KZ.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 ZZ(e,t,n,i){this.name=n,this.value=void 0,this._value=new h,this._gl=e,this._location=i}ZZ.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 $Z(e,t,n,i){this.name=n,this.value=void 0,this._value=new oe,this._gl=e,this._location=i}$Z.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 OAe=new Float32Array(4);function QZ(e,t,n,i){this.name=n,this.value=void 0,this._value=new Qi,this._gl=e,this._location=i}QZ.prototype.set=function(){if(!Qi.equalsArray(this.value,this._value,0)){Qi.clone(this.value,this._value);let e=Qi.toArray(this.value,OAe);this._gl.uniformMatrix2fv(this._location,!1,e)}};var RAe=new Float32Array(9);function JZ(e,t,n,i){this.name=n,this.value=void 0,this._value=new Q,this._gl=e,this._location=i}JZ.prototype.set=function(){if(!Q.equalsArray(this.value,this._value,0)){Q.clone(this.value,this._value);let e=Q.toArray(this.value,RAe);this._gl.uniformMatrix3fv(this._location,!1,e)}};var MAe=new Float32Array(16);function e$(e,t,n,i){this.name=n,this.value=void 0,this._value=new F,this._gl=e,this._location=i}e$.prototype.set=function(){if(!F.equalsArray(this.value,this._value,0)){F.clone(this.value,this._value);let e=F.toArray(this.value,MAe);this._gl.uniformMatrix4fv(this._location,!1,e)}};var ow=PAe;function LAe(e,t,n,i){switch(t.type){case e.FLOAT:return new t$(e,t,n,i);case e.FLOAT_VEC2:return new n$(e,t,n,i);case e.FLOAT_VEC3:return new i$(e,t,n,i);case e.FLOAT_VEC4:return new o$(e,t,n,i);case e.SAMPLER_2D:case e.SAMPLER_CUBE:return new LH(e,t,n,i);case e.INT:case e.BOOL:return new r$(e,t,n,i);case e.INT_VEC2:case e.BOOL_VEC2:return new s$(e,t,n,i);case e.INT_VEC3:case e.BOOL_VEC3:return new a$(e,t,n,i);case e.INT_VEC4:case e.BOOL_VEC4:return new c$(e,t,n,i);case e.FLOAT_MAT2:return new l$(e,t,n,i);case e.FLOAT_MAT3:return new u$(e,t,n,i);case e.FLOAT_MAT4:return new f$(e,t,n,i);default:throw new ue(`Unrecognized uniform type: ${t.type} for uniform "${n}".`)}}function t$(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]}t$.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 n$(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]}n$.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 i$(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]}i$.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];u(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):u(s.x)&&(h.equalsArray(s,n,o)||(h.pack(s,n,o),i=!0)),o+=3}i&&this._gl.uniform3fv(this._location,n)};function o$(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]}o$.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];u(s.red)?H.equalsArray(s,n,o)||(H.pack(s,n,o),i=!0):u(s.x)&&(oe.equalsArray(s,n,o)||(oe.pack(s,n,o),i=!0)),o+=4}i&&this._gl.uniform4fv(this._location,n)};function LH(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}LH.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)}};LH.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 r$(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]}r$.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 s$(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]}s$.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 a$(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]}a$.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 c$(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]}c$.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 l$(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]}l$.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 u$(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]}u$.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];Q.equalsArray(s,n,o)||(Q.pack(s,n,o),i=!0),o+=9}i&&this._gl.uniformMatrix3fv(this._location,!1,n)};function f$(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]}f$.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 rw=LAe;var NAe=0;function Km(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=FAe(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=NAe++}Km.fromCache=function(e){return e=y(e,y.EMPTY_OBJECT),e.context.shaderCache.getShaderProgram(e)};Km.replaceCache=function(e){return e=y(e,y.EMPTY_OBJECT),e.context.shaderCache.replaceShaderProgram(e)};Object.defineProperties(Km.prototype,{vertexShaderSource:{get:function(){return this._vertexShaderSource}},fragmentShaderSource:{get:function(){return this._fragmentShaderSource}},vertexAttributes:{get:function(){return M3(this),this._vertexAttributes}},numberOfVertexAttributes:{get:function(){return M3(this),this._numberOfVertexAttributes}},allUniforms:{get:function(){return M3(this),this._uniformsByName}}});function d$(e){let t=[],n=e.match(/uniform.*?(?![^{]*})(?=[=\[;])/g);if(u(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 FAe(e,t){let n={};if(!Ut.highpFloatSupported||!Ut.highpIntSupported){let i,o,r,s,a=d$(e),c=d$(t),l=a.length,f=c.length;for(i=0;i<l;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 Oh="[Cesium WebGL] ";function BAe(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(u(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),u(c)&&c.length>0&&console.log(`${Oh}Vertex shader compile log: ${c}`),c=e.getShaderInfoLog(r),u(c)&&c.length>0&&console.log(`${Oh}Fragment shader compile log: ${c}`),c=e.getProgramInfoLog(s),u(c)&&c.length>0&&console.log(`${Oh}Shader program link log: ${c}`)),e.deleteShader(o),e.deleteShader(r),s;let l,f=t._debugShaders;throw e.getShaderParameter(r,e.COMPILE_STATUS)?e.getShaderParameter(o,e.COMPILE_STATUS)?(c=e.getProgramInfoLog(s),console.error(`${Oh}Shader program link log: ${c}`),d(o,"vertex"),d(r,"fragment"),l=`Program failed to link. Link log: ${c}`):(c=e.getShaderInfoLog(o),console.error(`${Oh}Vertex shader compile log: ${c}`),console.error(`${Oh} Vertex shader source:
  89. ${n}`),l=`Vertex shader failed to compile. Compile log: ${c}`):(c=e.getShaderInfoLog(r),console.error(`${Oh}Fragment shader compile log: ${c}`),console.error(`${Oh} Fragment shader source:
  90. ${i}`),l=`Fragment shader failed to compile. Compile log: ${c}`),e.deleteShader(o),e.deleteShader(r),e.deleteProgram(s),new ue(l);function d(p,g){if(!u(f))return;let m=f.getTranslatedShaderSource(p);if(m===""){console.error(`${Oh}${g} shader translation failed.`);return}console.error(`${Oh}Translated ${g} shaderSource:
  91. ${m}`)}}function kAe(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 UAe(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]",l=a.name.indexOf(c,a.name.length-c.length)!==-1?a.name.slice(0,a.name.length-3):a.name;if(l.indexOf("gl_")!==0)if(a.name.indexOf("[")<0){let f=e.getUniformLocation(t,l);if(f!==null){let d=ow(e,a,l,f);n[l]=d,i.push(d),d._setSampler&&o.push(d)}}else{let f,d,p,g,m=l.indexOf("[");if(m>=0){if(f=n[l.slice(0,m)],!u(f))continue;d=f._locations,d.length<=1&&(p=f.value,g=e.getUniformLocation(t,l),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,`${l}[${x}]`),g!==null&&d.push(g);f=rw(e,a,l,d),n[l]=f,i.push(f),f._setSampler&&o.push(f)}}}return{uniformsByName:n,uniforms:i,samplerUniforms:o}}function VAe(e,t){let n=[],i=[];for(let o in t)if(t.hasOwnProperty(o)){let r=t[o],s=o,a=e._duplicateUniformNames[s];u(a)&&(r.name=a,s=a);let c=Ym[s];u(c)?n.push({uniform:r,automaticUniform:c}):i.push(r)}return{automaticUniforms:n,manualUniforms:i}}function zAe(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 M3(e){u(e._program)||h$(e)}function h$(e){let t=e._program,n=e._gl,i=BAe(n,e,e._debugShaders),o=n.getProgramParameter(i,n.ACTIVE_ATTRIBUTES),r=UAe(n,i),s=VAe(e,r.uniformsByName);e._program=i,e._numberOfVertexAttributes=o,e._vertexAttributes=kAe(n,i,o),e._uniformsByName=r.uniformsByName,e._uniforms=r.uniforms,e._automaticUniforms=s.automaticUniforms,e._manualUniforms=s.manualUniforms,e.maximumTextureUnitIndex=zAe(n,i,r.samplerUniforms),t&&e._gl.deleteProgram(t),typeof spector<"u"&&(e._program.__SPECTOR_rebuildProgram=function(a,c,l,f){let d=e._vertexShaderText,p=e._fragmentShaderText,g=/ ! = /g;e._vertexShaderText=a.replace(g," != "),e._fragmentShaderText=c.replace(g," != ");try{h$(e),l(e._program)}catch(m){e._vertexShaderText=d,e._fragmentShaderText=p;let b=/(?:Compile|Link) error: ([^]*)/.exec(m.message);f(b?b[1]:m.message)}})}Km.prototype._bind=function(){M3(this),this._gl.useProgram(this._program)};Km.prototype._setUniforms=function(e,t,n){let i,o;if(u(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)}};Km.prototype.isDestroyed=function(){return!1};Km.prototype.destroy=function(){this._cachedShader.cache.releaseShaderProgram(this)};Km.prototype.finalDestroy=function(){return this._gl.deleteProgram(this._program),le(this)};var Yt=Km;function L3(e){this._context=e}var sw,HAe=new Je({primitiveType:Me.TRIANGLES}),GAe=new ti({color:new H(0,0,0,0)});function WAe(e,t){return new Hs({context:e,colorTextures:[t],destroyAttachments:!1})}function jAe(e,t){return Yt.fromCache({context:e,vertexShaderSource:A0,fragmentShaderSource:t,attributeLocations:{position:0,textureCoordinates:1}})}function qAe(e,t){return(!u(sw)||sw.viewport.width!==e||sw.viewport.height!==t)&&(sw=ke.fromCache({viewport:new We(0,0,e,t)})),sw}L3.prototype.execute=function(e){u(e.preExecute)&&e.preExecute(e);let t=e.outputTexture,n=t.width,i=t.height,o=this._context,r=u(e.vertexArray)?e.vertexArray:o.getViewportQuadVertexArray(),s=u(e.shaderProgram)?e.shaderProgram:jAe(o,e.fragmentShaderSource),a=WAe(o,t),c=qAe(n,i),l=e.uniformMap,f=GAe;f.framebuffer=a,f.renderState=c,f.execute(o);let d=HAe;d.vertexArray=r,d.renderState=c,d.shaderProgram=s,d.uniformMap=l,d.framebuffer=a,d.execute(o),a.destroy(),e.persists||(s.destroy(),u(e.vertexArray)&&r.destroy()),u(e.postExecute)&&e.postExecute(t)};L3.prototype.isDestroyed=function(){return!1};L3.prototype.destroy=function(){return le(this)};var aw=L3;var Cn={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};Cn.getSizeInBytes=function(e){switch(e){case Cn.BYTE:return Int8Array.BYTES_PER_ELEMENT;case Cn.UNSIGNED_BYTE:return Uint8Array.BYTES_PER_ELEMENT;case Cn.SHORT:return Int16Array.BYTES_PER_ELEMENT;case Cn.UNSIGNED_SHORT:return Uint16Array.BYTES_PER_ELEMENT;case Cn.INT:return Int32Array.BYTES_PER_ELEMENT;case Cn.UNSIGNED_INT:return Uint32Array.BYTES_PER_ELEMENT;case Cn.FLOAT:return Float32Array.BYTES_PER_ELEMENT;case Cn.DOUBLE:return Float64Array.BYTES_PER_ELEMENT}};Cn.fromTypedArray=function(e){if(e instanceof Int8Array)return Cn.BYTE;if(e instanceof Uint8Array)return Cn.UNSIGNED_BYTE;if(e instanceof Int16Array)return Cn.SHORT;if(e instanceof Uint16Array)return Cn.UNSIGNED_SHORT;if(e instanceof Int32Array)return Cn.INT;if(e instanceof Uint32Array)return Cn.UNSIGNED_INT;if(e instanceof Float32Array)return Cn.FLOAT;if(e instanceof Float64Array)return Cn.DOUBLE};Cn.validate=function(e){return u(e)&&(e===Cn.BYTE||e===Cn.UNSIGNED_BYTE||e===Cn.SHORT||e===Cn.UNSIGNED_SHORT||e===Cn.INT||e===Cn.UNSIGNED_INT||e===Cn.FLOAT||e===Cn.DOUBLE)};Cn.createTypedArray=function(e,t){switch(e){case Cn.BYTE:return new Int8Array(t);case Cn.UNSIGNED_BYTE:return new Uint8Array(t);case Cn.SHORT:return new Int16Array(t);case Cn.UNSIGNED_SHORT:return new Uint16Array(t);case Cn.INT:return new Int32Array(t);case Cn.UNSIGNED_INT:return new Uint32Array(t);case Cn.FLOAT:return new Float32Array(t);case Cn.DOUBLE:return new Float64Array(t)}};Cn.createArrayBufferView=function(e,t,n,i){switch(n=y(n,0),i=y(i,(t.byteLength-n)/Cn.getSizeInBytes(e)),e){case Cn.BYTE:return new Int8Array(t,n,i);case Cn.UNSIGNED_BYTE:return new Uint8Array(t,n,i);case Cn.SHORT:return new Int16Array(t,n,i);case Cn.UNSIGNED_SHORT:return new Uint16Array(t,n,i);case Cn.INT:return new Int32Array(t,n,i);case Cn.UNSIGNED_INT:return new Uint32Array(t,n,i);case Cn.FLOAT:return new Float32Array(t,n,i);case Cn.DOUBLE:return new Float64Array(t,n,i)}};Cn.fromName=function(e){switch(e){case"BYTE":return Cn.BYTE;case"UNSIGNED_BYTE":return Cn.UNSIGNED_BYTE;case"SHORT":return Cn.SHORT;case"UNSIGNED_SHORT":return Cn.UNSIGNED_SHORT;case"INT":return Cn.INT;case"UNSIGNED_INT":return Cn.UNSIGNED_INT;case"FLOAT":return Cn.FLOAT;case"DOUBLE":return Cn.DOUBLE}};var X=Object.freeze(Cn);var m$={};function cw(e,t){u(m$[e])||(m$[e]=!0,console.warn(y(t,e)))}cw.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.";cw.geometryZIndex="Entity geometry with zIndex are unsupported when height or extrudedHeight are defined. zIndex will be ignored";cw.geometryHeightReference="Entity corridor, ellipse, polygon or rectangle with heightReference must also have a defined height. heightReference will be ignored";cw.geometryExtrudedHeightReference="Entity corridor, ellipse, polygon or rectangle with extrudedHeightReference must also have a defined extrudedHeight. extrudedHeightReference will be ignored";var Dt=cw;function YAe(e,t){Dt(e,t)}var Qr=YAe;var XAe={NONE:0,TRIANGLES:1,LINES:2,POLYLINES:3},Ku=Object.freeze(XAe);function et(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 lw=new h;et.fromAxisAngle=function(e,t,n){let i=t/2,o=Math.sin(i);lw=h.normalize(e,lw);let r=lw.x*o,s=lw.y*o,a=lw.z*o,c=Math.cos(i);return u(n)?(n.x=r,n.y=s,n.z=a,n.w=c,n):new et(r,s,a,c)};var KAe=[1,2,0],ZAe=new Array(3);et.fromRotationMatrix=function(e,t){let n,i,o,r,s,a=e[Q.COLUMN0ROW0],c=e[Q.COLUMN1ROW1],l=e[Q.COLUMN2ROW2],f=a+c+l;if(f>0)n=Math.sqrt(f+1),s=.5*n,n=.5/n,i=(e[Q.COLUMN1ROW2]-e[Q.COLUMN2ROW1])*n,o=(e[Q.COLUMN2ROW0]-e[Q.COLUMN0ROW2])*n,r=(e[Q.COLUMN0ROW1]-e[Q.COLUMN1ROW0])*n;else{let d=KAe,p=0;c>a&&(p=1),l>a&&l>c&&(p=2);let g=d[p],m=d[g];n=Math.sqrt(e[Q.getElementIndex(p,p)]-e[Q.getElementIndex(g,g)]-e[Q.getElementIndex(m,m)]+1);let x=ZAe;x[p]=.5*n,n=.5/n,s=(e[Q.getElementIndex(m,g)]-e[Q.getElementIndex(g,m)])*n,x[g]=(e[Q.getElementIndex(g,p)]+e[Q.getElementIndex(p,g)])*n,x[m]=(e[Q.getElementIndex(m,p)]+e[Q.getElementIndex(p,m)])*n,i=-x[0],o=-x[1],r=-x[2]}return u(t)?(t.x=i,t.y=o,t.z=r,t.w=s,t):new et(i,o,r,s)};var p$=new et,_$=new et,NH=new et,g$=new et;et.fromHeadingPitchRoll=function(e,t){return g$=et.fromAxisAngle(h.UNIT_X,e.roll,p$),NH=et.fromAxisAngle(h.UNIT_Y,-e.pitch,t),t=et.multiply(NH,g$,NH),_$=et.fromAxisAngle(h.UNIT_Z,-e.heading,p$),et.multiply(_$,t,t)};var N3=new h,FH=new h,sd=new et,y$=new et,F3=new et;et.packedLength=4;et.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};et.unpack=function(e,t,n){return t=y(t,0),u(n)||(n=new et),n.x=e[t],n.y=e[t+1],n.z=e[t+2],n.w=e[t+3],n};et.packedInterpolationLength=3;et.convertPackedArrayForInterpolation=function(e,t,n,i){et.unpack(e,n*4,F3),et.conjugate(F3,F3);for(let o=0,r=n-t+1;o<r;o++){let s=o*3;et.unpack(e,(t+o)*4,sd),et.multiply(sd,F3,sd),sd.w<0&&et.negate(sd,sd),et.computeAxis(sd,N3);let a=et.computeAngle(sd);u(i)||(i=[]),i[s]=N3.x*a,i[s+1]=N3.y*a,i[s+2]=N3.z*a}};et.unpackInterpolationResult=function(e,t,n,i,o){u(o)||(o=new et),h.fromArray(e,0,FH);let r=h.magnitude(FH);return et.unpack(t,i*4,y$),r===0?et.clone(et.IDENTITY,sd):et.fromAxisAngle(FH,r,sd),et.multiply(sd,y$,o)};et.clone=function(e,t){if(u(e))return u(t)?(t.x=e.x,t.y=e.y,t.z=e.z,t.w=e.w,t):new et(e.x,e.y,e.z,e.w)};et.conjugate=function(e,t){return t.x=-e.x,t.y=-e.y,t.z=-e.z,t.w=e.w,t};et.magnitudeSquared=function(e){return e.x*e.x+e.y*e.y+e.z*e.z+e.w*e.w};et.magnitude=function(e){return Math.sqrt(et.magnitudeSquared(e))};et.normalize=function(e,t){let n=1/et.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};et.inverse=function(e,t){let n=et.magnitudeSquared(e);return t=et.conjugate(e,t),et.multiplyByScalar(t,1/n,t)};et.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};et.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};et.negate=function(e,t){return t.x=-e.x,t.y=-e.y,t.z=-e.z,t.w=-e.w,t};et.dot=function(e,t){return e.x*t.x+e.y*t.y+e.z*t.z+e.w*t.w};et.multiply=function(e,t,n){let i=e.x,o=e.y,r=e.z,s=e.w,a=t.x,c=t.y,l=t.z,f=t.w,d=s*a+i*f+o*l-r*c,p=s*c-i*l+o*f+r*a,g=s*l+i*c-o*a+r*f,m=s*f-i*a-o*c-r*l;return n.x=d,n.y=p,n.z=g,n.w=m,n};et.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};et.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};et.computeAxis=function(e,t){let n=e.w;if(Math.abs(n-1)<P.EPSILON6)return t.x=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};et.computeAngle=function(e){return Math.abs(e.w-1)<P.EPSILON6?0:2*Math.acos(e.w)};var BH=new et;et.lerp=function(e,t,n,i){return BH=et.multiplyByScalar(t,n,BH),i=et.multiplyByScalar(e,1-n,i),et.add(BH,i,i)};var x$=new et,kH=new et,UH=new et;et.slerp=function(e,t,n,i){let o=et.dot(e,t),r=t;if(o<0&&(o=-o,r=x$=et.negate(t,x$)),1-o<P.EPSILON6)return et.lerp(e,r,n,i);let s=Math.acos(o);return kH=et.multiplyByScalar(e,Math.sin((1-n)*s),kH),UH=et.multiplyByScalar(r,Math.sin(n*s),UH),i=et.add(kH,UH,i),et.multiplyByScalar(i,1/Math.sin(s),i)};et.log=function(e,t){let n=P.acosClamped(e.w),i=0;return n!==0&&(i=n/Math.sin(n)),h.multiplyByScalar(e,i,t)};et.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 $Ae=new h,QAe=new h,uw=new et,QT=new et;et.computeInnerQuadrangle=function(e,t,n,i){let o=et.conjugate(t,uw);et.multiply(o,n,QT);let r=et.log(QT,$Ae);et.multiply(o,e,QT);let s=et.log(QT,QAe);return h.add(r,s,r),h.multiplyByScalar(r,.25,r),h.negate(r,r),et.exp(r,uw),et.multiply(t,uw,i)};et.squad=function(e,t,n,i,o,r){let s=et.slerp(e,t,o,uw),a=et.slerp(n,i,o,QT);return et.slerp(s,a,2*o*(1-o),r)};var JAe=new et,b$=1.9011074535173003,B3=Bt.supportsTypedArrays()?new Float32Array(8):[],k3=Bt.supportsTypedArrays()?new Float32Array(8):[],Zm=Bt.supportsTypedArrays()?new Float32Array(8):[],$m=Bt.supportsTypedArrays()?new Float32Array(8):[];for(let e=0;e<7;++e){let t=e+1,n=2*t+1;B3[e]=1/(t*n),k3[e]=t/n}B3[7]=b$/(8*17);k3[7]=b$*8/17;et.fastSlerp=function(e,t,n,i){let o=et.dot(e,t),r;o>=0?r=1:(r=-1,o=-o);let s=o-1,a=1-n,c=n*n,l=a*a;for(let g=7;g>=0;--g)Zm[g]=(B3[g]*c-k3[g])*s,$m[g]=(B3[g]*l-k3[g])*s;let f=r*n*(1+Zm[0]*(1+Zm[1]*(1+Zm[2]*(1+Zm[3]*(1+Zm[4]*(1+Zm[5]*(1+Zm[6]*(1+Zm[7])))))))),d=a*(1+$m[0]*(1+$m[1]*(1+$m[2]*(1+$m[3]*(1+$m[4]*(1+$m[5]*(1+$m[6]*(1+$m[7])))))))),p=et.multiplyByScalar(e,d,JAe);return et.multiplyByScalar(t,f,i),et.add(p,i,i)};et.fastSquad=function(e,t,n,i,o,r){let s=et.fastSlerp(e,t,o,uw),a=et.fastSlerp(n,i,o,QT);return et.fastSlerp(s,a,2*o*(1-o),r)};et.equals=function(e,t){return e===t||u(e)&&u(t)&&e.x===t.x&&e.y===t.y&&e.z===t.z&&e.w===t.w};et.equalsEpsilon=function(e,t,n){return n=y(n,0),e===t||u(e)&&u(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};et.ZERO=Object.freeze(new et(0,0,0,0));et.IDENTITY=Object.freeze(new et(0,0,0,1));et.prototype.clone=function(e){return et.clone(this,e)};et.prototype.equals=function(e){return et.equals(this,e)};et.prototype.equalsEpsilon=function(e,t){return et.equalsEpsilon(this,e,t)};et.prototype.toString=function(){return`(${this.x}, ${this.y}, ${this.z}, ${this.w})`};var Le=et;function eCe(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=eCe;function tCe(e,t,n,i,o){this.xPoleWander=e,this.yPoleWander=t,this.xPoleOffset=n,this.yPoleOffset=i,this.ut1MinusUtc=o}var tg=tCe;function nCe(e,t,n,i,o,r,s,a){this.year=e,this.month=t,this.day=n,this.hour=i,this.minute=o,this.second=r,this.millisecond=s,this.isLeapSecond=a}var Qm=nCe;function iCe(e){return e%4===0&&e%100!==0||e%400===0}var Jm=iCe;function oCe(e,t){this.julianDate=e,this.offset=t}var Ui=oCe;var rCe={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},Zn=Object.freeze(rCe);var sCe={UTC:0,TAI:1},Xn=Object.freeze(sCe);var A$=new Qm,VH=[31,28,31,30,31,30,31,31,30,31,30,31],zH=29;function HH(e,t){return Ct.compare(e.julianDate,t.julianDate)}var JT=new Ui;function V3(e){JT.julianDate=e;let t=Ct.leapSeconds,n=Do(t,JT,HH);n<0&&(n=~n),n>=t.length&&(n=t.length-1);let i=t[n].offset;n>0&&Ct.secondsDifference(t[n].julianDate,e)>i&&(n--,i=t[n].offset),Ct.addSeconds(e,i,e)}function T$(e,t){JT.julianDate=e;let n=Ct.leapSeconds,i=Do(n,JT,HH);if(i<0&&(i=~i),i===0)return Ct.addSeconds(e,-n[0].offset,t);if(i>=n.length)return Ct.addSeconds(e,-n[i-1].offset,t);let o=Ct.secondsDifference(n[i].julianDate,e);if(o===0)return Ct.addSeconds(e,-n[i].offset,t);if(!(o<=1))return Ct.addSeconds(e,-n[--i].offset,t)}function ng(e,t,n){let i=t/Zn.SECONDS_PER_DAY|0;return e+=i,t-=Zn.SECONDS_PER_DAY*i,t<0&&(e--,t+=Zn.SECONDS_PER_DAY),n.dayNumber=e,n.secondsOfDay=t,n}function GH(e,t,n,i,o,r,s){let a=(t-14)/12|0,c=e+4800+a,l=(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*Zn.SECONDS_PER_HOUR+o*Zn.SECONDS_PER_MINUTE+s*Zn.SECONDS_PER_MILLISECOND);return f>=43200&&(l-=1),[l,f]}var aCe=/^(\d{4})$/,cCe=/^(\d{4})-(\d{2})$/,lCe=/^(\d{4})-?(\d{3})$/,uCe=/^(\d{4})-?W(\d{2})-?(\d{1})?$/,fCe=/^(\d{4})-?(\d{2})-?(\d{2})$/,WH=/([Z+\-])?(\d{2})?:?(\d{2})?$/,dCe=/^(\d{2})(\.\d+)?/.source+WH.source,hCe=/^(\d{2}):?(\d{2})(\.\d+)?/.source+WH.source,mCe=/^(\d{2}):?(\d{2}):?(\d{2})(\.\d+)?/.source+WH.source;function Ct(e,t,n){this.dayNumber=void 0,this.secondsOfDay=void 0,e=y(e,0),t=y(t,0),n=y(n,Xn.UTC);let i=e|0;t=t+(e-i)*Zn.SECONDS_PER_DAY,ng(i,t,this),n===Xn.UTC&&V3(this)}Ct.fromGregorianDate=function(e,t){let n=GH(e.year,e.month,e.day,e.hour,e.minute,e.second,e.millisecond);return u(t)?(ng(n[0],n[1],t),V3(t),t):new Ct(n[0],n[1],Xn.UTC)};Ct.fromDate=function(e,t){let n=GH(e.getUTCFullYear(),e.getUTCMonth()+1,e.getUTCDate(),e.getUTCHours(),e.getUTCMinutes(),e.getUTCSeconds(),e.getUTCMilliseconds());return u(t)?(ng(n[0],n[1],t),V3(t),t):new Ct(n[0],n[1],Xn.UTC)};Ct.fromIso8601=function(e,t){e=e.replace(",",".");let n=e.split("T"),i,o=1,r=1,s=0,a=0,c=0,l=0,f=n[0],d=n[1],p,g;if(n=f.match(fCe),n!==null)i=+n[1],o=+n[2],r=+n[3];else if(n=f.match(cCe),n!==null)i=+n[1],o=+n[2];else if(n=f.match(aCe),n!==null)i=+n[1];else{let T;if(n=f.match(lCe),n!==null)i=+n[1],T=+n[2],g=Jm(i);else if(n=f.match(uCe),n!==null){i=+n[1];let A=+n[2],C=+n[3]||0,S=new Date(Date.UTC(i,0,4));T=A*7+C-S.getUTCDay()-3}p=new Date(Date.UTC(i,0,1)),p.setUTCDate(T),o=p.getUTCMonth()+1,r=p.getUTCDate()}g=Jm(i);let m;if(u(d)){n=d.match(mCe),n!==null?(s=+n[1],a=+n[2],c=+n[3],l=+(n[4]||0)*1e3,m=5):(n=d.match(hCe),n!==null?(s=+n[1],a=+n[2],c=+(n[3]||0)*60,m=4):(n=d.match(dCe),n!==null&&(s=+n[1],a=+(n[2]||0)*60,m=3)));let T=n[m],A=+n[m+1],C=+(n[m+2]||0);switch(T){case"+":s=s-A,a=a-C;break;case"-":s=s+A,a=a+C;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?zH:VH[o-1];r>p;)r-=p,o++,o>12&&(o-=12,i++),p=g&&o===2?zH:VH[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?zH:VH[o-1],r+=p;let b=GH(i,o,r,s,a,c,l);return u(t)?(ng(b[0],b[1],t),V3(t)):t=new Ct(b[0],b[1],Xn.UTC),x&&Ct.addSeconds(t,1,t),t};Ct.now=function(e){return Ct.fromDate(new Date,e)};var U3=new Ct(0,0,Xn.TAI);Ct.toGregorianDate=function(e,t){let n=!1,i=T$(e,U3);u(i)||(Ct.addSeconds(e,-1,U3),i=T$(U3,U3),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 l=80*s/2447|0,f=s-(2447*l/80|0)|0;s=l/11|0;let d=l+2-12*s|0,p=100*(a-49)+c+s|0,g=r/Zn.SECONDS_PER_HOUR|0,m=r-g*Zn.SECONDS_PER_HOUR,x=m/Zn.SECONDS_PER_MINUTE|0;m=m-x*Zn.SECONDS_PER_MINUTE;let b=m|0,T=(m-b)/Zn.SECONDS_PER_MILLISECOND;return g+=12,g>23&&(g-=24),n&&(b+=1),u(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 Qm(p,d,f,g,x,b,T,n)};Ct.toDate=function(e){let t=Ct.toGregorianDate(e,A$),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))};Ct.toIso8601=function(e,t){let n=Ct.toGregorianDate(e,A$),i=n.year,o=n.month,r=n.day,s=n.hour,a=n.minute,c=n.second,l=n.millisecond;i===1e4&&o===1&&r===1&&s===0&&a===0&&c===0&&l===0&&(i=9999,o=12,r=31,s=24);let f;return!u(t)&&l!==0?(f=(l*.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`):!u(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=(l*.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`)};Ct.clone=function(e,t){if(u(e))return u(t)?(t.dayNumber=e.dayNumber,t.secondsOfDay=e.secondsOfDay,t):new Ct(e.dayNumber,e.secondsOfDay,Xn.TAI)};Ct.compare=function(e,t){let n=e.dayNumber-t.dayNumber;return n!==0?n:e.secondsOfDay-t.secondsOfDay};Ct.equals=function(e,t){return e===t||u(e)&&u(t)&&e.dayNumber===t.dayNumber&&e.secondsOfDay===t.secondsOfDay};Ct.equalsEpsilon=function(e,t,n){return n=y(n,0),e===t||u(e)&&u(t)&&Math.abs(Ct.secondsDifference(e,t))<=n};Ct.totalDays=function(e){return e.dayNumber+e.secondsOfDay/Zn.SECONDS_PER_DAY};Ct.secondsDifference=function(e,t){return(e.dayNumber-t.dayNumber)*Zn.SECONDS_PER_DAY+(e.secondsOfDay-t.secondsOfDay)};Ct.daysDifference=function(e,t){let n=e.dayNumber-t.dayNumber,i=(e.secondsOfDay-t.secondsOfDay)/Zn.SECONDS_PER_DAY;return n+i};Ct.computeTaiMinusUtc=function(e){JT.julianDate=e;let t=Ct.leapSeconds,n=Do(t,JT,HH);return n<0&&(n=~n,--n,n<0&&(n=0)),t[n].offset};Ct.addSeconds=function(e,t,n){return ng(e.dayNumber,e.secondsOfDay+t,n)};Ct.addMinutes=function(e,t,n){let i=e.secondsOfDay+t*Zn.SECONDS_PER_MINUTE;return ng(e.dayNumber,i,n)};Ct.addHours=function(e,t,n){let i=e.secondsOfDay+t*Zn.SECONDS_PER_HOUR;return ng(e.dayNumber,i,n)};Ct.addDays=function(e,t,n){let i=e.dayNumber+t;return ng(i,e.secondsOfDay,n)};Ct.lessThan=function(e,t){return Ct.compare(e,t)<0};Ct.lessThanOrEquals=function(e,t){return Ct.compare(e,t)<=0};Ct.greaterThan=function(e,t){return Ct.compare(e,t)>0};Ct.greaterThanOrEquals=function(e,t){return Ct.compare(e,t)>=0};Ct.prototype.clone=function(e){return Ct.clone(this,e)};Ct.prototype.equals=function(e){return Ct.equals(this,e)};Ct.prototype.equalsEpsilon=function(e,t){return Ct.equalsEpsilon(this,e,t)};Ct.prototype.toString=function(){return Ct.toIso8601(this)};Ct.leapSeconds=[new Ui(new Ct(2441317,43210,Xn.TAI),10),new Ui(new Ct(2441499,43211,Xn.TAI),11),new Ui(new Ct(2441683,43212,Xn.TAI),12),new Ui(new Ct(2442048,43213,Xn.TAI),13),new Ui(new Ct(2442413,43214,Xn.TAI),14),new Ui(new Ct(2442778,43215,Xn.TAI),15),new Ui(new Ct(2443144,43216,Xn.TAI),16),new Ui(new Ct(2443509,43217,Xn.TAI),17),new Ui(new Ct(2443874,43218,Xn.TAI),18),new Ui(new Ct(2444239,43219,Xn.TAI),19),new Ui(new Ct(2444786,43220,Xn.TAI),20),new Ui(new Ct(2445151,43221,Xn.TAI),21),new Ui(new Ct(2445516,43222,Xn.TAI),22),new Ui(new Ct(2446247,43223,Xn.TAI),23),new Ui(new Ct(2447161,43224,Xn.TAI),24),new Ui(new Ct(2447892,43225,Xn.TAI),25),new Ui(new Ct(2448257,43226,Xn.TAI),26),new Ui(new Ct(2448804,43227,Xn.TAI),27),new Ui(new Ct(2449169,43228,Xn.TAI),28),new Ui(new Ct(2449534,43229,Xn.TAI),29),new Ui(new Ct(2450083,43230,Xn.TAI),30),new Ui(new Ct(2450630,43231,Xn.TAI),31),new Ui(new Ct(2451179,43232,Xn.TAI),32),new Ui(new Ct(2453736,43233,Xn.TAI),33),new Ui(new Ct(2454832,43234,Xn.TAI),34),new Ui(new Ct(2456109,43235,Xn.TAI),35),new Ui(new Ct(2457204,43236,Xn.TAI),36),new Ui(new Ct(2457754,43237,Xn.TAI),37)];var J=Ct;var H$=ro(Yl(),1);function pCe(e){return(e.length===0||e[e.length-1]!=="/")&&(e=`${e}/`),e}var fw=pCe;function I$(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=I$(o,t)),n[i]=o}return n}var He=I$;function P$(e,t,n){n=y(n,!1);let i={},o=u(e),r=u(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]=P$(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 gt=P$;function _Ce(){let e,t,n=new Promise(function(i,o){e=i,t=o});return{resolve:e,reject:t,promise:n}}var cl=_Ce;var O$=ro(Yl(),1);function jH(e,t){let n;return typeof document<"u"&&(n=document),jH._implementation(e,t,n)}jH._implementation=function(e,t,n){if(!u(t)){if(typeof n>"u")return e;t=y(n.baseURI,n.location.href)}let i=new O$.default(e);return i.scheme()!==""?i.toString():i.absoluteTo(t).toString()};var Rh=jH;var R$=ro(Yl(),1);function gCe(e,t){let n="",i=e.lastIndexOf("/");return i!==-1&&(n=e.substring(0,i+1)),t&&(e=new R$.default(e),e.query().length!==0&&(n+=`?${e.query()}`),e.fragment().length!==0&&(n+=`#${e.fragment()}`)),n}var dw=gCe;var M$=ro(Yl(),1);function yCe(e){let t=new M$.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 E0=yCe;var L$={};function xCe(e,t,n){u(t)||(t=e.width),u(n)||(n=e.height);let i=L$[t];u(i)||(i={},L$[t]=i);let o=i[n];if(!u(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 ad=xCe;var bCe=/^blob:/i;function TCe(e){return bCe.test(e)}var S0=TCe;var Mh;function ACe(e){u(Mh)||(Mh=document.createElement("a")),Mh.href=window.location.href;let t=Mh.host,n=Mh.protocol;return Mh.href=e,Mh.href=Mh.href,n!==Mh.protocol||t!==Mh.host}var w0=ACe;var CCe=/^data:/i;function ECe(e){return CCe.test(e)}var ep=ECe;function SCe(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 v0=SCe;function wCe(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 D0=wCe;function vCe(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];u(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 Xl=vCe;var DCe={UNISSUED:0,ISSUED:1,ACTIVE:2,RECEIVED:3,CANCELLED:4,FAILED:5},Jn=Object.freeze(DCe);var ICe={TERRAIN:0,IMAGERY:1,TILES3D:2,OTHER:3},Jr=Object.freeze(ICe);function W3(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,Jr.OTHER),this.serverKey=e.serverKey,this.state=Jn.UNISSUED,this.deferred=void 0,this.cancelled=!1}W3.prototype.cancel=function(){this.cancelled=!0};W3.prototype.clone=function(e){return u(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=Jn.UNISSUED,e.deferred=void 0,e.cancelled=!1,e):new W3(this)};var Go=W3;function PCe(e){let t={};if(!e)return t;let n=e.split(`\r
  92. `);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 hw=PCe;function N$(e,t,n){this.statusCode=e,this.response=t,this.responseHeaders=n,typeof this.responseHeaders=="string"&&(this.responseHeaders=hw(this.responseHeaders))}N$.prototype.toString=function(){let e="Request has failed.";return u(this.statusCode)&&(e+=` Status Code: ${this.statusCode}`),e};var Lh=N$;var j3=ro(Yl(),1);function mw(){this._listeners=[],this._scopes=[],this._toRemove=[],this._insideRaiseEvent=!1}Object.defineProperties(mw.prototype,{numberOfListeners:{get:function(){return this._listeners.length-this._toRemove.length}}});mw.prototype.addEventListener=function(e,t){this._listeners.push(e),this._scopes.push(t);let n=this;return function(){n.removeEventListener(e,t)}};mw.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 OCe(e,t){return t-e}mw.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];u(r)&&t[e].apply(n[e],arguments)}let o=this._toRemove;if(i=o.length,i>0){for(o.sort(OCe),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=mw;function I0(e){this._comparator=e.comparator,this._array=[],this._length=0,this._maximumLength=void 0}Object.defineProperties(I0.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 qH(e,t,n){let i=e[t];e[t]=e[n],e[n]=i}I0.prototype.reserve=function(e){e=y(e,this._length),this._array.length=e};I0.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?(qH(i,o,e),e=o):r=!1}};I0.prototype.resort=function(){let e=this._length;for(let t=Math.ceil(e/2);t>=0;--t)this.heapify(t)};I0.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)qH(t,o,s),o=s;else break}let r;return u(i)&&this._length>i&&(r=t[i],this._length=i),r};I0.prototype.pop=function(e){if(e=y(e,0),this._length===0)return;let t=this._array,n=t[e];return qH(t,e,--this._length),this.heapify(e),t[this._length]=void 0,n};var pw=I0;function RCe(e,t){return e.priority-t.priority}var Ji={numberOfAttemptedRequests:0,numberOfActiveRequests:0,numberOfCancelledRequests:0,numberOfCancelledActiveRequests:0,numberOfFailedRequests:0,numberOfActiveRequestsEver:0,lastNumberOfActiveRequests:0},nA=20,ka=new pw({comparator:RCe});ka.maximumLength=nA;ka.reserve(nA);var Nh=[],tp={},MCe=typeof document<"u"?new j3.default(document.location.href):new j3.default,q3=new pe;function Wo(){}Wo.maximumRequests=50;Wo.maximumRequestsPerServer=6;Wo.requestsByServer={"api.cesium.com:443":18,"assets.ion.cesium.com:443":18,"ibasemaps-api.arcgis.com:443":18,"tile.googleapis.com:443":18,"tile.openstreetmap.org:443":18};Wo.throttleRequests=!0;Wo.debugShowStatistics=!1;Wo.requestCompletedEvent=q3;Object.defineProperties(Wo,{statistics:{get:function(){return Ji}},priorityHeapLength:{get:function(){return nA},set:function(e){if(e<nA)for(;ka.length>e;){let t=ka.pop();P0(t)}nA=e,ka.maximumLength=e,ka.reserve(e)}}});function F$(e){u(e.priorityFunction)&&(e.priority=e.priorityFunction())}Wo.serverHasOpenSlots=function(e,t){t=y(t,1);let n=y(Wo.requestsByServer[e],Wo.maximumRequestsPerServer);return tp[e]+t<=n};Wo.heapHasOpenSlots=function(e){return ka.length+e<=nA};function B$(e){return e.state===Jn.UNISSUED&&(e.state=Jn.ISSUED,e.deferred=cl()),e.deferred.promise}function LCe(e){return function(t){if(e.state===Jn.CANCELLED)return;let n=e.deferred;--Ji.numberOfActiveRequests,--tp[e.serverKey],q3.raiseEvent(),e.state=Jn.RECEIVED,e.deferred=void 0,n.resolve(t)}}function NCe(e){return function(t){e.state!==Jn.CANCELLED&&(++Ji.numberOfFailedRequests,--Ji.numberOfActiveRequests,--tp[e.serverKey],q3.raiseEvent(t),e.state=Jn.FAILED,e.deferred.reject(t))}}function k$(e){let t=B$(e);return e.state=Jn.ACTIVE,Nh.push(e),++Ji.numberOfActiveRequests,++Ji.numberOfActiveRequestsEver,++tp[e.serverKey],e.requestFunction().then(LCe(e)).catch(NCe(e)),t}function P0(e){let t=e.state===Jn.ACTIVE;if(e.state=Jn.CANCELLED,++Ji.numberOfCancelledRequests,u(e.deferred)){let n=e.deferred;e.deferred=void 0,n.reject()}t&&(--Ji.numberOfActiveRequests,--tp[e.serverKey],++Ji.numberOfCancelledActiveRequests),u(e.cancelFunction)&&e.cancelFunction()}Wo.update=function(){let e,t,n=0,i=Nh.length;for(e=0;e<i;++e){if(t=Nh[e],t.cancelled&&P0(t),t.state!==Jn.ACTIVE){++n;continue}n>0&&(Nh[e-n]=t)}Nh.length-=n;let o=ka.internalArray,r=ka.length;for(e=0;e<r;++e)F$(o[e]);ka.resort();let s=Math.max(Wo.maximumRequests-Nh.length,0),a=0;for(;a<s&&ka.length>0;){if(t=ka.pop(),t.cancelled){P0(t);continue}if(t.throttleByServer&&!Wo.serverHasOpenSlots(t.serverKey)){P0(t);continue}k$(t),++a}FCe()};Wo.getServerKey=function(e){let t=new j3.default(e);t.scheme()===""&&(t=t.absoluteTo(MCe),t.normalize());let n=t.authority();/:/.test(n)||(n=`${n}:${t.scheme()==="https"?"443":"80"}`);let i=tp[n];return u(i)||(tp[n]=0),n};Wo.request=function(e){if(ep(e.url)||S0(e.url))return q3.raiseEvent(),e.state=Jn.RECEIVED,e.requestFunction();if(++Ji.numberOfAttemptedRequests,u(e.serverKey)||(e.serverKey=Wo.getServerKey(e.url)),Wo.throttleRequests&&e.throttleByServer&&!Wo.serverHasOpenSlots(e.serverKey))return;if(!Wo.throttleRequests||!e.throttle)return k$(e);if(Nh.length>=Wo.maximumRequests)return;F$(e);let t=ka.insert(e);if(u(t)){if(t===e)return;P0(t)}return B$(e)};function FCe(){Wo.debugShowStatistics&&(Ji.numberOfActiveRequests===0&&Ji.lastNumberOfActiveRequests>0&&(Ji.numberOfAttemptedRequests>0&&(console.log(`Number of attempted requests: ${Ji.numberOfAttemptedRequests}`),Ji.numberOfAttemptedRequests=0),Ji.numberOfCancelledRequests>0&&(console.log(`Number of cancelled requests: ${Ji.numberOfCancelledRequests}`),Ji.numberOfCancelledRequests=0),Ji.numberOfCancelledActiveRequests>0&&(console.log(`Number of cancelled active requests: ${Ji.numberOfCancelledActiveRequests}`),Ji.numberOfCancelledActiveRequests=0),Ji.numberOfFailedRequests>0&&(console.log(`Number of failed requests: ${Ji.numberOfFailedRequests}`),Ji.numberOfFailedRequests=0)),Ji.lastNumberOfActiveRequests=Ji.numberOfActiveRequests)}Wo.clearForSpecs=function(){for(;ka.length>0;){let t=ka.pop();P0(t)}let e=Nh.length;for(let t=0;t<e;++t)P0(Nh[t]);Nh.length=0,tp={},Ji.numberOfAttemptedRequests=0,Ji.numberOfActiveRequests=0,Ji.numberOfCancelledRequests=0,Ji.numberOfCancelledActiveRequests=0,Ji.numberOfFailedRequests=0,Ji.numberOfActiveRequestsEver=0,Ji.lastNumberOfActiveRequests=0};Wo.numberOfActiveRequestsByServer=function(e){return tp[e]};Wo.requestHeap=ka;var Ua=Wo;var U$=ro(Yl(),1);var _w={},iA={};_w.add=function(e,t){let n=`${e.toLowerCase()}:${t}`;u(iA[n])||(iA[n]=!0)};_w.remove=function(e,t){let n=`${e.toLowerCase()}:${t}`;u(iA[n])&&delete iA[n]};function BCe(e){let t=new U$.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}}_w.contains=function(e){let t=BCe(e);return!!(u(t)&&u(iA[t]))};_w.clear=function(){iA={}};var oA=_w;var G$=function(){try{let e=new XMLHttpRequest;return e.open("GET","#",!0),e.responseType="blob",e.responseType==="blob"}catch{return!1}}();function At(e){e=y(e,y.EMPTY_OBJECT),typeof e=="string"&&(e={url:e}),this._url=void 0,this._templateValues=Fh(e.templateValues,{}),this._queryParameters=Fh(e.queryParameters,{}),this.headers=Fh(e.headers,{}),this.request=y(e.request,new Go),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 Fh(e,t){return u(e)?He(e):t}At.createIfNeeded=function(e){return e instanceof At?e.getDerivedResource({request:e.request}):typeof e!="string"?e:new At({url:e})};var rA;At.supportsImageBitmapOptions=function(){if(u(rA))return rA;if(typeof createImageBitmap!="function")return rA=Promise.resolve(!1),rA;let e="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAABGdBTUEAAE4g3rEiDgAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAADElEQVQI12Ng6GAAAAEUAIngE3ZiAAAAAElFTkSuQmCC";return rA=At.fetchBlob({url:e}).then(function(t){let n={imageOrientation:"flipY",premultiplyAlpha:"none",colorSpaceConversion:"none"};return Promise.all([createImageBitmap(t,n),createImageBitmap(t)])}).then(function(t){let n=ad(t[0]),i=ad(t[1]);return n[1]!==i[1]}).catch(function(){return!1}),rA};Object.defineProperties(At,{isBlobSupported:{get:function(){return G$}}});Object.defineProperties(At.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 E0(this._url)}},isDataUri:{get:function(){return ep(this._url)}},isBlobUri:{get:function(){return S0(this._url)}},isCrossOriginUrl:{get:function(){return w0(this._url)}},hasHeaders:{get:function(){return Object.keys(this.headers).length>0}},credits:{get:function(){return this._credits}}});At.prototype.toString=function(){return this.getUrlComponent(!0,!0)};At.prototype.parseUrl=function(e,t,n,i){let o=new H$.default(e),r=kCe(o.query());this._queryParameters=t?X3(r,this.queryParameters,n):r,o.search(""),o.fragment(""),u(i)&&o.scheme()===""&&(o=o.absoluteTo(Rh(i))),this._url=o.toString()};function kCe(e){return e.length===0?{}:e.indexOf("=")===-1?{[e]:void 0}:Xl(e)}function X3(e,t,n){if(!n)return gt(e,t);let i=He(e,!0);for(let o in t)if(t.hasOwnProperty(o)){let r=i[o],s=t[o];u(r)?(Array.isArray(r)||(r=i[o]=[r]),i[o]=r.concat(s)):i[o]=Array.isArray(s)?s.slice():s}return i}At.prototype.getUrlComponent=function(e,t){if(this.isDataUri)return this._url;let n=this._url;e&&(n=`${n}${UCe(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 u(s)?encodeURIComponent(s):o})),t&&u(this.proxy)&&(n=this.proxy.getURL(n)),n};function UCe(e){let t=Object.keys(e);return t.length===0?"":t.length===1&&!u(e[t[0]])?`?${t[0]}`:`?${D0(e)}`}At.prototype.setQueryParameters=function(e,t){t?this._queryParameters=X3(this._queryParameters,e,!1):this._queryParameters=X3(e,this._queryParameters,!1)};At.prototype.appendQueryParameters=function(e){this._queryParameters=X3(e,this._queryParameters,!0)};At.prototype.setTemplateValues=function(e,t){t?this._templateValues=gt(this._templateValues,e):this._templateValues=gt(e,this._templateValues)};At.prototype.getDerivedResource=function(e){let t=this.clone();if(t._retryCount=0,u(e.url)){let n=y(e.preserveQueryParameters,!1);t.parseUrl(e.url,!0,n,this._url)}return u(e.queryParameters)&&(t._queryParameters=gt(e.queryParameters,t.queryParameters)),u(e.templateValues)&&(t._templateValues=gt(e.templateValues,t.templateValues)),u(e.headers)&&(t.headers=gt(e.headers,t.headers)),u(e.proxy)&&(t.proxy=e.proxy),u(e.request)&&(t.request=e.request),u(e.retryCallback)&&(t.retryCallback=e.retryCallback),u(e.retryAttempts)&&(t.retryAttempts=e.retryAttempts),t};At.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})};At.prototype.clone=function(e){return u(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 At({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:u(this.credits)?this.credits.slice():void 0})};At.prototype.getBaseUri=function(e){return dw(this.getUrlComponent(e),e)};At.prototype.appendForwardSlash=function(){this._url=fw(this._url)};At.prototype.fetchArrayBuffer=function(){return this.fetch({responseType:"arraybuffer"})};At.fetchArrayBuffer=function(e){return new At(e).fetchArrayBuffer()};At.prototype.fetchBlob=function(){return this.fetch({responseType:"blob"})};At.fetchBlob=function(e){return new At(e).fetchBlob()};At.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(XH(this.request),!G$||this.isDataUri||this.isBlobUri||!this.hasHeaders&&!n)return YH({resource:this,flipY:i,skipColorSpaceConversion:o,preferImageBitmap:t});let r=this.fetchBlob();if(!u(r))return;let s,a,c,l;return At.supportsImageBitmapOptions().then(function(f){return s=f,a=s&&t,r}).then(function(f){if(!u(f))return;if(l=f,a)return At.createImageBitmapFromBlob(f,{flipY:i,premultiplyAlpha:!1,skipColorSpaceConversion:o});let d=window.URL.createObjectURL(f);return c=new At({url:d}),YH({resource:c,flipY:i,skipColorSpaceConversion:o,preferImageBitmap:!1})}).then(function(f){if(u(f))return f.blob=l,a||window.URL.revokeObjectURL(c.url),f}).catch(function(f){return u(c)&&window.URL.revokeObjectURL(c.url),f.blob=l,Promise.reject(f)})};function YH(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=cl();return At._Implementations.createImage(r,a,c,n,i,o),c.promise};let s=Ua.request(r);if(u(s))return s.catch(function(a){return r.state!==Jn.FAILED?Promise.reject(a):t.retryOnError(a).then(function(c){return c?(r.state=Jn.UNISSUED,r.deferred=void 0,YH({resource:t,flipY:n,skipColorSpaceConversion:i,preferImageBitmap:o})):Promise.reject(a)})})}At.fetchImage=function(e){return new At(e).fetchImage({flipY:e.flipY,skipColorSpaceConversion:e.skipColorSpaceConversion,preferBlob:e.preferBlob,preferImageBitmap:e.preferImageBitmap})};At.prototype.fetchText=function(){return this.fetch({responseType:"text"})};At.fetchText=function(e){return new At(e).fetchText()};At.prototype.fetchJson=function(){let e=this.fetch({responseType:"text",headers:{Accept:"application/json,*/*;q=0.01"}});if(u(e))return e.then(function(t){if(u(t))return JSON.parse(t)})};At.fetchJson=function(e){return new At(e).fetchJson()};At.prototype.fetchXML=function(){return this.fetch({responseType:"document",overrideMimeType:"text/xml"})};At.fetchXML=function(e){return new At(e).fetchXML()};At.prototype.fetchJsonp=function(e){e=y(e,"callback"),XH(this.request);let t;do t=`loadJsonp${P.nextRandomNumber().toString().substring(2,8)}`;while(u(window[t]));return W$(this,e,t)};function W$(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=cl();return window[n]=function(c){a.resolve(c);try{delete window[n]}catch{window[n]=void 0}},At._Implementations.loadAndExecuteScript(r,n,a),a.promise};let s=Ua.request(o);if(u(s))return s.catch(function(a){return o.state!==Jn.FAILED?Promise.reject(a):e.retryOnError(a).then(function(c){return c?(o.state=Jn.UNISSUED,o.deferred=void 0,W$(e,t,n)):Promise.reject(a)})})}At.fetchJsonp=function(e){return new At(e).fetchJsonp(e.callbackParameterName)};At.prototype._makeRequest=function(e){let t=this;XH(t.request);let n=t.request,i=t.url;n.url=i,n.requestFunction=function(){let r=e.responseType,s=gt(e.headers,t.headers),a=e.overrideMimeType,c=e.method,l=e.data,f=cl(),d=At._Implementations.loadWithXhr(i,r,c,l,s,f,a);return u(d)&&u(d.abort)&&(n.cancelFunction=function(){d.abort()}),f.promise};let o=Ua.request(n);if(u(o))return o.then(function(r){return n.cancelFunction=void 0,r}).catch(function(r){return n.cancelFunction=void 0,n.state!==Jn.FAILED?Promise.reject(r):t.retryOnError(r).then(function(s){return s?(n.state=Jn.UNISSUED,n.deferred=void 0,t.fetch(e)):Promise.reject(r)})})};function XH(e){if(e.state===Jn.ISSUED||e.state===Jn.ACTIVE)throw new ue("The Resource is already being fetched.");e.state=Jn.UNISSUED,e.deferred=void 0}var VCe=/^data:(.*?)(;base64)?,(.*)$/;function Y3(e,t){let n=decodeURIComponent(t);return e?atob(n):n}function V$(e,t){let n=Y3(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 zCe(e,t){t=y(t,"");let n=e[1],i=!!e[2],o=e[3],r,s;switch(t){case"":case"text":return Y3(i,o);case"arraybuffer":return V$(i,o);case"blob":return r=V$(i,o),new Blob([r],{type:n});case"document":return s=new DOMParser,s.parseFromString(Y3(i,o),n);case"json":return JSON.parse(Y3(i,o));default:}}At.prototype.fetch=function(e){return e=Fh(e,{}),e.method="GET",this._makeRequest(e)};At.fetch=function(e){return new At(e).fetch({responseType:e.responseType,overrideMimeType:e.overrideMimeType})};At.prototype.delete=function(e){return e=Fh(e,{}),e.method="DELETE",this._makeRequest(e)};At.delete=function(e){return new At(e).delete({responseType:e.responseType,overrideMimeType:e.overrideMimeType,data:e.data})};At.prototype.head=function(e){return e=Fh(e,{}),e.method="HEAD",this._makeRequest(e)};At.head=function(e){return new At(e).head({responseType:e.responseType,overrideMimeType:e.overrideMimeType})};At.prototype.options=function(e){return e=Fh(e,{}),e.method="OPTIONS",this._makeRequest(e)};At.options=function(e){return new At(e).options({responseType:e.responseType,overrideMimeType:e.overrideMimeType})};At.prototype.post=function(e,t){return sl.defined("data",e),t=Fh(t,{}),t.method="POST",t.data=e,this._makeRequest(t)};At.post=function(e){return new At(e).post(e.data,{responseType:e.responseType,overrideMimeType:e.overrideMimeType})};At.prototype.put=function(e,t){return sl.defined("data",e),t=Fh(t,{}),t.method="PUT",t.data=e,this._makeRequest(t)};At.put=function(e){return new At(e).put(e.data,{responseType:e.responseType,overrideMimeType:e.overrideMimeType})};At.prototype.patch=function(e,t){return sl.defined("data",e),t=Fh(t,{}),t.method="PATCH",t.data=e,this._makeRequest(t)};At.patch=function(e){return new At(e).patch(e.data,{responseType:e.responseType,overrideMimeType:e.overrideMimeType})};At._Implementations={};At._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&&(oA.contains(e)?i.crossOrigin="use-credentials":i.crossOrigin=""),i.src=e};At._Implementations.createImage=function(e,t,n,i,o,r){let s=e.url;At.supportsImageBitmapOptions().then(function(a){if(!(a&&r)){At._Implementations.loadImageElement(s,t,n);return}let c="blob",l="GET",f=cl(),d=At._Implementations.loadWithXhr(s,c,l,void 0,void 0,f,void 0,void 0,void 0);return u(d)&&u(d.abort)&&(e.cancelFunction=function(){d.abort()}),f.promise.then(function(p){if(!u(p)){n.reject(new ue(`Successfully retrieved ${s} but it contained no content.`));return}return At.createImageBitmapFromBlob(p,{flipY:i,premultiplyAlpha:!1,skipColorSpaceConversion:o})}).then(function(p){n.resolve(p)})}).catch(function(a){n.reject(a)})};At.createImageBitmapFromBlob=function(e,t){return sl.defined("options",t),sl.typeOf.bool("options.flipY",t.flipY),sl.typeOf.bool("options.premultiplyAlpha",t.premultiplyAlpha),sl.typeOf.bool("options.skipColorSpaceConversion",t.skipColorSpaceConversion),createImageBitmap(e,{imageOrientation:t.flipY?"flipY":"none",premultiplyAlpha:t.premultiplyAlpha?"premultiply":"none",colorSpaceConversion:t.skipColorSpaceConversion?"none":"default"})};function z$(e,t){switch(t){case"text":return e.toString("utf8");case"json":return JSON.parse(e.toString("utf8"));default:return new Uint8Array(e).buffer}}function HCe(e,t,n,i,o,r,s){let a,c;Promise.all([import("url"),import("zlib")]).then(([l,f])=>(a=l.parse(e),c=f,a.protocol==="https:"?import("https"):import("http"))).then(l=>{let f={protocol:a.protocol,hostname:a.hostname,port:a.port,path:a.path,query:a.query,method:n,headers:o};l.request(f).on("response",function(d){if(d.statusCode<200||d.statusCode>=300){r.reject(new Lh(d.statusCode,d,d.headers));return}let p=[];d.on("data",function(g){p.push(g)}),d.on("end",function(){let g=Buffer.concat(p);d.headers["content-encoding"]==="gzip"?c.gunzip(g,function(m,x){m?r.reject(new ue("Error decompressing response.")):r.resolve(z$(x,t))}):r.resolve(z$(g,t))})}).on("error",function(d){r.reject(new Lh)}).end()})}var GCe=typeof XMLHttpRequest>"u";At._Implementations.loadWithXhr=function(e,t,n,i,o,r,s){let a=VCe.exec(e);if(a!==null){r.resolve(zCe(a,t));return}if(GCe){HCe(e,t,n,i,o,r,s);return}let c=new XMLHttpRequest;if(oA.contains(e)&&(c.withCredentials=!0),c.open(n,e,!0),u(s)&&u(c.overrideMimeType)&&c.overrideMimeType(s),u(o))for(let f in o)o.hasOwnProperty(f)&&c.setRequestHeader(f,o[f]);u(t)&&(c.responseType=t);let l=!1;return typeof e=="string"&&(l=e.indexOf("file://")===0||typeof window<"u"&&window.location.origin==="file://"),c.onload=function(){if((c.status<200||c.status>=300)&&!(l&&c.status===0)){r.reject(new Lh(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();else if(u(f)&&(!u(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")&&u(c.responseXML)&&c.responseXML.hasChildNodes()?r.resolve(c.responseXML):(d===""||d==="text")&&u(c.responseText)?r.resolve(c.responseText):r.reject(new ue("Invalid XMLHttpRequest response type."))},c.onerror=function(f){r.reject(new Lh)},c.send(i),c};At._Implementations.loadAndExecuteScript=function(e,t,n){return v0(e,t).catch(function(i){n.reject(i)})};At._DefaultImplementations={};At._DefaultImplementations.createImage=At._Implementations.createImage;At._DefaultImplementations.loadWithXhr=At._Implementations.loadWithXhr;At._DefaultImplementations.loadAndExecuteScript=At._Implementations.loadAndExecuteScript;At.DEFAULT=Object.freeze(new At({url:typeof document>"u"?"":document.location.href.split("?")[0]}));var ve=At;function yw(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),u(e.data)?j$(this,e.data):j$(this,{columnNames:["dateIso8601","modifiedJulianDateUtc","xPoleWanderRadians","yPoleWanderRadians","ut1MinusUtcSeconds","lengthOfDayCorrectionSeconds","xCelestialPoleOffsetRadians","yCelestialPoleOffsetRadians","taiMinusUtcSeconds"],samples:[]})}yw.fromUrl=async function(e,t){t=y(t,y.EMPTY_OBJECT);let n=ve.createIfNeeded(e),i;try{i=await n.fetchJson()}catch{throw new ue(`An error occurred while retrieving the EOP data from the URL ${n.url}.`)}return new yw({addNewLeapSeconds:t.addNewLeapSeconds,data:i})};yw.NONE=Object.freeze({compute:function(e,t){return u(t)?(t.xPoleWander=0,t.yPoleWander=0,t.xPoleOffset=0,t.yPoleOffset=0,t.ut1MinusUtc=0):t=new tg(0,0,0,0,0),t}});yw.prototype.compute=function(e,t){if(!u(this._samples))return;if(u(t)||(t=new tg(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(u(i)){let a=n[i],c=n[i+1],l=J.lessThanOrEquals(a,e),f=!u(c),d=f||J.greaterThanOrEquals(c,e);if(l&&d)return o=i,!f&&c.equals(e)&&++o,r=o+1,Y$(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,Y$(this,n,this._samples,e,o,r,t),t};function WCe(e,t){return J.compare(e.julianDate,t)}function j$(e,t){if(!u(t.columnNames))throw new ue("Error in loaded EOP data: The columnNames property is required.");if(!u(t.samples))throw new ue("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 ue("Error in loaded EOP data: The columnNames property must include modifiedJulianDateUtc, xPoleWanderRadians, yPoleWanderRadians, ut1MinusUtcSeconds, xCelestialPoleOffsetRadians, yCelestialPoleOffsetRadians, and taiMinusUtcSeconds columns");let l=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=l.length;g<m;g+=e._columnCount){let x=l[g+n],b=l[g+c],T=x+Zn.MODIFIED_JULIAN_DATE_DIFFERENCE,A=new J(T,b,Xn.TAI);if(f.push(A),p){if(b!==d&&u(d)){let C=J.leapSeconds,S=Do(C,A,WCe);if(S<0){let w=new Ui(A,b);C.splice(~S,0,w)}}d=b}}}function q$(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 gw(e,t,n){return t+e*(n-t)}function Y$(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],l=t[r];if(c.equals(l)||i.equals(c))return q$(e,n,o,a,s),s;if(i.equals(l))return q$(e,n,r,a,s),s;let f=J.secondsDifference(i,c)/J.secondsDifference(l,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&&(l.equals(i)?g=m:m-=T-b)}return s.xPoleWander=gw(f,n[d+e._xPoleWanderRadiansColumn],n[p+e._xPoleWanderRadiansColumn]),s.yPoleWander=gw(f,n[d+e._yPoleWanderRadiansColumn],n[p+e._yPoleWanderRadiansColumn]),s.xPoleOffset=gw(f,n[d+e._xCelestialPoleOffsetRadiansColumn],n[p+e._xCelestialPoleOffsetRadiansColumn]),s.yPoleOffset=gw(f,n[d+e._yCelestialPoleOffsetRadiansColumn],n[p+e._yCelestialPoleOffsetRadiansColumn]),s.ut1MinusUtc=gw(f,g,m),s}var xw=yw;function Va(e,t,n){this.heading=y(e,0),this.pitch=y(t,0),this.roll=y(n,0)}Va.fromQuaternion=function(e,t){u(t)||(t=new Va);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=-P.asinClamped(n),t};Va.fromDegrees=function(e,t,n,i){return u(i)||(i=new Va),i.heading=e*P.RADIANS_PER_DEGREE,i.pitch=t*P.RADIANS_PER_DEGREE,i.roll=n*P.RADIANS_PER_DEGREE,i};Va.clone=function(e,t){if(u(e))return u(t)?(t.heading=e.heading,t.pitch=e.pitch,t.roll=e.roll,t):new Va(e.heading,e.pitch,e.roll)};Va.equals=function(e,t){return e===t||u(e)&&u(t)&&e.heading===t.heading&&e.pitch===t.pitch&&e.roll===t.roll};Va.equalsEpsilon=function(e,t,n,i){return e===t||u(e)&&u(t)&&P.equalsEpsilon(e.heading,t.heading,n,i)&&P.equalsEpsilon(e.pitch,t.pitch,n,i)&&P.equalsEpsilon(e.roll,t.roll,n,i)};Va.prototype.clone=function(e){return Va.clone(this,e)};Va.prototype.equals=function(e){return Va.equals(this,e)};Va.prototype.equalsEpsilon=function(e,t,n){return Va.equalsEpsilon(this,e,t,n)};Va.prototype.toString=function(){return`(${this.heading}, ${this.pitch}, ${this.roll})`};var za=Va;var X$={},K$=/((?:.*\/)|^)Cesium\.js(?:\?|\#|$)/;function jCe(){let e=document.getElementsByTagName("script");for(let t=0,n=e.length;t<n;++t){let i=e[t].getAttribute("src"),o=K$.exec(i);if(o!==null)return o[1]}}var K3;function Z$(e){return typeof document>"u"?e:(u(K3)||(K3=document.createElement("a")),K3.href=e,K3.href)}var O0;function $$(){if(u(O0))return O0;let e;return typeof CESIUM_BASE_URL<"u"?e=CESIUM_BASE_URL:u(X$?.url)?e=Rh(".",X$.url):typeof define=="object"&&u(define.amd)&&!define.amd.toUrlUndefined&&u(require.toUrl)?e=Rh("..",R0("Core/buildModuleUrl.js")):e=jCe(),O0=new ve({url:Z$(e)}),O0.appendForwardSlash(),O0}function qCe(e){return Z$(require.toUrl(`../${e}`))}function Q$(e){return $$().getDerivedResource({url:e}).url}var Z3;function R0(e){return u(Z3)||(typeof define=="object"&&u(define.amd)&&!define.amd.toUrlUndefined&&u(require.toUrl)?Z3=qCe:Z3=Q$),Z3(e)}R0._cesiumScriptRegex=K$;R0._buildModuleUrlFromBaseUrl=Q$;R0._clearBaseResource=function(){O0=void 0};R0.setBaseUrl=function(e){O0=ve.DEFAULT.getDerivedResource({url:e})};R0.getCesiumBaseUrl=$$;var Zt=R0;function YCe(e,t,n){this.x=e,this.y=t,this.s=n}var M0=YCe;function $H(e){e=y(e,y.EMPTY_OBJECT),this._xysFileUrlTemplate=ve.createIfNeeded(e.xysFileUrlTemplate),this._interpolationOrder=y(e.interpolationOrder,9),this._sampleZeroJulianEphemerisDate=y(e.sampleZeroJulianEphemerisDate,24423965e-1),this._sampleZeroDateTT=new J(this._sampleZeroJulianEphemerisDate,0,Xn.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 XCe=new J(0,0,Xn.TAI);function KH(e,t,n){let i=XCe;return i.dayNumber=t,i.secondsOfDay=n,J.daysDifference(i,e._sampleZeroDateTT)}$H.prototype.preload=function(e,t,n,i){let o=KH(this,e,t),r=KH(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,l=a/this._samplesPerXysFile|0,f=[];for(let d=c;d<=l;++d)f.push(ZH(this,d));return Promise.all(f)};$H.prototype.computeXysRadians=function(e,t,n){let i=KH(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,l=this._samples;if(u(l[s*3])||(ZH(this,s/this._samplesPerXysFile|0),c=!0),u(l[a*3])||(ZH(this,a/this._samplesPerXysFile|0),c=!0),c)return;u(n)?(n.x=0,n.y=0,n.s=0):n=new M0(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]*l[T++],n.y+=g[x]*l[T++],n.s+=g[x]*l[T]}return n};function ZH(e,t){if(e._chunkDownloadsInProgress[t])return e._chunkDownloadsInProgress[t];let n,i=e._xysFileUrlTemplate;u(i)?n=i.getDerivedResource({templateValues:{0:t}}):n=new ve({url:Zt(`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 l=0,f=a.length;l<f;++l)s[c+l]=a[l]});return e._chunkDownloadsInProgress[t]=o,o}var bw=$H;var qi={},QH={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"}},sA={north:[-1,0,0],east:[0,1,0],up:[0,0,1],south:[1,0,0],west:[0,-1,0],down:[0,0,-1]},JH={},ll={east:new h,north:new h,up:new h,west:new h,south:new h,down:new h},ig=new h,og=new h,rg=new h;qi.localFrameToFixedFrameGenerator=function(e,t){if(!QH.hasOwnProperty(e)||!QH[e].hasOwnProperty(t))throw new de("firstAxis and secondAxis must be east, north, up, west, south or down.");let n=QH[e][t],i,o=e+t;return u(JH[o])?i=JH[o]:(i=function(r,s,a){if(u(a)||(a=new F),h.equalsEpsilon(r,h.ZERO,P.EPSILON14))h.unpack(sA[e],0,ig),h.unpack(sA[t],0,og),h.unpack(sA[n],0,rg);else if(P.equalsEpsilon(r.x,0,P.EPSILON14)&&P.equalsEpsilon(r.y,0,P.EPSILON14)){let c=P.sign(r.z);h.unpack(sA[e],0,ig),e!=="east"&&e!=="west"&&h.multiplyByScalar(ig,c,ig),h.unpack(sA[t],0,og),t!=="east"&&t!=="west"&&h.multiplyByScalar(og,c,og),h.unpack(sA[n],0,rg),n!=="east"&&n!=="west"&&h.multiplyByScalar(rg,c,rg)}else{s=y(s,ie.WGS84),s.geodeticSurfaceNormal(r,ll.up);let c=ll.up,l=ll.east;l.x=-r.y,l.y=r.x,l.z=0,h.normalize(l,ll.east),h.cross(c,l,ll.north),h.multiplyByScalar(ll.up,-1,ll.down),h.multiplyByScalar(ll.east,-1,ll.west),h.multiplyByScalar(ll.north,-1,ll.south),ig=ll[e],og=ll[t],rg=ll[n]}return a[0]=ig.x,a[1]=ig.y,a[2]=ig.z,a[3]=0,a[4]=og.x,a[5]=og.y,a[6]=og.z,a[7]=0,a[8]=rg.x,a[9]=rg.y,a[10]=rg.z,a[11]=0,a[12]=r.x,a[13]=r.y,a[14]=r.z,a[15]=1,a},JH[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 KCe=new Le,ZCe=new h(1,1,1),$Ce=new F;qi.headingPitchRollToFixedFrame=function(e,t,n,i,o){i=y(i,qi.eastNorthUpToFixedFrame);let r=Le.fromHeadingPitchRoll(t,KCe),s=F.fromTranslationQuaternionRotationScale(h.ZERO,r,ZCe,$Ce);return o=i(e,n,o),F.multiply(o,s,o)};var QCe=new F,JCe=new Q;qi.headingPitchRollQuaternion=function(e,t,n,i,o){let r=qi.headingPitchRollToFixedFrame(e,t,n,i,QCe),s=F.getMatrix3(r,JCe);return Le.fromRotationMatrix(s,o)};var eEe=new h(1,1,1),tEe=new h,J$=new F,nEe=new F,iEe=new Q,oEe=new Le;qi.fixedFrameToHeadingPitchRoll=function(e,t,n,i){t=y(t,ie.WGS84),n=y(n,qi.eastNorthUpToFixedFrame),u(i)||(i=new za);let o=F.getTranslation(e,tEe);if(h.equals(o,h.ZERO))return i.heading=0,i.pitch=0,i.roll=0,i;let r=F.inverseTransformation(n(o,t,J$),J$),s=F.setScale(e,eEe,nEe);s=F.setTranslation(s,h.ZERO,s),r=F.multiply(r,s,r);let a=Le.fromRotationMatrix(F.getMatrix3(r,iEe),oEe);return a=Le.normalize(a,a),za.fromQuaternion(a,i)};var rEe=6*3600+41*60+50.54841,sEe=8640184812866e-6,aEe=.093104,cEe=-62e-7,lEe=11772758384668e-32,uEe=72921158553e-15,fEe=P.TWO_PI/86400,$3=new J;qi.computeTemeToPseudoFixedMatrix=function(e,t){$3=J.addSeconds(e,-J.computeTaiMinusUtc(e),$3);let n=$3.dayNumber,i=$3.secondsOfDay,o,r=n-2451545;i>=43200?o=(r+.5)/Zn.DAYS_PER_JULIAN_CENTURY:o=(r-.5)/Zn.DAYS_PER_JULIAN_CENTURY;let a=(rEe+o*(sEe+o*(aEe+o*cEe)))*fEe%P.TWO_PI,c=uEe+lEe*(n-24515455e-1),l=(i+Zn.SECONDS_PER_DAY*.5)%Zn.SECONDS_PER_DAY,f=a+c*l,d=Math.cos(f),p=Math.sin(f);return u(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 Q(d,p,0,-p,d,0,0,0,1)};qi.iau2006XysData=new bw;qi.earthOrientationParameters=xw.NONE;var n5=32.184,dEe=2451545;qi.preloadIcrfFixed=function(e){let t=e.start.dayNumber,n=e.start.secondsOfDay+n5,i=e.stop.dayNumber,o=e.stop.secondsOfDay+n5;return qi.iau2006XysData.preload(t,n,i,o)};qi.computeIcrfToFixedMatrix=function(e,t){u(t)||(t=new Q);let n=qi.computeFixedToIcrfMatrix(e,t);if(u(n))return Q.transpose(n,t)};var hEe=new M0(0,0,0),mEe=new tg(0,0,0,0,0,0),e5=new Q,t5=new Q;qi.computeFixedToIcrfMatrix=function(e,t){u(t)||(t=new Q);let n=qi.earthOrientationParameters.compute(e,mEe);if(!u(n))return;let i=e.dayNumber,o=e.secondsOfDay+n5,r=qi.iau2006XysData.computeXysRadians(i,o,hEe);if(!u(r))return;let s=r.x+n.xPoleOffset,a=r.y+n.yPoleOffset,c=1/(1+Math.sqrt(1-s*s-a*a)),l=e5;l[0]=1-c*s*s,l[3]=-c*s*a,l[6]=s,l[1]=-c*s*a,l[4]=1-c*a*a,l[7]=a,l[2]=-s,l[5]=-a,l[8]=1-c*(s*s+a*a);let f=Q.fromRotationZ(-r.s,t5),d=Q.multiply(l,f,e5),p=e.dayNumber,g=e.secondsOfDay-J.computeTaiMinusUtc(e)+n.ut1MinusUtc,m=p-2451545,x=g/Zn.SECONDS_PER_DAY,b=.779057273264+x+.00273781191135448*(m+x);b=b%1*P.TWO_PI;let T=Q.fromRotationZ(b,t5),A=Q.multiply(d,T,e5),C=Math.cos(n.xPoleWander),S=Math.cos(n.yPoleWander),w=Math.sin(n.xPoleWander),D=Math.sin(n.yPoleWander),O=i-dEe+o/Zn.SECONDS_PER_DAY;O/=36525;let R=-47e-6*O*P.RADIANS_PER_DEGREE/3600,L=Math.cos(R),N=Math.sin(R),_=t5;return _[0]=C*L,_[1]=C*N,_[2]=w,_[3]=-S*N+D*w*L,_[4]=S*L+D*w*N,_[5]=-D*C,_[6]=-D*N-S*w*L,_[7]=D*L-S*w*N,_[8]=S*C,Q.multiply(A,_,t)};var pEe=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){u(i)||(i=new z);let o=pEe;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 _Ee=new h,gEe=new h,yEe=new h;qi.rotationMatrixFromPositionVelocity=function(e,t,n,i){let o=y(n,ie.WGS84).geodeticSurfaceNormal(e,_Ee),r=h.cross(t,o,gEe);h.equalsEpsilon(r,h.ZERO,P.EPSILON6)&&(r=h.clone(h.UNIT_X,r));let s=h.cross(r,t,yEe);return h.normalize(s,s),h.cross(t,s,r),h.negate(r,r),h.normalize(r,r),u(i)||(i=new Q),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 eQ=new F(0,0,1,0,1,0,0,0,0,1,0,0,0,0,0,1),tQ=new fe,nQ=new h,xEe=new h,bEe=new Q,i5=new F,iQ=new F;qi.basisTo2D=function(e,t,n){let i=F.getTranslation(t,xEe),o=e.ellipsoid,r=o.cartesianToCartographic(i,tQ),s=e.project(r,nQ);h.fromElements(s.z,s.x,s.y,s);let a=qi.eastNorthUpToFixedFrame(i,o,i5),c=F.inverseTransformation(a,iQ),l=F.getMatrix3(t,bEe),f=F.multiplyByMatrix3(c,l,n);return F.multiply(eQ,f,n),F.setTranslation(n,s,n),n};qi.wgs84To2DModelMatrix=function(e,t,n){let i=e.ellipsoid,o=qi.eastNorthUpToFixedFrame(t,i,i5),r=F.inverseTransformation(o,iQ),s=i.cartesianToCartographic(t,tQ),a=e.project(s,nQ);h.fromElements(a.z,a.x,a.y,a);let c=F.fromTranslation(a,i5);return F.multiply(eQ,r,n),F.multiply(c,n,n),n};var Rt=qi;function o5(e){e=y(e,y.EMPTY_OBJECT),this.attributes=e.attributes,this.indices=e.indices,this.primitiveType=y(e.primitiveType,Me.TRIANGLES),this.boundingSphere=e.boundingSphere,this.geometryType=y(e.geometryType,Ku.NONE),this.boundingSphereCV=e.boundingSphereCV,this.offsetAttribute=e.offsetAttribute}o5.computeNumberOfVertices=function(e){let t=-1;for(let n in e.attributes)if(e.attributes.hasOwnProperty(n)&&u(e.attributes[n])&&u(e.attributes[n].values)){let i=e.attributes[n];t=i.values.length/i.componentsPerAttribute}return t};var TEe=new fe,AEe=new h,oQ=new F,CEe=[new fe,new fe,new fe],EEe=[new z,new z,new z],SEe=[new z,new z,new z],wEe=new h,vEe=new Le,DEe=new F,IEe=new Qi;o5._textureCoordinateRotationPoints=function(e,t,n,i){let o,r=ce.center(i,TEe),s=fe.toCartesian(r,n,AEe),a=Rt.eastNorthUpToFixedFrame(s,n,oQ),c=F.inverse(a,oQ),l=EEe,f=CEe;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=wEe;for(o=0;o<3;o++)fe.toCartesian(f[o],n,d),d=F.multiplyByPointAsVector(c,d,d),l[o].x=d.x,l[o].y=d.y;let p=Le.fromAxisAngle(h.UNIT_Z,-t,vEe),g=Q.fromQuaternion(p,DEe),m=e.length,x=Number.POSITIVE_INFINITY,b=Number.POSITIVE_INFINITY,T=Number.NEGATIVE_INFINITY,A=Number.NEGATIVE_INFINITY;for(o=0;o<m;o++)d=F.multiplyByPointAsVector(c,e[o],d),d=Q.multiplyByVector(g,d,d),x=Math.min(x,d.x),b=Math.min(b,d.y),T=Math.max(T,d.x),A=Math.max(A,d.y);let C=Qi.fromRotation(t,IEe),S=SEe;S[0].x=x,S[0].y=b,S[1].x=x,S[1].y=A,S[2].x=T,S[2].y=b;let w=l[0],D=l[2].x-w.x,O=l[1].y-w.y;for(o=0;o<3;o++){let E=S[o];Qi.multiplyByVector(C,E,E),E.x=(E.x-w.x)/D,E.y=(E.y-w.y)/O}let R=S[0],L=S[1],N=S[2],_=new Array(6);return z.pack(R,_),z.pack(L,_,2),z.pack(N,_,4),_};var st=o5;function PEe(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 we=PEe;function aA(e,t,n,i,o){this._format=e,this._datatype=t,this._width=n,this._height=i,this._buffer=o}Object.defineProperties(aA.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}}});aA.clone=function(e){if(u(e))return new aA(e._format,e._datatype,e._width,e._height,e._buffer)};aA.prototype.clone=function(){return aA.clone(this)};var Tw=aA;var rQ=ro(Yl(),1);function sQ(){if(!u(ha._canTransferArrayBuffer)){let e=a5("transferTypedArrayTest");e.postMessage=y(e.webkitPostMessage,e.postMessage);let t=99,n=new Int8Array([t]);try{e.postMessage({array:n},[n.buffer])}catch{return ha._canTransferArrayBuffer=!1,ha._canTransferArrayBuffer}ha._canTransferArrayBuffer=new Promise(i=>{e.onmessage=function(o){let r=o.data.array,s=u(r)&&r[0]===t;i(s),e.terminate(),ha._canTransferArrayBuffer=s}})}return ha._canTransferArrayBuffer}var s5=new pe;function r5(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 a5(e){let t=new rQ.default(e),n=t.scheme().length!==0&&t.fragment().length===0,i={},o;if(w0(e)){let s=`importScripts("${e}");`;return o=r5(s),new Worker(o,i)}let r=e.replace(/\.js$/,"");if(!n&&typeof CESIUM_WORKERS<"u"){let s=`
  93. importScripts("${r5(CESIUM_WORKERS)}");
  94. CesiumWorkers["${r}"]();
  95. `;return o=r5(s),new Worker(o,i)}if(o=e,n||(o=Zt(`${ha._workerModulePrefix+r}.js`)),!Bt.supportsEsmWebWorkers())throw new ue("This browser is not supported. Please update your browser to continue.");return i.type="module",new Worker(o,i)}async function OEe(e,t){let n={modulePath:void 0,wasmBinaryFile:void 0,wasmBinary:void 0};if(!Bt.supportsWebAssembly()){if(!u(t.fallbackModulePath))throw new ue(`This browser does not support Web Assembly, and no backup module was provided for ${e._workerPath}`);return n.modulePath=Zt(t.fallbackModulePath),n}n.wasmBinaryFile=Zt(t.wasmBinaryFile);let i=await ve.fetchArrayBuffer({url:n.wasmBinaryFile});return n.wasmBinary=i,n}function ha(e,t){this._workerPath=e,this._maximumActiveTasks=y(t,Number.POSITIVE_INFINITY),this._activeTasks=0,this._nextID=0,this._webAssemblyPromise=void 0}var REe=(e,t,n,i)=>{let o=({data:r})=>{if(r.id===t){if(u(r.error)){let s=r.error;s.name==="RuntimeError"?(s=new ue(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),s5.raiseEvent(s),i(s)}else s5.raiseEvent(),n(r.result);e.removeEventListener("message",o)}};return o},MEe=[];async function LEe(e,t,n){let i=await Promise.resolve(sQ());u(n)?i||(n.length=0):n=MEe;let o=e._nextID++,r=new Promise((s,a)=>{e._worker.addEventListener("message",REe(e._worker,o,s,a))});return e._worker.postMessage({id:o,baseUrl:Zt.getCesiumBaseUrl().url,parameters:t,canTransferArrayBuffer:i},n),r}async function NEe(e,t,n){++e._activeTasks;try{let i=await LEe(e,t,n);return--e._activeTasks,i}catch(i){throw--e._activeTasks,i}}ha.prototype.scheduleTask=function(e,t){if(u(this._worker)||(this._worker=a5(this._workerPath)),!(this._activeTasks>=this._maximumActiveTasks))return NEe(this,e,t)};ha.prototype.initWebAssemblyModule=async function(e){if(u(this._webAssemblyPromise))return this._webAssemblyPromise;let t=async()=>{let n=this._worker=a5(this._workerPath),i=await OEe(this,e),o=await Promise.resolve(sQ()),r,s=i.wasmBinary;u(s)&&o&&(r=[s]);let a=new Promise((c,l)=>{n.onmessage=function({data:f}){u(f)?c(f.result):l(new ue("Could not configure wasm module"))}});return n.postMessage({canTransferArrayBuffer:o,parameters:{webAssemblyConfig:i}},r),a};return this._webAssemblyPromise=t(),this._webAssemblyPromise};ha.prototype.isDestroyed=function(){return!1};ha.prototype.destroy=function(){return u(this._worker)&&this._worker.terminate(),le(this)};ha.taskCompletedEvent=s5;ha._defaultWorkerModulePrefix="Workers/";ha._workerModulePrefix=ha._defaultWorkerModulePrefix;ha._canTransferArrayBuffer=void 0;var hi=ha;function np(){}np._transcodeTaskProcessor=new hi("transcodeKTX2",Number.POSITIVE_INFINITY);np._readyPromise=void 0;function FEe(){let e=np._transcodeTaskProcessor.initWebAssemblyModule({wasmBinaryFile:"ThirdParty/basis_transcoder.wasm"}).then(function(t){if(t)return np._transcodeTaskProcessor;throw new ue("KTX2 transcoder could not be initialized.")});np._readyPromise=e}np.transcode=function(e,t){return u(np._readyPromise)||FEe(),np._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 l=a[o[c]];a[o[c]]=new Tw(l.internalFormat,l.datatype,l.width,l.height,l.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 Aw=np;var aQ;cQ.setKTX2SupportedFormats=function(e,t,n,i,o,r){aQ={s3tc:e,pvrtc:t,astc:n,etc:i,etc1:o,bc7:r}};function cQ(e){let t;return e instanceof ArrayBuffer||ArrayBuffer.isView(e)?t=Promise.resolve(e):t=ve.createIfNeeded(e).fetchArrayBuffer(),t.then(function(n){return Aw.transcode(n,aQ)})}var ul=cQ;function Q3(e,t,n,i,o,r,s,a,c,l,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=l,this._initialized=f}Object.defineProperties(Q3.prototype,{pixelFormat:{get:function(){return this._pixelFormat}},pixelDatatype:{get:function(){return this._pixelDatatype}},_target:{get:function(){return this._targetFace}}});Q3.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,l=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;u(l)&&(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 A=!1;if(!this._initialized){if(t===0&&n===0&&a===f&&c===f)u(l)?(o.pixelStorei(o.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!1),o.pixelStorei(o.UNPACK_FLIP_Y_WEBGL,!1),x&&(l=nt.flipY(l,d,g,f,f)),o.texImage2D(s,0,p,f,f,0,d,Ye.toWebGLConstant(g,this._context),l)):(o.pixelStorei(o.UNPACK_PREMULTIPLY_ALPHA_WEBGL,m),o.pixelStorei(o.UNPACK_FLIP_Y_WEBGL,x),o.texImage2D(s,0,p,d,Ye.toWebGLConstant(g,this._context),i)),A=!0;else{o.pixelStorei(o.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!1),o.pixelStorei(o.UNPACK_FLIP_Y_WEBGL,!1);let C=nt.createTypedArray(d,g,f,f);o.texImage2D(s,0,p,f,f,0,d,Ye.toWebGLConstant(g,this._context),C)}this._initialized=!0}A||(u(l)?(o.pixelStorei(o.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!1),o.pixelStorei(o.UNPACK_FLIP_Y_WEBGL,!1),x&&(l=nt.flipY(l,d,g,a,c)),o.texSubImage2D(s,0,t,n,a,c,d,Ye.toWebGLConstant(g,this._context),l)):(o.pixelStorei(o.UNPACK_PREMULTIPLY_ALPHA_WEBGL,m),o.pixelStorei(o.UNPACK_FLIP_Y_WEBGL,x),o.texSubImage2D(s,0,t,n,d,Ye.toWebGLConstant(g,this._context),i))),o.bindTexture(r,null)};Q3.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 Bh=Q3;var J3={DONT_CARE:ee.DONT_CARE,FASTEST:ee.FASTEST,NICEST:ee.NICEST,validate:function(e){return e===J3.DONT_CARE||e===J3.FASTEST||e===J3.NICEST}},kh=Object.freeze(J3);var ek={NEAREST:ee.NEAREST,LINEAR:ee.LINEAR};ek.validate=function(e){return e===ek.NEAREST||e===ek.LINEAR};var yi=Object.freeze(ek);var sg={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};sg.validate=function(e){return e===sg.NEAREST||e===sg.LINEAR||e===sg.NEAREST_MIPMAP_NEAREST||e===sg.LINEAR_MIPMAP_NEAREST||e===sg.NEAREST_MIPMAP_LINEAR||e===sg.LINEAR_MIPMAP_LINEAR};var rn=Object.freeze(sg);var tk={CLAMP_TO_EDGE:ee.CLAMP_TO_EDGE,REPEAT:ee.REPEAT,MIRRORED_REPEAT:ee.MIRRORED_REPEAT,validate:function(e){return e===tk.CLAMP_TO_EDGE||e===tk.REPEAT||e===tk.MIRRORED_REPEAT}},Sn=Object.freeze(tk);function Cw(e){e=y(e,y.EMPTY_OBJECT);let t=y(e.wrapS,Sn.CLAMP_TO_EDGE),n=y(e.wrapT,Sn.CLAMP_TO_EDGE),i=y(e.minificationFilter,rn.LINEAR),o=y(e.magnificationFilter,yi.LINEAR),r=u(e.maximumAnisotropy)?e.maximumAnisotropy:1;this._wrapS=t,this._wrapT=n,this._minificationFilter=i,this._magnificationFilter=o,this._maximumAnisotropy=r}Object.defineProperties(Cw.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}}});Cw.equals=function(e,t){return e===t||u(e)&&u(t)&&e._wrapS===t._wrapS&&e._wrapT===t._wrapT&&e._minificationFilter===t._minificationFilter&&e._magnificationFilter===t._magnificationFilter&&e._maximumAnisotropy===t._maximumAnisotropy};Cw.NEAREST=Object.freeze(new Cw({wrapS:Sn.CLAMP_TO_EDGE,wrapT:Sn.CLAMP_TO_EDGE,minificationFilter:rn.NEAREST,magnificationFilter:yi.NEAREST}));var ln=Cw;function Ew(e){e=y(e,y.EMPTY_OBJECT);let t=e.context,n=e.source,i,o;if(u(n)){let A=[n.positiveX,n.negativeX,n.positiveY,n.negativeY,n.positiveZ,n.negativeZ];i=A[0].width,o=A[0].height}else i=e.width,o=e.height;let r=i,s=y(e.pixelDatatype,Ye.UNSIGNED_BYTE),a=y(e.pixelFormat,nt.RGBA),c=nt.toInternalFormat(a,s,t),l=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(A,C,S,w,D){let O=C.arrayBufferView;u(O)||(O=C.bufferView);let R=4;u(O)&&(R=nt.alignmentInBytes(a,s,i)),g.pixelStorei(g.UNPACK_ALIGNMENT,R),D?g.pixelStorei(g.UNPACK_COLORSPACE_CONVERSION_WEBGL,g.NONE):g.pixelStorei(g.UNPACK_COLORSPACE_CONVERSION_WEBGL,g.BROWSER_DEFAULT_WEBGL),u(O)?(g.pixelStorei(g.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!1),g.pixelStorei(g.UNPACK_FLIP_Y_WEBGL,!1),w&&(O=nt.flipY(O,a,s,r,r)),g.texImage2D(A,0,c,r,r,0,a,Ye.toWebGLConstant(s,t),O)):(g.pixelStorei(g.UNPACK_PREMULTIPLY_ALPHA_WEBGL,S),g.pixelStorei(g.UNPACK_FLIP_Y_WEBGL,w),g.texImage2D(A,0,c,a,Ye.toWebGLConstant(s,t),C))}u(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,Ye.toWebGLConstant(s,t),null),g.texImage2D(g.TEXTURE_CUBE_MAP_NEGATIVE_X,0,c,r,r,0,a,Ye.toWebGLConstant(s,t),null),g.texImage2D(g.TEXTURE_CUBE_MAP_POSITIVE_Y,0,c,r,r,0,a,Ye.toWebGLConstant(s,t),null),g.texImage2D(g.TEXTURE_CUBE_MAP_NEGATIVE_Y,0,c,r,r,0,a,Ye.toWebGLConstant(s,t),null),g.texImage2D(g.TEXTURE_CUBE_MAP_POSITIVE_Z,0,c,r,r,0,a,Ye.toWebGLConstant(s,t),null),g.texImage2D(g.TEXTURE_CUBE_MAP_NEGATIVE_Z,0,c,r,r,0,a,Ye.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=l,this._preMultiplyAlpha=f,this._flipY=d,this._sampler=void 0;let T=u(n);this._positiveX=new Bh(t,x,m,g.TEXTURE_CUBE_MAP_POSITIVE_X,c,a,s,r,f,d,T),this._negativeX=new Bh(t,x,m,g.TEXTURE_CUBE_MAP_NEGATIVE_X,c,a,s,r,f,d,T),this._positiveY=new Bh(t,x,m,g.TEXTURE_CUBE_MAP_POSITIVE_Y,c,a,s,r,f,d,T),this._negativeY=new Bh(t,x,m,g.TEXTURE_CUBE_MAP_NEGATIVE_Y,c,a,s,r,f,d,T),this._positiveZ=new Bh(t,x,m,g.TEXTURE_CUBE_MAP_POSITIVE_Z,c,a,s,r,f,d,T),this._negativeZ=new Bh(t,x,m,g.TEXTURE_CUBE_MAP_NEGATIVE_Z,c,a,s,r,f,d,T),this.sampler=u(e.sampler)?e.sampler:new ln}Object.defineProperties(Ew.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===rn.NEAREST_MIPMAP_NEAREST||t===rn.NEAREST_MIPMAP_LINEAR||t===rn.LINEAR_MIPMAP_NEAREST||t===rn.LINEAR_MIPMAP_LINEAR,o=this._context,r=this._pixelDatatype;(r===Ye.FLOAT&&!o.textureFloatLinear||r===Ye.HALF_FLOAT&&!o.textureHalfFloatLinear)&&(t=i?rn.NEAREST_MIPMAP_NEAREST:rn.NEAREST,n=yi.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),u(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}}});Ew.prototype.generateMipmap=function(e){e=y(e,kh.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)};Ew.prototype.isDestroyed=function(){return!1};Ew.prototype.destroy=function(){return this._context._gl.deleteTexture(this._texture),this._positiveX=le(this._positiveX),this._negativeX=le(this._negativeX),this._positiveY=le(this._positiveY),this._negativeY=le(this._negativeY),this._positiveZ=le(this._positiveZ),this._negativeZ=le(this._negativeZ),le(this)};var Ha=Ew;function BEe(e){this.context=e,this.framebuffer=void 0,this.blendingEnabled=void 0,this.scissorTest=void 0,this.viewport=void 0}var Ga=BEe;var Sw=`/**
  96. * A built-in GLSL floating-point constant for converting radians to degrees.
  97. *
  98. * @alias czm_degreesPerRadian
  99. * @glslConstant
  100. *
  101. * @see CesiumMath.DEGREES_PER_RADIAN
  102. *
  103. * @example
  104. * // GLSL declaration
  105. * const float czm_degreesPerRadian = ...;
  106. *
  107. * // Example
  108. * float deg = czm_degreesPerRadian * rad;
  109. */
  110. const float czm_degreesPerRadian = 57.29577951308232;
  111. `;var ww=`/**
  112. * A built-in GLSL vec2 constant for defining the depth range.
  113. * This is a workaround to a bug where IE11 does not implement gl_DepthRange.
  114. *
  115. * @alias czm_depthRange
  116. * @glslConstant
  117. *
  118. * @example
  119. * // GLSL declaration
  120. * float depthRangeNear = czm_depthRange.near;
  121. * float depthRangeFar = czm_depthRange.far;
  122. *
  123. */
  124. const czm_depthRangeStruct czm_depthRange = czm_depthRangeStruct(0.0, 1.0);
  125. `;var vw=`/**
  126. * 0.1
  127. *
  128. * @name czm_epsilon1
  129. * @glslConstant
  130. */
  131. const float czm_epsilon1 = 0.1;
  132. `;var Dw=`/**
  133. * 0.01
  134. *
  135. * @name czm_epsilon2
  136. * @glslConstant
  137. */
  138. const float czm_epsilon2 = 0.01;
  139. `;var Iw=`/**
  140. * 0.001
  141. *
  142. * @name czm_epsilon3
  143. * @glslConstant
  144. */
  145. const float czm_epsilon3 = 0.001;
  146. `;var Pw=`/**
  147. * 0.0001
  148. *
  149. * @name czm_epsilon4
  150. * @glslConstant
  151. */
  152. const float czm_epsilon4 = 0.0001;
  153. `;var Ow=`/**
  154. * 0.00001
  155. *
  156. * @name czm_epsilon5
  157. * @glslConstant
  158. */
  159. const float czm_epsilon5 = 0.00001;
  160. `;var Rw=`/**
  161. * 0.000001
  162. *
  163. * @name czm_epsilon6
  164. * @glslConstant
  165. */
  166. const float czm_epsilon6 = 0.000001;
  167. `;var Mw=`/**
  168. * 0.0000001
  169. *
  170. * @name czm_epsilon7
  171. * @glslConstant
  172. */
  173. const float czm_epsilon7 = 0.0000001;
  174. `;var Lw=`/**
  175. * DOC_TBA
  176. *
  177. * @name czm_infinity
  178. * @glslConstant
  179. */
  180. const float czm_infinity = 5906376272000.0; // Distance from the Sun to Pluto in meters. TODO: What is best given lowp, mediump, and highp?
  181. `;var Nw=`/**
  182. * A built-in GLSL floating-point constant for <code>1/pi</code>.
  183. *
  184. * @alias czm_oneOverPi
  185. * @glslConstant
  186. *
  187. * @see CesiumMath.ONE_OVER_PI
  188. *
  189. * @example
  190. * // GLSL declaration
  191. * const float czm_oneOverPi = ...;
  192. *
  193. * // Example
  194. * float pi = 1.0 / czm_oneOverPi;
  195. */
  196. const float czm_oneOverPi = 0.3183098861837907;
  197. `;var Fw=`/**
  198. * A built-in GLSL floating-point constant for <code>1/2pi</code>.
  199. *
  200. * @alias czm_oneOverTwoPi
  201. * @glslConstant
  202. *
  203. * @see CesiumMath.ONE_OVER_TWO_PI
  204. *
  205. * @example
  206. * // GLSL declaration
  207. * const float czm_oneOverTwoPi = ...;
  208. *
  209. * // Example
  210. * float pi = 2.0 * czm_oneOverTwoPi;
  211. */
  212. const float czm_oneOverTwoPi = 0.15915494309189535;
  213. `;var Bw=`/**
  214. * The automatic GLSL constant for {@link Pass#CESIUM_3D_TILE}
  215. *
  216. * @name czm_passCesium3DTile
  217. * @glslConstant
  218. *
  219. * @see czm_pass
  220. */
  221. const float czm_passCesium3DTile = 4.0;
  222. `;var kw=`/**
  223. * The automatic GLSL constant for {@link Pass#CESIUM_3D_TILE_CLASSIFICATION}
  224. *
  225. * @name czm_passCesium3DTileClassification
  226. * @glslConstant
  227. *
  228. * @see czm_pass
  229. */
  230. const float czm_passCesium3DTileClassification = 5.0;
  231. `;var Uw=`/**
  232. * The automatic GLSL constant for {@link Pass#CESIUM_3D_TILE_CLASSIFICATION_IGNORE_SHOW}
  233. *
  234. * @name czm_passCesium3DTileClassificationIgnoreShow
  235. * @glslConstant
  236. *
  237. * @see czm_pass
  238. */
  239. const float czm_passCesium3DTileClassificationIgnoreShow = 6.0;
  240. `;var Vw=`/**
  241. * The automatic GLSL constant for {@link Pass#CLASSIFICATION}
  242. *
  243. * @name czm_passClassification
  244. * @glslConstant
  245. *
  246. * @see czm_pass
  247. */
  248. const float czm_passClassification = 7.0;
  249. `;var zw=`/**
  250. * The automatic GLSL constant for {@link Pass#COMPUTE}
  251. *
  252. * @name czm_passCompute
  253. * @glslConstant
  254. *
  255. * @see czm_pass
  256. */
  257. const float czm_passCompute = 1.0;
  258. `;var Hw=`/**
  259. * The automatic GLSL constant for {@link Pass#ENVIRONMENT}
  260. *
  261. * @name czm_passEnvironment
  262. * @glslConstant
  263. *
  264. * @see czm_pass
  265. */
  266. const float czm_passEnvironment = 0.0;
  267. `;var Gw=`/**
  268. * The automatic GLSL constant for {@link Pass#GLOBE}
  269. *
  270. * @name czm_passGlobe
  271. * @glslConstant
  272. *
  273. * @see czm_pass
  274. */
  275. const float czm_passGlobe = 2.0;
  276. `;var Ww=`/**
  277. * The automatic GLSL constant for {@link Pass#OPAQUE}
  278. *
  279. * @name czm_passOpaque
  280. * @glslConstant
  281. *
  282. * @see czm_pass
  283. */
  284. const float czm_passOpaque = 7.0;
  285. `;var jw=`/**
  286. * The automatic GLSL constant for {@link Pass#OVERLAY}
  287. *
  288. * @name czm_passOverlay
  289. * @glslConstant
  290. *
  291. * @see czm_pass
  292. */
  293. const float czm_passOverlay = 10.0;
  294. `;var qw=`/**
  295. * The automatic GLSL constant for {@link Pass#TERRAIN_CLASSIFICATION}
  296. *
  297. * @name czm_passTerrainClassification
  298. * @glslConstant
  299. *
  300. * @see czm_pass
  301. */
  302. const float czm_passTerrainClassification = 3.0;
  303. `;var Yw=`/**
  304. * The automatic GLSL constant for {@link Pass#TRANSLUCENT}
  305. *
  306. * @name czm_passTranslucent
  307. * @glslConstant
  308. *
  309. * @see czm_pass
  310. */
  311. const float czm_passTranslucent = 8.0;
  312. `;var Xw=`/**
  313. * The automatic GLSL constant for {@link Pass#VOXELS}
  314. *
  315. * @name czm_passVoxels
  316. * @glslConstant
  317. *
  318. * @see czm_pass
  319. */
  320. const float czm_passVoxels = 9.0;
  321. `;var Kw=`/**
  322. * A built-in GLSL floating-point constant for <code>Math.PI</code>.
  323. *
  324. * @alias czm_pi
  325. * @glslConstant
  326. *
  327. * @see CesiumMath.PI
  328. *
  329. * @example
  330. * // GLSL declaration
  331. * const float czm_pi = ...;
  332. *
  333. * // Example
  334. * float twoPi = 2.0 * czm_pi;
  335. */
  336. const float czm_pi = 3.141592653589793;
  337. `;var Zw=`/**
  338. * A built-in GLSL floating-point constant for <code>pi/4</code>.
  339. *
  340. * @alias czm_piOverFour
  341. * @glslConstant
  342. *
  343. * @see CesiumMath.PI_OVER_FOUR
  344. *
  345. * @example
  346. * // GLSL declaration
  347. * const float czm_piOverFour = ...;
  348. *
  349. * // Example
  350. * float pi = 4.0 * czm_piOverFour;
  351. */
  352. const float czm_piOverFour = 0.7853981633974483;
  353. `;var $w=`/**
  354. * A built-in GLSL floating-point constant for <code>pi/6</code>.
  355. *
  356. * @alias czm_piOverSix
  357. * @glslConstant
  358. *
  359. * @see CesiumMath.PI_OVER_SIX
  360. *
  361. * @example
  362. * // GLSL declaration
  363. * const float czm_piOverSix = ...;
  364. *
  365. * // Example
  366. * float pi = 6.0 * czm_piOverSix;
  367. */
  368. const float czm_piOverSix = 0.5235987755982988;
  369. `;var Qw=`/**
  370. * A built-in GLSL floating-point constant for <code>pi/3</code>.
  371. *
  372. * @alias czm_piOverThree
  373. * @glslConstant
  374. *
  375. * @see CesiumMath.PI_OVER_THREE
  376. *
  377. * @example
  378. * // GLSL declaration
  379. * const float czm_piOverThree = ...;
  380. *
  381. * // Example
  382. * float pi = 3.0 * czm_piOverThree;
  383. */
  384. const float czm_piOverThree = 1.0471975511965976;
  385. `;var Jw=`/**
  386. * A built-in GLSL floating-point constant for <code>pi/2</code>.
  387. *
  388. * @alias czm_piOverTwo
  389. * @glslConstant
  390. *
  391. * @see CesiumMath.PI_OVER_TWO
  392. *
  393. * @example
  394. * // GLSL declaration
  395. * const float czm_piOverTwo = ...;
  396. *
  397. * // Example
  398. * float pi = 2.0 * czm_piOverTwo;
  399. */
  400. const float czm_piOverTwo = 1.5707963267948966;
  401. `;var ev=`/**
  402. * A built-in GLSL floating-point constant for converting degrees to radians.
  403. *
  404. * @alias czm_radiansPerDegree
  405. * @glslConstant
  406. *
  407. * @see CesiumMath.RADIANS_PER_DEGREE
  408. *
  409. * @example
  410. * // GLSL declaration
  411. * const float czm_radiansPerDegree = ...;
  412. *
  413. * // Example
  414. * float rad = czm_radiansPerDegree * deg;
  415. */
  416. const float czm_radiansPerDegree = 0.017453292519943295;
  417. `;var tv=`/**
  418. * The constant identifier for the 2D {@link SceneMode}
  419. *
  420. * @name czm_sceneMode2D
  421. * @glslConstant
  422. * @see czm_sceneMode
  423. * @see czm_sceneModeColumbusView
  424. * @see czm_sceneMode3D
  425. * @see czm_sceneModeMorphing
  426. */
  427. const float czm_sceneMode2D = 2.0;
  428. `;var nv=`/**
  429. * The constant identifier for the 3D {@link SceneMode}
  430. *
  431. * @name czm_sceneMode3D
  432. * @glslConstant
  433. * @see czm_sceneMode
  434. * @see czm_sceneMode2D
  435. * @see czm_sceneModeColumbusView
  436. * @see czm_sceneModeMorphing
  437. */
  438. const float czm_sceneMode3D = 3.0;
  439. `;var iv=`/**
  440. * The constant identifier for the Columbus View {@link SceneMode}
  441. *
  442. * @name czm_sceneModeColumbusView
  443. * @glslConstant
  444. * @see czm_sceneMode
  445. * @see czm_sceneMode2D
  446. * @see czm_sceneMode3D
  447. * @see czm_sceneModeMorphing
  448. */
  449. const float czm_sceneModeColumbusView = 1.0;
  450. `;var ov=`/**
  451. * The constant identifier for the Morphing {@link SceneMode}
  452. *
  453. * @name czm_sceneModeMorphing
  454. * @glslConstant
  455. * @see czm_sceneMode
  456. * @see czm_sceneMode2D
  457. * @see czm_sceneModeColumbusView
  458. * @see czm_sceneMode3D
  459. */
  460. const float czm_sceneModeMorphing = 0.0;
  461. `;var rv=`/**
  462. * A built-in GLSL floating-point constant for one solar radius.
  463. *
  464. * @alias czm_solarRadius
  465. * @glslConstant
  466. *
  467. * @see CesiumMath.SOLAR_RADIUS
  468. *
  469. * @example
  470. * // GLSL declaration
  471. * const float czm_solarRadius = ...;
  472. */
  473. const float czm_solarRadius = 695500000.0;
  474. `;var sv=`/**
  475. * A built-in GLSL floating-point constant for <code>3pi/2</code>.
  476. *
  477. * @alias czm_threePiOver2
  478. * @glslConstant
  479. *
  480. * @see CesiumMath.THREE_PI_OVER_TWO
  481. *
  482. * @example
  483. * // GLSL declaration
  484. * const float czm_threePiOver2 = ...;
  485. *
  486. * // Example
  487. * float pi = (2.0 / 3.0) * czm_threePiOver2;
  488. */
  489. const float czm_threePiOver2 = 4.71238898038469;
  490. `;var av=`/**
  491. * A built-in GLSL floating-point constant for <code>2pi</code>.
  492. *
  493. * @alias czm_twoPi
  494. * @glslConstant
  495. *
  496. * @see CesiumMath.TWO_PI
  497. *
  498. * @example
  499. * // GLSL declaration
  500. * const float czm_twoPi = ...;
  501. *
  502. * // Example
  503. * float pi = czm_twoPi / 2.0;
  504. */
  505. const float czm_twoPi = 6.283185307179586;
  506. `;var cv=`/**
  507. * The maximum latitude, in radians, both North and South, supported by a Web Mercator
  508. * (EPSG:3857) projection. Technically, the Mercator projection is defined
  509. * for any latitude up to (but not including) 90 degrees, but it makes sense
  510. * to cut it off sooner because it grows exponentially with increasing latitude.
  511. * The logic behind this particular cutoff value, which is the one used by
  512. * Google Maps, Bing Maps, and Esri, is that it makes the projection
  513. * square. That is, the rectangle is equal in the X and Y directions.
  514. *
  515. * The constant value is computed as follows:
  516. * czm_pi * 0.5 - (2.0 * atan(exp(-czm_pi)))
  517. *
  518. * @name czm_webMercatorMaxLatitude
  519. * @glslConstant
  520. */
  521. const float czm_webMercatorMaxLatitude = 1.4844222297453324;
  522. `;var lv=`/**
  523. * @name czm_depthRangeStruct
  524. * @glslStruct
  525. */
  526. struct czm_depthRangeStruct
  527. {
  528. float near;
  529. float far;
  530. };
  531. `;var uv=`/**
  532. * Holds material information that can be used for lighting. Returned by all czm_getMaterial functions.
  533. *
  534. * @name czm_material
  535. * @glslStruct
  536. *
  537. * @property {vec3} diffuse Incoming light that scatters evenly in all directions.
  538. * @property {float} specular Intensity of incoming light reflecting in a single direction.
  539. * @property {float} shininess The sharpness of the specular reflection. Higher values create a smaller, more focused specular highlight.
  540. * @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.
  541. * @property {vec3} emission Light emitted by the material equally in all directions. The default is vec3(0.0), which emits no light.
  542. * @property {float} alpha Alpha of this material. 0.0 is completely transparent; 1.0 is completely opaque.
  543. */
  544. struct czm_material
  545. {
  546. vec3 diffuse;
  547. float specular;
  548. float shininess;
  549. vec3 normal;
  550. vec3 emission;
  551. float alpha;
  552. };
  553. `;var fv=`/**
  554. * Used as input to every material's czm_getMaterial function.
  555. *
  556. * @name czm_materialInput
  557. * @glslStruct
  558. *
  559. * @property {float} s 1D texture coordinates.
  560. * @property {vec2} st 2D texture coordinates.
  561. * @property {vec3} str 3D texture coordinates.
  562. * @property {vec3} normalEC Unperturbed surface normal in eye coordinates.
  563. * @property {mat3} tangentToEyeMatrix Matrix for converting a tangent space normal to eye space.
  564. * @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.
  565. * @property {float} height The height of the terrain in meters above or below the WGS84 ellipsoid. Only available for globe materials.
  566. * @property {float} slope The slope of the terrain in radians. 0 is flat; pi/2 is vertical. Only available for globe materials.
  567. * @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.
  568. */
  569. struct czm_materialInput
  570. {
  571. float s;
  572. vec2 st;
  573. vec3 str;
  574. vec3 normalEC;
  575. mat3 tangentToEyeMatrix;
  576. vec3 positionToEyeEC;
  577. float height;
  578. float slope;
  579. float aspect;
  580. };
  581. `;var dv=`/**
  582. * Struct for representing a material for a {@link Model}. The model
  583. * rendering pipeline will pass this struct between material, custom shaders,
  584. * and lighting stages. This is not to be confused with {@link czm_material}
  585. * which is used by the older Fabric materials system, although they are similar.
  586. * <p>
  587. * All color values (diffuse, specular, emissive) are in linear color space.
  588. * </p>
  589. *
  590. * @name czm_modelMaterial
  591. * @glslStruct
  592. *
  593. * @property {vec3} diffuse Incoming light that scatters evenly in all directions.
  594. * @property {float} alpha Alpha of this material. 0.0 is completely transparent; 1.0 is completely opaque.
  595. * @property {vec3} specular Color of reflected light at normal incidence in PBR materials. This is sometimes referred to as f0 in the literature.
  596. * @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.
  597. * @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.
  598. * @property {float} occlusion Ambient occlusion recieved at this point on the material. 1.0 means fully lit, 0.0 means fully occluded.
  599. * @property {vec3} emissive Light emitted by the material equally in all directions. The default is vec3(0.0), which emits no light.
  600. */
  601. struct czm_modelMaterial {
  602. vec3 diffuse;
  603. float alpha;
  604. vec3 specular;
  605. float roughness;
  606. vec3 normalEC;
  607. float occlusion;
  608. vec3 emissive;
  609. };
  610. `;var hv=`/**
  611. * Struct for representing the output of a custom vertex shader.
  612. *
  613. * @name czm_modelVertexOutput
  614. * @glslStruct
  615. *
  616. * @see {@link CustomShader}
  617. * @see {@link Model}
  618. *
  619. * @property {vec3} positionMC The position of the vertex in model coordinates
  620. * @property {float} pointSize A custom value for gl_PointSize. This is only used for point primitives.
  621. */
  622. struct czm_modelVertexOutput {
  623. vec3 positionMC;
  624. float pointSize;
  625. };
  626. `;var mv=`/**
  627. * Parameters for {@link czm_pbrLighting}
  628. *
  629. * @name czm_material
  630. * @glslStruct
  631. *
  632. * @property {vec3} diffuseColor the diffuse color of the material for the lambert term of the rendering equation
  633. * @property {float} roughness a value from 0.0 to 1.0 that indicates how rough the surface of the material is.
  634. * @property {vec3} f0 The reflectance of the material at normal incidence
  635. */
  636. struct czm_pbrParameters
  637. {
  638. vec3 diffuseColor;
  639. float roughness;
  640. vec3 f0;
  641. };
  642. `;var pv=`/**
  643. * DOC_TBA
  644. *
  645. * @name czm_ray
  646. * @glslStruct
  647. */
  648. struct czm_ray
  649. {
  650. vec3 origin;
  651. vec3 direction;
  652. };
  653. `;var _v=`/**
  654. * DOC_TBA
  655. *
  656. * @name czm_raySegment
  657. * @glslStruct
  658. */
  659. struct czm_raySegment
  660. {
  661. float start;
  662. float stop;
  663. };
  664. /**
  665. * DOC_TBA
  666. *
  667. * @name czm_emptyRaySegment
  668. * @glslConstant
  669. */
  670. const czm_raySegment czm_emptyRaySegment = czm_raySegment(-czm_infinity, -czm_infinity);
  671. /**
  672. * DOC_TBA
  673. *
  674. * @name czm_fullRaySegment
  675. * @glslConstant
  676. */
  677. const czm_raySegment czm_fullRaySegment = czm_raySegment(0.0, czm_infinity);
  678. `;var gv=`struct czm_shadowParameters
  679. {
  680. #ifdef USE_CUBE_MAP_SHADOW
  681. vec3 texCoords;
  682. #else
  683. vec2 texCoords;
  684. #endif
  685. float depthBias;
  686. float depth;
  687. float nDotL;
  688. vec2 texelStepSize;
  689. float normalShadingSmooth;
  690. float darkness;
  691. };
  692. `;var yv=`/**
  693. * Converts an HSB color (hue, saturation, brightness) to RGB
  694. * HSB <-> RGB conversion with minimal branching: {@link http://lolengine.net/blog/2013/07/27/rgb-to-hsv-in-glsl}
  695. *
  696. * @name czm_HSBToRGB
  697. * @glslFunction
  698. *
  699. * @param {vec3} hsb The color in HSB.
  700. *
  701. * @returns {vec3} The color in RGB.
  702. *
  703. * @example
  704. * vec3 hsb = czm_RGBToHSB(rgb);
  705. * hsb.z *= 0.1;
  706. * rgb = czm_HSBToRGB(hsb);
  707. */
  708. const vec4 K_HSB2RGB = vec4(1.0, 2.0 / 3.0, 1.0 / 3.0, 3.0);
  709. vec3 czm_HSBToRGB(vec3 hsb)
  710. {
  711. vec3 p = abs(fract(hsb.xxx + K_HSB2RGB.xyz) * 6.0 - K_HSB2RGB.www);
  712. return hsb.z * mix(K_HSB2RGB.xxx, clamp(p - K_HSB2RGB.xxx, 0.0, 1.0), hsb.y);
  713. }
  714. `;var xv=`/**
  715. * Converts an HSL color (hue, saturation, lightness) to RGB
  716. * HSL <-> RGB conversion: {@link http://www.chilliant.com/rgb2hsv.html}
  717. *
  718. * @name czm_HSLToRGB
  719. * @glslFunction
  720. *
  721. * @param {vec3} rgb The color in HSL.
  722. *
  723. * @returns {vec3} The color in RGB.
  724. *
  725. * @example
  726. * vec3 hsl = czm_RGBToHSL(rgb);
  727. * hsl.z *= 0.1;
  728. * rgb = czm_HSLToRGB(hsl);
  729. */
  730. vec3 hueToRGB(float hue)
  731. {
  732. float r = abs(hue * 6.0 - 3.0) - 1.0;
  733. float g = 2.0 - abs(hue * 6.0 - 2.0);
  734. float b = 2.0 - abs(hue * 6.0 - 4.0);
  735. return clamp(vec3(r, g, b), 0.0, 1.0);
  736. }
  737. vec3 czm_HSLToRGB(vec3 hsl)
  738. {
  739. vec3 rgb = hueToRGB(hsl.x);
  740. float c = (1.0 - abs(2.0 * hsl.z - 1.0)) * hsl.y;
  741. return (rgb - 0.5) * c + hsl.z;
  742. }
  743. `;var bv=`/**
  744. * Converts an RGB color to HSB (hue, saturation, brightness)
  745. * HSB <-> RGB conversion with minimal branching: {@link http://lolengine.net/blog/2013/07/27/rgb-to-hsv-in-glsl}
  746. *
  747. * @name czm_RGBToHSB
  748. * @glslFunction
  749. *
  750. * @param {vec3} rgb The color in RGB.
  751. *
  752. * @returns {vec3} The color in HSB.
  753. *
  754. * @example
  755. * vec3 hsb = czm_RGBToHSB(rgb);
  756. * hsb.z *= 0.1;
  757. * rgb = czm_HSBToRGB(hsb);
  758. */
  759. const vec4 K_RGB2HSB = vec4(0.0, -1.0 / 3.0, 2.0 / 3.0, -1.0);
  760. vec3 czm_RGBToHSB(vec3 rgb)
  761. {
  762. vec4 p = mix(vec4(rgb.bg, K_RGB2HSB.wz), vec4(rgb.gb, K_RGB2HSB.xy), step(rgb.b, rgb.g));
  763. vec4 q = mix(vec4(p.xyw, rgb.r), vec4(rgb.r, p.yzx), step(p.x, rgb.r));
  764. float d = q.x - min(q.w, q.y);
  765. return vec3(abs(q.z + (q.w - q.y) / (6.0 * d + czm_epsilon7)), d / (q.x + czm_epsilon7), q.x);
  766. }
  767. `;var Tv=`/**
  768. * Converts an RGB color to HSL (hue, saturation, lightness)
  769. * HSL <-> RGB conversion: {@link http://www.chilliant.com/rgb2hsv.html}
  770. *
  771. * @name czm_RGBToHSL
  772. * @glslFunction
  773. *
  774. * @param {vec3} rgb The color in RGB.
  775. *
  776. * @returns {vec3} The color in HSL.
  777. *
  778. * @example
  779. * vec3 hsl = czm_RGBToHSL(rgb);
  780. * hsl.z *= 0.1;
  781. * rgb = czm_HSLToRGB(hsl);
  782. */
  783. vec3 RGBtoHCV(vec3 rgb)
  784. {
  785. // Based on work by Sam Hocevar and Emil Persson
  786. vec4 p = (rgb.g < rgb.b) ? vec4(rgb.bg, -1.0, 2.0 / 3.0) : vec4(rgb.gb, 0.0, -1.0 / 3.0);
  787. vec4 q = (rgb.r < p.x) ? vec4(p.xyw, rgb.r) : vec4(rgb.r, p.yzx);
  788. float c = q.x - min(q.w, q.y);
  789. float h = abs((q.w - q.y) / (6.0 * c + czm_epsilon7) + q.z);
  790. return vec3(h, c, q.x);
  791. }
  792. vec3 czm_RGBToHSL(vec3 rgb)
  793. {
  794. vec3 hcv = RGBtoHCV(rgb);
  795. float l = hcv.z - hcv.y * 0.5;
  796. float s = hcv.y / (1.0 - abs(l * 2.0 - 1.0) + czm_epsilon7);
  797. return vec3(hcv.x, s, l);
  798. }
  799. `;var Av=`/**
  800. * Converts an RGB color to CIE Yxy.
  801. * <p>The conversion is described in
  802. * {@link http://content.gpwiki.org/index.php/D3DBook:High-Dynamic_Range_Rendering#Luminance_Transform|Luminance Transform}
  803. * </p>
  804. *
  805. * @name czm_RGBToXYZ
  806. * @glslFunction
  807. *
  808. * @param {vec3} rgb The color in RGB.
  809. *
  810. * @returns {vec3} The color in CIE Yxy.
  811. *
  812. * @example
  813. * vec3 xyz = czm_RGBToXYZ(rgb);
  814. * xyz.x = max(xyz.x - luminanceThreshold, 0.0);
  815. * rgb = czm_XYZToRGB(xyz);
  816. */
  817. vec3 czm_RGBToXYZ(vec3 rgb)
  818. {
  819. const mat3 RGB2XYZ = mat3(0.4124, 0.2126, 0.0193,
  820. 0.3576, 0.7152, 0.1192,
  821. 0.1805, 0.0722, 0.9505);
  822. vec3 xyz = RGB2XYZ * rgb;
  823. vec3 Yxy;
  824. Yxy.r = xyz.g;
  825. float temp = dot(vec3(1.0), xyz);
  826. Yxy.gb = xyz.rg / temp;
  827. return Yxy;
  828. }
  829. `;var Cv=`/**
  830. * Converts a CIE Yxy color to RGB.
  831. * <p>The conversion is described in
  832. * {@link http://content.gpwiki.org/index.php/D3DBook:High-Dynamic_Range_Rendering#Luminance_Transform|Luminance Transform}
  833. * </p>
  834. *
  835. * @name czm_XYZToRGB
  836. * @glslFunction
  837. *
  838. * @param {vec3} Yxy The color in CIE Yxy.
  839. *
  840. * @returns {vec3} The color in RGB.
  841. *
  842. * @example
  843. * vec3 xyz = czm_RGBToXYZ(rgb);
  844. * xyz.x = max(xyz.x - luminanceThreshold, 0.0);
  845. * rgb = czm_XYZToRGB(xyz);
  846. */
  847. vec3 czm_XYZToRGB(vec3 Yxy)
  848. {
  849. const mat3 XYZ2RGB = mat3( 3.2405, -0.9693, 0.0556,
  850. -1.5371, 1.8760, -0.2040,
  851. -0.4985, 0.0416, 1.0572);
  852. vec3 xyz;
  853. xyz.r = Yxy.r * Yxy.g / Yxy.b;
  854. xyz.g = Yxy.r;
  855. xyz.b = Yxy.r * (1.0 - Yxy.g - Yxy.b) / Yxy.b;
  856. return XYZ2RGB * xyz;
  857. }
  858. `;var Ev=`// See:
  859. // https://knarkowicz.wordpress.com/2016/01/06/aces-filmic-tone-mapping-curve/
  860. vec3 czm_acesTonemapping(vec3 color) {
  861. float g = 0.985;
  862. float a = 0.065;
  863. float b = 0.0001;
  864. float c = 0.433;
  865. float d = 0.238;
  866. color = (color * (color + a) - b) / (color * (g * color + c) + d);
  867. color = clamp(color, 0.0, 1.0);
  868. return color;
  869. }
  870. `;var Sv=`/**
  871. * @private
  872. */
  873. float czm_alphaWeight(float a)
  874. {
  875. float z = (gl_FragCoord.z - czm_viewportTransformation[3][2]) / czm_viewportTransformation[2][2];
  876. // See Weighted Blended Order-Independent Transparency for examples of different weighting functions:
  877. // http://jcgt.org/published/0002/02/09/
  878. 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))));
  879. }
  880. `;var wv=`/**
  881. * Procedural anti-aliasing by blurring two colors that meet at a sharp edge.
  882. *
  883. * @name czm_antialias
  884. * @glslFunction
  885. *
  886. * @param {vec4} color1 The color on one side of the edge.
  887. * @param {vec4} color2 The color on the other side of the edge.
  888. * @param {vec4} currentcolor The current color, either <code>color1</code> or <code>color2</code>.
  889. * @param {float} dist The distance to the edge in texture coordinates.
  890. * @param {float} [fuzzFactor=0.1] Controls the blurriness between the two colors.
  891. * @returns {vec4} The anti-aliased color.
  892. *
  893. * @example
  894. * // GLSL declarations
  895. * vec4 czm_antialias(vec4 color1, vec4 color2, vec4 currentColor, float dist, float fuzzFactor);
  896. * vec4 czm_antialias(vec4 color1, vec4 color2, vec4 currentColor, float dist);
  897. *
  898. * // get the color for a material that has a sharp edge at the line y = 0.5 in texture space
  899. * float dist = abs(textureCoordinates.t - 0.5);
  900. * vec4 currentColor = mix(bottomColor, topColor, step(0.5, textureCoordinates.t));
  901. * vec4 color = czm_antialias(bottomColor, topColor, currentColor, dist, 0.1);
  902. */
  903. vec4 czm_antialias(vec4 color1, vec4 color2, vec4 currentColor, float dist, float fuzzFactor)
  904. {
  905. float val1 = clamp(dist / fuzzFactor, 0.0, 1.0);
  906. float val2 = clamp((dist - 0.5) / fuzzFactor, 0.0, 1.0);
  907. val1 = val1 * (1.0 - val2);
  908. val1 = val1 * val1 * (3.0 - (2.0 * val1));
  909. val1 = pow(val1, 0.5); //makes the transition nicer
  910. vec4 midColor = (color1 + color2) * 0.5;
  911. return mix(midColor, currentColor, val1);
  912. }
  913. vec4 czm_antialias(vec4 color1, vec4 color2, vec4 currentColor, float dist)
  914. {
  915. return czm_antialias(color1, color2, currentColor, dist, 0.1);
  916. }
  917. `;var vv=`/**
  918. * Approximately computes spherical coordinates given a normal.
  919. * Uses approximate inverse trigonometry for speed and consistency,
  920. * since inverse trigonometry can differ from vendor-to-vendor and when compared with the CPU.
  921. *
  922. * @name czm_approximateSphericalCoordinates
  923. * @glslFunction
  924. *
  925. * @param {vec3} normal arbitrary-length normal.
  926. *
  927. * @returns {vec2} Approximate latitude and longitude spherical coordinates.
  928. */
  929. vec2 czm_approximateSphericalCoordinates(vec3 normal) {
  930. // Project into plane with vertical for latitude
  931. float latitudeApproximation = czm_fastApproximateAtan(sqrt(normal.x * normal.x + normal.y * normal.y), normal.z);
  932. float longitudeApproximation = czm_fastApproximateAtan(normal.x, normal.y);
  933. return vec2(latitudeApproximation, longitudeApproximation);
  934. }
  935. `;var Dv=`/**
  936. * Determines if the fragment is back facing
  937. *
  938. * @name czm_backFacing
  939. * @glslFunction
  940. *
  941. * @returns {bool} <code>true</code> if the fragment is back facing; otherwise, <code>false</code>.
  942. */
  943. bool czm_backFacing()
  944. {
  945. // !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.
  946. return gl_FrontFacing == false;
  947. }
  948. `;var Iv=`/**
  949. * Branchless ternary operator to be used when it's inexpensive to explicitly
  950. * evaluate both possibilities for a float expression.
  951. *
  952. * @name czm_branchFreeTernary
  953. * @glslFunction
  954. *
  955. * @param {bool} comparison A comparison statement
  956. * @param {float} a Value to return if the comparison is true.
  957. * @param {float} b Value to return if the comparison is false.
  958. *
  959. * @returns {float} equivalent of comparison ? a : b
  960. */
  961. float czm_branchFreeTernary(bool comparison, float a, float b) {
  962. float useA = float(comparison);
  963. return a * useA + b * (1.0 - useA);
  964. }
  965. /**
  966. * Branchless ternary operator to be used when it's inexpensive to explicitly
  967. * evaluate both possibilities for a vec2 expression.
  968. *
  969. * @name czm_branchFreeTernary
  970. * @glslFunction
  971. *
  972. * @param {bool} comparison A comparison statement
  973. * @param {vec2} a Value to return if the comparison is true.
  974. * @param {vec2} b Value to return if the comparison is false.
  975. *
  976. * @returns {vec2} equivalent of comparison ? a : b
  977. */
  978. vec2 czm_branchFreeTernary(bool comparison, vec2 a, vec2 b) {
  979. float useA = float(comparison);
  980. return a * useA + b * (1.0 - useA);
  981. }
  982. /**
  983. * Branchless ternary operator to be used when it's inexpensive to explicitly
  984. * evaluate both possibilities for a vec3 expression.
  985. *
  986. * @name czm_branchFreeTernary
  987. * @glslFunction
  988. *
  989. * @param {bool} comparison A comparison statement
  990. * @param {vec3} a Value to return if the comparison is true.
  991. * @param {vec3} b Value to return if the comparison is false.
  992. *
  993. * @returns {vec3} equivalent of comparison ? a : b
  994. */
  995. vec3 czm_branchFreeTernary(bool comparison, vec3 a, vec3 b) {
  996. float useA = float(comparison);
  997. return a * useA + b * (1.0 - useA);
  998. }
  999. /**
  1000. * Branchless ternary operator to be used when it's inexpensive to explicitly
  1001. * evaluate both possibilities for a vec4 expression.
  1002. *
  1003. * @name czm_branchFreeTernary
  1004. * @glslFunction
  1005. *
  1006. * @param {bool} comparison A comparison statement
  1007. * @param {vec3} a Value to return if the comparison is true.
  1008. * @param {vec3} b Value to return if the comparison is false.
  1009. *
  1010. * @returns {vec3} equivalent of comparison ? a : b
  1011. */
  1012. vec4 czm_branchFreeTernary(bool comparison, vec4 a, vec4 b) {
  1013. float useA = float(comparison);
  1014. return a * useA + b * (1.0 - useA);
  1015. }
  1016. `;var Pv=`
  1017. vec4 czm_cascadeColor(vec4 weights)
  1018. {
  1019. return vec4(1.0, 0.0, 0.0, 1.0) * weights.x +
  1020. vec4(0.0, 1.0, 0.0, 1.0) * weights.y +
  1021. vec4(0.0, 0.0, 1.0, 1.0) * weights.z +
  1022. vec4(1.0, 0.0, 1.0, 1.0) * weights.w;
  1023. }
  1024. `;var Ov=`
  1025. uniform vec4 shadowMap_cascadeDistances;
  1026. float czm_cascadeDistance(vec4 weights)
  1027. {
  1028. return dot(shadowMap_cascadeDistances, weights);
  1029. }
  1030. `;var Rv=`
  1031. uniform mat4 shadowMap_cascadeMatrices[4];
  1032. mat4 czm_cascadeMatrix(vec4 weights)
  1033. {
  1034. return shadowMap_cascadeMatrices[0] * weights.x +
  1035. shadowMap_cascadeMatrices[1] * weights.y +
  1036. shadowMap_cascadeMatrices[2] * weights.z +
  1037. shadowMap_cascadeMatrices[3] * weights.w;
  1038. }
  1039. `;var Mv=`
  1040. uniform vec4 shadowMap_cascadeSplits[2];
  1041. vec4 czm_cascadeWeights(float depthEye)
  1042. {
  1043. // One component is set to 1.0 and all others set to 0.0.
  1044. vec4 near = step(shadowMap_cascadeSplits[0], vec4(depthEye));
  1045. vec4 far = step(depthEye, shadowMap_cascadeSplits[1]);
  1046. return near * far;
  1047. }
  1048. `;var Lv=`/**
  1049. * DOC_TBA
  1050. *
  1051. * @name czm_columbusViewMorph
  1052. * @glslFunction
  1053. */
  1054. vec4 czm_columbusViewMorph(vec4 position2D, vec4 position3D, float time)
  1055. {
  1056. // Just linear for now.
  1057. vec3 p = mix(position2D.xyz, position3D.xyz, time);
  1058. return vec4(p, 1.0);
  1059. }
  1060. `;var Nv=`/**
  1061. * Returns a position in model coordinates relative to eye taking into
  1062. * account the current scene mode: 3D, 2D, or Columbus view.
  1063. * <p>
  1064. * This uses standard position attributes, <code>position3DHigh</code>,
  1065. * <code>position3DLow</code>, <code>position2DHigh</code>, and <code>position2DLow</code>,
  1066. * and should be used when writing a vertex shader for an {@link Appearance}.
  1067. * </p>
  1068. *
  1069. * @name czm_computePosition
  1070. * @glslFunction
  1071. *
  1072. * @returns {vec4} The position relative to eye.
  1073. *
  1074. * @example
  1075. * vec4 p = czm_computePosition();
  1076. * v_positionEC = (czm_modelViewRelativeToEye * p).xyz;
  1077. * gl_Position = czm_modelViewProjectionRelativeToEye * p;
  1078. *
  1079. * @see czm_translateRelativeToEye
  1080. */
  1081. vec4 czm_computePosition();
  1082. `;var Fv=`/**
  1083. * @private
  1084. */
  1085. vec2 cordic(float angle)
  1086. {
  1087. // Scale the vector by the appropriate factor for the 24 iterations to follow.
  1088. vec2 vector = vec2(6.0725293500888267e-1, 0.0);
  1089. // Iteration 1
  1090. float sense = (angle < 0.0) ? -1.0 : 1.0;
  1091. // float factor = sense * 1.0; // 2^-0
  1092. mat2 rotation = mat2(1.0, sense, -sense, 1.0);
  1093. vector = rotation * vector;
  1094. angle -= sense * 7.8539816339744828e-1; // atan(2^-0)
  1095. // Iteration 2
  1096. sense = (angle < 0.0) ? -1.0 : 1.0;
  1097. float factor = sense * 5.0e-1; // 2^-1
  1098. rotation[0][1] = factor;
  1099. rotation[1][0] = -factor;
  1100. vector = rotation * vector;
  1101. angle -= sense * 4.6364760900080609e-1; // atan(2^-1)
  1102. // Iteration 3
  1103. sense = (angle < 0.0) ? -1.0 : 1.0;
  1104. factor = sense * 2.5e-1; // 2^-2
  1105. rotation[0][1] = factor;
  1106. rotation[1][0] = -factor;
  1107. vector = rotation * vector;
  1108. angle -= sense * 2.4497866312686414e-1; // atan(2^-2)
  1109. // Iteration 4
  1110. sense = (angle < 0.0) ? -1.0 : 1.0;
  1111. factor = sense * 1.25e-1; // 2^-3
  1112. rotation[0][1] = factor;
  1113. rotation[1][0] = -factor;
  1114. vector = rotation * vector;
  1115. angle -= sense * 1.2435499454676144e-1; // atan(2^-3)
  1116. // Iteration 5
  1117. sense = (angle < 0.0) ? -1.0 : 1.0;
  1118. factor = sense * 6.25e-2; // 2^-4
  1119. rotation[0][1] = factor;
  1120. rotation[1][0] = -factor;
  1121. vector = rotation * vector;
  1122. angle -= sense * 6.2418809995957350e-2; // atan(2^-4)
  1123. // Iteration 6
  1124. sense = (angle < 0.0) ? -1.0 : 1.0;
  1125. factor = sense * 3.125e-2; // 2^-5
  1126. rotation[0][1] = factor;
  1127. rotation[1][0] = -factor;
  1128. vector = rotation * vector;
  1129. angle -= sense * 3.1239833430268277e-2; // atan(2^-5)
  1130. // Iteration 7
  1131. sense = (angle < 0.0) ? -1.0 : 1.0;
  1132. factor = sense * 1.5625e-2; // 2^-6
  1133. rotation[0][1] = factor;
  1134. rotation[1][0] = -factor;
  1135. vector = rotation * vector;
  1136. angle -= sense * 1.5623728620476831e-2; // atan(2^-6)
  1137. // Iteration 8
  1138. sense = (angle < 0.0) ? -1.0 : 1.0;
  1139. factor = sense * 7.8125e-3; // 2^-7
  1140. rotation[0][1] = factor;
  1141. rotation[1][0] = -factor;
  1142. vector = rotation * vector;
  1143. angle -= sense * 7.8123410601011111e-3; // atan(2^-7)
  1144. // Iteration 9
  1145. sense = (angle < 0.0) ? -1.0 : 1.0;
  1146. factor = sense * 3.90625e-3; // 2^-8
  1147. rotation[0][1] = factor;
  1148. rotation[1][0] = -factor;
  1149. vector = rotation * vector;
  1150. angle -= sense * 3.9062301319669718e-3; // atan(2^-8)
  1151. // Iteration 10
  1152. sense = (angle < 0.0) ? -1.0 : 1.0;
  1153. factor = sense * 1.953125e-3; // 2^-9
  1154. rotation[0][1] = factor;
  1155. rotation[1][0] = -factor;
  1156. vector = rotation * vector;
  1157. angle -= sense * 1.9531225164788188e-3; // atan(2^-9)
  1158. // Iteration 11
  1159. sense = (angle < 0.0) ? -1.0 : 1.0;
  1160. factor = sense * 9.765625e-4; // 2^-10
  1161. rotation[0][1] = factor;
  1162. rotation[1][0] = -factor;
  1163. vector = rotation * vector;
  1164. angle -= sense * 9.7656218955931946e-4; // atan(2^-10)
  1165. // Iteration 12
  1166. sense = (angle < 0.0) ? -1.0 : 1.0;
  1167. factor = sense * 4.8828125e-4; // 2^-11
  1168. rotation[0][1] = factor;
  1169. rotation[1][0] = -factor;
  1170. vector = rotation * vector;
  1171. angle -= sense * 4.8828121119489829e-4; // atan(2^-11)
  1172. // Iteration 13
  1173. sense = (angle < 0.0) ? -1.0 : 1.0;
  1174. factor = sense * 2.44140625e-4; // 2^-12
  1175. rotation[0][1] = factor;
  1176. rotation[1][0] = -factor;
  1177. vector = rotation * vector;
  1178. angle -= sense * 2.4414062014936177e-4; // atan(2^-12)
  1179. // Iteration 14
  1180. sense = (angle < 0.0) ? -1.0 : 1.0;
  1181. factor = sense * 1.220703125e-4; // 2^-13
  1182. rotation[0][1] = factor;
  1183. rotation[1][0] = -factor;
  1184. vector = rotation * vector;
  1185. angle -= sense * 1.2207031189367021e-4; // atan(2^-13)
  1186. // Iteration 15
  1187. sense = (angle < 0.0) ? -1.0 : 1.0;
  1188. factor = sense * 6.103515625e-5; // 2^-14
  1189. rotation[0][1] = factor;
  1190. rotation[1][0] = -factor;
  1191. vector = rotation * vector;
  1192. angle -= sense * 6.1035156174208773e-5; // atan(2^-14)
  1193. // Iteration 16
  1194. sense = (angle < 0.0) ? -1.0 : 1.0;
  1195. factor = sense * 3.0517578125e-5; // 2^-15
  1196. rotation[0][1] = factor;
  1197. rotation[1][0] = -factor;
  1198. vector = rotation * vector;
  1199. angle -= sense * 3.0517578115526096e-5; // atan(2^-15)
  1200. // Iteration 17
  1201. sense = (angle < 0.0) ? -1.0 : 1.0;
  1202. factor = sense * 1.52587890625e-5; // 2^-16
  1203. rotation[0][1] = factor;
  1204. rotation[1][0] = -factor;
  1205. vector = rotation * vector;
  1206. angle -= sense * 1.5258789061315762e-5; // atan(2^-16)
  1207. // Iteration 18
  1208. sense = (angle < 0.0) ? -1.0 : 1.0;
  1209. factor = sense * 7.62939453125e-6; // 2^-17
  1210. rotation[0][1] = factor;
  1211. rotation[1][0] = -factor;
  1212. vector = rotation * vector;
  1213. angle -= sense * 7.6293945311019700e-6; // atan(2^-17)
  1214. // Iteration 19
  1215. sense = (angle < 0.0) ? -1.0 : 1.0;
  1216. factor = sense * 3.814697265625e-6; // 2^-18
  1217. rotation[0][1] = factor;
  1218. rotation[1][0] = -factor;
  1219. vector = rotation * vector;
  1220. angle -= sense * 3.8146972656064961e-6; // atan(2^-18)
  1221. // Iteration 20
  1222. sense = (angle < 0.0) ? -1.0 : 1.0;
  1223. factor = sense * 1.9073486328125e-6; // 2^-19
  1224. rotation[0][1] = factor;
  1225. rotation[1][0] = -factor;
  1226. vector = rotation * vector;
  1227. angle -= sense * 1.9073486328101870e-6; // atan(2^-19)
  1228. // Iteration 21
  1229. sense = (angle < 0.0) ? -1.0 : 1.0;
  1230. factor = sense * 9.5367431640625e-7; // 2^-20
  1231. rotation[0][1] = factor;
  1232. rotation[1][0] = -factor;
  1233. vector = rotation * vector;
  1234. angle -= sense * 9.5367431640596084e-7; // atan(2^-20)
  1235. // Iteration 22
  1236. sense = (angle < 0.0) ? -1.0 : 1.0;
  1237. factor = sense * 4.76837158203125e-7; // 2^-21
  1238. rotation[0][1] = factor;
  1239. rotation[1][0] = -factor;
  1240. vector = rotation * vector;
  1241. angle -= sense * 4.7683715820308884e-7; // atan(2^-21)
  1242. // Iteration 23
  1243. sense = (angle < 0.0) ? -1.0 : 1.0;
  1244. factor = sense * 2.384185791015625e-7; // 2^-22
  1245. rotation[0][1] = factor;
  1246. rotation[1][0] = -factor;
  1247. vector = rotation * vector;
  1248. angle -= sense * 2.3841857910155797e-7; // atan(2^-22)
  1249. // Iteration 24
  1250. sense = (angle < 0.0) ? -1.0 : 1.0;
  1251. factor = sense * 1.1920928955078125e-7; // 2^-23
  1252. rotation[0][1] = factor;
  1253. rotation[1][0] = -factor;
  1254. vector = rotation * vector;
  1255. // angle -= sense * 1.1920928955078068e-7; // atan(2^-23)
  1256. return vector;
  1257. }
  1258. /**
  1259. * Computes the cosine and sine of the provided angle using the CORDIC algorithm.
  1260. *
  1261. * @name czm_cosineAndSine
  1262. * @glslFunction
  1263. *
  1264. * @param {float} angle The angle in radians.
  1265. *
  1266. * @returns {vec2} The resulting cosine of the angle (as the x coordinate) and sine of the angle (as the y coordinate).
  1267. *
  1268. * @example
  1269. * vec2 v = czm_cosineAndSine(czm_piOverSix);
  1270. * float cosine = v.x;
  1271. * float sine = v.y;
  1272. */
  1273. vec2 czm_cosineAndSine(float angle)
  1274. {
  1275. if (angle < -czm_piOverTwo || angle > czm_piOverTwo)
  1276. {
  1277. if (angle < 0.0)
  1278. {
  1279. return -cordic(angle + czm_pi);
  1280. }
  1281. else
  1282. {
  1283. return -cordic(angle - czm_pi);
  1284. }
  1285. }
  1286. else
  1287. {
  1288. return cordic(angle);
  1289. }
  1290. }
  1291. `;var Bv=`/**
  1292. * Decompresses texture coordinates that were packed into a single float.
  1293. *
  1294. * @name czm_decompressTextureCoordinates
  1295. * @glslFunction
  1296. *
  1297. * @param {float} encoded The compressed texture coordinates.
  1298. * @returns {vec2} The decompressed texture coordinates.
  1299. */
  1300. vec2 czm_decompressTextureCoordinates(float encoded)
  1301. {
  1302. float temp = encoded / 4096.0;
  1303. float xZeroTo4095 = floor(temp);
  1304. float stx = xZeroTo4095 / 4095.0;
  1305. float sty = (encoded - xZeroTo4095 * 4096.0) / 4095.0;
  1306. return vec2(stx, sty);
  1307. }
  1308. `;var kv=`/**
  1309. * Get default parameters for physically based rendering. These defaults
  1310. * describe a rough dielectric (non-metal) surface (e.g. rough plastic).
  1311. *
  1312. * @return {czm_pbrParameters} Default parameters for {@link czm_pbrLighting}
  1313. */
  1314. czm_pbrParameters czm_defaultPbrMaterial()
  1315. {
  1316. czm_pbrParameters results;
  1317. results.diffuseColor = vec3(1.0);
  1318. results.roughness = 1.0;
  1319. const vec3 REFLECTANCE_DIELECTRIC = vec3(0.04);
  1320. results.f0 = REFLECTANCE_DIELECTRIC;
  1321. return results;
  1322. }
  1323. `;var Uv=`// emulated noperspective
  1324. #if (__VERSION__ == 300 || defined(GL_EXT_frag_depth)) && !defined(LOG_DEPTH)
  1325. out float v_WindowZ;
  1326. #endif
  1327. /**
  1328. * Emulates GL_DEPTH_CLAMP, which is not available in WebGL 1 or 2.
  1329. * GL_DEPTH_CLAMP clamps geometry that is outside the near and far planes,
  1330. * capping the shadow volume. More information here:
  1331. * https://www.khronos.org/registry/OpenGL/extensions/ARB/ARB_depth_clamp.txt.
  1332. *
  1333. * When GL_EXT_frag_depth is available we emulate GL_DEPTH_CLAMP by ensuring
  1334. * no geometry gets clipped by setting the clip space z value to 0.0 and then
  1335. * sending the unaltered screen space z value (using emulated noperspective
  1336. * interpolation) to the frag shader where it is clamped to [0,1] and then
  1337. * written with gl_FragDepth (see czm_writeDepthClamp). This technique is based on:
  1338. * https://stackoverflow.com/questions/5960757/how-to-emulate-gl-depth-clamp-nv.
  1339. *
  1340. * When GL_EXT_frag_depth is not available, which is the case on some mobile
  1341. * devices, we must attempt to fix this only in the vertex shader.
  1342. * The approach is to clamp the z value to the far plane, which closes the
  1343. * shadow volume but also distorts the geometry, so there can still be artifacts
  1344. * on frustum seams.
  1345. *
  1346. * @name czm_depthClamp
  1347. * @glslFunction
  1348. *
  1349. * @param {vec4} coords The vertex in clip coordinates.
  1350. * @returns {vec4} The modified vertex.
  1351. *
  1352. * @example
  1353. * gl_Position = czm_depthClamp(czm_modelViewProjection * vec4(position, 1.0));
  1354. *
  1355. * @see czm_writeDepthClamp
  1356. */
  1357. vec4 czm_depthClamp(vec4 coords)
  1358. {
  1359. #ifndef LOG_DEPTH
  1360. #if __VERSION__ == 300 || defined(GL_EXT_frag_depth)
  1361. v_WindowZ = (0.5 * (coords.z / coords.w) + 0.5) * coords.w;
  1362. coords.z = 0.0;
  1363. #else
  1364. coords.z = min(coords.z, coords.w);
  1365. #endif
  1366. #endif
  1367. return coords;
  1368. }
  1369. `;var Vv=`/**
  1370. * Computes a 3x3 rotation matrix that transforms vectors from an ellipsoid's east-north-up coordinate system
  1371. * to eye coordinates. In east-north-up coordinates, x points east, y points north, and z points along the
  1372. * surface normal. East-north-up can be used as an ellipsoid's tangent space for operations such as bump mapping.
  1373. * <br /><br />
  1374. * The ellipsoid is assumed to be centered at the model coordinate's origin.
  1375. *
  1376. * @name czm_eastNorthUpToEyeCoordinates
  1377. * @glslFunction
  1378. *
  1379. * @param {vec3} positionMC The position on the ellipsoid in model coordinates.
  1380. * @param {vec3} normalEC The normalized ellipsoid surface normal, at <code>positionMC</code>, in eye coordinates.
  1381. *
  1382. * @returns {mat3} A 3x3 rotation matrix that transforms vectors from the east-north-up coordinate system to eye coordinates.
  1383. *
  1384. * @example
  1385. * // Transform a vector defined in the east-north-up coordinate
  1386. * // system, (0, 0, 1) which is the surface normal, to eye
  1387. * // coordinates.
  1388. * mat3 m = czm_eastNorthUpToEyeCoordinates(positionMC, normalEC);
  1389. * vec3 normalEC = m * vec3(0.0, 0.0, 1.0);
  1390. */
  1391. mat3 czm_eastNorthUpToEyeCoordinates(vec3 positionMC, vec3 normalEC)
  1392. {
  1393. vec3 tangentMC = normalize(vec3(-positionMC.y, positionMC.x, 0.0)); // normalized surface tangent in model coordinates
  1394. vec3 tangentEC = normalize(czm_normal3D * tangentMC); // normalized surface tangent in eye coordinates
  1395. vec3 bitangentEC = normalize(cross(normalEC, tangentEC)); // normalized surface bitangent in eye coordinates
  1396. return mat3(
  1397. tangentEC.x, tangentEC.y, tangentEC.z,
  1398. bitangentEC.x, bitangentEC.y, bitangentEC.z,
  1399. normalEC.x, normalEC.y, normalEC.z);
  1400. }
  1401. `;var zv=`/**
  1402. * DOC_TBA
  1403. *
  1404. * @name czm_ellipsoidContainsPoint
  1405. * @glslFunction
  1406. *
  1407. */
  1408. bool czm_ellipsoidContainsPoint(vec3 ellipsoid_inverseRadii, vec3 point)
  1409. {
  1410. vec3 scaled = ellipsoid_inverseRadii * (czm_inverseModelView * vec4(point, 1.0)).xyz;
  1411. return (dot(scaled, scaled) <= 1.0);
  1412. }
  1413. `;var Hv=`/**
  1414. * DOC_TBA
  1415. *
  1416. * @name czm_ellipsoidWgs84TextureCoordinates
  1417. * @glslFunction
  1418. */
  1419. vec2 czm_ellipsoidWgs84TextureCoordinates(vec3 normal)
  1420. {
  1421. return vec2(atan(normal.y, normal.x) * czm_oneOverTwoPi + 0.5, asin(normal.z) * czm_oneOverPi + 0.5);
  1422. }
  1423. `;var Gv=`/**
  1424. * Compares <code>left</code> and <code>right</code> componentwise. Returns <code>true</code>
  1425. * if they are within <code>epsilon</code> and <code>false</code> otherwise. The inputs
  1426. * <code>left</code> and <code>right</code> can be <code>float</code>s, <code>vec2</code>s,
  1427. * <code>vec3</code>s, or <code>vec4</code>s.
  1428. *
  1429. * @name czm_equalsEpsilon
  1430. * @glslFunction
  1431. *
  1432. * @param {} left The first vector.
  1433. * @param {} right The second vector.
  1434. * @param {float} epsilon The epsilon to use for equality testing.
  1435. * @returns {bool} <code>true</code> if the components are within <code>epsilon</code> and <code>false</code> otherwise.
  1436. *
  1437. * @example
  1438. * // GLSL declarations
  1439. * bool czm_equalsEpsilon(float left, float right, float epsilon);
  1440. * bool czm_equalsEpsilon(vec2 left, vec2 right, float epsilon);
  1441. * bool czm_equalsEpsilon(vec3 left, vec3 right, float epsilon);
  1442. * bool czm_equalsEpsilon(vec4 left, vec4 right, float epsilon);
  1443. */
  1444. bool czm_equalsEpsilon(vec4 left, vec4 right, float epsilon) {
  1445. return all(lessThanEqual(abs(left - right), vec4(epsilon)));
  1446. }
  1447. bool czm_equalsEpsilon(vec3 left, vec3 right, float epsilon) {
  1448. return all(lessThanEqual(abs(left - right), vec3(epsilon)));
  1449. }
  1450. bool czm_equalsEpsilon(vec2 left, vec2 right, float epsilon) {
  1451. return all(lessThanEqual(abs(left - right), vec2(epsilon)));
  1452. }
  1453. bool czm_equalsEpsilon(float left, float right, float epsilon) {
  1454. return (abs(left - right) <= epsilon);
  1455. }
  1456. `;var Wv=`/**
  1457. * DOC_TBA
  1458. *
  1459. * @name czm_eyeOffset
  1460. * @glslFunction
  1461. *
  1462. * @param {vec4} positionEC DOC_TBA.
  1463. * @param {vec3} eyeOffset DOC_TBA.
  1464. *
  1465. * @returns {vec4} DOC_TBA.
  1466. */
  1467. vec4 czm_eyeOffset(vec4 positionEC, vec3 eyeOffset)
  1468. {
  1469. // This equation is approximate in x and y.
  1470. vec4 p = positionEC;
  1471. vec4 zEyeOffset = normalize(p) * eyeOffset.z;
  1472. p.xy += eyeOffset.xy + zEyeOffset.xy;
  1473. p.z += zEyeOffset.z;
  1474. return p;
  1475. }
  1476. `;var jv=`/**
  1477. * Transforms a position from eye to window coordinates. The transformation
  1478. * from eye to clip coordinates is done using {@link czm_projection}.
  1479. * The transform from normalized device coordinates to window coordinates is
  1480. * done using {@link czm_viewportTransformation}, which assumes a depth range
  1481. * of <code>near = 0</code> and <code>far = 1</code>.
  1482. * <br /><br />
  1483. * This transform is useful when there is a need to manipulate window coordinates
  1484. * in a vertex shader as done by {@link BillboardCollection}.
  1485. *
  1486. * @name czm_eyeToWindowCoordinates
  1487. * @glslFunction
  1488. *
  1489. * @param {vec4} position The position in eye coordinates to transform.
  1490. *
  1491. * @returns {vec4} The transformed position in window coordinates.
  1492. *
  1493. * @see czm_modelToWindowCoordinates
  1494. * @see czm_projection
  1495. * @see czm_viewportTransformation
  1496. * @see BillboardCollection
  1497. *
  1498. * @example
  1499. * vec4 positionWC = czm_eyeToWindowCoordinates(positionEC);
  1500. */
  1501. vec4 czm_eyeToWindowCoordinates(vec4 positionEC)
  1502. {
  1503. vec4 q = czm_projection * positionEC; // clip coordinates
  1504. q.xyz /= q.w; // normalized device coordinates
  1505. q.xyz = (czm_viewportTransformation * vec4(q.xyz, 1.0)).xyz; // window coordinates
  1506. return q;
  1507. }
  1508. `;var qv=`/**
  1509. * Approxiamtes atan over the range [0, 1]. Safe to flip output for negative input.
  1510. *
  1511. * Based on Michal Drobot's approximation from ShaderFastLibs, which in turn is based on
  1512. * "Efficient approximations for the arctangent function," Rajan, S. Sichun Wang Inkol, R. Joyal, A., May 2006.
  1513. * Adapted from ShaderFastLibs under MIT License.
  1514. *
  1515. * Chosen for the following characteristics over range [0, 1]:
  1516. * - basically no error at 0 and 1, important for getting around range limit (naive atan2 via atan requires infinite range atan)
  1517. * - no visible artifacts from first-derivative discontinuities, unlike latitude via range-reduced sqrt asin approximations (at equator)
  1518. *
  1519. * The original code is x * (-0.1784 * abs(x) - 0.0663 * x * x + 1.0301);
  1520. * Removed the abs() in here because it isn't needed, the input range is guaranteed as [0, 1] by how we're approximating atan2.
  1521. *
  1522. * @name czm_fastApproximateAtan
  1523. * @glslFunction
  1524. *
  1525. * @param {float} x Value between 0 and 1 inclusive.
  1526. *
  1527. * @returns {float} Approximation of atan(x)
  1528. */
  1529. float czm_fastApproximateAtan(float x) {
  1530. return x * (-0.1784 * x - 0.0663 * x * x + 1.0301);
  1531. }
  1532. /**
  1533. * Approximation of atan2.
  1534. *
  1535. * Range reduction math based on nvidia's cg reference implementation for atan2: http://developer.download.nvidia.com/cg/atan2.html
  1536. * However, we replaced their atan curve with Michael Drobot's (see above).
  1537. *
  1538. * @name czm_fastApproximateAtan
  1539. * @glslFunction
  1540. *
  1541. * @param {float} x Value between -1 and 1 inclusive.
  1542. * @param {float} y Value between -1 and 1 inclusive.
  1543. *
  1544. * @returns {float} Approximation of atan2(x, y)
  1545. */
  1546. float czm_fastApproximateAtan(float x, float y) {
  1547. // atan approximations are usually only reliable over [-1, 1], or, in our case, [0, 1] due to modifications.
  1548. // So range-reduce using abs and by flipping whether x or y is on top.
  1549. float t = abs(x); // t used as swap and atan result.
  1550. float opposite = abs(y);
  1551. float adjacent = max(t, opposite);
  1552. opposite = min(t, opposite);
  1553. t = czm_fastApproximateAtan(opposite / adjacent);
  1554. // Undo range reduction
  1555. t = czm_branchFreeTernary(abs(y) > abs(x), czm_piOverTwo - t, t);
  1556. t = czm_branchFreeTernary(x < 0.0, czm_pi - t, t);
  1557. t = czm_branchFreeTernary(y < 0.0, -t, t);
  1558. return t;
  1559. }
  1560. `;var Yv=`/**
  1561. * Gets the color with fog at a distance from the camera.
  1562. *
  1563. * @name czm_fog
  1564. * @glslFunction
  1565. *
  1566. * @param {float} distanceToCamera The distance to the camera in meters.
  1567. * @param {vec3} color The original color.
  1568. * @param {vec3} fogColor The color of the fog.
  1569. *
  1570. * @returns {vec3} The color adjusted for fog at the distance from the camera.
  1571. */
  1572. vec3 czm_fog(float distanceToCamera, vec3 color, vec3 fogColor)
  1573. {
  1574. float scalar = distanceToCamera * czm_fogDensity;
  1575. float fog = 1.0 - exp(-(scalar * scalar));
  1576. return mix(color, fogColor, fog);
  1577. }
  1578. /**
  1579. * Gets the color with fog at a distance from the camera.
  1580. *
  1581. * @name czm_fog
  1582. * @glslFunction
  1583. *
  1584. * @param {float} distanceToCamera The distance to the camera in meters.
  1585. * @param {vec3} color The original color.
  1586. * @param {vec3} fogColor The color of the fog.
  1587. * @param {float} fogModifierConstant A constant to modify the appearance of fog.
  1588. *
  1589. * @returns {vec3} The color adjusted for fog at the distance from the camera.
  1590. */
  1591. vec3 czm_fog(float distanceToCamera, vec3 color, vec3 fogColor, float fogModifierConstant)
  1592. {
  1593. float scalar = distanceToCamera * czm_fogDensity;
  1594. float fog = 1.0 - exp(-((fogModifierConstant * scalar + fogModifierConstant) * (scalar * (1.0 + fogModifierConstant))));
  1595. return mix(color, fogColor, fog);
  1596. }
  1597. `;var Xv=`/**
  1598. * Converts a color from RGB space to linear space.
  1599. *
  1600. * @name czm_gammaCorrect
  1601. * @glslFunction
  1602. *
  1603. * @param {vec3} color The color in RGB space.
  1604. * @returns {vec3} The color in linear space.
  1605. */
  1606. vec3 czm_gammaCorrect(vec3 color) {
  1607. #ifdef HDR
  1608. color = pow(color, vec3(czm_gamma));
  1609. #endif
  1610. return color;
  1611. }
  1612. vec4 czm_gammaCorrect(vec4 color) {
  1613. #ifdef HDR
  1614. color.rgb = pow(color.rgb, vec3(czm_gamma));
  1615. #endif
  1616. return color;
  1617. }
  1618. `;var Kv=`/**
  1619. * DOC_TBA
  1620. *
  1621. * @name czm_geodeticSurfaceNormal
  1622. * @glslFunction
  1623. *
  1624. * @param {vec3} positionOnEllipsoid DOC_TBA
  1625. * @param {vec3} ellipsoidCenter DOC_TBA
  1626. * @param {vec3} oneOverEllipsoidRadiiSquared DOC_TBA
  1627. *
  1628. * @returns {vec3} DOC_TBA.
  1629. */
  1630. vec3 czm_geodeticSurfaceNormal(vec3 positionOnEllipsoid, vec3 ellipsoidCenter, vec3 oneOverEllipsoidRadiiSquared)
  1631. {
  1632. return normalize((positionOnEllipsoid - ellipsoidCenter) * oneOverEllipsoidRadiiSquared);
  1633. }
  1634. `;var Zv=`/**
  1635. * An czm_material with default values. Every material's czm_getMaterial
  1636. * should use this default material as a base for the material it returns.
  1637. * The default normal value is given by materialInput.normalEC.
  1638. *
  1639. * @name czm_getDefaultMaterial
  1640. * @glslFunction
  1641. *
  1642. * @param {czm_materialInput} input The input used to construct the default material.
  1643. *
  1644. * @returns {czm_material} The default material.
  1645. *
  1646. * @see czm_materialInput
  1647. * @see czm_material
  1648. * @see czm_getMaterial
  1649. */
  1650. czm_material czm_getDefaultMaterial(czm_materialInput materialInput)
  1651. {
  1652. czm_material material;
  1653. material.diffuse = vec3(0.0);
  1654. material.specular = 0.0;
  1655. material.shininess = 1.0;
  1656. material.normal = materialInput.normalEC;
  1657. material.emission = vec3(0.0);
  1658. material.alpha = 1.0;
  1659. return material;
  1660. }
  1661. `;var $v=`/**
  1662. * Calculates the intensity of diffusely reflected light.
  1663. *
  1664. * @name czm_getLambertDiffuse
  1665. * @glslFunction
  1666. *
  1667. * @param {vec3} lightDirectionEC Unit vector pointing to the light source in eye coordinates.
  1668. * @param {vec3} normalEC The surface normal in eye coordinates.
  1669. *
  1670. * @returns {float} The intensity of the diffuse reflection.
  1671. *
  1672. * @see czm_phong
  1673. *
  1674. * @example
  1675. * float diffuseIntensity = czm_getLambertDiffuse(lightDirectionEC, normalEC);
  1676. * float specularIntensity = czm_getSpecular(lightDirectionEC, toEyeEC, normalEC, 200);
  1677. * vec3 color = (diffuseColor * diffuseIntensity) + (specularColor * specularIntensity);
  1678. */
  1679. float czm_getLambertDiffuse(vec3 lightDirectionEC, vec3 normalEC)
  1680. {
  1681. return max(dot(lightDirectionEC, normalEC), 0.0);
  1682. }
  1683. `;var Qv=`/**
  1684. * Calculates the specular intensity of reflected light.
  1685. *
  1686. * @name czm_getSpecular
  1687. * @glslFunction
  1688. *
  1689. * @param {vec3} lightDirectionEC Unit vector pointing to the light source in eye coordinates.
  1690. * @param {vec3} toEyeEC Unit vector pointing to the eye position in eye coordinates.
  1691. * @param {vec3} normalEC The surface normal in eye coordinates.
  1692. * @param {float} shininess The sharpness of the specular reflection. Higher values create a smaller, more focused specular highlight.
  1693. *
  1694. * @returns {float} The intensity of the specular highlight.
  1695. *
  1696. * @see czm_phong
  1697. *
  1698. * @example
  1699. * float diffuseIntensity = czm_getLambertDiffuse(lightDirectionEC, normalEC);
  1700. * float specularIntensity = czm_getSpecular(lightDirectionEC, toEyeEC, normalEC, 200);
  1701. * vec3 color = (diffuseColor * diffuseIntensity) + (specularColor * specularIntensity);
  1702. */
  1703. float czm_getSpecular(vec3 lightDirectionEC, vec3 toEyeEC, vec3 normalEC, float shininess)
  1704. {
  1705. vec3 toReflectedLight = reflect(-lightDirectionEC, normalEC);
  1706. float specular = max(dot(toReflectedLight, toEyeEC), 0.0);
  1707. // pow has undefined behavior if both parameters <= 0.
  1708. // Prevent this by making sure shininess is at least czm_epsilon2.
  1709. return pow(specular, max(shininess, czm_epsilon2));
  1710. }
  1711. `;var Jv=`/**
  1712. * @private
  1713. */
  1714. vec4 czm_getWaterNoise(sampler2D normalMap, vec2 uv, float time, float angleInRadians)
  1715. {
  1716. float cosAngle = cos(angleInRadians);
  1717. float sinAngle = sin(angleInRadians);
  1718. // time dependent sampling directions
  1719. vec2 s0 = vec2(1.0/17.0, 0.0);
  1720. vec2 s1 = vec2(-1.0/29.0, 0.0);
  1721. vec2 s2 = vec2(1.0/101.0, 1.0/59.0);
  1722. vec2 s3 = vec2(-1.0/109.0, -1.0/57.0);
  1723. // rotate sampling direction by specified angle
  1724. s0 = vec2((cosAngle * s0.x) - (sinAngle * s0.y), (sinAngle * s0.x) + (cosAngle * s0.y));
  1725. s1 = vec2((cosAngle * s1.x) - (sinAngle * s1.y), (sinAngle * s1.x) + (cosAngle * s1.y));
  1726. s2 = vec2((cosAngle * s2.x) - (sinAngle * s2.y), (sinAngle * s2.x) + (cosAngle * s2.y));
  1727. s3 = vec2((cosAngle * s3.x) - (sinAngle * s3.y), (sinAngle * s3.x) + (cosAngle * s3.y));
  1728. vec2 uv0 = (uv/103.0) + (time * s0);
  1729. vec2 uv1 = uv/107.0 + (time * s1) + vec2(0.23);
  1730. vec2 uv2 = uv/vec2(897.0, 983.0) + (time * s2) + vec2(0.51);
  1731. vec2 uv3 = uv/vec2(991.0, 877.0) + (time * s3) + vec2(0.71);
  1732. uv0 = fract(uv0);
  1733. uv1 = fract(uv1);
  1734. uv2 = fract(uv2);
  1735. uv3 = fract(uv3);
  1736. vec4 noise = (texture(normalMap, uv0)) +
  1737. (texture(normalMap, uv1)) +
  1738. (texture(normalMap, uv2)) +
  1739. (texture(normalMap, uv3));
  1740. // average and scale to between -1 and 1
  1741. return ((noise / 4.0) - 0.5) * 2.0;
  1742. }
  1743. `;var eD=`/**
  1744. * Adjusts the hue of a color.
  1745. *
  1746. * @name czm_hue
  1747. * @glslFunction
  1748. *
  1749. * @param {vec3} rgb The color.
  1750. * @param {float} adjustment The amount to adjust the hue of the color in radians.
  1751. *
  1752. * @returns {float} The color with the hue adjusted.
  1753. *
  1754. * @example
  1755. * vec3 adjustHue = czm_hue(color, czm_pi); // The same as czm_hue(color, -czm_pi)
  1756. */
  1757. vec3 czm_hue(vec3 rgb, float adjustment)
  1758. {
  1759. const mat3 toYIQ = mat3(0.299, 0.587, 0.114,
  1760. 0.595716, -0.274453, -0.321263,
  1761. 0.211456, -0.522591, 0.311135);
  1762. const mat3 toRGB = mat3(1.0, 0.9563, 0.6210,
  1763. 1.0, -0.2721, -0.6474,
  1764. 1.0, -1.107, 1.7046);
  1765. vec3 yiq = toYIQ * rgb;
  1766. float hue = atan(yiq.z, yiq.y) + adjustment;
  1767. float chroma = sqrt(yiq.z * yiq.z + yiq.y * yiq.y);
  1768. vec3 color = vec3(yiq.x, chroma * cos(hue), chroma * sin(hue));
  1769. return toRGB * color;
  1770. }
  1771. `;var tD=`/**
  1772. * Converts a color in linear space to RGB space.
  1773. *
  1774. * @name czm_inverseGamma
  1775. * @glslFunction
  1776. *
  1777. * @param {vec3} color The color in linear space.
  1778. * @returns {vec3} The color in RGB space.
  1779. */
  1780. vec3 czm_inverseGamma(vec3 color) {
  1781. return pow(color, vec3(1.0 / czm_gamma));
  1782. }
  1783. `;var nD=`/**
  1784. * Determines if a time interval is empty.
  1785. *
  1786. * @name czm_isEmpty
  1787. * @glslFunction
  1788. *
  1789. * @param {czm_raySegment} interval The interval to test.
  1790. *
  1791. * @returns {bool} <code>true</code> if the time interval is empty; otherwise, <code>false</code>.
  1792. *
  1793. * @example
  1794. * bool b0 = czm_isEmpty(czm_emptyRaySegment); // true
  1795. * bool b1 = czm_isEmpty(czm_raySegment(0.0, 1.0)); // false
  1796. * bool b2 = czm_isEmpty(czm_raySegment(1.0, 1.0)); // false, contains 1.0.
  1797. */
  1798. bool czm_isEmpty(czm_raySegment interval)
  1799. {
  1800. return (interval.stop < 0.0);
  1801. }
  1802. `;var iD=`/**
  1803. * Determines if a time interval is empty.
  1804. *
  1805. * @name czm_isFull
  1806. * @glslFunction
  1807. *
  1808. * @param {czm_raySegment} interval The interval to test.
  1809. *
  1810. * @returns {bool} <code>true</code> if the time interval is empty; otherwise, <code>false</code>.
  1811. *
  1812. * @example
  1813. * bool b0 = czm_isEmpty(czm_emptyRaySegment); // true
  1814. * bool b1 = czm_isEmpty(czm_raySegment(0.0, 1.0)); // false
  1815. * bool b2 = czm_isEmpty(czm_raySegment(1.0, 1.0)); // false, contains 1.0.
  1816. */
  1817. bool czm_isFull(czm_raySegment interval)
  1818. {
  1819. return (interval.start == 0.0 && interval.stop == czm_infinity);
  1820. }
  1821. `;var oD=`/**
  1822. * Computes the fraction of a Web Wercator rectangle at which a given geodetic latitude is located.
  1823. *
  1824. * @name czm_latitudeToWebMercatorFraction
  1825. * @glslFunction
  1826. *
  1827. * @param {float} latitude The geodetic latitude, in radians.
  1828. * @param {float} southMercatorY The Web Mercator coordinate of the southern boundary of the rectangle.
  1829. * @param {float} oneOverMercatorHeight The total height of the rectangle in Web Mercator coordinates.
  1830. *
  1831. * @returns {float} The fraction of the rectangle at which the latitude occurs. If the latitude is the southern
  1832. * boundary of the rectangle, the return value will be zero. If it is the northern boundary, the return
  1833. * value will be 1.0. Latitudes in between are mapped according to the Web Mercator projection.
  1834. */
  1835. float czm_latitudeToWebMercatorFraction(float latitude, float southMercatorY, float oneOverMercatorHeight)
  1836. {
  1837. float sinLatitude = sin(latitude);
  1838. float mercatorY = 0.5 * log((1.0 + sinLatitude) / (1.0 - sinLatitude));
  1839. return (mercatorY - southMercatorY) * oneOverMercatorHeight;
  1840. }
  1841. `;var rD=`/**
  1842. * Computes distance from an point in 2D to a line in 2D.
  1843. *
  1844. * @name czm_lineDistance
  1845. * @glslFunction
  1846. *
  1847. * param {vec2} point1 A point along the line.
  1848. * param {vec2} point2 A point along the line.
  1849. * param {vec2} point A point that may or may not be on the line.
  1850. * returns {float} The distance from the point to the line.
  1851. */
  1852. float czm_lineDistance(vec2 point1, vec2 point2, vec2 point) {
  1853. 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);
  1854. }
  1855. `;var sD=`/**
  1856. * Converts a linear RGB color to an sRGB color.
  1857. *
  1858. * @param {vec3|vec4} linearIn The color in linear color space.
  1859. * @returns {vec3|vec4} The color in sRGB color space. The vector type matches the input.
  1860. */
  1861. vec3 czm_linearToSrgb(vec3 linearIn)
  1862. {
  1863. return pow(linearIn, vec3(1.0/2.2));
  1864. }
  1865. vec4 czm_linearToSrgb(vec4 linearIn)
  1866. {
  1867. vec3 srgbOut = pow(linearIn.rgb, vec3(1.0/2.2));
  1868. return vec4(srgbOut, linearIn.a);
  1869. }
  1870. `;var aD=`/**
  1871. * Computes the luminance of a color.
  1872. *
  1873. * @name czm_luminance
  1874. * @glslFunction
  1875. *
  1876. * @param {vec3} rgb The color.
  1877. *
  1878. * @returns {float} The luminance.
  1879. *
  1880. * @example
  1881. * float light = czm_luminance(vec3(0.0)); // 0.0
  1882. * float dark = czm_luminance(vec3(1.0)); // ~1.0
  1883. */
  1884. float czm_luminance(vec3 rgb)
  1885. {
  1886. // Algorithm from Chapter 10 of Graphics Shaders.
  1887. const vec3 W = vec3(0.2125, 0.7154, 0.0721);
  1888. return dot(rgb, W);
  1889. }
  1890. `;var cD=`/**
  1891. * Computes the size of a pixel in meters at a distance from the eye.
  1892. * <p>
  1893. * Use this version when passing in a custom pixel ratio. For example, passing in 1.0 will return meters per native device pixel.
  1894. * </p>
  1895. * @name czm_metersPerPixel
  1896. * @glslFunction
  1897. *
  1898. * @param {vec3} positionEC The position to get the meters per pixel in eye coordinates.
  1899. * @param {float} pixelRatio The scaling factor from pixel space to coordinate space
  1900. *
  1901. * @returns {float} The meters per pixel at positionEC.
  1902. */
  1903. float czm_metersPerPixel(vec4 positionEC, float pixelRatio)
  1904. {
  1905. float width = czm_viewport.z;
  1906. float height = czm_viewport.w;
  1907. float pixelWidth;
  1908. float pixelHeight;
  1909. float top = czm_frustumPlanes.x;
  1910. float bottom = czm_frustumPlanes.y;
  1911. float left = czm_frustumPlanes.z;
  1912. float right = czm_frustumPlanes.w;
  1913. if (czm_sceneMode == czm_sceneMode2D || czm_orthographicIn3D == 1.0)
  1914. {
  1915. float frustumWidth = right - left;
  1916. float frustumHeight = top - bottom;
  1917. pixelWidth = frustumWidth / width;
  1918. pixelHeight = frustumHeight / height;
  1919. }
  1920. else
  1921. {
  1922. float distanceToPixel = -positionEC.z;
  1923. float inverseNear = 1.0 / czm_currentFrustum.x;
  1924. float tanTheta = top * inverseNear;
  1925. pixelHeight = 2.0 * distanceToPixel * tanTheta / height;
  1926. tanTheta = right * inverseNear;
  1927. pixelWidth = 2.0 * distanceToPixel * tanTheta / width;
  1928. }
  1929. return max(pixelWidth, pixelHeight) * pixelRatio;
  1930. }
  1931. /**
  1932. * Computes the size of a pixel in meters at a distance from the eye.
  1933. * <p>
  1934. * Use this version when scaling by pixel ratio.
  1935. * </p>
  1936. * @name czm_metersPerPixel
  1937. * @glslFunction
  1938. *
  1939. * @param {vec3} positionEC The position to get the meters per pixel in eye coordinates.
  1940. *
  1941. * @returns {float} The meters per pixel at positionEC.
  1942. */
  1943. float czm_metersPerPixel(vec4 positionEC)
  1944. {
  1945. return czm_metersPerPixel(positionEC, czm_pixelRatio);
  1946. }
  1947. `;var lD=`/**
  1948. * Transforms a position from model to window coordinates. The transformation
  1949. * from model to clip coordinates is done using {@link czm_modelViewProjection}.
  1950. * The transform from normalized device coordinates to window coordinates is
  1951. * done using {@link czm_viewportTransformation}, which assumes a depth range
  1952. * of <code>near = 0</code> and <code>far = 1</code>.
  1953. * <br /><br />
  1954. * This transform is useful when there is a need to manipulate window coordinates
  1955. * in a vertex shader as done by {@link BillboardCollection}.
  1956. * <br /><br />
  1957. * This function should not be confused with {@link czm_viewportOrthographic},
  1958. * which is an orthographic projection matrix that transforms from window
  1959. * coordinates to clip coordinates.
  1960. *
  1961. * @name czm_modelToWindowCoordinates
  1962. * @glslFunction
  1963. *
  1964. * @param {vec4} position The position in model coordinates to transform.
  1965. *
  1966. * @returns {vec4} The transformed position in window coordinates.
  1967. *
  1968. * @see czm_eyeToWindowCoordinates
  1969. * @see czm_modelViewProjection
  1970. * @see czm_viewportTransformation
  1971. * @see czm_viewportOrthographic
  1972. * @see BillboardCollection
  1973. *
  1974. * @example
  1975. * vec4 positionWC = czm_modelToWindowCoordinates(positionMC);
  1976. */
  1977. vec4 czm_modelToWindowCoordinates(vec4 position)
  1978. {
  1979. vec4 q = czm_modelViewProjection * position; // clip coordinates
  1980. q.xyz /= q.w; // normalized device coordinates
  1981. q.xyz = (czm_viewportTransformation * vec4(q.xyz, 1.0)).xyz; // window coordinates
  1982. return q;
  1983. }
  1984. `;var uD=`/**
  1985. * DOC_TBA
  1986. *
  1987. * @name czm_multiplyWithColorBalance
  1988. * @glslFunction
  1989. */
  1990. vec3 czm_multiplyWithColorBalance(vec3 left, vec3 right)
  1991. {
  1992. // Algorithm from Chapter 10 of Graphics Shaders.
  1993. const vec3 W = vec3(0.2125, 0.7154, 0.0721);
  1994. vec3 target = left * right;
  1995. float leftLuminance = dot(left, W);
  1996. float rightLuminance = dot(right, W);
  1997. float targetLuminance = dot(target, W);
  1998. return ((leftLuminance + rightLuminance) / (2.0 * targetLuminance)) * target;
  1999. }
  2000. `;var fD=`/**
  2001. * Computes a value that scales with distance. The scaling is clamped at the near and
  2002. * far distances, and does not extrapolate. This function works with the
  2003. * {@link NearFarScalar} JavaScript class.
  2004. *
  2005. * @name czm_nearFarScalar
  2006. * @glslFunction
  2007. *
  2008. * @param {vec4} nearFarScalar A vector with 4 components: Near distance (x), Near value (y), Far distance (z), Far value (w).
  2009. * @param {float} cameraDistSq The square of the current distance from the camera.
  2010. *
  2011. * @returns {float} The value at this distance.
  2012. */
  2013. float czm_nearFarScalar(vec4 nearFarScalar, float cameraDistSq)
  2014. {
  2015. float valueAtMin = nearFarScalar.y;
  2016. float valueAtMax = nearFarScalar.w;
  2017. float nearDistanceSq = nearFarScalar.x * nearFarScalar.x;
  2018. float farDistanceSq = nearFarScalar.z * nearFarScalar.z;
  2019. float t = (cameraDistSq - nearDistanceSq) / (farDistanceSq - nearDistanceSq);
  2020. t = pow(clamp(t, 0.0, 1.0), 0.2);
  2021. return mix(valueAtMin, valueAtMax, t);
  2022. }
  2023. `;var dD=` /**
  2024. * Decodes a unit-length vector in 'oct' encoding to a normalized 3-component Cartesian vector.
  2025. * The 'oct' encoding is described in "A Survey of Efficient Representations of Independent Unit Vectors",
  2026. * Cigolle et al 2014: http://jcgt.org/published/0003/02/01/
  2027. *
  2028. * @name czm_octDecode
  2029. * @param {vec2} encoded The oct-encoded, unit-length vector
  2030. * @param {float} range The maximum value of the SNORM range. The encoded vector is stored in log2(rangeMax+1) bits.
  2031. * @returns {vec3} The decoded and normalized vector
  2032. */
  2033. vec3 czm_octDecode(vec2 encoded, float range)
  2034. {
  2035. if (encoded.x == 0.0 && encoded.y == 0.0) {
  2036. return vec3(0.0, 0.0, 0.0);
  2037. }
  2038. encoded = encoded / range * 2.0 - 1.0;
  2039. vec3 v = vec3(encoded.x, encoded.y, 1.0 - abs(encoded.x) - abs(encoded.y));
  2040. if (v.z < 0.0)
  2041. {
  2042. v.xy = (1.0 - abs(v.yx)) * czm_signNotZero(v.xy);
  2043. }
  2044. return normalize(v);
  2045. }
  2046. /**
  2047. * Decodes a unit-length vector in 'oct' encoding to a normalized 3-component Cartesian vector.
  2048. * The 'oct' encoding is described in "A Survey of Efficient Representations of Independent Unit Vectors",
  2049. * Cigolle et al 2014: http://jcgt.org/published/0003/02/01/
  2050. *
  2051. * @name czm_octDecode
  2052. * @param {vec2} encoded The oct-encoded, unit-length vector
  2053. * @returns {vec3} The decoded and normalized vector
  2054. */
  2055. vec3 czm_octDecode(vec2 encoded)
  2056. {
  2057. return czm_octDecode(encoded, 255.0);
  2058. }
  2059. /**
  2060. * Decodes a unit-length vector in 'oct' encoding packed into a floating-point number to a normalized 3-component Cartesian vector.
  2061. * The 'oct' encoding is described in "A Survey of Efficient Representations of Independent Unit Vectors",
  2062. * Cigolle et al 2014: http://jcgt.org/published/0003/02/01/
  2063. *
  2064. * @name czm_octDecode
  2065. * @param {float} encoded The oct-encoded, unit-length vector
  2066. * @returns {vec3} The decoded and normalized vector
  2067. */
  2068. vec3 czm_octDecode(float encoded)
  2069. {
  2070. float temp = encoded / 256.0;
  2071. float x = floor(temp);
  2072. float y = (temp - x) * 256.0;
  2073. return czm_octDecode(vec2(x, y));
  2074. }
  2075. /**
  2076. * Decodes three unit-length vectors in 'oct' encoding packed into two floating-point numbers to normalized 3-component Cartesian vectors.
  2077. * The 'oct' encoding is described in "A Survey of Efficient Representations of Independent Unit Vectors",
  2078. * Cigolle et al 2014: http://jcgt.org/published/0003/02/01/
  2079. *
  2080. * @name czm_octDecode
  2081. * @param {vec2} encoded The packed oct-encoded, unit-length vectors.
  2082. * @param {vec3} vector1 One decoded and normalized vector.
  2083. * @param {vec3} vector2 One decoded and normalized vector.
  2084. * @param {vec3} vector3 One decoded and normalized vector.
  2085. */
  2086. void czm_octDecode(vec2 encoded, out vec3 vector1, out vec3 vector2, out vec3 vector3)
  2087. {
  2088. float temp = encoded.x / 65536.0;
  2089. float x = floor(temp);
  2090. float encodedFloat1 = (temp - x) * 65536.0;
  2091. temp = encoded.y / 65536.0;
  2092. float y = floor(temp);
  2093. float encodedFloat2 = (temp - y) * 65536.0;
  2094. vector1 = czm_octDecode(encodedFloat1);
  2095. vector2 = czm_octDecode(encodedFloat2);
  2096. vector3 = czm_octDecode(vec2(x, y));
  2097. }
  2098. `;var hD=`/**
  2099. * Packs a depth value into a vec3 that can be represented by unsigned bytes.
  2100. *
  2101. * @name czm_packDepth
  2102. * @glslFunction
  2103. *
  2104. * @param {float} depth The floating-point depth.
  2105. * @returns {vec3} The packed depth.
  2106. */
  2107. vec4 czm_packDepth(float depth)
  2108. {
  2109. // See Aras Pranckevi\u010Dius' post Encoding Floats to RGBA
  2110. // http://aras-p.info/blog/2009/07/30/encoding-floats-to-rgba-the-final/
  2111. vec4 enc = vec4(1.0, 255.0, 65025.0, 16581375.0) * depth;
  2112. enc = fract(enc);
  2113. enc -= enc.yzww * vec4(1.0 / 255.0, 1.0 / 255.0, 1.0 / 255.0, 0.0);
  2114. return enc;
  2115. }
  2116. `;var mD=`vec3 lambertianDiffuse(vec3 diffuseColor)
  2117. {
  2118. return diffuseColor / czm_pi;
  2119. }
  2120. vec3 fresnelSchlick2(vec3 f0, vec3 f90, float VdotH)
  2121. {
  2122. return f0 + (f90 - f0) * pow(clamp(1.0 - VdotH, 0.0, 1.0), 5.0);
  2123. }
  2124. float smithVisibilityG1(float NdotV, float roughness)
  2125. {
  2126. // this is the k value for direct lighting.
  2127. // for image based lighting it will be roughness^2 / 2
  2128. float k = (roughness + 1.0) * (roughness + 1.0) / 8.0;
  2129. return NdotV / (NdotV * (1.0 - k) + k);
  2130. }
  2131. float smithVisibilityGGX(float roughness, float NdotL, float NdotV)
  2132. {
  2133. return (
  2134. smithVisibilityG1(NdotL, roughness) *
  2135. smithVisibilityG1(NdotV, roughness)
  2136. );
  2137. }
  2138. float GGX(float roughness, float NdotH)
  2139. {
  2140. float roughnessSquared = roughness * roughness;
  2141. float f = (NdotH * roughnessSquared - NdotH) * NdotH + 1.0;
  2142. return roughnessSquared / (czm_pi * f * f);
  2143. }
  2144. /**
  2145. * Compute the diffuse and specular contributions using physically based
  2146. * rendering. This function only handles direct lighting.
  2147. * <p>
  2148. * This function only handles the lighting calculations. Metallic/roughness
  2149. * and specular/glossy must be handled separately. See {@czm_pbrMetallicRoughnessMaterial}, {@czm_pbrSpecularGlossinessMaterial} and {@czm_defaultPbrMaterial}
  2150. * </p>
  2151. *
  2152. * @name czm_pbrlighting
  2153. * @glslFunction
  2154. *
  2155. * @param {vec3} positionEC The position of the fragment in eye coordinates
  2156. * @param {vec3} normalEC The surface normal in eye coordinates
  2157. * @param {vec3} lightDirectionEC Unit vector pointing to the light source in eye coordinates.
  2158. * @param {vec3} lightColorHdr radiance of the light source. This is a HDR value.
  2159. * @param {czm_pbrParameters} The computed PBR parameters.
  2160. * @return {vec3} The computed HDR color
  2161. *
  2162. * @example
  2163. * czm_pbrParameters pbrParameters = czm_pbrMetallicRoughnessMaterial(
  2164. * baseColor,
  2165. * metallic,
  2166. * roughness
  2167. * );
  2168. * vec3 color = czm_pbrlighting(
  2169. * positionEC,
  2170. * normalEC,
  2171. * lightDirectionEC,
  2172. * lightColorHdr,
  2173. * pbrParameters);
  2174. */
  2175. vec3 czm_pbrLighting(
  2176. vec3 positionEC,
  2177. vec3 normalEC,
  2178. vec3 lightDirectionEC,
  2179. vec3 lightColorHdr,
  2180. czm_pbrParameters pbrParameters
  2181. )
  2182. {
  2183. vec3 v = -normalize(positionEC);
  2184. vec3 l = normalize(lightDirectionEC);
  2185. vec3 h = normalize(v + l);
  2186. vec3 n = normalEC;
  2187. float NdotL = clamp(dot(n, l), 0.001, 1.0);
  2188. float NdotV = abs(dot(n, v)) + 0.001;
  2189. float NdotH = clamp(dot(n, h), 0.0, 1.0);
  2190. float LdotH = clamp(dot(l, h), 0.0, 1.0);
  2191. float VdotH = clamp(dot(v, h), 0.0, 1.0);
  2192. vec3 f0 = pbrParameters.f0;
  2193. float reflectance = max(max(f0.r, f0.g), f0.b);
  2194. vec3 f90 = vec3(clamp(reflectance * 25.0, 0.0, 1.0));
  2195. vec3 F = fresnelSchlick2(f0, f90, VdotH);
  2196. float alpha = pbrParameters.roughness;
  2197. float G = smithVisibilityGGX(alpha, NdotL, NdotV);
  2198. float D = GGX(alpha, NdotH);
  2199. vec3 specularContribution = F * G * D / (4.0 * NdotL * NdotV);
  2200. vec3 diffuseColor = pbrParameters.diffuseColor;
  2201. // F here represents the specular contribution
  2202. vec3 diffuseContribution = (1.0 - F) * lambertianDiffuse(diffuseColor);
  2203. // Lo = (diffuse + specular) * Li * NdotL
  2204. return (diffuseContribution + specularContribution) * NdotL * lightColorHdr;
  2205. }
  2206. `;var pD=`/**
  2207. * Compute parameters for physically based rendering using the
  2208. * metallic/roughness workflow. All inputs are linear; sRGB texture values must
  2209. * be decoded beforehand
  2210. *
  2211. * @name czm_pbrMetallicRoughnessMaterial
  2212. * @glslFunction
  2213. *
  2214. * @param {vec3} baseColor For dielectrics, this is the base color. For metals, this is the f0 value (reflectance at normal incidence)
  2215. * @param {float} metallic 0.0 indicates dielectric. 1.0 indicates metal. Values in between are allowed (e.g. to model rust or dirt);
  2216. * @param {float} roughness A value between 0.0 and 1.0
  2217. * @return {czm_pbrParameters} parameters to pass into {@link czm_pbrLighting}
  2218. */
  2219. czm_pbrParameters czm_pbrMetallicRoughnessMaterial(
  2220. vec3 baseColor,
  2221. float metallic,
  2222. float roughness
  2223. )
  2224. {
  2225. czm_pbrParameters results;
  2226. // roughness is authored as perceptual roughness
  2227. // square it to get material roughness
  2228. roughness = clamp(roughness, 0.0, 1.0);
  2229. results.roughness = roughness * roughness;
  2230. // dielectrics use f0 = 0.04, metals use albedo as f0
  2231. metallic = clamp(metallic, 0.0, 1.0);
  2232. const vec3 REFLECTANCE_DIELECTRIC = vec3(0.04);
  2233. vec3 f0 = mix(REFLECTANCE_DIELECTRIC, baseColor, metallic);
  2234. results.f0 = f0;
  2235. // diffuse only applies to dielectrics.
  2236. results.diffuseColor = baseColor * (1.0 - f0) * (1.0 - metallic);
  2237. return results;
  2238. }
  2239. `;var _D=`/**
  2240. * Compute parameters for physically based rendering using the
  2241. * specular/glossy workflow. All inputs are linear; sRGB texture values must
  2242. * be decoded beforehand
  2243. *
  2244. * @name czm_pbrSpecularGlossinessMaterial
  2245. * @glslFunction
  2246. *
  2247. * @param {vec3} diffuse The diffuse color for dielectrics (non-metals)
  2248. * @param {vec3} specular The reflectance at normal incidence (f0)
  2249. * @param {float} glossiness A number from 0.0 to 1.0 indicating how smooth the surface is.
  2250. * @return {czm_pbrParameters} parameters to pass into {@link czm_pbrLighting}
  2251. */
  2252. czm_pbrParameters czm_pbrSpecularGlossinessMaterial(
  2253. vec3 diffuse,
  2254. vec3 specular,
  2255. float glossiness
  2256. )
  2257. {
  2258. czm_pbrParameters results;
  2259. // glossiness is the opposite of roughness, but easier for artists to use.
  2260. float roughness = 1.0 - glossiness;
  2261. results.roughness = roughness * roughness;
  2262. results.diffuseColor = diffuse * (1.0 - max(max(specular.r, specular.g), specular.b));
  2263. results.f0 = specular;
  2264. return results;
  2265. }
  2266. `;var gD=`float czm_private_getLambertDiffuseOfMaterial(vec3 lightDirectionEC, czm_material material)
  2267. {
  2268. return czm_getLambertDiffuse(lightDirectionEC, material.normal);
  2269. }
  2270. float czm_private_getSpecularOfMaterial(vec3 lightDirectionEC, vec3 toEyeEC, czm_material material)
  2271. {
  2272. return czm_getSpecular(lightDirectionEC, toEyeEC, material.normal, material.shininess);
  2273. }
  2274. /**
  2275. * Computes a color using the Phong lighting model.
  2276. *
  2277. * @name czm_phong
  2278. * @glslFunction
  2279. *
  2280. * @param {vec3} toEye A normalized vector from the fragment to the eye in eye coordinates.
  2281. * @param {czm_material} material The fragment's material.
  2282. *
  2283. * @returns {vec4} The computed color.
  2284. *
  2285. * @example
  2286. * vec3 positionToEyeEC = // ...
  2287. * czm_material material = // ...
  2288. * vec3 lightDirectionEC = // ...
  2289. * out_FragColor = czm_phong(normalize(positionToEyeEC), material, lightDirectionEC);
  2290. *
  2291. * @see czm_getMaterial
  2292. */
  2293. vec4 czm_phong(vec3 toEye, czm_material material, vec3 lightDirectionEC)
  2294. {
  2295. // Diffuse from directional light sources at eye (for top-down)
  2296. float diffuse = czm_private_getLambertDiffuseOfMaterial(vec3(0.0, 0.0, 1.0), material);
  2297. if (czm_sceneMode == czm_sceneMode3D) {
  2298. // (and horizon views in 3D)
  2299. diffuse += czm_private_getLambertDiffuseOfMaterial(vec3(0.0, 1.0, 0.0), material);
  2300. }
  2301. float specular = czm_private_getSpecularOfMaterial(lightDirectionEC, toEye, material);
  2302. // Temporary workaround for adding ambient.
  2303. vec3 materialDiffuse = material.diffuse * 0.5;
  2304. vec3 ambient = materialDiffuse;
  2305. vec3 color = ambient + material.emission;
  2306. color += materialDiffuse * diffuse * czm_lightColor;
  2307. color += material.specular * specular * czm_lightColor;
  2308. return vec4(color, material.alpha);
  2309. }
  2310. vec4 czm_private_phong(vec3 toEye, czm_material material, vec3 lightDirectionEC)
  2311. {
  2312. float diffuse = czm_private_getLambertDiffuseOfMaterial(lightDirectionEC, material);
  2313. float specular = czm_private_getSpecularOfMaterial(lightDirectionEC, toEye, material);
  2314. vec3 ambient = vec3(0.0);
  2315. vec3 color = ambient + material.emission;
  2316. color += material.diffuse * diffuse * czm_lightColor;
  2317. color += material.specular * specular * czm_lightColor;
  2318. return vec4(color, material.alpha);
  2319. }
  2320. `;var yD=`/**
  2321. * Computes distance from a point to a plane.
  2322. *
  2323. * @name czm_planeDistance
  2324. * @glslFunction
  2325. *
  2326. * param {vec4} plane A Plane in Hessian Normal Form. See Plane.js
  2327. * param {vec3} point A point in the same space as the plane.
  2328. * returns {float} The distance from the point to the plane.
  2329. */
  2330. float czm_planeDistance(vec4 plane, vec3 point) {
  2331. return (dot(plane.xyz, point) + plane.w);
  2332. }
  2333. /**
  2334. * Computes distance from a point to a plane.
  2335. *
  2336. * @name czm_planeDistance
  2337. * @glslFunction
  2338. *
  2339. * param {vec3} planeNormal Normal for a plane in Hessian Normal Form. See Plane.js
  2340. * param {float} planeDistance Distance for a plane in Hessian Normal form. See Plane.js
  2341. * param {vec3} point A point in the same space as the plane.
  2342. * returns {float} The distance from the point to the plane.
  2343. */
  2344. float czm_planeDistance(vec3 planeNormal, float planeDistance, vec3 point) {
  2345. return (dot(planeNormal, point) + planeDistance);
  2346. }
  2347. `;var xD=`/**
  2348. * Computes the point along a ray at the given time. <code>time</code> can be positive, negative, or zero.
  2349. *
  2350. * @name czm_pointAlongRay
  2351. * @glslFunction
  2352. *
  2353. * @param {czm_ray} ray The ray to compute the point along.
  2354. * @param {float} time The time along the ray.
  2355. *
  2356. * @returns {vec3} The point along the ray at the given time.
  2357. *
  2358. * @example
  2359. * czm_ray ray = czm_ray(vec3(0.0), vec3(1.0, 0.0, 0.0)); // origin, direction
  2360. * vec3 v = czm_pointAlongRay(ray, 2.0); // (2.0, 0.0, 0.0)
  2361. */
  2362. vec3 czm_pointAlongRay(czm_ray ray, float time)
  2363. {
  2364. return ray.origin + (time * ray.direction);
  2365. }
  2366. `;var bD=`/**
  2367. * DOC_TBA
  2368. *
  2369. * @name czm_rayEllipsoidIntersectionInterval
  2370. * @glslFunction
  2371. */
  2372. czm_raySegment czm_rayEllipsoidIntersectionInterval(czm_ray ray, vec3 ellipsoid_center, vec3 ellipsoid_inverseRadii)
  2373. {
  2374. // ray and ellipsoid center in eye coordinates. radii in model coordinates.
  2375. vec3 q = ellipsoid_inverseRadii * (czm_inverseModelView * vec4(ray.origin, 1.0)).xyz;
  2376. vec3 w = ellipsoid_inverseRadii * (czm_inverseModelView * vec4(ray.direction, 0.0)).xyz;
  2377. q = q - ellipsoid_inverseRadii * (czm_inverseModelView * vec4(ellipsoid_center, 1.0)).xyz;
  2378. float q2 = dot(q, q);
  2379. float qw = dot(q, w);
  2380. if (q2 > 1.0) // Outside ellipsoid.
  2381. {
  2382. if (qw >= 0.0) // Looking outward or tangent (0 intersections).
  2383. {
  2384. return czm_emptyRaySegment;
  2385. }
  2386. else // qw < 0.0.
  2387. {
  2388. float qw2 = qw * qw;
  2389. float difference = q2 - 1.0; // Positively valued.
  2390. float w2 = dot(w, w);
  2391. float product = w2 * difference;
  2392. if (qw2 < product) // Imaginary roots (0 intersections).
  2393. {
  2394. return czm_emptyRaySegment;
  2395. }
  2396. else if (qw2 > product) // Distinct roots (2 intersections).
  2397. {
  2398. float discriminant = qw * qw - product;
  2399. float temp = -qw + sqrt(discriminant); // Avoid cancellation.
  2400. float root0 = temp / w2;
  2401. float root1 = difference / temp;
  2402. if (root0 < root1)
  2403. {
  2404. czm_raySegment i = czm_raySegment(root0, root1);
  2405. return i;
  2406. }
  2407. else
  2408. {
  2409. czm_raySegment i = czm_raySegment(root1, root0);
  2410. return i;
  2411. }
  2412. }
  2413. else // qw2 == product. Repeated roots (2 intersections).
  2414. {
  2415. float root = sqrt(difference / w2);
  2416. czm_raySegment i = czm_raySegment(root, root);
  2417. return i;
  2418. }
  2419. }
  2420. }
  2421. else if (q2 < 1.0) // Inside ellipsoid (2 intersections).
  2422. {
  2423. float difference = q2 - 1.0; // Negatively valued.
  2424. float w2 = dot(w, w);
  2425. float product = w2 * difference; // Negatively valued.
  2426. float discriminant = qw * qw - product;
  2427. float temp = -qw + sqrt(discriminant); // Positively valued.
  2428. czm_raySegment i = czm_raySegment(0.0, temp / w2);
  2429. return i;
  2430. }
  2431. else // q2 == 1.0. On ellipsoid.
  2432. {
  2433. if (qw < 0.0) // Looking inward.
  2434. {
  2435. float w2 = dot(w, w);
  2436. czm_raySegment i = czm_raySegment(0.0, -qw / w2);
  2437. return i;
  2438. }
  2439. else // qw >= 0.0. Looking outward or tangent.
  2440. {
  2441. return czm_emptyRaySegment;
  2442. }
  2443. }
  2444. }
  2445. `;var TD=`/**
  2446. * Compute the intersection interval of a ray with a sphere.
  2447. *
  2448. * @name czm_raySphereIntersectionInterval
  2449. * @glslFunction
  2450. *
  2451. * @param {czm_ray} ray The ray.
  2452. * @param {vec3} center The center of the sphere.
  2453. * @param {float} radius The radius of the sphere.
  2454. * @return {czm_raySegment} The intersection interval of the ray with the sphere.
  2455. */
  2456. czm_raySegment czm_raySphereIntersectionInterval(czm_ray ray, vec3 center, float radius)
  2457. {
  2458. vec3 o = ray.origin;
  2459. vec3 d = ray.direction;
  2460. vec3 oc = o - center;
  2461. float a = dot(d, d);
  2462. float b = 2.0 * dot(d, oc);
  2463. float c = dot(oc, oc) - (radius * radius);
  2464. float det = (b * b) - (4.0 * a * c);
  2465. if (det < 0.0) {
  2466. return czm_emptyRaySegment;
  2467. }
  2468. float sqrtDet = sqrt(det);
  2469. float t0 = (-b - sqrtDet) / (2.0 * a);
  2470. float t1 = (-b + sqrtDet) / (2.0 * a);
  2471. czm_raySegment result = czm_raySegment(t0, t1);
  2472. return result;
  2473. }
  2474. `;var AD=`float czm_readDepth(sampler2D depthTexture, vec2 texCoords)
  2475. {
  2476. return czm_reverseLogDepth(texture(depthTexture, texCoords).r);
  2477. }
  2478. `;var CD=`/**
  2479. * Reads a value previously transformed with {@link czm_writeNonPerspective}
  2480. * by dividing it by \`w\`, the value used in the perspective divide.
  2481. * This function is intended to be called in a fragment shader to access a
  2482. * \`varying\` that should not be subject to perspective interpolation.
  2483. * For example, screen-space texture coordinates. The value should have been
  2484. * previously written in the vertex shader with a call to
  2485. * {@link czm_writeNonPerspective}.
  2486. *
  2487. * @name czm_readNonPerspective
  2488. * @glslFunction
  2489. *
  2490. * @param {float|vec2|vec3|vec4} value The non-perspective value to be read.
  2491. * @param {float} oneOverW One over the perspective divide value, \`w\`. Usually this is simply \`gl_FragCoord.w\`.
  2492. * @returns {float|vec2|vec3|vec4} The usable value.
  2493. */
  2494. float czm_readNonPerspective(float value, float oneOverW) {
  2495. return value * oneOverW;
  2496. }
  2497. vec2 czm_readNonPerspective(vec2 value, float oneOverW) {
  2498. return value * oneOverW;
  2499. }
  2500. vec3 czm_readNonPerspective(vec3 value, float oneOverW) {
  2501. return value * oneOverW;
  2502. }
  2503. vec4 czm_readNonPerspective(vec4 value, float oneOverW) {
  2504. return value * oneOverW;
  2505. }
  2506. `;var ED=`float czm_reverseLogDepth(float logZ)
  2507. {
  2508. #ifdef LOG_DEPTH
  2509. float near = czm_currentFrustum.x;
  2510. float far = czm_currentFrustum.y;
  2511. float log2Depth = logZ * czm_log2FarDepthFromNearPlusOne;
  2512. float depthFromNear = pow(2.0, log2Depth) - 1.0;
  2513. return far * (1.0 - near / (depthFromNear + near)) / (far - near);
  2514. #endif
  2515. return logZ;
  2516. }
  2517. `;var SD=`/**
  2518. * Round a floating point value. This function exists because round() doesn't
  2519. * exist in GLSL 1.00.
  2520. *
  2521. * @param {float|vec2|vec3|vec4} value The value to round
  2522. * @param {float|vec2|vec3|vec3} The rounded value. The type matches the input.
  2523. */
  2524. float czm_round(float value) {
  2525. return floor(value + 0.5);
  2526. }
  2527. vec2 czm_round(vec2 value) {
  2528. return floor(value + 0.5);
  2529. }
  2530. vec3 czm_round(vec3 value) {
  2531. return floor(value + 0.5);
  2532. }
  2533. vec4 czm_round(vec4 value) {
  2534. return floor(value + 0.5);
  2535. }
  2536. `;var wD=`/**
  2537. * Samples the 4 neighboring pixels and return the weighted average.
  2538. *
  2539. * @private
  2540. */
  2541. vec3 czm_sampleOctahedralProjectionWithFiltering(sampler2D projectedMap, vec2 textureSize, vec3 direction, float lod)
  2542. {
  2543. direction /= dot(vec3(1.0), abs(direction));
  2544. vec2 rev = abs(direction.zx) - vec2(1.0);
  2545. vec2 neg = vec2(direction.x < 0.0 ? rev.x : -rev.x,
  2546. direction.z < 0.0 ? rev.y : -rev.y);
  2547. vec2 uv = direction.y < 0.0 ? neg : direction.xz;
  2548. vec2 coord = 0.5 * uv + vec2(0.5);
  2549. vec2 pixel = 1.0 / textureSize;
  2550. if (lod > 0.0)
  2551. {
  2552. // Each subseqeuent mip level is half the size
  2553. float scale = 1.0 / pow(2.0, lod);
  2554. float offset = ((textureSize.y + 1.0) / textureSize.x);
  2555. coord.x *= offset;
  2556. coord *= scale;
  2557. coord.x += offset + pixel.x;
  2558. coord.y += (1.0 - (1.0 / pow(2.0, lod - 1.0))) + pixel.y * (lod - 1.0) * 2.0;
  2559. }
  2560. else
  2561. {
  2562. coord.x *= (textureSize.y / textureSize.x);
  2563. }
  2564. // Do bilinear filtering
  2565. #ifndef OES_texture_float_linear
  2566. vec3 color1 = texture(projectedMap, coord + vec2(0.0, pixel.y)).rgb;
  2567. vec3 color2 = texture(projectedMap, coord + vec2(pixel.x, 0.0)).rgb;
  2568. vec3 color3 = texture(projectedMap, coord + pixel).rgb;
  2569. vec3 color4 = texture(projectedMap, coord).rgb;
  2570. vec2 texturePosition = coord * textureSize;
  2571. float fu = fract(texturePosition.x);
  2572. float fv = fract(texturePosition.y);
  2573. vec3 average1 = mix(color4, color2, fu);
  2574. vec3 average2 = mix(color1, color3, fu);
  2575. vec3 color = mix(average1, average2, fv);
  2576. #else
  2577. vec3 color = texture(projectedMap, coord).rgb;
  2578. #endif
  2579. return color;
  2580. }
  2581. /**
  2582. * Samples from a cube map that has been projected using an octahedral projection from the given direction.
  2583. *
  2584. * @name czm_sampleOctahedralProjection
  2585. * @glslFunction
  2586. *
  2587. * @param {sampler2D} projectedMap The texture with the octahedral projected cube map.
  2588. * @param {vec2} textureSize The width and height dimensions in pixels of the projected map.
  2589. * @param {vec3} direction The normalized direction used to sample the cube map.
  2590. * @param {float} lod The level of detail to sample.
  2591. * @param {float} maxLod The maximum level of detail.
  2592. * @returns {vec3} The color of the cube map at the direction.
  2593. */
  2594. vec3 czm_sampleOctahedralProjection(sampler2D projectedMap, vec2 textureSize, vec3 direction, float lod, float maxLod) {
  2595. float currentLod = floor(lod + 0.5);
  2596. float nextLod = min(currentLod + 1.0, maxLod);
  2597. vec3 colorCurrentLod = czm_sampleOctahedralProjectionWithFiltering(projectedMap, textureSize, direction, currentLod);
  2598. vec3 colorNextLod = czm_sampleOctahedralProjectionWithFiltering(projectedMap, textureSize, direction, nextLod);
  2599. return mix(colorNextLod, colorCurrentLod, nextLod - lod);
  2600. }
  2601. `;var vD=`/**
  2602. * Adjusts the saturation of a color.
  2603. *
  2604. * @name czm_saturation
  2605. * @glslFunction
  2606. *
  2607. * @param {vec3} rgb The color.
  2608. * @param {float} adjustment The amount to adjust the saturation of the color.
  2609. *
  2610. * @returns {float} The color with the saturation adjusted.
  2611. *
  2612. * @example
  2613. * vec3 greyScale = czm_saturation(color, 0.0);
  2614. * vec3 doubleSaturation = czm_saturation(color, 2.0);
  2615. */
  2616. vec3 czm_saturation(vec3 rgb, float adjustment)
  2617. {
  2618. // Algorithm from Chapter 16 of OpenGL Shading Language
  2619. const vec3 W = vec3(0.2125, 0.7154, 0.0721);
  2620. vec3 intensity = vec3(dot(rgb, W));
  2621. return mix(intensity, rgb, adjustment);
  2622. }
  2623. `;var DD=`
  2624. float czm_sampleShadowMap(highp samplerCube shadowMap, vec3 d)
  2625. {
  2626. return czm_unpackDepth(czm_textureCube(shadowMap, d));
  2627. }
  2628. float czm_sampleShadowMap(highp sampler2D shadowMap, vec2 uv)
  2629. {
  2630. #ifdef USE_SHADOW_DEPTH_TEXTURE
  2631. return texture(shadowMap, uv).r;
  2632. #else
  2633. return czm_unpackDepth(texture(shadowMap, uv));
  2634. #endif
  2635. }
  2636. float czm_shadowDepthCompare(samplerCube shadowMap, vec3 uv, float depth)
  2637. {
  2638. return step(depth, czm_sampleShadowMap(shadowMap, uv));
  2639. }
  2640. float czm_shadowDepthCompare(sampler2D shadowMap, vec2 uv, float depth)
  2641. {
  2642. return step(depth, czm_sampleShadowMap(shadowMap, uv));
  2643. }
  2644. `;var ID=`
  2645. float czm_private_shadowVisibility(float visibility, float nDotL, float normalShadingSmooth, float darkness)
  2646. {
  2647. #ifdef USE_NORMAL_SHADING
  2648. #ifdef USE_NORMAL_SHADING_SMOOTH
  2649. float strength = clamp(nDotL / normalShadingSmooth, 0.0, 1.0);
  2650. #else
  2651. float strength = step(0.0, nDotL);
  2652. #endif
  2653. visibility *= strength;
  2654. #endif
  2655. visibility = max(visibility, darkness);
  2656. return visibility;
  2657. }
  2658. #ifdef USE_CUBE_MAP_SHADOW
  2659. float czm_shadowVisibility(samplerCube shadowMap, czm_shadowParameters shadowParameters)
  2660. {
  2661. float depthBias = shadowParameters.depthBias;
  2662. float depth = shadowParameters.depth;
  2663. float nDotL = shadowParameters.nDotL;
  2664. float normalShadingSmooth = shadowParameters.normalShadingSmooth;
  2665. float darkness = shadowParameters.darkness;
  2666. vec3 uvw = shadowParameters.texCoords;
  2667. depth -= depthBias;
  2668. float visibility = czm_shadowDepthCompare(shadowMap, uvw, depth);
  2669. return czm_private_shadowVisibility(visibility, nDotL, normalShadingSmooth, darkness);
  2670. }
  2671. #else
  2672. float czm_shadowVisibility(sampler2D shadowMap, czm_shadowParameters shadowParameters)
  2673. {
  2674. float depthBias = shadowParameters.depthBias;
  2675. float depth = shadowParameters.depth;
  2676. float nDotL = shadowParameters.nDotL;
  2677. float normalShadingSmooth = shadowParameters.normalShadingSmooth;
  2678. float darkness = shadowParameters.darkness;
  2679. vec2 uv = shadowParameters.texCoords;
  2680. depth -= depthBias;
  2681. #ifdef USE_SOFT_SHADOWS
  2682. vec2 texelStepSize = shadowParameters.texelStepSize;
  2683. float radius = 1.0;
  2684. float dx0 = -texelStepSize.x * radius;
  2685. float dy0 = -texelStepSize.y * radius;
  2686. float dx1 = texelStepSize.x * radius;
  2687. float dy1 = texelStepSize.y * radius;
  2688. float visibility = (
  2689. czm_shadowDepthCompare(shadowMap, uv, depth) +
  2690. czm_shadowDepthCompare(shadowMap, uv + vec2(dx0, dy0), depth) +
  2691. czm_shadowDepthCompare(shadowMap, uv + vec2(0.0, dy0), depth) +
  2692. czm_shadowDepthCompare(shadowMap, uv + vec2(dx1, dy0), depth) +
  2693. czm_shadowDepthCompare(shadowMap, uv + vec2(dx0, 0.0), depth) +
  2694. czm_shadowDepthCompare(shadowMap, uv + vec2(dx1, 0.0), depth) +
  2695. czm_shadowDepthCompare(shadowMap, uv + vec2(dx0, dy1), depth) +
  2696. czm_shadowDepthCompare(shadowMap, uv + vec2(0.0, dy1), depth) +
  2697. czm_shadowDepthCompare(shadowMap, uv + vec2(dx1, dy1), depth)
  2698. ) * (1.0 / 9.0);
  2699. #else
  2700. float visibility = czm_shadowDepthCompare(shadowMap, uv, depth);
  2701. #endif
  2702. return czm_private_shadowVisibility(visibility, nDotL, normalShadingSmooth, darkness);
  2703. }
  2704. #endif
  2705. `;var PD=`/**
  2706. * Returns 1.0 if the given value is positive or zero, and -1.0 if it is negative. This is similar to the GLSL
  2707. * built-in function <code>sign</code> except that returns 1.0 instead of 0.0 when the input value is 0.0.
  2708. *
  2709. * @name czm_signNotZero
  2710. * @glslFunction
  2711. *
  2712. * @param {} value The value for which to determine the sign.
  2713. * @returns {} 1.0 if the value is positive or zero, -1.0 if the value is negative.
  2714. */
  2715. float czm_signNotZero(float value)
  2716. {
  2717. return value >= 0.0 ? 1.0 : -1.0;
  2718. }
  2719. vec2 czm_signNotZero(vec2 value)
  2720. {
  2721. return vec2(czm_signNotZero(value.x), czm_signNotZero(value.y));
  2722. }
  2723. vec3 czm_signNotZero(vec3 value)
  2724. {
  2725. return vec3(czm_signNotZero(value.x), czm_signNotZero(value.y), czm_signNotZero(value.z));
  2726. }
  2727. vec4 czm_signNotZero(vec4 value)
  2728. {
  2729. return vec4(czm_signNotZero(value.x), czm_signNotZero(value.y), czm_signNotZero(value.z), czm_signNotZero(value.w));
  2730. }
  2731. `;var OD=`/**
  2732. * Computes a color from the third order spherical harmonic coefficients and a normalized direction vector.
  2733. * <p>
  2734. * The order of the coefficients is [L00, L1_1, L10, L11, L2_2, L2_1, L20, L21, L22].
  2735. * </p>
  2736. *
  2737. * @name czm_sphericalHarmonics
  2738. * @glslFunction
  2739. *
  2740. * @param {vec3} normal The normalized direction.
  2741. * @param {vec3[9]} coefficients The third order spherical harmonic coefficients.
  2742. * @returns {vec3} The color at the direction.
  2743. *
  2744. * @see https://graphics.stanford.edu/papers/envmap/envmap.pdf
  2745. */
  2746. vec3 czm_sphericalHarmonics(vec3 normal, vec3 coefficients[9])
  2747. {
  2748. vec3 L00 = coefficients[0];
  2749. vec3 L1_1 = coefficients[1];
  2750. vec3 L10 = coefficients[2];
  2751. vec3 L11 = coefficients[3];
  2752. vec3 L2_2 = coefficients[4];
  2753. vec3 L2_1 = coefficients[5];
  2754. vec3 L20 = coefficients[6];
  2755. vec3 L21 = coefficients[7];
  2756. vec3 L22 = coefficients[8];
  2757. float x = normal.x;
  2758. float y = normal.y;
  2759. float z = normal.z;
  2760. return
  2761. L00
  2762. + L1_1 * y
  2763. + L10 * z
  2764. + L11 * x
  2765. + L2_2 * (y * x)
  2766. + L2_1 * (y * z)
  2767. + L20 * (3.0 * z * z - 1.0)
  2768. + L21 * (z * x)
  2769. + L22 * (x * x - y * y);
  2770. }
  2771. `;var RD=`/**
  2772. * Converts an sRGB color to a linear RGB color.
  2773. *
  2774. * @param {vec3|vec4} srgbIn The color in sRGB space
  2775. * @returns {vec3|vec4} The color in linear color space. The vector type matches the input.
  2776. */
  2777. vec3 czm_srgbToLinear(vec3 srgbIn)
  2778. {
  2779. return pow(srgbIn, vec3(2.2));
  2780. }
  2781. vec4 czm_srgbToLinear(vec4 srgbIn)
  2782. {
  2783. vec3 linearOut = pow(srgbIn.rgb, vec3(2.2));
  2784. return vec4(linearOut, srgbIn.a);
  2785. }
  2786. `;var MD=`/**
  2787. * Creates a matrix that transforms vectors from tangent space to eye space.
  2788. *
  2789. * @name czm_tangentToEyeSpaceMatrix
  2790. * @glslFunction
  2791. *
  2792. * @param {vec3} normalEC The normal vector in eye coordinates.
  2793. * @param {vec3} tangentEC The tangent vector in eye coordinates.
  2794. * @param {vec3} bitangentEC The bitangent vector in eye coordinates.
  2795. *
  2796. * @returns {mat3} The matrix that transforms from tangent space to eye space.
  2797. *
  2798. * @example
  2799. * mat3 tangentToEye = czm_tangentToEyeSpaceMatrix(normalEC, tangentEC, bitangentEC);
  2800. * vec3 normal = tangentToEye * texture(normalMap, st).xyz;
  2801. */
  2802. mat3 czm_tangentToEyeSpaceMatrix(vec3 normalEC, vec3 tangentEC, vec3 bitangentEC)
  2803. {
  2804. vec3 normal = normalize(normalEC);
  2805. vec3 tangent = normalize(tangentEC);
  2806. vec3 bitangent = normalize(bitangentEC);
  2807. return mat3(tangent.x , tangent.y , tangent.z,
  2808. bitangent.x, bitangent.y, bitangent.z,
  2809. normal.x , normal.y , normal.z);
  2810. }
  2811. `;var LD=`/**
  2812. * A wrapper around the texture (WebGL2) / textureCube (WebGL1)
  2813. * function to allow for WebGL 1 support.
  2814. *
  2815. * @name czm_textureCube
  2816. * @glslFunction
  2817. *
  2818. * @param {samplerCube} sampler The sampler.
  2819. * @param {vec3} p The coordinates to sample the texture at.
  2820. */
  2821. vec4 czm_textureCube(samplerCube sampler, vec3 p) {
  2822. #if __VERSION__ == 300
  2823. return texture(sampler, p);
  2824. #else
  2825. return textureCube(sampler, p);
  2826. #endif
  2827. }`;var ND=`/**
  2828. * Transforms a plane.
  2829. *
  2830. * @name czm_transformPlane
  2831. * @glslFunction
  2832. *
  2833. * @param {vec4} plane The plane in Hessian Normal Form.
  2834. * @param {mat4} transform The inverse-transpose of a transformation matrix.
  2835. */
  2836. vec4 czm_transformPlane(vec4 plane, mat4 transform) {
  2837. vec4 transformedPlane = transform * plane;
  2838. // Convert the transformed plane to Hessian Normal Form
  2839. float normalMagnitude = length(transformedPlane.xyz);
  2840. return transformedPlane / normalMagnitude;
  2841. }
  2842. `;var FD=`/**
  2843. * Translates a position (or any <code>vec3</code>) that was encoded with {@link EncodedCartesian3},
  2844. * and then provided to the shader as separate <code>high</code> and <code>low</code> bits to
  2845. * be relative to the eye. As shown in the example, the position can then be transformed in eye
  2846. * or clip coordinates using {@link czm_modelViewRelativeToEye} or {@link czm_modelViewProjectionRelativeToEye},
  2847. * respectively.
  2848. * <p>
  2849. * This technique, called GPU RTE, eliminates jittering artifacts when using large coordinates as
  2850. * described in {@link http://help.agi.com/AGIComponents/html/BlogPrecisionsPrecisions.htm|Precisions, Precisions}.
  2851. * </p>
  2852. *
  2853. * @name czm_translateRelativeToEye
  2854. * @glslFunction
  2855. *
  2856. * @param {vec3} high The position's high bits.
  2857. * @param {vec3} low The position's low bits.
  2858. * @returns {vec3} The position translated to be relative to the camera's position.
  2859. *
  2860. * @example
  2861. * in vec3 positionHigh;
  2862. * in vec3 positionLow;
  2863. *
  2864. * void main()
  2865. * {
  2866. * vec4 p = czm_translateRelativeToEye(positionHigh, positionLow);
  2867. * gl_Position = czm_modelViewProjectionRelativeToEye * p;
  2868. * }
  2869. *
  2870. * @see czm_modelViewRelativeToEye
  2871. * @see czm_modelViewProjectionRelativeToEye
  2872. * @see czm_computePosition
  2873. * @see EncodedCartesian3
  2874. */
  2875. vec4 czm_translateRelativeToEye(vec3 high, vec3 low)
  2876. {
  2877. vec3 highDifference = high - czm_encodedCameraPositionMCHigh;
  2878. vec3 lowDifference = low - czm_encodedCameraPositionMCLow;
  2879. return vec4(highDifference + lowDifference, 1.0);
  2880. }
  2881. `;var BD=`/**
  2882. * @private
  2883. */
  2884. vec4 czm_translucentPhong(vec3 toEye, czm_material material, vec3 lightDirectionEC)
  2885. {
  2886. // Diffuse from directional light sources at eye (for top-down and horizon views)
  2887. float diffuse = czm_getLambertDiffuse(vec3(0.0, 0.0, 1.0), material.normal);
  2888. if (czm_sceneMode == czm_sceneMode3D) {
  2889. // (and horizon views in 3D)
  2890. diffuse += czm_getLambertDiffuse(vec3(0.0, 1.0, 0.0), material.normal);
  2891. }
  2892. diffuse = clamp(diffuse, 0.0, 1.0);
  2893. float specular = czm_getSpecular(lightDirectionEC, toEye, material.normal, material.shininess);
  2894. // Temporary workaround for adding ambient.
  2895. vec3 materialDiffuse = material.diffuse * 0.5;
  2896. vec3 ambient = materialDiffuse;
  2897. vec3 color = ambient + material.emission;
  2898. color += materialDiffuse * diffuse * czm_lightColor;
  2899. color += material.specular * specular * czm_lightColor;
  2900. return vec4(color, material.alpha);
  2901. }
  2902. `;var kD=`/**
  2903. * Returns the transpose of the matrix. The input <code>matrix</code> can be
  2904. * a <code>mat2</code>, <code>mat3</code>, or <code>mat4</code>.
  2905. *
  2906. * @name czm_transpose
  2907. * @glslFunction
  2908. *
  2909. * @param {} matrix The matrix to transpose.
  2910. *
  2911. * @returns {} The transposed matrix.
  2912. *
  2913. * @example
  2914. * // GLSL declarations
  2915. * mat2 czm_transpose(mat2 matrix);
  2916. * mat3 czm_transpose(mat3 matrix);
  2917. * mat4 czm_transpose(mat4 matrix);
  2918. *
  2919. * // Transpose a 3x3 rotation matrix to find its inverse.
  2920. * mat3 eastNorthUpToEye = czm_eastNorthUpToEyeCoordinates(
  2921. * positionMC, normalEC);
  2922. * mat3 eyeToEastNorthUp = czm_transpose(eastNorthUpToEye);
  2923. */
  2924. mat2 czm_transpose(mat2 matrix)
  2925. {
  2926. return mat2(
  2927. matrix[0][0], matrix[1][0],
  2928. matrix[0][1], matrix[1][1]);
  2929. }
  2930. mat3 czm_transpose(mat3 matrix)
  2931. {
  2932. return mat3(
  2933. matrix[0][0], matrix[1][0], matrix[2][0],
  2934. matrix[0][1], matrix[1][1], matrix[2][1],
  2935. matrix[0][2], matrix[1][2], matrix[2][2]);
  2936. }
  2937. mat4 czm_transpose(mat4 matrix)
  2938. {
  2939. return mat4(
  2940. matrix[0][0], matrix[1][0], matrix[2][0], matrix[3][0],
  2941. matrix[0][1], matrix[1][1], matrix[2][1], matrix[3][1],
  2942. matrix[0][2], matrix[1][2], matrix[2][2], matrix[3][2],
  2943. matrix[0][3], matrix[1][3], matrix[2][3], matrix[3][3]);
  2944. }
  2945. `;var UD=`/**
  2946. * Unpacks a vec4 depth value to a float in [0, 1) range.
  2947. *
  2948. * @name czm_unpackDepth
  2949. * @glslFunction
  2950. *
  2951. * @param {vec4} packedDepth The packed depth.
  2952. *
  2953. * @returns {float} The floating-point depth in [0, 1) range.
  2954. */
  2955. float czm_unpackDepth(vec4 packedDepth)
  2956. {
  2957. // See Aras Pranckevi\u010Dius' post Encoding Floats to RGBA
  2958. // http://aras-p.info/blog/2009/07/30/encoding-floats-to-rgba-the-final/
  2959. return dot(packedDepth, vec4(1.0, 1.0 / 255.0, 1.0 / 65025.0, 1.0 / 16581375.0));
  2960. }
  2961. `;var VD=`/**
  2962. * Unpack an IEEE 754 single-precision float that is packed as a little-endian unsigned normalized vec4.
  2963. *
  2964. * @name czm_unpackFloat
  2965. * @glslFunction
  2966. *
  2967. * @param {vec4} packedFloat The packed float.
  2968. *
  2969. * @returns {float} The floating-point depth in arbitrary range.
  2970. */
  2971. float czm_unpackFloat(vec4 packedFloat)
  2972. {
  2973. // Convert to [0.0, 255.0] and round to integer
  2974. packedFloat = floor(packedFloat * 255.0 + 0.5);
  2975. float sign = 1.0 - step(128.0, packedFloat[3]) * 2.0;
  2976. float exponent = 2.0 * mod(packedFloat[3], 128.0) + step(128.0, packedFloat[2]) - 127.0;
  2977. if (exponent == -127.0)
  2978. {
  2979. return 0.0;
  2980. }
  2981. float mantissa = mod(packedFloat[2], 128.0) * 65536.0 + packedFloat[1] * 256.0 + packedFloat[0] + float(0x800000);
  2982. float result = sign * exp2(exponent - 23.0) * mantissa;
  2983. return result;
  2984. }
  2985. `;var zD=`/**
  2986. * Unpack unsigned integers of 1-4 bytes. in WebGL 1, there is no uint type,
  2987. * so the return value is an int.
  2988. * <p>
  2989. * There are also precision limitations in WebGL 1. highp int is still limited
  2990. * to 24 bits. Above the value of 2^24 = 16777216, precision loss may occur.
  2991. * </p>
  2992. *
  2993. * @param {float|vec2|vec3|vec4} packed The packed value. For vectors, the components are listed in little-endian order.
  2994. *
  2995. * @return {int} The unpacked value.
  2996. */
  2997. int czm_unpackUint(float packedValue) {
  2998. float rounded = czm_round(packedValue * 255.0);
  2999. return int(rounded);
  3000. }
  3001. int czm_unpackUint(vec2 packedValue) {
  3002. vec2 rounded = czm_round(packedValue * 255.0);
  3003. return int(dot(rounded, vec2(1.0, 256.0)));
  3004. }
  3005. int czm_unpackUint(vec3 packedValue) {
  3006. vec3 rounded = czm_round(packedValue * 255.0);
  3007. return int(dot(rounded, vec3(1.0, 256.0, 65536.0)));
  3008. }
  3009. int czm_unpackUint(vec4 packedValue) {
  3010. vec4 rounded = czm_round(packedValue * 255.0);
  3011. return int(dot(rounded, vec4(1.0, 256.0, 65536.0, 16777216.0)));
  3012. }
  3013. `;var HD=`/**
  3014. * Transform metadata values following the EXT_structural_metadata spec
  3015. * by multiplying by scale and adding the offset. Operations are always
  3016. * performed component-wise, even for matrices.
  3017. *
  3018. * @param {float|vec2|vec3|vec4|mat2|mat3|mat4} offset The offset to add
  3019. * @param {float|vec2|vec3|vec4|mat2|mat3|mat4} scale The scale factor to multiply
  3020. * @param {float|vec2|vec3|vec4|mat2|mat3|mat4} value The original value.
  3021. *
  3022. * @return {float|vec2|vec3|vec4|mat2|mat3|mat4} The transformed value of the same scalar/vector/matrix type as the input.
  3023. */
  3024. float czm_valueTransform(float offset, float scale, float value) {
  3025. return scale * value + offset;
  3026. }
  3027. vec2 czm_valueTransform(vec2 offset, vec2 scale, vec2 value) {
  3028. return scale * value + offset;
  3029. }
  3030. vec3 czm_valueTransform(vec3 offset, vec3 scale, vec3 value) {
  3031. return scale * value + offset;
  3032. }
  3033. vec4 czm_valueTransform(vec4 offset, vec4 scale, vec4 value) {
  3034. return scale * value + offset;
  3035. }
  3036. mat2 czm_valueTransform(mat2 offset, mat2 scale, mat2 value) {
  3037. return matrixCompMult(scale, value) + offset;
  3038. }
  3039. mat3 czm_valueTransform(mat3 offset, mat3 scale, mat3 value) {
  3040. return matrixCompMult(scale, value) + offset;
  3041. }
  3042. mat4 czm_valueTransform(mat4 offset, mat4 scale, mat4 value) {
  3043. return matrixCompMult(scale, value) + offset;
  3044. }
  3045. `;var GD=`#ifdef LOG_DEPTH
  3046. // 1.0 at the near plane, increasing linearly from there.
  3047. out float v_depthFromNearPlusOne;
  3048. #ifdef SHADOW_MAP
  3049. out vec3 v_logPositionEC;
  3050. #endif
  3051. #endif
  3052. vec4 czm_updatePositionDepth(vec4 coords) {
  3053. #if defined(LOG_DEPTH)
  3054. #ifdef SHADOW_MAP
  3055. vec3 logPositionEC = (czm_inverseProjection * coords).xyz;
  3056. v_logPositionEC = logPositionEC;
  3057. #endif
  3058. // With the very high far/near ratios used with the logarithmic depth
  3059. // buffer, floating point rounding errors can cause linear depth values
  3060. // to end up on the wrong side of the far plane, even for vertices that
  3061. // are really nowhere near it. Since we always write a correct logarithmic
  3062. // depth value in the fragment shader anyway, we just need to make sure
  3063. // such errors don't cause the primitive to be clipped entirely before
  3064. // we even get to the fragment shader.
  3065. coords.z = clamp(coords.z / coords.w, -1.0, 1.0) * coords.w;
  3066. #endif
  3067. return coords;
  3068. }
  3069. /**
  3070. * Writes the logarithmic depth to gl_Position using the already computed gl_Position.
  3071. *
  3072. * @name czm_vertexLogDepth
  3073. * @glslFunction
  3074. */
  3075. void czm_vertexLogDepth()
  3076. {
  3077. #ifdef LOG_DEPTH
  3078. v_depthFromNearPlusOne = (gl_Position.w - czm_currentFrustum.x) + 1.0;
  3079. gl_Position = czm_updatePositionDepth(gl_Position);
  3080. #endif
  3081. }
  3082. /**
  3083. * Writes the logarithmic depth to gl_Position using the provided clip coordinates.
  3084. * <p>
  3085. * An example use case for this function would be moving the vertex in window coordinates
  3086. * before converting back to clip coordinates. Use the original vertex clip coordinates.
  3087. * </p>
  3088. * @name czm_vertexLogDepth
  3089. * @glslFunction
  3090. *
  3091. * @param {vec4} clipCoords The vertex in clip coordinates.
  3092. *
  3093. * @example
  3094. * czm_vertexLogDepth(czm_projection * vec4(positionEyeCoordinates, 1.0));
  3095. */
  3096. void czm_vertexLogDepth(vec4 clipCoords)
  3097. {
  3098. #ifdef LOG_DEPTH
  3099. v_depthFromNearPlusOne = (clipCoords.w - czm_currentFrustum.x) + 1.0;
  3100. czm_updatePositionDepth(clipCoords);
  3101. #endif
  3102. }
  3103. `;var WD=`vec4 czm_screenToEyeCoordinates(vec4 screenCoordinate)
  3104. {
  3105. // Reconstruct NDC coordinates
  3106. float x = 2.0 * screenCoordinate.x - 1.0;
  3107. float y = 2.0 * screenCoordinate.y - 1.0;
  3108. float z = (screenCoordinate.z - czm_viewportTransformation[3][2]) / czm_viewportTransformation[2][2];
  3109. vec4 q = vec4(x, y, z, 1.0);
  3110. // Reverse the perspective division to obtain clip coordinates.
  3111. q /= screenCoordinate.w;
  3112. // Reverse the projection transformation to obtain eye coordinates.
  3113. if (!(czm_inverseProjection == mat4(0.0))) // IE and Edge sometimes do something weird with != between mat4s
  3114. {
  3115. q = czm_inverseProjection * q;
  3116. }
  3117. else
  3118. {
  3119. float top = czm_frustumPlanes.x;
  3120. float bottom = czm_frustumPlanes.y;
  3121. float left = czm_frustumPlanes.z;
  3122. float right = czm_frustumPlanes.w;
  3123. float near = czm_currentFrustum.x;
  3124. float far = czm_currentFrustum.y;
  3125. q.x = (q.x * (right - left) + left + right) * 0.5;
  3126. q.y = (q.y * (top - bottom) + bottom + top) * 0.5;
  3127. q.z = (q.z * (near - far) - near - far) * 0.5;
  3128. q.w = 1.0;
  3129. }
  3130. return q;
  3131. }
  3132. /**
  3133. * Transforms a position from window to eye coordinates.
  3134. * The transform from window to normalized device coordinates is done using components
  3135. * of (@link czm_viewport} and {@link czm_viewportTransformation} instead of calculating
  3136. * the inverse of <code>czm_viewportTransformation</code>. The transformation from
  3137. * normalized device coordinates to clip coordinates is done using <code>fragmentCoordinate.w</code>,
  3138. * which is expected to be the scalar used in the perspective divide. The transformation
  3139. * from clip to eye coordinates is done using {@link czm_inverseProjection}.
  3140. *
  3141. * @name czm_windowToEyeCoordinates
  3142. * @glslFunction
  3143. *
  3144. * @param {vec4} fragmentCoordinate The position in window coordinates to transform.
  3145. *
  3146. * @returns {vec4} The transformed position in eye coordinates.
  3147. *
  3148. * @see czm_modelToWindowCoordinates
  3149. * @see czm_eyeToWindowCoordinates
  3150. * @see czm_inverseProjection
  3151. * @see czm_viewport
  3152. * @see czm_viewportTransformation
  3153. *
  3154. * @example
  3155. * vec4 positionEC = czm_windowToEyeCoordinates(gl_FragCoord);
  3156. */
  3157. vec4 czm_windowToEyeCoordinates(vec4 fragmentCoordinate)
  3158. {
  3159. vec2 screenCoordXY = (fragmentCoordinate.xy - czm_viewport.xy) / czm_viewport.zw;
  3160. return czm_screenToEyeCoordinates(vec4(screenCoordXY, fragmentCoordinate.zw));
  3161. }
  3162. vec4 czm_screenToEyeCoordinates(vec2 screenCoordinateXY, float depthOrLogDepth)
  3163. {
  3164. // See reverseLogDepth.glsl. This is separate to re-use the pow.
  3165. #if defined(LOG_DEPTH) || defined(LOG_DEPTH_READ_ONLY)
  3166. float near = czm_currentFrustum.x;
  3167. float far = czm_currentFrustum.y;
  3168. float log2Depth = depthOrLogDepth * czm_log2FarDepthFromNearPlusOne;
  3169. float depthFromNear = pow(2.0, log2Depth) - 1.0;
  3170. float depthFromCamera = depthFromNear + near;
  3171. vec4 screenCoord = vec4(screenCoordinateXY, far * (1.0 - near / depthFromCamera) / (far - near), 1.0);
  3172. vec4 eyeCoordinate = czm_screenToEyeCoordinates(screenCoord);
  3173. eyeCoordinate.w = 1.0 / depthFromCamera; // Better precision
  3174. return eyeCoordinate;
  3175. #else
  3176. vec4 screenCoord = vec4(screenCoordinateXY, depthOrLogDepth, 1.0);
  3177. vec4 eyeCoordinate = czm_screenToEyeCoordinates(screenCoord);
  3178. #endif
  3179. return eyeCoordinate;
  3180. }
  3181. /**
  3182. * Transforms a position given as window x/y and a depth or a log depth from window to eye coordinates.
  3183. * This function produces more accurate results for window positions with log depth than
  3184. * conventionally unpacking the log depth using czm_reverseLogDepth and using the standard version
  3185. * of czm_windowToEyeCoordinates.
  3186. *
  3187. * @name czm_windowToEyeCoordinates
  3188. * @glslFunction
  3189. *
  3190. * @param {vec2} fragmentCoordinateXY The XY position in window coordinates to transform.
  3191. * @param {float} depthOrLogDepth A depth or log depth for the fragment.
  3192. *
  3193. * @see czm_modelToWindowCoordinates
  3194. * @see czm_eyeToWindowCoordinates
  3195. * @see czm_inverseProjection
  3196. * @see czm_viewport
  3197. * @see czm_viewportTransformation
  3198. *
  3199. * @returns {vec4} The transformed position in eye coordinates.
  3200. */
  3201. vec4 czm_windowToEyeCoordinates(vec2 fragmentCoordinateXY, float depthOrLogDepth)
  3202. {
  3203. vec2 screenCoordXY = (fragmentCoordinateXY.xy - czm_viewport.xy) / czm_viewport.zw;
  3204. return czm_screenToEyeCoordinates(screenCoordXY, depthOrLogDepth);
  3205. }
  3206. `;var jD=`// emulated noperspective
  3207. #if !defined(LOG_DEPTH)
  3208. in float v_WindowZ;
  3209. #endif
  3210. /**
  3211. * Emulates GL_DEPTH_CLAMP. Clamps a fragment to the near and far plane
  3212. * by writing the fragment's depth. See czm_depthClamp for more details.
  3213. *
  3214. * @name czm_writeDepthClamp
  3215. * @glslFunction
  3216. *
  3217. * @example
  3218. * out_FragColor = color;
  3219. * czm_writeDepthClamp();
  3220. *
  3221. * @see czm_depthClamp
  3222. */
  3223. void czm_writeDepthClamp()
  3224. {
  3225. #if (!defined(LOG_DEPTH) && (__VERSION__ == 300 || defined(GL_EXT_frag_depth)))
  3226. gl_FragDepth = clamp(v_WindowZ * gl_FragCoord.w, 0.0, 1.0);
  3227. #endif
  3228. }
  3229. `;var qD=`#ifdef LOG_DEPTH
  3230. in float v_depthFromNearPlusOne;
  3231. #ifdef POLYGON_OFFSET
  3232. uniform vec2 u_polygonOffset;
  3233. #endif
  3234. #endif
  3235. /**
  3236. * Writes the fragment depth to the logarithmic depth buffer.
  3237. * <p>
  3238. * Use this when the vertex shader does not call {@link czm_vertexlogDepth}, for example, when
  3239. * ray-casting geometry using a full screen quad.
  3240. * </p>
  3241. * @name czm_writeLogDepth
  3242. * @glslFunction
  3243. *
  3244. * @param {float} depth The depth coordinate, where 1.0 is on the near plane and
  3245. * depth increases in eye-space units from there
  3246. *
  3247. * @example
  3248. * czm_writeLogDepth((czm_projection * v_positionEyeCoordinates).w + 1.0);
  3249. */
  3250. void czm_writeLogDepth(float depth)
  3251. {
  3252. #if (defined(LOG_DEPTH) && (__VERSION__ == 300 || defined(GL_EXT_frag_depth)))
  3253. // Discard the vertex if it's not between the near and far planes.
  3254. // We allow a bit of epsilon on the near plane comparison because a 1.0
  3255. // from the vertex shader (indicating the vertex should be _on_ the near
  3256. // plane) will not necessarily come here as exactly 1.0.
  3257. if (depth <= 0.9999999 || depth > czm_farDepthFromNearPlusOne) {
  3258. discard;
  3259. }
  3260. #ifdef POLYGON_OFFSET
  3261. // Polygon offset: m * factor + r * units
  3262. float factor = u_polygonOffset[0];
  3263. float units = u_polygonOffset[1];
  3264. #if (__VERSION__ == 300 || defined(GL_OES_standard_derivatives))
  3265. // This factor doesn't work in IE 10
  3266. if (factor != 0.0) {
  3267. // m = sqrt(dZdX^2 + dZdY^2);
  3268. float x = dFdx(depth);
  3269. float y = dFdy(depth);
  3270. float m = sqrt(x * x + y * y);
  3271. // Apply the factor before computing the log depth.
  3272. depth += m * factor;
  3273. }
  3274. #endif
  3275. #endif
  3276. gl_FragDepth = log2(depth) * czm_oneOverLog2FarDepthFromNearPlusOne;
  3277. #ifdef POLYGON_OFFSET
  3278. // Apply the units after the log depth.
  3279. gl_FragDepth += czm_epsilon7 * units;
  3280. #endif
  3281. #endif
  3282. }
  3283. /**
  3284. * Writes the fragment depth to the logarithmic depth buffer.
  3285. * <p>
  3286. * Use this when the vertex shader calls {@link czm_vertexlogDepth}.
  3287. * </p>
  3288. *
  3289. * @name czm_writeLogDepth
  3290. * @glslFunction
  3291. */
  3292. void czm_writeLogDepth() {
  3293. #ifdef LOG_DEPTH
  3294. czm_writeLogDepth(v_depthFromNearPlusOne);
  3295. #endif
  3296. }
  3297. `;var YD=`/**
  3298. * Transforms a value for non-perspective interpolation by multiplying
  3299. * it by w, the value used in the perspective divide. This function is
  3300. * intended to be called in a vertex shader to compute the value of a
  3301. * \`varying\` that should not be subject to perspective interpolation.
  3302. * For example, screen-space texture coordinates. The fragment shader
  3303. * must call {@link czm_readNonPerspective} to retrieve the final
  3304. * non-perspective value.
  3305. *
  3306. * @name czm_writeNonPerspective
  3307. * @glslFunction
  3308. *
  3309. * @param {float|vec2|vec3|vec4} value The value to be interpolated without accounting for perspective.
  3310. * @param {float} w The perspective divide value. Usually this is the computed \`gl_Position.w\`.
  3311. * @returns {float|vec2|vec3|vec4} The transformed value, intended to be stored in a \`varying\` and read in the
  3312. * fragment shader with {@link czm_readNonPerspective}.
  3313. */
  3314. float czm_writeNonPerspective(float value, float w) {
  3315. return value * w;
  3316. }
  3317. vec2 czm_writeNonPerspective(vec2 value, float w) {
  3318. return value * w;
  3319. }
  3320. vec3 czm_writeNonPerspective(vec3 value, float w) {
  3321. return value * w;
  3322. }
  3323. vec4 czm_writeNonPerspective(vec4 value, float w) {
  3324. return value * w;
  3325. }
  3326. `;var L0={czm_degreesPerRadian:Sw,czm_depthRange:ww,czm_epsilon1:vw,czm_epsilon2:Dw,czm_epsilon3:Iw,czm_epsilon4:Pw,czm_epsilon5:Ow,czm_epsilon6:Rw,czm_epsilon7:Mw,czm_infinity:Lw,czm_oneOverPi:Nw,czm_oneOverTwoPi:Fw,czm_passCesium3DTile:Bw,czm_passCesium3DTileClassification:kw,czm_passCesium3DTileClassificationIgnoreShow:Uw,czm_passClassification:Vw,czm_passCompute:zw,czm_passEnvironment:Hw,czm_passGlobe:Gw,czm_passOpaque:Ww,czm_passOverlay:jw,czm_passTerrainClassification:qw,czm_passTranslucent:Yw,czm_passVoxels:Xw,czm_pi:Kw,czm_piOverFour:Zw,czm_piOverSix:$w,czm_piOverThree:Qw,czm_piOverTwo:Jw,czm_radiansPerDegree:ev,czm_sceneMode2D:tv,czm_sceneMode3D:nv,czm_sceneModeColumbusView:iv,czm_sceneModeMorphing:ov,czm_solarRadius:rv,czm_threePiOver2:sv,czm_twoPi:av,czm_webMercatorMaxLatitude:cv,czm_depthRangeStruct:lv,czm_material:uv,czm_materialInput:fv,czm_modelMaterial:dv,czm_modelVertexOutput:hv,czm_pbrParameters:mv,czm_ray:pv,czm_raySegment:_v,czm_shadowParameters:gv,czm_HSBToRGB:yv,czm_HSLToRGB:xv,czm_RGBToHSB:bv,czm_RGBToHSL:Tv,czm_RGBToXYZ:Av,czm_XYZToRGB:Cv,czm_acesTonemapping:Ev,czm_alphaWeight:Sv,czm_antialias:wv,czm_approximateSphericalCoordinates:vv,czm_backFacing:Dv,czm_branchFreeTernary:Iv,czm_cascadeColor:Pv,czm_cascadeDistance:Ov,czm_cascadeMatrix:Rv,czm_cascadeWeights:Mv,czm_columbusViewMorph:Lv,czm_computePosition:Nv,czm_cosineAndSine:Fv,czm_decompressTextureCoordinates:Bv,czm_defaultPbrMaterial:kv,czm_depthClamp:Uv,czm_eastNorthUpToEyeCoordinates:Vv,czm_ellipsoidContainsPoint:zv,czm_ellipsoidWgs84TextureCoordinates:Hv,czm_equalsEpsilon:Gv,czm_eyeOffset:Wv,czm_eyeToWindowCoordinates:jv,czm_fastApproximateAtan:qv,czm_fog:Yv,czm_gammaCorrect:Xv,czm_geodeticSurfaceNormal:Kv,czm_getDefaultMaterial:Zv,czm_getLambertDiffuse:$v,czm_getSpecular:Qv,czm_getWaterNoise:Jv,czm_hue:eD,czm_inverseGamma:tD,czm_isEmpty:nD,czm_isFull:iD,czm_latitudeToWebMercatorFraction:oD,czm_lineDistance:rD,czm_linearToSrgb:sD,czm_luminance:aD,czm_metersPerPixel:cD,czm_modelToWindowCoordinates:lD,czm_multiplyWithColorBalance:uD,czm_nearFarScalar:fD,czm_octDecode:dD,czm_packDepth:hD,czm_pbrLighting:mD,czm_pbrMetallicRoughnessMaterial:pD,czm_pbrSpecularGlossinessMaterial:_D,czm_phong:gD,czm_planeDistance:yD,czm_pointAlongRay:xD,czm_rayEllipsoidIntersectionInterval:bD,czm_raySphereIntersectionInterval:TD,czm_readDepth:AD,czm_readNonPerspective:CD,czm_reverseLogDepth:ED,czm_round:SD,czm_sampleOctahedralProjection:wD,czm_saturation:vD,czm_shadowDepthCompare:DD,czm_shadowVisibility:ID,czm_signNotZero:PD,czm_sphericalHarmonics:OD,czm_srgbToLinear:RD,czm_tangentToEyeSpaceMatrix:MD,czm_textureCube:LD,czm_transformPlane:ND,czm_translateRelativeToEye:FD,czm_translucentPhong:BD,czm_transpose:kD,czm_unpackDepth:UD,czm_unpackFloat:VD,czm_unpackUint:zD,czm_valueTransform:HD,czm_vertexLogDepth:GD,czm_windowToEyeCoordinates:WD,czm_writeDepthClamp:jD,czm_writeLogDepth:qD,czm_writeNonPerspective:YD};function kEe(e,t){let n=e;return n=n.replaceAll("version 300 es",""),n=n.replaceAll(/(texture\()/g,"texture2D("),t?(n=n.replaceAll(/(in)\s+(vec\d|mat\d|float)/g,"varying $2"),/out_FragData_(\d+)/.test(n)&&(n=`#extension GL_EXT_draw_buffers : enable
  3327. ${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
  3328. ${n}`,n=n.replaceAll(/gl_FragDepth/g,"gl_FragDepthEXT")),n=`#ifdef GL_OES_standard_derivatives
  3329. #extension GL_OES_standard_derivatives : enable
  3330. #endif
  3331. ${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
  3332. ${n}`,n}var XD=kEe;function lQ(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+=`
  3333. `;return i})}function uQ(e,t,n){let i;for(let o=0;o<n.length;++o)n[o].name===e&&(i=n[o]);return u(i)||(t=lQ(t),i={name:e,glslSource:t,dependsOn:[],requiredBy:[],evaluated:!1},n.push(i)),i}function fQ(e,t){if(e.evaluated)return;e.evaluated=!0;let n=e.glslSource.match(/\bczm_[a-zA-Z0-9_]*/g);u(n)&&n!==null&&(n=n.filter(function(i,o){return n.indexOf(i)===o}),n.forEach(function(i){if(i!==e.name&&Cs._czmBuiltinsAndUniforms.hasOwnProperty(i)){let o=uQ(i,Cs._czmBuiltinsAndUniforms[i],t);e.dependsOn.push(o),o.requiredBy.push(e),fQ(o,t)}}))}function UEe(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 VEe(e){let t=[],n=uQ("main",e,t);fQ(n,t),UEe(t);let i="";for(let o=t.length-1;o>=0;--o)i=`${i+t[o].glslSource}
  3334. `;return i.replace(n.glslSource,"")}function dQ(e,t,n){let i,o,r="",s=e.sources;if(u(s))for(i=0,o=s.length;i<o;++i)r+=`
  3335. #line 0
  3336. ${s[i]}`;r=lQ(r);let a;r=r.replace(/#version\s+(.*?)\n/gm,function(x,b){return a=b,`
  3337. `});let c=[];r=r.replace(/#extension.*\n/gm,function(x){return c.push(x),`
  3338. `}),r=r.replace(/precision\s(lowp|mediump|highp)\s(float|int);/,"");let l=e.pickColorQualifier;u(l)&&(r=Cs.createPickFragmentShaderSource(r,l));let f="",d=c.length;for(i=0;i<d;i++)f+=c[i];t&&(f+=`#ifdef GL_FRAGMENT_PRECISION_HIGH
  3339. precision highp float;
  3340. precision highp int;
  3341. #else
  3342. precision mediump float;
  3343. precision mediump int;
  3344. #define highp mediump
  3345. #endif
  3346. `);let p=e.defines;if(u(p))for(i=0,o=p.length;i<o;++i){let x=p[i];x.length!==0&&(f+=`#define ${x}
  3347. `)}n.textureFloatLinear&&(f+=`#define OES_texture_float_linear
  3348. `),n.floatingPointTexture&&(f+=`#define OES_texture_float
  3349. `);let g="";e.includeBuiltIns&&(g=VEe(r)),f+=`
  3350. #line 0
  3351. `;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;
  3352. `),f+=g,f+=r,n.webgl2?f=`#version 300 es
  3353. ${f}`:f=XD(f,t),f}function Cs(e){e=y(e,y.EMPTY_OBJECT);let t=e.pickColorQualifier;this.defines=u(e.defines)?e.defines.slice(0):[],this.sources=u(e.sources)?e.sources.slice(0):[],this.pickColorQualifier=t,this.includeBuiltIns=y(e.includeBuiltIns,!0)}Cs.prototype.clone=function(){return new Cs({sources:this.sources,defines:this.defines,pickColorQualifier:this.pickColorQualifier,includeBuiltIns:this.includeBuiltIns})};Cs.replaceMain=function(e,t){return t=`void ${t}()`,e.replace(/void\s+main\s*\(\s*(?:void)?\s*\)/g,t)};Cs.prototype.getCacheKey=function(){let t=this.defines.slice().sort().join(","),n=this.pickColorQualifier,i=this.includeBuiltIns,o=this.sources.join(`
  3354. `);return`${t}:${n}:${i}:${o}`};Cs.prototype.createCombinedVertexShader=function(e){return dQ(this,!1,e)};Cs.prototype.createCombinedFragmentShader=function(e){return dQ(this,!0,e)};Cs._czmBuiltinsAndUniforms={};for(let e in L0)L0.hasOwnProperty(e)&&(Cs._czmBuiltinsAndUniforms[e]=L0[e]);for(let e in Ym)if(Ym.hasOwnProperty(e)){let t=Ym[e];typeof t.getDeclaration=="function"&&(Cs._czmBuiltinsAndUniforms[e]=t.getDeclaration(e))}Cs.createPickVertexShaderSource=function(e){return`${Cs.replaceMain(e,"czm_old_main")}
  3355. in vec4 pickColor;
  3356. out vec4 czm_pickColor;
  3357. void main()
  3358. {
  3359. czm_old_main();
  3360. czm_pickColor = pickColor;
  3361. }`};Cs.createPickFragmentShaderSource=function(e,t){let n=Cs.replaceMain(e,"czm_old_main"),i=`${t} vec4 czm_pickColor;
  3362. void main()
  3363. {
  3364. czm_old_main();
  3365. if (out_FragColor.a == 0.0) {
  3366. discard;
  3367. }
  3368. out_FragColor = czm_pickColor;
  3369. }`;return`${n}
  3370. ${i}`};function zEe(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 hQ(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 mQ(e,t){let n=t.length;for(let i=0;i<n;++i){let o=t[i];if(hQ(e,o))return o}}var HEe=["v_normalEC","v_normal"];Cs.findNormalVarying=function(e){return hQ(e,"#ifdef HAS_NORMALS")?zEe(e,"HAS_NORMALS")?"v_normalEC":void 0:mQ(e,HEe)};var GEe=["v_positionEC"];Cs.findPositionVarying=function(e){return mQ(e,GEe)};var Ue=Cs;function cd(e){this._context=e,this._shaders={},this._numberOfShaders=0,this._shadersToRelease={}}Object.defineProperties(cd.prototype,{numberOfShaders:{get:function(){return this._numberOfShaders}}});cd.prototype.replaceShaderProgram=function(e){return u(e.shaderProgram)&&e.shaderProgram.destroy(),this.getShaderProgram(e)};function WEe(e){let t=Object.keys(e).sort();return JSON.stringify(e,t)}cd.prototype.getShaderProgram=function(e){let t=e.vertexShaderSource,n=e.fragmentShaderSource,i=e.attributeLocations;typeof t=="string"&&(t=new Ue({sources:[t]})),typeof n=="string"&&(n=new Ue({sources:[n]}));let o=t.getCacheKey(),r=n.getCacheKey(),s=u(i)?WEe(i):"",a=`${o}:${r}:${s}`,c;if(u(this._shaders[a]))c=this._shaders[a],delete this._shadersToRelease[a];else{let l=this._context,f=t.createCombinedVertexShader(l),d=n.createCombinedFragmentShader(l),p=new Yt({gl:l._gl,logShaderCompilation:l.logShaderCompilation,debugShaders:l.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};cd.prototype.replaceDerivedShaderProgram=function(e,t,n){let i=e._cachedShader,o=t+i.keyword,r=this._shaders[o];if(u(r)){c5(this,r);let s=i.derivedKeywords.indexOf(t);s>-1&&i.derivedKeywords.splice(s,1)}return this.createDerivedShaderProgram(e,t,n)};cd.prototype.getDerivedShaderProgram=function(e,t){let n=e._cachedShader,i=t+n.keyword,o=this._shaders[i];if(u(o))return o.shaderProgram};cd.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 Ue({sources:[r]})),typeof s=="string"&&(s=new Ue({sources:[s]}));let c=this._context,l=r.createCombinedVertexShader(c),f=s.createCombinedFragmentShader(c),d=new Yt({gl:c._gl,logShaderCompilation:c.logShaderCompilation,debugShaders:c.debugShaders,vertexShaderSource:r,vertexShaderText:l,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 c5(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];c5(e,s)}delete e._shaders[t.keyword],t.shaderProgram.finalDestroy()}cd.prototype.destroyReleasedShaderPrograms=function(){let e=this._shadersToRelease;for(let t in e)if(e.hasOwnProperty(t)){let n=e[t];c5(this,n),--this._numberOfShaders}this._shadersToRelease={}};cd.prototype.releaseShaderProgram=function(e){if(u(e)){let t=e._cachedShader;t&&--t.count===0&&(this._shadersToRelease[t.keyword]=t)}};cd.prototype.isDestroyed=function(){return!1};cd.prototype.destroy=function(){let e=this._shaders;for(let t in e)e.hasOwnProperty(t)&&e[t].shaderProgram.finalDestroy();return le(this)};var KD=cd;function ld(e){e=y(e,y.EMPTY_OBJECT);let t=e.context,n=e.width,i=e.height,o=e.source;u(o)&&(u(n)||(n=y(o.videoWidth,o.width)),u(i)||(i=y(o.videoHeight,o.height)));let r=y(e.pixelFormat,nt.RGBA),s=y(e.pixelDatatype,Ye.UNSIGNED_BYTE),a=nt.toInternalFormat(r,s,t),c=nt.isCompressedFormat(a),l=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(u(o)&&u(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),u(o))if(u(o.arrayBufferView)){g.pixelStorei(g.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!1),g.pixelStorei(g.UNPACK_FLIP_Y_WEBGL,!1);let A=o.arrayBufferView,C,S,w;if(c){if(g.compressedTexImage2D(m,0,a,n,i,0,A),u(o.mipLevels))for(S=n,w=i,C=0;C<o.mipLevels.length;++C)S=Math.floor(S/2)|0,S<1&&(S=1),w=Math.floor(w/2)|0,w<1&&(w=1),g.compressedTexImage2D(m,C+1,a,S,w,0,o.mipLevels[C])}else if(f&&(A=nt.flipY(A,r,s,n,i)),g.texImage2D(m,0,a,n,i,0,r,Ye.toWebGLConstant(s,t),A),u(o.mipLevels))for(S=n,w=i,C=0;C<o.mipLevels.length;++C)S=Math.floor(S/2)|0,S<1&&(S=1),w=Math.floor(w/2)|0,w<1&&(w=1),g.texImage2D(m,C+1,a,S,w,0,r,Ye.toWebGLConstant(s,t),o.mipLevels[C])}else u(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,l),g.pixelStorei(g.UNPACK_FLIP_Y_WEBGL,f),g.texImage2D(m,0,a,r,Ye.toWebGLConstant(s,t),o));else g.texImage2D(m,0,a,n,i,0,r,Ye.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=Wn(),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=l,this._flipY=f,this._initialized=p,this._sampler=void 0,this.sampler=u(e.sampler)?e.sampler:new ln}ld.create=function(e){return new ld(e)};ld.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 ld({context:t,width:s,height:a,pixelFormat:i,source:{framebuffer:u(c)?c:t.defaultFramebuffer,xOffset:o,yOffset:r,width:s,height:a}})};Object.defineProperties(ld.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===rn.NEAREST_MIPMAP_NEAREST||t===rn.NEAREST_MIPMAP_LINEAR||t===rn.LINEAR_MIPMAP_NEAREST||t===rn.LINEAR_MIPMAP_LINEAR;(r===Ye.FLOAT&&!i.textureFloatLinear||r===Ye.HALF_FLOAT&&!i.textureHalfFloatLinear)&&(t=s?rn.NEAREST_MIPMAP_NEAREST:rn.NEAREST,n=yi.NEAREST),i.webgl2&&nt.isDepthFormat(o)&&(t=rn.NEAREST,n=yi.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),u(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}}});ld.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,l=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),A=4;u(l)&&(A=nt.alignmentInBytes(g,m,a)),r.pixelStorei(r.UNPACK_ALIGNMENT,A),T?r.pixelStorei(r.UNPACK_COLORSPACE_CONVERSION_WEBGL,r.NONE):r.pixelStorei(r.UNPACK_COLORSPACE_CONVERSION_WEBGL,r.BROWSER_DEFAULT_WEBGL);let C=!1;if(!this._initialized){if(t===0&&n===0&&a===f&&c===d)u(l)?(r.pixelStorei(r.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!1),r.pixelStorei(r.UNPACK_FLIP_Y_WEBGL,!1),b&&(l=nt.flipY(l,g,m,f,d)),r.texImage2D(s,0,p,f,d,0,g,Ye.toWebGLConstant(m,o),l)):(r.pixelStorei(r.UNPACK_PREMULTIPLY_ALPHA_WEBGL,x),r.pixelStorei(r.UNPACK_FLIP_Y_WEBGL,b),r.texImage2D(s,0,p,g,Ye.toWebGLConstant(m,o),i)),C=!0;else{r.pixelStorei(r.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!1),r.pixelStorei(r.UNPACK_FLIP_Y_WEBGL,!1);let S=nt.createTypedArray(g,m,f,d);r.texImage2D(s,0,p,f,d,0,g,Ye.toWebGLConstant(m,o),S)}this._initialized=!0}C||(u(l)?(r.pixelStorei(r.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!1),r.pixelStorei(r.UNPACK_FLIP_Y_WEBGL,!1),b&&(l=nt.flipY(l,g,m,a,c)),r.texSubImage2D(s,0,t,n,a,c,g,Ye.toWebGLConstant(m,o),l)):(r.pixelStorei(r.UNPACK_PREMULTIPLY_ALPHA_WEBGL,x),r.pixelStorei(r.UNPACK_FLIP_Y_WEBGL,b),r.texSubImage2D(s,0,t,n,g,Ye.toWebGLConstant(m,o),i))),r.bindTexture(s,null)};ld.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};ld.prototype.generateMipmap=function(e){e=y(e,kh.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)};ld.prototype.isDestroyed=function(){return!1};ld.prototype.destroy=function(){return this._context._gl.deleteTexture(this._texture),le(this)};var It=ld;function N0(){this._textures={},this._numberOfTextures=0,this._texturesToRelease={}}Object.defineProperties(N0.prototype,{numberOfTextures:{get:function(){return this._numberOfTextures}}});N0.prototype.getTexture=function(e){let t=this._textures[e];if(u(t))return delete this._texturesToRelease[e],++t.count,t.texture};N0.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};N0.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={}};N0.prototype.isDestroyed=function(){return!1};N0.prototype.destroy=function(){let e=this._textures;for(let t in e)e.hasOwnProperty(t)&&e[t].texture.finalDestroy();return le(this)};var ZD=N0;function Uh(){this.high=h.clone(h.ZERO),this.low=h.clone(h.ZERO)}Uh.encode=function(e,t){u(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 ip={high:0,low:0};Uh.fromCartesian=function(e,t){u(t)||(t=new Uh);let n=t.high,i=t.low;return Uh.encode(e.x,ip),n.x=ip.high,i.x=ip.low,Uh.encode(e.y,ip),n.y=ip.high,i.y=ip.low,Uh.encode(e.z,ip),n.z=ip.high,i.z=ip.low,t};var l5=new Uh;Uh.writeElements=function(e,t,n){Uh.fromCartesian(e,l5);let i=l5.high,o=l5.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 jn=Uh;function Es(e,t){this.normal=h.clone(e),this.distance=t}Es.fromPointNormal=function(e,t,n){let i=-h.dot(t,e);return u(n)?(h.clone(t,n.normal),n.distance=i,n):new Es(t,i)};var jEe=new h;Es.fromCartesian4=function(e,t){let n=h.fromCartesian4(e,jEe),i=e.w;return u(t)?(h.clone(n,t.normal),t.distance=i,t):new Es(n,i)};Es.getPointDistance=function(e,t){return h.dot(e.normal,t)+e.distance};var qEe=new h;Es.projectPointOntoPlane=function(e,t,n){u(n)||(n=new h);let i=Es.getPointDistance(e,t),o=h.multiplyByScalar(e.normal,i,qEe);return h.subtract(t,o,n)};var YEe=new F,XEe=new oe,KEe=new h;Es.transform=function(e,t,n){let i=e.normal,o=e.distance,r=F.inverseTranspose(t,YEe),s=oe.fromElements(i.x,i.y,i.z,o,XEe);s=F.multiplyByVector(r,s,s);let a=h.fromCartesian4(s,KEe);return s=oe.divideByScalar(s,h.magnitude(a),s),Es.fromCartesian4(s,n)};Es.clone=function(e,t){return u(t)?(h.clone(e.normal,t.normal),t.distance=e.distance,t):new Es(e.normal,e.distance)};Es.equals=function(e,t){return e.distance===t.distance&&h.equals(e.normal,t.normal)};Es.ORIGIN_XY_PLANE=Object.freeze(new Es(h.UNIT_Z,0));Es.ORIGIN_YZ_PLANE=Object.freeze(new Es(h.UNIT_X,0));Es.ORIGIN_ZX_PLANE=Object.freeze(new Es(h.UNIT_Y,0));var en=Es;function Zu(e){this.planes=y(e,[])}var $D=[new h,new h,new h];h.clone(h.UNIT_X,$D[0]);h.clone(h.UNIT_Y,$D[1]);h.clone(h.UNIT_Z,$D[2]);var ag=new h,ZEe=new h,pQ=new en(new h(1,0,0),0);Zu.fromBoundingSphere=function(e,t){u(t)||(t=new Zu);let n=$D.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=$D[a],l=i[s],f=i[s+1];u(l)||(l=i[s]=new oe),u(f)||(f=i[s+1]=new oe),h.multiplyByScalar(c,-r,ag),h.add(o,ag,ag),l.x=c.x,l.y=c.y,l.z=c.z,l.w=-h.dot(c,ag),h.multiplyByScalar(c,r,ag),h.add(o,ag,ag),f.x=-c.x,f.y=-c.y,f.z=-c.z,f.w=-h.dot(h.negate(c,ZEe),ag),s+=2}return t};Zu.prototype.computeVisibility=function(e){let t=this.planes,n=!1;for(let i=0,o=t.length;i<o;++i){let r=e.intersectPlane(en.fromCartesian4(t[i],pQ));if(r===Kt.OUTSIDE)return Kt.OUTSIDE;r===Kt.INTERSECTING&&(n=!0)}return n?Kt.INTERSECTING:Kt.INSIDE};Zu.prototype.computeVisibilityWithPlaneMask=function(e,t){if(t===Zu.MASK_OUTSIDE||t===Zu.MASK_INSIDE)return t;let n=Zu.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(en.fromCartesian4(i[o],pQ));if(a===Kt.OUTSIDE)return Zu.MASK_OUTSIDE;a===Kt.INTERSECTING&&(n|=s)}return n};Zu.MASK_OUTSIDE=4294967295;Zu.MASK_INSIDE=0;Zu.MASK_INDETERMINATE=2147483647;var es=Zu;function Vh(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 es,this._orthographicMatrix=new F}function _Q(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(Vh.prototype,{projectionMatrix:{get:function(){return _Q(this),this._orthographicMatrix}}});var $Ee=new h,QEe=new h,JEe=new h,u5=new h;Vh.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,l=this.far,f=h.cross(t,n,$Ee);h.normalize(f,f);let d=QEe;h.multiplyByScalar(t,c,d),h.add(e,d,d);let p=JEe;h.multiplyByScalar(f,a,p),h.add(d,p,p);let g=i[0];return u(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],u(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,u5),p),h.multiplyByScalar(n,r,p),h.add(d,p,p),g=i[2],u(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],u(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,u5),p),g=i[4],u(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,l,p),h.add(e,p,p),g=i[5],u(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,u5),p),this._cullingVolume};Vh.prototype.getPixelDimensions=function(e,t,n,i,o){_Q(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};Vh.prototype.clone=function(e){return u(e)||(e=new Vh),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};Vh.prototype.equals=function(e){return u(e)&&e instanceof Vh&&this.right===e.right&&this.left===e.left&&this.top===e.top&&this.bottom===e.bottom&&this.near===e.near&&this.far===e.far};Vh.prototype.equalsEpsilon=function(e,t,n){return e===this||u(e)&&e instanceof Vh&&P.equalsEpsilon(this.right,e.right,t,n)&&P.equalsEpsilon(this.left,e.left,t,n)&&P.equalsEpsilon(this.top,e.top,t,n)&&P.equalsEpsilon(this.bottom,e.bottom,t,n)&&P.equalsEpsilon(this.near,e.near,t,n)&&P.equalsEpsilon(this.far,e.far,t,n)};var Cr=Vh;function fl(e){e=y(e,y.EMPTY_OBJECT),this._offCenterFrustum=new Cr,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}fl.packedLength=4;fl.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};fl.unpack=function(e,t,n){return t=y(t,0),u(n)||(n=new fl),n.width=e[t++],n.aspectRatio=e[t++],n.near=e[t++],n.far=e[t],n};function cg(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(fl.prototype,{projectionMatrix:{get:function(){return cg(this),this._offCenterFrustum.projectionMatrix}},offCenterFrustum:{get:function(){return cg(this),this._offCenterFrustum}}});fl.prototype.computeCullingVolume=function(e,t,n){return cg(this),this._offCenterFrustum.computeCullingVolume(e,t,n)};fl.prototype.getPixelDimensions=function(e,t,n,i,o){return cg(this),this._offCenterFrustum.getPixelDimensions(e,t,n,i,o)};fl.prototype.clone=function(e){return u(e)||(e=new fl),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};fl.prototype.equals=function(e){return!u(e)||!(e instanceof fl)?!1:(cg(this),cg(e),this.width===e.width&&this.aspectRatio===e.aspectRatio&&this._offCenterFrustum.equals(e._offCenterFrustum))};fl.prototype.equalsEpsilon=function(e,t,n){return!u(e)||!(e instanceof fl)?!1:(cg(this),cg(e),P.equalsEpsilon(this.width,e.width,t,n)&&P.equalsEpsilon(this.aspectRatio,e.aspectRatio,t,n)&&this._offCenterFrustum.equalsEpsilon(e._offCenterFrustum,t,n))};var $t=fl;var f5={};function eSe(e){let t=6.239996+.0172019696544*e;return .001657*Math.sin(t+.01671*Math.sin(t))}var tSe=32.184,nSe=2451545;function NQ(e,t){t=J.addSeconds(e,tSe,t);let n=J.totalDays(t)-nSe;return t=J.addSeconds(t,eSe(n),t),t}var nk=new J(2451545,0,Xn.TAI),iSe=1e3,$u=P.RADIANS_PER_DEGREE,Kl=P.RADIANS_PER_ARCSECOND,ma=14959787e4,gQ=new Q;function FQ(e,t,n,i,o,r,s){n<0&&(n=-n,o+=P.PI);let a=e*(1-t),c=i-o,l=o,f=rSe(r-i,t),d=oSe(t,0);uSe(c,n,l,gQ);let p=a*(1+t),g=Math.cos(f),m=Math.sin(f),x=1+t*g,b=p/x;return u(s)?(s.x=b*g,s.y=b*m,s.z=0):s=new h(b*g,b*m,0),Q.multiplyByVector(gQ,s,s)}function oSe(e,t){return e<=t?"Circular":e<1-t?"Elliptical":e<=1+t?"Parabolic":"Hyperbolic"}function rSe(e,t){let n=cSe(e,t);return lSe(n,t)}var sSe=50,aSe=P.EPSILON8;function cSe(e,t){let n=Math.floor(e/P.TWO_PI);e-=n*P.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<sSe&&Math.abs(o-i)>aSe;++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*P.TWO_PI,o}function lSe(e,t){let n=Math.floor(e/P.TWO_PI);e-=n*P.TWO_PI;let i=Math.cos(e)-t,o=Math.sin(e)*Math.sqrt(1-t*t),r=Math.atan2(o,i);return r=P.zeroToTwoPi(r),e<0&&(r-=P.TWO_PI),r+=n*P.TWO_PI,r}function uSe(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),l=Math.sin(n);return u(i)?(i[0]=c*o-l*r*s,i[1]=l*o+c*r*s,i[2]=r*a,i[3]=-c*r-l*o*s,i[4]=-l*r+c*o*s,i[5]=o*a,i[6]=l*a,i[7]=-c*a,i[8]=s):i=new Q(c*o-l*r*s,-c*r-l*o*s,l*a,l*o+c*r*s,-l*r+c*o*s,-c*a,r*a,o*a,s),i}var fSe=1.0000010178*ma,dSe=100.46645683*$u,hSe=129597742283429e-5*Kl,yQ=16002,xQ=21863,bQ=32004,TQ=10931,AQ=14529,CQ=16368,EQ=15318,SQ=32794,mSe=64*1e-7*ma,pSe=-152*1e-7*ma,_Se=62*1e-7*ma,gSe=-8*1e-7*ma,ySe=32*1e-7*ma,xSe=-41*1e-7*ma,bSe=19*1e-7*ma,TSe=-11*1e-7*ma,ASe=-150*1e-7*ma,CSe=-46*1e-7*ma,ESe=68*1e-7*ma,SSe=54*1e-7*ma,wSe=14*1e-7*ma,vSe=24*1e-7*ma,DSe=-28*1e-7*ma,ISe=22*1e-7*ma,wQ=10,vQ=16002,DQ=21863,IQ=10931,PQ=1473,OQ=32004,RQ=4387,MQ=73,PSe=-325*1e-7,OSe=-322*1e-7,RSe=-79*1e-7,MSe=232*1e-7,LSe=-52*1e-7,NSe=97*1e-7,FSe=55*1e-7,BSe=-41*1e-7,kSe=-105*1e-7,USe=-137*1e-7,VSe=258*1e-7,zSe=35*1e-7,HSe=-116*1e-7,GSe=-88*1e-7,WSe=-112*1e-7,jSe=-80*1e-7,cA=new J(0,0,Xn.TAI);function qSe(e,t){NQ(e,cA);let i=(cA.dayNumber-nk.dayNumber+(cA.secondsOfDay-nk.secondsOfDay)/Zn.SECONDS_PER_DAY)/(Zn.DAYS_PER_JULIAN_CENTURY*10),o=.3595362*i,r=fSe+mSe*Math.cos(yQ*o)+ASe*Math.sin(yQ*o)+pSe*Math.cos(xQ*o)+CSe*Math.sin(xQ*o)+_Se*Math.cos(bQ*o)+ESe*Math.sin(bQ*o)+gSe*Math.cos(TQ*o)+SSe*Math.sin(TQ*o)+ySe*Math.cos(AQ*o)+wSe*Math.sin(AQ*o)+xSe*Math.cos(CQ*o)+vSe*Math.sin(CQ*o)+bSe*Math.cos(EQ*o)+DSe*Math.sin(EQ*o)+TSe*Math.cos(SQ*o)+ISe*Math.sin(SQ*o),s=dSe+hSe*i+PSe*Math.cos(wQ*o)+kSe*Math.sin(wQ*o)+OSe*Math.cos(vQ*o)+USe*Math.sin(vQ*o)+RSe*Math.cos(DQ*o)+VSe*Math.sin(DQ*o)+MSe*Math.cos(IQ*o)+zSe*Math.sin(IQ*o)+LSe*Math.cos(PQ*o)+HSe*Math.sin(PQ*o)+NSe*Math.cos(OQ*o)+GSe*Math.sin(OQ*o)+FSe*Math.cos(RQ*o)+WSe*Math.sin(RQ*o)+BSe*Math.cos(MQ*o)+jSe*Math.sin(MQ*o),a=.0167086342-.0004203654*i,c=102.93734808*$u+11612.3529*Kl*i,l=469.97289*Kl*i,f=174.87317577*$u-8679.27034*Kl*i;return FQ(r,a,l,c,f,s,t)}function BQ(e,t){NQ(e,cA);let i=(cA.dayNumber-nk.dayNumber+(cA.secondsOfDay-nk.secondsOfDay)/Zn.SECONDS_PER_DAY)/Zn.DAYS_PER_JULIAN_CENTURY,o=i*i,r=o*i,s=r*i,a=383397.7725+.004*i,c=.055545526-16e-9*i,l=5.15668983*$u,f=-8e-5*i+.02966*o-42e-6*r-13e-8*s,d=83.35324312*$u,p=146434202669e-4*i-38.2702*o-.045047*r+21301e-8*s,g=125.04455501*$u,m=-69679193631e-4*i+6.3602*o+.007625*r-3586e-8*s,x=218.31664563*$u,b=17325593434847e-4*i-6.391*o+.006588*r-3169e-8*s,T=297.85019547*$u+Kl*(1602961601209e-3*i-6.3706*o+.006593*r-3169e-8*s),A=93.27209062*$u+Kl*(17395272628478e-4*i-12.7512*o-.001037*r+417e-8*s),C=134.96340251*$u+Kl*(17179159232178e-4*i+31.8792*o+.051635*r-2447e-7*s),S=357.52910918*$u+Kl*(1295965810481e-4*i-.5532*o+136e-6*r-1149e-8*s),w=310.17137918*$u-Kl*(6967051436e-3*i+6.2068*o+.007618*r-3219e-8*s),D=2*T,O=4*T,R=6*T,L=2*C,N=3*C,_=4*C,E=2*A;a+=3400.4*Math.cos(D)-635.6*Math.cos(D-C)-235.6*Math.cos(C)+218.1*Math.cos(D-S)+181*Math.cos(D+C),c+=.014216*Math.cos(D-C)+.008551*Math.cos(D-L)-.001383*Math.cos(C)+.001356*Math.cos(D+C)-.001147*Math.cos(O-N)-914e-6*Math.cos(O-L)+869e-6*Math.cos(D-S-C)-627e-6*Math.cos(D)-394e-6*Math.cos(O-_)+282e-6*Math.cos(D-S-L)-279e-6*Math.cos(T-C)-236e-6*Math.cos(L)+231e-6*Math.cos(O)+229e-6*Math.cos(R-_)-201e-6*Math.cos(L-E),f+=486.26*Math.cos(D-E)-40.13*Math.cos(D)+37.51*Math.cos(E)+25.73*Math.cos(L-E)+19.97*Math.cos(D-S-E),p+=-55609*Math.sin(D-C)-34711*Math.sin(D-L)-9792*Math.sin(C)+9385*Math.sin(O-N)+7505*Math.sin(O-L)+5318*Math.sin(D+C)+3484*Math.sin(O-_)-3417*Math.sin(D-S-C)-2530*Math.sin(R-_)-2376*Math.sin(D)-2075*Math.sin(D-N)-1883*Math.sin(L)-1736*Math.sin(R-5*C)+1626*Math.sin(S)-1370*Math.sin(R-N),m+=-5392*Math.sin(D-E)-540*Math.sin(S)-441*Math.sin(D)+423*Math.sin(E)-288*Math.sin(L-E),b+=-3332.9*Math.sin(D)+1197.4*Math.sin(D-C)-662.5*Math.sin(S)+396.3*Math.sin(C)-218*Math.sin(D-S);let v=2*w,I=3*w;f+=46.997*Math.cos(w)*i-.614*Math.cos(D-E+w)*i+.614*Math.cos(D-E-w)*i-.0297*Math.cos(v)*o-.0335*Math.cos(w)*o+.0012*Math.cos(D-E+v)*o-16e-5*Math.cos(w)*r+4e-5*Math.cos(I)*r+4e-5*Math.cos(v)*r;let M=2.116*Math.sin(w)*i-.111*Math.sin(D-E-w)*i-.0015*Math.sin(w)*o;p+=M,b+=M,m+=-520.77*Math.sin(w)*i+13.66*Math.sin(D-E+w)*i+1.12*Math.sin(D-w)*i-1.06*Math.sin(E-w)*i+.66*Math.sin(v)*o+.371*Math.sin(w)*o-.035*Math.sin(D-E+v)*o-.015*Math.sin(D-E+w)*o+.0014*Math.sin(w)*r-.0011*Math.sin(I)*r-9e-4*Math.sin(v)*r,a*=iSe;let B=l+f*Kl,V=d+p*Kl,U=x+b*Kl,G=g+m*Kl;return FQ(a,c,B,V,G,U,t)}var LQ=.012300034,YSe=LQ/(LQ+1)*-1;function XSe(e,t){return t=BQ(e,t),h.multiplyByScalar(t,YSe,t)}var kQ=new Q(1.0000000000000002,5619723173785822e-31,4690511510146299e-34,-5154129427414611e-31,.9174820620691819,-.39777715593191376,-223970096136568e-30,.39777715593191376,.9174820620691819),QD=new h;f5.computeSunPositionInEarthInertialFrame=function(e,t){return u(e)||(e=J.now()),u(t)||(t=new h),QD=qSe(e,QD),t=h.negate(QD,t),XSe(e,QD),h.subtract(t,QD,t),Q.multiplyByVector(kQ,t,t),t};f5.computeMoonPositionInEarthInertialFrame=function(e,t){return u(e)||(e=J.now()),t=BQ(e,t),Q.multiplyByVector(kQ,t,t),t};var lg=f5;var ik={MORPHING:0,COLUMBUS_VIEW:1,SCENE2D:2,SCENE3D:3};ik.getMorphTime=function(e){return e===ik.SCENE3D?1:e===ik.MORPHING?void 0:0};var te=Object.freeze(ik);function KSe(e){e=y(e,y.EMPTY_OBJECT),this.color=H.clone(y(e.color,H.WHITE)),this.intensity=y(e.intensity,2)}var op=KSe;function lA(){this.globeDepthTexture=void 0,this.gamma=void 0,this._viewport=new We,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=Q.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 Q,this._viewRotation=new Q,this._inverseViewRotation=new Q,this._viewRotation3D=new Q,this._inverseViewRotation3D=new Q,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 Q,this._normal3DDirty=!0,this._normal3D=new Q,this._inverseNormalDirty=!0,this._inverseNormal=new Q,this._inverseNormal3DDirty=!0,this._inverseNormal3D=new Q,this._encodedCameraPositionMCDirty=!0,this._encodedCameraPositionMC=new jn,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._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._invertClassificationColor=void 0,this._splitPosition=0,this._pixelSizePerMeter=void 0,this._geometricToleranceOverMeter=void 0,this._minimumDisableDepthTestDistance=void 0}Object.defineProperties(lA.prototype,{frameState:{get:function(){return this._frameState}},viewport:{get:function(){return this._viewport},set:function(e){if(!We.equals(e,this._viewport)){We.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 UQ(this),this._viewportOrthographicMatrix}},viewportTransformation:{get:function(){return UQ(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),Q.transpose(e,e)),e}},view:{get:function(){return this._view}},view3D:{get:function(){return d5(this),this._view3D}},viewRotation:{get:function(){return d5(this),this._viewRotation}},viewRotation3D:{get:function(){return d5(this),this._viewRotation3D}},inverseView:{get:function(){return this._inverseView}},inverseView3D:{get:function(){return HQ(this),this._inverseView3D}},inverseViewRotation:{get:function(){return this._inverseViewRotation}},inverseViewRotation3D:{get:function(){return HQ(this),this._inverseViewRotation3D}},projection:{get:function(){return this._projection}},inverseProjection:{get:function(){return rwe(this),this._inverseProjection}},infiniteProjection:{get:function(){return this._infiniteProjection}},modelView:{get:function(){return swe(this),this._modelView}},modelView3D:{get:function(){return awe(this),this._modelView3D}},modelViewRelativeToEye:{get:function(){return hwe(this),this._modelViewRelativeToEye}},inverseModelView:{get:function(){return cwe(this),this._inverseModelView}},inverseModelView3D:{get:function(){return lwe(this),this._inverseModelView3D}},viewProjection:{get:function(){return uwe(this),this._viewProjection}},inverseViewProjection:{get:function(){return fwe(this),this._inverseViewProjection}},modelViewProjection:{get:function(){return dwe(this),this._modelViewProjection}},inverseModelViewProjection:{get:function(){return mwe(this),this._inverseModelViewProjection}},modelViewProjectionRelativeToEye:{get:function(){return pwe(this),this._modelViewProjectionRelativeToEye}},modelViewInfiniteProjection:{get:function(){return _we(this),this._modelViewInfiniteProjection}},normal:{get:function(){return gwe(this),this._normal}},normal3D:{get:function(){return ywe(this),this._normal3D}},inverseNormal:{get:function(){return xwe(this),this._inverseNormal}},inverseNormal3D:{get:function(){return bwe(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}},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 zQ(this),this._encodedCameraPositionMC.high}},encodedCameraPositionMCLow:{get:function(){return zQ(this),this._encodedCameraPositionMC.low}},temeToPseudoFixedMatrix:{get:function(){return this._temeToPseudoFixed}},pixelRatio:{get:function(){return this._pixelRatio}},fogDensity:{get:function(){return this._fogDensity}},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,ie.WGS84)}}});function ZSe(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 $Se(e,t){F.clone(t,e._inverseView),F.getMatrix3(t,e._inverseViewRotation)}function QSe(e,t){F.clone(t,e._projection),e._inverseProjectionDirty=!0,e._viewProjectionDirty=!0,e._inverseViewProjectionDirty=!0,e._modelViewProjectionDirty=!0,e._modelViewProjectionRelativeToEyeDirty=!0}function JSe(e,t){F.clone(t,e._infiniteProjection),e._modelViewInfiniteProjectionDirty=!0}function ewe(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=t.positionCartographic;u(n)?e._eyeHeight=n.height:e._eyeHeight=-e._ellipsoid.maximumRadius,e._encodedCameraPositionMCDirty=!0}var JD=new Q,twe=new fe;function nwe(e,t){u(Rt.computeIcrfToFixedMatrix(t.time,JD))||(JD=Rt.computeTemeToPseudoFixedMatrix(t.time,JD));let n=lg.computeSunPositionInEarthInertialFrame(t.time,e._sunPositionWC);Q.multiplyByVector(JD,n,n),h.normalize(n,e._sunDirectionWC),n=Q.multiplyByVector(e.viewRotation3D,n,e._sunDirectionEC),h.normalize(n,n),n=lg.computeMoonPositionInEarthInertialFrame(t.time,e._moonDirectionEC),Q.multiplyByVector(JD,n,n),Q.multiplyByVector(e.viewRotation3D,n,n),h.normalize(n,n);let i=t.mapProjection,r=i.ellipsoid.cartesianToCartographic(e._sunPositionWC,twe);i.project(r,e._sunPositionColumbusView)}lA.prototype.updateCamera=function(e){ZSe(this,e.viewMatrix),$Se(this,e.inverseViewMatrix),ewe(this,e),this._entireFrustum.x=e.frustum.near,this._entireFrustum.y=e.frustum.far,this.updateFrustum(e.frustum),this._orthographicIn3D=this._mode!==te.SCENE2D&&e.frustum instanceof $t};lA.prototype.updateFrustum=function(e){QSe(this,e.projectionMatrix),u(e.infiniteProjectionMatrix)&&JSe(this,e.infiniteProjectionMatrix),this._currentFrustum.x=e.near,this._currentFrustum.y=e.far,this._farDepthFromNearPlusOne=e.far-e.near+1,this._log2FarDepthFromNearPlusOne=P.log2(this._farDepthFromNearPlusOne),this._oneOverLog2FarDepthFromNearPlusOne=1/this._log2FarDepthFromNearPlusOne;let t=e.offCenterFrustum;u(t)&&(e=t),this._frustumPlanes.x=e.top,this._frustumPlanes.y=e.bottom,this._frustumPlanes.z=e.left,this._frustumPlanes.w=e.right};lA.prototype.updatePass=function(e){this._pass=e};var iwe=[],owe=new op;lA.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===te.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),nwe(this,e);let n=y(e.light,owe);n instanceof op?(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=Q.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=u(s)?s.colorTexture:void 0;this._brdfLut=a,this._environmentMap=y(e.environmentMap,e.context.defaultCubeMap),this._sphericalHarmonicCoefficients=y(e.sphericalHarmonicCoefficients,iwe),this._specularEnvironmentMaps=e.specularEnvironmentMaps,this._specularEnvironmentMapsMaximumLOD=e.specularEnvironmentMapsMaximumLOD,u(this._specularEnvironmentMaps)&&z.clone(this._specularEnvironmentMaps.dimensions,this._specularEnvironmentMapsDimensions),this._fogDensity=e.fog.density,this._invertClassificationColor=e.invertClassificationColor,this._frameState=e,this._temeToPseudoFixed=Rt.computeTemeToPseudoFixedMatrix(e.time,this._temeToPseudoFixed),this._splitPosition=e.splitPosition*e.context.drawingBufferWidth;let c=t.frustum.fov,l=this._viewport,f;u(c)?l.height>l.width?f=Math.tan(.5*c)*2/l.height:f=Math.tan(.5*c)*2/l.width:f=1/Math.max(l.width,l.height),this._geometricToleranceOverMeter=f*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 UQ(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 rwe(e){e._inverseProjectionDirty&&(e._inverseProjectionDirty=!1,e._mode!==te.SCENE2D&&e._mode!==te.MORPHING&&!e._orthographicIn3D?F.inverse(e._projection,e._inverseProjection):F.clone(F.ZERO,e._inverseProjection))}function swe(e){e._modelViewDirty&&(e._modelViewDirty=!1,F.multiplyTransformation(e._view,e._model,e._modelView))}function awe(e){e._modelView3DDirty&&(e._modelView3DDirty=!1,F.multiplyTransformation(e.view3D,e._model,e._modelView3D))}function cwe(e){e._inverseModelViewDirty&&(e._inverseModelViewDirty=!1,F.inverse(e.modelView,e._inverseModelView))}function lwe(e){e._inverseModelView3DDirty&&(e._inverseModelView3DDirty=!1,F.inverse(e.modelView3D,e._inverseModelView3D))}function uwe(e){e._viewProjectionDirty&&(e._viewProjectionDirty=!1,F.multiply(e._projection,e._view,e._viewProjection))}function fwe(e){e._inverseViewProjectionDirty&&(e._inverseViewProjectionDirty=!1,F.inverse(e.viewProjection,e._inverseViewProjection))}function dwe(e){e._modelViewProjectionDirty&&(e._modelViewProjectionDirty=!1,F.multiply(e._projection,e.modelView,e._modelViewProjection))}function hwe(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 mwe(e){e._inverseModelViewProjectionDirty&&(e._inverseModelViewProjectionDirty=!1,F.inverse(e.modelViewProjection,e._inverseModelViewProjection))}function pwe(e){e._modelViewProjectionRelativeToEyeDirty&&(e._modelViewProjectionRelativeToEyeDirty=!1,F.multiply(e._projection,e.modelViewRelativeToEye,e._modelViewProjectionRelativeToEye))}function _we(e){e._modelViewInfiniteProjectionDirty&&(e._modelViewInfiniteProjectionDirty=!1,F.multiply(e._infiniteProjection,e.modelView,e._modelViewInfiniteProjection))}function gwe(e){if(e._normalDirty){e._normalDirty=!1;let t=e._normal;F.getMatrix3(e.inverseModelView,t),Q.getRotation(t,t),Q.transpose(t,t)}}function ywe(e){if(e._normal3DDirty){e._normal3DDirty=!1;let t=e._normal3D;F.getMatrix3(e.inverseModelView3D,t),Q.getRotation(t,t),Q.transpose(t,t)}}function xwe(e){e._inverseNormalDirty&&(e._inverseNormalDirty=!1,F.getMatrix3(e.inverseModelView,e._inverseNormal),Q.getRotation(e._inverseNormal,e._inverseNormal))}function bwe(e){e._inverseNormal3DDirty&&(e._inverseNormal3DDirty=!1,F.getMatrix3(e.inverseModelView3D,e._inverseNormal3D),Q.getRotation(e._inverseNormal3D,e._inverseNormal3D))}var VQ=new h;function zQ(e){e._encodedCameraPositionMCDirty&&(e._encodedCameraPositionMCDirty=!1,F.multiplyByPoint(e.inverseModel,e._cameraPosition,VQ),jn.fromCartesian(VQ,e._encodedCameraPositionMC))}var Twe=new h,Awe=new h,Cwe=new h,Ewe=new h,Swe=new fe,wwe=new h,vwe=new F;function Dwe(e,t,n,i,o,r,s,a){let c=Twe;c.x=e.y,c.y=e.z,c.z=e.x;let l=Awe;l.x=n.y,l.y=n.z,l.z=n.x;let f=Cwe;f.x=i.y,f.y=i.z,f.z=i.x;let d=Ewe;d.x=t.y,d.y=t.z,d.z=t.x,r===te.SCENE2D&&(c.z=o*.5);let p=s.unproject(c,Swe);p.longitude=P.clamp(p.longitude,-Math.PI,Math.PI),p.latitude=P.clamp(p.latitude,-P.PI_OVER_TWO,P.PI_OVER_TWO);let g=s.ellipsoid,m=g.cartographicToCartesian(p,wwe),x=Rt.eastNorthUpToFixedFrame(m,g,vwe);return F.multiplyByPointAsVector(x,l,l),F.multiplyByPointAsVector(x,f,f),F.multiplyByPointAsVector(x,d,d),u(a)||(a=new F),a[0]=l.x,a[1]=f.x,a[2]=-d.x,a[3]=0,a[4]=l.y,a[5]=f.y,a[6]=-d.y,a[7]=0,a[8]=l.z,a[9]=f.z,a[10]=-d.z,a[11]=0,a[12]=-h.dot(l,m),a[13]=-h.dot(f,m),a[14]=h.dot(d,m),a[15]=1,a}function d5(e){e._view3DDirty&&(e._mode===te.SCENE3D?F.clone(e._view,e._view3D):Dwe(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 HQ(e){e._inverseView3DDirty&&(F.inverseTransformation(e.view3D,e._inverseView3D),F.getMatrix3(e._inverseView3D,e._inverseViewRotation3D),e._inverseView3DDirty=!1)}var eI=lA;function Iwe(e,t,n,i){let o=u(t.vertexBuffer),r=u(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 l=this.index;c.bindBuffer(c.ARRAY_BUFFER,this.vertexBuffer._getBuffer()),c.vertexAttribPointer(l,this.componentsPerAttribute,this.componentDatatype,this.normalize,this.strideInBytes,this.offsetInBytes),c.enableVertexAttribArray(l),this.instanceDivisor>0&&(i.glVertexAttribDivisor(l,this.instanceDivisor),i._vertexAttribDivisors[l]=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 WQ(e,t,n){for(let i=0;i<t.length;++i){let o=t[i];o.enabled&&o.vertexAttrib(e)}u(n)&&e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,n._getBuffer())}function rp(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,l=!1,f=i.length;for(r=0;r<f;++r)Iwe(s,i[r],r,t);for(f=s.length,r=0;r<f;++r){let p=s[r];if(u(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),u(s[r].value)&&(l=!0);let d;t.vertexArrayObject&&(d=t.glCreateVertexArray(),t.glBindVertexArray(d),WQ(n,s,o),t.glBindVertexArray(null)),this._numberOfVertices=a,this._hasInstancedAttributes=c,this._hasConstantAttributes=l,this._context=t,this._gl=n,this._vao=d,this._attributes=s,this._indexBuffer=o}function GQ(e){return e.values.length/e.componentsPerAttribute}function Pwe(e){return X.getSizeInBytes(e.componentDatatype)*e.componentsPerAttribute}function Owe(e){let t,n,i,o=[];for(n in e)e.hasOwnProperty(n)&&u(e[n])&&u(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=GQ(e[o[0]]),t=1;t<s;++t){let l=GQ(e[o[t]]);if(l!==r)throw new ue(`Each attribute list must have the same number of vertices. Attribute ${o[t]} has a different number of vertices (${l.toString()}) than attribute ${o[0]} (${r.toString()}).`)}o.sort(function(l,f){return X.getSizeInBytes(e[f].componentDatatype)-X.getSizeInBytes(e[l].componentDatatype)});let a=0,c={};for(t=0;t<s;++t)n=o[t],i=e[n],c[n]=a,a+=Pwe(i);if(a>0){let l=X.getSizeInBytes(e[o[0]].componentDatatype),f=a%l;f!==0&&(a+=l-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,A=i.componentsPerAttribute;for(let C=0;C<A;++C)T[b.index+C]=x[t*A+C];b.index+=b.strideInComponentType}return{buffer:p,offsetsInBytes:c,vertexSizeInBytes:a}}}rp.fromGeometry=function(e){e=y(e,y.EMPTY_OBJECT);let t=e.context,n=y(e.geometry,y.EMPTY_OBJECT),i=y(e.bufferUsage,Ne.DYNAMIC_DRAW),o=y(e.attributeLocations,y.EMPTY_OBJECT),r=y(e.interleave,!1),s=e.vertexArrayAttributes,a,c,l,f=u(s)?s:[],d=n.attributes;if(r){let m=Owe(d);if(u(m)){l=ct.createVertexBuffer({context:t,typedArray:m.buffer,usage:i});let x=m.offsetsInBytes,b=m.vertexSizeInBytes;for(a in d)d.hasOwnProperty(a)&&u(d[a])&&(c=d[a],u(c.values)?f.push({index:o[a],vertexBuffer:l,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)&&u(d[a])){c=d[a];let m=c.componentDatatype;m===X.DOUBLE&&(m=X.FLOAT),l=void 0,u(c.values)&&(l=ct.createVertexBuffer({context:t,typedArray:X.createTypedArray(m,c.values),usage:i})),f.push({index:o[a],vertexBuffer:l,value:c.value,componentDatatype:m,componentsPerAttribute:c.componentsPerAttribute,normalize:c.normalize})}let p,g=n.indices;return u(g)&&(st.computeNumberOfVertices(n)>=P.SIXTY_FOUR_KILOBYTES&&t.elementIndexUint?p=ct.createIndexBuffer({context:t,typedArray:new Uint32Array(g),usage:i,indexDatatype:Fe.UNSIGNED_INT}):p=ct.createIndexBuffer({context:t,typedArray:new Uint16Array(g),usage:i,indexDatatype:Fe.UNSIGNED_SHORT})),new rp({context:t,attributes:f,indexBuffer:p})};Object.defineProperties(rp.prototype,{numberOfAttributes:{get:function(){return this._attributes.length}},numberOfVertices:{get:function(){return this._numberOfVertices}},indexBuffer:{get:function(){return this._indexBuffer}}});rp.prototype.getAttribute=function(e){return this._attributes[e]};function Rwe(e){let t=e._context,n=e._hasInstancedAttributes;if(!n&&!t._previousDrawInstanced)return;t._previousDrawInstanced=n;let i=t._vertexAttribDivisors,o=e._attributes,r=Ut.maximumVertexAttributes,s;if(n){let a=o.length;for(s=0;s<a;++s){let c=o[s];if(c.enabled){let l=c.instanceDivisor,f=c.index;l!==i[f]&&(t.glVertexAttribDivisor(f,l),i[f]=l)}}}else for(s=0;s<r;++s)i[s]>0&&(t.glVertexAttribDivisor(s,0),i[s]=0)}function Mwe(e,t){let n=e._attributes,i=n.length;for(let o=0;o<i;++o){let r=n[o];r.enabled&&u(r.value)&&r.vertexAttrib(t)}}rp.prototype._bind=function(){u(this._vao)?(this._context.glBindVertexArray(this._vao),this._context.instancedArrays&&Rwe(this),this._hasConstantAttributes&&Mwe(this,this._gl)):WQ(this._gl,this._attributes,this._indexBuffer)};rp.prototype._unBind=function(){if(u(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)}};rp.prototype.isDestroyed=function(){return!1};rp.prototype.destroy=function(){let e=this._attributes;for(let n=0;n<e.length;++n){let i=e[n].vertexBuffer;u(i)&&!i.isDestroyed()&&i.vertexArrayDestroyable&&i.destroy()}let t=this._indexBuffer;return u(t)&&!t.isDestroyed()&&t.vertexArrayDestroyable&&t.destroy(),u(this._vao)&&this._context.glDeleteVertexArray(this._vao),le(this)};var ni=rp;function Zl(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=u(n)?n(e,o):Lwe(e,o,i),c=typeof WebGL2RenderingContext<"u"&&s instanceof WebGL2RenderingContext;this._canvas=e,this._originalGLContext=s,this._gl=s,this._webgl2=c,this._id=Wn(),this.validateFramebuffer=!1,this.validateShaderProgram=!1,this.logShaderCompilation=!1,this._throwOnWebGLError=!1,this._shaderCache=new KD(this),this._textureCache=new ZD;let l=s;this._stencilBits=l.getParameter(l.STENCIL_BITS),Ut._maximumCombinedTextureImageUnits=l.getParameter(l.MAX_COMBINED_TEXTURE_IMAGE_UNITS),Ut._maximumCubeMapSize=l.getParameter(l.MAX_CUBE_MAP_TEXTURE_SIZE),Ut._maximumFragmentUniformVectors=l.getParameter(l.MAX_FRAGMENT_UNIFORM_VECTORS),Ut._maximumTextureImageUnits=l.getParameter(l.MAX_TEXTURE_IMAGE_UNITS),Ut._maximumRenderbufferSize=l.getParameter(l.MAX_RENDERBUFFER_SIZE),Ut._maximumTextureSize=l.getParameter(l.MAX_TEXTURE_SIZE),Ut._maximumVaryingVectors=l.getParameter(l.MAX_VARYING_VECTORS),Ut._maximumVertexAttributes=l.getParameter(l.MAX_VERTEX_ATTRIBS),Ut._maximumVertexTextureImageUnits=l.getParameter(l.MAX_VERTEX_TEXTURE_IMAGE_UNITS),Ut._maximumVertexUniformVectors=l.getParameter(l.MAX_VERTEX_UNIFORM_VECTORS),Ut._maximumSamples=this._webgl2?l.getParameter(l.MAX_SAMPLES):0;let f=l.getParameter(l.ALIASED_LINE_WIDTH_RANGE);Ut._minimumAliasedLineWidth=f[0],Ut._maximumAliasedLineWidth=f[1];let d=l.getParameter(l.ALIASED_POINT_SIZE_RANGE);Ut._minimumAliasedPointSize=d[0],Ut._maximumAliasedPointSize=d[1];let p=l.getParameter(l.MAX_VIEWPORT_DIMS);Ut._maximumViewportWidth=p[0],Ut._maximumViewportHeight=p[1];let g=l.getShaderPrecisionFormat(l.FRAGMENT_SHADER,l.HIGH_FLOAT);Ut._highpFloatSupported=g.precision!==0;let m=l.getShaderPrecisionFormat(l.FRAGMENT_SHADER,l.HIGH_INT);Ut._highpIntSupported=m.rangeMax!==0,this._antialias=l.getContextAttributes().antialias,this._standardDerivatives=!!Er(l,["OES_standard_derivatives"]),this._blendMinmax=!!Er(l,["EXT_blend_minmax"]),this._elementIndexUint=!!Er(l,["OES_element_index_uint"]),this._depthTexture=!!Er(l,["WEBGL_depth_texture","WEBKIT_WEBGL_depth_texture"]),this._fragDepth=!!Er(l,["EXT_frag_depth"]),this._debugShaders=Er(l,["WEBGL_debug_shaders"]),this._textureFloat=!!Er(l,["OES_texture_float"]),this._textureHalfFloat=!!Er(l,["OES_texture_half_float"]),this._textureFloatLinear=!!Er(l,["OES_texture_float_linear"]),this._textureHalfFloatLinear=!!Er(l,["OES_texture_half_float_linear"]),this._colorBufferFloat=!!Er(l,["EXT_color_buffer_float","WEBGL_color_buffer_float"]),this._floatBlend=!!Er(l,["EXT_float_blend"]),this._colorBufferHalfFloat=!!Er(l,["EXT_color_buffer_half_float"]),this._s3tc=!!Er(l,["WEBGL_compressed_texture_s3tc","MOZ_WEBGL_compressed_texture_s3tc","WEBKIT_WEBGL_compressed_texture_s3tc"]),this._pvrtc=!!Er(l,["WEBGL_compressed_texture_pvrtc","WEBKIT_WEBGL_compressed_texture_pvrtc"]),this._astc=!!Er(l,["WEBGL_compressed_texture_astc"]),this._etc=!!Er(l,["WEBG_compressed_texture_etc"]),this._etc1=!!Er(l,["WEBGL_compressed_texture_etc1"]),this._bc7=!!Er(l,["EXT_texture_compression_bptc"]),ul.setKTX2SupportedFormats(this._s3tc,this._pvrtc,this._astc,this._etc,this._etc1,this._bc7);let x=r?Er(l,["EXT_texture_filter_anisotropic","WEBKIT_EXT_texture_filter_anisotropic"]):void 0;this._textureFilterAnisotropic=x,Ut._maximumTextureFilterAnisotropy=u(x)?l.getParameter(x.MAX_TEXTURE_MAX_ANISOTROPY_EXT):1;let b,T,A,C,S,w,D,O,R,L;if(c){let v=this;b=function(){return v._gl.createVertexArray()},T=function(I){v._gl.bindVertexArray(I)},A=function(I){v._gl.deleteVertexArray(I)},C=function(I,M,B,V,U){l.drawElementsInstanced(I,M,B,V,U)},S=function(I,M,B,V){l.drawArraysInstanced(I,M,B,V)},w=function(I,M){l.vertexAttribDivisor(I,M)},D=function(I){l.drawBuffers(I)}}else O=Er(l,["OES_vertex_array_object"]),u(O)&&(b=function(){return O.createVertexArrayOES()},T=function(v){O.bindVertexArrayOES(v)},A=function(v){O.deleteVertexArrayOES(v)}),R=Er(l,["ANGLE_instanced_arrays"]),u(R)&&(C=function(v,I,M,B,V){R.drawElementsInstancedANGLE(v,I,M,B,V)},S=function(v,I,M,B){R.drawArraysInstancedANGLE(v,I,M,B)},w=function(v,I){R.vertexAttribDivisorANGLE(v,I)}),L=Er(l,["WEBGL_draw_buffers"]),u(L)&&(D=function(v){L.drawBuffersWEBGL(v)});this.glCreateVertexArray=b,this.glBindVertexArray=T,this.glDeleteVertexArray=A,this.glDrawElementsInstanced=C,this.glDrawArraysInstanced=S,this.glVertexAttribDivisor=w,this.glDrawBuffers=D,this._vertexArrayObject=!!O,this._instancedArrays=!!R,this._drawBuffers=!!L,Ut._maximumDrawBuffers=this.drawBuffers?l.getParameter(ee.MAX_DRAW_BUFFERS):1,Ut._maximumColorAttachments=this.drawBuffers?l.getParameter(ee.MAX_COLOR_ATTACHMENTS):1,this._clearColor=new H(0,0,0,0),this._clearDepth=1,this._clearStencil=0;let N=new eI,_=new Ga(this),E=ke.fromCache();this._defaultPassState=_,this._defaultRenderState=E,this._defaultTexture=void 0,this._defaultEmissiveTexture=void 0,this._defaultNormalTexture=void 0,this._defaultCubeMap=void 0,this._us=N,this._currentRenderState=E,this._currentPassState=_,this._currentFramebuffer=void 0,this._maxFrameTextureUnitIndex=0,this._vertexAttribDivisors=[],this._previousDrawInstanced=!1;for(let v=0;v<Ut._maximumVertexAttributes;v++)this._vertexAttribDivisors.push(0);this._pickObjects={},this._nextPickColor=new Uint32Array(1),this.options={getWebGLStub:n,requestWebgl1:i,webgl:o,allowTextureFilterAnisotropic:r},this.cache={},ke.apply(l,E,_)}function Lwe(e,t,n){if(typeof WebGLRenderingContext>"u")throw new ue("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(!u(r))throw new ue("The browser supports WebGL, but initialization failed.");return r}function Nwe(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 Fwe(e,t,n,i){let o=`${Nwe(e,i)}: ${t.name}(`;for(let r=0;r<n.length;++r)r!==0&&(o+=", "),o+=n[r];return o+=");",o}function Bwe(e,t,n){let i=e.getError();if(i!==e.NO_ERROR)throw new ue(Fwe(e,t,n,i))}function kwe(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 Uwe(e,t){if(!u(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,kwe(e,o,t))}return i}function Er(e,t){let n=t.length;for(let i=0;i<n;++i){let o=e.getExtension(t[i]);if(o)return o}}var Vwe={};Object.defineProperties(Zl.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=Uwe(this._originalGLContext,e?Bwe:void 0)}},defaultTexture:{get:function(){return this._defaultTexture===void 0&&(this._defaultTexture=new It({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 It({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 It({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 Ha({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 Vwe}}});function jQ(e,t,n,i){let o=e._currentRenderState,r=e._currentPassState;e._currentRenderState=t,e._currentPassState=n,ke.partialApply(e._gl,o,t,r,n,i)}var h5;typeof WebGLRenderingContext<"u"&&(h5=[ee.BACK]);function m5(e,t){if(t!==e._currentFramebuffer){e._currentFramebuffer=t;let n=h5;if(u(t))t._bind(),n=t._getActiveColorAttachments();else{let i=e._gl;i.bindFramebuffer(i.FRAMEBUFFER,null)}e.drawBuffers&&e.glDrawBuffers(n)}}var zwe=new ti;Zl.prototype.clear=function(e,t){e=y(e,zwe),t=y(t,this._defaultPassState);let n=this._gl,i=0,o=e.color,r=e.depth,s=e.stencil;u(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),u(r)&&(r!==this._clearDepth&&(this._clearDepth=r,n.clearDepth(r)),i|=n.DEPTH_BUFFER_BIT),u(s)&&(s!==this._clearStencil&&(this._clearStencil=s,n.clearStencil(s)),i|=n.STENCIL_BUFFER_BIT);let a=y(e.renderState,this._defaultRenderState);jQ(this,a,t,!0);let c=y(e.framebuffer,t.framebuffer);m5(this,c),n.clear(i)};function Hwe(e,t,n,i,o){m5(e,t),jQ(e,o,n,!1),i._bind(),e._maxFrameTextureUnitIndex=Math.max(e._maxFrameTextureUnitIndex,i.maximumTextureUnitIndex)}function Gwe(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 l=r.indexBuffer;u(l)?(s=s*l.bytesPerIndex,u(a)?a=Math.min(a,l.numberOfIndices):a=l.numberOfIndices,c===0?e._gl.drawElements(o,a,l.indexDatatype,s):e.glDrawElementsInstanced(o,a,l.indexDatatype,s,c)):(u(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()}Zl.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),Hwe(this,o,t,n,r),Gwe(this,e,n,i)};Zl.prototype.endFrame=function(){let e=this._gl;e.useProgram(null),this._currentFramebuffer=void 0,e.bindFramebuffer(e.FRAMEBUFFER,null);let t=h5;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)};Zl.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=Ye.UNSIGNED_BYTE;u(s)&&s.numberOfColorAttachments>0&&(a=s.getColorTexture(0).pixelDatatype);let c=nt.createTypedArray(nt.RGBA,a,o,r);return m5(this,s),t.readPixels(n,i,o,r,nt.RGBA,Ye.toWebGLConstant(a,this),c),c};var qQ={position:0,textureCoordinates:1};Zl.prototype.getViewportQuadVertexArray=function(){let e=this.cache.viewportQuad_vertexArray;if(!u(e)){let t=new st({attributes:{position:new we({componentDatatype:X.FLOAT,componentsPerAttribute:2,values:[-1,-1,1,-1,1,1,-1,1]}),textureCoordinates:new we({componentDatatype:X.FLOAT,componentsPerAttribute:2,values:[0,0,1,0,1,1,0,1]})},indices:new Uint16Array([0,1,2,0,2,3]),primitiveType:Me.TRIANGLES});e=ni.fromGeometry({context:this,geometry:t,attributeLocations:qQ,bufferUsage:Ne.STATIC_DRAW,interleave:!0}),this.cache.viewportQuad_vertexArray=e}return e};Zl.prototype.createViewportQuadCommand=function(e,t){return t=y(t,y.EMPTY_OBJECT),new Je({vertexArray:this.getViewportQuadVertexArray(),primitiveType:Me.TRIANGLES,renderState:t.renderState,shaderProgram:Yt.fromCache({context:this,vertexShaderSource:A0,fragmentShaderSource:e,attributeLocations:qQ}),uniformMap:t.uniformMap,owner:t.owner,framebuffer:t.framebuffer,pass:t.pass})};Zl.prototype.getObjectByPickColor=function(e){return this._pickObjects[e.toRgba()]};function p5(e,t,n){this._pickObjects=e,this.key=t,this.color=n}Object.defineProperties(p5.prototype,{object:{get:function(){return this._pickObjects[this.key]},set:function(e){this._pickObjects[this.key]=e}}});p5.prototype.destroy=function(){delete this._pickObjects[this.key]};Zl.prototype.createPickId=function(e){++this._nextPickColor[0];let t=this._nextPickColor[0];if(t===0)throw new ue("Out of unique Pick IDs.");return this._pickObjects[t]=e,new p5(this._pickObjects,t,H.fromRgba(t))};Zl.prototype.isDestroyed=function(){return!1};Zl.prototype.destroy=function(){let e=this.cache;for(let t in e)if(e.hasOwnProperty(t)){let n=e[t];u(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(),le(this)};Zl._deprecationWarning=Qr;var tI=Zl;function uA(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(u(o)!==u(r))throw new de("Both color renderbuffer and texture attachments must be provided.");let s=e.depthStencilRenderbuffer,a=e.depthStencilTexture;if(u(s)!==u(a))throw new de("Both depth-stencil renderbuffer and texture attachments must be provided.");this._renderFramebuffer=new Hs({context:t,colorRenderbuffers:o,depthStencilRenderbuffer:s,destroyAttachments:e.destroyAttachments}),this._colorFramebuffer=new Hs({context:t,colorTextures:r,depthStencilTexture:a,destroyAttachments:e.destroyAttachments})}uA.prototype.getRenderFramebuffer=function(){return this._renderFramebuffer};uA.prototype.getColorFramebuffer=function(){return this._colorFramebuffer};uA.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),u(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)};uA.prototype.isDestroyed=function(){return!1};uA.prototype.destroy=function(){return this._renderFramebuffer.destroy(),this._colorFramebuffer.destroy(),le(this)};var nI=uA;var dl={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===dl.RGBA4||e===dl.RGBA8||e===dl.RGBA16F||e===dl.RGBA32F||e===dl.RGB5_A1||e===dl.RGB565||e===dl.DEPTH_COMPONENT16||e===dl.STENCIL_INDEX8||e===dl.DEPTH_STENCIL||e===dl.DEPTH24_STENCIL8},getColorFormat:function(e){return e===ee.FLOAT?dl.RGBA32F:e===ee.HALF_FLOAT_OES?dl.RGBA16F:dl.RGBA8}},Ac=Object.freeze(dl);function iI(e){e=y(e,y.EMPTY_OBJECT);let n=e.context._gl,i=Ut.maximumRenderbufferSize,o=y(e.format,Ac.RGBA4),r=u(e.width)?e.width:n.drawingBufferWidth,s=u(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(iI.prototype,{format:{get:function(){return this._format}},width:{get:function(){return this._width}},height:{get:function(){return this._height}}});iI.prototype._getRenderbuffer=function(){return this._renderbuffer};iI.prototype.isDestroyed=function(){return!1};iI.prototype.destroy=function(){return this._gl.deleteRenderbuffer(this._renderbuffer),le(this)};var $l=iI;function ss(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(ss.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}}});ss.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=u(i)&&this._pixelDatatype!==i||u(o)&&this._pixelFormat!==o,c=n===1?u(this._framebuffer):u(this._multisampleFramebuffer);return this._attachmentsDirty||r||s||a||!c||this._color&&!u(this._colorTextures[0])};ss.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,Ye.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 It({context:e,width:t,height:n,pixelFormat:r,pixelDatatype:o,sampler:ln.NEAREST}),this._numSamples>1){let a=Ac.getColorFormat(o);this._colorRenderbuffers[s]=new $l({context:e,width:t,height:n,format:a,numSamples:this._numSamples})}}this._depthStencil&&this._createDepthAttachments&&(this._supportsDepthTexture&&e.depthTexture?(this._depthStencilTexture=new It({context:e,width:t,height:n,pixelFormat:nt.DEPTH_STENCIL,pixelDatatype:Ye.UNSIGNED_INT_24_8,sampler:ln.NEAREST}),this._numSamples>1&&(this._depthStencilRenderbuffer=new $l({context:e,width:t,height:n,format:Ac.DEPTH24_STENCIL8,numSamples:this._numSamples}))):this._depthStencilRenderbuffer=new $l({context:e,width:t,height:n,format:Ac.DEPTH_STENCIL})),this._depth&&this._createDepthAttachments&&(this._supportsDepthTexture&&e.depthTexture?this._depthTexture=new It({context:e,width:t,height:n,pixelFormat:nt.DEPTH_COMPONENT,pixelDatatype:Ye.UNSIGNED_INT,sampler:ln.NEAREST}):this._depthRenderbuffer=new $l({context:e,width:t,height:n,format:Ac.DEPTH_COMPONENT16})),this._numSamples>1?this._multisampleFramebuffer=new nI({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 Hs({context:e,colorTextures:this._colorTextures,depthTexture:this._depthTexture,depthRenderbuffer:this._depthRenderbuffer,depthStencilTexture:this._depthStencilTexture,depthStencilRenderbuffer:this._depthStencilRenderbuffer,destroyAttachments:!1})}};ss.prototype.getColorTexture=function(e){return e=y(e,0),this._colorTextures[e]};ss.prototype.setColorTexture=function(e,t){t=y(t,0),this._attachmentsDirty=e!==this._colorTextures[t],this._colorTextures[t]=e};ss.prototype.getColorRenderbuffer=function(e){return e=y(e,0),this._colorRenderbuffers[e]};ss.prototype.setColorRenderbuffer=function(e,t){t=y(t,0),this._attachmentsDirty=e!==this._colorRenderbuffers[t],this._colorRenderbuffers[t]=e};ss.prototype.getDepthRenderbuffer=function(){return this._depthRenderbuffer};ss.prototype.setDepthRenderbuffer=function(e){this._attachmentsDirty=e!==this._depthRenderbuffer,this._depthRenderbuffer=e};ss.prototype.getDepthTexture=function(){return this._depthTexture};ss.prototype.setDepthTexture=function(e){this._attachmentsDirty=e!==this._depthTexture,this._depthTexture=e};ss.prototype.getDepthStencilRenderbuffer=function(){return this._depthStencilRenderbuffer};ss.prototype.setDepthStencilRenderbuffer=function(e){this._attachmentsDirty=e!==this._depthStencilRenderbuffer,this._depthStencilRenderbuffer=e};ss.prototype.getDepthStencilTexture=function(){return this._depthStencilTexture};ss.prototype.setDepthStencilTexture=function(e){this._attachmentsDirty=e!==this._depthStencilTexture,this._depthStencilTexture=e};ss.prototype.prepareTextures=function(e,t){this._numSamples>1&&this._multisampleFramebuffer.blitFramebuffers(e,t)};ss.prototype.clear=function(e,t,n){let i=t.framebuffer;t.framebuffer=this.framebuffer,t.execute(e,n),t.framebuffer=i};ss.prototype.destroyFramebuffer=function(){this._framebuffer=this._framebuffer&&this._framebuffer.destroy(),this._multisampleFramebuffer=this._multisampleFramebuffer&&this._multisampleFramebuffer.destroy()};ss.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&&u(n)&&!n.isDestroyed()&&(this._colorTextures[e].destroy(),this._colorTextures[e]=void 0),u(n)&&n.isDestroyed()&&(this._colorTextures[e]=void 0);let i=this._colorRenderbuffers[e];this._createColorAttachments&&u(i)&&!i.isDestroyed()&&(this._colorRenderbuffers[e].destroy(),this._colorRenderbuffers[e]=void 0),u(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()),u(this._depthStencilTexture)&&this._depthStencilTexture.isDestroyed()&&(this._depthStencilTexture=void 0),u(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()),u(this._depthTexture)&&this._depthTexture.isDestroyed()&&(this._depthTexture=void 0),u(this._depthRenderbuffer)&&this._depthRenderbuffer.isDestroyed()&&(this._depthRenderbuffer=void 0)),this.destroyFramebuffer()};var ui=ss;var F0={VERTEX:0,FRAGMENT:1,BOTH:2};F0.includesVertexShader=function(e){return e===F0.VERTEX||e===F0.BOTH};F0.includesFragmentShader=function(e){return e===F0.FRAGMENT||e===F0.BOTH};var Ce=Object.freeze(F0);function _5(e){this.name=e,this.fields=[]}_5.prototype.addField=function(e,t){let n=` ${e} ${t};`;this.fields.push(n)};_5.prototype.generateGlslLines=function(){let e=this.fields;return e.length===0&&(e=[" float _empty;"]),[].concat(`struct ${this.name}`,"{",e,"};")};var oI=_5;function g5(e){this.signature=e,this.body=[]}g5.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}`)};g5.prototype.generateGlslLines=function(){return[].concat(this.signature,"{",this.body,"}")};var rI=g5;function Cc(){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(Cc.prototype,{attributeLocations:{get:function(){return this._attributeLocations}}});Cc.prototype.addDefine=function(e,t,n){n=y(n,Ce.BOTH);let i=e;u(t)&&(i+=` ${t.toString()}`),Ce.includesVertexShader(n)&&this._vertexShaderParts.defineLines.push(i),Ce.includesFragmentShader(n)&&this._fragmentShaderParts.defineLines.push(i)};Cc.prototype.addStruct=function(e,t,n){this._structs[e]=new oI(t),Ce.includesVertexShader(n)&&this._vertexShaderParts.structIds.push(e),Ce.includesFragmentShader(n)&&this._fragmentShaderParts.structIds.push(e)};Cc.prototype.addStructField=function(e,t,n){this._structs[e].addField(t,n)};Cc.prototype.addFunction=function(e,t,n){this._functions[e]=new rI(t),Ce.includesVertexShader(n)&&this._vertexShaderParts.functionIds.push(e),Ce.includesFragmentShader(n)&&this._fragmentShaderParts.functionIds.push(e)};Cc.prototype.addFunctionLines=function(e,t){this._functions[e].addLines(t)};Cc.prototype.addUniform=function(e,t,n){n=y(n,Ce.BOTH);let i=`uniform ${e} ${t};`;Ce.includesVertexShader(n)&&this._vertexShaderParts.uniformLines.push(i),Ce.includesFragmentShader(n)&&this._fragmentShaderParts.uniformLines.push(i)};Cc.prototype.setPositionAttribute=function(e,t){return this._positionAttributeLine=`in ${e} ${t};`,this._attributeLocations[t]=0,0};Cc.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+=jwe(e),i};Cc.prototype.addVarying=function(e,t){let n=`${e} ${t};`;this._vertexShaderParts.varyingLines.push(`out ${n}`),this._fragmentShaderParts.varyingLines.push(`in ${n}`)};Cc.prototype.addVertexLines=function(e){let t=this._vertexShaderParts.shaderLines;Array.isArray(e)?t.push.apply(t,e):t.push(e)};Cc.prototype.addFragmentLines=function(e){let t=this._fragmentShaderParts.shaderLines;Array.isArray(e)?t.push.apply(t,e):t.push(e)};Cc.prototype.buildShaderProgram=function(e){let t=u(this._positionAttributeLine)?[this._positionAttributeLine]:[],n=Wwe(this),i=qwe(this),o=t.concat(this._attributeLines,this._vertexShaderParts.uniformLines,this._vertexShaderParts.varyingLines,n.vertexLines,i.vertexLines,this._vertexShaderParts.shaderLines).join(`
  3371. `),r=new Ue({defines:this._vertexShaderParts.defineLines,sources:[o]}),s=this._fragmentShaderParts.uniformLines.concat(this._fragmentShaderParts.varyingLines,n.fragmentLines,i.fragmentLines,this._fragmentShaderParts.shaderLines).join(`
  3372. `),a=new Ue({defines:this._fragmentShaderParts.defineLines,sources:[s]});return Yt.fromCache({context:e,vertexShaderSource:r,fragmentShaderSource:a,attributeLocations:this._attributeLocations})};Cc.prototype.clone=function(){return He(this,!0)};function Wwe(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 jwe(e){switch(e){case"mat2":return 2;case"mat3":return 3;case"mat4":return 4;default:return 1}}function qwe(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 B0=Cc;function Ss(e,t,n,i){let o=Ss._verifyAttributes(t);n=y(n,0);let r=[],s={},a,c,l=o.length;for(let d=0;d<l;++d){let p=o[d];if(p.vertexBuffer){r.push(p);continue}c=p.usage,a=s[c],u(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=Ss._vertexSizeInBytes(a),p=a[0].usage,g={vertexSizeInBytes:d,vertexBuffer:void 0,usage:p,needsCommit:!1,arrayBuffer:void 0,arrayViews:Ss._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)}Ss._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,Ne.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};Ss._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};Ss._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};Ss.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];Ss._resize(o,this._size),Ss._appendWriters(this.writers,o)}y5(this)};Ss._resize=function(e,t){if(e.vertexSizeInBytes>0){let n=new ArrayBuffer(t*e.vertexSizeInBytes);if(u(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 Ywe=[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}}];Ss._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]=Ywe[r.componentsPerAttribute-1](t,r.view,r.vertexSizeInComponentType)}};Ss.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=Xwe(this,i)||t;if(t||!u(this.va)){y5(this);let s=this.va=[],a=P.SIXTY_FOUR_KILOBYTES-4,c=u(e)&&!this._instanced?Math.ceil(this._size/a):1;for(let l=0;l<c;++l){let f=[];for(o=0,r=n.length;o<r;++o){i=n[o];let d=l*(i.vertexSizeInBytes*a);Ss._appendAttributes(f,i,d,this._instanced)}f=f.concat(this._precreated),s.push({va:new ni({context:this._context,attributes:f,indexBuffer:e}),indicesCount:1.5*(l!==c-1?a:this._size%a)})}}};function Xwe(e,t){if(t.needsCommit&&t.vertexSizeInBytes>0){t.needsCommit=!1;let n=t.vertexBuffer,i=e._size*t.vertexSizeInBytes,o=u(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}Ss._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})}};Ss.prototype.subCommit=function(e,t){let n=this._allBuffers;for(let i=0,o=n.length;i<o;++i)Kwe(n[i],e,t)};function Kwe(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)}}Ss.prototype.endSubCommits=function(){let e=this._allBuffers;for(let t=0,n=e.length;t<n;++t)e[t].needsCommit=!1};function y5(e){let t=e.va;if(!u(t))return;let n=t.length;for(let i=0;i<n;++i)t[i].va.destroy();e.va=void 0}Ss.prototype.isDestroyed=function(){return!1};Ss.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 y5(this),le(this)};var sp=Ss;function Zwe(e,t,n){let i={flipY:!0,skipColorSpaceConversion:n,preferImageBitmap:!0},o=[ve.createIfNeeded(t.positiveX).fetchImage(i),ve.createIfNeeded(t.negativeX).fetchImage(i),ve.createIfNeeded(t.positiveY).fetchImage(i),ve.createIfNeeded(t.negativeY).fetchImage(i),ve.createIfNeeded(t.positiveZ).fetchImage(i),ve.createIfNeeded(t.negativeZ).fetchImage(i)];return Promise.all(o).then(function(r){return new Ha({context:e,source:{positiveX:r[0],negativeX:r[1],positiveY:r[2],negativeY:r[3],positiveZ:r[4],negativeZ:r[5]}})})}var sI=Zwe;function ug(e){this._value=void 0,this._hasClone=!1,this._hasEquals=!1,this._definitionChanged=new pe,this.setValue(e)}Object.defineProperties(ug.prototype,{isConstant:{value:!0},definitionChanged:{get:function(){return this._definitionChanged}}});ug.prototype.getValue=function(e,t){return this._hasClone?this._value.clone(t):this._value};ug.prototype.setValue=function(e){let t=this._value;if(t!==e){let n=u(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))}};ug.prototype.equals=function(e){return this===e||e instanceof ug&&(!this._hasEquals&&this._value===e._value||this._hasEquals&&this._value.equals(e._value))};ug.prototype.valueOf=function(){return this._value};ug.prototype.toString=function(){return String(this._value)};var Qn=ug;function $we(e,t,n,i,o){return{configurable:i,get:function(){return this[t]},set:function(r){let s=this[t],a=this[n];u(a)&&(a(),this[n]=void 0),r!==void 0&&(!u(r)||!u(r.getValue))&&u(o)&&(r=o(r)),s!==r&&(this[t]=r,this._definitionChanged.raiseEvent(this,e,r,s)),u(r)&&u(r.definitionChanged)&&(this[n]=r.definitionChanged.addEventListener(function(){this._definitionChanged.raiseEvent(this,e,r,r)},this))}}}function Qwe(e){return new Qn(e)}function Jwe(e,t,n){return $we(e,`_${e.toString()}`,`_${e.toString()}Subscription`,y(t,!1),y(n,Qwe))}var ae=Jwe;function aI(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(aI.prototype,{definitionChanged:{get:function(){return this._definitionChanged}},show:ae("show"),image:ae("image"),scale:ae("scale"),pixelOffset:ae("pixelOffset"),eyeOffset:ae("eyeOffset"),horizontalOrigin:ae("horizontalOrigin"),verticalOrigin:ae("verticalOrigin"),heightReference:ae("heightReference"),color:ae("color"),rotation:ae("rotation"),alignedAxis:ae("alignedAxis"),sizeInMeters:ae("sizeInMeters"),width:ae("width"),height:ae("height"),scaleByDistance:ae("scaleByDistance"),translucencyByDistance:ae("translucencyByDistance"),pixelOffsetScaleByDistance:ae("pixelOffsetScaleByDistance"),imageSubRegion:ae("imageSubRegion"),distanceDisplayCondition:ae("distanceDisplayCondition"),disableDepthTestDistance:ae("disableDepthTestDistance")});aI.prototype.clone=function(e){return u(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 aI(this)};aI.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 Wa=aI;function k0(){this._array=[],this._hash={}}Object.defineProperties(k0.prototype,{length:{get:function(){return this._array.length}},values:{get:function(){return this._array}}});k0.prototype.contains=function(e){return u(this._hash[e])};k0.prototype.set=function(e,t){let n=this._hash[e];t!==n&&(this.remove(e),this._hash[e]=t,this._array.push(t))};k0.prototype.get=function(e){return this._hash[e]};k0.prototype.remove=function(e){let t=this._hash[e],n=u(t);if(n){let i=this._array;i.splice(i.indexOf(t),1),delete this._hash[e]}return n};k0.prototype.removeAll=function(){let e=this._array;e.length>0&&(this._hash={},e.length=0)};var xt=k0;function Ql(e,t){e=y(e,0),this._near=e,t=y(t,Number.MAX_VALUE),this._far=t}Object.defineProperties(Ql.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}}});Ql.packedLength=2;Ql.pack=function(e,t,n){return n=y(n,0),t[n++]=e.near,t[n]=e.far,t};Ql.unpack=function(e,t,n){return t=y(t,0),u(n)||(n=new Ql),n.near=e[t++],n.far=e[t],n};Ql.equals=function(e,t){return e===t||u(e)&&u(t)&&e.near===t.near&&e.far===t.far};Ql.clone=function(e,t){if(u(e))return u(t)||(t=new Ql),t.near=e.near,t.far=e.far,t};Ql.prototype.clone=function(e){return Ql.clone(this,e)};Ql.prototype.equals=function(e){return Ql.equals(this,e)};var St=Ql;function Qu(e,t,n,i){this.near=y(e,0),this.nearValue=y(t,0),this.far=y(n,1),this.farValue=y(i,0)}Qu.clone=function(e,t){if(u(e))return u(t)?(t.near=e.near,t.nearValue=e.nearValue,t.far=e.far,t.farValue=e.farValue,t):new Qu(e.near,e.nearValue,e.far,e.farValue)};Qu.packedLength=4;Qu.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};Qu.unpack=function(e,t,n){return t=y(t,0),u(n)||(n=new Qu),n.near=e[t++],n.nearValue=e[t++],n.far=e[t++],n.farValue=e[t],n};Qu.equals=function(e,t){return e===t||u(e)&&u(t)&&e.near===t.near&&e.nearValue===t.nearValue&&e.far===t.far&&e.farValue===t.farValue};Qu.prototype.clone=function(e){return Qu.clone(this,e)};Qu.prototype.equals=function(e){return Qu.equals(this,e)};var Pt=Qu;var eve={NONE:0,CLAMP_TO_GROUND:1,RELATIVE_TO_GROUND:2},Ge=Object.freeze(eve);var tve={CENTER:0,LEFT:1,RIGHT:-1},mi=Object.freeze(tve);var nve={CENTER:0,BOTTOM:1,BASELINE:2,TOP:-1},Dn=Object.freeze(nve);var ive={DONE:0,PENDING:1,FAILED:2},ot=Object.freeze(ive);function ud(){de.throwInstantiationError()}Object.defineProperties(ud.prototype,{isConstant:{get:de.throwInstantiationError},definitionChanged:{get:de.throwInstantiationError}});ud.prototype.getValue=de.throwInstantiationError;ud.prototype.equals=de.throwInstantiationError;ud.equals=function(e,t){return e===t||u(e)&&e.equals(t)};ud.arrayEquals=function(e,t){if(e===t)return!0;if(!u(e)||!u(t)||e.length!==t.length)return!1;let n=e.length;for(let i=0;i<n;i++)if(!ud.equals(e[i],t[i]))return!1;return!0};ud.isConstant=function(e){return!u(e)||e.isConstant};ud.getValueOrUndefined=function(e,t,n){return u(e)?e.getValue(t,n):void 0};ud.getValueOrDefault=function(e,t,n,i){return u(e)?y(e.getValue(t,i),n):n};ud.getValueOrClonedDefault=function(e,t,n,i){let o;return u(e)&&(o=e.getValue(t,i)),u(o)||(o=n.clone(o)),o};var q=ud;var ove=H.WHITE,rve=h.ZERO,sve=Ge.NONE,ave=z.ZERO,cve=1,lve=0,uve=h.ZERO,fve=mi.CENTER,dve=Dn.CENTER,hve=!1,mve=new h,pve=new H,_ve=new h,gve=new z,yve=new Pt,xve=new Pt,bve=new Pt,Tve=new We,Ave=new St;function YQ(e){this.entity=e,this.billboard=void 0,this.textureValue=void 0}function fg(e,t){t.collectionChanged.addEventListener(fg.prototype._onCollectionChanged,this),this._cluster=e,this._entityCollection=t,this._items=new xt,this._onCollectionChanged(t,t.values,[],[])}fg.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,l=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=u(d)&&u(c)),!f){x5(r,s,n);continue}q.isConstant(s._position)||(n._clusterDirty=!0),u(l)||(l=n.getBillboard(s),l.id=s,l.image=void 0,r.billboard=l),l.show=f,(!u(l.image)||r.textureValue!==c)&&(l.image=c,r.textureValue=c),l.position=d,l.color=q.getValueOrDefault(a._color,e,ove,pve),l.eyeOffset=q.getValueOrDefault(a._eyeOffset,e,rve,_ve),l.heightReference=q.getValueOrDefault(a._heightReference,e,sve),l.pixelOffset=q.getValueOrDefault(a._pixelOffset,e,ave,gve),l.scale=q.getValueOrDefault(a._scale,e,cve),l.rotation=q.getValueOrDefault(a._rotation,e,lve),l.alignedAxis=q.getValueOrDefault(a._alignedAxis,e,uve),l.horizontalOrigin=q.getValueOrDefault(a._horizontalOrigin,e,fve),l.verticalOrigin=q.getValueOrDefault(a._verticalOrigin,e,dve),l.width=q.getValueOrUndefined(a._width,e),l.height=q.getValueOrUndefined(a._height,e),l.scaleByDistance=q.getValueOrUndefined(a._scaleByDistance,e,yve),l.translucencyByDistance=q.getValueOrUndefined(a._translucencyByDistance,e,xve),l.pixelOffsetScaleByDistance=q.getValueOrUndefined(a._pixelOffsetScaleByDistance,e,bve),l.sizeInMeters=q.getValueOrDefault(a._sizeInMeters,e,hve),l.distanceDisplayCondition=q.getValueOrUndefined(a._distanceDisplayCondition,e,Ave),l.disableDepthTestDistance=q.getValueOrUndefined(a._disableDepthTestDistance,e);let p=q.getValueOrUndefined(a._imageSubRegion,e,Tve);u(p)&&l.setImageSubRegion(l._imageId,p)}return!0};fg.prototype.getBoundingSphere=function(e,t){let n=this._items.get(e.id);if(!u(n)||!u(n.billboard))return ot.FAILED;let i=n.billboard;if(i.heightReference===Ge.NONE)t.center=h.clone(i.position,t.center);else{if(!u(i._clampedPosition))return ot.PENDING;t.center=h.clone(i._clampedPosition,t.center)}return t.radius=0,ot.DONE};fg.prototype.isDestroyed=function(){return!1};fg.prototype.destroy=function(){this._entityCollection.collectionChanged.removeEventListener(fg.prototype._onCollectionChanged,this);let e=this._entityCollection.values;for(let t=0;t<e.length;t++)this._cluster.removeBillboard(e[t]);return le(this)};fg.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],u(r._billboard)&&u(r._position)&&s.set(r.id,new YQ(r));for(o=i.length-1;o>-1;o--)r=i[o],u(r._billboard)&&u(r._position)?s.contains(r.id)||s.set(r.id,new YQ(r)):(x5(s.get(r.id),r,a),s.remove(r.id));for(o=n.length-1;o>-1;o--)r=n[o],x5(s.get(r.id),r,a),s.remove(r.id)};function x5(e,t,n){u(e)&&(e.billboard=void 0,n.removeBillboard(t))}var cI=fg;function Cve(e,t){this.start=y(e,0),this.stop=y(t,0)}var Ec=Cve;function mn(e,t){this.center=h.clone(y(e,h.ZERO)),this.radius=y(t,0)}var A5=new h,C5=new h,E5=new h,S5=new h,w5=new h,v5=new h,D5=new h,Gs=new h,I5=new h,P5=new h,O5=new h,R5=new h,Eve=4/3*P.PI;mn.fromPoints=function(e,t){if(u(t)||(t=new mn),!u(e)||e.length===0)return t.center=h.clone(h.ZERO,t.center),t.radius=0,t;let n=h.clone(e[0],D5),i=h.clone(n,A5),o=h.clone(n,C5),r=h.clone(n,E5),s=h.clone(n,S5),a=h.clone(n,w5),c=h.clone(n,v5),l=e.length,f;for(f=1;f<l;f++){h.clone(e[f],n);let R=n.x,L=n.y,N=n.z;R<i.x&&h.clone(n,i),R>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,Gs)),p=h.magnitudeSquared(h.subtract(a,o,Gs)),g=h.magnitudeSquared(h.subtract(c,r,Gs)),m=i,x=s,b=d;p>b&&(b=p,m=o,x=a),g>b&&(b=g,m=r,x=c);let T=I5;T.x=(m.x+x.x)*.5,T.y=(m.y+x.y)*.5,T.z=(m.z+x.z)*.5;let A=h.magnitudeSquared(h.subtract(x,T,Gs)),C=Math.sqrt(A),S=P5;S.x=i.x,S.y=o.y,S.z=r.z;let w=O5;w.x=s.x,w.y=a.y,w.z=c.z;let D=h.midpoint(S,w,R5),O=0;for(f=0;f<l;f++){h.clone(e[f],n);let R=h.magnitude(h.subtract(n,D,Gs));R>O&&(O=R);let L=h.magnitudeSquared(h.subtract(n,T,Gs));if(L>A){let N=Math.sqrt(L);C=(C+N)*.5,A=C*C;let _=N-C;T.x=(C*T.x+_*n.x)/N,T.y=(C*T.y+_*n.y)/N,T.z=(C*T.z+_*n.z)/N}}return C<O?(h.clone(T,t.center),t.radius=C):(h.clone(D,t.center),t.radius=O),t};var Sve=new wi,wve=new h,vve=new h,b5=new fe,T5=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(u(o)||(o=new mn),!u(e))return o.center=h.clone(h.ZERO,o.center),o.radius=0,o;t=y(t,Sve),ce.southwest(e,b5),b5.height=n,ce.northeast(e,T5),T5.height=i;let r=t.project(b5,wve),s=t.project(T5,vve),a=s.x-r.x,c=s.y-r.y,l=s.z-r.z;o.radius=Math.sqrt(a*a+c*c+l*l)*.5;let f=o.center;return f.x=r.x+a*.5,f.y=r.y+c*.5,f.z=r.z+l*.5,o};var Dve=[];mn.fromRectangle3D=function(e,t,n,i){if(t=y(t,ie.WGS84),n=y(n,0),u(i)||(i=new mn),!u(e))return i.center=h.clone(h.ZERO,i.center),i.radius=0,i;let o=ce.subsample(e,t,n,Dve);return mn.fromPoints(o,i)};mn.fromVertices=function(e,t,n,i){if(u(i)||(i=new mn),!u(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=D5;o.x=e[0]+t.x,o.y=e[1]+t.y,o.z=e[2]+t.z;let r=h.clone(o,A5),s=h.clone(o,C5),a=h.clone(o,E5),c=h.clone(o,S5),l=h.clone(o,w5),f=h.clone(o,v5),d=e.length,p;for(p=0;p<d;p+=n){let N=e[p]+t.x,_=e[p+1]+t.y,E=e[p+2]+t.z;o.x=N,o.y=_,o.z=E,N<r.x&&h.clone(o,r),N>c.x&&h.clone(o,c),_<s.y&&h.clone(o,s),_>l.y&&h.clone(o,l),E<a.z&&h.clone(o,a),E>f.z&&h.clone(o,f)}let g=h.magnitudeSquared(h.subtract(c,r,Gs)),m=h.magnitudeSquared(h.subtract(l,s,Gs)),x=h.magnitudeSquared(h.subtract(f,a,Gs)),b=r,T=c,A=g;m>A&&(A=m,b=s,T=l),x>A&&(A=x,b=a,T=f);let C=I5;C.x=(b.x+T.x)*.5,C.y=(b.y+T.y)*.5,C.z=(b.z+T.z)*.5;let S=h.magnitudeSquared(h.subtract(T,C,Gs)),w=Math.sqrt(S),D=P5;D.x=r.x,D.y=s.y,D.z=a.z;let O=O5;O.x=c.x,O.y=l.y,O.z=f.z;let R=h.midpoint(D,O,R5),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,R,Gs));N>L&&(L=N);let _=h.magnitudeSquared(h.subtract(o,C,Gs));if(_>S){let E=Math.sqrt(_);w=(w+E)*.5,S=w*w;let v=E-w;C.x=(w*C.x+v*o.x)/E,C.y=(w*C.y+v*o.y)/E,C.z=(w*C.z+v*o.z)/E}}return w<L?(h.clone(C,i.center),i.radius=w):(h.clone(R,i.center),i.radius=L),i};mn.fromEncodedCartesianVertices=function(e,t,n){if(u(n)||(n=new mn),!u(e)||!u(t)||e.length!==t.length||e.length===0)return n.center=h.clone(h.ZERO,n.center),n.radius=0,n;let i=D5;i.x=e[0]+t[0],i.y=e[1]+t[1],i.z=e[2]+t[2];let o=h.clone(i,A5),r=h.clone(i,C5),s=h.clone(i,E5),a=h.clone(i,S5),c=h.clone(i,w5),l=h.clone(i,v5),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),_>l.z&&h.clone(i,l)}let p=h.magnitudeSquared(h.subtract(a,o,Gs)),g=h.magnitudeSquared(h.subtract(c,r,Gs)),m=h.magnitudeSquared(h.subtract(l,s,Gs)),x=o,b=a,T=p;g>T&&(T=g,x=r,b=c),m>T&&(T=m,x=s,b=l);let A=I5;A.x=(x.x+b.x)*.5,A.y=(x.y+b.y)*.5,A.z=(x.z+b.z)*.5;let C=h.magnitudeSquared(h.subtract(b,A,Gs)),S=Math.sqrt(C),w=P5;w.x=o.x,w.y=r.y,w.z=s.z;let D=O5;D.x=a.x,D.y=c.y,D.z=l.z;let O=h.midpoint(w,D,R5),R=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,Gs));L>R&&(R=L);let N=h.magnitudeSquared(h.subtract(i,A,Gs));if(N>C){let _=Math.sqrt(N);S=(S+_)*.5,C=S*S;let E=_-S;A.x=(S*A.x+E*i.x)/_,A.y=(S*A.y+E*i.y)/_,A.z=(S*A.z+E*i.z)/_}}return S<R?(h.clone(A,n.center),n.radius=S):(h.clone(O,n.center),n.radius=R),n};mn.fromCornerPoints=function(e,t,n){u(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 u(t)||(t=new mn),h.clone(h.ZERO,t.center),t.radius=e.maximumRadius,t};var Ive=new h;mn.fromBoundingSpheres=function(e,t){if(u(t)||(t=new mn),!u(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,Ive)+a.radius)}return t.radius=s,t};var Pve=new h,Ove=new h,Rve=new h;mn.fromOrientedBoundingBox=function(e,t){u(t)||(t=new mn);let n=e.halfAxes,i=Q.getColumn(n,0,Pve),o=Q.getColumn(n,1,Ove),r=Q.getColumn(n,2,Rve);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 Mve=new h,Lve=new h;mn.fromTransformation=function(e,t){u(t)||(t=new mn);let n=F.getTranslation(e,Mve),i=F.getScale(e,Lve),o=.5*h.magnitude(i);return t.center=h.clone(n,t.center),t.radius=o,t};mn.clone=function(e,t){if(u(e))return u(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),u(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 Nve=new h,Fve=new h;mn.union=function(e,t,n){u(n)||(n=new mn);let i=e.center,o=e.radius,r=t.center,s=t.radius,a=h.subtract(r,i,Nve),c=h.magnitude(a);if(o>=c+s)return e.clone(n),n;if(s>=c+o)return t.clone(n),n;let l=(o+c+s)*.5,f=h.multiplyByScalar(a,(-o+l)/c,Fve);return h.add(f,i,f),h.clone(f,n.center),n.radius=l,n};var Bve=new h;mn.expand=function(e,t,n){n=mn.clone(e,n);let i=h.magnitude(h.subtract(t,n.center,Bve));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?Kt.OUTSIDE:r<i?Kt.INTERSECTING:Kt.INSIDE};mn.transform=function(e,t,n){return u(n)||(n=new mn),n.center=F.multiplyByPoint(t,e.center,n.center),n.radius=F.getMaximumScale(t)*e.radius,n};var kve=new h;mn.distanceSquaredTo=function(e,t){let n=h.subtract(e.center,t,kve),i=h.magnitude(n)-e.radius;return i<=0?0:i*i};mn.transformWithoutScale=function(e,t,n){return u(n)||(n=new mn),n.center=F.multiplyByPoint(t,e.center,n.center),n.radius=e.radius,n};var Uve=new h;mn.computePlaneDistances=function(e,t,n,i){u(i)||(i=new Ec);let o=h.subtract(e.center,t,Uve),r=h.dot(n,o);return i.start=r-e.radius,i.stop=r+e.radius,i};var XQ=new h,Vve=new h,zve=new h,Hve=new h,Gve=new h,Wve=new fe,KQ=new Array(8);for(let e=0;e<8;++e)KQ[e]=new h;var jve=new wi;mn.projectTo2D=function(e,t,n){t=y(t,jve);let i=t.ellipsoid,o=e.center,r=e.radius,s;h.equals(o,h.ZERO)?s=h.clone(h.UNIT_X,XQ):s=i.geodeticSurfaceNormal(o,XQ);let a=h.cross(h.UNIT_Z,s,Vve);h.normalize(a,a);let c=h.cross(s,a,zve);h.normalize(c,c),h.multiplyByScalar(s,r,s),h.multiplyByScalar(c,r,c),h.multiplyByScalar(a,r,a);let l=h.negate(c,Gve),f=h.negate(a,Hve),d=KQ,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,l,p),h.add(p,f,p),p=d[3],h.add(s,l,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,l,p),h.add(p,f,p),p=d[7],h.add(s,l,p),h.add(p,a,p);let g=d.length;for(let T=0;T<g;++T){let A=d[T];h.add(o,A,A);let C=i.cartesianToCartographic(A,Wve);t.project(C,A)}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||u(e)&&u(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 Eve*e*e*e};var se=mn;function qve(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=qve;var Yve={NONE:0,TOP:1,ALL:2},tn=Object.freeze(Yve);function ts(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)}ts.POSITION_ONLY=Object.freeze(new ts({position:!0}));ts.POSITION_AND_NORMAL=Object.freeze(new ts({position:!0,normal:!0}));ts.POSITION_NORMAL_AND_ST=Object.freeze(new ts({position:!0,normal:!0,st:!0}));ts.POSITION_AND_ST=Object.freeze(new ts({position:!0,st:!0}));ts.POSITION_AND_COLOR=Object.freeze(new ts({position:!0,color:!0}));ts.ALL=Object.freeze(new ts({position:!0,normal:!0,st:!0,tangent:!0,bitangent:!0}));ts.DEFAULT=ts.POSITION_NORMAL_AND_ST;ts.packedLength=6;ts.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};ts.unpack=function(e,t,n){return t=y(t,0),u(n)||(n=new ts),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};ts.clone=function(e,t){if(u(e))return u(t)||(t=new ts),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 Pe=ts;var Xve=new h;function Jl(e){e=y(e,y.EMPTY_OBJECT);let t=e.minimum,n=e.maximum,i=y(e.vertexFormat,Pe.DEFAULT);this._minimum=h.clone(t),this._maximum=h.clone(n),this._vertexFormat=i,this._offsetAttribute=e.offsetAttribute,this._workerName="createBoxGeometry"}Jl.fromDimensions=function(e){e=y(e,y.EMPTY_OBJECT);let t=e.dimensions,n=h.multiplyByScalar(t,.5,new h);return new Jl({minimum:h.negate(n,new h),maximum:n,vertexFormat:e.vertexFormat,offsetAttribute:e.offsetAttribute})};Jl.fromAxisAlignedBoundingBox=function(e){return new Jl({minimum:e.minimum,maximum:e.maximum})};Jl.packedLength=2*h.packedLength+Pe.packedLength+1;Jl.pack=function(e,t,n){return n=y(n,0),h.pack(e._minimum,t,n),h.pack(e._maximum,t,n+h.packedLength),Pe.pack(e._vertexFormat,t,n+2*h.packedLength),t[n+2*h.packedLength+Pe.packedLength]=y(e._offsetAttribute,-1),t};var $Q=new h,QQ=new h,JQ=new Pe,ZQ={minimum:$Q,maximum:QQ,vertexFormat:JQ,offsetAttribute:void 0};Jl.unpack=function(e,t,n){t=y(t,0);let i=h.unpack(e,t,$Q),o=h.unpack(e,t+h.packedLength,QQ),r=Pe.unpack(e,t+2*h.packedLength,JQ),s=e[t+2*h.packedLength+Pe.packedLength];return u(n)?(n._minimum=h.clone(i,n._minimum),n._maximum=h.clone(o,n._maximum),n._vertexFormat=Pe.clone(r,n._vertexFormat),n._offsetAttribute=s===-1?void 0:s,n):(ZQ.offsetAttribute=s===-1?void 0:s,new Jl(ZQ))};Jl.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 we({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:s})),i.normal){let l=new Float32Array(72);l[0]=0,l[1]=0,l[2]=1,l[3]=0,l[4]=0,l[5]=1,l[6]=0,l[7]=0,l[8]=1,l[9]=0,l[10]=0,l[11]=1,l[12]=0,l[13]=0,l[14]=-1,l[15]=0,l[16]=0,l[17]=-1,l[18]=0,l[19]=0,l[20]=-1,l[21]=0,l[22]=0,l[23]=-1,l[24]=1,l[25]=0,l[26]=0,l[27]=1,l[28]=0,l[29]=0,l[30]=1,l[31]=0,l[32]=0,l[33]=1,l[34]=0,l[35]=0,l[36]=-1,l[37]=0,l[38]=0,l[39]=-1,l[40]=0,l[41]=0,l[42]=-1,l[43]=0,l[44]=0,l[45]=-1,l[46]=0,l[47]=0,l[48]=0,l[49]=1,l[50]=0,l[51]=0,l[52]=1,l[53]=0,l[54]=0,l[55]=1,l[56]=0,l[57]=0,l[58]=1,l[59]=0,l[60]=0,l[61]=-1,l[62]=0,l[63]=0,l[64]=-1,l[65]=0,l[66]=0,l[67]=-1,l[68]=0,l[69]=0,l[70]=-1,l[71]=0,o.normal=new we({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:l})}if(i.st){let l=new Float32Array(48);l[0]=0,l[1]=0,l[2]=1,l[3]=0,l[4]=1,l[5]=1,l[6]=0,l[7]=1,l[8]=1,l[9]=0,l[10]=0,l[11]=0,l[12]=0,l[13]=1,l[14]=1,l[15]=1,l[16]=0,l[17]=0,l[18]=1,l[19]=0,l[20]=1,l[21]=1,l[22]=0,l[23]=1,l[24]=1,l[25]=0,l[26]=0,l[27]=0,l[28]=0,l[29]=1,l[30]=1,l[31]=1,l[32]=1,l[33]=0,l[34]=0,l[35]=0,l[36]=0,l[37]=1,l[38]=1,l[39]=1,l[40]=0,l[41]=0,l[42]=1,l[43]=0,l[44]=1,l[45]=1,l[46]=0,l[47]=1,o.st=new we({componentDatatype:X.FLOAT,componentsPerAttribute:2,values:l})}if(i.tangent){let l=new Float32Array(72);l[0]=1,l[1]=0,l[2]=0,l[3]=1,l[4]=0,l[5]=0,l[6]=1,l[7]=0,l[8]=0,l[9]=1,l[10]=0,l[11]=0,l[12]=-1,l[13]=0,l[14]=0,l[15]=-1,l[16]=0,l[17]=0,l[18]=-1,l[19]=0,l[20]=0,l[21]=-1,l[22]=0,l[23]=0,l[24]=0,l[25]=1,l[26]=0,l[27]=0,l[28]=1,l[29]=0,l[30]=0,l[31]=1,l[32]=0,l[33]=0,l[34]=1,l[35]=0,l[36]=0,l[37]=-1,l[38]=0,l[39]=0,l[40]=-1,l[41]=0,l[42]=0,l[43]=-1,l[44]=0,l[45]=0,l[46]=-1,l[47]=0,l[48]=-1,l[49]=0,l[50]=0,l[51]=-1,l[52]=0,l[53]=0,l[54]=-1,l[55]=0,l[56]=0,l[57]=-1,l[58]=0,l[59]=0,l[60]=1,l[61]=0,l[62]=0,l[63]=1,l[64]=0,l[65]=0,l[66]=1,l[67]=0,l[68]=0,l[69]=1,l[70]=0,l[71]=0,o.tangent=new we({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:l})}if(i.bitangent){let l=new Float32Array(72);l[0]=0,l[1]=1,l[2]=0,l[3]=0,l[4]=1,l[5]=0,l[6]=0,l[7]=1,l[8]=0,l[9]=0,l[10]=1,l[11]=0,l[12]=0,l[13]=1,l[14]=0,l[15]=0,l[16]=1,l[17]=0,l[18]=0,l[19]=1,l[20]=0,l[21]=0,l[22]=1,l[23]=0,l[24]=0,l[25]=0,l[26]=1,l[27]=0,l[28]=0,l[29]=1,l[30]=0,l[31]=0,l[32]=1,l[33]=0,l[34]=0,l[35]=1,l[36]=0,l[37]=0,l[38]=1,l[39]=0,l[40]=0,l[41]=1,l[42]=0,l[43]=0,l[44]=1,l[45]=0,l[46]=0,l[47]=1,l[48]=0,l[49]=0,l[50]=1,l[51]=0,l[52]=0,l[53]=1,l[54]=0,l[55]=0,l[56]=1,l[57]=0,l[58]=0,l[59]=1,l[60]=0,l[61]=0,l[62]=1,l[63]=0,l[64]=0,l[65]=1,l[66]=0,l[67]=0,l[68]=1,l[69]=0,l[70]=0,l[71]=1,o.bitangent=new we({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:l})}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]=4+2,r[7]=4+1,r[8]=4+0,r[9]=4+3,r[10]=4+2,r[11]=4+0,r[12]=8+0,r[13]=8+1,r[14]=8+2,r[15]=8+0,r[16]=8+2,r[17]=8+3,r[18]=12+2,r[19]=12+1,r[20]=12+0,r[21]=12+3,r[22]=12+2,r[23]=12+0,r[24]=16+2,r[25]=16+1,r[26]=16+0,r[27]=16+3,r[28]=16+2,r[29]=16+0,r[30]=20+0,r[31]=20+1,r[32]=20+2,r[33]=20+0,r[34]=20+2,r[35]=20+3}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 we({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,Xve),c=h.magnitude(a)*.5;if(u(e._offsetAttribute)){let l=s.length,f=e._offsetAttribute===tn.NONE?0:1,d=new Uint8Array(l/3).fill(f);o.applyOffset=new we({componentDatatype:X.UNSIGNED_BYTE,componentsPerAttribute:1,values:d})}return new st({attributes:o,indices:r,primitiveType:Me.TRIANGLES,boundingSphere:new se(h.ZERO,c),offsetAttribute:e._offsetAttribute})};var M5;Jl.getUnitBox=function(){return u(M5)||(M5=Jl.createGeometry(Jl.fromDimensions({dimensions:new h(1,1,1),vertexFormat:Pe.POSITION_ONLY}))),M5};var hl=Jl;var Kve=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 tJ=new h,nJ=new h,eJ={minimum:tJ,maximum:nJ,offsetAttribute:void 0};zh.unpack=function(e,t,n){t=y(t,0);let i=h.unpack(e,t,tJ),o=h.unpack(e,t+h.packedLength,nJ),r=e[t+h.packedLength*2];return u(n)?(n._min=h.clone(i,n._min),n._max=h.clone(o,n._max),n._offsetAttribute=r===-1?void 0:r,n):(eJ.offsetAttribute=r===-1?void 0:r,new zh(eJ))};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 we({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,Kve),a=h.magnitude(s)*.5;if(u(e._offsetAttribute)){let c=r.length,l=e._offsetAttribute===tn.NONE?0:1,f=new Uint8Array(c/3).fill(l);i.applyOffset=new we({componentDatatype:X.UNSIGNED_BYTE,componentsPerAttribute:1,values:f})}return new st({attributes:i,indices:o,primitiveType:Me.LINES,boundingSphere:new se(h.ZERO,a),offsetAttribute:e._offsetAttribute})};var fd=zh;function fA(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(fA.prototype,{componentDatatype:{get:function(){return X.UNSIGNED_BYTE}},componentsPerAttribute:{get:function(){return 4}},normalize:{get:function(){return!0}}});fA.fromColor=function(e){return new fA(e.red,e.green,e.blue,e.alpha)};fA.toValue=function(e,t){return u(t)?e.toBytes(t):new Uint8Array(e.toBytes())};fA.equals=function(e,t){return e===t||u(e)&&u(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 kt=fA;function lI(e,t){e=y(e,0),t=y(t,Number.MAX_VALUE),this.value=new Float32Array([e,t])}Object.defineProperties(lI.prototype,{componentDatatype:{get:function(){return X.FLOAT}},componentsPerAttribute:{get:function(){return 2}},normalize:{get:function(){return!1}}});lI.fromDistanceDisplayCondition=function(e){return new lI(e.near,e.far)};lI.toValue=function(e,t){return u(t)?(t[0]=e.near,t[1]=e.far,t):new Float32Array([e.near,e.far])};var Un=lI;function Zve(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 yt=Zve;function jo(e){e=y(e,y.EMPTY_OBJECT),this.start=u(e.start)?J.clone(e.start):new J,this.stop=u(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(jo.prototype,{isEmpty:{get:function(){let e=J.compare(this.stop,this.start);return e<0||e===0&&(!this.isStartIncluded||!this.isStopIncluded)}}});var dA={start:void 0,stop:void 0,isStartIncluded:void 0,isStopIncluded:void 0,data:void 0};jo.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 u(t)?(t.start=i,t.stop=o,t.isStartIncluded=r,t.isStopIncluded=s,t.data=a,t):(dA.start=i,dA.stop=o,dA.isStartIncluded=r,dA.isStopIncluded=s,dA.data=a,new jo(dA))};jo.toIso8601=function(e,t){return`${J.toIso8601(e.start,t)}/${J.toIso8601(e.stop,t)}`};jo.clone=function(e,t){if(u(e))return u(t)?(t.start=e.start,t.stop=e.stop,t.isStartIncluded=e.isStartIncluded,t.isStopIncluded=e.isStopIncluded,t.data=e.data,t):new jo(e)};jo.equals=function(e,t,n){return e===t||u(e)&&u(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||u(n)&&n(e.data,t.data)))};jo.equalsEpsilon=function(e,t,n,i){return n=y(n,0),e===t||u(e)&&u(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||u(i)&&i(e.data,t.data)))};jo.intersect=function(e,t,n,i){if(!u(t))return jo.clone(jo.EMPTY,n);let o=e.start,r=e.stop,s=t.start,a=t.stop,c=J.greaterThanOrEquals(s,o)&&J.greaterThanOrEquals(r,s),l=!c&&J.lessThanOrEquals(s,o)&&J.lessThanOrEquals(o,a);if(!c&&!l)return jo.clone(jo.EMPTY,n);let f=e.isStartIncluded,d=e.isStopIncluded,p=t.isStartIncluded,g=t.isStopIncluded,m=J.lessThan(r,a);return u(n)||(n=new jo),n.start=c?s:o,n.isStartIncluded=f&&p||!J.equals(s,o)&&(c&&p||l&&f),n.stop=m?r:a,n.isStopIncluded=m?d:d&&g||!J.equals(a,r)&&g,n.data=u(i)?i(e.data,t.data):e.data,n};jo.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};jo.prototype.clone=function(e){return jo.clone(this,e)};jo.prototype.equals=function(e,t){return jo.equals(this,e,t)};jo.prototype.equalsEpsilon=function(e,t,n){return jo.equalsEpsilon(this,e,t,n)};jo.prototype.toString=function(){return jo.toIso8601(this)};jo.EMPTY=Object.freeze(new jo({start:new J,stop:new J,isStartIncluded:!1,isStopIncluded:!1}));var bn=jo;var iJ=Object.freeze(J.fromIso8601("0000-01-01T00:00:00Z")),oJ=Object.freeze(J.fromIso8601("9999-12-31T24:00:00Z")),$ve=Object.freeze(new bn({start:iJ,stop:oJ})),Qve={MINIMUM_VALUE:iJ,MAXIMUM_VALUE:oJ,MAXIMUM_INTERVAL:$ve},Ve=Qve;function uI(e,t,n){e=y(e,0),t=y(t,0),n=y(n,0),this.value=new Float32Array([e,t,n])}Object.defineProperties(uI.prototype,{componentDatatype:{get:function(){return X.FLOAT}},componentsPerAttribute:{get:function(){return 3}},normalize:{get:function(){return!1}}});uI.fromCartesian3=function(e){return new uI(e.x,e.y,e.z)};uI.toValue=function(e,t){return u(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=uI;function ok(e){e=y(e,!0),this.value=ok.toValue(e)}Object.defineProperties(ok.prototype,{componentDatatype:{get:function(){return X.UNSIGNED_BYTE}},componentsPerAttribute:{get:function(){return 1}},normalize:{get:function(){return!1}}});ok.toValue=function(e,t){return u(t)?(t[0]=e,t):new Uint8Array([e])};var gn=ok;var fI=`in vec3 v_positionEC;
  3373. in vec3 v_normalEC;
  3374. in vec3 v_tangentEC;
  3375. in vec3 v_bitangentEC;
  3376. in vec2 v_st;
  3377. void main()
  3378. {
  3379. vec3 positionToEyeEC = -v_positionEC;
  3380. mat3 tangentToEyeMatrix = czm_tangentToEyeSpaceMatrix(v_normalEC, v_tangentEC, v_bitangentEC);
  3381. vec3 normalEC = normalize(v_normalEC);
  3382. #ifdef FACE_FORWARD
  3383. normalEC = faceforward(normalEC, vec3(0.0, 0.0, 1.0), -normalEC);
  3384. #endif
  3385. czm_materialInput materialInput;
  3386. materialInput.normalEC = normalEC;
  3387. materialInput.tangentToEyeMatrix = tangentToEyeMatrix;
  3388. materialInput.positionToEyeEC = positionToEyeEC;
  3389. materialInput.st = v_st;
  3390. czm_material material = czm_getMaterial(materialInput);
  3391. #ifdef FLAT
  3392. out_FragColor = vec4(material.diffuse + material.emission, material.alpha);
  3393. #else
  3394. out_FragColor = czm_phong(normalize(positionToEyeEC), material, czm_lightDirectionEC);
  3395. #endif
  3396. }
  3397. `;var dI=`in vec3 position3DHigh;
  3398. in vec3 position3DLow;
  3399. in vec3 normal;
  3400. in vec3 tangent;
  3401. in vec3 bitangent;
  3402. in vec2 st;
  3403. in float batchId;
  3404. out vec3 v_positionEC;
  3405. out vec3 v_normalEC;
  3406. out vec3 v_tangentEC;
  3407. out vec3 v_bitangentEC;
  3408. out vec2 v_st;
  3409. void main()
  3410. {
  3411. vec4 p = czm_computePosition();
  3412. v_positionEC = (czm_modelViewRelativeToEye * p).xyz; // position in eye coordinates
  3413. v_normalEC = czm_normal * normal; // normal in eye coordinates
  3414. v_tangentEC = czm_normal * tangent; // tangent in eye coordinates
  3415. v_bitangentEC = czm_normal * bitangent; // bitangent in eye coordinates
  3416. v_st = st;
  3417. gl_Position = czm_modelViewProjectionRelativeToEye * p;
  3418. }
  3419. `;var hI=`in vec3 v_positionEC;
  3420. in vec3 v_normalEC;
  3421. void main()
  3422. {
  3423. vec3 positionToEyeEC = -v_positionEC;
  3424. vec3 normalEC = normalize(v_normalEC);
  3425. #ifdef FACE_FORWARD
  3426. normalEC = faceforward(normalEC, vec3(0.0, 0.0, 1.0), -normalEC);
  3427. #endif
  3428. czm_materialInput materialInput;
  3429. materialInput.normalEC = normalEC;
  3430. materialInput.positionToEyeEC = positionToEyeEC;
  3431. czm_material material = czm_getMaterial(materialInput);
  3432. #ifdef FLAT
  3433. out_FragColor = vec4(material.diffuse + material.emission, material.alpha);
  3434. #else
  3435. out_FragColor = czm_phong(normalize(positionToEyeEC), material, czm_lightDirectionEC);
  3436. #endif
  3437. }
  3438. `;var mI=`in vec3 position3DHigh;
  3439. in vec3 position3DLow;
  3440. in vec3 normal;
  3441. in float batchId;
  3442. out vec3 v_positionEC;
  3443. out vec3 v_normalEC;
  3444. void main()
  3445. {
  3446. vec4 p = czm_computePosition();
  3447. v_positionEC = (czm_modelViewRelativeToEye * p).xyz; // position in eye coordinates
  3448. v_normalEC = czm_normal * normal; // normal in eye coordinates
  3449. gl_Position = czm_modelViewProjectionRelativeToEye * p;
  3450. }
  3451. `;var pI=`in vec3 v_positionEC;
  3452. in vec3 v_normalEC;
  3453. in vec2 v_st;
  3454. void main()
  3455. {
  3456. vec3 positionToEyeEC = -v_positionEC;
  3457. vec3 normalEC = normalize(v_normalEC);
  3458. #ifdef FACE_FORWARD
  3459. normalEC = faceforward(normalEC, vec3(0.0, 0.0, 1.0), -normalEC);
  3460. #endif
  3461. czm_materialInput materialInput;
  3462. materialInput.normalEC = normalEC;
  3463. materialInput.positionToEyeEC = positionToEyeEC;
  3464. materialInput.st = v_st;
  3465. czm_material material = czm_getMaterial(materialInput);
  3466. #ifdef FLAT
  3467. out_FragColor = vec4(material.diffuse + material.emission, material.alpha);
  3468. #else
  3469. out_FragColor = czm_phong(normalize(positionToEyeEC), material, czm_lightDirectionEC);
  3470. #endif
  3471. }
  3472. `;var _I=`in vec3 position3DHigh;
  3473. in vec3 position3DLow;
  3474. in vec3 normal;
  3475. in vec2 st;
  3476. in float batchId;
  3477. out vec3 v_positionEC;
  3478. out vec3 v_normalEC;
  3479. out vec2 v_st;
  3480. void main()
  3481. {
  3482. vec4 p = czm_computePosition();
  3483. v_positionEC = (czm_modelViewRelativeToEye * p).xyz; // position in eye coordinates
  3484. v_normalEC = czm_normal * normal; // normal in eye coordinates
  3485. v_st = st;
  3486. gl_Position = czm_modelViewProjectionRelativeToEye * p;
  3487. }
  3488. `;var Jve={ADD:ee.FUNC_ADD,SUBTRACT:ee.FUNC_SUBTRACT,REVERSE_SUBTRACT:ee.FUNC_REVERSE_SUBTRACT,MIN:ee.MIN,MAX:ee.MAX},pa=Object.freeze(Jve);var eDe={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(eDe);var tDe={DISABLED:Object.freeze({enabled:!1}),ALPHA_BLEND:Object.freeze({enabled:!0,equationRgb:pa.ADD,equationAlpha:pa.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:pa.ADD,equationAlpha:pa.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:pa.ADD,equationAlpha:pa.ADD,functionSourceRgb:To.SOURCE_ALPHA,functionSourceAlpha:To.ONE,functionDestinationRgb:To.ONE,functionDestinationAlpha:To.ONE})},un=Object.freeze(tDe);var nDe={FRONT:ee.FRONT,BACK:ee.BACK,FRONT_AND_BACK:ee.FRONT_AND_BACK},pi=Object.freeze(nDe);function hA(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(hA.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}}});hA.prototype.getFragmentShaderSource=function(){let e=[];return this.flat&&e.push("#define FLAT"),this.faceForward&&e.push("#define FACE_FORWARD"),u(this.material)&&e.push(this.material.shaderSource),e.push(this.fragmentShaderSource),e.join(`
  3489. `)};hA.prototype.isTranslucent=function(){return u(this.material)&&this.material.isTranslucent()||!u(this.material)&&this.translucent};hA.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};hA.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:pi.BACK}),u(n)&&(i=gt(n,i,!0)),i};var eo=hA;var gI=`uniform sampler2D image;
  3490. czm_material czm_getMaterial(czm_materialInput materialInput)
  3491. {
  3492. czm_material material = czm_getDefaultMaterial(materialInput);
  3493. vec4 rampColor = texture(image, vec2(materialInput.aspect / (2.0 * czm_pi), 0.5));
  3494. rampColor = czm_gammaCorrect(rampColor);
  3495. material.diffuse = rampColor.rgb;
  3496. material.alpha = rampColor.a;
  3497. return material;
  3498. }
  3499. `;var yI=`uniform sampler2D image;
  3500. uniform float strength;
  3501. uniform vec2 repeat;
  3502. czm_material czm_getMaterial(czm_materialInput materialInput)
  3503. {
  3504. czm_material material = czm_getDefaultMaterial(materialInput);
  3505. vec2 st = materialInput.st;
  3506. vec2 centerPixel = fract(repeat * st);
  3507. float centerBump = texture(image, centerPixel).channel;
  3508. float imageWidth = float(imageDimensions.x);
  3509. vec2 rightPixel = fract(repeat * (st + vec2(1.0 / imageWidth, 0.0)));
  3510. float rightBump = texture(image, rightPixel).channel;
  3511. float imageHeight = float(imageDimensions.y);
  3512. vec2 leftPixel = fract(repeat * (st + vec2(0.0, 1.0 / imageHeight)));
  3513. float topBump = texture(image, leftPixel).channel;
  3514. vec3 normalTangentSpace = normalize(vec3(centerBump - rightBump, centerBump - topBump, clamp(1.0 - strength, 0.1, 1.0)));
  3515. vec3 normalEC = materialInput.tangentToEyeMatrix * normalTangentSpace;
  3516. material.normal = normalEC;
  3517. material.diffuse = vec3(0.01);
  3518. return material;
  3519. }
  3520. `;var xI=`uniform vec4 lightColor;
  3521. uniform vec4 darkColor;
  3522. uniform vec2 repeat;
  3523. czm_material czm_getMaterial(czm_materialInput materialInput)
  3524. {
  3525. czm_material material = czm_getDefaultMaterial(materialInput);
  3526. vec2 st = materialInput.st;
  3527. // From Stefan Gustavson's Procedural Textures in GLSL in OpenGL Insights
  3528. float b = mod(floor(repeat.s * st.s) + floor(repeat.t * st.t), 2.0); // 0.0 or 1.0
  3529. // Find the distance from the closest separator (region between two colors)
  3530. float scaledWidth = fract(repeat.s * st.s);
  3531. scaledWidth = abs(scaledWidth - floor(scaledWidth + 0.5));
  3532. float scaledHeight = fract(repeat.t * st.t);
  3533. scaledHeight = abs(scaledHeight - floor(scaledHeight + 0.5));
  3534. float value = min(scaledWidth, scaledHeight);
  3535. vec4 currentColor = mix(lightColor, darkColor, b);
  3536. vec4 color = czm_antialias(lightColor, darkColor, currentColor, value, 0.03);
  3537. color = czm_gammaCorrect(color);
  3538. material.diffuse = color.rgb;
  3539. material.alpha = color.a;
  3540. return material;
  3541. }
  3542. `;var bI=`uniform vec4 lightColor;
  3543. uniform vec4 darkColor;
  3544. uniform vec2 repeat;
  3545. czm_material czm_getMaterial(czm_materialInput materialInput)
  3546. {
  3547. czm_material material = czm_getDefaultMaterial(materialInput);
  3548. // From Stefan Gustavson's Procedural Textures in GLSL in OpenGL Insights
  3549. float b = smoothstep(0.3, 0.32, length(fract(repeat * materialInput.st) - 0.5)); // 0.0 or 1.0
  3550. vec4 color = mix(lightColor, darkColor, b);
  3551. color = czm_gammaCorrect(color);
  3552. material.diffuse = color.rgb;
  3553. material.alpha = color.a;
  3554. return material;
  3555. }
  3556. `;var TI=`uniform sampler2D heights;
  3557. uniform sampler2D colors;
  3558. // This material expects heights to be sorted from lowest to highest.
  3559. float getHeight(int idx, float invTexSize)
  3560. {
  3561. vec2 uv = vec2((float(idx) + 0.5) * invTexSize, 0.5);
  3562. #ifdef OES_texture_float
  3563. return texture(heights, uv).x;
  3564. #else
  3565. return czm_unpackFloat(texture(heights, uv));
  3566. #endif
  3567. }
  3568. czm_material czm_getMaterial(czm_materialInput materialInput)
  3569. {
  3570. czm_material material = czm_getDefaultMaterial(materialInput);
  3571. float height = materialInput.height;
  3572. float invTexSize = 1.0 / float(heightsDimensions.x);
  3573. float minHeight = getHeight(0, invTexSize);
  3574. float maxHeight = getHeight(heightsDimensions.x - 1, invTexSize);
  3575. // early-out when outside the height range
  3576. if (height < minHeight || height > maxHeight) {
  3577. material.diffuse = vec3(0.0);
  3578. material.alpha = 0.0;
  3579. return material;
  3580. }
  3581. // Binary search to find heights above and below.
  3582. int idxBelow = 0;
  3583. int idxAbove = heightsDimensions.x;
  3584. float heightBelow = minHeight;
  3585. float heightAbove = maxHeight;
  3586. // while loop not allowed, so use for loop with max iterations.
  3587. // maxIterations of 16 supports a texture size up to 65536 (2^16).
  3588. const int maxIterations = 16;
  3589. for (int i = 0; i < maxIterations; i++) {
  3590. if (idxBelow >= idxAbove - 1) {
  3591. break;
  3592. }
  3593. int idxMid = (idxBelow + idxAbove) / 2;
  3594. float heightTex = getHeight(idxMid, invTexSize);
  3595. if (height > heightTex) {
  3596. idxBelow = idxMid;
  3597. heightBelow = heightTex;
  3598. } else {
  3599. idxAbove = idxMid;
  3600. heightAbove = heightTex;
  3601. }
  3602. }
  3603. float lerper = heightBelow == heightAbove ? 1.0 : (height - heightBelow) / (heightAbove - heightBelow);
  3604. vec2 colorUv = vec2(invTexSize * (float(idxBelow) + 0.5 + lerper), 0.5);
  3605. vec4 color = texture(colors, colorUv);
  3606. // undo preumultiplied alpha
  3607. if (color.a > 0.0)
  3608. {
  3609. color.rgb /= color.a;
  3610. }
  3611. color.rgb = czm_gammaCorrect(color.rgb);
  3612. material.diffuse = color.rgb;
  3613. material.alpha = color.a;
  3614. return material;
  3615. }
  3616. `;var AI=`uniform vec4 color;
  3617. uniform float spacing;
  3618. uniform float width;
  3619. czm_material czm_getMaterial(czm_materialInput materialInput)
  3620. {
  3621. czm_material material = czm_getDefaultMaterial(materialInput);
  3622. float distanceToContour = mod(materialInput.height, spacing);
  3623. #if (__VERSION__ == 300 || defined(GL_OES_standard_derivatives))
  3624. float dxc = abs(dFdx(materialInput.height));
  3625. float dyc = abs(dFdy(materialInput.height));
  3626. float dF = max(dxc, dyc) * czm_pixelRatio * width;
  3627. float alpha = (distanceToContour < dF) ? 1.0 : 0.0;
  3628. #else
  3629. // If no derivatives available (IE 10?), use pixel ratio
  3630. float alpha = (distanceToContour < (czm_pixelRatio * width)) ? 1.0 : 0.0;
  3631. #endif
  3632. vec4 outColor = czm_gammaCorrect(vec4(color.rgb, alpha * color.a));
  3633. material.diffuse = outColor.rgb;
  3634. material.alpha = outColor.a;
  3635. return material;
  3636. }
  3637. `;var CI=`uniform sampler2D image;
  3638. uniform float minimumHeight;
  3639. uniform float maximumHeight;
  3640. czm_material czm_getMaterial(czm_materialInput materialInput)
  3641. {
  3642. czm_material material = czm_getDefaultMaterial(materialInput);
  3643. float scaledHeight = clamp((materialInput.height - minimumHeight) / (maximumHeight - minimumHeight), 0.0, 1.0);
  3644. vec4 rampColor = texture(image, vec2(scaledHeight, 0.5));
  3645. rampColor = czm_gammaCorrect(rampColor);
  3646. material.diffuse = rampColor.rgb;
  3647. material.alpha = rampColor.a;
  3648. return material;
  3649. }
  3650. `;var EI=`uniform vec4 fadeInColor;
  3651. uniform vec4 fadeOutColor;
  3652. uniform float maximumDistance;
  3653. uniform bool repeat;
  3654. uniform vec2 fadeDirection;
  3655. uniform vec2 time;
  3656. float getTime(float t, float coord)
  3657. {
  3658. float scalar = 1.0 / maximumDistance;
  3659. float q = distance(t, coord) * scalar;
  3660. if (repeat)
  3661. {
  3662. float r = distance(t, coord + 1.0) * scalar;
  3663. float s = distance(t, coord - 1.0) * scalar;
  3664. q = min(min(r, s), q);
  3665. }
  3666. return clamp(q, 0.0, 1.0);
  3667. }
  3668. czm_material czm_getMaterial(czm_materialInput materialInput)
  3669. {
  3670. czm_material material = czm_getDefaultMaterial(materialInput);
  3671. vec2 st = materialInput.st;
  3672. float s = getTime(time.x, st.s) * fadeDirection.s;
  3673. float t = getTime(time.y, st.t) * fadeDirection.t;
  3674. float u = length(vec2(s, t));
  3675. vec4 color = mix(fadeInColor, fadeOutColor, u);
  3676. color = czm_gammaCorrect(color);
  3677. material.emission = color.rgb;
  3678. material.alpha = color.a;
  3679. return material;
  3680. }
  3681. `;var SI=`uniform vec4 color;
  3682. uniform float cellAlpha;
  3683. uniform vec2 lineCount;
  3684. uniform vec2 lineThickness;
  3685. uniform vec2 lineOffset;
  3686. czm_material czm_getMaterial(czm_materialInput materialInput)
  3687. {
  3688. czm_material material = czm_getDefaultMaterial(materialInput);
  3689. vec2 st = materialInput.st;
  3690. float scaledWidth = fract(lineCount.s * st.s - lineOffset.s);
  3691. scaledWidth = abs(scaledWidth - floor(scaledWidth + 0.5));
  3692. float scaledHeight = fract(lineCount.t * st.t - lineOffset.t);
  3693. scaledHeight = abs(scaledHeight - floor(scaledHeight + 0.5));
  3694. float value;
  3695. // Fuzz Factor - Controls blurriness of lines
  3696. #if (__VERSION__ == 300 || defined(GL_OES_standard_derivatives))
  3697. const float fuzz = 1.2;
  3698. vec2 thickness = (lineThickness * czm_pixelRatio) - 1.0;
  3699. // From "3D Engine Design for Virtual Globes" by Cozzi and Ring, Listing 4.13.
  3700. vec2 dx = abs(dFdx(st));
  3701. vec2 dy = abs(dFdy(st));
  3702. vec2 dF = vec2(max(dx.s, dy.s), max(dx.t, dy.t)) * lineCount;
  3703. value = min(
  3704. smoothstep(dF.s * thickness.s, dF.s * (fuzz + thickness.s), scaledWidth),
  3705. smoothstep(dF.t * thickness.t, dF.t * (fuzz + thickness.t), scaledHeight));
  3706. #else
  3707. // If no derivatives available (IE 10?), revert to view-dependent fuzz
  3708. const float fuzz = 0.05;
  3709. vec2 range = 0.5 - (lineThickness * 0.05);
  3710. value = min(
  3711. 1.0 - smoothstep(range.s, range.s + fuzz, scaledWidth),
  3712. 1.0 - smoothstep(range.t, range.t + fuzz, scaledHeight));
  3713. #endif
  3714. // Edges taken from RimLightingMaterial.glsl
  3715. // See http://www.fundza.com/rman_shaders/surface/fake_rim/fake_rim1.html
  3716. float dRim = 1.0 - abs(dot(materialInput.normalEC, normalize(materialInput.positionToEyeEC)));
  3717. float sRim = smoothstep(0.8, 1.0, dRim);
  3718. value *= (1.0 - sRim);
  3719. vec4 halfColor;
  3720. halfColor.rgb = color.rgb * 0.5;
  3721. halfColor.a = color.a * (1.0 - ((1.0 - cellAlpha) * value));
  3722. halfColor = czm_gammaCorrect(halfColor);
  3723. material.diffuse = halfColor.rgb;
  3724. material.emission = halfColor.rgb;
  3725. material.alpha = halfColor.a;
  3726. return material;
  3727. }
  3728. `;var wI=`uniform sampler2D image;
  3729. uniform float strength;
  3730. uniform vec2 repeat;
  3731. czm_material czm_getMaterial(czm_materialInput materialInput)
  3732. {
  3733. czm_material material = czm_getDefaultMaterial(materialInput);
  3734. vec4 textureValue = texture(image, fract(repeat * materialInput.st));
  3735. vec3 normalTangentSpace = textureValue.channels;
  3736. normalTangentSpace.xy = normalTangentSpace.xy * 2.0 - 1.0;
  3737. normalTangentSpace.z = clamp(1.0 - strength, 0.1, 1.0);
  3738. normalTangentSpace = normalize(normalTangentSpace);
  3739. vec3 normalEC = materialInput.tangentToEyeMatrix * normalTangentSpace;
  3740. material.normal = normalEC;
  3741. return material;
  3742. }
  3743. `;var vI=`uniform vec4 color;
  3744. float getPointOnLine(vec2 p0, vec2 p1, float x)
  3745. {
  3746. float slope = (p0.y - p1.y) / (p0.x - p1.x);
  3747. return slope * (x - p0.x) + p0.y;
  3748. }
  3749. czm_material czm_getMaterial(czm_materialInput materialInput)
  3750. {
  3751. czm_material material = czm_getDefaultMaterial(materialInput);
  3752. vec2 st = materialInput.st;
  3753. #if (__VERSION__ == 300 || defined(GL_OES_standard_derivatives))
  3754. float base = 1.0 - abs(fwidth(st.s)) * 10.0 * czm_pixelRatio;
  3755. #else
  3756. // If no derivatives available (IE 10?), 2.5% of the line will be the arrow head
  3757. float base = 0.975;
  3758. #endif
  3759. vec2 center = vec2(1.0, 0.5);
  3760. float ptOnUpperLine = getPointOnLine(vec2(base, 1.0), center, st.s);
  3761. float ptOnLowerLine = getPointOnLine(vec2(base, 0.0), center, st.s);
  3762. float halfWidth = 0.15;
  3763. float s = step(0.5 - halfWidth, st.t);
  3764. s *= 1.0 - step(0.5 + halfWidth, st.t);
  3765. s *= 1.0 - step(base, st.s);
  3766. float t = step(base, materialInput.st.s);
  3767. t *= 1.0 - step(ptOnUpperLine, st.t);
  3768. t *= step(ptOnLowerLine, st.t);
  3769. // Find the distance from the closest separator (region between two colors)
  3770. float dist;
  3771. if (st.s < base)
  3772. {
  3773. float d1 = abs(st.t - (0.5 - halfWidth));
  3774. float d2 = abs(st.t - (0.5 + halfWidth));
  3775. dist = min(d1, d2);
  3776. }
  3777. else
  3778. {
  3779. float d1 = czm_infinity;
  3780. if (st.t < 0.5 - halfWidth && st.t > 0.5 + halfWidth)
  3781. {
  3782. d1 = abs(st.s - base);
  3783. }
  3784. float d2 = abs(st.t - ptOnUpperLine);
  3785. float d3 = abs(st.t - ptOnLowerLine);
  3786. dist = min(min(d1, d2), d3);
  3787. }
  3788. vec4 outsideColor = vec4(0.0);
  3789. vec4 currentColor = mix(outsideColor, color, clamp(s + t, 0.0, 1.0));
  3790. vec4 outColor = czm_antialias(outsideColor, color, currentColor, dist);
  3791. outColor = czm_gammaCorrect(outColor);
  3792. material.diffuse = outColor.rgb;
  3793. material.alpha = outColor.a;
  3794. return material;
  3795. }
  3796. `;var DI=`uniform vec4 color;
  3797. uniform vec4 gapColor;
  3798. uniform float dashLength;
  3799. uniform float dashPattern;
  3800. in float v_polylineAngle;
  3801. const float maskLength = 16.0;
  3802. mat2 rotate(float rad) {
  3803. float c = cos(rad);
  3804. float s = sin(rad);
  3805. return mat2(
  3806. c, s,
  3807. -s, c
  3808. );
  3809. }
  3810. czm_material czm_getMaterial(czm_materialInput materialInput)
  3811. {
  3812. czm_material material = czm_getDefaultMaterial(materialInput);
  3813. vec2 pos = rotate(v_polylineAngle) * gl_FragCoord.xy;
  3814. // Get the relative position within the dash from 0 to 1
  3815. float dashPosition = fract(pos.x / (dashLength * czm_pixelRatio));
  3816. // Figure out the mask index.
  3817. float maskIndex = floor(dashPosition * maskLength);
  3818. // Test the bit mask.
  3819. float maskTest = floor(dashPattern / pow(2.0, maskIndex));
  3820. vec4 fragColor = (mod(maskTest, 2.0) < 1.0) ? gapColor : color;
  3821. if (fragColor.a < 0.005) { // matches 0/255 and 1/255
  3822. discard;
  3823. }
  3824. fragColor = czm_gammaCorrect(fragColor);
  3825. material.emission = fragColor.rgb;
  3826. material.alpha = fragColor.a;
  3827. return material;
  3828. }
  3829. `;var II=`uniform vec4 color;
  3830. uniform float glowPower;
  3831. uniform float taperPower;
  3832. czm_material czm_getMaterial(czm_materialInput materialInput)
  3833. {
  3834. czm_material material = czm_getDefaultMaterial(materialInput);
  3835. vec2 st = materialInput.st;
  3836. float glow = glowPower / abs(st.t - 0.5) - (glowPower / 0.5);
  3837. if (taperPower <= 0.99999) {
  3838. glow *= min(1.0, taperPower / (0.5 - st.s * 0.5) - (taperPower / 0.5));
  3839. }
  3840. vec4 fragColor;
  3841. fragColor.rgb = max(vec3(glow - 1.0 + color.rgb), color.rgb);
  3842. fragColor.a = clamp(0.0, 1.0, glow) * color.a;
  3843. fragColor = czm_gammaCorrect(fragColor);
  3844. material.emission = fragColor.rgb;
  3845. material.alpha = fragColor.a;
  3846. return material;
  3847. }
  3848. `;var PI=`uniform vec4 color;
  3849. uniform vec4 outlineColor;
  3850. uniform float outlineWidth;
  3851. in float v_width;
  3852. czm_material czm_getMaterial(czm_materialInput materialInput)
  3853. {
  3854. czm_material material = czm_getDefaultMaterial(materialInput);
  3855. vec2 st = materialInput.st;
  3856. float halfInteriorWidth = 0.5 * (v_width - outlineWidth) / v_width;
  3857. float b = step(0.5 - halfInteriorWidth, st.t);
  3858. b *= 1.0 - step(0.5 + halfInteriorWidth, st.t);
  3859. // Find the distance from the closest separator (region between two colors)
  3860. float d1 = abs(st.t - (0.5 - halfInteriorWidth));
  3861. float d2 = abs(st.t - (0.5 + halfInteriorWidth));
  3862. float dist = min(d1, d2);
  3863. vec4 currentColor = mix(outlineColor, color, b);
  3864. vec4 outColor = czm_antialias(outlineColor, color, currentColor, dist);
  3865. outColor = czm_gammaCorrect(outColor);
  3866. material.diffuse = outColor.rgb;
  3867. material.alpha = outColor.a;
  3868. return material;
  3869. }
  3870. `;var OI=`uniform vec4 color;
  3871. uniform vec4 rimColor;
  3872. uniform float width;
  3873. czm_material czm_getMaterial(czm_materialInput materialInput)
  3874. {
  3875. czm_material material = czm_getDefaultMaterial(materialInput);
  3876. // See http://www.fundza.com/rman_shaders/surface/fake_rim/fake_rim1.html
  3877. float d = 1.0 - dot(materialInput.normalEC, normalize(materialInput.positionToEyeEC));
  3878. float s = smoothstep(1.0 - width, 1.0, d);
  3879. vec4 outColor = czm_gammaCorrect(color);
  3880. vec4 outRimColor = czm_gammaCorrect(rimColor);
  3881. material.diffuse = outColor.rgb;
  3882. material.emission = outRimColor.rgb * s;
  3883. material.alpha = mix(outColor.a, outRimColor.a, s);
  3884. return material;
  3885. }
  3886. `;var RI=`uniform sampler2D image;
  3887. czm_material czm_getMaterial(czm_materialInput materialInput)
  3888. {
  3889. czm_material material = czm_getDefaultMaterial(materialInput);
  3890. vec4 rampColor = texture(image, vec2(materialInput.slope / (czm_pi / 2.0), 0.5));
  3891. rampColor = czm_gammaCorrect(rampColor);
  3892. material.diffuse = rampColor.rgb;
  3893. material.alpha = rampColor.a;
  3894. return material;
  3895. }
  3896. `;var MI=`uniform vec4 evenColor;
  3897. uniform vec4 oddColor;
  3898. uniform float offset;
  3899. uniform float repeat;
  3900. uniform bool horizontal;
  3901. czm_material czm_getMaterial(czm_materialInput materialInput)
  3902. {
  3903. czm_material material = czm_getDefaultMaterial(materialInput);
  3904. // Based on the Stripes Fragment Shader in the Orange Book (11.1.2)
  3905. float coord = mix(materialInput.st.s, materialInput.st.t, float(horizontal));
  3906. float value = fract((coord - offset) * (repeat * 0.5));
  3907. float dist = min(value, min(abs(value - 0.5), 1.0 - value));
  3908. vec4 currentColor = mix(evenColor, oddColor, step(0.5, value));
  3909. vec4 color = czm_antialias(evenColor, oddColor, currentColor, dist);
  3910. color = czm_gammaCorrect(color);
  3911. material.diffuse = color.rgb;
  3912. material.alpha = color.a;
  3913. return material;
  3914. }
  3915. `;var LI=`// Thanks for the contribution Jonas
  3916. // http://29a.ch/2012/7/19/webgl-terrain-rendering-water-fog
  3917. uniform sampler2D specularMap;
  3918. uniform sampler2D normalMap;
  3919. uniform vec4 baseWaterColor;
  3920. uniform vec4 blendColor;
  3921. uniform float frequency;
  3922. uniform float animationSpeed;
  3923. uniform float amplitude;
  3924. uniform float specularIntensity;
  3925. uniform float fadeFactor;
  3926. czm_material czm_getMaterial(czm_materialInput materialInput)
  3927. {
  3928. czm_material material = czm_getDefaultMaterial(materialInput);
  3929. float time = czm_frameNumber * animationSpeed;
  3930. // fade is a function of the distance from the fragment and the frequency of the waves
  3931. float fade = max(1.0, (length(materialInput.positionToEyeEC) / 10000000000.0) * frequency * fadeFactor);
  3932. float specularMapValue = texture(specularMap, materialInput.st).r;
  3933. // note: not using directional motion at this time, just set the angle to 0.0;
  3934. vec4 noise = czm_getWaterNoise(normalMap, materialInput.st * frequency, time, 0.0);
  3935. vec3 normalTangentSpace = noise.xyz * vec3(1.0, 1.0, (1.0 / amplitude));
  3936. // fade out the normal perturbation as we move further from the water surface
  3937. normalTangentSpace.xy /= fade;
  3938. // attempt to fade out the normal perturbation as we approach non water areas (low specular map value)
  3939. normalTangentSpace = mix(vec3(0.0, 0.0, 50.0), normalTangentSpace, specularMapValue);
  3940. normalTangentSpace = normalize(normalTangentSpace);
  3941. // get ratios for alignment of the new normal vector with a vector perpendicular to the tangent plane
  3942. float tsPerturbationRatio = clamp(dot(normalTangentSpace, vec3(0.0, 0.0, 1.0)), 0.0, 1.0);
  3943. // fade out water effect as specular map value decreases
  3944. material.alpha = mix(blendColor.a, baseWaterColor.a, specularMapValue) * specularMapValue;
  3945. // base color is a blend of the water and non-water color based on the value from the specular map
  3946. // may need a uniform blend factor to better control this
  3947. material.diffuse = mix(blendColor.rgb, baseWaterColor.rgb, specularMapValue);
  3948. // diffuse highlights are based on how perturbed the normal is
  3949. material.diffuse += (0.1 * tsPerturbationRatio);
  3950. material.diffuse = material.diffuse;
  3951. material.normal = normalize(materialInput.tangentToEyeMatrix * normalTangentSpace);
  3952. material.specular = specularIntensity;
  3953. material.shininess = 10.0;
  3954. return material;
  3955. }
  3956. `;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,rn.LINEAR),this._magnificationFilter=y(e.magnificationFilter,yi.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,iDe(e,this),Object.defineProperties(this,{type:{value:this.type,writable:!1}}),u(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(u(t))for(let i in t)t.hasOwnProperty(i)&&(n.uniforms[i]=t[i]);return n};je.prototype.isTranslucent=function(){if(u(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 l=c.image,f;Array.isArray(l)&&(f=l.slice(1,l.length).map(function(x){return x.bufferView}),l=l[0]);let d=new ln({minificationFilter:this._minificationFilter,magnificationFilter:this._magnificationFilter}),p;u(l.internalFormat)?p=new It({context:e,pixelFormat:l.internalFormat,width:l.width,height:l.height,source:{arrayBufferView:l.bufferView,mipLevels:f},sampler:d}):p=new It({context:e,source:l,sampler:d});let g=this._textures[n];u(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 l=c.images,f=new Ha({context:e,source:{positiveX:l[0],negativeX:l[1],positiveY:l[2],negativeY:l[3],positiveZ:l[4],negativeZ:l[5]},sampler:new ln({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 le(this)};function iDe(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=u(t._template.type)?t._template.type:Wn(),t.shaderSource="",t.materials={},t.uniforms={},t._uniforms={},t._translucentFunctions=[];let n,i=je._materialCache.getMaterial(t.type);if(u(i)){let r=He(i.fabric,!0);t._template=gt(t._template,r,!0),n=i.translucent}aDe(t),u(i)||je._materialCache.addMaterial(t.type,t),lDe(t),hDe(t),pDe(t);let o=t._translucentFunctions.length===0?!0:void 0;if(n=y(n,o),n=y(e.translucent,n),u(n))if(typeof n=="function"){let r=function(){return n(t)};t._translucentFunctions.push(r)}else t._translucentFunctions.push(n)}function L5(e,t,n,i){if(u(e)){for(let o in e)if(e.hasOwnProperty(o)){let r=t.indexOf(o)!==-1;(i&&!r||!i&&r)&&n(o,t)}}}function rJ(e,t){}function oDe(e,t){}var rDe=["type","materials","uniforms","components","source"],sDe=["diffuse","specular","shininess","normal","emission","alpha"];function aDe(e){let t=e._template,n=t.uniforms,i=t.materials,o=t.components;L5(t,rDe,rJ,!0),L5(o,sDe,rJ,!0);let r=[];for(let s in i)i.hasOwnProperty(s)&&r.push(s);L5(n,r,oDe,!1)}function cDe(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 lDe(e){let t=e._template.components,n=e._template.source;if(u(n))e.shaderSource+=`${n}
  3957. `;else{if(e.shaderSource+=`czm_material czm_getMaterial(czm_materialInput materialInput)
  3958. {
  3959. `,e.shaderSource+=`czm_material material = czm_getDefaultMaterial(materialInput);
  3960. `,u(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&&cDe(t[o],e)?t[o]:`czm_gammaCorrect(${t[o]})`;e.shaderSource+=`material.${o} = ${s};
  3961. `}else o==="alpha"?e.shaderSource+=`material.alpha = ${t.alpha};
  3962. `:e.shaderSource+=`material.${o} = ${t[o]};
  3963. `}e.shaderSource+=`return material;
  3964. }
  3965. `}}var sJ={mat2:Qi,mat3:Q,mat4:F},uDe=/\.ktx2$/i;function fDe(e){let t;return function(n,i){let o=n.uniforms,r=o[e],s=t!==r,a=!u(r)||r===je.DefaultImageId;t=r;let c=n._textures[e],l,f;if(r instanceof HTMLVideoElement){if(r.readyState>=2){if(s&&u(c)&&(c!==i.defaultTexture&&c.destroy(),c=void 0),!u(c)||c===i.defaultTexture){let p=new ln({minificationFilter:n._minificationFilter,magnificationFilter:n._magnificationFilter});c=new It({context:i,source:r,sampler:p}),n._textures[e]=c;return}c.copyFrom({source:r})}else u(c)||(n._textures[e]=i.defaultTexture);return}if(r instanceof It&&r!==c){n._texturePaths[e]=void 0;let p=n._textures[e];u(p)&&p!==n._defaultTexture&&p.destroy(),n._textures[e]=r,l=`${e}Dimensions`,o.hasOwnProperty(l)&&(f=o[l],f.x=r._width,f.y=r._height);return}if(s&&u(c)&&a&&(c!==n._defaultTexture&&c.destroy(),c=void 0),u(c)||(n._texturePaths[e]=void 0,c=n._textures[e]=n._defaultTexture,l=`${e}Dimensions`,o.hasOwnProperty(l)&&(f=o[l],f.x=c._width,f.y=c._height)),a)return;let d=r instanceof ve;if(!u(n._texturePaths[e])||d&&r.url!==n._texturePaths[e].url||!d&&r!==n._texturePaths[e]){if(typeof r=="string"||d){let p=d?r:ve.createIfNeeded(r),g;uDe.test(p.url)?g=ul(p.url):g=p.fetchImage(),Promise.resolve(g).then(function(m){n._loadedImages.push({id:e,image:m})}).catch(function(){u(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 dDe(e){return function(t,n){let i=t.uniforms[e];if(i instanceof Ha){let r=t._textures[e];r!==t._defaultTexture&&r.destroy(),t._texturePaths[e]=void 0,t._textures[e]=i;return}if(u(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=[ve.createIfNeeded(i.positiveX).fetchImage(),ve.createIfNeeded(i.negativeX).fetchImage(),ve.createIfNeeded(i.positiveY).fetchImage(),ve.createIfNeeded(i.negativeY).fetchImage(),ve.createIfNeeded(i.positiveZ).fetchImage(),ve.createIfNeeded(i.negativeZ).fetchImage()];Promise.all(r).then(function(s){t._loadedCubeMaps.push({id:e,images:s})}),t._texturePaths[e]=o}}}function hDe(e){let t=e._template.uniforms;for(let n in t)t.hasOwnProperty(n)&&aJ(e,n)}function aJ(e,t){let n=e._strict,i=e._template.uniforms,o=i[t],r=mDe(o),s;if(r==="channels")s=NI(e,t,o,!1);else{if(r==="sampler2D"){let l=`${t}Dimensions`;_De(e,l)>0&&(i[l]={type:"ivec3",x:1,y:1},aJ(e,l))}if(!new RegExp(`uniform\\s+${r}\\s+${t}\\s*;`).test(e.shaderSource)){let l=`uniform ${r} ${t};`;e.shaderSource=l+e.shaderSource}let c=`${t}_${e._count++}`;if(s=NI(e,t,c),e.uniforms[t]=o,r==="sampler2D")e._uniforms[c]=function(){return e._textures[t]},e._updateFunctions.push(fDe(t));else if(r==="samplerCube")e._uniforms[c]=function(){return e._textures[t]},e._updateFunctions.push(dDe(t));else if(r.indexOf("mat")!==-1){let l=new sJ[r];e._uniforms[c]=function(){return sJ[r].fromColumnMajorArray(e.uniforms[t],l)}}else e._uniforms[c]=function(){return e.uniforms[t]}}}function mDe(e){let t=e.type;if(!u(t)){let n=typeof e;if(n==="number")t="float";else if(n==="boolean")t="bool";else if(n==="string"||e instanceof ve||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 pDe(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=gt(e._uniforms,o._uniforms,!0),e.materials[i]=o,e._translucentFunctions=e._translucentFunctions.concat(o._translucentFunctions);let r="czm_getMaterial",s=`${r}_${e._count++}`;NI(o,r,s),e.shaderSource=o.shaderSource+e.shaderSource;let a=`${s}(materialInput)`,c=NI(e,i,a)}}function NI(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,l,f){return l||f?c:(o+=1,n)}),o}function _De(e,t,n){return NI(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:yI},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:wI},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:SI},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:MI},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:xI},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:bI},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:LI},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:OI},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:EI},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:vI},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:DI},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:II},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:PI},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:AI},translucent:!1});je.ElevationRampType="ElevationRamp";je._materialCache.addMaterial(je.ElevationRampType,{fabric:{type:je.ElevationRampType,uniforms:{image:je.DefaultImageId,minimumHeight:0,maximumHeight:1e4},source:CI},translucent:!1});je.SlopeRampMaterialType="SlopeRamp";je._materialCache.addMaterial(je.SlopeRampMaterialType,{fabric:{type:je.SlopeRampMaterialType,uniforms:{image:je.DefaultImageId},source:RI},translucent:!1});je.AspectRampMaterialType="AspectRamp";je._materialCache.addMaterial(je.AspectRampMaterialType,{fabric:{type:je.AspectRampMaterialType,uniforms:{image:je.DefaultImageId},source:gI},translucent:!1});je.ElevationBandType="ElevationBand";je._materialCache.addMaterial(je.ElevationBandType,{fabric:{type:je.ElevationBandType,uniforms:{heights:je.DefaultImageId,colors:je.DefaultImageId},source:TI},translucent:!0});var Vi=je;function U0(e){e=y(e,y.EMPTY_OBJECT);let t=y(e.translucent,!0),n=y(e.closed,!1),i=y(e.materialSupport,U0.MaterialSupport.TEXTURED);this.material=u(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=eo.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(U0.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}}});U0.prototype.getFragmentShaderSource=eo.prototype.getFragmentShaderSource;U0.prototype.isTranslucent=eo.prototype.isTranslucent;U0.prototype.getRenderState=eo.prototype.getRenderState;U0.MaterialSupport={BASIC:Object.freeze({vertexFormat:Pe.POSITION_AND_NORMAL,vertexShaderSource:mI,fragmentShaderSource:hI}),TEXTURED:Object.freeze({vertexFormat:Pe.POSITION_NORMAL_AND_ST,vertexShaderSource:_I,fragmentShaderSource:pI}),ALL:Object.freeze({vertexFormat:Pe.ALL,vertexShaderSource:dI,fragmentShaderSource:fI})};var so=U0;var FI=`in vec3 v_positionEC;
  3966. in vec3 v_normalEC;
  3967. in vec4 v_color;
  3968. void main()
  3969. {
  3970. vec3 positionToEyeEC = -v_positionEC;
  3971. vec3 normalEC = normalize(v_normalEC);
  3972. #ifdef FACE_FORWARD
  3973. normalEC = faceforward(normalEC, vec3(0.0, 0.0, 1.0), -normalEC);
  3974. #endif
  3975. vec4 color = czm_gammaCorrect(v_color);
  3976. czm_materialInput materialInput;
  3977. materialInput.normalEC = normalEC;
  3978. materialInput.positionToEyeEC = positionToEyeEC;
  3979. czm_material material = czm_getDefaultMaterial(materialInput);
  3980. material.diffuse = color.rgb;
  3981. material.alpha = color.a;
  3982. out_FragColor = czm_phong(normalize(positionToEyeEC), material, czm_lightDirectionEC);
  3983. }
  3984. `;var BI=`in vec3 position3DHigh;
  3985. in vec3 position3DLow;
  3986. in vec3 normal;
  3987. in vec4 color;
  3988. in float batchId;
  3989. out vec3 v_positionEC;
  3990. out vec3 v_normalEC;
  3991. out vec4 v_color;
  3992. void main()
  3993. {
  3994. vec4 p = czm_computePosition();
  3995. v_positionEC = (czm_modelViewRelativeToEye * p).xyz; // position in eye coordinates
  3996. v_normalEC = czm_normal * normal; // normal in eye coordinates
  3997. v_color = color;
  3998. gl_Position = czm_modelViewProjectionRelativeToEye * p;
  3999. }
  4000. `;var V0=`in vec4 v_color;
  4001. void main()
  4002. {
  4003. out_FragColor = czm_gammaCorrect(v_color);
  4004. }
  4005. `;var kI=`in vec3 position3DHigh;
  4006. in vec3 position3DLow;
  4007. in vec4 color;
  4008. in float batchId;
  4009. out vec4 v_color;
  4010. void main()
  4011. {
  4012. vec4 p = czm_computePosition();
  4013. v_color = color;
  4014. gl_Position = czm_modelViewProjectionRelativeToEye * p;
  4015. }
  4016. `;function ap(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?kI:BI,r=i?V0:FI,s=i?ap.FLAT_VERTEX_FORMAT:ap.VERTEX_FORMAT;this.material=void 0,this.translucent=t,this._vertexShaderSource=y(e.vertexShaderSource,o),this._fragmentShaderSource=y(e.fragmentShaderSource,r),this._renderState=eo.getDefaultRenderState(t,n,e.renderState),this._closed=n,this._vertexFormat=s,this._flat=i,this._faceForward=y(e.faceForward,!n)}Object.defineProperties(ap.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}}});ap.VERTEX_FORMAT=Pe.POSITION_AND_NORMAL;ap.FLAT_VERTEX_FORMAT=Pe.POSITION_ONLY;ap.prototype.getFragmentShaderSource=eo.prototype.getFragmentShaderSource;ap.prototype.isTranslucent=eo.prototype.isTranslucent;ap.prototype.getRenderState=eo.prototype.getRenderState;var nn=ap;function mA(e){this._definitionChanged=new pe,this._color=void 0,this._colorSubscription=void 0,this.color=e}Object.defineProperties(mA.prototype,{isConstant:{get:function(){return q.isConstant(this._color)}},definitionChanged:{get:function(){return this._definitionChanged}},color:ae("color")});mA.prototype.getType=function(e){return"Color"};mA.prototype.getValue=function(e,t){return u(t)||(t={}),t.color=q.getValueOrClonedDefault(this._color,e,H.WHITE,t.color),t};mA.prototype.equals=function(e){return this===e||e instanceof mA&&q.equals(this._color,e._color)};var Nt=mA;function dg(e){e=y(e,y.EMPTY_OBJECT),this._ellipsoid=y(e.ellipsoid,ie.WGS84),this._rectangle=y(e.rectangle,ce.MAX_VALUE),this._projection=new wi(this._ellipsoid),this._numberOfLevelZeroTilesX=y(e.numberOfLevelZeroTilesX,2),this._numberOfLevelZeroTilesY=y(e.numberOfLevelZeroTilesY,1)}Object.defineProperties(dg.prototype,{ellipsoid:{get:function(){return this._ellipsoid}},rectangle:{get:function(){return this._rectangle}},projection:{get:function(){return this._projection}}});dg.prototype.getNumberOfXTilesAtLevel=function(e){return this._numberOfLevelZeroTilesX<<e};dg.prototype.getNumberOfYTilesAtLevel=function(e){return this._numberOfLevelZeroTilesY<<e};dg.prototype.rectangleToNativeRectangle=function(e,t){let n=P.toDegrees(e.west),i=P.toDegrees(e.south),o=P.toDegrees(e.east),r=P.toDegrees(e.north);return u(t)?(t.west=n,t.south=i,t.east=o,t.north=r,t):new ce(n,i,o,r)};dg.prototype.tileXYToNativeRectangle=function(e,t,n,i){let o=this.tileXYToRectangle(e,t,n,i);return o.west=P.toDegrees(o.west),o.south=P.toDegrees(o.south),o.east=P.toDegrees(o.east),o.north=P.toDegrees(o.north),o};dg.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,l=(e+1)*a+o.west,f=o.height/s,d=o.north-t*f,p=o.north-(t+1)*f;return u(i)||(i=new ce(c,p,l,d)),i.west=c,i.south=p,i.east=l,i.north=d,i};dg.prototype.positionToTileXY=function(e,t,n){let i=this._rectangle;if(!ce.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+=P.TWO_PI);let l=(c-i.west)/s|0;l>=o&&(l=o-1);let f=(i.north-e.latitude)/a|0;return f>=r&&(f=r-1),u(n)?(n.x=l,n.y=f,n):new z(l,f)};var zi=dg;var cJ=new h,lJ=new h,uJ=new fe,N5=new h,gDe=new h,fJ=new se,yDe=new zi,UI=[new fe,new fe,new fe,new fe],VI=new z,Vr={};Vr.initialize=function(){let e=Vr._initPromise;return u(e)||(e=ve.fetchJson(Zt("Assets/approximateTerrainHeights.json")).then(function(t){Vr._terrainHeights=t}),Vr._initPromise=e),e};Vr.getMinimumMaximumHeights=function(e,t){t=y(t,ie.WGS84);let n=dJ(e),i=Vr._defaultMinTerrainHeight,o=Vr._defaultMaxTerrainHeight;if(u(n)){let r=`${n.level}-${n.x}-${n.y}`,s=Vr._terrainHeights[r];u(s)&&(i=s[0],o=s[1]),t.cartographicToCartesian(ce.northeast(e,uJ),cJ),t.cartographicToCartesian(ce.southwest(e,uJ),lJ),h.midpoint(lJ,cJ,N5);let a=t.scaleToGeodeticSurface(N5,gDe);if(u(a)){let c=h.distance(N5,a);i=Math.min(i,-c)}else i=Vr._defaultMinTerrainHeight}return i=Math.max(Vr._defaultMinTerrainHeight,i),{minimumTerrainHeight:i,maximumTerrainHeight:o}};Vr.getBoundingSphere=function(e,t){t=y(t,ie.WGS84);let n=dJ(e),i=Vr._defaultMaxTerrainHeight;if(u(n)){let r=`${n.level}-${n.x}-${n.y}`,s=Vr._terrainHeights[r];u(s)&&(i=s[1])}let o=se.fromRectangle3D(e,t,0);return se.fromRectangle3D(e,t,i,fJ),se.union(o,fJ,o)};function dJ(e){fe.fromRadians(e.east,e.north,0,UI[0]),fe.fromRadians(e.west,e.north,0,UI[1]),fe.fromRadians(e.east,e.south,0,UI[2]),fe.fromRadians(e.west,e.south,0,UI[3]);let t=0,n=0,i=0,o=0,r=Vr._terrainHeightsMaxLevel,s;for(s=0;s<=r;++s){let a=!1;for(let c=0;c<4;++c){let l=UI[c];if(yDe.positionToTileXY(l,s,VI),c===0)i=VI.x,o=VI.y;else if(i!==VI.x||o!==VI.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}}Vr._terrainHeightsMaxLevel=6;Vr._defaultMaxTerrainHeight=9e3;Vr._defaultMinTerrainHeight=-1e5;Vr._terrainHeights=void 0;Vr._initPromise=void 0;Object.defineProperties(Vr,{initialized:{get:function(){return u(Vr._terrainHeights)}}});var li=Vr;function Sc(e,t,n){this.minimum=h.clone(y(e,h.ZERO)),this.maximum=h.clone(y(t,h.ZERO)),u(n)?n=h.clone(n):n=h.midpoint(this.minimum,this.maximum,new h),this.center=n}Sc.fromCorners=function(e,t,n){return u(n)||(n=new Sc),n.minimum=h.clone(e,n.minimum),n.maximum=h.clone(t,n.maximum),n.center=h.midpoint(e,t,n.center),n};Sc.fromPoints=function(e,t){if(u(t)||(t=new Sc),!u(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 l=t.minimum;l.x=n,l.y=i,l.z=o;let f=t.maximum;return f.x=r,f.y=s,f.z=a,t.center=h.midpoint(l,f,t.center),t};Sc.clone=function(e,t){if(u(e))return u(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 Sc(e.minimum,e.maximum,e.center)};Sc.equals=function(e,t){return e===t||u(e)&&u(t)&&h.equals(e.center,t.center)&&h.equals(e.minimum,t.minimum)&&h.equals(e.maximum,t.maximum)};var rk=new h;Sc.intersectPlane=function(e,t){rk=h.subtract(e.maximum,e.minimum,rk);let n=h.multiplyByScalar(rk,.5,rk),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?Kt.INSIDE:r+o<0?Kt.OUTSIDE:Kt.INTERSECTING};Sc.prototype.clone=function(e){return Sc.clone(this,e)};Sc.prototype.intersectPlane=function(e){return Sc.intersectPlane(this,e)};Sc.prototype.equals=function(e){return Sc.equals(this,e)};var hg=Sc;var F5={};F5.computeDiscriminant=function(e,t,n){return t*t-4*e*n};function hJ(e,t,n){let i=e+t;return P.sign(e)!==P.sign(t)&&Math.abs(i/Math.max(Math.abs(e),Math.abs(t)))<n?0:i}F5.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),l=Math.abs(e);if(c<l&&c/l<P.EPSILON14)return[0,0];if(c>l&&l/c<P.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=hJ(o,-r,P.EPSILON14);if(s<0)return[];let a=-.5*hJ(t,P.sign(t)*Math.sqrt(s),P.EPSILON14);return t>0?[a/e,n/a]:[n/a,a/e]};var wc=F5;var k5={};k5.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 B5(e,t,n,i){let o=e,r=t/3,s=n/3,a=i,c=o*s,l=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,j,$;f*l>=c*d?(Y=o,j=p,$=-2*r*p+o*g):(Y=a,j=m,$=-a*g+2*s*m);let K=-($<0?-1:1)*Math.abs(Y)*Math.sqrt(-x);T=-$+K;let Z=T/2,me=Z<0?-Math.pow(-Z,1/3):Math.pow(Z,1/3),xe=T===K?-me:-j/me;return b=j<=0?me+xe:-$/(me*me+xe*xe+j),f*l>=c*d?[(b-r)/o]:[-a/(b+s)]}let A=p,C=-2*r*p+o*g,S=m,w=-a*g+2*s*m,D=Math.sqrt(x),O=Math.sqrt(3)/2,R=Math.abs(Math.atan2(o*D,-C)/3);b=2*Math.sqrt(-A);let L=Math.cos(R);T=b*L;let N=b*(-L/2-O*Math.sin(R)),_=T+N>2*r?T-r:N-r,E=o,v=_/E;R=Math.abs(Math.atan2(a*D,-w)/3),b=2*Math.sqrt(-S),L=Math.cos(R),T=b*L,N=b*(-L/2-O*Math.sin(R));let I=-a,M=T+N<2*s?T+s:N+s,B=I/M,V=E*M,U=-_*M-E*I,G=_*I,k=(s*U-r*G)/(-r*U+s*V);return v<=k?v<=B?k<=B?[v,k,B]:[v,B,k]:[B,v,k]:v<=B?[k,v,B]:k<=B?[k,B,v]:[B,k,v]}k5.computeRealRoots=function(e,t,n,i){let o,r;if(e===0)return wc.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=wc.computeRealRoots(e,0,n),o.Length===0?[0]:[o[0],0,o[1]];return B5(e,0,n,i)}else{if(n===0)return i===0?(r=-t/e,r<0?[r,0,0]:[0,0,r]):B5(e,t,0,i);if(i===0)return o=wc.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 B5(e,t,n,i)};var z0=k5;var U5={};U5.computeDiscriminant=function(e,t,n,i,o){let r=e*e,s=r*e,a=t*t,c=a*t,l=n*n,f=l*n,d=i*i,p=d*i,g=o*o,m=g*o;return a*l*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*l*l-80*e*t*l*i-6*e*a*d+144*r*n*d)+g*(144*e*a*n-27*a*a-128*r*l-192*r*t*i)};function dd(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=z0.computeRealRoots(1,2*r,r*r-4*a,-s*s);if(c.length>0){let l=-e/4,f=c[c.length-1];if(Math.abs(f)<P.EPSILON14){let d=wc.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[l-b,l-x,l+x,l+b]}else{if(p>=0&&g<0)return m=Math.sqrt(p),[l-m,l+m];if(p<0&&g>=0)return m=Math.sqrt(g),[l-m,l+m]}}return[]}else if(f>0){let d=Math.sqrt(f),p=(r+f-s/d)/2,g=(r+f+s/d)/2,m=wc.computeRealRoots(1,d,p),x=wc.computeRealRoots(1,-d,g);return m.length!==0?(m[0]+=l,m[1]+=l,x.length!==0?(x[0]+=l,x[1]+=l,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]+=l,x[1]+=l,x):[]}}return[]}function zI(e,t,n,i){let o=n*n,r=t*t,s=e*e,a=-2*t,c=n*e+r-4*i,l=s*i-n*t*e+o,f=z0.computeRealRoots(1,a,c,l);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),A=s-4*d,C=s+4*Math.abs(d),S,w;if(d<0||b*C<A*T){let E=Math.sqrt(A);S=E/2,w=E===0?0:(e*x-n)/E}else{let E=Math.sqrt(b);S=E===0?0:(e*x-n)/E,w=E/2}let D,O;m===0&&S===0?(D=0,O=0):P.sign(m)===P.sign(S)?(D=m+S,O=d/D):(O=m-S,D=d/O);let R,L;x===0&&w===0?(R=0,L=0):P.sign(x)===P.sign(w)?(R=x+w,L=i/R):(L=x-w,R=i/L);let N=wc.computeRealRoots(1,D,R),_=wc.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[]}U5.computeRealRoots=function(e,t,n,i,o){if(Math.abs(e)<P.EPSILON15)return z0.computeRealRoots(t,n,i,o);let r=t/e,s=n/e,a=i/e,c=o/e,l=r<0?1:0;switch(l+=s<0?l+1:l,l+=a<0?l+1:l,l+=c<0?l+1:l,l){case 0:return dd(r,s,a,c);case 1:return zI(r,s,a,c);case 2:return zI(r,s,a,c);case 3:return dd(r,s,a,c);case 4:return dd(r,s,a,c);case 5:return zI(r,s,a,c);case 6:return dd(r,s,a,c);case 7:return dd(r,s,a,c);case 8:return zI(r,s,a,c);case 9:return dd(r,s,a,c);case 10:return dd(r,s,a,c);case 11:return zI(r,s,a,c);case 12:return dd(r,s,a,c);case 13:return dd(r,s,a,c);case 14:return dd(r,s,a,c);case 15:return dd(r,s,a,c);default:return}};var HI=U5;function sk(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}sk.clone=function(e,t){if(u(e))return u(t)?(t.origin=h.clone(e.origin),t.direction=h.clone(e.direction),t):new sk(e.origin,e.direction)};sk.getPoint=function(e,t,n){return u(n)||(n=new h),n=h.multiplyByScalar(e.direction,t,n),h.add(e.origin,n,n)};var Tn=sk;var nr={};nr.rayPlane=function(e,t,n){u(n)||(n=new h);let i=e.origin,o=e.direction,r=t.normal,s=h.dot(r,o);if(Math.abs(s)<P.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 xDe=new h,bDe=new h,TJ=new h,mJ=new h,pJ=new h;nr.rayTriangleParametric=function(e,t,n,i,o){o=y(o,!1);let r=e.origin,s=e.direction,a=h.subtract(n,t,xDe),c=h.subtract(i,t,bDe),l=h.cross(s,c,TJ),f=h.dot(a,l),d,p,g,m,x;if(o){if(f<P.EPSILON6||(d=h.subtract(r,t,mJ),g=h.dot(d,l),g<0||g>f)||(p=h.cross(d,a,pJ),m=h.dot(s,p),m<0||g+m>f))return;x=h.dot(c,p)/f}else{if(Math.abs(f)<P.EPSILON6)return;let b=1/f;if(d=h.subtract(r,t,mJ),g=h.dot(d,l)*b,g<0||g>1||(p=h.cross(d,a,pJ),m=h.dot(s,p)*b,m<0||g+m>1))return;x=h.dot(c,p)*b}return x};nr.rayTriangle=function(e,t,n,i,o,r){let s=nr.rayTriangleParametric(e,t,n,i,o);if(!(!u(s)||s<0))return u(r)||(r=new h),h.multiplyByScalar(e.direction,s,r),h.add(e.origin,r,r)};var TDe=new Tn;nr.lineSegmentTriangle=function(e,t,n,i,o,r,s){let a=TDe;h.clone(e,a.origin),h.subtract(t,e,a.direction),h.normalize(a.direction,a.direction);let c=nr.rayTriangleParametric(a,n,i,o,r);if(!(!u(c)||c<0||c>h.distance(e,t)))return u(s)||(s=new h),h.multiplyByScalar(a.direction,c,s),h.add(a.origin,s,s)};function ADe(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,l=(-t-a)*s;return c<l?(i.root0=c,i.root1=l):(i.root0=l,i.root1=c),i}let r=-t/(2*e);if(r!==0)return i.root0=i.root1=r,i}var CDe={root0:0,root1:0};function AJ(e,t,n){u(n)||(n=new Ec);let i=e.origin,o=e.direction,r=t.center,s=t.radius*t.radius,a=h.subtract(i,r,TJ),c=h.dot(o,o),l=2*h.dot(o,a),f=h.magnitudeSquared(a)-s,d=ADe(c,l,f,CDe);if(u(d))return n.start=d.root0,n.stop=d.root1,n}nr.raySphere=function(e,t,n){if(n=AJ(e,t,n),!(!u(n)||n.stop<0))return n.start=Math.max(n.start,0),n};var EDe=new Tn;nr.lineSegmentSphere=function(e,t,n,i){let o=EDe;h.clone(e,o.origin);let r=h.subtract(t,e,o.direction),s=h.magnitude(r);if(h.normalize(r,r),i=AJ(o,n,i),!(!u(i)||i.stop<0||i.start>s))return i.start=Math.max(i.start,0),i.stop=Math.min(i.stop,s),i};var SDe=new h,wDe=new h;nr.rayEllipsoid=function(e,t){let n=t.oneOverRadii,i=h.multiplyComponents(n,e.origin,SDe),o=h.multiplyComponents(n,e.direction,wDe),r=h.magnitudeSquared(i),s=h.dot(i,o),a,c,l,f,d;if(r>1){if(s>=0)return;let p=s*s;if(a=r-1,c=h.magnitudeSquared(o),l=c*a,p<l)return;if(p>l){f=s*s-l,d=-s+Math.sqrt(f);let m=d/c,x=a/d;return m<x?new Ec(m,x):{start:x,stop:m}}let g=Math.sqrt(a/c);return new Ec(g,g)}else if(r<1)return a=r-1,c=h.magnitudeSquared(o),l=c*a,f=s*s-l,d=-s+Math.sqrt(f),new Ec(0,d/c);if(s<0)return c=h.magnitudeSquared(o),new Ec(0,-s/c)};function H0(e,t,n){let i=e+t;return P.sign(e)!==P.sign(t)&&Math.abs(i/Math.max(Math.abs(e),Math.abs(t)))<n?0:i}function vDe(e,t,n,i,o){let r=i*i,s=o*o,a=(e[Q.COLUMN1ROW1]-e[Q.COLUMN2ROW2])*s,c=o*(i*H0(e[Q.COLUMN1ROW0],e[Q.COLUMN0ROW1],P.EPSILON15)+t.y),l=e[Q.COLUMN0ROW0]*r+e[Q.COLUMN2ROW2]*s+i*t.x+n,f=s*H0(e[Q.COLUMN2ROW1],e[Q.COLUMN1ROW2],P.EPSILON15),d=o*(i*H0(e[Q.COLUMN2ROW0],e[Q.COLUMN0ROW2])+t.z),p,g=[];if(d===0&&f===0){if(p=wc.computeRealRoots(a,c,l),p.length===0)return g;let R=p[0],L=Math.sqrt(Math.max(1-R*R,0));if(g.push(new h(i,o*R,o*-L)),g.push(new h(i,o*R,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,A=b+x,C=2*(c*a+T),S=2*l*a+c*c-x+m,w=2*(l*c-T),D=l*l-m;if(A===0&&C===0&&S===0&&w===0)return g;p=HI.computeRealRoots(A,C,S,w,D);let O=p.length;if(O===0)return g;for(let R=0;R<O;++R){let L=p[R],N=L*L,_=Math.max(1-N,0),E=Math.sqrt(_),v;P.sign(a)===P.sign(l)?v=H0(a*N+l,c*L,P.EPSILON12):P.sign(l)===P.sign(c*L)?v=H0(a*N,c*L+l,P.EPSILON12):v=H0(a*N+c*L,l,P.EPSILON12);let I=H0(f*L,d,P.EPSILON15),M=v*I;M<0?g.push(new h(i,o*L,o*E)):M>0?g.push(new h(i,o*L,o*-E)):E!==0?(g.push(new h(i,o*L,o*-E)),g.push(new h(i,o*L,o*E)),++R):g.push(new h(i,o*L,o*E))}return g}var V5=new h,_J=new h,gJ=new h,ak=new h,DDe=new h,IDe=new Q,PDe=new Q,ODe=new Q,RDe=new Q,MDe=new Q,yJ=new Q,xJ=new Q,bJ=new h,LDe=new h,NDe=new fe;nr.grazingAltitudeLocation=function(e,t){let n=e.origin,i=e.direction;if(!h.equals(n,h.ZERO)){let D=t.geodeticSurfaceNormal(n,V5);if(h.dot(i,D)>=0)return n}let o=u(this.rayEllipsoid(e,t)),r=t.transformPositionToScaledSpace(i,V5),s=h.normalize(r,r),a=h.mostOrthogonalAxis(r,ak),c=h.normalize(h.cross(a,s,_J),_J),l=h.normalize(h.cross(s,c,gJ),gJ),f=IDe;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]=l.x,f[7]=l.y,f[8]=l.z;let d=Q.transpose(f,PDe),p=Q.fromScale(t.radii,ODe),g=Q.fromScale(t.oneOverRadii,RDe),m=MDe;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=Q.multiply(Q.multiply(d,g,yJ),m,yJ),b=Q.multiply(Q.multiply(x,p,xJ),f,xJ),T=Q.multiplyByVector(x,n,DDe),A=vDe(b,h.negate(T,V5),0,0,1),C,S,w=A.length;if(w>0){let D=h.clone(h.ZERO,LDe),O=Number.NEGATIVE_INFINITY;for(let L=0;L<w;++L){C=Q.multiplyByVector(p,Q.multiplyByVector(f,A[L],bJ),bJ);let N=h.normalize(h.subtract(C,n,ak),ak),_=h.dot(N,i);_>O&&(O=_,D=h.clone(C,D))}let R=t.cartesianToCartographic(D,NDe);return O=P.clamp(O,0,1),S=h.magnitude(h.subtract(D,n,ak))*Math.sqrt(1-O*O),S=o?-S:S,R.height=S,t.cartographicToCartesian(R,new h)}};var FDe=new h;nr.lineSegmentPlane=function(e,t,n,i){u(i)||(i=new h);let o=h.subtract(t,e,FDe),r=n.normal,s=h.dot(r,o);if(Math.abs(s)<P.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};nr.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,l=0;l+=s?1:0,l+=a?1:0,l+=c?1:0;let f,d;if((l===1||l===2)&&(f=new h,d=new h),l===1){if(s)return nr.lineSegmentPlane(e,t,i,f),nr.lineSegmentPlane(e,n,i,d),{positions:[e,t,n,f,d],indices:[0,3,4,1,2,4,1,4,3]};if(a)return nr.lineSegmentPlane(t,n,i,f),nr.lineSegmentPlane(t,e,i,d),{positions:[e,t,n,f,d],indices:[1,3,4,2,0,4,2,4,3]};if(c)return nr.lineSegmentPlane(n,e,i,f),nr.lineSegmentPlane(n,t,i,d),{positions:[e,t,n,f,d],indices:[2,3,4,0,1,4,0,4,3]}}else if(l===2)if(s)if(a){if(!c)return nr.lineSegmentPlane(e,n,i,f),nr.lineSegmentPlane(t,n,i,d),{positions:[e,t,n,f,d],indices:[0,1,4,0,4,3,2,3,4]}}else return nr.lineSegmentPlane(n,t,i,f),nr.lineSegmentPlane(e,t,i,d),{positions:[e,t,n,f,d],indices:[2,0,4,2,4,3,1,3,4]};else return nr.lineSegmentPlane(t,e,i,f),nr.lineSegmentPlane(n,e,i,d),{positions:[e,t,n,f,d],indices:[1,2,4,1,4,3,0,3,4]}};var xi=nr;var z5=new oe;function Hh(e,t){t=y(t,ie.WGS84),e=t.scaleToGeodeticSurface(e);let n=Rt.eastNorthUpToFixedFrame(e,t);this._ellipsoid=t,this._origin=e,this._xAxis=h.fromCartesian4(F.getColumn(n,0,z5)),this._yAxis=h.fromCartesian4(F.getColumn(n,1,z5));let i=h.fromCartesian4(F.getColumn(n,2,z5));this._plane=en.fromPointNormal(e,i)}Object.defineProperties(Hh.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 BDe=new hg;Hh.fromPoints=function(e,t){let n=hg.fromPoints(e,BDe);return new Hh(n.center,t)};var CJ=new Tn,ck=new h;Hh.prototype.projectPointOntoPlane=function(e,t){let n=CJ;n.origin=e,h.normalize(e,n.direction);let i=xi.rayPlane(n,this._plane,ck);if(u(i)||(h.negate(n.direction,n.direction),i=xi.rayPlane(n,this._plane,ck)),u(i)){let o=h.subtract(i,this._origin,i),r=h.dot(this._xAxis,o),s=h.dot(this._yAxis,o);return u(t)?(t.x=r,t.y=s,t):new z(r,s)}};Hh.prototype.projectPointsOntoPlane=function(e,t){u(t)||(t=[]);let n=0,i=e.length;for(let o=0;o<i;o++){let r=this.projectPointOntoPlane(e[o],t[n]);u(r)&&(t[n]=r,n++)}return t.length=n,t};Hh.prototype.projectPointToNearestOnPlane=function(e,t){u(t)||(t=new z);let n=CJ;n.origin=e,h.clone(this._plane.normal,n.direction);let i=xi.rayPlane(n,this._plane,ck);u(i)||(h.negate(n.direction,n.direction),i=xi.rayPlane(n,this._plane,ck));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};Hh.prototype.projectPointsToNearestOnPlane=function(e,t){u(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 kDe=new h;Hh.prototype.projectPointOntoEllipsoid=function(e,t){u(t)||(t=new h);let n=this._ellipsoid,i=this._origin,o=this._xAxis,r=this._yAxis,s=kDe;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};Hh.prototype.projectPointsOntoEllipsoid=function(e,t){let n=e.length;u(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 Sr=Hh;function Ni(e,t){this.center=h.clone(y(e,h.ZERO)),this.halfAxes=Q.clone(y(t,Q.ZERO))}Ni.packedLength=h.packedLength+Q.packedLength;Ni.pack=function(e,t,n){return n=y(n,0),h.pack(e.center,t,n),Q.pack(e.halfAxes,t,n+h.packedLength),t};Ni.unpack=function(e,t,n){return t=y(t,0),u(n)||(n=new Ni),h.unpack(e,t,n.center),Q.unpack(e,t+h.packedLength,n.halfAxes),n};var UDe=new h,VDe=new h,zDe=new h,HDe=new h,GDe=new h,WDe=new h,jDe=new Q,qDe={unitary:new Q,diagonal:new Q};Ni.fromPoints=function(e,t){if(u(t)||(t=new Ni),!u(e)||e.length===0)return t.halfAxes=Q.ZERO,t.center=h.ZERO,t;let n,i=e.length,o=h.clone(e[0],UDe);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,l=0,f=0,d=0,p;for(n=0;n<i;n++)p=h.subtract(e[n],o,VDe),s+=p.x*p.x,a+=p.x*p.y,c+=p.x*p.z,l+=p.y*p.y,f+=p.y*p.z,d+=p.z*p.z;s*=r,a*=r,c*=r,l*=r,f*=r,d*=r;let g=jDe;g[0]=s,g[1]=a,g[2]=c,g[3]=a,g[4]=l,g[5]=f,g[6]=c,g[7]=f,g[8]=d;let m=Q.computeEigenDecomposition(g,qDe),x=Q.clone(m.unitary,t.halfAxes),b=Q.getColumn(x,0,HDe),T=Q.getColumn(x,1,GDe),A=Q.getColumn(x,2,WDe),C=-Number.MAX_VALUE,S=-Number.MAX_VALUE,w=-Number.MAX_VALUE,D=Number.MAX_VALUE,O=Number.MAX_VALUE,R=Number.MAX_VALUE;for(n=0;n<i;n++)p=e[n],C=Math.max(h.dot(b,p),C),S=Math.max(h.dot(T,p),S),w=Math.max(h.dot(A,p),w),D=Math.min(h.dot(b,p),D),O=Math.min(h.dot(T,p),O),R=Math.min(h.dot(A,p),R);b=h.multiplyByScalar(b,.5*(D+C),b),T=h.multiplyByScalar(T,.5*(O+S),T),A=h.multiplyByScalar(A,.5*(R+w),A);let L=h.add(b,T,t.center);h.add(L,A,L);let N=zDe;return N.x=C-D,N.y=S-O,N.z=w-R,h.multiplyByScalar(N,.5,N),Q.multiplyByScale(t.halfAxes,N,t.halfAxes),t};var IJ=new h,YDe=new h;function EJ(e,t,n,i,o,r,s,a,c,l,f){u(f)||(f=new Ni);let d=f.halfAxes;Q.setColumn(d,0,t,d),Q.setColumn(d,1,n,d),Q.setColumn(d,2,i,d);let p=IJ;p.x=(o+r)/2,p.y=(s+a)/2,p.z=(c+l)/2;let g=YDe;g.x=(r-o)/2,g.y=(a-s)/2,g.z=(l-c)/2;let m=f.center;return p=Q.multiplyByVector(d,p,p),h.add(e,p,m),Q.multiplyByScale(d,g,d),f}var SJ=new fe,XDe=new h,KDe=new fe,ZDe=new fe,$De=new fe,QDe=new fe,JDe=new fe,eIe=new h,wJ=new h,tIe=new h,vJ=new h,nIe=new h,iIe=new z,oIe=new z,rIe=new z,sIe=new z,aIe=new z,cIe=new h,lIe=new h,uIe=new h,fIe=new h,dIe=new z,hIe=new h,mIe=new h,pIe=new h,_Ie=new en(h.UNIT_X,0);Ni.fromRectangle=function(e,t,n,i,o){t=y(t,0),n=y(n,0),i=y(i,ie.WGS84);let r,s,a,c,l,f,d;if(e.width<=P.PI){let O=ce.center(e,SJ),R=i.cartographicToCartesian(O,XDe),L=new Sr(R,i);d=L.plane;let N=O.longitude,_=e.south<0&&e.north>0?0:O.latitude,E=fe.fromRadians(N,e.north,n,KDe),v=fe.fromRadians(e.west,e.north,n,ZDe),I=fe.fromRadians(e.west,_,n,$De),M=fe.fromRadians(e.west,e.south,n,QDe),B=fe.fromRadians(N,e.south,n,JDe),V=i.cartographicToCartesian(E,eIe),U=i.cartographicToCartesian(v,wJ),G=i.cartographicToCartesian(I,tIe),k=i.cartographicToCartesian(M,vJ),Y=i.cartographicToCartesian(B,nIe),j=L.projectPointToNearestOnPlane(V,iIe),$=L.projectPointToNearestOnPlane(U,oIe),W=L.projectPointToNearestOnPlane(G,rIe),K=L.projectPointToNearestOnPlane(k,sIe),Z=L.projectPointToNearestOnPlane(Y,aIe);return r=Math.min($.x,W.x,K.x),s=-r,c=Math.max($.y,j.y),a=Math.min(K.y,Z.y),v.height=M.height=t,U=i.cartographicToCartesian(v,wJ),k=i.cartographicToCartesian(M,vJ),l=Math.min(en.getPointDistance(d,U),en.getPointDistance(d,k)),f=n,EJ(L.origin,L.xAxis,L.yAxis,L.zAxis,r,s,a,c,l,f,o)}let p=e.south>0,g=e.north<0,m=p?e.south:g?e.north:0,x=ce.center(e,SJ).longitude,b=h.fromRadians(x,m,n,i,cIe);b.z=0;let A=Math.abs(b.x)<P.EPSILON10&&Math.abs(b.y)<P.EPSILON10?h.UNIT_X:h.normalize(b,lIe),C=h.UNIT_Z,S=h.cross(A,C,uIe);d=en.fromPointNormal(b,A,_Ie);let w=h.fromRadians(x+P.PI_OVER_TWO,m,n,i,fIe);s=h.dot(en.projectPointOntoPlane(d,w,dIe),S),r=-s,c=h.fromRadians(0,e.north,g?t:n,i,hIe).z,a=h.fromRadians(0,e.south,p?t:n,i,mIe).z;let D=h.fromRadians(e.east,m,n,i,pIe);return l=en.getPointDistance(d,D),f=0,EJ(b,S,C,A,r,s,a,c,l,f,o)};Ni.fromTransformation=function(e,t){return u(t)||(t=new Ni),t.center=F.getTranslation(e,t.center),t.halfAxes=F.getMatrix3(e,t.halfAxes),t.halfAxes=Q.multiplyByScalar(t.halfAxes,.5,t.halfAxes),t};Ni.clone=function(e,t){if(u(e))return u(t)?(h.clone(e.center,t.center),Q.clone(e.halfAxes,t.halfAxes),t):new Ni(e.center,e.halfAxes)};Ni.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[Q.COLUMN0ROW0]+s*o[Q.COLUMN0ROW1]+a*o[Q.COLUMN0ROW2])+Math.abs(r*o[Q.COLUMN1ROW0]+s*o[Q.COLUMN1ROW1]+a*o[Q.COLUMN1ROW2])+Math.abs(r*o[Q.COLUMN2ROW0]+s*o[Q.COLUMN2ROW1]+a*o[Q.COLUMN2ROW2]),l=h.dot(i,n)+t.distance;return l<=-c?Kt.OUTSIDE:l>=c?Kt.INSIDE:Kt.INTERSECTING};var PJ=new h,OJ=new h,RJ=new h,gIe=new h,DJ=new h,yIe=new h;Ni.distanceSquaredTo=function(e,t){let n=h.subtract(t,e.center,IJ),i=e.halfAxes,o=Q.getColumn(i,0,PJ),r=Q.getColumn(i,1,OJ),s=Q.getColumn(i,2,RJ),a=h.magnitude(o),c=h.magnitude(r),l=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,l>0?h.divideByScalar(s,l,s):p=!1;let g=!f+!d+!p,m,x,b;if(g===1){let S=o;m=r,x=s,d?p||(S=s,x=o):(S=r,m=o),b=h.cross(m,x,DJ),S===o?o=b:S===r?r=b:S===s&&(s=b)}else if(g===2){m=o,d?m=r:p&&(m=s);let S=h.UNIT_Y;S.equalsEpsilon(m,P.EPSILON3)&&(S=h.UNIT_X),x=h.cross(m,S,gIe),h.normalize(x,x),b=h.cross(m,x,DJ),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=yIe;T.x=h.dot(n,o),T.y=h.dot(n,r),T.z=h.dot(n,s);let A=0,C;return T.x<-a?(C=T.x+a,A+=C*C):T.x>a&&(C=T.x-a,A+=C*C),T.y<-c?(C=T.y+c,A+=C*C):T.y>c&&(C=T.y-c,A+=C*C),T.z<-l?(C=T.z+l,A+=C*C):T.z>l&&(C=T.z-l,A+=C*C),A};var xIe=new h,bIe=new h;Ni.computePlaneDistances=function(e,t,n,i){u(i)||(i=new Ec);let o=Number.POSITIVE_INFINITY,r=Number.NEGATIVE_INFINITY,s=e.center,a=e.halfAxes,c=Q.getColumn(a,0,PJ),l=Q.getColumn(a,1,OJ),f=Q.getColumn(a,2,RJ),d=h.add(c,l,xIe);h.add(d,f,d),h.add(d,s,d);let p=h.subtract(d,t,bIe),g=h.dot(n,p);return o=Math.min(g,o),r=Math.max(g,r),h.add(s,c,d),h.add(d,l,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,l,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,l,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,l,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,l,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,l,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,l,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 TIe=new h,AIe=new h,CIe=new h;Ni.computeCorners=function(e,t){u(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=Q.getColumn(i,0,TIe),r=Q.getColumn(i,1,AIe),s=Q.getColumn(i,2,CIe);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 EIe=new Q;Ni.computeTransformation=function(e,t){u(t)||(t=new F);let n=e.center,i=Q.multiplyByUniformScale(e.halfAxes,2,EIe);return F.fromRotationTranslation(i,n,t)};var SIe=new se;Ni.isOccluded=function(e,t){let n=se.fromOrientedBoundingBox(e,SIe);return!t.isBoundingSphereVisible(n)};Ni.prototype.intersectPlane=function(e){return Ni.intersectPlane(this,e)};Ni.prototype.distanceSquaredTo=function(e){return Ni.distanceSquaredTo(this,e)};Ni.prototype.computePlaneDistances=function(e,t,n){return Ni.computePlaneDistances(this,e,t,n)};Ni.prototype.computeCorners=function(e){return Ni.computeCorners(this,e)};Ni.prototype.computeTransformation=function(e){return Ni.computeTransformation(this,e)};Ni.prototype.isOccluded=function(e){return Ni.isOccluded(this,e)};Ni.equals=function(e,t){return e===t||u(e)&&u(t)&&h.equals(e.center,t.center)&&Q.equals(e.halfAxes,t.halfAxes)};Ni.prototype.clone=function(e){return Ni.clone(this,e)};Ni.prototype.equals=function(e){return Ni.equals(this,e)};var In=Ni;var lk={};lk.getHeight=function(e,t,n){return(e-n)*t+n};var wIe=new h;lk.getPosition=function(e,t,n,i,o){let r=t.cartesianToCartographic(e,wIe),s=lk.getHeight(r.height,n,i);return h.fromRadians(r.longitude,r.latitude,s,t,o)};var vc=lk;var GI=`in vec3 position3DHigh;
  4017. in vec3 position3DLow;
  4018. in float batchId;
  4019. #ifdef EXTRUDED_GEOMETRY
  4020. in vec3 extrudeDirection;
  4021. uniform float u_globeMinimumAltitude;
  4022. #endif // EXTRUDED_GEOMETRY
  4023. #ifdef PER_INSTANCE_COLOR
  4024. out vec4 v_color;
  4025. #endif // PER_INSTANCE_COLOR
  4026. #ifdef TEXTURE_COORDINATES
  4027. #ifdef SPHERICAL
  4028. out vec4 v_sphericalExtents;
  4029. #else // SPHERICAL
  4030. out vec2 v_inversePlaneExtents;
  4031. out vec4 v_westPlane;
  4032. out vec4 v_southPlane;
  4033. #endif // SPHERICAL
  4034. out vec3 v_uvMinAndSphericalLongitudeRotation;
  4035. out vec3 v_uMaxAndInverseDistance;
  4036. out vec3 v_vMaxAndInverseDistance;
  4037. #endif // TEXTURE_COORDINATES
  4038. void main()
  4039. {
  4040. vec4 position = czm_computePosition();
  4041. #ifdef EXTRUDED_GEOMETRY
  4042. float delta = min(u_globeMinimumAltitude, czm_geometricToleranceOverMeter * length(position.xyz));
  4043. delta *= czm_sceneMode == czm_sceneMode3D ? 1.0 : 0.0;
  4044. //extrudeDirection is zero for the top layer
  4045. position = position + vec4(extrudeDirection * delta, 0.0);
  4046. #endif
  4047. #ifdef TEXTURE_COORDINATES
  4048. #ifdef SPHERICAL
  4049. v_sphericalExtents = czm_batchTable_sphericalExtents(batchId);
  4050. v_uvMinAndSphericalLongitudeRotation.z = czm_batchTable_longitudeRotation(batchId);
  4051. #else // SPHERICAL
  4052. #ifdef COLUMBUS_VIEW_2D
  4053. vec4 planes2D_high = czm_batchTable_planes2D_HIGH(batchId);
  4054. vec4 planes2D_low = czm_batchTable_planes2D_LOW(batchId);
  4055. // If the primitive is split across the IDL (planes2D_high.x > planes2D_high.w):
  4056. // - If this vertex is on the east side of the IDL (position3DLow.y > 0.0, comparison with position3DHigh may produce artifacts)
  4057. // - existing "east" is on the wrong side of the world, far away (planes2D_high/low.w)
  4058. // - so set "east" as beyond the eastmost extent of the projection (idlSplitNewPlaneHiLow)
  4059. 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));
  4060. bool idlSplit = planes2D_high.x > planes2D_high.w && position3DLow.y > 0.0;
  4061. planes2D_high.w = czm_branchFreeTernary(idlSplit, idlSplitNewPlaneHiLow.x, planes2D_high.w);
  4062. planes2D_low.w = czm_branchFreeTernary(idlSplit, idlSplitNewPlaneHiLow.y, planes2D_low.w);
  4063. // - else, if this vertex is on the west side of the IDL (position3DLow.y < 0.0)
  4064. // - existing "west" is on the wrong side of the world, far away (planes2D_high/low.x)
  4065. // - so set "west" as beyond the westmost extent of the projection (idlSplitNewPlaneHiLow)
  4066. idlSplit = planes2D_high.x > planes2D_high.w && position3DLow.y < 0.0;
  4067. idlSplitNewPlaneHiLow = vec2(WEST_MOST_X_HIGH - (EAST_MOST_X_HIGH - planes2D_high.x), WEST_MOST_X_LOW - (EAST_MOST_X_LOW - planes2D_low.x));
  4068. planes2D_high.x = czm_branchFreeTernary(idlSplit, idlSplitNewPlaneHiLow.x, planes2D_high.x);
  4069. planes2D_low.x = czm_branchFreeTernary(idlSplit, idlSplitNewPlaneHiLow.y, planes2D_low.x);
  4070. vec3 southWestCorner = (czm_modelViewRelativeToEye * czm_translateRelativeToEye(vec3(0.0, planes2D_high.xy), vec3(0.0, planes2D_low.xy))).xyz;
  4071. 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;
  4072. 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;
  4073. #else // COLUMBUS_VIEW_2D
  4074. // 3D case has smaller "plane extents," so planes encoded as a 64 bit position and 2 vec3s for distances/direction
  4075. vec3 southWestCorner = (czm_modelViewRelativeToEye * czm_translateRelativeToEye(czm_batchTable_southWest_HIGH(batchId), czm_batchTable_southWest_LOW(batchId))).xyz;
  4076. vec3 northWestCorner = czm_normal * czm_batchTable_northward(batchId) + southWestCorner;
  4077. vec3 southEastCorner = czm_normal * czm_batchTable_eastward(batchId) + southWestCorner;
  4078. #endif // COLUMBUS_VIEW_2D
  4079. vec3 eastWard = southEastCorner - southWestCorner;
  4080. float eastExtent = length(eastWard);
  4081. eastWard /= eastExtent;
  4082. vec3 northWard = northWestCorner - southWestCorner;
  4083. float northExtent = length(northWard);
  4084. northWard /= northExtent;
  4085. v_westPlane = vec4(eastWard, -dot(eastWard, southWestCorner));
  4086. v_southPlane = vec4(northWard, -dot(northWard, southWestCorner));
  4087. v_inversePlaneExtents = vec2(1.0 / eastExtent, 1.0 / northExtent);
  4088. #endif // SPHERICAL
  4089. vec4 uvMinAndExtents = czm_batchTable_uvMinAndExtents(batchId);
  4090. vec4 uMaxVmax = czm_batchTable_uMaxVmax(batchId);
  4091. v_uMaxAndInverseDistance = vec3(uMaxVmax.xy, uvMinAndExtents.z);
  4092. v_vMaxAndInverseDistance = vec3(uMaxVmax.zw, uvMinAndExtents.w);
  4093. v_uvMinAndSphericalLongitudeRotation.xy = uvMinAndExtents.xy;
  4094. #endif // TEXTURE_COORDINATES
  4095. #ifdef PER_INSTANCE_COLOR
  4096. v_color = czm_batchTable_color(batchId);
  4097. #endif
  4098. gl_Position = czm_depthClamp(czm_modelViewProjectionRelativeToEye * position);
  4099. }
  4100. `;var mg=`#ifdef VECTOR_TILE
  4101. uniform vec4 u_highlightColor;
  4102. #endif
  4103. void main(void)
  4104. {
  4105. #ifdef VECTOR_TILE
  4106. out_FragColor = czm_gammaCorrect(u_highlightColor);
  4107. #else
  4108. out_FragColor = vec4(1.0);
  4109. #endif
  4110. czm_writeDepthClamp();
  4111. }
  4112. `;var MJ={TERRAIN:0,CESIUM_3D_TILE:1,BOTH:2};MJ.NUMBER_OF_CLASSIFICATION_TYPES=3;var Vn=Object.freeze(MJ);var vIe={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},ja=Object.freeze(vIe);function DIe(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 WI=DIe;function cp(e,t,n){if(this._attributes=t,this._numberOfInstances=n,t.length===0)return;let i=IIe(t),o=e.floatingPointTexture,r=i===Ye.FLOAT&&!o,s=PIe(t,r),a=OIe(s,t,r),c=Math.floor(Ut.maximumTextureSize/a),l=Math.min(n,c),f=a*l,d=Math.ceil(n/l),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?Ye.UNSIGNED_BYTE:i,this._packFloats=r,this._offsets=s,this._stride=a,this._texture=void 0;let b=4*f*d;this._batchValues=i===Ye.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 IIe(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?Ye.FLOAT:Ye.UNSIGNED_BYTE}function NJ(e,t){let n=e[t].componentsPerAttribute;return n===2?z:n===3?h:n===4?oe:Number}function PIe(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 OIe(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 jI=new oe;function RIe(e,t,n){let i=oe.unpack(e,t,jI),o=oe.unpackFloat(i);i=oe.unpack(e,t+4,jI);let r=oe.unpackFloat(i);i=oe.unpack(e,t+8,jI);let s=oe.unpackFloat(i);i=oe.unpack(e,t+12,jI);let a=oe.unpackFloat(i);return oe.fromElements(o,r,s,a,n)}function MIe(e,t,n){let i=oe.packFloat(e.x,jI);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 LJ=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!==Ye.UNSIGNED_BYTE?a=RIe(this._batchValues,s,LJ):a=oe.unpack(this._batchValues,s,LJ);let c=NJ(i,t);return u(c.fromCartesian4)?c.fromCartesian4(a,n):u(c.clone)?c.clone(a,n):a.x};var LIe=[void 0,void 0,new z,new h,new oe],NIe=new oe;cp.prototype.setBatchedAttribute=function(e,t,n){let i=this._attributes,o=LIe[i[t].componentsPerAttribute],r=this.getBatchedAttribute(e,t,o),s=NJ(this._attributes,t);if(u(s.equals)?s.equals(r,n):r===n)return;let c=NIe;c.x=u(n.x)?n.x:n,c.y=u(n.y)?n.y:0,c.z=u(n.z)?n.z:0,c.w=u(n.w)?n.w:0;let l=this._offsets[t],d=4*this._stride*e+4*l;this._packFloats&&i[t].componentDatatype!==Ye.UNSIGNED_BYTE?MIe(c,this._batchValues,d):oe.pack(c,this._batchValues,d),this._batchValuesDirty=!0};function FIe(e,t){let n=e._textureDimensions;e._texture=new It({context:t,pixelFormat:nt.RGBA,pixelDatatype:e._pixelDatatype,width:n.x,height:n.y,sampler:ln.NEAREST,flipY:!1})}function BIe(e){let t=e._textureDimensions;e._texture.copyFrom({source:{width:t.x,height:t.y,arrayBufferView:e._batchValues}})}cp.prototype.update=function(e){u(this._texture)&&!this._batchValuesDirty||this._attributes.length===0||(this._batchValuesDirty=!1,u(this._texture)||FIe(this,e.context),BIe(this))};cp.prototype.getUniformMapCallback=function(){let e=this;return function(t){return e._attributes.length===0?t:gt(t,{batchTexture:function(){return e._texture},batchTextureDimensions:function(){return e._textureDimensions},batchTextureStep:function(){return e._textureStep}})}};function kIe(e){let t=e._stride;return e._textureDimensions.y===1?`uniform vec4 batchTextureStep;
  4113. vec2 computeSt(float batchId)
  4114. {
  4115. float stepX = batchTextureStep.x;
  4116. float centerX = batchTextureStep.y;
  4117. float numberOfAttributes = float(${t});
  4118. return vec2(centerX + (batchId * numberOfAttributes * stepX), 0.5);
  4119. }
  4120. `:`uniform vec4 batchTextureStep;
  4121. uniform vec2 batchTextureDimensions;
  4122. vec2 computeSt(float batchId)
  4123. {
  4124. float stepX = batchTextureStep.x;
  4125. float centerX = batchTextureStep.y;
  4126. float stepY = batchTextureStep.z;
  4127. float centerY = batchTextureStep.w;
  4128. float numberOfAttributes = float(${t});
  4129. float xId = mod(batchId * numberOfAttributes, batchTextureDimensions.x);
  4130. float yId = floor(batchId * numberOfAttributes / batchTextureDimensions.x);
  4131. return vec2(centerX + (xId * stepX), centerY + (yId * stepY));
  4132. }
  4133. `}function UIe(e){return e===1?"float":`vec${e}`}function VIe(e){return e===1?".x":e===2?".xy":e===3?".xyz":""}function zIe(e,t){let i=e._attributes[t],o=i.componentsPerAttribute,r=i.functionName,s=UIe(o),a=VIe(o),c=e._offsets[t],l=`${s} ${r}(float batchId)
  4134. {
  4135. vec2 st = computeSt(batchId);
  4136. st.x += batchTextureStep.x * float(${c});
  4137. `;return e._packFloats&&i.componentDatatype!==Ye.UNSIGNED_BYTE?l+=`vec4 textureValue;
  4138. textureValue.x = czm_unpackFloat(texture(batchTexture, st));
  4139. textureValue.y = czm_unpackFloat(texture(batchTexture, st + vec2(batchTextureStep.x, 0.0)));
  4140. textureValue.z = czm_unpackFloat(texture(batchTexture, st + vec2(batchTextureStep.x * 2.0, 0.0)));
  4141. textureValue.w = czm_unpackFloat(texture(batchTexture, st + vec2(batchTextureStep.x * 3.0, 0.0)));
  4142. `:l+=` vec4 textureValue = texture(batchTexture, st);
  4143. `,l+=` ${s} value = textureValue${a};
  4144. `,e._pixelDatatype===Ye.UNSIGNED_BYTE&&i.componentDatatype===X.UNSIGNED_BYTE&&!i.normalize?l+=`value *= 255.0;
  4145. `:e._pixelDatatype===Ye.FLOAT&&i.componentDatatype===X.UNSIGNED_BYTE&&i.normalize&&(l+=`value /= 255.0;
  4146. `),l+=` return value;
  4147. }
  4148. `,l}cp.prototype.getVertexShaderCallback=function(){let e=this._attributes;if(e.length===0)return function(i){return i};let t=`uniform highp sampler2D batchTexture;
  4149. `;t+=`${kIe(this)}
  4150. `;let n=e.length;for(let i=0;i<n;++i)t+=zIe(this,i);return function(i){let o=i.indexOf("void main"),r=i.substring(0,o),s=i.substring(o);return`${r}
  4151. ${t}
  4152. ${s}`}};cp.prototype.isDestroyed=function(){return!1};cp.prototype.destroy=function(){return this._texture=this._texture&&this._texture.destroy(),le(this)};var G0=cp;var to={SCALAR:"SCALAR",VEC2:"VEC2",VEC3:"VEC3",VEC4:"VEC4",MAT2:"MAT2",MAT3:"MAT3",MAT4:"MAT4"};to.getMathType=function(e){switch(e){case to.SCALAR:return Number;case to.VEC2:return z;case to.VEC3:return h;case to.VEC4:return oe;case to.MAT2:return Qi;case to.MAT3:return Q;case to.MAT4:return F}};to.getNumberOfComponents=function(e){switch(e){case to.SCALAR:return 1;case to.VEC2:return 2;case to.VEC3:return 3;case to.VEC4:case to.MAT2:return 4;case to.MAT3:return 9;case to.MAT4:return 16}};to.getAttributeLocationCount=function(e){switch(e){case to.SCALAR:case to.VEC2:case to.VEC3:case to.VEC4:return 1;case to.MAT2:return 2;case to.MAT3:return 3;case to.MAT4:return 4}};to.getGlslType=function(e){switch(e){case to.SCALAR:return"float";case to.VEC2:return"vec2";case to.VEC3:return"vec3";case to.VEC4:return"vec4";case to.MAT2:return"mat2";case to.MAT3:return"mat3";case to.MAT4:return"mat4"}};var on=Object.freeze(to);var FJ=1/256,BJ=256,go={};go.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))*P.signNotZero(i),n.y=(1-Math.abs(i))*P.signNotZero(o)}return n.x=P.toSNorm(n.x,t),n.y=P.toSNorm(n.y,t),n};go.octEncode=function(e,t){return go.octEncodeInRange(e,255,t)};var qI=new z,kJ=new Uint8Array(1);function uk(e){return kJ[0]=e,kJ[0]}go.octEncodeToCartesian4=function(e,t){return go.octEncodeInRange(e,65535,qI),t.x=uk(qI.x*FJ),t.y=uk(qI.x),t.z=uk(qI.y*FJ),t.w=uk(qI.y),t};go.octDecodeInRange=function(e,t,n,i){if(i.x=P.fromSNorm(e,n),i.y=P.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))*P.signNotZero(o),i.y=(1-Math.abs(o))*P.signNotZero(i.y)}return h.normalize(i,i)};go.octDecode=function(e,t,n){return go.octDecodeInRange(e,t,255,n)};go.octDecodeFromCartesian4=function(e,t){let n=e.x,i=e.y,o=e.z,r=e.w,s=n*BJ+i,a=o*BJ+r;return go.octDecodeInRange(s,a,65535,t)};go.octPackFloat=function(e){return 256*e.x+e.y};var G5=new z;go.octEncodeFloat=function(e){return go.octEncode(e,G5),go.octPackFloat(G5)};go.octDecodeFloat=function(e,t){let n=e/256,i=Math.floor(n),o=(n-i)*256;return go.octDecode(i,o,t)};go.octPack=function(e,t,n,i){let o=go.octEncodeFloat(e),r=go.octEncodeFloat(t),s=go.octEncode(n,G5);return i.x=65536*s.x+o,i.y=65536*s.y+r,i};go.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;go.octDecodeFloat(s,t),go.octDecodeFloat(c,n),go.octDecode(r,a,i)};go.compressTextureCoordinates=function(e){let t=e.x*4095|0,n=e.y*4095|0;return 4096*t+n};go.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 H5(e){return e>>1^-(e&1)}go.zigZagDeltaDecode=function(e,t,n){let i=e.length,o=0,r=0,s=0;for(let a=0;a<i;++a)o+=H5(e[a]),r+=H5(t[a]),e[a]=o,t[a]=r,u(n)&&(s+=H5(n[a]),n[a]=s)};go.dequantize=function(e,t,n,i){let o=on.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 l=a*o+c;s[l]=Math.max(e[l]/r,-1)}return s};go.decodeRGB565=function(e,t){let n=e.length;u(t)||(t=new Float32Array(n*3));let i=32-1,o=64-1,r=1/31,s=1/63;for(let a=0;a<n;a++){let c=e[a],l=c>>11,f=c>>5&o,d=c&i,p=3*a;t[p]=l*r,t[p+1]=f*s,t[p+2]=d*r}return t};var qn=go;var UJ=new h,VJ=new h,zJ=new h;function HIe(e,t,n,i,o){u(o)||(o=new h);let r,s,a,c,l,f,d,p;if(u(t.z)){if(h.equalsEpsilon(e,t,P.EPSILON14))return h.clone(h.UNIT_X,o);if(h.equalsEpsilon(e,n,P.EPSILON14))return h.clone(h.UNIT_Y,o);if(h.equalsEpsilon(e,i,P.EPSILON14))return h.clone(h.UNIT_Z,o);r=h.subtract(n,t,UJ),s=h.subtract(i,t,VJ),a=h.subtract(e,t,zJ),c=h.dot(r,r),l=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,P.EPSILON14))return h.clone(h.UNIT_X,o);if(z.equalsEpsilon(e,n,P.EPSILON14))return h.clone(h.UNIT_Y,o);if(z.equalsEpsilon(e,i,P.EPSILON14))return h.clone(h.UNIT_Z,o);r=z.subtract(n,t,UJ),s=z.subtract(i,t,VJ),a=z.subtract(e,t,zJ),c=z.dot(r,r),l=z.dot(r,s),f=z.dot(r,a),d=z.dot(s,s),p=z.dot(s,a)}o.y=d*f-l*p,o.z=c*p-l*f;let g=c*d-l*l;if(g!==0)return o.y/=g,o.z/=g,o.x=1-o.y-o.z,o}var W0=HIe;var W5={};W5.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(!u(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)};W5.tipsify=function(e){e=y(e,y.EMPTY_OBJECT);let t=e.indices,n=e.maximumIndex,i=y(e.cacheSize,24),o;function r(_,E,v,I){for(;E.length>=1;){let M=E[E.length-1];if(E.splice(E.length-1,1),_[M].numLiveTriangles>0)return M}for(;o<I;){if(_[o].numLiveTriangles>0)return++o,o-1;++o}return-1}function s(_,E,v,I,M,B,V){let U=-1,G,k=-1,Y=0;for(;Y<v.length;){let j=v[Y];I[j].numLiveTriangles&&(G=0,M-I[j].timeStamp+2*I[j].numLiveTriangles<=E&&(G=M-I[j].timeStamp),(G>k||k===-1)&&(k=G,U=j)),++Y}return U===-1?r(I,B,_,V):U}let a=t.length,c=0,l=0,f=t[l],d=a;if(u(n))c=n+1;else{for(;l<d;)f>c&&(c=f),++l,f=t[l];if(c===-1)return 0;++c}let p=[],g;for(g=0;g<c;g++)p[g]={numLiveTriangles:0,timeStamp:0,vertexTriangles:[]};l=0;let m=0;for(;l<d;)p[t[l]].vertexTriangles.push(m),++p[t[l]].numLiveTriangles,p[t[l+1]].vertexTriangles.push(m),++p[t[l+1]].numLiveTriangles,p[t[l+2]].vertexTriangles.push(m),++p[t[l+2]].numLiveTriangles,++m,l+=3;let x=0,b=i+1;o=1;let T=[],A=[],C,S,w=0,D=[],O=a/3,R=[];for(g=0;g<O;g++)R[g]=!1;let L,N;for(;x!==-1;){T=[],S=p[x],N=S.vertexTriangles.length;for(let _=0;_<N;++_)if(m=S.vertexTriangles[_],!R[m]){R[m]=!0,l=m+m+m;for(let E=0;E<3;++E)L=t[l],T.push(L),A.push(L),D[w]=L,++w,C=p[L],--C.numLiveTriangles,b-C.timeStamp>i&&(C.timeStamp=b,++b),++l}x=s(t,i,T,p,b,A,c)}return D};var YI=W5;var Dc={};function gk(e,t,n,i,o){e[t++]=n,e[t++]=i,e[t++]=i,e[t++]=o,e[t++]=o,e[t]=n}function GIe(e){let t=e.length,n=t/3*6,i=Fe.createTypedArray(t,n),o=0;for(let r=0;r<t;r+=3,o+=6)gk(i,o,e[r],e[r+1],e[r+2]);return i}function WIe(e){let t=e.length;if(t>=3){let n=(t-2)*6,i=Fe.createTypedArray(t,n);gk(i,0,e[0],e[1],e[2]);let o=6;for(let r=3;r<t;++r,o+=6)gk(i,o,e[r-1],e[r],e[r-2]);return i}return new Uint16Array}function jIe(e){if(e.length>0){let t=e.length-1,n=(t-1)*6,i=Fe.createTypedArray(t,n),o=e[0],r=0;for(let s=1;s<t;++s,r+=6)gk(i,r,o,e[s],e[s+1]);return i}return new Uint16Array}Dc.toWireframe=function(e){let t=e.indices;if(u(t)){switch(e.primitiveType){case Me.TRIANGLES:e.indices=GIe(t);break;case Me.TRIANGLE_STRIP:e.indices=WIe(t);break;case Me.TRIANGLE_FAN:e.indices=jIe(t);break}e.primitiveType=Me.LINES}return e};Dc.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,l=e.boundingSphere;return u(l)&&(c=new se(l.center,l.radius+n)),new st({attributes:{position:new we({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:s})},primitiveType:Me.LINES,boundingSphere:c})};Dc.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];u(n[a])&&(i[a]=o++)}for(let a in n)n.hasOwnProperty(a)&&!u(i[a])&&(i[a]=o++);return i};Dc.reorderForPreVertexCache=function(e){let t=st.computeNumberOfVertices(e),n=e.indices;if(u(n)){let i=new Int32Array(t);for(let p=0;p<t;p++)i[p]=-1;let o=n,r=o.length,s=Fe.createTypedArray(t,r),a=0,c=0,l=0,f;for(;a<r;)f=i[o[a]],f!==-1?s[c]=f:(f=o[a],i[f]=l,s[c]=l,++l),++a,++c;e.indices=s;let d=e.attributes;for(let p in d)if(d.hasOwnProperty(p)&&u(d[p])&&u(d[p].values)){let g=d[p],m=g.values,x=0,b=g.componentsPerAttribute,T=X.createTypedArray(g.componentDatatype,l*b);for(;x<t;){let A=i[x];if(A!==-1)for(let C=0;C<b;C++)T[b*A+C]=m[b*x+C];++x}g.values=T}}return e};Dc.reorderForPostVertexCache=function(e,t){let n=e.indices;if(e.primitiveType===Me.TRIANGLES&&u(n)){let i=n.length,o=0;for(let r=0;r<i;r++)n[r]>o&&(o=n[r]);e.indices=YI.tipsify({indices:n,maximumIndex:o,cacheSize:t})}return e};function HJ(e){let t={};for(let n in e)if(e.hasOwnProperty(n)&&u(e[n])&&u(e[n].values)){let i=e[n];t[n]=new we({componentDatatype:i.componentDatatype,componentsPerAttribute:i.componentsPerAttribute,normalize:i.normalize,values:[]})}return t}function qIe(e,t,n){for(let i in t)if(t.hasOwnProperty(i)&&u(t[i])&&u(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])}}Dc.fitToUnsignedShortIndices=function(e){let t=[],n=st.computeNumberOfVertices(e);if(u(e.indices)&&n>=P.SIXTY_FOUR_KILOBYTES){let i=[],o=[],r=0,s=HJ(e.attributes),a=e.indices,c=a.length,l;e.primitiveType===Me.TRIANGLES?l=3:e.primitiveType===Me.LINES?l=2:e.primitiveType===Me.POINTS&&(l=1);for(let f=0;f<c;f+=l){for(let d=0;d<l;++d){let p=a[f+d],g=i[p];u(g)||(g=r++,i[p]=g,qIe(s,e.attributes,p)),o.push(g)}r+l>=P.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=HJ(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 GJ=new h,YIe=new fe;Dc.projectTo2D=function(e,t,n,i,o){let r=e.attributes[t];o=u(o)?o:new wi;let s=o.ellipsoid,a=r.values,c=new Float64Array(a.length),l=0;for(let f=0;f<a.length;f+=3){let d=h.fromArray(a,f,GJ),p=s.cartesianToCartographic(d,YIe),g=o.project(p,GJ);c[l++]=g.x,c[l++]=g.y,c[l++]=g.z}return e.attributes[n]=r,e.attributes[i]=new we({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:c}),delete e.attributes[t],e};var j5={high:0,low:0};Dc.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)jn.encode(r[f],j5),a[f]=j5.high,c[f]=j5.low;let l=o.componentsPerAttribute;return e.attributes[n]=new we({componentDatatype:X.FLOAT,componentsPerAttribute:l,values:a}),e.attributes[i]=new we({componentDatatype:X.FLOAT,componentsPerAttribute:l,values:c}),delete e.attributes[t],e};var md=new h;function q5(e,t){if(u(t)){let n=t.values,i=n.length;for(let o=0;o<i;o+=3)h.unpack(n,o,md),F.multiplyByPoint(e,md,md),h.pack(md,n,o)}}function Y5(e,t){if(u(t)){let n=t.values,i=n.length;for(let o=0;o<i;o+=3)h.unpack(n,o,md),Q.multiplyByVector(e,md,md),md=h.normalize(md,md),h.pack(md,n,o)}}var fk=new F,dk=new Q;Dc.transformToWorldCoordinates=function(e){let t=e.modelMatrix;if(F.equals(t,F.IDENTITY))return e;let n=e.geometry.attributes;q5(t,n.position),q5(t,n.prevPosition),q5(t,n.nextPosition),(u(n.normal)||u(n.tangent)||u(n.bitangent))&&(F.inverse(t,fk),F.transpose(fk,fk),F.getMatrix3(fk,dk),Y5(dk,n.normal),Y5(dk,n.tangent),Y5(dk,n.bitangent));let i=e.geometry.boundingSphere;return u(i)&&(e.geometry.boundingSphere=se.transform(i,t,i)),e.modelMatrix=F.clone(F.IDENTITY),e};function XIe(e,t){let n=e.length,i={},o=e[0][t].attributes,r;for(r in o)if(o.hasOwnProperty(r)&&u(o[r])&&u(o[r].values)){let s=o[r],a=s.values.length,c=!0;for(let l=1;l<n;++l){let f=e[l][t].attributes[r];if(!u(f)||s.componentDatatype!==f.componentDatatype||s.componentsPerAttribute!==f.componentsPerAttribute||s.normalize!==f.normalize){c=!1;break}a+=f.values.length}c&&(i[r]=new we({componentDatatype:s.componentDatatype,componentsPerAttribute:s.componentsPerAttribute,normalize:s.normalize,values:X.createTypedArray(s.componentDatatype,a)}))}return i}var KIe=new h;function X5(e,t){let n=e.length,i,o,r,s,a=e[0].modelMatrix,c=u(e[0][t].indices),l=e[0][t].primitiveType,f=XIe(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 A=0;for(o=0;o<n;++o)A+=e[o][t].indices.length;let C=st.computeNumberOfVertices(new st({attributes:f,primitiveType:Me.POINTS})),S=Fe.createTypedArray(C,A),w=0,D=0;for(o=0;o<n;++o){let O=e[o][t].indices,R=O.length;for(s=0;s<R;++s)S[w++]=D+O[s];D+=st.computeNumberOfVertices(e[o][t])}m=S}let x=new h,b=0,T;for(o=0;o<n;++o){if(T=e[o][t].boundingSphere,!u(T)){x=void 0;break}h.add(T.center,x,x)}if(u(x))for(h.divideByScalar(x,n,x),o=0;o<n;++o){T=e[o][t].boundingSphere;let A=h.magnitude(h.subtract(T.center,x,KIe))+T.radius;A>b&&(b=A)}return new st({attributes:f,indices:m,primitiveType:l,boundingSphere:u(x)?new se(x,b):void 0})}Dc.combineInstances=function(e){let t=[],n=[],i=e.length;for(let r=0;r<i;++r){let s=e[r];u(s.geometry)?t.push(s):u(s.westHemisphereGeometry)&&u(s.eastHemisphereGeometry)&&n.push(s)}let o=[];return t.length>0&&o.push(X5(t,"geometry")),n.length>0&&(o.push(X5(n,"westHemisphereGeometry")),o.push(X5(n,"eastHemisphereGeometry"))),o};var Ju=new h,XI=new h,pA=new h,_A=new h;Dc.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),l;for(l=0;l<o;l++)s[l]={indexOffset:0,count:0,currentCount:0};let f=0;for(l=0;l<r;l+=3){let m=t[l],x=t[l+1],b=t[l+2],T=m*3,A=x*3,C=b*3;XI.x=i[T],XI.y=i[T+1],XI.z=i[T+2],pA.x=i[A],pA.y=i[A+1],pA.z=i[A+2],_A.x=i[C],_A.y=i[C+1],_A.z=i[C+2],s[m].count++,s[x].count++,s[b].count++,h.subtract(pA,XI,pA),h.subtract(_A,XI,_A),a[f]=h.cross(pA,_A,new h),f++}let d=0;for(l=0;l<o;l++)s[l].indexOffset+=d,d+=s[l].count;f=0;let p;for(l=0;l<r;l+=3){p=s[t[l]];let m=p.indexOffset+p.currentCount;c[m]=f,p.currentCount++,p=s[t[l+1]],m=p.indexOffset+p.currentCount,c[m]=f,p.currentCount++,p=s[t[l+2]],m=p.indexOffset+p.currentCount,c[m]=f,p.currentCount++,f++}let g=new Float32Array(o*3);for(l=0;l<o;l++){let m=l*3;if(p=s[l],h.clone(h.ZERO,Ju),p.count>0){for(f=0;f<p.count;f++)h.add(Ju,a[c[p.indexOffset+f]],Ju);h.equalsEpsilon(h.ZERO,Ju,P.EPSILON10)&&h.clone(a[c[p.indexOffset]],Ju)}h.equalsEpsilon(h.ZERO,Ju,P.EPSILON10)&&(Ju.z=1),h.normalize(Ju,Ju),g[m]=Ju.x,g[m+1]=Ju.y,g[m+2]=Ju.z}return e.attributes.normal=new we({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:g}),e};var ZIe=new h,WJ=new h,$Ie=new h;Dc.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),l;for(l=0;l<c.length;l++)c[l]=0;let f,d,p;for(l=0;l<a;l+=3){let x=n[l],b=n[l+1],T=n[l+2];f=x*3,d=b*3,p=T*3;let A=x*2,C=b*2,S=T*2,w=i[f],D=i[f+1],O=i[f+2],R=r[A],L=r[A+1],N=r[C+1]-L,_=r[S+1]-L,E=1/((r[C]-R)*_-(r[S]-R)*N),v=(_*(i[d]-w)-N*(i[p]-w))*E,I=(_*(i[d+1]-D)-N*(i[p+1]-D))*E,M=(_*(i[d+2]-O)-N*(i[p+2]-O))*E;c[f]+=v,c[f+1]+=I,c[f+2]+=M,c[d]+=v,c[d+1]+=I,c[d+2]+=M,c[p]+=v,c[p+1]+=I,c[p+2]+=M}let g=new Float32Array(s*3),m=new Float32Array(s*3);for(l=0;l<s;l++){f=l*3,d=f+1,p=f+2;let x=h.fromArray(o,f,ZIe),b=h.fromArray(c,f,$Ie),T=h.dot(x,b);h.multiplyByScalar(x,T,WJ),h.normalize(h.subtract(b,WJ,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 we({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:g}),e.attributes.bitangent=new we({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:m}),e};var KI=new z,hd=new h,jJ=new h,qJ=new h,hk=new z;Dc.compressVertices=function(e){let t=e.attributes.extrudeDirection,n,i;if(u(t)){let D=t.values;i=D.length/3;let O=new Float32Array(i*2),R=0;for(n=0;n<i;++n){if(h.fromArray(D,n*3,hd),h.equals(hd,h.ZERO)){R+=2;continue}hk=qn.octEncodeInRange(hd,65535,hk),O[R++]=hk.x,O[R++]=hk.y}return e.attributes.compressedAttributes=new we({componentDatatype:X.FLOAT,componentsPerAttribute:2,values:O}),delete e.attributes.extrudeDirection,e}let o=e.attributes.normal,r=e.attributes.st,s=u(o),a=u(r);if(!s&&!a)return e;let c=e.attributes.tangent,l=e.attributes.bitangent,f=u(c),d=u(l),p,g,m,x;s&&(p=o.values),a&&(g=r.values),f&&(m=c.values),d&&(x=l.values),i=(s?p.length:g.length)/(s?3:2);let A=i,C=a&&s?2:1;C+=f||d?1:0,A*=C;let S=new Float32Array(A),w=0;for(n=0;n<i;++n){a&&(z.fromArray(g,n*2,KI),S[w++]=qn.compressTextureCoordinates(KI));let D=n*3;s&&u(m)&&u(x)?(h.fromArray(p,D,hd),h.fromArray(m,D,jJ),h.fromArray(x,D,qJ),qn.octPack(hd,jJ,qJ,KI),S[w++]=KI.x,S[w++]=KI.y):(s&&(h.fromArray(p,D,hd),S[w++]=qn.octEncodeFloat(hd)),f&&(h.fromArray(m,D,hd),S[w++]=qn.octEncodeFloat(hd)),d&&(h.fromArray(x,D,hd),S[w++]=qn.octEncodeFloat(hd)))}return e.attributes.compressedAttributes=new we({componentDatatype:X.FLOAT,componentsPerAttribute:C,values:S}),s&&delete e.attributes.normal,a&&delete e.attributes.st,d&&delete e.attributes.bitangent,f&&delete e.attributes.tangent,e};function QIe(e){if(u(e.indices))return e;let t=st.computeNumberOfVertices(e),n=Fe.createTypedArray(t,t);for(let i=0;i<t;++i)n[i]=i;return e.indices=n,e}function JIe(e){let t=st.computeNumberOfVertices(e),n=Fe.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=Me.TRIANGLES,e}function ePe(e){let t=st.computeNumberOfVertices(e),n=Fe.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=Me.TRIANGLES,e}function tPe(e){if(u(e.indices))return e;let t=st.computeNumberOfVertices(e),n=Fe.createTypedArray(t,t);for(let i=0;i<t;++i)n[i]=i;return e.indices=n,e}function nPe(e){let t=st.computeNumberOfVertices(e),n=Fe.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=Me.LINES,e}function iPe(e){let t=st.computeNumberOfVertices(e),n=Fe.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=Me.LINES,e}function oPe(e){switch(e.primitiveType){case Me.TRIANGLE_FAN:return JIe(e);case Me.TRIANGLE_STRIP:return ePe(e);case Me.TRIANGLES:return QIe(e);case Me.LINE_STRIP:return nPe(e);case Me.LINE_LOOP:return iPe(e);case Me.LINES:return tPe(e)}return e}function pg(e,t){Math.abs(e.y)<P.EPSILON6&&(t?e.y=-P.EPSILON6:e.y=P.EPSILON6)}function rPe(e,t,n){if(e.y!==0&&t.y!==0&&n.y!==0){pg(e,e.y<0),pg(t,t.y<0),pg(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=P.sign(e.y):s=P.sign(n.y):o>r?s=P.sign(t.y):s=P.sign(n.y);let a=s<0;pg(e,a),pg(t,a),pg(n,a)}var YJ=new h;function ef(e,t,n,i){h.add(e,h.multiplyByScalar(h.subtract(t,e,YJ),e.y/(e.y-t.y),YJ),n),h.clone(n,i),pg(n,!0),pg(i,!1)}var j0=new h,q0=new h,Y0=new h,X0=new h,K5={positions:new Array(7),indices:new Array(3*3)};function sPe(e,t,n){if(e.x>=0||t.x>=0||n.x>=0)return;rPe(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=K5.indices;s===1?(a[1]=3,a[2]=4,a[5]=6,a[7]=6,a[8]=5,i?(ef(e,t,j0,Y0),ef(e,n,q0,X0),a[0]=0,a[3]=1,a[4]=2,a[6]=1):o?(ef(t,n,j0,Y0),ef(t,e,q0,X0),a[0]=1,a[3]=2,a[4]=0,a[6]=2):r&&(ef(n,e,j0,Y0),ef(n,t,q0,X0),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||(ef(n,e,j0,Y0),ef(n,t,q0,X0),a[0]=0,a[1]=1,a[3]=0,a[6]=2):(ef(t,n,j0,Y0),ef(t,e,q0,X0),a[0]=2,a[1]=0,a[3]=2,a[6]=1):(ef(e,t,j0,Y0),ef(e,n,q0,X0),a[0]=1,a[1]=2,a[3]=1,a[6]=0));let c=K5.positions;return c[0]=e,c[1]=t,c[2]=n,c.length=3,(s===1||s===2)&&(c[3]=j0,c[4]=q0,c[5]=Y0,c[6]=X0,c.length=7),K5}function XJ(e,t){let n=e.attributes;if(n.position.values.length===0)return;for(let o in n)if(n.hasOwnProperty(o)&&u(n[o])&&u(n[o].values)){let r=n[o];r.values=X.createTypedArray(r.componentDatatype,r.values)}let i=st.computeNumberOfVertices(e);return e.indices=Fe.createTypedArray(i,e.indices),t&&(e.boundingSphere=se.fromVertices(n.position.values)),e}function yA(e){let t=e.attributes,n={};for(let i in t)if(t.hasOwnProperty(i)&&u(t[i])&&u(t[i].values)){let o=t[i];n[i]=new we({componentDatatype:o.componentDatatype,componentsPerAttribute:o.componentsPerAttribute,normalize:o.normalize,values:[]})}return new st({attributes:n,indices:[],primitiveType:e.primitiveType})}function J5(e,t,n){let i=u(e.geometry.boundingSphere);t=XJ(t,i),n=XJ(n,i),u(n)&&!u(t)?e.geometry=n:!u(n)&&u(t)?e.geometry=t:(e.westHemisphereGeometry=t,e.eastHemisphereGeometry=n,e.geometry=void 0)}function eG(e,t){let n=new e,i=new e,o=new e;return function(r,s,a,c,l,f,d,p){let g=e.fromArray(l,r*t,n),m=e.fromArray(l,s*t,i),x=e.fromArray(l,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 aPe=eG(oe,4),_k=eG(h,3),eee=eG(z,2),cPe=function(e,t,n,i,o,r,s){let a=o[e]*i.x,c=o[t]*i.y,l=o[n]*i.z;r[s]=a+c+l>P.EPSILON6?1:0},ZI=new h,Z5=new h,$5=new h,lPe=new h;function mk(e,t,n,i,o,r,s,a,c,l,f,d,p,g,m,x){if(!u(r)&&!u(s)&&!u(a)&&!u(c)&&!u(l)&&g===0)return;let b=h.fromArray(o,e*3,ZI),T=h.fromArray(o,t*3,Z5),A=h.fromArray(o,n*3,$5),C=W0(i,b,T,A,lPe);if(u(C)){if(u(r)&&_k(e,t,n,C,r,d.normal.values,x,!0),u(l)){let S=h.fromArray(l,e*3,ZI),w=h.fromArray(l,t*3,Z5),D=h.fromArray(l,n*3,$5);h.multiplyByScalar(S,C.x,S),h.multiplyByScalar(w,C.y,w),h.multiplyByScalar(D,C.z,D);let O;!h.equals(S,h.ZERO)||!h.equals(w,h.ZERO)||!h.equals(D,h.ZERO)?(O=h.add(S,w,S),h.add(O,D,O),h.normalize(O,O)):(O=ZI,O.x=0,O.y=0,O.z=0),h.pack(O,d.extrudeDirection.values,x*3)}if(u(f)&&cPe(e,t,n,C,f,d.applyOffset.values,x),u(s)&&_k(e,t,n,C,s,d.tangent.values,x,!0),u(a)&&_k(e,t,n,C,a,d.bitangent.values,x,!0),u(c)&&eee(e,t,n,C,c,d.st.values,x),g>0)for(let S=0;S<g;S++){let w=p[S];uPe(e,t,n,C,x,m[w],d[w])}}}function uPe(e,t,n,i,o,r,s){let a=r.componentsPerAttribute,c=r.values,l=s.values;switch(a){case 4:aPe(e,t,n,i,c,l,o,!1);break;case 3:_k(e,t,n,i,c,l,o,!1);break;case 2:eee(e,t,n,i,c,l,o,!1);break;default:l[o]=c[e]*i.x+c[t]*i.y+c[n]*i.z}}function Gh(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 fPe={position:!0,normal:!0,bitangent:!0,tangent:!0,st:!0,extrudeDirection:!0,applyOffset:!0};function KJ(e){let t=e.geometry,n=t.attributes,i=n.position.values,o=u(n.normal)?n.normal.values:void 0,r=u(n.bitangent)?n.bitangent.values:void 0,s=u(n.tangent)?n.tangent.values:void 0,a=u(n.st)?n.st.values:void 0,c=u(n.extrudeDirection)?n.extrudeDirection.values:void 0,l=u(n.applyOffset)?n.applyOffset.values:void 0,f=t.indices,d=[];for(let O in n)n.hasOwnProperty(O)&&!fPe[O]&&u(n[O])&&d.push(O);let p=d.length,g=yA(t),m=yA(t),x,b,T,A,C,S=[];S.length=i.length/3;let w=[];for(w.length=i.length/3,C=0;C<S.length;++C)S[C]=-1,w[C]=-1;let D=f.length;for(C=0;C<D;C+=3){let O=f[C],R=f[C+1],L=f[C+2],N=h.fromArray(i,O*3),_=h.fromArray(i,R*3),E=h.fromArray(i,L*3),v=sPe(N,_,E);if(u(v)&&v.positions.length>3){let I=v.positions,M=v.indices,B=M.length;for(let V=0;V<B;++V){let U=M[V],G=I[U];G.y<0?(x=m.attributes,b=m.indices,T=S):(x=g.attributes,b=g.indices,T=w),A=Gh(x,b,T,f,U<3?C+U:-1,G),mk(O,R,L,G,i,o,s,r,a,c,l,x,d,p,n,A)}}else u(v)&&(N=v.positions[0],_=v.positions[1],E=v.positions[2]),N.y<0?(x=m.attributes,b=m.indices,T=S):(x=g.attributes,b=g.indices,T=w),A=Gh(x,b,T,f,C,N),mk(O,R,L,N,i,o,s,r,a,c,l,x,d,p,n,A),A=Gh(x,b,T,f,C+1,_),mk(O,R,L,_,i,o,s,r,a,c,l,x,d,p,n,A),A=Gh(x,b,T,f,C+2,E),mk(O,R,L,E,i,o,s,r,a,c,l,x,d,p,n,A)}J5(e,m,g)}var tee=en.fromPointNormal(h.ZERO,h.UNIT_Y),dPe=new h,hPe=new h;function gA(e,t,n,i,o,r,s){if(!u(s))return;let a=h.fromArray(i,e*3,ZI);h.equalsEpsilon(a,n,P.EPSILON10)?r.applyOffset.values[o]=s[e]:r.applyOffset.values[o]=s[t]}function ZJ(e){let t=e.geometry,n=t.attributes,i=n.position.values,o=u(n.applyOffset)?n.applyOffset.values:void 0,r=t.indices,s=yA(t),a=yA(t),c,l=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<l;c+=2){let p=r[c],g=r[c+1],m=h.fromArray(i,p*3,ZI),x=h.fromArray(i,g*3,Z5),b;Math.abs(m.y)<P.EPSILON6&&(m.y<0?m.y=-P.EPSILON6:m.y=P.EPSILON6),Math.abs(x.y)<P.EPSILON6&&(x.y<0?x.y=-P.EPSILON6:x.y=P.EPSILON6);let T=s.attributes,A=s.indices,C=d,S=a.attributes,w=a.indices,D=f,O=xi.lineSegmentPlane(m,x,tee,$5);if(u(O)){let R=h.multiplyByScalar(h.UNIT_Y,5*P.EPSILON9,dPe);m.y<0&&(h.negate(R,R),T=a.attributes,A=a.indices,C=f,S=s.attributes,w=s.indices,D=d);let L=h.add(O,R,hPe);b=Gh(T,A,C,r,c,m),gA(p,g,m,i,b,T,o),b=Gh(T,A,C,r,-1,L),gA(p,g,L,i,b,T,o),h.negate(R,R),h.add(O,R,L),b=Gh(S,w,D,r,-1,L),gA(p,g,L,i,b,S,o),b=Gh(S,w,D,r,c+1,x),gA(p,g,x,i,b,S,o)}else{let R,L,N;m.y<0?(R=a.attributes,L=a.indices,N=f):(R=s.attributes,L=s.indices,N=d),b=Gh(R,L,N,r,c,m),gA(p,g,m,i,b,R,o),b=Gh(R,L,N,r,c+1,x),gA(p,g,x,i,b,R,o)}}J5(e,a,s)}var $J=new z,mPe=new z,nee=new h,iee=new h,Q5=new h,pPe=new h,_Pe=new h,gPe=new h,QJ=new oe;function JJ(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,nee);if(a.x>0)continue;let c=h.unpack(i,s,iee);(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 l=h.unpack(o,s,Q5);(a.y<0&&l.y>0||a.y>0&&l.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 yPe=5*P.EPSILON9,pk=P.EPSILON6;function xPe(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=u(n.st)?n.st.values:void 0,c=u(n.color)?n.color.values:void 0,l=yA(t),f=yA(t),d,p,g,m=!1,x=i.length/3;for(d=0;d<x;d+=4){let b=d,T=d+2,A=h.fromArray(i,b*3,nee),C=h.fromArray(i,T*3,iee);if(Math.abs(A.y)<pk)for(A.y=pk*(C.y<0?-1:1),i[d*3+1]=A.y,i[(d+1)*3+1]=A.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(C.y)<pk)for(C.y=pk*(A.y<0?-1:1),i[(d+2)*3+1]=C.y,i[(d+3)*3+1]=C.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 S=l.attributes,w=l.indices,D=f.attributes,O=f.indices,R=xi.lineSegmentPlane(A,C,tee,pPe);if(u(R)){m=!0;let L=h.multiplyByScalar(h.UNIT_Y,yPe,_Pe);A.y<0&&(h.negate(L,L),S=f.attributes,w=f.indices,D=l.attributes,O=l.indices);let N=h.add(R,L,gPe);S.position.values.push(A.x,A.y,A.z,A.x,A.y,A.z),S.position.values.push(N.x,N.y,N.z),S.position.values.push(N.x,N.y,N.z),S.prevPosition.values.push(o[b*3],o[b*3+1],o[b*3+2]),S.prevPosition.values.push(o[b*3+3],o[b*3+4],o[b*3+5]),S.prevPosition.values.push(A.x,A.y,A.z,A.x,A.y,A.z),S.nextPosition.values.push(N.x,N.y,N.z),S.nextPosition.values.push(N.x,N.y,N.z),S.nextPosition.values.push(N.x,N.y,N.z),S.nextPosition.values.push(N.x,N.y,N.z),h.negate(L,L),h.add(R,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(C.x,C.y,C.z,C.x,C.y,C.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(C.x,C.y,C.z,C.x,C.y,C.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,$J),E=Math.abs(_.y);S.expandAndWidth.values.push(-1,E,1,E),S.expandAndWidth.values.push(-1,-E,1,-E),D.expandAndWidth.values.push(-1,E,1,E),D.expandAndWidth.values.push(-1,-E,1,-E);let v=h.magnitudeSquared(h.subtract(R,A,Q5));if(v/=h.magnitudeSquared(h.subtract(C,A,Q5)),u(c)){let I=oe.fromArray(c,b*4,QJ),M=oe.fromArray(c,T*4,QJ),B=P.lerp(I.x,M.x,v),V=P.lerp(I.y,M.y,v),U=P.lerp(I.z,M.z,v),G=P.lerp(I.w,M.w,v);for(p=b*4;p<b*4+2*4;++p)S.color.values.push(c[p]);for(S.color.values.push(B,V,U,G),S.color.values.push(B,V,U,G),D.color.values.push(B,V,U,G),D.color.values.push(B,V,U,G),p=T*4;p<T*4+2*4;++p)D.color.values.push(c[p])}if(u(a)){let I=z.fromArray(a,b*2,$J),M=z.fromArray(a,(d+3)*2,mPe),B=P.lerp(I.x,M.x,v);for(p=b*2;p<b*2+2*2;++p)S.st.values.push(a[p]);for(S.st.values.push(B,I.y),S.st.values.push(B,M.y),D.st.values.push(B,I.y),D.st.values.push(B,M.y),p=T*2;p<T*2+2*2;++p)D.st.values.push(a[p])}g=S.position.values.length/3-4,w.push(g,g+2,g+1),w.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(A.y<0?(L=f.attributes,N=f.indices):(L=l.attributes,N=l.indices),L.position.values.push(A.x,A.y,A.z),L.position.values.push(A.x,A.y,A.z),L.position.values.push(C.x,C.y,C.z),L.position.values.push(C.x,C.y,C.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]),u(a)&&L.st.values.push(a[p]);if(u(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&&(JJ(f),JJ(l)),J5(e,f,l)}Dc.splitLongitude=function(e){let t=e.geometry,n=t.boundingSphere;if(u(n)&&(n.center.x-n.radius>0||se.intersectPlane(n,en.ORIGIN_ZX_PLANE)!==Kt.INTERSECTING))return e;if(t.geometryType!==Ku.NONE)switch(t.geometryType){case Ku.POLYLINES:xPe(e);break;case Ku.TRIANGLES:KJ(e);break;case Ku.LINES:ZJ(e);break}else oPe(t),t.primitiveType===Me.TRIANGLES?KJ(e):t.primitiveType===Me.LINES&&ZJ(e);return e};var Nn=Dc;function ml(e){this._ellipsoid=y(e,ie.WGS84),this._semimajorAxis=this._ellipsoid.maximumRadius,this._oneOverSemimajorAxis=1/this._semimajorAxis}Object.defineProperties(ml.prototype,{ellipsoid:{get:function(){return this._ellipsoid}}});ml.mercatorAngleToGeodeticLatitude=function(e){return P.PI_OVER_TWO-2*Math.atan(Math.exp(-e))};ml.geodeticLatitudeToMercatorAngle=function(e){e>ml.MaximumLatitude?e=ml.MaximumLatitude:e<-ml.MaximumLatitude&&(e=-ml.MaximumLatitude);let t=Math.sin(e);return .5*Math.log((1+t)/(1-t))};ml.MaximumLatitude=ml.mercatorAngleToGeodeticLatitude(Math.PI);ml.prototype.project=function(e,t){let n=this._semimajorAxis,i=e.longitude*n,o=ml.geodeticLatitudeToMercatorAngle(e.latitude)*n,r=e.height;return u(t)?(t.x=i,t.y=o,t.z=r,t):new h(i,o,r)};ml.prototype.unproject=function(e,t){let n=this._oneOverSemimajorAxis,i=e.x*n,o=ml.mercatorAngleToGeodeticLatitude(e.y*n),r=e.z;return u(t)?(t.longitude=i,t.latitude=o,t.height=r,t):new fe(i,o,r)};var Di=ml;function bPe(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)u(e[r].geometry)&&Nn.transformToWorldCoordinates(e[r]);else F.multiplyTransformation(t,e[0].modelMatrix,t)}function tG(e,t){let n=e.attributes,i=n.position,o=i.values.length/i.componentsPerAttribute;n.batchId=new we({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 TPe(e){let t=e.length;for(let n=0;n<t;++n){let i=e[n];u(i.geometry)?tG(i.geometry,n):u(i.westHemisphereGeometry)&&u(i.eastHemisphereGeometry)&&(tG(i.westHemisphereGeometry,n),tG(i.eastHemisphereGeometry,n))}}function APe(e){let t=e.instances,n=e.projection,i=e.elementIndexUintSupported,o=e.scene3DOnly,r=e.vertexCacheOptimize,s=e.compressVertices,a=e.modelMatrix,c,l,f,d=t.length;for(c=0;c<d;++c)if(u(t[c].geometry)){f=t[c].geometry.primitiveType;break}if(bPe(t,a,o),!o)for(c=0;c<d;++c)u(t[c].geometry)&&Nn.splitLongitude(t[c]);if(TPe(t),r)for(c=0;c<d;++c){let g=t[c];u(g.geometry)?(Nn.reorderForPostVertexCache(g.geometry),Nn.reorderForPreVertexCache(g.geometry)):u(g.westHemisphereGeometry)&&u(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){l=p[c];let g=l.attributes;if(o)for(let m in g)g.hasOwnProperty(m)&&g[m].componentDatatype===X.DOUBLE&&Nn.encodeAttribute(l,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(l,m,x,b,n),u(l.boundingSphere)&&m==="position"&&(l.boundingSphereCV=se.fromVertices(l.attributes.position2D.values)),Nn.encodeAttribute(l,x,`${x}High`,`${x}Low`),Nn.encodeAttribute(l,b,`${b}High`,`${b}Low`)}s&&Nn.compressVertices(l)}if(!i){let g=[];for(d=p.length,c=0;c<d;++c)l=p[c],g=g.concat(Nn.fitToUnsignedShortIndices(l));p=g}return p}function nG(e,t,n,i){let o,r,s,a=i.length-1;if(a>=0){let l=i[a];o=l.offset+l.count,s=l.index,r=n[s].indices.length}else o=0,s=0,r=n[s].indices.length;let c=e.length;for(let l=0;l<c;++l){let d=e[l][t];if(!u(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 CPe(e,t){let n=[];return nG(e,"geometry",t,n),nG(e,"westHemisphereGeometry",t,n),nG(e,"eastHemisphereGeometry",t,n),n}var lp={};lp.combineGeometry=function(e){let t,n,i=e.instances,o=i.length,r,s,a=!1;o>0&&(t=APe(e),t.length>0&&(n=Nn.createAttributeLocations(t[0]),e.createPickOffsets&&(r=CPe(i,t))),u(i[0].attributes)&&u(i[0].attributes.offset)&&(s=new Array(o),a=!0));let c=new Array(o),l=new Array(o);for(let f=0;f<o;++f){let d=i[f],p=d.geometry;u(p)&&(c[f]=p.boundingSphere,l[f]=p.boundingSphereCV,a&&(s[f]=d.geometry.offsetAttribute));let g=d.eastHemisphereGeometry,m=d.westHemisphereGeometry;u(g)&&u(m)&&(u(g.boundingSphere)&&u(m.boundingSphere)&&(c[f]=se.union(g.boundingSphere,m.boundingSphere)),u(g.boundingSphereCV)&&u(m.boundingSphereCV)&&(l[f]=se.union(g.boundingSphereCV,m.boundingSphereCV)))}return{geometries:t,modelMatrix:e.modelMatrix,attributeLocations:n,pickOffsets:r,offsetInstanceExtend:s,boundingSpheres:c,boundingSpheresCV:l}};function EPe(e,t){let n=e.attributes;for(let i in n)if(n.hasOwnProperty(i)){let o=n[i];u(o)&&u(o.values)&&t.push(o.values.buffer)}u(e.indices)&&t.push(e.indices.buffer)}function SPe(e,t){let n=e.length;for(let i=0;i<n;++i)EPe(e[i],t)}function wPe(e){let t=1,n=e.length;for(let i=0;i<n;i++){let o=e[i];if(++t,!u(o))continue;let r=o.attributes;t+=7+2*se.packedLength+(u(o.indices)?o.indices.length:0);for(let s in r)if(r.hasOwnProperty(s)&&u(r[s])){let a=r[s];t+=5+a.values.length}}return t}lp.packCreateGeometryResults=function(e,t){let n=new Float64Array(wPe(e)),i=[],o={},r=e.length,s=0;n[s++]=r;for(let a=0;a<r;a++){let c=e[a],l=u(c);if(n[s++]=l?1:0,!l)continue;n[s++]=c.primitiveType,n[s++]=c.geometryType,n[s++]=y(c.offsetAttribute,-1);let f=u(c.boundingSphere)?1:0;n[s++]=f,f&&se.pack(c.boundingSphere,n,s),s+=se.packedLength;let d=u(c.boundingSphereCV)?1:0;n[s++]=d,d&&se.pack(c.boundingSphereCV,n,s),s+=se.packedLength;let p=c.attributes,g=[];for(let x in p)p.hasOwnProperty(x)&&u(p[x])&&(g.push(x),u(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=u(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}};lp.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++],l=n[s++],f=n[s++];f===-1&&(f=void 0);let d,p;n[s++]===1&&(d=se.unpack(n,s)),s+=se.packedLength,n[s++]===1&&(p=se.unpack(n,s)),s+=se.packedLength;let x,b,T,A=new fn,C=n[s++];for(i=0;i<C;i++){let w=t[n[s++]],D=n[s++];T=n[s++];let O=n[s++]!==0;x=n[s++],b=X.createTypedArray(D,x);for(let R=0;R<x;R++)b[R]=n[s++];A[w]=new we({componentDatatype:D,componentsPerAttribute:T,normalize:O,values:b})}let S;if(x=n[s++],x>0){let w=b.length/T;for(S=Fe.createTypedArray(w,x),i=0;i<x;i++)S[i]=n[s++]}o[r++]=new st({primitiveType:c,geometryType:l,boundingSphere:d,boundingSphereCV:p,indices:S,attributes:A,offsetAttribute:f})}return o};function vPe(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,u(s.attributes)&&u(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 DPe(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,u(t[o])&&(s={offset:new Yi(t[o],t[o+1],t[o+2])}),o+=3,n[i++]={modelMatrix:r,attributes:s}}return n}lp.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:vPe(e.instances,t),ellipsoid:e.ellipsoid,isGeographic:e.projection instanceof wi,elementIndexUintSupported:e.elementIndexUintSupported,scene3DOnly:e.scene3DOnly,vertexCacheOptimize:e.vertexCacheOptimize,compressVertices:e.compressVertices,modelMatrix:e.modelMatrix,createPickOffsets:e.createPickOffsets}};lp.unpackCombineGeometryParameters=function(e){let t=DPe(e.packedInstances),n=e.createGeometryResults,i=n.length,o=0;for(let a=0;a<i;a++){let c=lp.unpackCreateGeometryResults(n[a]),l=c.length;for(let f=0;f<l;f++){let d=c[f],p=t[o];p.geometry=d,++o}}let r=ie.clone(e.ellipsoid),s=e.isGeographic?new wi(r):new Di(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 oee(e){let t=e.length,n=1+(se.packedLength+1)*t,i=new Float32Array(n),o=0;i[o++]=t;for(let r=0;r<t;++r){let s=e[r];u(s)?(i[o++]=1,se.pack(e[r],i,o)):i[o++]=0,o+=se.packedLength}return i}function ree(e){let t=new Array(e[0]),n=0,i=1;for(;i<e.length;)e[i++]===1&&(t[n]=se.unpack(e,i)),++n,i+=se.packedLength;return t}lp.packCombineGeometryResults=function(e,t){u(e.geometries)&&SPe(e.geometries,t);let n=oee(e.boundingSpheres),i=oee(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}};lp.unpackCombineGeometryResults=function(e){return{geometries:e.geometries,attributeLocations:e.attributeLocations,modelMatrix:e.modelMatrix,pickOffsets:e.pickOffsets,offsetInstanceExtend:e.offsetInstanceExtend,boundingSpheres:ree(e.boundingSpheres),boundingSpheresCV:ree(e.boundingSpheresCV)}};var K0=lp;var IPe={READY:0,CREATING:1,CREATED:2,COMBINING:3,COMBINED:4,COMPLETE:5,FAILED:6},gr=Object.freeze(IPe);var eu={DISABLED:0,ENABLED:1,CAST_ONLY:2,RECEIVE_ONLY:3};eu.NUMBER_OF_SHADOW_MODES=4;eu.castShadows=function(e){return e===eu.ENABLED||e===eu.CAST_ONLY};eu.receiveShadows=function(e){return e===eu.ENABLED||e===eu.RECEIVE_ONLY};eu.fromCastReceive=function(e,t){return e&&t?eu.ENABLED:e?eu.CAST_ONLY:t?eu.RECEIVE_ONLY:eu.DISABLED};var yn=Object.freeze(eu);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 PPe(e){let t=e.length,n=[],i=e[0].attributes,o;for(o in i)if(i.hasOwnProperty(o)&&u(i[o])){let r=i[o],s=!0;for(let a=1;a<t;++a){let c=e[a].attributes[o];if(!u(c)||r.componentDatatype!==c.componentDatatype||r.componentsPerAttribute!==c.componentsPerAttribute||r.normalize!==c.normalize){s=!1;break}}s&&n.push(o)}return n}var OPe=new z,RPe=new h,mee=new oe;function pee(e){let t=e.length;if(t===1)return e[0];if(t===2)return z.unpack(e,0,OPe);if(t===3)return h.unpack(e,0,RPe);if(t===4)return oe.unpack(e,0,mee)}function MPe(e,t){let n=e.geometryInstances,i=Array.isArray(n)?n:[n],o=i.length;if(o===0)return;let r=PPe(i),s=r.length,a=[],c={},l={},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}),l.center3DHigh=a.length-5,l.center3DLow=a.length-4,l.center2DHigh=a.length-3,l.center2DLow=a.length-2,l.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 G0(t,a,o);for(g=0;g<o;++g){let A=i[g];p=A.attributes;for(let O=0;O<s;++O){m=r[O],x=p[m];let R=pee(x.value),L=c[m];T.setBatchedAttribute(g,L,R)}let C={primitive:y(A.pickPrimitive,e)};u(A.id)&&(C.id=A.id);let S=t.createPickId(C);e._pickIds.push(S);let w=S.color,D=mee;D.x=H.floatToByte(w.red),D.y=H.floatToByte(w.green),D.z=H.floatToByte(w.blue),D.w=H.floatToByte(w.alpha),T.setBatchedAttribute(g,b-1,D)}e._batchTable=T,e._batchTableAttributeIndices=c,e._batchTableBoundingSphereAttributeIndices=l,e._batchTableOffsetAttribute2DIndex=f}function LPe(e){let t;return Array.isArray(e.values)?t=e.values.slice(0):t=new e.values.constructor(e.values),new we({componentDatatype:e.componentDatatype,componentsPerAttribute:e.componentsPerAttribute,normalize:e.normalize,values:t})}function NPe(e){let t=e.attributes,n=new fn;for(let o in t)t.hasOwnProperty(o)&&u(t[o])&&(n[o]=LPe(t[o]));let i;if(u(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:se.clone(e.boundingSphere)})}function FPe(e,t){return{geometry:t,attributes:e.attributes,modelMatrix:F.clone(e.modelMatrix),pickPrimitive:e.pickPrimitive,id:e.id}}var BPe=/in\s+vec(?:3|4)\s+(.*)3DHigh;/g;yr._modifyShaderPosition=function(e,t,n){let i,o="",r="",s="";for(;(i=BPe.exec(t))!==null;){let a=i[1],c=`vec4 czm_compute${a[0].toUpperCase()}${a.substr(1)}()`;c!=="vec4 czm_computePosition()"&&(o+=`${c};
  4153. `),u(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;
  4154. `,r+=`in vec4 position;
  4155. `,s+=`${c}
  4156. {
  4157. return u_modifiedModelView * position;
  4158. }
  4159. `,t=t.replace(/czm_modelViewRelativeToEye\s+\*\s+/g,""),t=t.replace(/czm_modelViewProjectionRelativeToEye/g,"czm_projection")):n?s+=`${c}
  4160. {
  4161. return czm_translateRelativeToEye(${a}3DHigh, ${a}3DLow);
  4162. }
  4163. `:(r+=`in vec3 ${a}2DHigh;
  4164. in vec3 ${a}2DLow;
  4165. `,s+=`${c}
  4166. {
  4167. vec4 p;
  4168. if (czm_morphTime == 1.0)
  4169. {
  4170. p = czm_translateRelativeToEye(${a}3DHigh, ${a}3DLow);
  4171. }
  4172. else if (czm_morphTime == 0.0)
  4173. {
  4174. p = czm_translateRelativeToEye(${a}2DHigh.zxy, ${a}2DLow.zxy);
  4175. }
  4176. else
  4177. {
  4178. p = czm_columbusViewMorph(
  4179. czm_translateRelativeToEye(${a}2DHigh.zxy, ${a}2DLow.zxy),
  4180. czm_translateRelativeToEye(${a}3DHigh, ${a}3DLow),
  4181. czm_morphTime);
  4182. }
  4183. return p;
  4184. }
  4185. `)}return[o,r,t,s].join(`
  4186. `)};yr._appendShowToShader=function(e,t){return u(e._batchTableAttributeIndices.show)?`${Ue.replaceMain(t,"czm_non_show_main")}
  4187. void main()
  4188. {
  4189. czm_non_show_main();
  4190. gl_Position *= czm_batchTable_show(batchId);
  4191. }`:t};yr._updateColorAttribute=function(e,t,n){if(!u(e._batchTableAttributeIndices.color)&&!u(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 see(e){return`${Ue.replaceMain(e,"czm_non_pick_main")}
  4192. out vec4 v_pickColor;
  4193. void main()
  4194. {
  4195. czm_non_pick_main();
  4196. v_pickColor = czm_batchTable_pickColor(batchId);
  4197. }`}function aee(e){return`in vec4 v_pickColor;
  4198. ${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(!u(e._batchTableAttributeIndices.offset))return t;let n=`in float batchId;
  4199. `;n+="in float applyOffset;";let i=t.replace(/in\s+float\s+batchId;/g,n),o=`vec4 $1 = czm_computePosition();
  4200. `;return o+=` if (czm_sceneMode == czm_sceneMode3D)
  4201. `,o+=` {
  4202. `,o+=" $1 = $1 + vec4(czm_batchTable_offset(batchId) * applyOffset, 0.0);",o+=` }
  4203. `,o+=` else
  4204. `,o+=` {
  4205. `,o+=" $1 = $1 + vec4(czm_batchTable_offset2D(batchId) * applyOffset, 0.0);",o+=` }
  4206. `,i=i.replace(/vec4\s+([A-Za-z0-9_]+)\s+=\s+czm_computePosition\(\);/g,o),i};yr._appendDistanceDisplayConditionToShader=function(e,t,n){if(!u(e._batchTableAttributeIndices.distanceDisplayCondition))return t;let i=Ue.replaceMain(t,"czm_non_distanceDisplayCondition_main"),o=`void main()
  4207. {
  4208. czm_non_distanceDisplayCondition_main();
  4209. vec2 distanceDisplayCondition = czm_batchTable_distanceDisplayCondition(batchId);
  4210. vec3 boundingSphereCenter3DHigh = czm_batchTable_boundingSphereCenter3DHigh(batchId);
  4211. vec3 boundingSphereCenter3DLow = czm_batchTable_boundingSphereCenter3DLow(batchId);
  4212. float boundingSphereRadius = czm_batchTable_boundingSphereRadius(batchId);
  4213. `;return n?o+=` vec4 centerRTE = czm_translateRelativeToEye(boundingSphereCenter3DHigh, boundingSphereCenter3DLow);
  4214. `:o+=` vec3 boundingSphereCenter2DHigh = czm_batchTable_boundingSphereCenter2DHigh(batchId);
  4215. vec3 boundingSphereCenter2DLow = czm_batchTable_boundingSphereCenter2DLow(batchId);
  4216. vec4 centerRTE;
  4217. if (czm_morphTime == 1.0)
  4218. {
  4219. centerRTE = czm_translateRelativeToEye(boundingSphereCenter3DHigh, boundingSphereCenter3DLow);
  4220. }
  4221. else if (czm_morphTime == 0.0)
  4222. {
  4223. centerRTE = czm_translateRelativeToEye(boundingSphereCenter2DHigh.zxy, boundingSphereCenter2DLow.zxy);
  4224. }
  4225. else
  4226. {
  4227. centerRTE = czm_columbusViewMorph(
  4228. czm_translateRelativeToEye(boundingSphereCenter2DHigh.zxy, boundingSphereCenter2DLow.zxy),
  4229. czm_translateRelativeToEye(boundingSphereCenter3DHigh, boundingSphereCenter3DLow),
  4230. czm_morphTime);
  4231. }
  4232. `,o+=` float radiusSq = boundingSphereRadius * boundingSphereRadius;
  4233. float distanceSq;
  4234. if (czm_sceneMode == czm_sceneMode2D)
  4235. {
  4236. distanceSq = czm_eyeHeight2D.y - radiusSq;
  4237. }
  4238. else
  4239. {
  4240. distanceSq = dot(centerRTE.xyz, centerRTE.xyz) - radiusSq;
  4241. }
  4242. distanceSq = max(distanceSq, 0.0);
  4243. float nearSq = distanceDisplayCondition.x * distanceDisplayCondition.x;
  4244. float farSq = distanceDisplayCondition.y * distanceDisplayCondition.y;
  4245. float show = (distanceSq >= nearSq && distanceSq <= farSq) ? 1.0 : 0.0;
  4246. gl_Position *= show;
  4247. }`,`${i}
  4248. ${o}`};function cee(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",l=`in ${a} ${c};`,f="",d="";if(i){f+=`vec2 st;
  4249. `;let m=s>1?`${c}.x`:c;d+=` st = czm_decompressTextureCoordinates(${m});
  4250. `}n&&o&&r?(f+=`vec3 normal;
  4251. vec3 tangent;
  4252. vec3 bitangent;
  4253. `,d+=` czm_octDecode(${c}.${i?"yz":"xy"}, normal, tangent, bitangent);
  4254. `):(n&&(f+=`vec3 normal;
  4255. `,d+=` normal = czm_octDecode(${c}${s>1?`.${i?"y":"x"}`:""});
  4256. `),o&&(f+=`vec3 tangent;
  4257. `,d+=` tangent = czm_octDecode(${c}.${i&&n?"z":"y"});
  4258. `),r&&(f+=`vec3 bitangent;
  4259. `,d+=` bitangent = czm_octDecode(${c}.${i&&n?"z":"y"});
  4260. `));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=Ue.replaceMain(p,"czm_non_compressed_main");let g=`void main()
  4261. {
  4262. ${d} czm_non_compressed_main();
  4263. }`;return[l,f,p,g].join(`
  4264. `)}function kPe(e){let t=Ue.replaceMain(e,"czm_non_depth_clamp_main");return t+=`void main() {
  4265. czm_non_depth_clamp_main();
  4266. gl_Position = czm_depthClamp(gl_Position);}
  4267. `,t}function UPe(e){let t=Ue.replaceMain(e,"czm_non_depth_clamp_main");return t+=`void main() {
  4268. czm_non_depth_clamp_main();
  4269. #if defined(LOG_DEPTH)
  4270. czm_writeLogDepth();
  4271. #else
  4272. czm_writeDepthClamp();
  4273. #endif
  4274. }
  4275. `,t}function lee(e,t){let n=e.vertexAttributes}function VPe(e,t){return function(){return e[t]}}var iG=Math.max(Bt.hardwareConcurrency-1,1),yk,zPe=new hi("combineGeometry");function HPe(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=[],l=[];for(o=0;o<a;++o)i=n[o].geometry,s.push(n[o].id),l.push({moduleName:i._workerName,geometry:i});if(!u(yk))for(yk=new Array(iG),o=0;o<iG;o++)yk[o]=new hi("createGeometry");let f;for(l=WI(l,iG),o=0;o<l.length;o++){let d=0,p=l[o],g=p.length;for(r=0;r<g;++r)f=p[r],i=f.geometry,u(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,u(i.constructor.pack)&&(i.constructor.pack(i,x,f.offset),f.geometry=x)}c.push(yk[o].scheduleTask({subTasks:l[o]},m))}e._state=gr.CREATING,Promise.all(c).then(function(d){e._createGeometryResults=d,e._state=gr.CREATED}).catch(function(d){QI(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,l=t.mapProjection,f=zPe.scheduleTask(K0.packCombineGeometryParameters({createGeometryResults:e._createGeometryResults,instances:n,ellipsoid:l.ellipsoid,projection:l,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=K0.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,u(e._geometries)&&e._geometries.length>0?(e._recomputeBoundingSpheres=!0,e._state=gr.COMBINED):QI(e,t,gr.FAILED,void 0)}).catch(function(d){QI(e,t,gr.FAILED,d)})}}function GPe(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;u(p.attributes)&&u(p.primitiveType)?g=NPe(p):g=p.constructor.createGeometry(p),o[c++]=FPe(s,g),r.push(s.id)}o.length=c;let l=t.scene3DOnly,f=t.mapProjection,d=K0.combineGeometry({instances:o,ellipsoid:f.ellipsoid,projection:f,elementIndexUintSupported:t.context.elementIndexUint,scene3DOnly:l,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,u(e._geometries)&&e._geometries.length>0?(e._recomputeBoundingSpheres=!0,e._state=gr.COMBINED):QI(e,t,gr.FAILED,void 0)}function WPe(e,t){let n=e._batchTableAttributeIndices.offset;if(!e._recomputeBoundingSpheres||!u(n)){e._recomputeBoundingSpheres=!1;return}let i,o=e._offsetInstanceExtend,r=e._instanceBoundingSpheres,s=r.length,a=e._tempBoundingSpheres;if(!u(a)){for(a=new Array(s),i=0;i<s;i++)a[i]=new se;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),xee(x,b,o[i])}let c=[],l=[],f=[];for(i=0;i<s;++i){let x=a[i];x.center.x-x.radius>0||se.intersectPlane(x,en.ORIGIN_ZX_PLANE)!==Kt.INTERSECTING?c.push(x):(l.push(x),f.push(x))}let d=c[0],p=f[0],g=l[0];for(i=1;i<c.length;i++)d=se.union(d,c[i]);for(i=1;i<f.length;i++)p=se.union(p,f[i]);for(i=1;i<l.length;i++)g=se.union(g,l[i]);let m=[];for(u(d)&&m.push(d),u(p)&&m.push(p),u(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]=se.projectTo2D(x,t.mapProjection,e._boundingSphereCV[i])}yr._updateBoundingVolumes(e,t,e.modelMatrix,!0),e._recomputeBoundingSpheres=!1}var uee=new jn,_ee=new fe,gee=new h,yee=new se;function jPe(e,t){if(!u(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,l=t.mapProjection,f=l.ellipsoid,d=e._batchTable,p=e._instanceBoundingSpheres,g=p.length;for(let m=0;m<g;++m){let x=p[m];if(!u(x))continue;let b=e.modelMatrix;u(b)&&(x=se.transform(x,b,yee));let T=x.center,A=x.radius,C=jn.fromCartesian(T,uee);if(d.setBatchedAttribute(m,o,C.high),d.setBatchedAttribute(m,r,C.low),!t.scene3DOnly){let S=f.cartesianToCartographic(T,_ee),w=l.project(S,gee);C=jn.fromCartesian(w,uee),d.setBatchedAttribute(m,s,C.high),d.setBatchedAttribute(m,a,C.low)}d.setBatchedAttribute(m,c,A)}e._batchTableBoundingSpheresUpdated=!0}var oG=new h,qPe=new h;function fee(e,t){if(!u(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 l=0;l<c;++l){let f=a[l];if(!u(f))continue;let d=s.getBatchedAttribute(l,e._batchTableAttributeIndices.offset);if(h.equals(d,h.ZERO)){s.setBatchedAttribute(l,i,h.ZERO);continue}let p=e.modelMatrix;u(p)&&(f=se.transform(f,p,yee));let g=f.center;g=r.scaleToGeodeticSurface(g,qPe);let m=r.cartesianToCartographic(g,_ee),x=o.project(m,gee),b=h.add(d,g,oG);m=r.cartesianToCartographic(b,m);let T=o.project(m,oG),A=h.subtract(T,x,oG),C=A.x;A.x=A.z,A.z=A.y,A.y=C,s.setBatchedAttribute(l,i,A)}e._batchTableOffsetsUpdated=!0}function YPe(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 l=i[c];if(s.push(ni.fromGeometry({context:r,geometry:l,attributeLocations:n,bufferUsage:Ne.STATIC_DRAW,interleave:e._interleave})),u(e._createBoundingVolumeFunction))e._createBoundingVolumeFunction(t,l);else if(e._boundingSpheres.push(se.clone(l.boundingSphere)),e._boundingSphereWC.push(new se),!o){let f=l.boundingSphereCV.center,d=f.x,p=f.y,g=f.z;f.x=g,f.y=d,f.z=p,e._boundingSphereCV.push(se.clone(l.boundingSphereCV)),e._boundingSphere2D.push(new se),e._boundingSphereMorph.push(new se)}}e._va=s,e._primitiveType=i[0].primitiveType,e.releaseGeometryInstances&&(e.geometryInstances=void 0),e._geometries=void 0,QI(e,t,gr.COMPLETE,void 0)}function XPe(e,t,n,i){let o=n.getRenderState(),r;i?(r=He(o,!1),r.cull={enabled:!0,face:pi.BACK},e._frontFaceRS=ke.fromCache(r),r.cull.face=pi.FRONT,e._backFaceRS=ke.fromCache(r)):(e._frontFaceRS=ke.fromCache(o),e._backFaceRS=e._frontFaceRS),r=He(o,!1),u(e._depthFailAppearance)&&(r.depthTest.enabled=!1),u(e._depthFailAppearance)&&(o=e._depthFailAppearance.getRenderState(),r=He(o,!1),r.depthTest.func=ja.GREATER,i?(r.cull={enabled:!0,face:pi.BACK},e._frontFaceDepthFailRS=ke.fromCache(r),r.cull.face=pi.FRONT,e._backFaceDepthFailRS=ke.fromCache(r)):(e._frontFaceDepthFailRS=ke.fromCache(r),e._backFaceDepthFailRS=e._frontFaceRS))}function KPe(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=see(r),r=yr._updateColorAttribute(e,r,!1),r=cee(e,r),r=yr._modifyShaderPosition(e,r,t.scene3DOnly);let s=n.getFragmentShaderSource();s=aee(s),e._sp=Yt.replaceCache({context:i,shaderProgram:e._sp,vertexShaderSource:r,fragmentShaderSource:s,attributeLocations:o}),lee(e._sp,o),u(e._depthFailAppearance)&&(r=e._batchTable.getVertexShaderCallback()(e._depthFailAppearance.vertexShaderSource),r=yr._appendShowToShader(e,r),r=yr._appendDistanceDisplayConditionToShader(e,r,t.scene3DOnly),r=see(r),r=yr._updateColorAttribute(e,r,!0),r=cee(e,r),r=yr._modifyShaderPosition(e,r,t.scene3DOnly),r=kPe(r),s=e._depthFailAppearance.getFragmentShaderSource(),s=aee(s),s=UPe(s),e._spDepthFail=Yt.replaceCache({context:i,shaderProgram:e._spDepthFail,vertexShaderSource:r,fragmentShaderSource:s,attributeLocations:o}),lee(e._spDepthFail,o))}var $I=new F,dee=new h;function hee(e,t,n,i){let o=u(n)?n._uniforms:void 0,r={},s=t.uniforms;if(u(s))for(let c in s)s.hasOwnProperty(c)&&(r[c]=VPe(s,c));let a=gt(r,o);return a=e._batchTable.getUniformMapCallback()(a),u(e.rtcCenter)&&(a.u_modifiedModelView=function(){let c=i.context.uniformState.view;return F.multiply(c,e._modelMatrix,$I),F.multiplyByPoint($I,e.rtcCenter,dee),F.setTranslation($I,dee,$I),$I}),a}function ZPe(e,t,n,i,o,r,s,a){let c=hee(e,t,n,a),l;u(e._depthFailAppearance)&&(l=hee(e,e._depthFailAppearance,e._depthFailAppearance.material,a));let f=i?Ee.TRANSLUCENT:Ee.OPAQUE,d=o?2:1;d*=u(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],u(x)||(x=r[m]=new Je({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],u(x)||(x=r[m]=new Je({owner:e,primitiveType:e._primitiveType})),x.vertexArray=e._va[g],x.renderState=e._frontFaceRS,x.shaderProgram=e._sp,x.uniformMap=c,x.pass=f,u(e._depthFailAppearance)&&(o&&(++m,x=r[m],u(x)||(x=r[m]=new Je({owner:e,primitiveType:e._primitiveType})),x.vertexArray=e._va[g],x.renderState=e._backFaceDepthFailRS,x.shaderProgram=e._spDepthFail,x.uniformMap=l,x.pass=f),++m,x=r[m],u(x)||(x=r[m]=new Je({owner:e,primitiveType:e._primitiveType})),x.vertexArray=e._va[g],x.renderState=e._frontFaceDepthFailRS,x.shaderProgram=e._spDepthFail,x.uniformMap=l,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],u(s)&&(e._boundingSphereWC[o]=se.transform(s,n,e._boundingSphereWC[o]),t.scene3DOnly||(e._boundingSphere2D[o]=se.clone(e._boundingSphereCV[o],e._boundingSphere2D[o]),e._boundingSphere2D[o].center.x=0,e._boundingSphereMorph[o]=se.union(e._boundingSphereWC[o],e._boundingSphereCV[o])));let a=e.appearance.pixelSize;if(u(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 $Pe(e,t,n,i,o,r,s,a){yr._updateBoundingVolumes(e,t,o);let c;t.mode===te.SCENE3D?c=e._boundingSphereWC:t.mode===te.COLUMBUS_VIEW?c=e._boundingSphereCV:t.mode===te.SCENE2D&&u(e._boundingSphere2D)?c=e._boundingSphere2D:u(e._boundingSphereMorph)&&(c=e._boundingSphereMorph);let l=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*=u(e._depthFailAppearance)?2:1;for(let b=0;b<m;++b){let T=Math.floor(b/x),A=n[b];A.modelMatrix=o,A.boundingVolume=c[T],A.cull=r,A.debugShowBoundingVolume=s,A.castShadows=p,A.receiveShadows=g,d?A.pickId="v_pickColor":A.pickId=void 0,l.push(A)}}}yr.prototype.update=function(e){if(!u(this.geometryInstances)&&this._va.length===0||u(this.geometryInstances)&&Array.isArray(this.geometryInstances)&&this.geometryInstances.length===0||!u(this.appearance)||e.mode!==te.SCENE3D&&e.scene3DOnly||!e.passes.render&&!e.passes.pick)return;if(u(this._error))throw this._error;if(this._state===gr.FAILED)return;let t=e.context;if(u(this._batchTable)||MPe(this,t),this._batchTable.attributes.length>0){if(Ut.maximumVertexTextureImageUnits===0)throw new ue("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?HPe(this,e):GPe(this,e)),this._state===gr.COMBINED&&(jPe(this,e),fee(this,e),YPe(this,e)),!this.show||this._state!==gr.COMPLETE)return;this._batchTableOffsetsUpdated||fee(this,e),this._recomputeBoundingSpheres&&WPe(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=u(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),u(this._material)&&this._material.update(t);let l=n.closed&&c;o&&y(this._createRenderStatesFunction,XPe)(this,t,n,l),r&&y(this._createShaderProgramFunction,KPe)(this,e,n),(o||r)&&y(this._createCommandsFunction,ZPe)(this,n,i,c,l,this._colorCommands,this._pickCommands,e),y(this._updateAndQueueCommandsFunction,$Pe)(this,e,this._colorCommands,this._pickCommands,this.modelMatrix,this.cull,this.debugShowBoundingVolume,l)};var QPe=new se,JPe=new se;function xee(e,t,n){if(n===tn.TOP){let i=se.clone(e,QPe),o=se.clone(e,JPe);o.center=h.add(o.center,t,o.center),e=se.union(i,o,e)}else n===tn.ALL&&(e.center=h.add(e.center,t,e.center));return e}function e1e(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 u(i.constructor.pack)?i.constructor.pack(i,s,0):s[0]=i,s}}function t1e(e,t,n,i,o){return function(r){let s=pee(r);e.setBatchedAttribute(t,n,s),o==="offset"&&(i._recomputeBoundingSpheres=!0,i._batchTableOffsetsUpdated=!1)}}var n1e=new h;function i1e(e,t,n){t.boundingSphere={get:function(){let i=e._instanceBoundingSpheres[n];if(u(i)){i=i.clone();let o=e.modelMatrix,r=t.offset;u(r)&&xee(i,h.fromArray(r.get(),0,n1e),e._offsetInstanceExtend[n]),u(o)&&(i=se.transform(i,o))}return i}},t.boundingSphereCV={get:function(){return e._instanceBoundingSpheresCV[n]}}}function o1e(e,t,n){t.pickId={get:function(){return e._pickIds[n]}}}yr.prototype.getGeometryInstanceAttributes=function(e){let t=this._perInstanceAttributeCache.get(e);if(u(t))return t;let n=-1,i=this._lastPerInstanceAttributeIndex,o=this._instanceIds,r=o.length;for(let l=0;l<r;++l){let f=(i+l)%r;if(e===o[f]){n=f;break}}if(n===-1)return;let s=this._batchTable,a=this._batchTableAttributeIndices;t={};let c={};for(let l in a)if(a.hasOwnProperty(l)){let f=a[l];c[l]={get:e1e(s,n,f),set:t1e(s,n,f,this,l)}}return i1e(this,c,n),o1e(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,le(this)};function QI(e,t,n,i){e._error=i,e._state=n,t.afterRender.push(function(){if(e._ready=e._state===gr.COMPLETE||e._state===gr.FAILED,!u(i))return!0})}var En=yr;function r1e(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 qa=r1e;var xA=`#ifdef TEXTURE_COORDINATES
  4276. #ifdef SPHERICAL
  4277. in vec4 v_sphericalExtents;
  4278. #else // SPHERICAL
  4279. in vec2 v_inversePlaneExtents;
  4280. in vec4 v_westPlane;
  4281. in vec4 v_southPlane;
  4282. #endif // SPHERICAL
  4283. in vec3 v_uvMinAndSphericalLongitudeRotation;
  4284. in vec3 v_uMaxAndInverseDistance;
  4285. in vec3 v_vMaxAndInverseDistance;
  4286. #endif // TEXTURE_COORDINATES
  4287. #ifdef PER_INSTANCE_COLOR
  4288. in vec4 v_color;
  4289. #endif
  4290. #ifdef NORMAL_EC
  4291. vec3 getEyeCoordinate3FromWindowCoordinate(vec2 fragCoord, float logDepthOrDepth) {
  4292. vec4 eyeCoordinate = czm_windowToEyeCoordinates(fragCoord, logDepthOrDepth);
  4293. return eyeCoordinate.xyz / eyeCoordinate.w;
  4294. }
  4295. vec3 vectorFromOffset(vec4 eyeCoordinate, vec2 positiveOffset) {
  4296. vec2 glFragCoordXY = gl_FragCoord.xy;
  4297. // Sample depths at both offset and negative offset
  4298. float upOrRightLogDepth = czm_unpackDepth(texture(czm_globeDepthTexture, (glFragCoordXY + positiveOffset) / czm_viewport.zw));
  4299. float downOrLeftLogDepth = czm_unpackDepth(texture(czm_globeDepthTexture, (glFragCoordXY - positiveOffset) / czm_viewport.zw));
  4300. // Explicitly evaluate both paths
  4301. // Necessary for multifrustum and for edges of the screen
  4302. bvec2 upOrRightInBounds = lessThan(glFragCoordXY + positiveOffset, czm_viewport.zw);
  4303. float useUpOrRight = float(upOrRightLogDepth > 0.0 && upOrRightInBounds.x && upOrRightInBounds.y);
  4304. float useDownOrLeft = float(useUpOrRight == 0.0);
  4305. vec3 upOrRightEC = getEyeCoordinate3FromWindowCoordinate(glFragCoordXY + positiveOffset, upOrRightLogDepth);
  4306. vec3 downOrLeftEC = getEyeCoordinate3FromWindowCoordinate(glFragCoordXY - positiveOffset, downOrLeftLogDepth);
  4307. return (upOrRightEC - (eyeCoordinate.xyz / eyeCoordinate.w)) * useUpOrRight + ((eyeCoordinate.xyz / eyeCoordinate.w) - downOrLeftEC) * useDownOrLeft;
  4308. }
  4309. #endif // NORMAL_EC
  4310. void main(void)
  4311. {
  4312. #ifdef REQUIRES_EC
  4313. float logDepthOrDepth = czm_unpackDepth(texture(czm_globeDepthTexture, gl_FragCoord.xy / czm_viewport.zw));
  4314. vec4 eyeCoordinate = czm_windowToEyeCoordinates(gl_FragCoord.xy, logDepthOrDepth);
  4315. #endif
  4316. #ifdef REQUIRES_WC
  4317. vec4 worldCoordinate4 = czm_inverseView * eyeCoordinate;
  4318. vec3 worldCoordinate = worldCoordinate4.xyz / worldCoordinate4.w;
  4319. #endif
  4320. #ifdef TEXTURE_COORDINATES
  4321. vec2 uv;
  4322. #ifdef SPHERICAL
  4323. // Treat world coords as a sphere normal for spherical coordinates
  4324. vec2 sphericalLatLong = czm_approximateSphericalCoordinates(worldCoordinate);
  4325. sphericalLatLong.y += v_uvMinAndSphericalLongitudeRotation.z;
  4326. sphericalLatLong.y = czm_branchFreeTernary(sphericalLatLong.y < czm_pi, sphericalLatLong.y, sphericalLatLong.y - czm_twoPi);
  4327. uv.x = (sphericalLatLong.y - v_sphericalExtents.y) * v_sphericalExtents.w;
  4328. uv.y = (sphericalLatLong.x - v_sphericalExtents.x) * v_sphericalExtents.z;
  4329. #else // SPHERICAL
  4330. // Unpack planes and transform to eye space
  4331. uv.x = czm_planeDistance(v_westPlane, eyeCoordinate.xyz / eyeCoordinate.w) * v_inversePlaneExtents.x;
  4332. uv.y = czm_planeDistance(v_southPlane, eyeCoordinate.xyz / eyeCoordinate.w) * v_inversePlaneExtents.y;
  4333. #endif // SPHERICAL
  4334. #endif // TEXTURE_COORDINATES
  4335. #ifdef PICK
  4336. #ifdef CULL_FRAGMENTS
  4337. // When classifying translucent geometry, logDepthOrDepth == 0.0
  4338. // indicates a region that should not be classified, possibly due to there
  4339. // being opaque pixels there in another buffer.
  4340. // Check for logDepthOrDepth != 0.0 to make sure this should be classified.
  4341. if (0.0 <= uv.x && uv.x <= 1.0 && 0.0 <= uv.y && uv.y <= 1.0 || logDepthOrDepth != 0.0) {
  4342. out_FragColor.a = 1.0; // 0.0 alpha leads to discard from ShaderSource.createPickFragmentShaderSource
  4343. czm_writeDepthClamp();
  4344. }
  4345. #else // CULL_FRAGMENTS
  4346. out_FragColor.a = 1.0;
  4347. #endif // CULL_FRAGMENTS
  4348. #else // PICK
  4349. #ifdef CULL_FRAGMENTS
  4350. // When classifying translucent geometry, logDepthOrDepth == 0.0
  4351. // indicates a region that should not be classified, possibly due to there
  4352. // being opaque pixels there in another buffer.
  4353. if (uv.x <= 0.0 || 1.0 <= uv.x || uv.y <= 0.0 || 1.0 <= uv.y || logDepthOrDepth == 0.0) {
  4354. discard;
  4355. }
  4356. #endif
  4357. #ifdef NORMAL_EC
  4358. // Compute normal by sampling adjacent pixels in 2x2 block in screen space
  4359. vec3 downUp = vectorFromOffset(eyeCoordinate, vec2(0.0, 1.0));
  4360. vec3 leftRight = vectorFromOffset(eyeCoordinate, vec2(1.0, 0.0));
  4361. vec3 normalEC = normalize(cross(leftRight, downUp));
  4362. #endif
  4363. #ifdef PER_INSTANCE_COLOR
  4364. vec4 color = czm_gammaCorrect(v_color);
  4365. #ifdef FLAT
  4366. out_FragColor = color;
  4367. #else // FLAT
  4368. czm_materialInput materialInput;
  4369. materialInput.normalEC = normalEC;
  4370. materialInput.positionToEyeEC = -eyeCoordinate.xyz;
  4371. czm_material material = czm_getDefaultMaterial(materialInput);
  4372. material.diffuse = color.rgb;
  4373. material.alpha = color.a;
  4374. out_FragColor = czm_phong(normalize(-eyeCoordinate.xyz), material, czm_lightDirectionEC);
  4375. #endif // FLAT
  4376. // Premultiply alpha. Required for classification primitives on translucent globe.
  4377. out_FragColor.rgb *= out_FragColor.a;
  4378. #else // PER_INSTANCE_COLOR
  4379. // Material support.
  4380. // USES_ is distinct from REQUIRES_, because some things are dependencies of each other or
  4381. // dependencies for culling but might not actually be used by the material.
  4382. czm_materialInput materialInput;
  4383. #ifdef USES_NORMAL_EC
  4384. materialInput.normalEC = normalEC;
  4385. #endif
  4386. #ifdef USES_POSITION_TO_EYE_EC
  4387. materialInput.positionToEyeEC = -eyeCoordinate.xyz;
  4388. #endif
  4389. #ifdef USES_TANGENT_TO_EYE
  4390. materialInput.tangentToEyeMatrix = czm_eastNorthUpToEyeCoordinates(worldCoordinate, normalEC);
  4391. #endif
  4392. #ifdef USES_ST
  4393. // Remap texture coordinates from computed (approximately aligned with cartographic space) to the desired
  4394. // texture coordinate system, which typically forms a tight oriented bounding box around the geometry.
  4395. // Shader is provided a set of reference points for remapping.
  4396. materialInput.st.x = czm_lineDistance(v_uvMinAndSphericalLongitudeRotation.xy, v_uMaxAndInverseDistance.xy, uv) * v_uMaxAndInverseDistance.z;
  4397. materialInput.st.y = czm_lineDistance(v_uvMinAndSphericalLongitudeRotation.xy, v_vMaxAndInverseDistance.xy, uv) * v_vMaxAndInverseDistance.z;
  4398. #endif
  4399. czm_material material = czm_getMaterial(materialInput);
  4400. #ifdef FLAT
  4401. out_FragColor = vec4(material.diffuse + material.emission, material.alpha);
  4402. #else // FLAT
  4403. out_FragColor = czm_phong(normalize(-eyeCoordinate.xyz), material, czm_lightDirectionEC);
  4404. #endif // FLAT
  4405. // Premultiply alpha. Required for classification primitives on translucent globe.
  4406. out_FragColor.rgb *= out_FragColor.a;
  4407. #endif // PER_INSTANCE_COLOR
  4408. czm_writeDepthClamp();
  4409. #endif // PICK
  4410. }
  4411. `;function tf(e,t,n){this._projectionExtentDefines={eastMostYhighDefine:"",eastMostYlowDefine:"",westMostYhighDefine:"",westMostYlowDefine:""};let i=new rG;i.requiresTextureCoordinates=e,i.requiresEC=!n.flat;let o=new rG;if(o.requiresTextureCoordinates=e,n instanceof nn)i.requiresNormalEC=!n.flat;else{let r=`${n.material.shaderSource}
  4412. ${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}tf.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 nn&&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 nn||(o=t.material.shaderSource),new Ue({defines:i,sources:[o,xA]})};tf.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 Ue({defines:n,sources:[xA],pickColorQualifier:"in"})};tf.prototype.createVertexShader=function(e,t,n,i){return vee(this._colorShaderDependencies,this._planarExtents,n,e,t,this._appearance,i,this._projectionExtentDefines)};tf.prototype.createPickVertexShader=function(e,t,n,i){return vee(this._pickShaderDependencies,this._planarExtents,n,e,t,void 0,i,this._projectionExtentDefines)};var bee=new h,Tee=new fe,Aee={high:0,low:0};function vee(e,t,n,i,o,r,s,a){let c=i.slice();if(a.eastMostYhighDefine===""){let l=Tee;l.longitude=P.PI,l.latitude=0,l.height=0;let f=s.project(l,bee),d=jn.encode(f.x,Aee);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=Tee;p.longitude=-P.PI,p.latitude=0,p.height=0;let g=s.project(p,bee);d=jn.encode(g.x,Aee),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)),u(r)&&r instanceof nn&&c.push("PER_INSTANCE_COLOR"),e.requiresTextureCoordinates&&(c.push("TEXTURE_COORDINATES"),t||n||c.push("SPHERICAL"),n&&c.push("COLUMBUS_VIEW_2D")),new Ue({defines:c,sources:[o]})}function rG(){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(rG.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 Cee(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 s1e=[new z,new z,new z,new z];function Dee(e,t){let n=s1e,i=z.unpack(t,0,n[0]),o=z.unpack(t,2,n[1]),r=z.unpack(t,4,n[2]);e.uMaxVmax=new qa({componentDatatype:X.FLOAT,componentsPerAttribute:4,normalize:!1,value:[o.x,o.y,r.x,r.y]});let s=1/Cee(i,o,r),a=1/Cee(i,r,o);e.uvMinAndExtents=new qa({componentDatatype:X.FLOAT,componentsPerAttribute:4,normalize:!1,value:[i.x,i.y,s,a]})}var Iee=new fe,Pee=new h,a1e=new h,c1e=new h,xk={high:0,low:0};function Oee(e,t,n){let i=Iee;i.height=0,i.longitude=e.west,i.latitude=e.south;let o=t.project(i,Pee);i.latitude=e.north;let r=t.project(i,a1e);i.longitude=e.east,i.latitude=e.south;let s=t.project(i,c1e),a=[0,0,0,0],c=[0,0,0,0],l=jn.encode(o.x,xk);a[0]=l.high,c[0]=l.low,l=jn.encode(o.y,xk),a[1]=l.high,c[1]=l.low,l=jn.encode(r.y,xk),a[2]=l.high,c[2]=l.low,l=jn.encode(s.x,xk),a[3]=l.high,c[3]=l.low,n.planes2D_HIGH=new qa({componentDatatype:X.FLOAT,componentsPerAttribute:4,normalize:!1,value:a}),n.planes2D_LOW=new qa({componentDatatype:X.FLOAT,componentsPerAttribute:4,normalize:!1,value:c})}var l1e=new F,u1e=new F,Eee=new h,f1e=new fe,d1e=[new fe,new fe,new fe,new fe,new fe,new fe,new fe,new fe];function h1e(e,t,n,i,o,r){let s=ce.center(e,f1e);s.height=n;let a=fe.toCartesian(s,t,Eee),c=Rt.eastNorthUpToFixedFrame(a,t,l1e),l=F.inverse(c,u1e),f=e.west,d=e.east,p=e.north,g=e.south,m=d1e;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,A=Number.NEGATIVE_INFINITY,C=Number.POSITIVE_INFINITY,S=Number.NEGATIVE_INFINITY;for(let R=0;R<8;R++){m[R].height=n;let L=fe.toCartesian(m[R],t,Eee);F.multiplyByPoint(l,L,L),L.z=0,T=Math.min(T,L.x),A=Math.max(A,L.x),C=Math.min(C,L.y),S=Math.max(S,L.y)}let w=i;w.x=T,w.y=C,w.z=0,F.multiplyByPoint(c,w,w);let D=o;D.x=A,D.y=C,D.z=0,F.multiplyByPoint(c,D,D),h.subtract(D,w,o);let O=r;O.x=T,O.y=S,O.z=0,F.multiplyByPoint(c,O,O),h.subtract(O,w,r)}var m1e=new h,p1e=new h,_1e=new jn;tf.getPlanarTextureCoordinateAttributes=function(e,t,n,i,o){let r=Pee,s=m1e,a=p1e;h1e(e,n,y(o,0),r,s,a);let c={};Dee(c,t);let l=jn.fromCartesian(r,_1e);return c.southWest_HIGH=new qa({componentDatatype:X.FLOAT,componentsPerAttribute:3,normalize:!1,value:h.pack(l.high,[0,0,0])}),c.southWest_LOW=new qa({componentDatatype:X.FLOAT,componentsPerAttribute:3,normalize:!1,value:h.pack(l.low,[0,0,0])}),c.eastward=new qa({componentDatatype:X.FLOAT,componentsPerAttribute:3,normalize:!1,value:h.pack(s,[0,0,0])}),c.northward=new qa({componentDatatype:X.FLOAT,componentsPerAttribute:3,normalize:!1,value:h.pack(a,[0,0,0])}),Oee(e,i,c),c};var g1e=new h;function See(e,t,n,i){let o=Iee;o.latitude=e,o.longitude=t,o.height=0;let r=fe.toCartesian(o,n,g1e),s=Math.sqrt(r.x*r.x+r.y*r.y),a=P.fastApproximateAtan2(s,r.z),c=P.fastApproximateAtan2(r.x,r.y);return i.x=a,i.y=c,i}var wee=new z;tf.getSphericalExtentGeometryInstanceAttributes=function(e,t,n,i){let o=See(e.south,e.west,n,wee),r=o.x,s=o.y,a=See(e.north,e.east,n,wee),c=a.x,l=a.y,f=0;s>l&&(f=P.PI-s,s=-P.PI,l+=f),r-=P.EPSILON5,s-=P.EPSILON5,c+=P.EPSILON5,l+=P.EPSILON5;let d=1/(l-s),p=1/(c-r),g={sphericalExtents:new qa({componentDatatype:X.FLOAT,componentsPerAttribute:4,normalize:!1,value:[r,s,p,d]}),longitudeRotation:new qa({componentDatatype:X.FLOAT,componentsPerAttribute:1,normalize:!1,value:[f]})};return Dee(g,t),Oee(e,i,g),g};tf.hasAttributesForTextureCoordinatePlanes=function(e){return u(e.southWest_HIGH)&&u(e.southWest_LOW)&&u(e.northward)&&u(e.eastward)&&u(e.planes2D_HIGH)&&u(e.planes2D_LOW)&&u(e.uMaxVmax)&&u(e.uvMinAndExtents)};tf.hasAttributesForSphericalExtents=function(e){return u(e.sphericalExtents)&&u(e.longitudeRotation)&&u(e.planes2D_HIGH)&&u(e.planes2D_LOW)&&u(e.uMaxVmax)&&u(e.uvMinAndExtents)};function y1e(e){return Math.max(e.width,e.height)>tf.MAX_WIDTH_FOR_PLANAR_EXTENTS}tf.shouldUseSphericalCoordinates=function(e){return y1e(e)};tf.MAX_WIDTH_FOR_PLANAR_EXTENTS=P.toRadians(1);var tu=tf;var x1e={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},zn=Object.freeze(x1e);var b1e={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(b1e);var bk={CESIUM_3D_TILE_MASK:128,SKIP_LOD_MASK:112,SKIP_LOD_BIT_SHIFT:4,CLASSIFICATION_MASK:15};bk.setCesium3DTileBit=function(){return{enabled:!0,frontFunction:zn.ALWAYS,frontOperation:{fail:lt.KEEP,zFail:lt.KEEP,zPass:lt.REPLACE},backFunction:zn.ALWAYS,backOperation:{fail:lt.KEEP,zFail:lt.KEEP,zPass:lt.REPLACE},reference:bk.CESIUM_3D_TILE_MASK,mask:bk.CESIUM_3D_TILE_MASK}};var Lt=Object.freeze(bk);function Z0(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(Z0.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}}});Z0.isSupported=function(e){return e.context.stencilBuffer};function bA(e,t){let n=t?zn.EQUAL:zn.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:Lt.CESIUM_3D_TILE_MASK,mask:Lt.CESIUM_3D_TILE_MASK},stencilMask:Lt.CLASSIFICATION_MASK,depthTest:{enabled:!0,func:ja.LESS_OR_EQUAL},depthMask:!1}}function aG(e){return{stencilTest:{enabled:e,frontFunction:zn.NOT_EQUAL,frontOperation:{fail:lt.ZERO,zFail:lt.ZERO,zPass:lt.ZERO},backFunction:zn.NOT_EQUAL,backOperation:{fail:lt.ZERO,zFail:lt.ZERO,zPass:lt.ZERO},reference:0,mask:Lt.CLASSIFICATION_MASK},stencilMask:Lt.CLASSIFICATION_MASK,depthTest:{enabled:!1},depthMask:!1,blending:un.PRE_MULTIPLIED_ALPHA_BLEND}}var T1e={stencilTest:{enabled:!0,frontFunction:zn.NOT_EQUAL,frontOperation:{fail:lt.ZERO,zFail:lt.ZERO,zPass:lt.ZERO},backFunction:zn.NOT_EQUAL,backOperation:{fail:lt.ZERO,zFail:lt.ZERO,zPass:lt.ZERO},reference:0,mask:Lt.CLASSIFICATION_MASK},stencilMask:Lt.CLASSIFICATION_MASK,depthTest:{enabled:!1},depthMask:!1};function A1e(e,t,n,i){if(u(e._rsStencilDepthPass))return;let o=!e.debugShowShadowVolume;e._rsStencilDepthPass=ke.fromCache(bA(o,!1)),e._rsStencilDepthPass3DTiles=ke.fromCache(bA(o,!0)),e._rsColorPass=ke.fromCache(aG(o,!1)),e._rsPickPass=ke.fromCache(T1e)}function C1e(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;
  4413. `,r=` extrudeDirection = czm_octDecode(${n}, 65535.0);
  4414. `,s=t;s=s.replace(/in\s+vec3\s+extrudeDirection;/g,""),s=Ue.replaceMain(s,"czm_non_compressed_main");let a=`void main()
  4415. {
  4416. ${r} czm_non_compressed_main();
  4417. }`;return[i,o,s,a].join(`
  4418. `)}}function E1e(e,t){let n=t.context,i=e._primitive,o=GI;o=e._primitive._batchTable.getVertexShaderCallback()(o),o=En._appendDistanceDisplayConditionToShader(i,o),o=En._modifyShaderPosition(e,o,t.scene3DOnly),o=En._updateColorAttribute(i,o);let r=e._hasPlanarExtentsAttributes,s=r||e._hasSphericalExtentsAttribute;e._extruded&&(o=C1e(i,o));let a=e._extruded?"EXTRUDED_GEOMETRY":"",c=new Ue({defines:[a],sources:[o]}),l=new Ue({sources:[mg]}),f=e._primitive._attributeLocations,d=new tu(s,r,e.appearance);if(e._spStencil=Yt.replaceCache({context:n,shaderProgram:e._spStencil,vertexShaderSource:c,fragmentShaderSource:l,attributeLocations:f}),e._primitive.allowPicking){let m=Ue.createPickVertexShaderSource(o);m=En._appendShowToShader(i,m),m=En._updatePickColorAttribute(m);let x=d.createPickFragmentShader(!1),b=d.createPickVertexShader([a],m,!1,t.mapProjection);if(e._spPick=Yt.replaceCache({context:n,shaderProgram:e._spPick,vertexShaderSource:b,fragmentShaderSource:x,attributeLocations:f}),s){let T=n.shaderCache.getDerivedShaderProgram(e._spPick,"2dPick");if(!u(T)){let A=d.createPickFragmentShader(!0),C=d.createPickVertexShader([a],m,!0,t.mapProjection);T=n.shaderCache.createDerivedShaderProgram(e._spPick,"2dPick",{vertexShaderSource:C,fragmentShaderSource:A,attributeLocations:f})}e._spPick2D=T}}else e._spPick=Yt.fromCache({context:n,vertexShaderSource:c,fragmentShaderSource:l,attributeLocations:f});o=En._appendShowToShader(i,o),c=new Ue({defines:[a],sources:[o]}),e._sp=Yt.replaceCache({context:n,shaderProgram:e._sp,vertexShaderSource:c,fragmentShaderSource:l,attributeLocations:f});let p=d.createFragmentShader(!1),g=d.createVertexShader([a],o,!1,t.mapProjection);if(e._spColor=Yt.replaceCache({context:n,shaderProgram:e._spColor,vertexShaderSource:g,fragmentShaderSource:p,attributeLocations:f}),s){let m=n.shaderCache.getDerivedShaderProgram(e._spColor,"2dColor");if(!u(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 S1e(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),l=e._needs2DShader;for(o=0;o<i;o+=2){let g=n._va[a++];r=t[o],u(r)||(r=t[o]=new Je({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=Je.shallowClone(r,r.derivedCommands.tileset),s.renderState=e._rsStencilDepthPass3DTiles,s.pass=Ee.CESIUM_3D_TILE_CLASSIFICATION,r.derivedCommands.tileset=s,r=t[o+1],u(r)||(r=t[o+1]=new Je({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(u(x)&&(c=gt(c,x._uniforms)),r.uniformMap=c,s=Je.shallowClone(r,r.derivedCommands.tileset),s.pass=Ee.CESIUM_3D_TILE_CLASSIFICATION,r.derivedCommands.tileset=s,l){let b=Je.shallowClone(r,r.derivedCommands.appearance2D);b.shaderProgram=e._spColor2D,r.derivedCommands.appearance2D=b,b=Je.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]=Je.shallowClone(t[p],f[g]);m.shaderProgram=d,m.pass=Ee.CESIUM_3D_TILE_CLASSIFICATION_IGNORE_SHOW,p+=2}}function w1e(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,l,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]),l=t[c],u(l)||(l=t[c]=new Je({owner:e,primitiveType:i._primitiveType,pickOnly:!0})),l.vertexArray=m,l.renderState=e._rsStencilDepthPass,l.shaderProgram=e._sp,l.uniformMap=p,l.pass=Ee.TERRAIN_CLASSIFICATION,n&&(l.offset=a.offset,l.count=a.count),f=Je.shallowClone(l,l.derivedCommands.tileset),f.renderState=e._rsStencilDepthPass3DTiles,f.pass=Ee.CESIUM_3D_TILE_CLASSIFICATION,l.derivedCommands.tileset=f,l=t[c+1],u(l)||(l=t[c+1]=new Je({owner:e,primitiveType:i._primitiveType,pickOnly:!0})),l.vertexArray=m,l.renderState=e._rsPickPass,l.shaderProgram=e._spPick,l.uniformMap=p,l.pass=Ee.TERRAIN_CLASSIFICATION,n&&(l.offset=a.offset,l.count=a.count),f=Je.shallowClone(l,l.derivedCommands.tileset),f.pass=Ee.CESIUM_3D_TILE_CLASSIFICATION,l.derivedCommands.tileset=f,g){let x=Je.shallowClone(l,l.derivedCommands.pick2D);x.shaderProgram=e._spPick2D,l.derivedCommands.pick2D=x,x=Je.shallowClone(f,f.derivedCommands.pick2D),x.shaderProgram=e._spPick2D,f.derivedCommands.pick2D=x}}}function v1e(e,t,n,i,o,r,s){S1e(e,r),w1e(e,s)}function Ree(e,t){return Math.floor(e%t/2)}function sG(e,t,n,i,o,r){e.modelMatrix=n,e.boundingVolume=o,e.cull=i,e.debugShowBoundingVolume=r,t.commandList.push(e)}function Mee(e,t,n,i,o){e.modelMatrix=n,e.boundingVolume=o,e.cull=i,t.commandList.push(e)}function D1e(e,t,n,i,o,r,s,a){let c=e._primitive;En._updateBoundingVolumes(c,t,o);let l;t.mode===te.SCENE3D?l=c._boundingSphereWC:t.mode===te.COLUMBUS_VIEW?l=c._boundingSphereCV:t.mode===te.SCENE2D&&u(c._boundingSphere2D)?l=c._boundingSphere2D:u(c._boundingSphereMorph)&&(l=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=l[Ree(m,T)],d&&(b=n[m],sG(b,t,o,r,x,s)),p&&(b=n[m].derivedCommands.tileset,sG(b,t,o,r,x,s));if(t.invertClassification){let A=e._commandsIgnoreShow,C=A.length;for(m=0;m<C;++m)x=l[m],b=A[m],sG(b,t,o,r,x,s)}}if(g.pick){let T=i.length,A=c._pickOffsets;for(m=0;m<T;++m){let C=A[Ree(m,T)];x=l[C.index],d&&(b=i[m],Mee(b,t,o,r,x)),p&&(b=i[m].derivedCommands.tileset,Mee(b,t,o,r,x))}}}Z0.prototype.update=function(e){if(!u(this._primitive)&&!u(this.geometryInstances))return;let t=this.appearance;u(t)&&u(t.material)&&t.material.update(e.context);let n=this,i=this._primitiveOptions;if(!u(this._primitive)){let o=Array.isArray(this.geometryInstances)?this.geometryInstances:[this.geometryInstances],r=o.length,s,a,c,l=!1,f=!0,d,p=!1,g=!1;for(r>0&&(c=o[0].attributes,p=tu.hasAttributesForSphericalExtents(c),g=tu.hasAttributesForTextureCoordinatePlanes(c),d=c.color),s=0;s<r;s++){a=o[s];let x=a.attributes.color;u(x)&&(l=!0),f=f&&u(x)&&kt.equals(d,x)}if(!f&&!p&&!g)throw new de("All GeometryInstances must have the same color attribute except via GroundPrimitives");l&&!u(t)&&(t=new nn({flat:!0}),this.appearance=t),this._usePickOffsets=!p&&!g,this._hasSphericalExtentsAttribute=p,this._hasPlanarExtentsAttributes=g,this._hasPerColorAttribute=l;let m=new Array(r);for(s=0;s<r;++s)a=o[s],m[s]=new yt({geometry:a.geometry,attributes:a.attributes,modelMatrix:a.modelMatrix,id:a.id,pickPrimitive:y(this._pickPrimitive,n)});i.appearance=t,i.geometryInstances=m,u(this._createBoundingVolumeFunction)&&(i._createBoundingVolumeFunction=function(x,b){n._createBoundingVolumeFunction(x,b)}),i._createRenderStatesFunction=function(x,b,T,A){A1e(n,b)},i._createShaderProgramFunction=function(x,b,T){E1e(n,b)},i._createCommandsFunction=function(x,b,T,A,C,S,w){v1e(n,void 0,void 0,!0,!1,S,w)},u(this._updateAndQueueCommandsFunction)?i._updateAndQueueCommandsFunction=function(x,b,T,A,C,S,w,D){n._updateAndQueueCommandsFunction(x,b,T,A,C,S,w,D)}:i._updateAndQueueCommandsFunction=function(x,b,T,A,C,S,w,D){D1e(n,b,T,A,C,S,w,D)},this._primitive=new En(i)}this.debugShowShadowVolume&&!this._debugShowShadowVolume&&this._ready?(this._debugShowShadowVolume=!0,this._rsStencilDepthPass=ke.fromCache(bA(!1,!1)),this._rsStencilDepthPass3DTiles=ke.fromCache(bA(!1,!0)),this._rsColorPass=ke.fromCache(aG(!1))):!this.debugShowShadowVolume&&this._debugShowShadowVolume&&(this._debugShowShadowVolume=!1,this._rsStencilDepthPass=ke.fromCache(bA(!0,!1)),this._rsStencilDepthPass3DTiles=ke.fromCache(bA(!0,!0)),this._rsColorPass=ke.fromCache(aG(!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(()=>{u(this._primitive)&&this._primitive.ready&&(this._ready=!0,this.releaseGeometryInstances&&(this.geometryInstances=void 0))})};Z0.prototype.getGeometryInstanceAttributes=function(e){return this._primitive.getGeometryInstanceAttributes(e)};Z0.prototype.isDestroyed=function(){return!1};Z0.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,le(this)};var TA=Z0;var I1e={u_globeMinimumAltitude:function(){return 55e3}};function pl(e){e=y(e,y.EMPTY_OBJECT);let t=e.appearance,n=e.geometryInstances;if(!u(t)&&u(n)){let o=Array.isArray(n)?n:[n],r=o.length;for(let s=0;s<r;s++){let a=o[s].attributes;if(u(a)&&u(a.color)){t=new nn({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=li._defaultMaxTerrainHeight,this._minTerrainHeight=li._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:I1e}}Object.defineProperties(pl.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}}});pl.isSupported=TA.isSupported;function Lee(e){return function(t,n){let i=n.maximumRadius,o=i/Math.cos(t*.5)-i;return e._maxHeight+o}}function Nee(e){return function(t,n){return e._minHeight}}var P1e=new h,O1e=new h,R1e=new h,M1e=new fe,L1e=new ce;function Tk(e,t){let n=e.mapProjection.ellipsoid;if(!u(t.attributes)||!u(t.attributes.position3DHigh))return u(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,l=Number.NEGATIVE_INFINITY;for(let d=0;d<r;d+=3){let p=h.unpack(i,d,P1e),g=h.unpack(o,d,O1e),m=h.add(p,g,R1e),x=n.cartesianToCartographic(m,M1e),b=x.latitude,T=x.longitude;s=Math.min(s,b),a=Math.min(a,T),c=Math.max(c,b),l=Math.max(l,T)}let f=L1e;return f.north=c,f.south=s,f.east=l,f.west=a,f}function N1e(e,t,n){let i=li.getMinimumMaximumHeights(t,n);e._minTerrainHeight=i.minimumTerrainHeight,e._maxTerrainHeight=i.maximumTerrainHeight}function F1e(e,t,n){let i=t.mapProjection.ellipsoid,o=Tk(t,n),r=In.fromRectangle(o,e._minHeight,e._maxHeight,i);if(e._boundingVolumes.push(r),!t.scene3DOnly){let s=t.mapProjection,a=se.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 cG(e,t){return Math.floor(e%t/2)}function lG(e,t,n,i,o,r,s){let a=e._primitive;n.mode!==te.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 Fee(e,t,n,i,o,r){let s=e._primitive;n.mode!==te.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 B1e(e,t,n,i,o,r,s,a){let c;t.mode===te.SCENE3D?c=e._boundingVolumes:c=e._boundingVolumes2D;let l=e.classificationType,f=l!==Vn.CESIUM_3D_TILE,d=l!==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[cG(m,T)],f&&(b=n[m],lG(e,b,t,o,r,x,s)),d&&(b=n[m].derivedCommands.tileset,lG(e,b,t,o,r,x,s));if(t.invertClassification){let A=g._commandsIgnoreShow,C=A.length;for(m=0;m<C;++m)x=c[m],b=A[m],lG(e,b,t,o,r,x,s)}}if(p.pick){let T=i.length,A;for(e._useFragmentCulling||(A=g._primitive._pickOffsets),m=0;m<T;++m){if(x=c[cG(m,T)],!e._useFragmentCulling){let C=A[cG(m,T)];x=c[C.index]}f&&(b=i[m],Fee(e,b,t,o,r,x)),d&&(b=i[m].derivedCommands.tileset,Fee(e,b,t,o,r,x))}}}pl.initializeTerrainHeights=function(){return li.initialize()};pl.prototype.update=function(e){if(!u(this._primitive)&&!u(this.geometryInstances))return;if(!li.initialized){pl.initializeTerrainHeights();return}let t=this,n=this._classificationPrimitiveOptions;if(!u(this._primitive)){let i=e.mapProjection.ellipsoid,o,r,s,a=Array.isArray(this.geometryInstances)?this.geometryInstances:[this.geometryInstances],c=a.length,l=new Array(c),f,d;for(f=0;f<c;++f){o=a[f],r=o.geometry;let x=Tk(e,r);u(d)?u(x)&&ce.union(d,x,d):d=ce.clone(x);let b=o.id;if(u(b)&&u(x)){let T=li.getBoundingSphere(x,i);this._boundingSpheresKeys.push(b),this._boundingSpheres.push(T)}s=r.constructor,!u(s)||u(s.createShadowVolume)}N1e(this,d,i);let p=e.terrainExaggeration,g=e.terrainExaggerationRelativeHeight;this._minHeight=vc.getHeight(this._minTerrainHeight,p,g),this._maxHeight=vc.getHeight(this._maxTerrainHeight,p,g);let m=pl._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=Tk(e,r),tu.shouldUseSphericalCoordinates(d)){b=!1;break}for(f=0;f<c;++f){o=a[f],r=o.geometry,s=r.constructor;let T=Tk(e,r),A=r.textureCoordinateRotationPoints;b?x=tu.getPlanarTextureCoordinateAttributes(T,A,i,e.mapProjection,this._maxHeight):x=tu.getSphericalExtentGeometryInstanceAttributes(T,A,i,e.mapProjection);let C=o.attributes;for(let S in C)C.hasOwnProperty(S)&&(x[S]=C[S]);l[f]=new yt({geometry:s.createShadowVolume(r,Nee(this),Lee(this)),attributes:x,id:o.id})}}else for(f=0;f<c;++f)o=a[f],r=o.geometry,s=r.constructor,l[f]=new yt({geometry:s.createShadowVolume(r,Nee(this),Lee(this)),attributes:o.attributes,id:o.id});n.geometryInstances=l,n.appearance=this.appearance,n._createBoundingVolumeFunction=function(x,b){F1e(t,x,b)},n._updateAndQueueCommandsFunction=function(x,b,T,A,C,S,w,D){B1e(t,b,T,A,C,S,w,D)},this._primitive=new TA(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&&u(this._primitive)&&this._primitive.ready&&(this._ready=!0,this.releaseGeometryInstances&&(this.geometryInstances=void 0))})};pl.prototype.getBoundingSphere=function(e){let t=this._boundingSpheresKeys.indexOf(e);if(t!==-1)return this._boundingSpheres[t]};pl.prototype.getGeometryInstanceAttributes=function(e){return this._primitive.getGeometryInstanceAttributes(e)};pl.prototype.isDestroyed=function(){return!1};pl.prototype.destroy=function(){return this._primitive=this._primitive&&this._primitive.destroy(),le(this)};pl._supportsMaterials=function(e){return e.depthTexture};pl.supportsMaterials=function(e){return pl._supportsMaterials(e.frameState.context)};var Ic=pl;function AA(){de.throwInstantiationError()}Object.defineProperties(AA.prototype,{isConstant:{get:de.throwInstantiationError},definitionChanged:{get:de.throwInstantiationError}});AA.prototype.getType=de.throwInstantiationError;AA.prototype.getValue=de.throwInstantiationError;AA.prototype.equals=de.throwInstantiationError;AA.getValue=function(e,t,n){let i;return u(t)&&(i=t.getType(e),u(i))?((!u(n)||n.type!==i)&&(n=Vi.fromType(i)),t.getValue(e,n.uniforms),n):((!u(n)||n.type!==Vi.ColorType)&&(n=Vi.fromType(Vi.ColorType)),H.clone(H.WHITE,n.uniforms.color),n)};var qo=AA;function $0(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}$0.prototype._isHidden=function(e,t,n){return!e.isShowing||!e.isAvailable(n)||!q.getValueOrDefault(t.show,n,!0)};$0.prototype._setOptions=de.throwInstantiationError;$0.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(!u(s.fill)||s.fill.getValue(e)){let l=t.fillMaterialProperty,f=l instanceof Nt,d,p=t._getIsClosed(c);if(f)d=new nn({closed:p,flat:n&&!t._supportsMaterialsforEntitiesOnTerrain});else{let g=qo.getValue(e,l,this._material);this._material=g,d=new so({material:g,translucent:g.isTranslucent(),closed:p})}if(n)c.vertexFormat=nn.VERTEX_FORMAT,this._primitive=o.add(new Ic({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 En({geometryInstances:g,appearance:d,asynchronous:!1,shadows:a}))}}if(!n&&u(s.outline)&&s.outline.getValue(e)){let l=this._geometryUpdater.createOutlineGeometryInstance(e),f=q.getValueOrDefault(s.outlineWidth,e,1);this._outlinePrimitive=i.add(new En({geometryInstances:l,appearance:new nn({flat:!0,translucent:l.attributes.color.value[3]!==255,renderState:{lineWidth:t._scene.clampLineWidth(f)}}),asynchronous:!1,shadows:a}))}};$0.prototype.getBoundingSphere=function(e){let t=this._entity,n=this._primitive,i=this._outlinePrimitive,o;return u(n)&&n.show&&n.ready&&(o=n.getGeometryInstanceAttributes(t),u(o)&&u(o.boundingSphere))?(se.clone(o.boundingSphere,e),ot.DONE):u(i)&&i.show&&i.ready&&(o=i.getGeometryInstanceAttributes(t),u(o)&&u(o.boundingSphere))?(se.clone(o.boundingSphere,e),ot.DONE):u(n)&&!n.ready||u(i)&&!i.ready?ot.PENDING:ot.FAILED};$0.prototype.isDestroyed=function(){return!1};$0.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),le(this)};var ii=$0;var k1e={NONE:0,GEODESIC:1,RHUMB:2},qt=Object.freeze(k1e);var Bee=P.EPSILON10;function U1e(e,t,n,i){if(!u(e))return;n=y(n,!1);let o=u(i),r=e.length;if(r<2)return e;let s,a=e[0],c,l,f=0,d=-1;for(s=1;s<r;++s)c=e[s],t(a,c,Bee)?(u(l)||(l=e.slice(0,s),f=s-1,d=0),o&&i.push(s)):(u(l)&&(l.push(c),f=s,o&&(d=i.length)),a=c);return n&&t(e[0],e[r-1],Bee)&&(o&&(u(l)?i.splice(d,0,f):i.push(r-1)),u(l)?l.length-=1:l=e.slice(0,-1)),u(l)?l:e}var yo=U1e;function V1e(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),l=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,A=b*b,C=1+x-3*b/4+5*T/4-175*A/64,S=1-x+15*b/8-35*T/8,w=1-3*x+35*b/4,D=1-5*x,O=C*f-S*Math.sin(2*f)*x/2-w*Math.sin(4*f)*b/16-D*Math.sin(6*f)*T/48-Math.sin(8*f)*5*A/512,R=e._constants;R.a=n,R.b=i,R.f=o,R.cosineHeading=r,R.sineHeading=s,R.tanU=a,R.cosineU=c,R.sineU=l,R.sigma=f,R.sineAlpha=d,R.sineSquaredAlpha=p,R.cosineSquaredAlpha=g,R.cosineAlpha=m,R.u2Over4=x,R.u4Over16=b,R.u6Over64=T,R.u8Over256=A,R.a0=C,R.a1=S,R.a2=w,R.a3=D,R.distanceRatio=O}function z1e(e,t){return e*t*(4+e*(4-3*t))/16}function kee(e,t,n,i,o,r,s){let a=z1e(e,n);return(1-a)*e*t*(i+a*o*(s+a*r*(2*s*s-1)))}function H1e(e,t,n,i,o,r,s){let a=(t-n)/t,c=r-i,l=Math.atan((1-a)*Math.tan(o)),f=Math.atan((1-a)*Math.tan(s)),d=Math.cos(l),p=Math.sin(l),g=Math.cos(f),m=Math.sin(f),x=d*g,b=d*m,T=p*m,A=p*g,C=c,S=P.TWO_PI,w=Math.cos(C),D=Math.sin(C),O,R,L,N,_;do{w=Math.cos(C),D=Math.sin(C);let k=b-A*w;L=Math.sqrt(g*g*D*D+k*k),R=T+x*w,O=Math.atan2(L,R);let Y;L===0?(Y=0,N=1):(Y=x*D/L,N=1-Y*Y),S=C,_=R-2*T/N,isFinite(_)||(_=0),C=c+kee(a,Y,N,O,L,R,_)}while(Math.abs(C-S)>P.EPSILON12);let E=N*(t*t-n*n)/(n*n),v=1+E*(4096+E*(E*(320-175*E)-768))/16384,I=E*(256+E*(E*(74-47*E)-128))/1024,M=_*_,B=I*L*(_+I*(R*(2*M-1)-I*_*(4*L*L-3)*(4*M-3)/6)/4),V=n*v*(O-B),U=Math.atan2(g*D,b-A*w),G=Math.atan2(d*D,b*w-A);e._distance=V,e._startHeading=U,e._endHeading=G,e._uSquared=E}var G1e=new h,uG=new h;function Uee(e,t,n,i){let o=h.normalize(i.cartographicToCartesian(t,uG),G1e),r=h.normalize(i.cartographicToCartesian(n,uG),uG);H1e(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,V1e(e)}function JI(e,t,n){let i=y(n,ie.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,u(e)&&u(t)&&Uee(this,e,t,i)}Object.defineProperties(JI.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}}});JI.prototype.setEndPoints=function(e,t){Uee(this,e,t,this._ellipsoid)};JI.prototype.interpolateUsingFraction=function(e,t){return this.interpolateUsingSurfaceDistance(this._distance*e,t)};JI.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),l=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)*l+539*g*f/1536,A=Math.asin(Math.sin(T)*n.cosineAlpha),C=Math.atan(n.a/n.b*Math.tan(A));T=T-n.sigma;let S=Math.cos(2*n.sigma+T),w=Math.sin(T),D=Math.cos(T),O=n.cosineU*D,R=n.sineU*w,N=Math.atan2(w*n.sineHeading,O-R*n.cosineHeading)-kee(n.f,n.sineAlpha,n.cosineSquaredAlpha,T,w,D,S);return u(t)?(t.longitude=this._start.longitude+N,t.latitude=C,t.height=0,t):new fe(this._start.longitude+N,C,0)};var nf=JI;function dG(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,l=n,f=Math.sin(2*l),d=Math.sin(4*l),p=Math.sin(6*l),g=Math.sin(8*l),m=Math.sin(10*l),x=Math.sin(12*l);return t*((1-i/4-3*o/64-5*r/256-175*s/16384-441*a/65536-4851*c/1048576)*l-(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 W1e(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,l=c*c,f=l*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),A=Math.sin(6*i),C=Math.cos(6*i),S=Math.sin(8*i),w=Math.cos(8*i),D=Math.sin(10*i),O=Math.cos(10*i),R=Math.sin(12*i);return i+i*c/4+7*i*l/64+15*i*f/256+579*i*d/16384+1515*i*p/65536+16837*i*g/1048576+(3*i*l/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)*C+(1097*i*p/65536+42783*i*g/1048576)*w+8011*i*g/1048576*O+(3*c/8+3*l/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*l/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)*A+(1097*d/131072+1097*p/65536+225797*g/10485760-1097*o*g/65536)*S+(8011*p/2621440+8011*g/1048576)*D+293393*g/251658240*R}function CA(e,t){if(e===0)return Math.log(Math.tan(.5*(P.PI_OVER_TWO+t)));let n=e*Math.sin(t);return Math.log(Math.tan(.5*(P.PI_OVER_TWO+t)))-e/2*Math.log((1+n)/(1-n))}function j1e(e,t,n,i,o){let r=CA(e._ellipticity,n),s=CA(e._ellipticity,o);return Math.atan2(P.negativePiToPi(i-t),s-r)}function q1e(e,t,n,i,o,r,s){let a=e._heading,c=r-i,l=0;if(P.equalsEpsilon(Math.abs(a),P.PI_OVER_TWO,P.EPSILON8))if(t===n)l=t*Math.cos(o)*P.negativePiToPi(c);else{let f=Math.sin(o);l=t*Math.cos(o)*P.negativePiToPi(c)/Math.sqrt(1-e._ellipticitySquared*f*f)}else{let f=dG(e._ellipticity,t,o);l=(dG(e._ellipticity,t,s)-f)/Math.cos(a)}return Math.abs(l)}var Y1e=new h,fG=new h;function Vee(e,t,n,i){let o=h.normalize(i.cartographicToCartesian(t,fG),Y1e),r=h.normalize(i.cartographicToCartesian(n,fG),fG),s=i.maximumRadius,a=i.minimumRadius,c=s*s,l=a*a;e._ellipticitySquared=(c-l)/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=j1e(e,t.longitude,t.latitude,n.longitude,n.latitude),e._distance=q1e(e,i.maximumRadius,i.minimumRadius,t.longitude,t.latitude,n.longitude,n.latitude)}function zee(e,t,n,i,o,r){if(n===0)return fe.clone(e,r);let s=o*o,a,c,l;if(Math.abs(P.PI_OVER_TWO-Math.abs(t))>P.EPSILON8){let f=dG(o,i,e.latitude),d=n*Math.cos(t),p=f+d;c=W1e(p,o,i);let g=CA(o,e.latitude),m=CA(o,c);l=Math.tan(t)*(m-g),a=P.negativePiToPi(e.longitude+l)}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)}l=n/f,t>0?a=P.negativePiToPi(e.longitude+l):a=P.negativePiToPi(e.longitude-l)}return u(r)?(r.longitude=a,r.latitude=c,r.height=0,r):new fe(a,c,0)}function up(e,t,n){let i=y(n,ie.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,u(e)&&u(t)&&Vee(this,e,t,i)}Object.defineProperties(up.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}}});up.fromStartHeadingDistance=function(e,t,n,i,o){let r=y(i,ie.WGS84),s=r.maximumRadius,a=r.minimumRadius,c=s*s,l=a*a,f=Math.sqrt((c-l)/c);t=P.negativePiToPi(t);let d=zee(e,t,n,r.maximumRadius,f);return!u(o)||u(i)&&!i.equals(o.ellipsoid)?new up(e,d,r):(o.setEndPoints(e,d),o)};up.prototype.setEndPoints=function(e,t){Vee(this,e,t,this._ellipsoid)};up.prototype.interpolateUsingFraction=function(e,t){return this.interpolateUsingSurfaceDistance(e*this._distance,t)};up.prototype.interpolateUsingSurfaceDistance=function(e,t){return zee(this._start,this._heading,e,this._ellipsoid.maximumRadius,this._ellipticity,t)};up.prototype.findIntersectionWithLongitude=function(e,t){let n=this._ellipticity,i=this._heading,o=Math.abs(i),r=this._start;if(e=P.negativePiToPi(e),P.equalsEpsilon(Math.abs(e),Math.PI,P.EPSILON14)&&(e=P.sign(r.longitude)*Math.PI),u(t)||(t=new fe),Math.abs(P.PI_OVER_TWO-o)<=P.EPSILON8)return t.longitude=e,t.latitude=r.latitude,t.height=0,t;if(P.equalsEpsilon(Math.abs(P.PI_OVER_TWO-o),P.PI_OVER_TWO,P.EPSILON8))return P.equalsEpsilon(e,r.longitude,P.EPSILON12)?void 0:(t.longitude=e,t.latitude=P.PI_OVER_TWO*P.sign(P.PI_OVER_TWO-i),t.height=0,t);let s=r.latitude,a=n*Math.sin(s),c=Math.tan(.5*(P.PI_OVER_TWO+s))*Math.exp((e-r.longitude)/Math.tan(i)),l=(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/l,n/2))-P.PI_OVER_TWO}while(!P.equalsEpsilon(f,d,P.EPSILON12));return t.longitude=e,t.latitude=f,t.height=0,t};up.prototype.findIntersectionWithLatitude=function(e,t){let n=this._ellipticity,i=this._heading,o=this._start;if(P.equalsEpsilon(Math.abs(i),P.PI_OVER_TWO,P.EPSILON8))return;let r=CA(n,o.latitude),s=CA(n,e),a=Math.tan(i)*(s-r),c=P.negativePiToPi(o.longitude+a);return u(t)?(t.longitude=c,t.latitude=e,t.height=0,t):new fe(c,e,0)};var _a=up;var bG=[wi,Di],X1e=bG.length,ate=Math.cos(P.toRadians(30)),Hee=Math.cos(P.toRadians(150)),cte=0,lte=1e3;function gg(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=ie.WGS84,this._projectionIndex=0,this._workerName="createGroundPolylineGeometry",this._scene3DOnly=!1}Object.defineProperties(gg.prototype,{packedLength:{get:function(){return 1+this._positions.length*3+1+1+1+ie.packedLength+1+1}}});gg.setProjectionAndEllipsoid=function(e,t){let n=0;for(let i=0;i<X1e;i++)if(t instanceof bG[i]){n=i;break}e._projectionIndex=n,e._ellipsoid=t.ellipsoid};var K1e=new h,Gee=new h,Wee=new h;function xG(e,t,n,i,o){let r=Pc(i,e,0,K1e),s=Pc(i,e,n,Gee),a=Pc(i,t,0,Wee),c=fp(s,r,Gee),l=fp(a,r,Wee);return h.cross(l,c,o),h.normalize(o,o)}var Z1e=new fe,$1e=new h,Q1e=new h,J1e=new h;function hG(e,t,n,i,o,r,s,a,c,l,f){if(o===0)return;let d;r===qt.GEODESIC?d=new nf(e,t,s):r===qt.RHUMB&&(d=new _a(e,t,s));let p=d.surfaceDistance;if(p<o)return;let g=xG(e,t,i,s,J1e),m=Math.ceil(p/o),x=p/m,b=x,T=m-1,A=a.length;for(let C=0;C<T;C++){let S=d.interpolateUsingSurfaceDistance(b,Z1e),w=Pc(s,S,n,$1e),D=Pc(s,S,i,Q1e);h.pack(g,a,A),h.pack(w,c,A),h.pack(D,l,A),f.push(S.latitude),f.push(S.longitude),A+=3,b+=x}}var mG=new fe;function Pc(e,t,n,i){return fe.clone(t,mG),mG.height=n,fe.toCartesian(mG,e,i)}gg.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,ie.pack(e._ellipsoid,t,i),i+=ie.packedLength,t[i++]=e._projectionIndex,t[i++]=e._scene3DOnly?1:0,t};gg.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++],l=ie.unpack(e,i);i+=ie.packedLength;let f=e[i++],d=e[i++]===1;return u(n)||(n=new gg({positions:r})),n._positions=r,n.granularity=s,n.loop=a,n.arcType=c,n._ellipsoid=l,n._projectionIndex=f,n._scene3DOnly=d,n};function fp(e,t,n){return h.subtract(e,t,n),h.normalize(n,n),n}function jee(e,t,n,i){return i=fp(e,t,i),i=h.cross(i,n,i),i=h.normalize(i,i),i=h.cross(n,i,i),i}var eOe=new h,tOe=new h,nOe=new h,ute=new h,iOe=0,oOe=-1;function pG(e,t,n,i,o){let r=fp(n,t,ute),s=jee(e,t,r,eOe),a=jee(i,t,r,tOe);if(P.equalsEpsilon(h.dot(s,a),oOe,P.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,nOe);return h.dot(a,c)<iOe&&(o=h.negate(o,o)),o}var Sk=en.fromPointNormal(h.ZERO,h.UNIT_Y),rOe=new h,sOe=new h,aOe=new h,cOe=new h,lOe=new h,Ak=new h,Ck=new fe,qee=new fe,Yee=new fe;gg.createGeometry=function(e){let t=!e._scene3DOnly,n=e.loop,i=e._ellipsoid,o=e.granularity,r=e.arcType,s=new bG[e._projectionIndex](i),a=cte,c=lte,l,f,d=e._positions,p=d.length;p===2&&(n=!1);let g,m,x,b,T=new _a(void 0,void 0,i),A,C,S,w=[d[0]];for(f=0;f<p-1;f++)g=d[f],m=d[f+1],A=xi.lineSegmentPlane(g,m,Sk,Ak),u(A)&&!h.equalsEpsilon(A,g,P.EPSILON7)&&!h.equalsEpsilon(A,m,P.EPSILON7)&&(e.arcType===qt.GEODESIC?w.push(h.clone(A)):e.arcType===qt.RHUMB&&(S=i.cartesianToCartographic(A,Ck).longitude,x=i.cartesianToCartographic(g,Ck),b=i.cartesianToCartographic(m,qee),T.setEndPoints(x,b),C=T.findIntersectionWithLongitude(S,Yee),A=i.cartographicToCartesian(C,Ak),u(A)&&!h.equalsEpsilon(A,g,P.EPSILON7)&&!h.equalsEpsilon(A,m,P.EPSILON7)&&w.push(h.clone(A)))),w.push(m);n&&(g=d[p-1],m=d[0],A=xi.lineSegmentPlane(g,m,Sk,Ak),u(A)&&!h.equalsEpsilon(A,g,P.EPSILON7)&&!h.equalsEpsilon(A,m,P.EPSILON7)&&(e.arcType===qt.GEODESIC?w.push(h.clone(A)):e.arcType===qt.RHUMB&&(S=i.cartesianToCartographic(A,Ck).longitude,x=i.cartesianToCartographic(g,Ck),b=i.cartesianToCartographic(m,qee),T.setEndPoints(x,b),C=T.findIntersectionWithLongitude(S,Yee),A=i.cartographicToCartesian(C,Ak),u(A)&&!h.equalsEpsilon(A,g,P.EPSILON7)&&!h.equalsEpsilon(A,m,P.EPSILON7)&&w.push(h.clone(A)))));let D=w.length,O=new Array(D);for(f=0;f<D;f++){let j=fe.fromCartesian(w[f],i);j.height=0,O[f]=j}if(O=yo(O,fe.equalsEpsilon),D=O.length,D<2)return;let R=[],L=[],N=[],_=[],E=rOe,v=sOe,I=aOe,M=cOe,B=lOe,V=O[0],U=O[1],G=O[D-1];for(E=Pc(i,G,a,E),M=Pc(i,U,a,M),v=Pc(i,V,a,v),I=Pc(i,V,c,I),n?B=pG(E,v,I,M,B):B=xG(V,U,c,i,B),h.pack(B,L,0),h.pack(v,N,0),h.pack(I,_,0),R.push(V.latitude),R.push(V.longitude),hG(V,U,a,c,o,r,i,L,N,_,R),f=1;f<D-1;++f){E=h.clone(v,E),v=h.clone(M,v);let j=O[f];Pc(i,j,c,I),Pc(i,O[f+1],a,M),pG(E,v,I,M,B),l=L.length,h.pack(B,L,l),h.pack(v,N,l),h.pack(I,_,l),R.push(j.latitude),R.push(j.longitude),hG(O[f],O[f+1],a,c,o,r,i,L,N,_,R)}let k=O[D-1],Y=O[D-2];if(v=Pc(i,k,a,v),I=Pc(i,k,c,I),n){let j=O[0];E=Pc(i,Y,a,E),M=Pc(i,j,a,M),B=pG(E,v,I,M,B)}else B=xG(Y,k,c,i,B);if(l=L.length,h.pack(B,L,l),h.pack(v,N,l),h.pack(I,_,l),R.push(k.latitude),R.push(k.longitude),n){for(hG(k,V,a,c,o,r,i,L,N,_,R),l=L.length,f=0;f<3;++f)L[l+f]=L[f],N[l+f]=N[f],_[l+f]=_[f];R.push(V.latitude),R.push(V.longitude)}return NOe(n,s,N,_,L,R,t)};var uOe=new h,fOe=new Q,dOe=new Le;function Xee(e,t,n,i){let o=fp(n,t,uOe),r=h.dot(o,e);if(r>ate||r<Hee){let s=fp(i,n,ute),a=r<Hee?P.PI_OVER_TWO:-P.PI_OVER_TWO,c=Le.fromAxisAngle(s,a,dOe),l=Q.fromQuaternion(c,fOe);return Q.multiplyByVector(l,e,e),!0}return!1}var Kee=new fe,hOe=new h,Zee=new h;function eP(e,t,n,i,o){let r=fe.toCartesian(t,e._ellipsoid,hOe),s=h.add(r,n,Zee),a=!1,c=e._ellipsoid,l=c.cartesianToCartographic(s,Kee);Math.abs(t.longitude-l.longitude)>P.PI_OVER_TWO&&(a=!0,s=h.subtract(r,n,Zee),l=c.cartesianToCartographic(s,Kee)),l.height=0;let f=e.project(l,o);return o=h.subtract(f,i,o),o.z=0,o=h.normalize(o,o),a&&h.negate(o,o),o}var mOe=new h,$ee=new h;function Qee(e,t,n,i,o,r){let s=h.subtract(t,e,mOe);h.normalize(s,s);let a=n-cte,c=h.multiplyByScalar(s,a,$ee);h.add(e,c,o);let l=i-lte;c=h.multiplyByScalar(s,l,$ee),h.add(t,c,r)}var pOe=new h;function Ek(e,t){let n=en.getPointDistance(Sk,e),i=en.getPointDistance(Sk,t),o=pOe;P.equalsEpsilon(n,0,P.EPSILON2)?(o=fp(t,e,o),h.multiplyByScalar(o,P.EPSILON2,o),h.add(e,o,e)):P.equalsEpsilon(i,0,P.EPSILON2)&&(o=fp(e,t,o),h.multiplyByScalar(o,P.EPSILON2,o),h.add(t,o,t))}function _Oe(e,t){let n=Math.abs(e.longitude),i=Math.abs(t.longitude);if(P.equalsEpsilon(n,P.PI,P.EPSILON11)){let o=P.sign(t.longitude);return e.longitude=o*(n-P.EPSILON11),1}else if(P.equalsEpsilon(i,P.PI,P.EPSILON11)){let o=P.sign(e.longitude);return t.longitude=o*(i-P.EPSILON11),2}return 0}var fte=new fe,dte=new fe,Jee=new h,_G=new h,ete=new h,tte=new h,gOe=new h,nte=new h,yOe=[fte,dte],xOe=new ce,bOe=new h,TOe=new h,AOe=new h,COe=new h,EOe=new h,SOe=new h,gG=new h,yG=new h,wOe=new h,vOe=new h,DOe=new h,ite=new h,IOe=new h,POe=new h,OOe=new jn,ROe=new jn,ote=new h,MOe=new h,rte=new h,LOe=[new se,new se],hte=[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],ste=hte.length;function NOe(e,t,n,i,o,r,s){let a,c,l=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),A=new Float32Array(p),C=new Float32Array(p),S=new Float32Array(p),w,D,O,R;s&&(w=new Float32Array(p),D=new Float32Array(p),O=new Float32Array(p),R=new Float32Array(d*2));let L=r.length/2,N=0,_=fte;_.height=0;let E=dte;E.height=0;let v=Jee,I=_G;if(s)for(c=0,a=1;a<L;a++)_.latitude=r[c],_.longitude=r[c+1],E.latitude=r[c+2],E.longitude=r[c+3],v=t.project(_,v),I=t.project(E,I),N+=h.distance(v,I),c+=2;let M=i.length/3;I=h.unpack(i,0,I);let B=0;for(c=3,a=1;a<M;a++)v=h.clone(I,v),I=h.unpack(i,c,I),B+=h.distance(v,I),c+=3;let V;c=3;let U=0,G=0,k=0,Y=0,j=!1,$=h.unpack(n,0,tte),W=h.unpack(i,0,_G),K=h.unpack(o,0,nte);if(e){let De=h.unpack(n,n.length-6,ete);Xee(K,De,$,W)&&(K=h.negate(K,K))}let Z=0,me=0,xe=0;for(a=0;a<f;a++){let De=h.clone($,ete),Re=h.clone(W,Jee),ze=h.clone(K,gOe);j&&(ze=h.negate(ze,ze)),$=h.unpack(n,c,tte),W=h.unpack(i,c,_G),K=h.unpack(o,c,nte),j=Xee(K,De,$,W),_.latitude=r[U],_.longitude=r[U+1],E.latitude=r[U+2],E.longitude=r[U+3];let ut,Vt,cn,ft;if(s){let ji=_Oe(_,E);ut=t.project(_,EOe),Vt=t.project(E,SOe);let br=fp(Vt,ut,ote);br.y=Math.abs(br.y),cn=gG,ft=yG,ji===0||h.dot(br,h.UNIT_Y)>ate?(cn=eP(t,_,ze,ut,gG),ft=eP(t,E,K,Vt,yG)):ji===1?(ft=eP(t,E,K,Vt,yG),cn.x=0,cn.y=P.sign(_.longitude-Math.abs(E.longitude)),cn.z=0):(cn=eP(t,_,ze,ut,gG),ft.x=0,ft.y=P.sign(_.longitude-E.longitude),ft.z=0)}let _n=h.distance(Re,W),Mn=jn.fromCartesian(De,OOe),Ft=h.subtract($,De,wOe),Ot=h.normalize(Ft,ite),he=h.subtract(Re,De,vOe);he=h.normalize(he,he);let be=h.cross(Ot,he,ite);be=h.normalize(be,be);let Gt=h.cross(he,ze,IOe);Gt=h.normalize(Gt,Gt);let rt=h.subtract(W,$,DOe);rt=h.normalize(rt,rt);let Si=h.cross(K,rt,POe);Si=h.normalize(Si,Si);let Zi=_n/B,Us=Z/B,Lo=0,fr,is,Be,Ke=0,qe=0;if(s){Lo=h.distance(ut,Vt),fr=jn.fromCartesian(ut,ROe),is=h.subtract(Vt,ut,ote),Be=h.normalize(is,MOe);let ji=Be.x;Be.x=Be.y,Be.y=-ji,Ke=Lo/N,qe=me/N}for(V=0;V<8;V++){let ji=Y+V*4,br=G+V*2,Gn=ji+3,Ln=V<4?1:-1,On=V===2||V===3||V===6||V===7?1:-1;h.pack(Mn.high,b,ji),b[Gn]=Ft.x,h.pack(Mn.low,T,ji),T[Gn]=Ft.y,h.pack(Gt,A,ji),A[Gn]=Ft.z,h.pack(Si,C,ji),C[Gn]=Zi*Ln,h.pack(be,S,ji);let di=Us*On;di===0&&On<0&&(di=9),S[Gn]=di,s&&(w[ji]=fr.high.x,w[ji+1]=fr.high.y,w[ji+2]=fr.low.x,w[ji+3]=fr.low.y,O[ji]=-cn.y,O[ji+1]=cn.x,O[ji+2]=ft.y,O[ji+3]=-ft.x,D[ji]=is.x,D[ji+1]=is.y,D[ji+2]=Be.x,D[ji+3]=Be.y,R[br]=Ke*Ln,di=qe*On,di===0&&On<0&&(di=9),R[br+1]=di)}let Xe=AOe,ht=COe,mt=bOe,hn=TOe,lo=ce.fromCartographicArray(yOe,xOe),bo=li.getMinimumMaximumHeights(lo,l),os=bo.minimumTerrainHeight,xs=bo.maximumTerrainHeight;xe+=Math.abs(os),xe+=Math.abs(xs),Qee(De,Re,os,xs,Xe,mt),Qee($,W,os,xs,ht,hn);let No=h.multiplyByScalar(be,P.EPSILON5,rte);h.add(Xe,No,Xe),h.add(ht,No,ht),h.add(mt,No,mt),h.add(hn,No,hn),Ek(Xe,ht),Ek(mt,hn),h.pack(Xe,x,k),h.pack(ht,x,k+3),h.pack(hn,x,k+6),h.pack(mt,x,k+9),No=h.multiplyByScalar(be,-2*P.EPSILON5,rte),h.add(Xe,No,Xe),h.add(ht,No,ht),h.add(mt,No,mt),h.add(hn,No,hn),Ek(Xe,ht),Ek(mt,hn),h.pack(Xe,x,k+12),h.pack(ht,x,k+15),h.pack(hn,x,k+18),h.pack(mt,x,k+21),U+=2,c+=3,G+=16,k+=24,Y+=32,Z+=_n,me+=Lo}c=0;let re=0;for(a=0;a<f;a++){for(V=0;V<ste;V++)m[c+V]=hte[V]+re;re+=8,c+=ste}let ye=LOe;se.fromVertices(n,h.ZERO,3,ye[0]),se.fromVertices(i,h.ZERO,3,ye[1]);let ge=se.fromBoundingSpheres(ye);ge.radius+=xe/(f*2);let Ae={position:new we({componentDatatype:X.DOUBLE,componentsPerAttribute:3,normalize:!1,values:x}),startHiAndForwardOffsetX:_g(b),startLoAndForwardOffsetY:_g(T),startNormalAndForwardOffsetZ:_g(A),endNormalAndTextureCoordinateNormalizationX:_g(C),rightNormalAndTextureCoordinateNormalizationY:_g(S)};return s&&(Ae.startHiLo2D=_g(w),Ae.offsetAndRight2D=_g(D),Ae.startEndNormals2D=_g(O),Ae.texcoordNormalization2D=new we({componentDatatype:X.FLOAT,componentsPerAttribute:2,normalize:!1,values:R})),new st({attributes:Ae,indices:m,boundingSphere:ge})}function _g(e){return new we({componentDatatype:X.FLOAT,componentsPerAttribute:4,normalize:!1,values:e})}gg._projectNormal=eP;var Q0=gg;var tP=`in vec4 v_startPlaneNormalEcAndHalfWidth;
  4419. in vec4 v_endPlaneNormalEcAndBatchId;
  4420. in vec4 v_rightPlaneEC; // Technically can compute distance for this here
  4421. in vec4 v_endEcAndStartEcX;
  4422. in vec4 v_texcoordNormalizationAndStartEcYZ;
  4423. #ifdef PER_INSTANCE_COLOR
  4424. in vec4 v_color;
  4425. #endif
  4426. void main(void)
  4427. {
  4428. float logDepthOrDepth = czm_branchFreeTernary(czm_sceneMode == czm_sceneMode2D, gl_FragCoord.z, czm_unpackDepth(texture(czm_globeDepthTexture, gl_FragCoord.xy / czm_viewport.zw)));
  4429. vec3 ecStart = vec3(v_endEcAndStartEcX.w, v_texcoordNormalizationAndStartEcYZ.zw);
  4430. // Discard for sky
  4431. if (logDepthOrDepth == 0.0) {
  4432. #ifdef DEBUG_SHOW_VOLUME
  4433. out_FragColor = vec4(1.0, 0.0, 0.0, 0.5);
  4434. return;
  4435. #else // DEBUG_SHOW_VOLUME
  4436. discard;
  4437. #endif // DEBUG_SHOW_VOLUME
  4438. }
  4439. vec4 eyeCoordinate = czm_windowToEyeCoordinates(gl_FragCoord.xy, logDepthOrDepth);
  4440. eyeCoordinate /= eyeCoordinate.w;
  4441. float halfMaxWidth = v_startPlaneNormalEcAndHalfWidth.w * czm_metersPerPixel(eyeCoordinate);
  4442. // Check distance of the eye coordinate against the right-facing plane
  4443. float widthwiseDistance = czm_planeDistance(v_rightPlaneEC, eyeCoordinate.xyz);
  4444. // Check eye coordinate against the mitering planes
  4445. float distanceFromStart = czm_planeDistance(v_startPlaneNormalEcAndHalfWidth.xyz, -dot(ecStart, v_startPlaneNormalEcAndHalfWidth.xyz), eyeCoordinate.xyz);
  4446. float distanceFromEnd = czm_planeDistance(v_endPlaneNormalEcAndBatchId.xyz, -dot(v_endEcAndStartEcX.xyz, v_endPlaneNormalEcAndBatchId.xyz), eyeCoordinate.xyz);
  4447. if (abs(widthwiseDistance) > halfMaxWidth || distanceFromStart < 0.0 || distanceFromEnd < 0.0) {
  4448. #ifdef DEBUG_SHOW_VOLUME
  4449. out_FragColor = vec4(1.0, 0.0, 0.0, 0.5);
  4450. return;
  4451. #else // DEBUG_SHOW_VOLUME
  4452. discard;
  4453. #endif // DEBUG_SHOW_VOLUME
  4454. }
  4455. // Check distance of the eye coordinate against start and end planes with normals in the right plane.
  4456. // For computing unskewed lengthwise texture coordinate.
  4457. // Can also be used for clipping extremely pointy miters, but in practice unnecessary because of miter breaking.
  4458. // aligned plane: cross the right plane normal with miter plane normal, then cross the result with right again to point it more "forward"
  4459. vec3 alignedPlaneNormal;
  4460. // start aligned plane
  4461. alignedPlaneNormal = cross(v_rightPlaneEC.xyz, v_startPlaneNormalEcAndHalfWidth.xyz);
  4462. alignedPlaneNormal = normalize(cross(alignedPlaneNormal, v_rightPlaneEC.xyz));
  4463. distanceFromStart = czm_planeDistance(alignedPlaneNormal, -dot(alignedPlaneNormal, ecStart), eyeCoordinate.xyz);
  4464. // end aligned plane
  4465. alignedPlaneNormal = cross(v_rightPlaneEC.xyz, v_endPlaneNormalEcAndBatchId.xyz);
  4466. alignedPlaneNormal = normalize(cross(alignedPlaneNormal, v_rightPlaneEC.xyz));
  4467. distanceFromEnd = czm_planeDistance(alignedPlaneNormal, -dot(alignedPlaneNormal, v_endEcAndStartEcX.xyz), eyeCoordinate.xyz);
  4468. #ifdef PER_INSTANCE_COLOR
  4469. out_FragColor = czm_gammaCorrect(v_color);
  4470. #else // PER_INSTANCE_COLOR
  4471. // Clamp - distance to aligned planes may be negative due to mitering,
  4472. // so fragment texture coordinate might be out-of-bounds.
  4473. float s = clamp(distanceFromStart / (distanceFromStart + distanceFromEnd), 0.0, 1.0);
  4474. s = (s * v_texcoordNormalizationAndStartEcYZ.x) + v_texcoordNormalizationAndStartEcYZ.y;
  4475. float t = (widthwiseDistance + halfMaxWidth) / (2.0 * halfMaxWidth);
  4476. czm_materialInput materialInput;
  4477. materialInput.s = s;
  4478. materialInput.st = vec2(s, t);
  4479. materialInput.str = vec3(s, t, 0.0);
  4480. czm_material material = czm_getMaterial(materialInput);
  4481. out_FragColor = vec4(material.diffuse + material.emission, material.alpha);
  4482. #endif // PER_INSTANCE_COLOR
  4483. // Premultiply alpha. Required for classification primitives on translucent globe.
  4484. out_FragColor.rgb *= out_FragColor.a;
  4485. czm_writeDepthClamp();
  4486. }
  4487. `;var nP=`in vec3 v_forwardDirectionEC;
  4488. in vec3 v_texcoordNormalizationAndHalfWidth;
  4489. in float v_batchId;
  4490. #ifdef PER_INSTANCE_COLOR
  4491. in vec4 v_color;
  4492. #else
  4493. in vec2 v_alignedPlaneDistances;
  4494. in float v_texcoordT;
  4495. #endif
  4496. float rayPlaneDistanceUnsafe(vec3 origin, vec3 direction, vec3 planeNormal, float planeDistance) {
  4497. // We don't expect the ray to ever be parallel to the plane
  4498. return (-planeDistance - dot(planeNormal, origin)) / dot(planeNormal, direction);
  4499. }
  4500. void main(void)
  4501. {
  4502. vec4 eyeCoordinate = gl_FragCoord;
  4503. eyeCoordinate /= eyeCoordinate.w;
  4504. #ifdef PER_INSTANCE_COLOR
  4505. out_FragColor = czm_gammaCorrect(v_color);
  4506. #else // PER_INSTANCE_COLOR
  4507. // Use distances for planes aligned with segment to prevent skew in dashing
  4508. float distanceFromStart = rayPlaneDistanceUnsafe(eyeCoordinate.xyz, -v_forwardDirectionEC, v_forwardDirectionEC.xyz, v_alignedPlaneDistances.x);
  4509. float distanceFromEnd = rayPlaneDistanceUnsafe(eyeCoordinate.xyz, v_forwardDirectionEC, -v_forwardDirectionEC.xyz, v_alignedPlaneDistances.y);
  4510. // Clamp - distance to aligned planes may be negative due to mitering
  4511. distanceFromStart = max(0.0, distanceFromStart);
  4512. distanceFromEnd = max(0.0, distanceFromEnd);
  4513. float s = distanceFromStart / (distanceFromStart + distanceFromEnd);
  4514. s = (s * v_texcoordNormalizationAndHalfWidth.x) + v_texcoordNormalizationAndHalfWidth.y;
  4515. czm_materialInput materialInput;
  4516. materialInput.s = s;
  4517. materialInput.st = vec2(s, v_texcoordT);
  4518. materialInput.str = vec3(s, v_texcoordT, 0.0);
  4519. czm_material material = czm_getMaterial(materialInput);
  4520. out_FragColor = vec4(material.diffuse + material.emission, material.alpha);
  4521. #endif // PER_INSTANCE_COLOR
  4522. }
  4523. `;var iP=`in vec3 position3DHigh;
  4524. in vec3 position3DLow;
  4525. in vec4 startHiAndForwardOffsetX;
  4526. in vec4 startLoAndForwardOffsetY;
  4527. in vec4 startNormalAndForwardOffsetZ;
  4528. in vec4 endNormalAndTextureCoordinateNormalizationX;
  4529. in vec4 rightNormalAndTextureCoordinateNormalizationY;
  4530. in vec4 startHiLo2D;
  4531. in vec4 offsetAndRight2D;
  4532. in vec4 startEndNormals2D;
  4533. in vec2 texcoordNormalization2D;
  4534. in float batchId;
  4535. out vec3 v_forwardDirectionEC;
  4536. out vec3 v_texcoordNormalizationAndHalfWidth;
  4537. out float v_batchId;
  4538. // For materials
  4539. #ifdef WIDTH_VARYING
  4540. out float v_width;
  4541. #endif
  4542. #ifdef ANGLE_VARYING
  4543. out float v_polylineAngle;
  4544. #endif
  4545. #ifdef PER_INSTANCE_COLOR
  4546. out vec4 v_color;
  4547. #else
  4548. out vec2 v_alignedPlaneDistances;
  4549. out float v_texcoordT;
  4550. #endif
  4551. // Morphing planes using SLERP or NLERP doesn't seem to work, so instead draw the material directly on the shadow volume.
  4552. // Morph views are from very far away and aren't meant to be used precisely, so this should be sufficient.
  4553. void main()
  4554. {
  4555. v_batchId = batchId;
  4556. // Start position
  4557. vec4 posRelativeToEye2D = czm_translateRelativeToEye(vec3(0.0, startHiLo2D.xy), vec3(0.0, startHiLo2D.zw));
  4558. vec4 posRelativeToEye3D = czm_translateRelativeToEye(startHiAndForwardOffsetX.xyz, startLoAndForwardOffsetY.xyz);
  4559. vec4 posRelativeToEye = czm_columbusViewMorph(posRelativeToEye2D, posRelativeToEye3D, czm_morphTime);
  4560. vec3 posEc2D = (czm_modelViewRelativeToEye * posRelativeToEye2D).xyz;
  4561. vec3 posEc3D = (czm_modelViewRelativeToEye * posRelativeToEye3D).xyz;
  4562. vec3 startEC = (czm_modelViewRelativeToEye * posRelativeToEye).xyz;
  4563. // Start plane
  4564. vec4 startPlane2D;
  4565. vec4 startPlane3D;
  4566. startPlane2D.xyz = czm_normal * vec3(0.0, startEndNormals2D.xy);
  4567. startPlane3D.xyz = czm_normal * startNormalAndForwardOffsetZ.xyz;
  4568. startPlane2D.w = -dot(startPlane2D.xyz, posEc2D);
  4569. startPlane3D.w = -dot(startPlane3D.xyz, posEc3D);
  4570. // Right plane
  4571. vec4 rightPlane2D;
  4572. vec4 rightPlane3D;
  4573. rightPlane2D.xyz = czm_normal * vec3(0.0, offsetAndRight2D.zw);
  4574. rightPlane3D.xyz = czm_normal * rightNormalAndTextureCoordinateNormalizationY.xyz;
  4575. rightPlane2D.w = -dot(rightPlane2D.xyz, posEc2D);
  4576. rightPlane3D.w = -dot(rightPlane3D.xyz, posEc3D);
  4577. // End position
  4578. posRelativeToEye2D = posRelativeToEye2D + vec4(0.0, offsetAndRight2D.xy, 0.0);
  4579. posRelativeToEye3D = posRelativeToEye3D + vec4(startHiAndForwardOffsetX.w, startLoAndForwardOffsetY.w, startNormalAndForwardOffsetZ.w, 0.0);
  4580. posRelativeToEye = czm_columbusViewMorph(posRelativeToEye2D, posRelativeToEye3D, czm_morphTime);
  4581. posEc2D = (czm_modelViewRelativeToEye * posRelativeToEye2D).xyz;
  4582. posEc3D = (czm_modelViewRelativeToEye * posRelativeToEye3D).xyz;
  4583. vec3 endEC = (czm_modelViewRelativeToEye * posRelativeToEye).xyz;
  4584. vec3 forwardEc3D = czm_normal * normalize(vec3(startHiAndForwardOffsetX.w, startLoAndForwardOffsetY.w, startNormalAndForwardOffsetZ.w));
  4585. vec3 forwardEc2D = czm_normal * normalize(vec3(0.0, offsetAndRight2D.xy));
  4586. // End plane
  4587. vec4 endPlane2D;
  4588. vec4 endPlane3D;
  4589. endPlane2D.xyz = czm_normal * vec3(0.0, startEndNormals2D.zw);
  4590. endPlane3D.xyz = czm_normal * endNormalAndTextureCoordinateNormalizationX.xyz;
  4591. endPlane2D.w = -dot(endPlane2D.xyz, posEc2D);
  4592. endPlane3D.w = -dot(endPlane3D.xyz, posEc3D);
  4593. // Forward direction
  4594. v_forwardDirectionEC = normalize(endEC - startEC);
  4595. vec2 cleanTexcoordNormalization2D;
  4596. cleanTexcoordNormalization2D.x = abs(texcoordNormalization2D.x);
  4597. cleanTexcoordNormalization2D.y = czm_branchFreeTernary(texcoordNormalization2D.y > 1.0, 0.0, abs(texcoordNormalization2D.y));
  4598. vec2 cleanTexcoordNormalization3D;
  4599. cleanTexcoordNormalization3D.x = abs(endNormalAndTextureCoordinateNormalizationX.w);
  4600. cleanTexcoordNormalization3D.y = rightNormalAndTextureCoordinateNormalizationY.w;
  4601. cleanTexcoordNormalization3D.y = czm_branchFreeTernary(cleanTexcoordNormalization3D.y > 1.0, 0.0, abs(cleanTexcoordNormalization3D.y));
  4602. v_texcoordNormalizationAndHalfWidth.xy = mix(cleanTexcoordNormalization2D, cleanTexcoordNormalization3D, czm_morphTime);
  4603. #ifdef PER_INSTANCE_COLOR
  4604. v_color = czm_batchTable_color(batchId);
  4605. #else // PER_INSTANCE_COLOR
  4606. // For computing texture coordinates
  4607. v_alignedPlaneDistances.x = -dot(v_forwardDirectionEC, startEC);
  4608. v_alignedPlaneDistances.y = -dot(-v_forwardDirectionEC, endEC);
  4609. #endif // PER_INSTANCE_COLOR
  4610. #ifdef WIDTH_VARYING
  4611. float width = czm_batchTable_width(batchId);
  4612. float halfWidth = width * 0.5;
  4613. v_width = width;
  4614. v_texcoordNormalizationAndHalfWidth.z = halfWidth;
  4615. #else
  4616. float halfWidth = 0.5 * czm_batchTable_width(batchId);
  4617. v_texcoordNormalizationAndHalfWidth.z = halfWidth;
  4618. #endif
  4619. // Compute a normal along which to "push" the position out, extending the miter depending on view distance.
  4620. // Position has already been "pushed" by unit length along miter normal, and miter normals are encoded in the planes.
  4621. // Decode the normal to use at this specific vertex, push the position back, and then push to where it needs to be.
  4622. // Since this is morphing, compute both 3D and 2D positions and then blend.
  4623. // ****** 3D ******
  4624. // Check distance to the end plane and start plane, pick the plane that is closer
  4625. vec4 positionEc3D = czm_modelViewRelativeToEye * czm_translateRelativeToEye(position3DHigh, position3DLow); // w = 1.0, see czm_computePosition
  4626. float absStartPlaneDistance = abs(czm_planeDistance(startPlane3D, positionEc3D.xyz));
  4627. float absEndPlaneDistance = abs(czm_planeDistance(endPlane3D, positionEc3D.xyz));
  4628. vec3 planeDirection = czm_branchFreeTernary(absStartPlaneDistance < absEndPlaneDistance, startPlane3D.xyz, endPlane3D.xyz);
  4629. vec3 upOrDown = normalize(cross(rightPlane3D.xyz, planeDirection)); // Points "up" for start plane, "down" at end plane.
  4630. vec3 normalEC = normalize(cross(planeDirection, upOrDown)); // In practice, the opposite seems to work too.
  4631. // Nudge the top vertex upwards to prevent flickering
  4632. vec3 geodeticSurfaceNormal = normalize(cross(normalEC, forwardEc3D));
  4633. geodeticSurfaceNormal *= float(0.0 <= rightNormalAndTextureCoordinateNormalizationY.w && rightNormalAndTextureCoordinateNormalizationY.w <= 1.0);
  4634. geodeticSurfaceNormal *= MAX_TERRAIN_HEIGHT;
  4635. positionEc3D.xyz += geodeticSurfaceNormal;
  4636. // Determine if this vertex is on the "left" or "right"
  4637. normalEC *= sign(endNormalAndTextureCoordinateNormalizationX.w);
  4638. // A "perfect" implementation would push along normals according to the angle against forward.
  4639. // In practice, just pushing the normal out by halfWidth is sufficient for morph views.
  4640. positionEc3D.xyz += halfWidth * max(0.0, czm_metersPerPixel(positionEc3D)) * normalEC; // prevent artifacts when czm_metersPerPixel is negative (behind camera)
  4641. // ****** 2D ******
  4642. // Check distance to the end plane and start plane, pick the plane that is closer
  4643. vec4 positionEc2D = czm_modelViewRelativeToEye * czm_translateRelativeToEye(position2DHigh.zxy, position2DLow.zxy); // w = 1.0, see czm_computePosition
  4644. absStartPlaneDistance = abs(czm_planeDistance(startPlane2D, positionEc2D.xyz));
  4645. absEndPlaneDistance = abs(czm_planeDistance(endPlane2D, positionEc2D.xyz));
  4646. planeDirection = czm_branchFreeTernary(absStartPlaneDistance < absEndPlaneDistance, startPlane2D.xyz, endPlane2D.xyz);
  4647. upOrDown = normalize(cross(rightPlane2D.xyz, planeDirection)); // Points "up" for start plane, "down" at end plane.
  4648. normalEC = normalize(cross(planeDirection, upOrDown)); // In practice, the opposite seems to work too.
  4649. // Nudge the top vertex upwards to prevent flickering
  4650. geodeticSurfaceNormal = normalize(cross(normalEC, forwardEc2D));
  4651. geodeticSurfaceNormal *= float(0.0 <= texcoordNormalization2D.y && texcoordNormalization2D.y <= 1.0);
  4652. geodeticSurfaceNormal *= MAX_TERRAIN_HEIGHT;
  4653. positionEc2D.xyz += geodeticSurfaceNormal;
  4654. // Determine if this vertex is on the "left" or "right"
  4655. normalEC *= sign(texcoordNormalization2D.x);
  4656. #ifndef PER_INSTANCE_COLOR
  4657. // Use vertex's sidedness to compute its texture coordinate.
  4658. v_texcoordT = clamp(sign(texcoordNormalization2D.x), 0.0, 1.0);
  4659. #endif
  4660. // A "perfect" implementation would push along normals according to the angle against forward.
  4661. // In practice, just pushing the normal out by halfWidth is sufficient for morph views.
  4662. positionEc2D.xyz += halfWidth * max(0.0, czm_metersPerPixel(positionEc2D)) * normalEC; // prevent artifacts when czm_metersPerPixel is negative (behind camera)
  4663. // Blend for actual position
  4664. gl_Position = czm_projection * mix(positionEc2D, positionEc3D, czm_morphTime);
  4665. #ifdef ANGLE_VARYING
  4666. // Approximate relative screen space direction of the line.
  4667. vec2 approxLineDirection = normalize(vec2(v_forwardDirectionEC.x, -v_forwardDirectionEC.y));
  4668. approxLineDirection.y = czm_branchFreeTernary(approxLineDirection.x == 0.0 && approxLineDirection.y == 0.0, -1.0, approxLineDirection.y);
  4669. v_polylineAngle = czm_fastApproximateAtan(approxLineDirection.x, approxLineDirection.y);
  4670. #endif
  4671. }
  4672. `;var oP=`in vec3 position3DHigh;
  4673. in vec3 position3DLow;
  4674. // In 2D and in 3D, texture coordinate normalization component signs encodes:
  4675. // * X sign - sidedness relative to right plane
  4676. // * Y sign - is negative OR magnitude is greater than 1.0 if vertex is on bottom of volume
  4677. #ifndef COLUMBUS_VIEW_2D
  4678. in vec4 startHiAndForwardOffsetX;
  4679. in vec4 startLoAndForwardOffsetY;
  4680. in vec4 startNormalAndForwardOffsetZ;
  4681. in vec4 endNormalAndTextureCoordinateNormalizationX;
  4682. in vec4 rightNormalAndTextureCoordinateNormalizationY;
  4683. #else
  4684. in vec4 startHiLo2D;
  4685. in vec4 offsetAndRight2D;
  4686. in vec4 startEndNormals2D;
  4687. in vec2 texcoordNormalization2D;
  4688. #endif
  4689. in float batchId;
  4690. out vec4 v_startPlaneNormalEcAndHalfWidth;
  4691. out vec4 v_endPlaneNormalEcAndBatchId;
  4692. out vec4 v_rightPlaneEC;
  4693. out vec4 v_endEcAndStartEcX;
  4694. out vec4 v_texcoordNormalizationAndStartEcYZ;
  4695. // For materials
  4696. #ifdef WIDTH_VARYING
  4697. out float v_width;
  4698. #endif
  4699. #ifdef ANGLE_VARYING
  4700. out float v_polylineAngle;
  4701. #endif
  4702. #ifdef PER_INSTANCE_COLOR
  4703. out vec4 v_color;
  4704. #endif
  4705. void main()
  4706. {
  4707. #ifdef COLUMBUS_VIEW_2D
  4708. vec3 ecStart = (czm_modelViewRelativeToEye * czm_translateRelativeToEye(vec3(0.0, startHiLo2D.xy), vec3(0.0, startHiLo2D.zw))).xyz;
  4709. vec3 forwardDirectionEC = czm_normal * vec3(0.0, offsetAndRight2D.xy);
  4710. vec3 ecEnd = forwardDirectionEC + ecStart;
  4711. forwardDirectionEC = normalize(forwardDirectionEC);
  4712. // Right plane
  4713. v_rightPlaneEC.xyz = czm_normal * vec3(0.0, offsetAndRight2D.zw);
  4714. v_rightPlaneEC.w = -dot(v_rightPlaneEC.xyz, ecStart);
  4715. // start plane
  4716. vec4 startPlaneEC;
  4717. startPlaneEC.xyz = czm_normal * vec3(0.0, startEndNormals2D.xy);
  4718. startPlaneEC.w = -dot(startPlaneEC.xyz, ecStart);
  4719. // end plane
  4720. vec4 endPlaneEC;
  4721. endPlaneEC.xyz = czm_normal * vec3(0.0, startEndNormals2D.zw);
  4722. endPlaneEC.w = -dot(endPlaneEC.xyz, ecEnd);
  4723. v_texcoordNormalizationAndStartEcYZ.x = abs(texcoordNormalization2D.x);
  4724. v_texcoordNormalizationAndStartEcYZ.y = texcoordNormalization2D.y;
  4725. #else // COLUMBUS_VIEW_2D
  4726. vec3 ecStart = (czm_modelViewRelativeToEye * czm_translateRelativeToEye(startHiAndForwardOffsetX.xyz, startLoAndForwardOffsetY.xyz)).xyz;
  4727. vec3 offset = czm_normal * vec3(startHiAndForwardOffsetX.w, startLoAndForwardOffsetY.w, startNormalAndForwardOffsetZ.w);
  4728. vec3 ecEnd = ecStart + offset;
  4729. vec3 forwardDirectionEC = normalize(offset);
  4730. // start plane
  4731. vec4 startPlaneEC;
  4732. startPlaneEC.xyz = czm_normal * startNormalAndForwardOffsetZ.xyz;
  4733. startPlaneEC.w = -dot(startPlaneEC.xyz, ecStart);
  4734. // end plane
  4735. vec4 endPlaneEC;
  4736. endPlaneEC.xyz = czm_normal * endNormalAndTextureCoordinateNormalizationX.xyz;
  4737. endPlaneEC.w = -dot(endPlaneEC.xyz, ecEnd);
  4738. // Right plane
  4739. v_rightPlaneEC.xyz = czm_normal * rightNormalAndTextureCoordinateNormalizationY.xyz;
  4740. v_rightPlaneEC.w = -dot(v_rightPlaneEC.xyz, ecStart);
  4741. v_texcoordNormalizationAndStartEcYZ.x = abs(endNormalAndTextureCoordinateNormalizationX.w);
  4742. v_texcoordNormalizationAndStartEcYZ.y = rightNormalAndTextureCoordinateNormalizationY.w;
  4743. #endif // COLUMBUS_VIEW_2D
  4744. v_endEcAndStartEcX.xyz = ecEnd;
  4745. v_endEcAndStartEcX.w = ecStart.x;
  4746. v_texcoordNormalizationAndStartEcYZ.zw = ecStart.yz;
  4747. #ifdef PER_INSTANCE_COLOR
  4748. v_color = czm_batchTable_color(batchId);
  4749. #endif // PER_INSTANCE_COLOR
  4750. // Compute a normal along which to "push" the position out, extending the miter depending on view distance.
  4751. // Position has already been "pushed" by unit length along miter normal, and miter normals are encoded in the planes.
  4752. // Decode the normal to use at this specific vertex, push the position back, and then push to where it needs to be.
  4753. vec4 positionRelativeToEye = czm_computePosition();
  4754. // Check distance to the end plane and start plane, pick the plane that is closer
  4755. vec4 positionEC = czm_modelViewRelativeToEye * positionRelativeToEye; // w = 1.0, see czm_computePosition
  4756. float absStartPlaneDistance = abs(czm_planeDistance(startPlaneEC, positionEC.xyz));
  4757. float absEndPlaneDistance = abs(czm_planeDistance(endPlaneEC, positionEC.xyz));
  4758. vec3 planeDirection = czm_branchFreeTernary(absStartPlaneDistance < absEndPlaneDistance, startPlaneEC.xyz, endPlaneEC.xyz);
  4759. vec3 upOrDown = normalize(cross(v_rightPlaneEC.xyz, planeDirection)); // Points "up" for start plane, "down" at end plane.
  4760. vec3 normalEC = normalize(cross(planeDirection, upOrDown)); // In practice, the opposite seems to work too.
  4761. // Extrude bottom vertices downward for far view distances, like for GroundPrimitives
  4762. upOrDown = cross(forwardDirectionEC, normalEC);
  4763. upOrDown = float(czm_sceneMode == czm_sceneMode3D) * upOrDown;
  4764. upOrDown = float(v_texcoordNormalizationAndStartEcYZ.y > 1.0 || v_texcoordNormalizationAndStartEcYZ.y < 0.0) * upOrDown;
  4765. upOrDown = min(GLOBE_MINIMUM_ALTITUDE, czm_geometricToleranceOverMeter * length(positionRelativeToEye.xyz)) * upOrDown;
  4766. positionEC.xyz += upOrDown;
  4767. v_texcoordNormalizationAndStartEcYZ.y = czm_branchFreeTernary(v_texcoordNormalizationAndStartEcYZ.y > 1.0, 0.0, abs(v_texcoordNormalizationAndStartEcYZ.y));
  4768. // Determine distance along normalEC to push for a volume of appropriate width.
  4769. // Make volumes about double pixel width for a conservative fit - in practice the
  4770. // extra cost here is minimal compared to the loose volume heights.
  4771. //
  4772. // N = normalEC (guaranteed "right-facing")
  4773. // R = rightEC
  4774. // p = angle between N and R
  4775. // w = distance to push along R if R == N
  4776. // d = distance to push along N
  4777. //
  4778. // N R
  4779. // { p| } * cos(p) = dot(N, R) = w / d
  4780. // d | |w * d = w / dot(N, R)
  4781. // { | }
  4782. // o---------- polyline segment ---->
  4783. //
  4784. float width = czm_batchTable_width(batchId);
  4785. #ifdef WIDTH_VARYING
  4786. v_width = width;
  4787. #endif
  4788. v_startPlaneNormalEcAndHalfWidth.xyz = startPlaneEC.xyz;
  4789. v_startPlaneNormalEcAndHalfWidth.w = width * 0.5;
  4790. v_endPlaneNormalEcAndBatchId.xyz = endPlaneEC.xyz;
  4791. v_endPlaneNormalEcAndBatchId.w = batchId;
  4792. width = width * max(0.0, czm_metersPerPixel(positionEC)); // width = distance to push along R
  4793. width = width / dot(normalEC, v_rightPlaneEC.xyz); // width = distance to push along N
  4794. // Determine if this vertex is on the "left" or "right"
  4795. #ifdef COLUMBUS_VIEW_2D
  4796. normalEC *= sign(texcoordNormalization2D.x);
  4797. #else
  4798. normalEC *= sign(endNormalAndTextureCoordinateNormalizationX.w);
  4799. #endif
  4800. positionEC.xyz += width * normalEC;
  4801. gl_Position = czm_depthClamp(czm_projection * positionEC);
  4802. #ifdef ANGLE_VARYING
  4803. // Approximate relative screen space direction of the line.
  4804. vec2 approxLineDirection = normalize(vec2(forwardDirectionEC.x, -forwardDirectionEC.y));
  4805. approxLineDirection.y = czm_branchFreeTernary(approxLineDirection.x == 0.0 && approxLineDirection.y == 0.0, -1.0, approxLineDirection.y);
  4806. v_polylineAngle = czm_fastApproximateAtan(approxLineDirection.x, approxLineDirection.y);
  4807. #endif
  4808. }
  4809. `;var rP=`in vec3 position3DHigh;
  4810. in vec3 position3DLow;
  4811. in vec3 prevPosition3DHigh;
  4812. in vec3 prevPosition3DLow;
  4813. in vec3 nextPosition3DHigh;
  4814. in vec3 nextPosition3DLow;
  4815. in vec2 expandAndWidth;
  4816. in vec4 color;
  4817. in float batchId;
  4818. out vec4 v_color;
  4819. void main()
  4820. {
  4821. float expandDir = expandAndWidth.x;
  4822. float width = abs(expandAndWidth.y) + 0.5;
  4823. bool usePrev = expandAndWidth.y < 0.0;
  4824. vec4 p = czm_computePosition();
  4825. vec4 prev = czm_computePrevPosition();
  4826. vec4 next = czm_computeNextPosition();
  4827. float angle;
  4828. vec4 positionWC = getPolylineWindowCoordinates(p, prev, next, expandDir, width, usePrev, angle);
  4829. gl_Position = czm_viewportOrthographic * positionWC;
  4830. v_color = color;
  4831. }
  4832. `;var nu=`void clipLineSegmentToNearPlane(
  4833. vec3 p0,
  4834. vec3 p1,
  4835. out vec4 positionWC,
  4836. out bool clipped,
  4837. out bool culledByNearPlane,
  4838. out vec4 clippedPositionEC)
  4839. {
  4840. culledByNearPlane = false;
  4841. clipped = false;
  4842. vec3 p0ToP1 = p1 - p0;
  4843. float magnitude = length(p0ToP1);
  4844. vec3 direction = normalize(p0ToP1);
  4845. // Distance that p0 is behind the near plane. Negative means p0 is
  4846. // in front of the near plane.
  4847. float endPoint0Distance = czm_currentFrustum.x + p0.z;
  4848. // Camera looks down -Z.
  4849. // When moving a point along +Z: LESS VISIBLE
  4850. // * Points in front of the camera move closer to the camera.
  4851. // * Points behind the camrea move farther away from the camera.
  4852. // When moving a point along -Z: MORE VISIBLE
  4853. // * Points in front of the camera move farther away from the camera.
  4854. // * Points behind the camera move closer to the camera.
  4855. // Positive denominator: -Z, becoming more visible
  4856. // Negative denominator: +Z, becoming less visible
  4857. // Nearly zero: parallel to near plane
  4858. float denominator = -direction.z;
  4859. if (endPoint0Distance > 0.0 && abs(denominator) < czm_epsilon7)
  4860. {
  4861. // p0 is behind the near plane and the line to p1 is nearly parallel to
  4862. // the near plane, so cull the segment completely.
  4863. culledByNearPlane = true;
  4864. }
  4865. else if (endPoint0Distance > 0.0)
  4866. {
  4867. // p0 is behind the near plane, and the line to p1 is moving distinctly
  4868. // toward or away from it.
  4869. // t = (-plane distance - dot(plane normal, ray origin)) / dot(plane normal, ray direction)
  4870. float t = endPoint0Distance / denominator;
  4871. if (t < 0.0 || t > magnitude)
  4872. {
  4873. // Near plane intersection is not between the two points.
  4874. // We already confirmed p0 is behind the naer plane, so now
  4875. // we know the entire segment is behind it.
  4876. culledByNearPlane = true;
  4877. }
  4878. else
  4879. {
  4880. // Segment crosses the near plane, update p0 to lie exactly on it.
  4881. p0 = p0 + t * direction;
  4882. // Numerical noise might put us a bit on the wrong side of the near plane.
  4883. // Don't let that happen.
  4884. p0.z = min(p0.z, -czm_currentFrustum.x);
  4885. clipped = true;
  4886. }
  4887. }
  4888. clippedPositionEC = vec4(p0, 1.0);
  4889. positionWC = czm_eyeToWindowCoordinates(clippedPositionEC);
  4890. }
  4891. vec4 getPolylineWindowCoordinatesEC(vec4 positionEC, vec4 prevEC, vec4 nextEC, float expandDirection, float width, bool usePrevious, out float angle)
  4892. {
  4893. // expandDirection +1 is to the _left_ when looking from positionEC toward nextEC.
  4894. #ifdef POLYLINE_DASH
  4895. // Compute the window coordinates of the points.
  4896. vec4 positionWindow = czm_eyeToWindowCoordinates(positionEC);
  4897. vec4 previousWindow = czm_eyeToWindowCoordinates(prevEC);
  4898. vec4 nextWindow = czm_eyeToWindowCoordinates(nextEC);
  4899. // Determine the relative screen space direction of the line.
  4900. vec2 lineDir;
  4901. if (usePrevious) {
  4902. lineDir = normalize(positionWindow.xy - previousWindow.xy);
  4903. }
  4904. else {
  4905. lineDir = normalize(nextWindow.xy - positionWindow.xy);
  4906. }
  4907. angle = atan(lineDir.x, lineDir.y) - 1.570796327; // precomputed atan(1,0)
  4908. // Quantize the angle so it doesn't change rapidly between segments.
  4909. angle = floor(angle / czm_piOverFour + 0.5) * czm_piOverFour;
  4910. #endif
  4911. vec4 clippedPrevWC, clippedPrevEC;
  4912. bool prevSegmentClipped, prevSegmentCulled;
  4913. clipLineSegmentToNearPlane(prevEC.xyz, positionEC.xyz, clippedPrevWC, prevSegmentClipped, prevSegmentCulled, clippedPrevEC);
  4914. vec4 clippedNextWC, clippedNextEC;
  4915. bool nextSegmentClipped, nextSegmentCulled;
  4916. clipLineSegmentToNearPlane(nextEC.xyz, positionEC.xyz, clippedNextWC, nextSegmentClipped, nextSegmentCulled, clippedNextEC);
  4917. bool segmentClipped, segmentCulled;
  4918. vec4 clippedPositionWC, clippedPositionEC;
  4919. clipLineSegmentToNearPlane(positionEC.xyz, usePrevious ? prevEC.xyz : nextEC.xyz, clippedPositionWC, segmentClipped, segmentCulled, clippedPositionEC);
  4920. if (segmentCulled)
  4921. {
  4922. return vec4(0.0, 0.0, 0.0, 1.0);
  4923. }
  4924. vec2 directionToPrevWC = normalize(clippedPrevWC.xy - clippedPositionWC.xy);
  4925. vec2 directionToNextWC = normalize(clippedNextWC.xy - clippedPositionWC.xy);
  4926. // If a segment was culled, we can't use the corresponding direction
  4927. // computed above. We should never see both of these be true without
  4928. // \`segmentCulled\` above also being true.
  4929. if (prevSegmentCulled)
  4930. {
  4931. directionToPrevWC = -directionToNextWC;
  4932. }
  4933. else if (nextSegmentCulled)
  4934. {
  4935. directionToNextWC = -directionToPrevWC;
  4936. }
  4937. vec2 thisSegmentForwardWC, otherSegmentForwardWC;
  4938. if (usePrevious)
  4939. {
  4940. thisSegmentForwardWC = -directionToPrevWC;
  4941. otherSegmentForwardWC = directionToNextWC;
  4942. }
  4943. else
  4944. {
  4945. thisSegmentForwardWC = directionToNextWC;
  4946. otherSegmentForwardWC = -directionToPrevWC;
  4947. }
  4948. vec2 thisSegmentLeftWC = vec2(-thisSegmentForwardWC.y, thisSegmentForwardWC.x);
  4949. vec2 leftWC = thisSegmentLeftWC;
  4950. float expandWidth = width * 0.5;
  4951. // When lines are split at the anti-meridian, the position may be at the
  4952. // same location as the next or previous position, and we need to handle
  4953. // that to avoid producing NaNs.
  4954. if (!czm_equalsEpsilon(prevEC.xyz - positionEC.xyz, vec3(0.0), czm_epsilon1) && !czm_equalsEpsilon(nextEC.xyz - positionEC.xyz, vec3(0.0), czm_epsilon1))
  4955. {
  4956. vec2 otherSegmentLeftWC = vec2(-otherSegmentForwardWC.y, otherSegmentForwardWC.x);
  4957. vec2 leftSumWC = thisSegmentLeftWC + otherSegmentLeftWC;
  4958. float leftSumLength = length(leftSumWC);
  4959. leftWC = leftSumLength < czm_epsilon6 ? thisSegmentLeftWC : (leftSumWC / leftSumLength);
  4960. // The sine of the angle between the two vectors is given by the formula
  4961. // |a x b| = |a||b|sin(theta)
  4962. // which is
  4963. // float sinAngle = length(cross(vec3(leftWC, 0.0), vec3(-thisSegmentForwardWC, 0.0)));
  4964. // Because the z components of both vectors are zero, the x and y coordinate will be zero.
  4965. // Therefore, the sine of the angle is just the z component of the cross product.
  4966. vec2 u = -thisSegmentForwardWC;
  4967. vec2 v = leftWC;
  4968. float sinAngle = abs(u.x * v.y - u.y * v.x);
  4969. expandWidth = clamp(expandWidth / sinAngle, 0.0, width * 2.0);
  4970. }
  4971. vec2 offset = leftWC * expandDirection * expandWidth * czm_pixelRatio;
  4972. return vec4(clippedPositionWC.xy + offset, -clippedPositionWC.z, 1.0) * (czm_projection * clippedPositionEC).w;
  4973. }
  4974. vec4 getPolylineWindowCoordinates(vec4 position, vec4 previous, vec4 next, float expandDirection, float width, bool usePrevious, out float angle)
  4975. {
  4976. vec4 positionEC = czm_modelViewRelativeToEye * position;
  4977. vec4 prevEC = czm_modelViewRelativeToEye * previous;
  4978. vec4 nextEC = czm_modelViewRelativeToEye * next;
  4979. return getPolylineWindowCoordinatesEC(positionEC, prevEC, nextEC, expandDirection, width, usePrevious, angle);
  4980. }
  4981. `;var TG=`${nu}
  4982. ${rP}`,FOe=V0;Bt.isInternetExplorer()||(TG=`#define CLIP_POLYLINE
  4983. ${TG}`);function J0(e){e=y(e,y.EMPTY_OBJECT);let t=y(e.translucent,!0),n=!1,i=J0.VERTEX_FORMAT;this.material=void 0,this.translucent=t,this._vertexShaderSource=y(e.vertexShaderSource,TG),this._fragmentShaderSource=y(e.fragmentShaderSource,FOe),this._renderState=eo.getDefaultRenderState(t,n,e.renderState),this._closed=n,this._vertexFormat=i}Object.defineProperties(J0.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}}});J0.VERTEX_FORMAT=Pe.POSITION_ONLY;J0.prototype.getFragmentShaderSource=eo.prototype.getFragmentShaderSource;J0.prototype.isTranslucent=eo.prototype.isTranslucent;J0.prototype.getRenderState=eo.prototype.getRenderState;var zr=J0;var sP=`in vec3 position3DHigh;
  4984. in vec3 position3DLow;
  4985. in vec3 prevPosition3DHigh;
  4986. in vec3 prevPosition3DLow;
  4987. in vec3 nextPosition3DHigh;
  4988. in vec3 nextPosition3DLow;
  4989. in vec2 expandAndWidth;
  4990. in vec2 st;
  4991. in float batchId;
  4992. out float v_width;
  4993. out vec2 v_st;
  4994. out float v_polylineAngle;
  4995. void main()
  4996. {
  4997. float expandDir = expandAndWidth.x;
  4998. float width = abs(expandAndWidth.y) + 0.5;
  4999. bool usePrev = expandAndWidth.y < 0.0;
  5000. vec4 p = czm_computePosition();
  5001. vec4 prev = czm_computePrevPosition();
  5002. vec4 next = czm_computeNextPosition();
  5003. float angle;
  5004. vec4 positionWC = getPolylineWindowCoordinates(p, prev, next, expandDir, width, usePrev, angle);
  5005. gl_Position = czm_viewportOrthographic * positionWC;
  5006. v_width = width;
  5007. v_st.s = st.s;
  5008. v_st.t = czm_writeNonPerspective(st.t, gl_Position.w);
  5009. v_polylineAngle = angle;
  5010. }
  5011. `;var ex=`#ifdef VECTOR_TILE
  5012. uniform vec4 u_highlightColor;
  5013. #endif
  5014. in vec2 v_st;
  5015. void main()
  5016. {
  5017. czm_materialInput materialInput;
  5018. vec2 st = v_st;
  5019. st.t = czm_readNonPerspective(st.t, gl_FragCoord.w);
  5020. materialInput.s = st.s;
  5021. materialInput.st = st;
  5022. materialInput.str = vec3(st, 0.0);
  5023. czm_material material = czm_getMaterial(materialInput);
  5024. out_FragColor = vec4(material.diffuse + material.emission, material.alpha);
  5025. #ifdef VECTOR_TILE
  5026. out_FragColor *= u_highlightColor;
  5027. #endif
  5028. czm_writeLogDepth();
  5029. }
  5030. `;var AG=`${nu}
  5031. ${sP}`,BOe=ex;Bt.isInternetExplorer()||(AG=`#define CLIP_POLYLINE
  5032. ${AG}`);function tx(e){e=y(e,y.EMPTY_OBJECT);let t=y(e.translucent,!0),n=!1,i=tx.VERTEX_FORMAT;this.material=u(e.material)?e.material:Vi.fromType(Vi.ColorType),this.translucent=t,this._vertexShaderSource=y(e.vertexShaderSource,AG),this._fragmentShaderSource=y(e.fragmentShaderSource,BOe),this._renderState=eo.getDefaultRenderState(t,n,e.renderState),this._closed=n,this._vertexFormat=i}Object.defineProperties(tx.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
  5033. ${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}}});tx.VERTEX_FORMAT=Pe.POSITION_AND_ST;tx.prototype.getFragmentShaderSource=eo.prototype.getFragmentShaderSource;tx.prototype.isTranslucent=eo.prototype.isTranslucent;tx.prototype.getRenderState=eo.prototype.getRenderState;var Ws=tx;function dp(e){e=y(e,y.EMPTY_OBJECT),this.geometryInstances=e.geometryInstances,this._hasPerInstanceColors=!0;let t=e.appearance;u(t)||(t=new Ws),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=mte(!1),this._renderState3DTiles=mte(!0),this._renderStateMorph=ke.fromCache({cull:{enabled:!0,face:pi.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 li.initialize()};function kOe(e,t,n){let i=t.context,o=e._primitive,r=o._attributeLocations,s=o._batchTable.getVertexShaderCallback()(oP);s=En._appendShowToShader(o,s),s=En._appendDistanceDisplayConditionToShader(o,s),s=En._modifyShaderPosition(e,s,t.scene3DOnly);let a=o._batchTable.getVertexShaderCallback()(iP);a=En._appendShowToShader(o,a),a=En._appendDistanceDisplayConditionToShader(o,a),a=En._modifyShaderPosition(e,a,t.scene3DOnly);let c=o._batchTable.getVertexShaderCallback()(tP),l=[`GLOBE_MINIMUM_ALTITUDE ${t.mapProjection.ellipsoid.minimumRadius.toFixed(1)}`],f="",d="";u(n.material)?(d=u(n.material)?n.material.shaderSource:"",d.search(/in\s+float\s+v_polylineAngle;/g)!==-1&&l.push("ANGLE_VARYING"),d.search(/in\s+float\s+v_width;/g)!==-1&&l.push("WIDTH_VARYING")):f="PER_INSTANCE_COLOR",l.push(f);let p=e.debugShowShadowVolume?["DEBUG_SHOW_VOLUME",f]:[f],g=new Ue({defines:l,sources:[s]}),m=new Ue({defines:p,sources:[d,c]});e._sp=Yt.replaceCache({context:i,shaderProgram:o._sp,vertexShaderSource:g,fragmentShaderSource:m,attributeLocations:r});let x=i.shaderCache.getDerivedShaderProgram(e._sp,"2dColor");if(!u(x)){let T=new Ue({defines:l.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(!u(b)){let T=new Ue({defines:l.concat([`MAX_TERRAIN_HEIGHT ${li._defaultMaxTerrainHeight.toFixed(1)}`]),sources:[a]});c=o._batchTable.getVertexShaderCallback()(nP);let A=new Ue({defines:p,sources:[d,c]});b=i.shaderCache.createDerivedShaderProgram(e._sp,"MorphColor",{context:i,shaderProgram:e._spMorph,vertexShaderSource:T,fragmentShaderSource:A,attributeLocations:r})}e._spMorph=b}function mte(e){return ke.fromCache({cull:{enabled:!0},blending:un.PRE_MULTIPLIED_ALPHA_BLEND,depthMask:!1,stencilTest:{enabled:e,frontFunction:zn.EQUAL,frontOperation:{fail:lt.KEEP,zFail:lt.KEEP,zPass:lt.KEEP},backFunction:zn.EQUAL,backOperation:{fail:lt.KEEP,zFail:lt.KEEP,zPass:lt.KEEP},reference:Lt.CESIUM_3D_TILE_MASK,mask:Lt.CESIUM_3D_TILE_MASK}})}function UOe(e,t,n,i,o,r){let s=e._primitive,a=s._va.length;o.length=a,r.length=a;let l=t instanceof zr?{}:n._uniforms,f=s._batchTable.getUniformMapCallback()(l);for(let d=0;d<a;d++){let p=s._va[d],g=o[d];u(g)||(g=o[d]=new Je({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=Je.shallowClone(g,g.derivedCommands.tileset);m.renderState=e._renderState3DTiles,m.pass=Ee.CESIUM_3D_TILE_CLASSIFICATION,g.derivedCommands.tileset=m;let x=Je.shallowClone(g,g.derivedCommands.color2D);x.shaderProgram=e._sp2D,g.derivedCommands.color2D=x;let b=Je.shallowClone(m,m.derivedCommands.color2D);b.shaderProgram=e._sp2D,m.derivedCommands.color2D=b;let T=Je.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 pte(e,t,n,i,o,r,s){n.mode===te.MORPHING?t=t.derivedCommands.colorMorph:n.mode!==te.SCENE3D&&(t=t.derivedCommands.color2D),t.modelMatrix=i,t.boundingVolume=r,t.cull=o,t.debugShowBoundingVolume=s,n.commandList.push(t)}function VOe(e,t,n,i,o,r,s){let a=e._primitive;En._updateBoundingVolumes(a,t,o);let c;t.mode===te.SCENE3D?c=a._boundingSphereWC:t.mode===te.COLUMBUS_VIEW?c=a._boundingSphereCV:t.mode===te.SCENE2D&&u(a._boundingSphere2D)?c=a._boundingSphere2D:u(a._boundingSphereMorph)&&(c=a._boundingSphereMorph);let l=t.mode===te.MORPHING,f=e.classificationType,d=f!==Vn.CESIUM_3D_TILE,p=f!==Vn.TERRAIN&&!l,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],pte(e,g,t,o,r,T,s)),p&&(g=n[b].derivedCommands.tileset,pte(e,g,t,o,r,T,s))}}}dp.prototype.update=function(e){if(!u(this._primitive)&&!u(this.geometryInstances))return;if(!li.initialized){dp.initializeTerrainHeights();return}let t,n=this,i=this._primitiveOptions;if(!u(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,!u(a)||!u(a.color)){this._hasPerInstanceColors=!1;break}for(t=0;t<r;++t){let c=o[t];a={};let l=c.attributes;for(let f in l)l.hasOwnProperty(f)&&(a[f]=l[f]);u(a.width)||(a.width=new qa({componentDatatype:X.UNSIGNED_BYTE,componentsPerAttribute:1,value:[c.geometry.width]})),c.geometry._scene3DOnly=e.scene3DOnly,Q0.setProjectionAndEllipsoid(c.geometry,e.mapProjection),s[t]=new yt({geometry:c.geometry,attributes:a,id:c.id,pickPrimitive:n})}i.geometryInstances=s,i.appearance=this.appearance,i._createShaderProgramFunction=function(c,l,f){kOe(n,l,f)},i._createCommandsFunction=function(c,l,f,d,p,g,m){UOe(n,l,f,d,g,m)},i._updateAndQueueCommandsFunction=function(c,l,f,d,p,g,m,x){VOe(n,l,f,d,p,g,m)},this._primitive=new En(i)}if(this.appearance instanceof zr&&!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&&u(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,le(this)};var pd=dp;var zOe=new z(1,1),HOe=!1,GOe=H.WHITE;function EA(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(EA.prototype,{isConstant:{get:function(){return q.isConstant(this._image)&&q.isConstant(this._repeat)}},definitionChanged:{get:function(){return this._definitionChanged}},image:ae("image"),repeat:ae("repeat"),color:ae("color"),transparent:ae("transparent")});EA.prototype.getType=function(e){return"Image"};EA.prototype.getValue=function(e,t){return u(t)||(t={}),t.image=q.getValueOrUndefined(this._image,e),t.repeat=q.getValueOrClonedDefault(this._repeat,e,zOe,t.repeat),t.color=q.getValueOrClonedDefault(this._color,e,GOe,t.color),q.getValueOrDefault(this._transparent,e,HOe)&&(t.color.alpha=Math.min(.99,t.color.alpha)),t};EA.prototype.equals=function(e){return this===e||e instanceof EA&&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 yg=EA;function WOe(e){if(e instanceof H)return new Nt(e);if(typeof e=="string"||e instanceof ve||e instanceof HTMLCanvasElement||e instanceof HTMLVideoElement){let t=new yg;return t.image=e,t}}function jOe(e,t){return ae(e,t,WOe)}var Io=jOe;function aP(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(aP.prototype,{definitionChanged:{get:function(){return this._definitionChanged}},show:ae("show"),dimensions:ae("dimensions"),heightReference:ae("heightReference"),fill:ae("fill"),material:Io("material"),outline:ae("outline"),outlineColor:ae("outlineColor"),outlineWidth:ae("outlineWidth"),shadows:ae("shadows"),distanceDisplayCondition:ae("distanceDisplayCondition")});aP.prototype.clone=function(e){return u(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 aP(this)};aP.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 nx=aP;var qOe={FIXED:0,INERTIAL:1},no=Object.freeze(qOe);function SA(){de.throwInstantiationError()}Object.defineProperties(SA.prototype,{isConstant:{get:de.throwInstantiationError},definitionChanged:{get:de.throwInstantiationError},referenceFrame:{get:de.throwInstantiationError}});SA.prototype.getValue=de.throwInstantiationError;SA.prototype.getValueInReferenceFrame=de.throwInstantiationError;SA.prototype.equals=de.throwInstantiationError;var CG=new Q;SA.convertToReferenceFrame=function(e,t,n,i,o){if(!u(t))return t;if(u(o)||(o=new h),n===i)return h.clone(t,o);let r=Rt.computeIcrfToFixedMatrix(e,CG);if(u(r)||(r=Rt.computeTemeToPseudoFixedMatrix(e,CG)),n===no.INERTIAL)return Q.multiplyByVector(r,t,o);if(n===no.FIXED)return Q.multiplyByVector(Q.transpose(r,CG),t,o)};var hp=SA;function ix(e,t){this._definitionChanged=new pe,this._value=h.clone(e),this._referenceFrame=y(t,no.FIXED)}Object.defineProperties(ix.prototype,{isConstant:{get:function(){return!u(this._value)||this._referenceFrame===no.FIXED}},definitionChanged:{get:function(){return this._definitionChanged}},referenceFrame:{get:function(){return this._referenceFrame}}});ix.prototype.getValue=function(e,t){return this.getValueInReferenceFrame(e,no.FIXED,t)};ix.prototype.setValue=function(e,t){let n=!1;h.equals(this._value,e)||(n=!0,this._value=h.clone(e)),u(t)&&this._referenceFrame!==t&&(n=!0,this._referenceFrame=t),n&&this._definitionChanged.raiseEvent(this)};ix.prototype.getValueInReferenceFrame=function(e,t,n){return hp.convertToReferenceFrame(e,this._value,this._referenceFrame,t,n)};ix.prototype.equals=function(e){return this===e||e instanceof ix&&h.equals(this._value,e._value)&&this._referenceFrame===e._referenceFrame};var Oc=ix;function cP(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(cP.prototype,{definitionChanged:{get:function(){return this._definitionChanged}},show:ae("show"),positions:ae("positions"),width:ae("width"),height:ae("height"),heightReference:ae("heightReference"),extrudedHeight:ae("extrudedHeight"),extrudedHeightReference:ae("extrudedHeightReference"),cornerType:ae("cornerType"),granularity:ae("granularity"),fill:ae("fill"),material:Io("material"),outline:ae("outline"),outlineColor:ae("outlineColor"),outlineWidth:ae("outlineWidth"),shadows:ae("shadows"),distanceDisplayCondition:ae("distanceDisplayCondition"),classificationType:ae("classificationType"),zIndex:ae("zIndex")});cP.prototype.clone=function(e){return u(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 cP(this)};cP.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 ox=cP;function YOe(e){return e}function XOe(e,t){return ae(e,t,YOe)}var _l=XOe;function lP(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(lP.prototype,{definitionChanged:{get:function(){return this._definitionChanged}},show:ae("show"),length:ae("length"),topRadius:ae("topRadius"),bottomRadius:ae("bottomRadius"),heightReference:ae("heightReference"),fill:ae("fill"),material:Io("material"),outline:ae("outline"),outlineColor:ae("outlineColor"),outlineWidth:ae("outlineWidth"),numberOfVerticalLines:ae("numberOfVerticalLines"),slices:ae("slices"),shadows:ae("shadows"),distanceDisplayCondition:ae("distanceDisplayCondition")});lP.prototype.clone=function(e){return u(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 lP(this)};lP.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 rx=lP;function uP(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(uP.prototype,{definitionChanged:{get:function(){return this._definitionChanged}},show:ae("show"),semiMajorAxis:ae("semiMajorAxis"),semiMinorAxis:ae("semiMinorAxis"),height:ae("height"),heightReference:ae("heightReference"),extrudedHeight:ae("extrudedHeight"),extrudedHeightReference:ae("extrudedHeightReference"),rotation:ae("rotation"),stRotation:ae("stRotation"),granularity:ae("granularity"),fill:ae("fill"),material:Io("material"),outline:ae("outline"),outlineColor:ae("outlineColor"),outlineWidth:ae("outlineWidth"),numberOfVerticalLines:ae("numberOfVerticalLines"),shadows:ae("shadows"),distanceDisplayCondition:ae("distanceDisplayCondition"),classificationType:ae("classificationType"),zIndex:ae("zIndex")});uP.prototype.clone=function(e){return u(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 uP(this)};uP.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 sx=uP;function fP(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(fP.prototype,{definitionChanged:{get:function(){return this._definitionChanged}},show:ae("show"),radii:ae("radii"),innerRadii:ae("innerRadii"),minimumClock:ae("minimumClock"),maximumClock:ae("maximumClock"),minimumCone:ae("minimumCone"),maximumCone:ae("maximumCone"),heightReference:ae("heightReference"),fill:ae("fill"),material:Io("material"),outline:ae("outline"),outlineColor:ae("outlineColor"),outlineWidth:ae("outlineWidth"),stackPartitions:ae("stackPartitions"),slicePartitions:ae("slicePartitions"),subdivisions:ae("subdivisions"),shadows:ae("shadows"),distanceDisplayCondition:ae("distanceDisplayCondition")});fP.prototype.clone=function(e){return u(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 fP(this)};fP.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 ax=fP;function dP(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(dP.prototype,{definitionChanged:{get:function(){return this._definitionChanged}},show:ae("show"),text:ae("text"),font:ae("font"),style:ae("style"),scale:ae("scale"),showBackground:ae("showBackground"),backgroundColor:ae("backgroundColor"),backgroundPadding:ae("backgroundPadding"),pixelOffset:ae("pixelOffset"),eyeOffset:ae("eyeOffset"),horizontalOrigin:ae("horizontalOrigin"),verticalOrigin:ae("verticalOrigin"),heightReference:ae("heightReference"),fillColor:ae("fillColor"),outlineColor:ae("outlineColor"),outlineWidth:ae("outlineWidth"),translucencyByDistance:ae("translucencyByDistance"),pixelOffsetScaleByDistance:ae("pixelOffsetScaleByDistance"),scaleByDistance:ae("scaleByDistance"),distanceDisplayCondition:ae("distanceDisplayCondition"),disableDepthTestDistance:ae("disableDepthTestDistance")});dP.prototype.clone=function(e){return u(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 dP(this)};dP.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 _d=dP;var KOe=new h(1,1,1),ZOe=h.ZERO,$Oe=Le.IDENTITY;function _te(e,t,n){this.translation=h.clone(y(e,ZOe)),this.rotation=Le.clone(y(t,$Oe)),this.scale=h.clone(y(n,KOe))}_te.prototype.equals=function(e){return this===e||u(e)&&h.equals(this.translation,e.translation)&&Le.equals(this.rotation,e.rotation)&&h.equals(this.scale,e.scale)};var xg=_te;var EG=new xg;function hP(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(hP.prototype,{isConstant:{get:function(){return q.isConstant(this._translation)&&q.isConstant(this._rotation)&&q.isConstant(this._scale)}},definitionChanged:{get:function(){return this._definitionChanged}},translation:ae("translation"),rotation:ae("rotation"),scale:ae("scale")});hP.prototype.getValue=function(e,t){return u(t)||(t=new xg),t.translation=q.getValueOrClonedDefault(this._translation,e,EG.translation,t.translation),t.rotation=q.getValueOrClonedDefault(this._rotation,e,EG.rotation,t.rotation),t.scale=q.getValueOrClonedDefault(this._scale,e,EG.scale,t.scale),t};hP.prototype.equals=function(e){return this===e||e instanceof hP&&q.equals(this._translation,e._translation)&&q.equals(this._rotation,e._rotation)&&q.equals(this._scale,e._scale)};var cx=hP;function mp(e,t){this._propertyNames=[],this._definitionChanged=new pe,u(e)&&this.merge(e,t)}Object.defineProperties(mp.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}}});mp.prototype.hasProperty=function(e){return this._propertyNames.indexOf(e)!==-1};function QOe(e){return new Qn(e)}mp.prototype.addProperty=function(e,t,n){this._propertyNames.push(e),Object.defineProperty(this,e,ae(e,!0,y(n,QOe))),u(t)&&(this[e]=t),this._definitionChanged.raiseEvent(this)};mp.prototype.removeProperty=function(e){let n=this._propertyNames.indexOf(e);this._propertyNames.splice(n,1),delete this[e],this._definitionChanged.raiseEvent(this)};mp.prototype.getValue=function(e,t){u(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};mp.prototype.merge=function(e,t){let n=this._propertyNames,i=u(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?u(a)&&u(a.merge)&&a.merge(c):u(c)&&u(c.merge)&&u(c.clone)?this[s]=c.clone():this[s]=c)}};function JOe(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}mp.prototype.equals=function(e){return this===e||e instanceof mp&&JOe(this,e)};var gl=mp;function gte(e){return new cx(e)}function eRe(e){return new gl(e,gte)}function tRe(e){return new gl(e)}function mP(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(mP.prototype,{definitionChanged:{get:function(){return this._definitionChanged}},show:ae("show"),uri:ae("uri"),scale:ae("scale"),minimumPixelSize:ae("minimumPixelSize"),maximumScale:ae("maximumScale"),incrementallyLoadTextures:ae("incrementallyLoadTextures"),runAnimations:ae("runAnimations"),clampAnimations:ae("clampAnimations"),shadows:ae("shadows"),heightReference:ae("heightReference"),silhouetteColor:ae("silhouetteColor"),silhouetteSize:ae("silhouetteSize"),color:ae("color"),colorBlendMode:ae("colorBlendMode"),colorBlendAmount:ae("colorBlendAmount"),imageBasedLightingFactor:ae("imageBasedLightingFactor"),lightColor:ae("lightColor"),distanceDisplayCondition:ae("distanceDisplayCondition"),nodeTransformations:ae("nodeTransformations",void 0,eRe),articulations:ae("articulations",void 0,tRe),clippingPlanes:ae("clippingPlanes"),customShader:ae("customShader")});mP.prototype.clone=function(e){return u(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 mP(this)};mP.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(u(t)){let i=this.nodeTransformations;u(i)?i.merge(t):this.nodeTransformations=new gl(t,gte)}let n=e.articulations;if(u(n)){let i=this.articulations;u(i)?i.merge(n):this.articulations=new gl(n)}};var pp=mP;function pP(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(pP.prototype,{definitionChanged:{get:function(){return this._definitionChanged}},show:ae("show"),uri:ae("uri"),maximumScreenSpaceError:ae("maximumScreenSpaceError")});pP.prototype.clone=function(e){return u(e)?(e.show=this.show,e.uri=this.uri,e.maximumScreenSpaceError=this.maximumScreenSpaceError,e):new pP(this)};pP.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 lx=pP;function _P(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(_P.prototype,{definitionChanged:{get:function(){return this._definitionChanged}},show:ae("show"),leadTime:ae("leadTime"),trailTime:ae("trailTime"),width:ae("width"),resolution:ae("resolution"),material:Io("material"),distanceDisplayCondition:ae("distanceDisplayCondition")});_P.prototype.clone=function(e){return u(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 _P(this)};_P.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 _p=_P;function gP(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(gP.prototype,{definitionChanged:{get:function(){return this._definitionChanged}},show:ae("show"),plane:ae("plane"),dimensions:ae("dimensions"),fill:ae("fill"),material:Io("material"),outline:ae("outline"),outlineColor:ae("outlineColor"),outlineWidth:ae("outlineWidth"),shadows:ae("shadows"),distanceDisplayCondition:ae("distanceDisplayCondition")});gP.prototype.clone=function(e){return u(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 gP(this)};gP.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 yP=gP;function xP(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(xP.prototype,{definitionChanged:{get:function(){return this._definitionChanged}},show:ae("show"),pixelSize:ae("pixelSize"),heightReference:ae("heightReference"),color:ae("color"),outlineColor:ae("outlineColor"),outlineWidth:ae("outlineWidth"),scaleByDistance:ae("scaleByDistance"),translucencyByDistance:ae("translucencyByDistance"),distanceDisplayCondition:ae("distanceDisplayCondition"),disableDepthTestDistance:ae("disableDepthTestDistance")});xP.prototype.clone=function(e){return u(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 xP(this)};xP.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 ux=xP;function nRe(e,t){this.positions=u(e)?e:[],this.holes=u(t)?t:[]}var ga=nRe;function iRe(e){return Array.isArray(e)&&(e=new ga(e)),new Qn(e)}function bP(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(bP.prototype,{definitionChanged:{get:function(){return this._definitionChanged}},show:ae("show"),hierarchy:ae("hierarchy",void 0,iRe),height:ae("height"),heightReference:ae("heightReference"),extrudedHeight:ae("extrudedHeight"),extrudedHeightReference:ae("extrudedHeightReference"),stRotation:ae("stRotation"),granularity:ae("granularity"),fill:ae("fill"),material:Io("material"),outline:ae("outline"),outlineColor:ae("outlineColor"),outlineWidth:ae("outlineWidth"),perPositionHeight:ae("perPositionHeight"),closeTop:ae("closeTop"),closeBottom:ae("closeBottom"),arcType:ae("arcType"),shadows:ae("shadows"),distanceDisplayCondition:ae("distanceDisplayCondition"),classificationType:ae("classificationType"),zIndex:ae("zIndex"),textureCoordinates:ae("textureCoordinates")});bP.prototype.clone=function(e){return u(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 bP(this)};bP.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 gd=bP;function TP(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(TP.prototype,{definitionChanged:{get:function(){return this._definitionChanged}},show:ae("show"),positions:ae("positions"),width:ae("width"),granularity:ae("granularity"),material:Io("material"),depthFailMaterial:Io("depthFailMaterial"),arcType:ae("arcType"),clampToGround:ae("clampToGround"),shadows:ae("shadows"),distanceDisplayCondition:ae("distanceDisplayCondition"),classificationType:ae("classificationType"),zIndex:ae("zIndex")});TP.prototype.clone=function(e){return u(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 TP(this)};TP.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 Ya=TP;function AP(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(AP.prototype,{definitionChanged:{get:function(){return this._definitionChanged}},show:ae("show"),positions:ae("positions"),shape:ae("shape"),cornerType:ae("cornerType"),granularity:ae("granularity"),fill:ae("fill"),material:Io("material"),outline:ae("outline"),outlineColor:ae("outlineColor"),outlineWidth:ae("outlineWidth"),shadows:ae("shadows"),distanceDisplayCondition:ae("distanceDisplayCondition")});AP.prototype.clone=function(e){return u(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 AP(this)};AP.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 fx=AP;function CP(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(CP.prototype,{definitionChanged:{get:function(){return this._definitionChanged}},show:ae("show"),coordinates:ae("coordinates"),height:ae("height"),heightReference:ae("heightReference"),extrudedHeight:ae("extrudedHeight"),extrudedHeightReference:ae("extrudedHeightReference"),rotation:ae("rotation"),stRotation:ae("stRotation"),granularity:ae("granularity"),fill:ae("fill"),material:Io("material"),outline:ae("outline"),outlineColor:ae("outlineColor"),outlineWidth:ae("outlineWidth"),shadows:ae("shadows"),distanceDisplayCondition:ae("distanceDisplayCondition"),classificationType:ae("classificationType"),zIndex:ae("zIndex")});CP.prototype.clone=function(e){return u(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 CP(this)};CP.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 yd=CP;function EP(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(EP.prototype,{definitionChanged:{get:function(){return this._definitionChanged}},show:ae("show"),positions:ae("positions"),minimumHeights:ae("minimumHeights"),maximumHeights:ae("maximumHeights"),granularity:ae("granularity"),fill:ae("fill"),material:Io("material"),outline:ae("outline"),outlineColor:ae("outlineColor"),outlineWidth:ae("outlineWidth"),shadows:ae("shadows"),distanceDisplayCondition:ae("distanceDisplayCondition")});EP.prototype.clone=function(e){return u(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 EP(this)};EP.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 gp=EP;var oRe=new fe;function rRe(e){return new Oc(e)}function sRe(e){return ae(e,void 0,rRe)}function js(e,t){return ae(e,void 0,function(n){return n instanceof t?n:new t(n)})}function Wh(e){e=y(e,y.EMPTY_OBJECT);let t=e.id;u(t)||(t=Wn()),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"],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 SG(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)&&SG(r,r._children,n)}e._definitionChanged.raiseEvent(e,"isShowing",n,!n)}Object.defineProperties(Wh.prototype,{availability:_l("availability"),id:{get:function(){return this._id}},definitionChanged:{get:function(){return this._definitionChanged}},name:_l("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&&SG(this,this._children,n),this._definitionChanged.raiseEvent(this,"show",e,!e)}},isShowing:{get:function(){return this._show&&(!u(this.entityCollection)||this.entityCollection.show)&&(!u(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(u(t)){let o=t._children.indexOf(this);t._children.splice(o,1)}this._parent=e,u(e)&&e._children.push(this);let i=this.isShowing;n!==i&&SG(this,this._children,i),this._definitionChanged.raiseEvent(this,"parent",e,t)}},propertyNames:{get:function(){return this._propertyNames}},billboard:js("billboard",Wa),box:js("box",nx),corridor:js("corridor",ox),cylinder:js("cylinder",rx),description:ae("description"),ellipse:js("ellipse",sx),ellipsoid:js("ellipsoid",ax),label:js("label",_d),model:js("model",pp),tileset:js("tileset",lx),orientation:ae("orientation"),path:js("path",_p),plane:js("plane",yP),point:js("point",ux),polygon:js("polygon",gd),polyline:js("polyline",Ya),polylineVolume:js("polylineVolume",fx),properties:js("properties",gl),position:sRe("position"),rectangle:js("rectangle",yd),viewFrom:ae("viewFrom"),wall:js("wall",gp)});Wh.prototype.isAvailable=function(e){let t=this._availability;return!u(t)||t.contains(e)};Wh.prototype.addProperty=function(e){this._propertyNames.push(e),Object.defineProperty(this,e,_l(e,!0))};Wh.prototype.removeProperty=function(e){let n=this._propertyNames.indexOf(e);this._propertyNames.splice(n,1),delete this[e]};Wh.prototype.merge=function(e){this.name=y(this.name,e.name),this.availability=y(this.availability,e.availability);let t=this._propertyNames,n=u(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];!u(s)&&t.indexOf(r)===-1&&this.addProperty(r),u(a)&&(u(s)?u(s.merge)&&s.merge(a):u(a.merge)&&u(a.clone)?this[r]=a.clone():this[r]=a)}};var yte=new Q,xte=new h,bte=new Le;Wh.prototype.computeModelMatrix=function(e,t){let n=q.getValueOrUndefined(this._position,e,xte);if(!u(n))return;let i=q.getValueOrUndefined(this._orientation,e,bte);return u(i)?t=F.fromRotationTranslation(Q.fromQuaternion(i,yte),n,t):t=Rt.eastNorthUpToFixedFrame(n,void 0,t),t};Wh.prototype.computeModelMatrixForHeightReference=function(e,t,n,i,o){let r=q.getValueOrDefault(t,e,Ge.NONE),s=q.getValueOrUndefined(this._position,e,xte);if(r===Ge.NONE||!u(s)||h.equalsEpsilon(s,h.ZERO,P.EPSILON8))return this.computeModelMatrix(e,o);let a=i.cartesianToCartographic(s,oRe);r===Ge.CLAMP_TO_GROUND?a.height=n:a.height+=n,s=i.cartographicToCartesian(a,s);let c=q.getValueOrUndefined(this._orientation,e,bte);return u(c)?o=F.fromRotationTranslation(Q.fromQuaternion(c,yte),s,o):o=Rt.eastNorthUpToFixedFrame(s,void 0,o),o};Wh.supportsMaterialsforEntitiesOnTerrain=function(e){return Ic.supportsMaterials(e)};Wh.supportsPolylinesOnTerrain=function(e){return pd.isSupported(e)};var Yo=Wh;var aRe=new Nt(H.WHITE),cRe=new Qn(!0),lRe=new Qn(!0),uRe=new Qn(!1),fRe=new Qn(H.BLACK),dRe=new Qn(yn.DISABLED),hRe=new Qn(new St),mRe=new Qn(Vn.BOTH);function Rc(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=Yo.supportsMaterialsforEntitiesOnTerrain(e.scene)}Object.defineProperties(Rc.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||!u(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||!u(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}}});Rc.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)};Rc.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)};Rc.prototype.createFillGeometryInstance=de.throwInstantiationError;Rc.prototype.createOutlineGeometryInstance=de.throwInstantiationError;Rc.prototype.isDestroyed=function(){return!1};Rc.prototype.destroy=function(){le(this)};Rc.prototype._isHidden=function(e,t){let n=t.show;return u(n)&&n.isConstant&&!n.getValue(Ve.MINIMUM_VALUE)};Rc.prototype._isOnTerrain=function(e,t){return!1};Rc.prototype._getIsClosed=function(e){return!0};Rc.prototype._isDynamic=de.throwInstantiationError;Rc.prototype._setStaticOptions=de.throwInstantiationError;Rc.prototype._onEntityPropertyChanged=function(e,t,n,i){if(this._observedPropertyNames.indexOf(t)===-1)return;let o=this._entity[this._geometryPropertyName];if(!u(o)){(this._fillEnabled||this._outlineEnabled)&&(this._fillEnabled=!1,this._outlineEnabled=!1,this._geometryChanged.raiseEvent(this));return}let r=o.fill,s=u(r)&&r.isConstant?r.getValue(Ve.MINIMUM_VALUE):!0,a=o.outline,c=u(a);if(c&&a.isConstant&&(c=a.getValue(Ve.MINIMUM_VALUE)),!s&&!c){(this._fillEnabled||this._outlineEnabled)&&(this._fillEnabled=!1,this._outlineEnabled=!1,this._geometryChanged.raiseEvent(this));return}let l=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,aRe),this._fillProperty=y(r,lRe),this._showProperty=y(l,cRe),this._showOutlineProperty=y(o.outline,uRe),this._outlineColorProperty=c?y(o.outlineColor,fRe):void 0,this._shadowsProperty=y(o.shadows,dRe),this._distanceDisplayConditionProperty=y(o.distanceDisplayCondition,hRe),this._classificationTypeProperty=y(o.classificationType,mRe),this._fillEnabled=s;let f=this._isOnTerrain(e,o)&&(this._supportsMaterialsforEntitiesOnTerrain||this._materialProperty instanceof Nt);if(c&&f&&(Dt(Dt.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=u(d)?d.getValue(Ve.MINIMUM_VALUE):1,this._dynamic=!1,this._geometryChanged.raiseEvent(this)}};Rc.prototype.createDynamicUpdater=function(e,t){return new this.constructor.DynamicGeometryUpdater(this,e,t)};var oi=Rc;function wA(e,t){this._callback=void 0,this._isConstant=void 0,this._definitionChanged=new pe,this.setCallback(e,t)}Object.defineProperties(wA.prototype,{isConstant:{get:function(){return this._isConstant}},definitionChanged:{get:function(){return this._definitionChanged}}});wA.prototype.getValue=function(e,t){return this._callback(e,t)};wA.prototype.setCallback=function(e,t){let n=this._callback!==e||this._isConstant!==t;this._callback=e,this._isConstant=t,n&&this._definitionChanged.raiseEvent(this)};wA.prototype.equals=function(e){return this===e||e instanceof wA&&this._callback===e._callback&&this._isConstant===e._isConstant};var xd=wA;var Tte=new h,pRe=new fe;function vA(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(u(e.globe)&&(this._removeEventListener=e.terrainProviderChanged.addEventListener(function(){o._updateClamping()}),this._removeModeListener=e.morphComplete.addEventListener(function(){o._updateClamping()})),t.isConstant){let r=t.getValue(Ve.MINIMUM_VALUE,Tte);if(!u(r)||h.equals(r,h.ZERO)||!u(e.globe))return;this._position=h.clone(r,this._position),this._updateClamping(),this._normal=e.globe.ellipsoid.geodeticSurfaceNormal(r,this._normal)}}Object.defineProperties(vA.prototype,{isConstant:{get:function(){return!1}},definitionChanged:{get:function(){return this._definitionChanged}}});vA.prototype._updateClamping=function(){u(this._removeCallbackFunc)&&this._removeCallbackFunc();let e=this._scene,t=e.globe,n=this._position;if(!u(t)||h.equals(n,h.ZERO)){this._terrainHeight=0;return}let i=t.ellipsoid,o=t._surface,r=this,s=i.cartesianToCartographic(n,this._cartographicPosition),a=t.getHeight(s);u(a)?this._terrainHeight=a:this._terrainHeight=0;function c(l){if(e.mode===te.SCENE3D){let f=i.cartesianToCartographic(l,pRe);r._terrainHeight=f.height}else r._terrainHeight=l.x;r.definitionChanged.raiseEvent()}this._removeCallbackFunc=o.updateHeight(s,c)};vA.prototype.getValue=function(e,t){let n=q.getValueOrDefault(this._heightReference,e,Ge.NONE),i=q.getValueOrDefault(this._extrudedHeightReference,e,Ge.NONE);if(n===Ge.NONE&&i!==Ge.RELATIVE_TO_GROUND)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,Tte);if(!u(r)||h.equals(r,h.ZERO)||!u(o.globe))return h.clone(h.ZERO,t);if(h.equalsEpsilon(this._position,r,P.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)};vA.prototype.isDestroyed=function(){return!1};vA.prototype.destroy=function(){return u(this._removeEventListener)&&this._removeEventListener(),u(this._removeModeListener)&&this._removeModeListener(),u(this._removeCallbackFunc)&&this._removeCallbackFunc(),le(this)};var dx=vA;function _Re(e,t,n,i){if(oi.prototype._onEntityPropertyChanged.call(this,e,t,n,i),this._observedPropertyNames.indexOf(t)===-1)return;let o=this._entity[this._geometryPropertyName];if(!u(o))return;u(this._terrainOffsetProperty)&&(this._terrainOffsetProperty.destroy(),this._terrainOffsetProperty=void 0);let r=o.heightReference;if(u(r)){let s=new xd(this._computeCenter.bind(this),!this._dynamic);this._terrainOffsetProperty=new dx(this._scene,s,r)}}var yp=_Re;var Ate=h.ZERO,Cte=new h,gRe=new h,Ete=new H;function yRe(e){this.id=e,this.vertexFormat=void 0,this.dimensions=void 0,this.offsetAttribute=void 0}function iu(e,t){oi.call(this,{entity:e,scene:t,geometryOptions:new yRe(e),geometryPropertyName:"box",observedPropertyNames:["availability","position","orientation","box"]}),this._onEntityPropertyChanged(e,"box",e.box,void 0)}u(Object.create)&&(iu.prototype=Object.create(oi.prototype),iu.prototype.constructor=iu);Object.defineProperties(iu.prototype,{terrainOffsetProperty:{get:function(){return this._terrainOffsetProperty}}});iu.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=Un.fromDistanceDisplayCondition(o),s={show:i,distanceDisplayCondition:r,color:void 0,offset:void 0};if(this._materialProperty instanceof Nt){let a;u(this._materialProperty.color)&&(this._materialProperty.color.isConstant||n)&&(a=this._materialProperty.color.getValue(e,Ete)),u(a)||(a=H.WHITE),s.color=kt.fromColor(a)}return u(this._options.offsetAttribute)&&(s.offset=Yi.fromCartesian3(q.getValueOrDefault(this._terrainOffsetProperty,e,Ate,Cte))),new yt({id:t,geometry:hl.fromDimensions(this._options),modelMatrix:t.computeModelMatrixForHeightReference(e,t.box.heightReference,this._options.dimensions.z*.5,this._scene.mapProjection.ellipsoid),attributes:s})};iu.prototype.createOutlineGeometryInstance=function(e){let t=this._entity,n=t.isAvailable(e),i=q.getValueOrDefault(this._outlineColorProperty,e,H.BLACK,Ete),o=this._distanceDisplayConditionProperty.getValue(e),r={show:new gn(n&&t.isShowing&&this._showProperty.getValue(e)&&this._showOutlineProperty.getValue(e)),color:kt.fromColor(i),distanceDisplayCondition:Un.fromDistanceDisplayCondition(o),offset:void 0};return u(this._options.offsetAttribute)&&(r.offset=Yi.fromCartesian3(q.getValueOrDefault(this._terrainOffsetProperty,e,Ate,Cte))),new yt({id:t,geometry:fd.fromDimensions(this._options),modelMatrix:t.computeModelMatrixForHeightReference(e,t.box.heightReference,this._options.dimensions.z*.5,this._scene.mapProjection.ellipsoid),attributes:r})};iu.prototype._computeCenter=function(e,t){return q.getValueOrUndefined(this._entity.position,e,t)};iu.prototype._isHidden=function(e,t){return!u(t.dimensions)||!u(e.position)||oi.prototype._isHidden.call(this,e,t)};iu.prototype._isDynamic=function(e,t){return!e.position.isConstant||!q.isConstant(e.orientation)||!t.dimensions.isConstant||!q.isConstant(t.outlineWidth)};iu.prototype._setStaticOptions=function(e,t){let n=q.getValueOrDefault(t.heightReference,Ve.MINIMUM_VALUE,Ge.NONE),i=this._options;i.vertexFormat=this._materialProperty instanceof Nt?nn.VERTEX_FORMAT:so.MaterialSupport.TEXTURED.vertexFormat,i.dimensions=t.dimensions.getValue(Ve.MINIMUM_VALUE,i.dimensions),i.offsetAttribute=n!==Ge.NONE?tn.ALL:void 0};iu.prototype._onEntityPropertyChanged=yp;iu.DynamicGeometryUpdater=DA;function DA(e,t,n){ii.call(this,e,t,n)}u(Object.create)&&(DA.prototype=Object.create(ii.prototype),DA.prototype.constructor=DA);DA.prototype._isHidden=function(e,t,n){let i=q.getValueOrUndefined(e.position,n,gRe),o=this._options.dimensions;return!u(i)||!u(o)||ii.prototype._isHidden.call(this,e,t,n)};DA.prototype._setOptions=function(e,t,n){let i=q.getValueOrDefault(t.heightReference,n,Ge.NONE),o=this._options;o.dimensions=q.getValueOrUndefined(t.dimensions,n,o.dimensions),o.offsetAttribute=i!==Ge.NONE?tn.ALL:void 0};var SP=iu;var Vte=ro(Ute(),1);var BRe=0,MG={};function jh(e,t){let n,i=e;u(MG[i])?n=MG[i]:(n=BRe++,MG[i]=n),t=y(t,!1),this._id=n,this._html=e,this._showOnScreen=t,this._element=void 0}Object.defineProperties(jh.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(!u(this._element)){let e=Vte.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}}});jh.equals=function(e,t){return e===t||u(e)&&u(t)&&e._id===t._id&&e._showOnScreen===t._showOnScreen};jh.prototype.equals=function(e){return jh.equals(this,e)};jh.prototype.isIon=function(){return this.html.indexOf("ion-credit.png")!==-1};jh.getIonCredit=function(e){let t=u(e.collapsible)&&!e.collapsible;return new jh(e.html,t)};jh.clone=function(e){if(u(e))return new jh(e.html,e.showOnScreen)};var bt=jh;var IP=`in vec2 v_textureCoordinates;
  5034. uniform float originalSize;
  5035. uniform sampler2D texture0;
  5036. uniform sampler2D texture1;
  5037. uniform sampler2D texture2;
  5038. uniform sampler2D texture3;
  5039. uniform sampler2D texture4;
  5040. uniform sampler2D texture5;
  5041. const float yMipLevel1 = 1.0 - (1.0 / pow(2.0, 1.0));
  5042. const float yMipLevel2 = 1.0 - (1.0 / pow(2.0, 2.0));
  5043. const float yMipLevel3 = 1.0 - (1.0 / pow(2.0, 3.0));
  5044. const float yMipLevel4 = 1.0 - (1.0 / pow(2.0, 4.0));
  5045. void main()
  5046. {
  5047. vec2 uv = v_textureCoordinates;
  5048. vec2 textureSize = vec2(originalSize * 1.5 + 2.0, originalSize);
  5049. vec2 pixel = 1.0 / textureSize;
  5050. float mipLevel = 0.0;
  5051. if (uv.x - pixel.x > (textureSize.y / textureSize.x))
  5052. {
  5053. mipLevel = 1.0;
  5054. if (uv.y - pixel.y > yMipLevel1)
  5055. {
  5056. mipLevel = 2.0;
  5057. if (uv.y - pixel.y * 3.0 > yMipLevel2)
  5058. {
  5059. mipLevel = 3.0;
  5060. if (uv.y - pixel.y * 5.0 > yMipLevel3)
  5061. {
  5062. mipLevel = 4.0;
  5063. if (uv.y - pixel.y * 7.0 > yMipLevel4)
  5064. {
  5065. mipLevel = 5.0;
  5066. }
  5067. }
  5068. }
  5069. }
  5070. }
  5071. if (mipLevel > 0.0)
  5072. {
  5073. float scale = pow(2.0, mipLevel);
  5074. uv.y -= (pixel.y * (mipLevel - 1.0) * 2.0);
  5075. uv.x *= ((textureSize.x - 2.0) / textureSize.y);
  5076. uv.x -= 1.0 + pixel.x;
  5077. uv.y -= (1.0 - (1.0 / pow(2.0, mipLevel - 1.0)));
  5078. uv *= scale;
  5079. }
  5080. else
  5081. {
  5082. uv.x *= (textureSize.x / textureSize.y);
  5083. }
  5084. if(mipLevel == 0.0)
  5085. {
  5086. out_FragColor = texture(texture0, uv);
  5087. }
  5088. else if(mipLevel == 1.0)
  5089. {
  5090. out_FragColor = texture(texture1, uv);
  5091. }
  5092. else if(mipLevel == 2.0)
  5093. {
  5094. out_FragColor = texture(texture2, uv);
  5095. }
  5096. else if(mipLevel == 3.0)
  5097. {
  5098. out_FragColor = texture(texture3, uv);
  5099. }
  5100. else if(mipLevel == 4.0)
  5101. {
  5102. out_FragColor = texture(texture4, uv);
  5103. }
  5104. else if(mipLevel == 5.0)
  5105. {
  5106. out_FragColor = texture(texture5, uv);
  5107. }
  5108. else
  5109. {
  5110. out_FragColor = vec4(0.0);
  5111. }
  5112. }
  5113. `;var PP=`in vec3 v_cubeMapCoordinates;
  5114. uniform samplerCube cubeMap;
  5115. void main()
  5116. {
  5117. vec4 rgba = czm_textureCube(cubeMap, v_cubeMapCoordinates);
  5118. #ifdef RGBA_NORMALIZED
  5119. out_FragColor = vec4(rgba.rgb, 1.0);
  5120. #else
  5121. float m = rgba.a * 16.0;
  5122. vec3 r = rgba.rgb * m;
  5123. out_FragColor = vec4(r * r, 1.0);
  5124. #endif
  5125. }
  5126. `;var OP=`in vec4 position;
  5127. in vec3 cubeMapCoordinates;
  5128. out vec3 v_cubeMapCoordinates;
  5129. void main()
  5130. {
  5131. gl_Position = position;
  5132. v_cubeMapCoordinates = cubeMapCoordinates;
  5133. }
  5134. `;function hx(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(hx.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}}});hx.isSupported=function(e){return e.colorBufferHalfFloat&&e.halfFloatingPointTexture||e.floatingPointTexture&&e.colorBufferFloat};var kRe=new h(1,0,0),URe=new h(0,0,1),VRe=new h(-1,0,0),zRe=new h(0,0,-1),Pk=new h(0,1,0),HRe=new h(0,-1,0),Gte=[Pk,VRe,URe,HRe,kRe,Pk,zRe,Pk,Pk],Wte=Gte.length,jte=new Float32Array(Wte*3),zte=0;for(let e=0;e<Wte;++e,zte+=3)h.pack(Gte[e],jte,zte);var GRe=new Float32Array([-1,1,-1,0,0,1,0,0,1,0,1,1,0,-1,-1,-1,1,-1]),WRe=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 jRe(e){let t=ct.createVertexBuffer({context:e,typedArray:GRe,usage:Ne.STATIC_DRAW}),n=ct.createVertexBuffer({context:e,typedArray:jte,usage:Ne.STATIC_DRAW}),i=ct.createIndexBuffer({context:e,typedArray:WRe,usage:Ne.STATIC_DRAW,indexDatatype:Fe.UNSIGNED_SHORT}),o=[{index:0,vertexBuffer:t,componentsPerAttribute:2,componentDatatype:X.FLOAT},{index:1,vertexBuffer:n,componentsPerAttribute:3,componentDatatype:X.FLOAT}];return new ni({context:e,attributes:o,indexBuffer:i})}function Hte(e){return function(){return e}}function LG(e){e._va=e._va&&e._va.destroy(),e._sp=e._sp&&e._sp.destroy();let t,n,i=e._cubeMaps;if(u(i))for(n=i.length,t=0;t<n;++t)i[t].destroy();let o=e._mipTextures;if(u(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}hx.prototype.update=function(e){let t=e.context;if(!hx.isSupported(t)||(u(this._texture)&&u(this._va)&&LG(this),u(this._texture)))return;if(!u(this._texture)&&!this._loading){let g=e.context.textureCache.getTexture(this._url);u(g)&&(LG(this),this._texture=g,this._maximumMipmapLevel=this._texture.maximumMipmapLevel,this._ready=!0)}let n=this._cubeMapBuffers;if(!u(n)&&!this._loading){let g=this;ul(this._url).then(function(m){g._cubeMapBuffers=m,g._loading=!1}).catch(function(m){g.isDestroyed()||g._errorEvent.raiseEvent(m)}),this._loading=!0}if(!u(this._cubeMapBuffers))return;let i=[],o=n[0].positiveX.pixelDatatype;u(o)?i.push("RGBA_NORMALIZED"):o=t.halfFloatingPointTexture?Ye.HALF_FLOAT:Ye.FLOAT;let r=nt.RGBA,s=new Ue({defines:i,sources:[PP]});this._va=jRe(t),this._sp=Yt.fromCache({context:t,vertexShaderSource:OP,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),l=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 Ha({context:t,source:n[g],pixelDatatype:o}),b=c[g].width*2,T=l[g]=new It({context:t,width:b,height:b,pixelDatatype:o,pixelFormat:r}),A=new Xu({vertexArray:this._va,shaderProgram:this._sp,uniformMap:{cubeMap:Hte(x)},outputTexture:T,persists:!0,owner:this});e.commandList.push(A),d[`texture${g}`]=Hte(T)}this._texture=new It({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 Xu({fragmentShaderSource:IP,uniformMap:d,outputTexture:this._texture,persists:!1,owner:this});e.commandList.push(p),this._ready=!0};hx.prototype.isDestroyed=function(){return!1};hx.prototype.destroy=function(){return LG(this),this._texture=this._texture&&this._texture.destroy(),le(this)};var Td=hx;function RP(e){e=y(e,y.EMPTY_OBJECT);let t=u(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(RP.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 u(this._sphericalHarmonicCoefficients)||this._useDefaultSphericalHarmonics}},specularEnvironmentMapAtlas:{get:function(){return this._specularEnvironmentMapAtlas}},useDefaultSpecularMaps:{get:function(){return this._useDefaultSpecularMaps}},useSpecularEnvironmentMaps:{get:function(){return u(this._specularEnvironmentMapAtlas)&&this._specularEnvironmentMapAtlas.ready||this._useDefaultSpecularMaps}}});function qRe(e,t){if(Td.isSupported(t)){if(e._specularEnvironmentMapAtlas=e._specularEnvironmentMapAtlas&&e._specularEnvironmentMapAtlas.destroy(),u(e._specularEnvironmentMaps)){let n=new Td(e._specularEnvironmentMaps);e._specularEnvironmentMapAtlas=n,e._removeErrorListener=n.errorEvent.addEventListener(i=>{console.error(`Error loading specularEnvironmentMaps: ${i}`)})}e._shouldRegenerateShaders=!0}}RP.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||u(this._luminanceAtZenith)!==u(this._previousLuminanceAtZenith),this._previousLuminanceAtZenith=this._luminanceAtZenith),this._previousSphericalHarmonicCoefficients!==this._sphericalHarmonicCoefficients&&(this._shouldRegenerateShaders=this._shouldRegenerateShaders||u(this._previousSphericalHarmonicCoefficients)!==u(this._sphericalHarmonicCoefficients),this._previousSphericalHarmonicCoefficients=this._sphericalHarmonicCoefficients),this._shouldRegenerateShaders=this._shouldRegenerateShaders||this._previousSpecularEnvironmentMapLoaded!==this._specularEnvironmentMapLoaded,this._previousSpecularEnvironmentMapLoaded=this._specularEnvironmentMapLoaded,this._specularEnvironmentMapAtlasDirty&&(qRe(this,t),this._specularEnvironmentMapAtlasDirty=!1),u(this._specularEnvironmentMapAtlas)&&(this._specularEnvironmentMapAtlas.update(e),this._specularEnvironmentMapAtlas.ready&&(this._specularEnvironmentMapLoaded=!0));let o=!u(this._specularEnvironmentMapAtlas)&&u(e.specularEnvironmentMaps)&&!this._useDefaultSpecularMaps,r=!u(e.specularEnvironmentMaps)&&this._useDefaultSpecularMaps,s=!u(this._sphericalHarmonicCoefficients)&&u(e.sphericalHarmonicCoefficients)&&!this._useDefaultSphericalHarmonics,a=!u(e.sphericalHarmonicCoefficients)&&this._useDefaultSphericalHarmonics;this._shouldRegenerateShaders=this._shouldRegenerateShaders||o||r||s||a,this._useDefaultSpecularMaps=!u(this._specularEnvironmentMapAtlas)&&u(e.specularEnvironmentMaps),this._useDefaultSphericalHarmonics=!u(this._sphericalHarmonicCoefficients)&&u(e.sphericalHarmonicCoefficients)};RP.prototype.isDestroyed=function(){return!1};RP.prototype.destroy=function(){return this._specularEnvironmentMapAtlas=this._specularEnvironmentMapAtlas&&this._specularEnvironmentMapAtlas.destroy(),this._removeErrorListener=this._removeErrorListener&&this._removeErrorListener(),le(this)};var mx=RP;var FG=ro(Yl(),1);var NG,qte="eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJqdGkiOiJhYjVkZWE2Yi05ZjlmLTQyOTAtYjFkOC0xMmFmZTYyMjhmZGIiLCJpZCI6MjU5LCJpYXQiOjE2OTYyNjgyMzN9.iKIgzd7PueqxXsUNSIhk5C6n8uiugH-Dxy9uhOdJ5Zg",Ok={};Ok.defaultAccessToken=qte;Ok.defaultServer=new ve({url:"https://api.cesium.com/"});Ok.getDefaultTokenCredit=function(e){if(e===qte){if(!u(NG)){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>`;NG=new bt(t,!0)}return NG}};var Ad=Ok;function Lc(e,t){let n,i=e.externalType,o=u(i);if(!o)n={url:e.url,retryAttempts:1,retryCallback:YRe};else if(i==="3DTILES"||i==="STK_TERRAIN_SERVER")n={url:e.options.url};else throw new ue("Ion.createResource does not support external imagery assets; use IonImageryProvider instead.");ve.call(this,n),this._ionEndpoint=e,this._ionEndpointDomain=o?void 0:new FG.default(e.url).authority(),this._ionEndpointResource=t,this._ionRoot=void 0,this._pendingPromise=void 0,this._credits=void 0,this._isExternal=o}u(Object.create)&&(Lc.prototype=Object.create(ve.prototype),Lc.prototype.constructor=Lc);Lc.fromAssetId=function(e,t){let n=Lc._createEndpointResource(e,t);return n.fetchJson().then(function(i){return new Lc(i,n)})};Object.defineProperties(Lc.prototype,{credits:{get:function(){return u(this._ionRoot)?this._ionRoot.credits:u(this._credits)?this._credits:(this._credits=Lc.getCreditsFromEndpoint(this._ionEndpoint,this._ionEndpointResource),this._credits)}}});Lc.getCreditsFromEndpoint=function(e,t){let n=e.attributions.map(bt.getIonCredit),i=Ad.getDefaultTokenCredit(t.queryParameters.access_token);return u(i)&&n.push(bt.clone(i)),n};Lc.prototype.clone=function(e){let t=y(this._ionRoot,this);return u(e)||(e=new Lc(t._ionEndpoint,t._ionEndpointResource)),e=ve.prototype.clone.call(this,e),e._ionRoot=t,e._isExternal=this._isExternal,e};Lc.prototype.fetchImage=function(e){if(!this._isExternal){let t=e;e={preferBlob:!0},u(t)&&(e.flipY=t.flipY,e.preferImageBitmap=t.preferImageBitmap)}return ve.prototype.fetchImage.call(this,e)};Lc.prototype._makeRequest=function(e){return this._isExternal||new FG.default(this.url).authority()!==this._ionEndpointDomain?ve.prototype._makeRequest.call(this,e):(u(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),ve.prototype._makeRequest.call(this,e))};Lc._createEndpointResource=function(e,t){t=y(t,y.EMPTY_OBJECT);let n=y(t.server,Ad.defaultServer),i=y(t.accessToken,Ad.defaultAccessToken);n=ve.createIfNeeded(n);let o={url:`v1/assets/${e}/endpoint`};return u(i)&&(o.queryParameters={access_token:i}),n.getDerivedResource(o)};function YRe(e,t){let n=y(e._ionRoot,e),i=n._ionEndpointResource,o=typeof Image<"u";return!u(t)||t.statusCode!==401&&!(o&&t.target instanceof Image)?Promise.resolve(!1):(u(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 ru=Lc;function qh(e){e=y(e,0),this._array=new Array(e),this._length=e}Object.defineProperties(qh.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}}});qh.prototype.get=function(e){return this._array[e]};qh.prototype.set=function(e,t){e>=this._length&&(this.length=e+1),this._array[e]=t};qh.prototype.peek=function(){return this._array[this._length-1]};qh.prototype.push=function(e){let t=this.length++;this._array[t]=e};qh.prototype.pop=function(){if(this._length===0)return;let e=this._array[this._length-1];return--this.length,e};qh.prototype.reserve=function(e){e>this._array.length&&(this._array.length=e)};qh.prototype.resize=function(e){this.length=e};qh.prototype.trim=function(e){e=y(e,this._length),this._array.length=e};var Nc=qh;var xp={X:0,Y:1,Z:2};xp.Y_UP_TO_Z_UP=F.fromRotationTranslation(Q.fromRotationX(P.PI_OVER_TWO));xp.Z_UP_TO_Y_UP=F.fromRotationTranslation(Q.fromRotationX(-P.PI_OVER_TWO));xp.X_UP_TO_Z_UP=F.fromRotationTranslation(Q.fromRotationY(-P.PI_OVER_TWO));xp.Z_UP_TO_X_UP=F.fromRotationTranslation(Q.fromRotationY(P.PI_OVER_TWO));xp.X_UP_TO_Y_UP=F.fromRotationTranslation(Q.fromRotationZ(P.PI_OVER_TWO));xp.Y_UP_TO_X_UP=F.fromRotationTranslation(Q.fromRotationZ(-P.PI_OVER_TWO));xp.fromName=function(e){return xp[e]};var Po=Object.freeze(xp);function Yte(e){e=y(e,y.EMPTY_OBJECT),this._metadata=e.metadata}Object.defineProperties(Yte.prototype,{metadata:{get:function(){return this._metadata}}});var px=Yte;function bg(e,t,n){return t=y(t,0),n=y(n,e.byteLength-t),e=e.subarray(t,t+n),bg.decode(e)}bg.decodeWithTextDecoder=function(e){return new TextDecoder("utf-8").decode(e)};bg.decodeWithFromCharCode=function(e){let t="",n=XRe(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 MP(e,t,n){return t<=e&&e<=n}function XRe(e){let t=0,n=0,i=0,o=128,r=191,s=[],a=e.length;for(let c=0;c<a;++c){let l=e[c];if(i===0){if(MP(l,0,127)){s.push(l);continue}if(MP(l,194,223)){i=1,t=l&31;continue}if(MP(l,224,239)){l===224&&(o=160),l===237&&(r=159),i=2,t=l&15;continue}if(MP(l,240,244)){l===240&&(o=144),l===244&&(r=143),i=3,t=l&7;continue}throw new ue("String decoding failed.")}if(!MP(l,o,r)){t=i=n=0,o=128,r=191,--c;continue}o=128,r=191,t=t<<6|l&63,++n,n===i&&(s.push(t),t=i=n=0)}return s}typeof TextDecoder<"u"?bg.decode=bg.decodeWithTextDecoder:bg.decode=bg.decodeWithFromCharCode;var yl=bg;function KRe(e,t){return t=y(t,0),yl(e,t,Math.min(4,e.length))}var Cd=KRe;function Ed(e,t,n,i){this._tileset=e,this._tile=t,this._resource=n,u(i)||(i=[]),this._contents=i,this._metadata=void 0,this._group=void 0,this._ready=!1}Object.defineProperties(Ed.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 LP=Uint32Array.BYTES_PER_ELEMENT;Ed.fromTileType=async function(e,t,n,i,o,r){o=y(o,0);let s=new Uint8Array(i),a=new DataView(i);o+=LP;let c=a.getUint32(o,!0);if(c!==1)throw new ue(`Only Composite Tile version 1 is supported. Version ${c} is not.`);o+=LP,o+=LP;let l=a.getUint32(o,!0);o+=LP;let f=n.queryParameters.compositeIndex;u(f)?f=`${f}_`:f="";let d=[];d.length=l;for(let m=0;m<l;++m){let x=Cd(s,o),b=a.getUint32(o+LP*2,!0),T=r[x],A=`${f}${m}`,C=n.getDerivedResource({queryParameters:{compositeIndex:A}});if(u(T))d[m]=Promise.resolve(T(e,t,C,i,o));else throw new ue(`Unknown tile content type, ${x}, inside Composite tile`);o+=b}let p=await Promise.all(d);return new Ed(e,t,n,p)};Ed.prototype.hasProperty=function(e,t){return!1};Ed.prototype.getFeature=function(e){};Ed.prototype.applyDebugSettings=function(e,t){let n=this._contents,i=n.length;for(let o=0;o<i;++o)n[o].applyDebugSettings(e,t)};Ed.prototype.applyStyle=function(e){let t=this._contents,n=t.length;for(let i=0;i<n;++i)t[i].applyStyle(e)};Ed.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)};Ed.prototype.isDestroyed=function(){return!1};Ed.prototype.destroy=function(){let e=this._contents,t=e.length;for(let n=0;n<t;++n)e[n].destroy();return le(this)};var NP=Ed;function ZRe(e,t,n){return JSON.parse(yl(e,t,n))}var Oo=ZRe;function Xa(e){this._id=Wn();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,Ut.maximumTextureSize),r=Math.ceil(t/Ut.maximumTextureSize),s=1/o,a=s*.5,c=1/r,l=c*.5;n=new z(o,r),i=new oe(s,a,c,l)}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(Xa.prototype,{translucentFeaturesLength:{get:function(){return this._translucentFeaturesLength}},byteLength:{get:function(){let e=0;return u(this._pickTexture)&&(e+=this._pickTexture.sizeInBytes),u(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}}});Xa.DEFAULT_COLOR_VALUE=H.WHITE;Xa.DEFAULT_SHOW_VALUE=!0;function Xte(e){let t=e._textureDimensions;return t.x*t.y*4}function Kte(e){if(!u(e._batchValues)){let t=Xte(e),n=new Uint8Array(t).fill(255);e._batchValues=n}return e._batchValues}function Zte(e){if(!u(e._showAlphaProperties)){let t=2*e._featuresLength,n=new Uint8Array(t).fill(255);e._showAlphaProperties=n}return e._showAlphaProperties}Xa.prototype.setShow=function(e,t){if(t&&!u(this._showAlphaProperties))return;let n=Zte(this),i=e*2,o=t?255:0;if(n[i]!==o){n[i]=o;let r=Kte(this),s=e*4+3;r[s]=t?n[i+1]:0,this._batchValuesDirty=!0}};Xa.prototype.setAllShow=function(e){let t=this._featuresLength;for(let n=0;n<t;++n)this.setShow(n,e)};Xa.prototype.getShow=function(e){if(!u(this._showAlphaProperties))return!0;let t=e*2;return this._showAlphaProperties[t]===255};var $Re=new Array(4);Xa.prototype.setColor=function(e,t){if(H.equals(t,Xa.DEFAULT_COLOR_VALUE)&&!u(this._batchValues))return;let n=t.toBytes($Re),i=n[3],o=Kte(this),r=e*4,s=Zte(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,l=s[a]!==0;o[r+3]=l?i:0,s[a+1]=i;let f=i!==255;f&&!c?++this._translucentFeaturesLength:!f&&c&&--this._translucentFeaturesLength,this._batchValuesDirty=!0,u(this._colorChangedCallback)&&this._colorChangedCallback(e,t)}};Xa.prototype.setAllColor=function(e){let t=this._featuresLength;for(let n=0;n<t;++n)this.setColor(n,e)};Xa.prototype.getColor=function(e,t){if(!u(this._batchValues))return H.clone(Xa.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)};Xa.prototype.getPickColor=function(e){return this._pickIds[e]};function $te(e,t,n){let i=e._textureDimensions;return new It({context:t,pixelFormat:nt.RGBA,pixelDatatype:Ye.UNSIGNED_BYTE,source:{width:i.x,height:i.y,arrayBufferView:n},flipY:!1,sampler:ln.NEAREST})}function QRe(e,t){let n=e._featuresLength;if(!u(e._pickTexture)&&n>0){let i=e._pickIds,o=Xte(e),r=new Uint8Array(o),s=e._owner,a=e._statistics;for(let c=0;c<n;++c){let l=t.createPickId(s.getFeature(c));i.push(l);let f=l.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=$te(e,t,r),u(a)&&(a.batchTableByteLength+=e._pickTexture.sizeInBytes)}}function JRe(e){let t=e._textureDimensions;e._batchTexture.copyFrom({source:{width:t.x,height:t.y,arrayBufferView:e._batchValues}})}Xa.prototype.update=function(e,t){let n=t.context;this._defaultTexture=n.defaultTexture;let i=t.passes;(i.pick||i.postProcess)&&QRe(this,n),this._batchValuesDirty&&(this._batchValuesDirty=!1,u(this._batchTexture)||(this._batchTexture=$te(this,n,this._batchValues),u(this._statistics)&&(this._statistics.batchTableByteLength+=this._batchTexture.sizeInBytes)),JRe(this))};Xa.prototype.isDestroyed=function(){return!1};Xa.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 le(this)};var Fc=Xa;var eMe={SCALAR:1,VEC2:2,VEC3:3,VEC4:4,MAT2:4,MAT3:9,MAT4:16},tMe={SCALAR:void 0,VEC2:z,VEC3:h,VEC4:oe,MAT2:Qi,MAT3:Q,MAT4:F};function nMe(e){let t=e.componentType,n;typeof t=="string"?n=X.fromName(t):n=t;let i=eMe[e.type],o=tMe[e.type];return{componentsPerAttribute:i,classType:o,createArrayBufferView:function(r,s,a){return X.createArrayBufferView(n,r,s,i*a)}}}var su=nMe;function bp(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,iMe(this,e.extension,e.binaryBody)}Object.defineProperties(bp.prototype,{byteLength:{get:function(){return this._byteLength}}});function iMe(e,t,n){let i,o,r,s=t.instancesLength,a=t.classes,c=t.classIds,l=t.parentCounts,f=t.parentIds,d=s,p=0;u(c.byteOffset)&&(c.componentType=y(c.componentType,X.UNSIGNED_SHORT),c.type=on.SCALAR,r=su(c),c=r.createArrayBufferView(n.buffer,n.byteOffset+c.byteOffset,s),p+=c.byteLength);let g;if(u(l)){for(u(l.byteOffset)&&(l.componentType=y(l.componentType,X.UNSIGNED_SHORT),l.type=on.SCALAR,r=su(l),l=r.createArrayBufferView(n.buffer,n.byteOffset+l.byteOffset,s),p+=l.byteLength),g=new Uint16Array(s),d=0,i=0;i<s;++i)g[i]=d,d+=l[i];p+=g.byteLength}u(f)&&u(f.byteOffset)&&(f.componentType=y(f.componentType,X.UNSIGNED_SHORT),f.type=on.SCALAR,r=su(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,A=a[i].instances,C=oMe(T,A,n);p+=rMe(C),a[i].instances=gt(C,A)}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=l,e._parentIndexes=g,e._parentIds=f,e._byteLength=p}function oMe(e,t,n){let i;for(let o in t)if(t.hasOwnProperty(o)){let r=t[o],s=r.byteOffset;if(u(s)){let a=r.componentType,c=r.type;if(!u(a))throw new ue("componentType is required.");if(!u(c))throw new ue("type is required.");if(!u(n))throw new ue(`Property ${o} requires a batch table binary.`);let l=su(r),f=l.componentsPerAttribute,d=l.classType,p=l.createArrayBufferView(n.buffer,n.byteOffset+s,e);u(i)||(i={}),i[o]={typedArray:p,componentCount:f,type:d}}}return i}function rMe(e){let t=0;for(let n in e)e.hasOwnProperty(n)&&(t+=e[n].typedArray.byteLength);return t}var sMe=[],aMe=[],cMe=0;function lMe(e,t,n){let i=e._classIds,o=e._parentCounts,r=e._parentIds,s=e._parentIndexes,a=i.length,c=sMe;c.length=Math.max(c.length,a);let l=++cMe,f=aMe;for(f.length=0,f.push(t);f.length>0;){if(t=f.pop(),c[t]===l)continue;c[t]=l;let d=n(e,t);if(u(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(u(o))return o;let r=e._parentIds[t];i=r!==t,t=r}}function FP(e,t,n){let i=e._parentCounts,o=e._parentIds;if(u(o)){if(u(i))return lMe(e,t,n)}else return n(e,t);return uMe(e,t,n)}bp.prototype.hasProperty=function(e,t){let n=FP(this,e,function(i,o){let r=i._classIds[o],s=i._classes[r].instances;if(u(s[t]))return!0});return u(n)};bp.prototype.propertyExists=function(e){let t=this._classes,n=t.length;for(let i=0;i<n;++i){let o=t[i].instances;if(u(o[e]))return!0}return!1};bp.prototype.getPropertyIds=function(e,t){return t=u(t)?t:[],t.length=0,FP(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};bp.prototype.getProperty=function(e,t){return FP(this,e,function(n,i){let o=n._classIds[i],r=n._classes[o],s=n._classIndexes[i],a=r.instances[t];if(u(a))return u(a.typedArray)?fMe(a,s):He(a[s],!0)})};function fMe(e,t){let n=e.typedArray,i=e.componentCount;return i===1?n[t]:e.type.unpack(n,t*i)}bp.prototype.setProperty=function(e,t,n){let i=FP(this,e,function(o,r){let s=o._classIds[r],a=o._classes[s],c=o._classIndexes[r],l=a.instances[t];if(u(l))return u(l.typedArray)?dMe(l,c,n):l[c]=He(n,!0),!0});return u(i)};function dMe(e,t,n){let i=e.typedArray,o=e.componentCount;o===1?i[t]=n:e.type.pack(n,i,t*o)}bp.prototype.isClass=function(e,t){let n=FP(this,e,function(i,o){let r=i._classIds[o];if(i._classes[r].name===t)return!0});return u(n)};bp.prototype.getClassName=function(e){let t=this._classIds[e];return this._classes[t].name};var _x=bp;var hMe={HIGHLIGHT:0,REPLACE:1,MIX:2},xl=Object.freeze(hMe);var BG=Fc.DEFAULT_COLOR_VALUE,kG=Fc.DEFAULT_SHOW_VALUE;function uo(e,t,n,i,o){this.featuresLength=t;let r;u(n)&&(r=n.extensions),this._extensions=y(r,{});let s=mMe(n);this._properties=s,this._batchTableHierarchy=pMe(this,n,i);let a=Jte(t,s,i);this._binaryPropertiesByteLength=_Me(a),this._batchTableBinaryProperties=a,this._content=e,this._batchTexture=new Fc({featuresLength:t,colorChangedCallback:o,owner:e,statistics:e.tileset.statistics})}uo._deprecationWarning=Qr;Object.defineProperties(uo.prototype,{batchTableByteLength:{get:function(){let e=this._binaryPropertiesByteLength;return u(this._batchTableHierarchy)&&(e+=this._batchTableHierarchy.byteLength),e+=this._batchTexture.byteLength,e}}});function mMe(e){let t={};if(!u(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 pMe(e,t,n){if(!u(t))return;let i=e._extensions["3DTILES_batch_table_hierarchy"],o=t.HIERARCHY;if(u(o)&&(uo._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),!!u(i))return new _x({extension:i,binaryBody:n})}function Jte(e,t,n){let i;for(let o in t)if(t.hasOwnProperty(o)){let r=t[o],s=r.byteOffset;if(u(s)){let a=r.componentType,c=r.type;if(!u(a))throw new ue("componentType is required.");if(!u(c))throw new ue("type is required.");if(!u(n))throw new ue(`Property ${o} requires a batch table binary.`);let l=su(r),f=l.componentsPerAttribute,d=l.classType,p=l.createArrayBufferView(n.buffer,n.byteOffset+s,e);u(i)||(i={}),i[o]={typedArray:p,componentCount:f,type:d}}}return i}function _Me(e){if(!u(e))return 0;let t=0;for(let n in e)e.hasOwnProperty(n)&&(t+=e[n].typedArray.byteLength);return t}uo.getBinaryProperties=function(e,t,n){return Jte(e,t,n)};uo.prototype.setShow=function(e,t){this._batchTexture.setShow(e,t)};uo.prototype.setAllShow=function(e){this._batchTexture.setAllShow(e)};uo.prototype.getShow=function(e){return this._batchTexture.getShow(e)};uo.prototype.setColor=function(e,t){this._batchTexture.setColor(e,t)};uo.prototype.setAllColor=function(e){this._batchTexture.setAllColor(e)};uo.prototype.getColor=function(e,t){return this._batchTexture.getColor(e,t)};uo.prototype.getPickColor=function(e){return this._batchTexture.getPickColor(e)};var gMe=new H;uo.prototype.applyStyle=function(e){if(!u(e)){this.setAllColor(BG),this.setAllShow(kG);return}let t=this._content,n=this.featuresLength;for(let i=0;i<n;++i){let o=t.getFeature(i),r=u(e.color)?y(e.color.evaluateColor(o,gMe),BG):BG,s=u(e.show)?y(e.show.evaluate(o),kG):kG;this.setColor(i,r),this.setShow(i,s)}};function yMe(e,t){let n=e.typedArray,i=e.componentCount;return i===1?n[t]:e.type.unpack(n,t*i)}function xMe(e,t,n){let i=e.typedArray,o=e.componentCount;o===1?i[t]=n:e.type.pack(n,i,t*o)}uo.prototype.isClass=function(e,t){let n=this._batchTableHierarchy;return u(n)?n.isClass(e,t):!1};uo.prototype.isExactClass=function(e,t){return this.getExactClassName(e)===t};uo.prototype.getExactClassName=function(e){let t=this._batchTableHierarchy;if(u(t))return t.getClassName(e)};uo.prototype.hasProperty=function(e,t){return u(this._properties[t])||u(this._batchTableHierarchy)&&this._batchTableHierarchy.hasProperty(e,t)};uo.prototype.hasPropertyBySemantic=function(){return!1};uo.prototype.getPropertyIds=function(e,t){t=u(t)?t:[],t.length=0;let n=Object.keys(this._properties);return t.push.apply(t,n),u(this._batchTableHierarchy)&&t.push.apply(t,this._batchTableHierarchy.getPropertyIds(e,n)),t};uo.prototype.getPropertyBySemantic=function(e,t){};uo.prototype.getProperty=function(e,t){if(u(this._batchTableBinaryProperties)){let i=this._batchTableBinaryProperties[t];if(u(i))return yMe(i,e)}let n=this._properties[t];if(u(n))return He(n[e],!0);if(u(this._batchTableHierarchy)){let i=this._batchTableHierarchy.getProperty(e,t);if(u(i))return i}};uo.prototype.setProperty=function(e,t,n){let i=this.featuresLength;if(u(this._batchTableBinaryProperties)){let r=this._batchTableBinaryProperties[t];if(u(r)){xMe(r,e,n);return}}if(u(this._batchTableHierarchy)&&this._batchTableHierarchy.setProperty(e,t,n))return;let o=this._properties[t];u(o)||(this._properties[t]=new Array(i),o=this._properties[t]),o[e]=He(n,!0)};function bMe(e){return e._batchTexture.textureDimensions.y===1?`uniform vec4 tile_textureStep;
  5135. vec2 computeSt(float batchId)
  5136. {
  5137. float stepX = tile_textureStep.x;
  5138. float centerX = tile_textureStep.y;
  5139. return vec2(centerX + (batchId * stepX), 0.5);
  5140. }
  5141. `:`uniform vec4 tile_textureStep;
  5142. uniform vec2 tile_textureDimensions;
  5143. vec2 computeSt(float batchId)
  5144. {
  5145. float stepX = tile_textureStep.x;
  5146. float centerX = tile_textureStep.y;
  5147. float stepY = tile_textureStep.z;
  5148. float centerY = tile_textureStep.w;
  5149. float xId = mod(batchId, tile_textureDimensions.x);
  5150. float yId = floor(batchId / tile_textureDimensions.x);
  5151. return vec2(centerX + (xId * stepX), centerY + (yId * stepY));
  5152. }
  5153. `}uo.prototype.getVertexShaderCallback=function(e,t,n){if(this.featuresLength===0)return;let i=this;return function(o){let r=ene(o,n,!1),s;return Ut.maximumVertexTextureImageUnits>0?(s="",e&&(s+=`uniform bool tile_translucentCommand;
  5154. `),s+=`uniform sampler2D tile_batchTexture;
  5155. out vec4 tile_featureColor;
  5156. out vec2 tile_featureSt;
  5157. void main()
  5158. {
  5159. vec2 st = computeSt(${t});
  5160. vec4 featureProperties = texture(tile_batchTexture, st);
  5161. tile_color(featureProperties);
  5162. float show = ceil(featureProperties.a);
  5163. gl_Position *= show;
  5164. `,e&&(s+=` bool isStyleTranslucent = (featureProperties.a != 1.0);
  5165. if (czm_pass == czm_passTranslucent)
  5166. {
  5167. if (!isStyleTranslucent && !tile_translucentCommand)
  5168. {
  5169. gl_Position *= 0.0;
  5170. }
  5171. }
  5172. else
  5173. {
  5174. if (isStyleTranslucent)
  5175. {
  5176. gl_Position *= 0.0;
  5177. }
  5178. }
  5179. `),s+=` tile_featureColor = featureProperties;
  5180. tile_featureSt = st;
  5181. }`):s=`out vec2 tile_featureSt;
  5182. void main()
  5183. {
  5184. tile_color(vec4(1.0));
  5185. tile_featureSt = computeSt(${t});
  5186. }`,`${r}
  5187. ${bMe(i)}${s}`}};function Qte(e,t){return e=Ue.replaceMain(e,"tile_main"),t?`${e}uniform float tile_colorBlend;
  5188. void tile_color(vec4 tile_featureColor)
  5189. {
  5190. tile_main();
  5191. tile_featureColor = czm_gammaCorrect(tile_featureColor);
  5192. out_FragColor.a *= tile_featureColor.a;
  5193. float highlight = ceil(tile_colorBlend);
  5194. out_FragColor.rgb *= mix(tile_featureColor.rgb, vec3(1.0), highlight);
  5195. }
  5196. `:`${e}void tile_color(vec4 tile_featureColor)
  5197. {
  5198. tile_main();
  5199. }
  5200. `}function TMe(e,t){let n=`texture(${t}`,i=0,o=e.indexOf(n,i),r;for(;o>-1;){let s=0;for(let l=o;l<e.length;++l){let f=e.charAt(l);if(f==="(")++s;else if(f===")"&&(--s,s===0)){r=l+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 ene(e,t,n){if(!u(t))return Qte(e,n);let i=new RegExp(`(uniform|attribute|in)\\s+(vec[34]|sampler2D)\\s+${t};`),o=e.match(i);if(!u(o))return Qte(e,n);let r=o[0],s=o[2];e=Ue.replaceMain(e,"tile_main"),e=e.replace(r,"");let a=`bool isWhite(vec3 color)
  5201. {
  5202. return all(greaterThan(color, vec3(1.0 - czm_epsilon3)));
  5203. }
  5204. vec4 tile_diffuse_final(vec4 sourceDiffuse, vec4 tileDiffuse)
  5205. {
  5206. vec4 blendDiffuse = mix(sourceDiffuse, tileDiffuse, tile_colorBlend);
  5207. vec4 diffuse = isWhite(tileDiffuse.rgb) ? sourceDiffuse : blendDiffuse;
  5208. return vec4(diffuse.rgb, sourceDiffuse.a);
  5209. }
  5210. `,c=` tile_featureColor = czm_gammaCorrect(tile_featureColor);
  5211. out_FragColor.a *= tile_featureColor.a;
  5212. float highlight = ceil(tile_colorBlend);
  5213. out_FragColor.rgb *= mix(tile_featureColor.rgb, vec3(1.0), highlight);
  5214. `,l;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),l=` vec4 source = ${f};
  5215. tile_diffuse = tile_diffuse_final(source, tile_featureColor);
  5216. tile_main();
  5217. `}else s==="sampler2D"&&(e=TMe(e,t),l=` tile_diffuse = tile_featureColor;
  5218. tile_main();
  5219. `);return e=`uniform float tile_colorBlend;
  5220. vec4 tile_diffuse = vec4(1.0);
  5221. ${a}${r}
  5222. ${e}
  5223. void tile_color(vec4 tile_featureColor)
  5224. {
  5225. ${l}`,n&&(e+=c),e+=`}
  5226. `,e}uo.prototype.getFragmentShaderCallback=function(e,t,n){if(this.featuresLength!==0)return function(i){return i=ene(i,t,!0),Ut.maximumVertexTextureImageUnits>0?(i+=`uniform sampler2D tile_pickTexture;
  5227. in vec2 tile_featureSt;
  5228. in vec4 tile_featureColor;
  5229. void main()
  5230. {
  5231. tile_color(tile_featureColor);
  5232. `,n&&(i+=` out_FragColor.rgb *= out_FragColor.a;
  5233. `),i+="}"):(e&&(i+=`uniform bool tile_translucentCommand;
  5234. `),i+=`uniform sampler2D tile_pickTexture;
  5235. uniform sampler2D tile_batchTexture;
  5236. in vec2 tile_featureSt;
  5237. void main()
  5238. {
  5239. vec4 featureProperties = texture(tile_batchTexture, tile_featureSt);
  5240. if (featureProperties.a == 0.0) {
  5241. discard;
  5242. }
  5243. `,e&&(i+=` bool isStyleTranslucent = (featureProperties.a != 1.0);
  5244. if (czm_pass == czm_passTranslucent)
  5245. {
  5246. if (!isStyleTranslucent && !tile_translucentCommand)
  5247. {
  5248. discard;
  5249. }
  5250. }
  5251. else
  5252. {
  5253. if (isStyleTranslucent)
  5254. {
  5255. discard;
  5256. }
  5257. }
  5258. `),i+=` tile_color(featureProperties);
  5259. `,n&&(i+=` out_FragColor.rgb *= out_FragColor.a;
  5260. `),i+=`}
  5261. `),i}};uo.prototype.getClassificationFragmentShaderCallback=function(){if(this.featuresLength!==0)return function(e){return e=Ue.replaceMain(e,"tile_main"),Ut.maximumVertexTextureImageUnits>0?e+=`uniform sampler2D tile_pickTexture;
  5262. in vec2 tile_featureSt;
  5263. in vec4 tile_featureColor;
  5264. void main()
  5265. {
  5266. tile_main();
  5267. out_FragColor = tile_featureColor;
  5268. out_FragColor.rgb *= out_FragColor.a;
  5269. }`:e+=`uniform sampler2D tile_batchTexture;
  5270. uniform sampler2D tile_pickTexture;
  5271. in vec2 tile_featureSt;
  5272. void main()
  5273. {
  5274. tile_main();
  5275. vec4 featureProperties = texture(tile_batchTexture, tile_featureSt);
  5276. if (featureProperties.a == 0.0) {
  5277. discard;
  5278. }
  5279. out_FragColor = featureProperties;
  5280. out_FragColor.rgb *= out_FragColor.a;
  5281. }
  5282. `,e}};function AMe(e){let t=e._content.tileset,n=t.colorBlendMode,i=t.colorBlendAmount;if(n===xl.HIGHLIGHT)return 0;if(n===xl.REPLACE)return 1;if(n===xl.MIX)return P.clamp(i,P.EPSILON4,1)}uo.prototype.getUniformMapCallback=function(){if(this.featuresLength===0)return;let e=this;return function(t){return gt(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 AMe(e)},tile_pickTexture:function(){return e._batchTexture.pickTexture}})}};uo.prototype.getPickId=function(){return"texture(tile_pickTexture, tile_featureSt)"};var Tg={ALL_OPAQUE:0,ALL_TRANSLUCENT:1,OPAQUE_AND_TRANSLUCENT:2};uo.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=CMe(this);for(let l=t;l<i;++l){let f=n[l];if(f.pass===Ee.COMPUTE)continue;let d=f.derivedCommands.tileset;(!u(d)||f.dirty)&&(d={},f.derivedCommands.tileset=d,d.originalCommand=EMe(f),f.dirty=!1);let p=d.originalCommand;c!==Tg.ALL_OPAQUE&&f.pass!==Ee.TRANSLUCENT&&(u(d.translucent)||(d.translucent=SMe(p))),c!==Tg.ALL_TRANSLUCENT&&f.pass!==Ee.TRANSLUCENT&&(u(d.opaque)||(d.opaque=wMe(p)),a&&(r||(u(d.zback)||(d.zback=DMe(e.context,p)),s._backfaceCommands.push(d.zback)),(!u(d.stencil)||o._selectionDepth!==PMe(d.stencil))&&(f.renderState.depthMask?d.stencil=IMe(p,o._selectionDepth):d.stencil=d.opaque)));let g=a?d.stencil:d.opaque,m=d.translucent;f.pass!==Ee.TRANSLUCENT?(c===Tg.ALL_OPAQUE&&(n[l]=g),c===Tg.ALL_TRANSLUCENT&&(n[l]=m),c===Tg.OPAQUE_AND_TRANSLUCENT&&(n[l]=g,n.push(m))):n[l]=p}};function CMe(e){let t=e._batchTexture.translucentFeaturesLength;return t===0?Tg.ALL_OPAQUE:t===e.featuresLength?Tg.ALL_TRANSLUCENT:Tg.OPAQUE_AND_TRANSLUCENT}function EMe(e){let t=Je.shallowClone(e),n=t.pass===Ee.TRANSLUCENT;return t.uniformMap=u(t.uniformMap)?t.uniformMap:{},t.uniformMap.tile_translucentCommand=function(){return n},t}function SMe(e){let t=Je.shallowClone(e);return t.pass=Ee.TRANSLUCENT,t.renderState=OMe(e.renderState),t}function wMe(e){let t=Je.shallowClone(e);return t.renderState=RMe(e.renderState),t}function vMe(e,t){let n=e.shaderCache.getDerivedShaderProgram(t,"zBackfaceLogDepth");if(!u(n)){let i=t.fragmentShaderSource.clone();i.defines=u(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 DMe(e,t){let n=Je.shallowClone(t),i=He(n.renderState,!0);i.cull.enabled=!0,i.cull.face=pi.FRONT,i.colorMask={red:!1,green:!1,blue:!1,alpha:!1},i.polygonOffset={enabled:!0,factor:5,units:5},i.stencilTest=Lt.setCesium3DTileBit(),i.stencilMask=Lt.CESIUM_3D_TILE_MASK,n.renderState=ke.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=vMe(e,t.shaderProgram),n}function IMe(e,t){let n=Je.shallowClone(e),i=He(n.renderState,!0);return i.stencilTest.enabled=!0,i.stencilTest.mask=Lt.SKIP_LOD_MASK,i.stencilTest.reference=Lt.CESIUM_3D_TILE_MASK|t<<Lt.SKIP_LOD_BIT_SHIFT,i.stencilTest.frontFunction=zn.GREATER_OR_EQUAL,i.stencilTest.frontOperation.zPass=lt.REPLACE,i.stencilTest.backFunction=zn.GREATER_OR_EQUAL,i.stencilTest.backOperation.zPass=lt.REPLACE,i.stencilMask=Lt.CESIUM_3D_TILE_MASK|Lt.SKIP_LOD_MASK,n.renderState=ke.fromCache(i),n}function PMe(e){return(e.renderState.stencilTest.reference&Lt.SKIP_LOD_MASK)>>>Lt.SKIP_LOD_BIT_SHIFT}function OMe(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=Lt.setCesium3DTileBit(),t.stencilMask=Lt.CESIUM_3D_TILE_MASK,ke.fromCache(t)}function RMe(e){let t=He(e,!0);return t.stencilTest=Lt.setCesium3DTileBit(),t.stencilMask=Lt.CESIUM_3D_TILE_MASK,ke.fromCache(t)}uo.prototype.update=function(e,t){this._batchTexture.update(e,t)};uo.prototype.isDestroyed=function(){return!1};uo.prototype.destroy=function(){return this._batchTexture=this._batchTexture&&this._batchTexture.destroy(),le(this)};var Tp=uo;function MMe(e){this.offset=e.offset,this.count=e.count,this.color=e.color,this.batchIds=e.batchIds}var Yh=MMe;var PA=`in vec3 position;
  5283. in float a_batchId;
  5284. uniform mat4 u_modifiedModelViewProjection;
  5285. void main()
  5286. {
  5287. gl_Position = czm_depthClamp(u_modifiedModelViewProjection * vec4(position, 1.0));
  5288. }
  5289. `;function rf(e,t){this._content=e,this._batchId=t,this._color=void 0}Object.defineProperties(rf.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 u(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(u(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)}}});rf.prototype.hasProperty=function(e){return this._content.batchTable.hasProperty(this._batchId,e)};rf.prototype.getPropertyIds=function(e){return this._content.batchTable.getPropertyIds(this._batchId,e)};rf.prototype.getProperty=function(e){return this._content.batchTable.getProperty(this._batchId,e)};rf.getPropertyInherited=function(e,t,n){let i=e.batchTable;if(u(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(u(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(u(s)){if(s.hasPropertyBySemantic(n))return s.getPropertyBySemantic(n);if(s.hasProperty(n))return s.getProperty(n)}let a;if(u(r.implicitSubtree)&&(a=r.implicitSubtree.metadata),u(a)){if(a.hasPropertyBySemantic(n))return a.getPropertyBySemantic(n);if(a.hasProperty(n))return a.getProperty(n)}let c=u(e.group)?e.group.metadata:void 0;if(u(c)){if(c.hasPropertyBySemantic(n))return c.getPropertyBySemantic(n);if(c.hasProperty(n))return c.getProperty(n)}let l=e.tileset.metadata;if(u(l)){if(l.hasPropertyBySemantic(n))return l.getPropertyBySemantic(n);if(l.hasProperty(n))return l.getProperty(n)}};rf.prototype.getPropertyInherited=function(e){return rf.getPropertyInherited(this._content,this._batchId,e)};rf.prototype.setProperty=function(e,t){this._content.batchTable.setProperty(this._batchId,e,t),this._content.featurePropertiesDirty=!0};rf.prototype.isExactClass=function(e){return this._content.batchTable.isExactClass(this._batchId,e)};rf.prototype.isClass=function(e){return this._content.batchTable.isClass(this._batchId,e)};rf.prototype.getExactClassName=function(){return this._content.batchTable.getExactClassName(this._batchId)};var ws=rf;var UG=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)})}},VG=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)})}},bl=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,l;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)},l=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 "+l),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+=`
  5290. `;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)}}},LMe=new UG;Object.assign(bl,{hooks:LMe,plugins:new VG(bl),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"});bl.max_unop_len=bl.getMaxKeyLen(bl.unary_ops);bl.max_binop_len=bl.getMaxKeyLen(bl.binary_ops);var Ag=e=>new bl(e).parse(),NMe=Object.getOwnPropertyNames(bl);NMe.forEach(e=>{Ag[e]===void 0&&e!=="prototype"&&(Ag[e]=bl[e])});Ag.Jsep=bl;var FMe="ConditionalExpression",BMe={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:FMe,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 :")}})}};Ag.plugins.register(BMe);var kMe={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(kMe);function Sd(e,t){this._expression=e,e=$Me(e,t),e=JMe(QMe(e)),Ag.addBinaryOp("=~",0),Ag.addBinaryOp("!~",0);let n;try{n=Ag(e)}catch(i){throw new ue(i)}this._runtimeAst=bi(this,n)}Object.defineProperties(Sd.prototype,{expression:{get:function(){return this._expression}}});var Pn={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++]}};Sd.prototype.evaluate=function(e,t){Pn.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};Sd.prototype.evaluateColor=function(e,t){Pn.reset();let n=this._runtimeAst.evaluate(e);return H.fromCartesian4(n,t)};Sd.prototype.getShaderFunction=function(e,t,n,i){let o=this.getShaderExpression(t,n);return o=`${i} ${e}
  5291. {
  5292. return ${o};
  5293. }
  5294. `,o};Sd.prototype.getShaderExpression=function(e,t){return this._runtimeAst.getShaderExpression(e,t)};Sd.prototype.getVariables=function(){let e=[];return this._runtimeAst.getVariables(e),e=e.filter(function(t,n,i){return i.indexOf(t)===n}),e};var UMe=["!","-","+"],tne=["+","-","*","/","%","===","!==",">",">=","<","<=","&&","||","!~","=~"],Lk=/\${(.*?)}/g,VMe=/\\/g,zMe="@#%",HMe=/@#%/g,Nk=new H,Fk={abs:vs(Math.abs),sqrt:vs(Math.sqrt),cos:vs(Math.cos),sin:vs(Math.sin),tan:vs(Math.tan),acos:vs(Math.acos),asin:vs(Math.asin),atan:vs(Math.atan),radians:vs(P.toRadians),degrees:vs(P.toDegrees),sign:vs(P.sign),floor:vs(Math.floor),ceil:vs(Math.ceil),round:vs(Math.round),exp:vs(Math.exp),exp2:vs(WMe),log:vs(Math.log),log2:vs(jMe),fract:vs(GMe),length:qMe,normalize:YMe},Bk={atan2:Rk(Math.atan2,!1),pow:Rk(Math.pow,!1),min:Rk(Math.min,!0),max:Rk(Math.max,!0),distance:XMe,dot:KMe,cross:ZMe},GG={clamp:nne(P.clamp,!0),mix:nne(P.lerp,!0)};function GMe(e){return e-Math.floor(e)}function WMe(e){return Math.pow(2,e)}function jMe(e){return P.log2(e)}function vs(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),Pn.getCartesian2());if(n instanceof h)return h.fromElements(e(n.x),e(n.y),e(n.z),Pn.getCartesian3());if(n instanceof oe)return oe.fromElements(e(n.x),e(n.y),e(n.z),e(n.w),Pn.getCartesian4());throw new ue(`Function "${t}" requires a vector or number argument. Argument is ${n}.`)}}function Rk(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),Pn.getCartesian2());if(i instanceof h)return h.fromElements(e(i.x,o),e(i.y,o),e(i.z,o),Pn.getCartesian3());if(i instanceof oe)return oe.fromElements(e(i.x,o),e(i.y,o),e(i.z,o),e(i.w,o),Pn.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),Pn.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),Pn.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),Pn.getCartesian4());throw new ue(`Function "${n}" requires vector or number arguments of matching types. Arguments are ${i} and ${o}.`)}}function nne(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),Pn.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),Pn.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),Pn.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),Pn.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),Pn.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),Pn.getCartesian4());throw new ue(`Function "${n}" requires vector or number arguments of matching types. Arguments are ${i}, ${o}, and ${r}.`)}}function qMe(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 ue(`Function "${e}" requires a vector or number argument. Argument is ${t}.`)}function YMe(e,t){if(typeof t=="number")return 1;if(t instanceof z)return z.normalize(t,Pn.getCartesian2());if(t instanceof h)return h.normalize(t,Pn.getCartesian3());if(t instanceof oe)return oe.normalize(t,Pn.getCartesian4());throw new ue(`Function "${e}" requires a vector or number argument. Argument is ${t}.`)}function XMe(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 ue(`Function "${e}" requires vector or number arguments of matching types. Arguments are ${t} and ${n}.`)}function KMe(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 ue(`Function "${e}" requires vector or number arguments of matching types. Arguments are ${t} and ${n}.`)}function ZMe(e,t,n){if(t instanceof h&&n instanceof h)return h.cross(t,n,Pn.getCartesian3());throw new ue(`Function "${e}" requires vec3 arguments. Arguments are ${t} and ${n}.`)}function _t(e,t,n,i,o){this._type=e,this._value=t,this._left=n,this._right=i,this._test=o,this.evaluate=void 0,lLe(this)}function $Me(e,t){if(!u(t))return e;for(let n in t)if(t.hasOwnProperty(n)){let i=new RegExp(`\\$\\{${n}\\}`,"g"),o=`(${t[n]})`;u(o)&&(e=e.replace(i,o))}return e}function QMe(e){return e.replace(VMe,zMe)}function HG(e){return e.replace(HMe,"\\")}function JMe(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 ue("Unmatched {.");n+=`czm_${t.substr(i+2,a-(i+2))}`,t=t.substr(a+1),i=t.indexOf("${")}}return n+=t,n}function eLe(e){let t=typeof e.value;if(e.value===null)return new _t(dt.LITERAL_NULL,null);if(t==="boolean")return new _t(dt.LITERAL_BOOLEAN,e.value);if(t==="number")return new _t(dt.LITERAL_NUMBER,e.value);if(t==="string")return e.value.indexOf("${")>=0?new _t(dt.VARIABLE_IN_STRING,e.value):new _t(dt.LITERAL_STRING,HG(e.value))}function tLe(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(!u(c.callee)||c.callee.name!=="regExp")throw new ue(`${o} is not a function.`);return i===0?o==="test"?new _t(dt.LITERAL_BOOLEAN,!1):new _t(dt.LITERAL_NULL,null):(s=bi(e,c),a=bi(e,n[0]),new _t(dt.FUNCTION_CALL,o,s,a))}else if(o==="toString")return r=bi(e,c),new _t(dt.FUNCTION_CALL,o,r);throw new ue(`Unexpected function call "${o}".`)}if(o=t.callee.name,o==="color"){if(i===0)return new _t(dt.LITERAL_COLOR,o);if(r=bi(e,n[0]),u(n[1])){let c=bi(e,n[1]);return new _t(dt.LITERAL_COLOR,o,[r,c])}return new _t(dt.LITERAL_COLOR,o,[r])}else if(o==="rgb"||o==="hsl"){if(i<3)throw new ue(`${o} requires three arguments.`);return r=[bi(e,n[0]),bi(e,n[1]),bi(e,n[2])],new _t(dt.LITERAL_COLOR,o,r)}else if(o==="rgba"||o==="hsla"){if(i<4)throw new ue(`${o} requires four arguments.`);return r=[bi(e,n[0]),bi(e,n[1]),bi(e,n[2]),bi(e,n[3])],new _t(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]=bi(e,n[c]);return new _t(dt.LITERAL_VECTOR,o,r)}else{if(o==="isNaN"||o==="isFinite")return i===0?o==="isNaN"?new _t(dt.LITERAL_BOOLEAN,!0):new _t(dt.LITERAL_BOOLEAN,!1):(r=bi(e,n[0]),new _t(dt.UNARY,o,r));if(o==="isExactClass"||o==="isClass"){if(i<1||i>1)throw new ue(`${o} requires exactly one argument.`);return r=bi(e,n[0]),new _t(dt.UNARY,o,r)}else if(o==="getExactClassName"){if(i>0)throw new ue(`${o} does not take any argument.`);return new _t(dt.UNARY,o)}else if(u(Fk[o])){if(i!==1)throw new ue(`${o} requires exactly one argument.`);return r=bi(e,n[0]),new _t(dt.UNARY,o,r)}else if(u(Bk[o])){if(i!==2)throw new ue(`${o} requires exactly two arguments.`);return s=bi(e,n[0]),a=bi(e,n[1]),new _t(dt.BINARY,o,s,a)}else if(u(GG[o])){if(i!==3)throw new ue(`${o} requires exactly three arguments.`);s=bi(e,n[0]),a=bi(e,n[1]);let c=bi(e,n[2]);return new _t(dt.TERNARY,o,s,a,c)}else{if(o==="Boolean")return i===0?new _t(dt.LITERAL_BOOLEAN,!1):(r=bi(e,n[0]),new _t(dt.UNARY,o,r));if(o==="Number")return i===0?new _t(dt.LITERAL_NUMBER,0):(r=bi(e,n[0]),new _t(dt.UNARY,o,r));if(o==="String")return i===0?new _t(dt.LITERAL_STRING,""):(r=bi(e,n[0]),new _t(dt.UNARY,o,r));if(o==="regExp")return nLe(e,t)}}throw new ue(`Unexpected function call "${o}".`)}function nLe(e,t){let n=t.arguments;if(n.length===0)return new _t(dt.LITERAL_REGEX,new RegExp);let i=bi(e,n[0]),o;if(n.length>1){let r=bi(e,n[1]);if(zG(i)&&zG(r)){try{o=new RegExp(HG(String(i._value)),r._value)}catch(s){throw new ue(s)}return new _t(dt.LITERAL_REGEX,o)}return new _t(dt.REGEX,i,r)}if(zG(i)){try{o=new RegExp(HG(String(i._value)))}catch(r){throw new ue(r)}return new _t(dt.LITERAL_REGEX,o)}return new _t(dt.REGEX,i)}function iLe(e){if(aLe(e.name)){let t=cLe(e.name);return t.substr(0,8)==="tiles3d_"?new _t(dt.BUILTIN_VARIABLE,t):new _t(dt.VARIABLE,t)}else{if(e.name==="NaN")return new _t(dt.LITERAL_NUMBER,NaN);if(e.name==="Infinity")return new _t(dt.LITERAL_NUMBER,1/0);if(e.name==="undefined")return new _t(dt.LITERAL_UNDEFINED,void 0)}throw new ue(`${e.name} is not defined.`)}function oLe(e){let t=e.property.name;if(t==="PI")return new _t(dt.LITERAL_NUMBER,Math.PI);if(t==="E")return new _t(dt.LITERAL_NUMBER,Math.E)}function rLe(e){if(e.property.name==="POSITIVE_INFINITY")return new _t(dt.LITERAL_NUMBER,Number.POSITIVE_INFINITY)}function sLe(e,t){if(t.object.name==="Math")return oLe(t);if(t.object.name==="Number")return rLe(t);let n,i=bi(e,t.object);return t.computed?(n=bi(e,t.property),new _t(dt.MEMBER,"brackets",i,n)):(n=new _t(dt.LITERAL_STRING,t.property.name),new _t(dt.MEMBER,"dot",i,n))}function zG(e){return e._type>=dt.LITERAL_NULL}function aLe(e){return e.substr(0,4)==="czm_"}function cLe(e){return e.substr(4)}function bi(e,t){let n,i,o,r;if(t.type==="Literal")n=eLe(t);else if(t.type==="CallExpression")n=tLe(e,t);else if(t.type==="Identifier")n=iLe(t);else if(t.type==="UnaryExpression"){i=t.operator;let s=bi(e,t.argument);if(UMe.indexOf(i)>-1)n=new _t(dt.UNARY,i,s);else throw new ue(`Unexpected operator "${i}".`)}else if(t.type==="BinaryExpression")if(i=t.operator,o=bi(e,t.left),r=bi(e,t.right),tne.indexOf(i)>-1)n=new _t(dt.BINARY,i,o,r);else throw new ue(`Unexpected operator "${i}".`);else if(t.type==="LogicalExpression")i=t.operator,o=bi(e,t.left),r=bi(e,t.right),tne.indexOf(i)>-1&&(n=new _t(dt.BINARY,i,o,r));else if(t.type==="ConditionalExpression"){let s=bi(e,t.test);o=bi(e,t.consequent),r=bi(e,t.alternate),n=new _t(dt.CONDITIONAL,"?",o,r,s)}else if(t.type==="MemberExpression")n=sLe(e,t);else if(t.type==="ArrayExpression"){let s=[];for(let a=0;a<t.elements.length;a++)s[a]=bi(e,t.elements[a]);n=new _t(dt.ARRAY,s)}else throw t.type==="Compound"?new ue("Provide exactly one expression."):new ue("Cannot parse expression.");return n}function lLe(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:u(Fk[e._value])&&(e.evaluate=fLe(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:u(Bk[e._value])&&(e.evaluate=dLe(e._value)):e._type===dt.TERNARY?e.evaluate=hLe(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 u(e)?e.content.tileset.timeSinceLoad:0}function fLe(e){let t=Fk[e];return function(n){let i=this._left.evaluate(n);return t(e,i)}}function dLe(e){let t=Bk[e];return function(n){let i=this._left.evaluate(n),o=this._right.evaluate(n);return t(e,i,o)}}function hLe(e){let t=GG[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 kk(e,t){if(u(e))return e.getPropertyInherited(t)}_t.prototype._evaluateLiteral=function(){return this._value};_t.prototype._evaluateLiteralColor=function(e){let t=Nk,n=this._left;if(this._value==="color")u(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,Pn.getCartesian4())};_t.prototype._evaluateLiteralVector=function(e){let t=Pn.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 ue(`${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 ue(`Invalid ${n} constructor. No valid arguments.`);if(r<s&&r>1)throw new ue(`Invalid ${n} constructor. Not enough arguments.`);if(r>s&&o>1)throw new ue(`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,Pn.getCartesian2());if(n==="vec3")return h.fromArray(t,0,Pn.getCartesian3());if(n==="vec4")return oe.fromArray(t,0,Pn.getCartesian4())};_t.prototype._evaluateLiteralString=function(){return this._value};_t.prototype._evaluateVariableString=function(e){let t=this._value,n=Lk.exec(t);for(;n!==null;){let i=n[0],o=n[1],r=kk(e,o);u(r)||(r=""),t=t.replace(i,r),n=Lk.exec(t)}return t};_t.prototype._evaluateVariable=function(e){return kk(e,this._value)};function gx(e){return e._value==="feature"}_t.prototype._evaluateMemberDot=function(e){if(gx(this._left))return kk(e,this._right.evaluate(e));let t=this._left.evaluate(e);if(!u(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]};_t.prototype._evaluateMemberBrackets=function(e){if(gx(this._left))return kk(e,this._right.evaluate(e));let t=this._left.evaluate(e);if(!u(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]};_t.prototype._evaluateArray=function(e){let t=[];for(let n=0;n<this._value.length;n++)t[n]=this._value[n].evaluate(e);return t};_t.prototype._evaluateNot=function(e){let t=this._left.evaluate(e);if(typeof t!="boolean")throw new ue(`Operator "!" requires a boolean argument. Argument is ${t}.`);return!t};_t.prototype._evaluateNegative=function(e){let t=this._left.evaluate(e);if(t instanceof z)return z.negate(t,Pn.getCartesian2());if(t instanceof h)return h.negate(t,Pn.getCartesian3());if(t instanceof oe)return oe.negate(t,Pn.getCartesian4());if(typeof t=="number")return-t;throw new ue(`Operator "-" requires a vector or number argument. Argument is ${t}.`)};_t.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 ue(`Operator "+" requires a vector or number argument. Argument is ${t}.`);return t};_t.prototype._evaluateLessThan=function(e){let t=this._left.evaluate(e),n=this._right.evaluate(e);if(typeof t!="number"||typeof n!="number")throw new ue(`Operator "<" requires number arguments. Arguments are ${t} and ${n}.`);return t<n};_t.prototype._evaluateLessThanOrEquals=function(e){let t=this._left.evaluate(e),n=this._right.evaluate(e);if(typeof t!="number"||typeof n!="number")throw new ue(`Operator "<=" requires number arguments. Arguments are ${t} and ${n}.`);return t<=n};_t.prototype._evaluateGreaterThan=function(e){let t=this._left.evaluate(e),n=this._right.evaluate(e);if(typeof t!="number"||typeof n!="number")throw new ue(`Operator ">" requires number arguments. Arguments are ${t} and ${n}.`);return t>n};_t.prototype._evaluateGreaterThanOrEquals=function(e){let t=this._left.evaluate(e),n=this._right.evaluate(e);if(typeof t!="number"||typeof n!="number")throw new ue(`Operator ">=" requires number arguments. Arguments are ${t} and ${n}.`);return t>=n};_t.prototype._evaluateOr=function(e){let t=this._left.evaluate(e);if(typeof t!="boolean")throw new ue(`Operator "||" requires boolean arguments. First argument is ${t}.`);if(t)return!0;let n=this._right.evaluate(e);if(typeof n!="boolean")throw new ue(`Operator "||" requires boolean arguments. Second argument is ${n}.`);return t||n};_t.prototype._evaluateAnd=function(e){let t=this._left.evaluate(e);if(typeof t!="boolean")throw new ue(`Operator "&&" requires boolean arguments. First argument is ${t}.`);if(!t)return!1;let n=this._right.evaluate(e);if(typeof n!="boolean")throw new ue(`Operator "&&" requires boolean arguments. Second argument is ${n}.`);return t&&n};_t.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,Pn.getCartesian2());if(n instanceof h&&t instanceof h)return h.add(t,n,Pn.getCartesian3());if(n instanceof oe&&t instanceof oe)return oe.add(t,n,Pn.getCartesian4());if(typeof t=="string"||typeof n=="string")return t+n;if(typeof t=="number"&&typeof n=="number")return t+n;throw new ue(`Operator "+" requires vector or number arguments of matching types, or at least one string argument. Arguments are ${t} and ${n}.`)};_t.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,Pn.getCartesian2());if(n instanceof h&&t instanceof h)return h.subtract(t,n,Pn.getCartesian3());if(n instanceof oe&&t instanceof oe)return oe.subtract(t,n,Pn.getCartesian4());if(typeof t=="number"&&typeof n=="number")return t-n;throw new ue(`Operator "-" requires vector or number arguments of matching types. Arguments are ${t} and ${n}.`)};_t.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,Pn.getCartesian2());if(n instanceof z&&typeof t=="number")return z.multiplyByScalar(n,t,Pn.getCartesian2());if(t instanceof z&&typeof n=="number")return z.multiplyByScalar(t,n,Pn.getCartesian2());if(n instanceof h&&t instanceof h)return h.multiplyComponents(t,n,Pn.getCartesian3());if(n instanceof h&&typeof t=="number")return h.multiplyByScalar(n,t,Pn.getCartesian3());if(t instanceof h&&typeof n=="number")return h.multiplyByScalar(t,n,Pn.getCartesian3());if(n instanceof oe&&t instanceof oe)return oe.multiplyComponents(t,n,Pn.getCartesian4());if(n instanceof oe&&typeof t=="number")return oe.multiplyByScalar(n,t,Pn.getCartesian4());if(t instanceof oe&&typeof n=="number")return oe.multiplyByScalar(t,n,Pn.getCartesian4());if(typeof t=="number"&&typeof n=="number")return t*n;throw new ue(`Operator "*" requires vector or number arguments. If both arguments are vectors they must be matching types. Arguments are ${t} and ${n}.`)};_t.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,Pn.getCartesian2());if(t instanceof z&&typeof n=="number")return z.divideByScalar(t,n,Pn.getCartesian2());if(n instanceof h&&t instanceof h)return h.divideComponents(t,n,Pn.getCartesian3());if(t instanceof h&&typeof n=="number")return h.divideByScalar(t,n,Pn.getCartesian3());if(n instanceof oe&&t instanceof oe)return oe.divideComponents(t,n,Pn.getCartesian4());if(t instanceof oe&&typeof n=="number")return oe.divideByScalar(t,n,Pn.getCartesian4());if(typeof t=="number"&&typeof n=="number")return t/n;throw new ue(`Operator "/" requires vector or number arguments of matching types, or a number as the second argument. Arguments are ${t} and ${n}.`)};_t.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,Pn.getCartesian2());if(n instanceof h&&t instanceof h)return h.fromElements(t.x%n.x,t.y%n.y,t.z%n.z,Pn.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,Pn.getCartesian4());if(typeof t=="number"&&typeof n=="number")return t%n;throw new ue(`Operator "%" requires vector or number arguments of matching types. Arguments are ${t} and ${n}.`)};_t.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};_t.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};_t.prototype._evaluateConditional=function(e){let t=this._test.evaluate(e);if(typeof t!="boolean")throw new ue(`Conditional argument of conditional expression must be a boolean. Argument is ${t}.`);return t?this._left.evaluate(e):this._right.evaluate(e)};_t.prototype._evaluateNaN=function(e){return isNaN(this._left.evaluate(e))};_t.prototype._evaluateIsFinite=function(e){return isFinite(this._left.evaluate(e))};_t.prototype._evaluateIsExactClass=function(e){return u(e)?e.isExactClass(this._left.evaluate(e)):!1};_t.prototype._evaluateIsClass=function(e){return u(e)?e.isClass(this._left.evaluate(e)):!1};_t.prototype._evaluateGetExactClassName=function(e){if(u(e))return e.getExactClassName()};_t.prototype._evaluateBooleanConversion=function(e){return!!this._left.evaluate(e)};_t.prototype._evaluateNumberConversion=function(e){return Number(this._left.evaluate(e))};_t.prototype._evaluateStringConversion=function(e){return String(this._left.evaluate(e))};_t.prototype._evaluateRegExp=function(e){let t=this._value.evaluate(e),n="";u(this._left)&&(n=this._left.evaluate(e));let i;try{i=new RegExp(t,n)}catch(o){throw new ue(o)}return i};_t.prototype._evaluateRegExpTest=function(e){let t=this._left.evaluate(e),n=this._right.evaluate(e);if(!(t instanceof RegExp&&typeof n=="string"))throw new ue(`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)};_t.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 ue(`Operator "=~" requires one RegExp argument and one string argument. Arguments are ${t} and ${n}.`)};_t.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 ue(`Operator "!~" requires one RegExp argument and one string argument. Arguments are ${t} and ${n}.`)};_t.prototype._evaluateRegExpExec=function(e){let t=this._left.evaluate(e),n=this._right.evaluate(e);if(!(t instanceof RegExp&&typeof n=="string"))throw new ue(`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 u(i)?i[1]:null};_t.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 ue(`Unexpected function call "${this._value}".`)};function ine(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,Nk)}function one(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=Nk;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 Cg(e){return e%1===0?e.toFixed(1):e.toString()}function mLe(e){let t=Cg(e.red),n=Cg(e.green),i=Cg(e.blue);return`vec3(${t}, ${n}, ${i})`}function Mk(e){let t=Cg(e.red),n=Cg(e.green),i=Cg(e.blue),o=Cg(e.alpha);return`vec4(${t}, ${n}, ${i}, ${o})`}function rne(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 sne(e,t){return u(t[e])?t[e]:Sd.NULL_SENTINEL}Sd.NULL_SENTINEL="czm_infinity";_t.prototype.getShaderExpression=function(e,t,n){let i,o,r,s,a=this._type,c=this._value;u(this._left)&&(Array.isArray(this._left)?o=rne(this._left,e,t,this):o=this._left.getShaderExpression(e,t,this)),u(this._right)&&(r=this._right.getShaderExpression(e,t,this)),u(this._test)&&(s=this._test.getShaderExpression(e,t,this)),Array.isArray(this._value)&&(c=rne(this._value,e,t,this));let l,f,d;switch(a){case dt.VARIABLE:return gx(this)?void 0:sne(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(u(Fk[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 ue(`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})`:u(Bk[c])?`${c}(${o}, ${r})`:`(${o} ${c} ${r})`;case dt.TERNARY:if(u(GG[c]))return`${c}(${o}, ${r}, ${s})`;break;case dt.CONDITIONAL:return`(${s} ? ${o} : ${r})`;case dt.MEMBER:return gx(this._left)?sne(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 ue(`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 ue("Error generating style shader: Invalid array length. Array length should be 2, 3, or 4.");case dt.REGEX:throw new ue("Error generating style shader: Regular expressions are not supported.");case dt.VARIABLE_IN_STRING:throw new ue("Error generating style shader: Converting a variable to a string is not supported.");case dt.LITERAL_NULL:return Sd.NULL_SENTINEL;case dt.LITERAL_BOOLEAN:return c?"true":"false";case dt.LITERAL_NUMBER:return Cg(c);case dt.LITERAL_STRING:if(u(n)&&n._type===dt.MEMBER&&(c==="r"||c==="g"||c==="b"||c==="a"||c==="x"||c==="y"||c==="z"||c==="w"||gx(n._left)))return c;if(i=H.fromCssColorString(c,Nk),u(i))return mLe(i);throw new ue("Error generating style shader: String literals are not supported.");case dt.LITERAL_COLOR:if(l=o,c==="color"){if(u(l)){if(l.length>1){let p=l[0],g=l[1];return g!=="1.0"&&(t.translucent=!0),`vec4(${p}, ${g})`}}else return"vec4(1.0)";return`vec4(${l[0]}, 1.0)`}else{if(c==="rgb")return i=one(this),u(i)?Mk(i):`vec4(${l[0]} / 255.0, ${l[1]} / 255.0, ${l[2]} / 255.0, 1.0)`;if(c==="rgba")return l[3]!=="1.0"&&(t.translucent=!0),i=one(this),u(i)?Mk(i):`vec4(${l[0]} / 255.0, ${l[1]} / 255.0, ${l[2]} / 255.0, ${l[3]})`;if(c==="hsl")return i=ine(this),u(i)?Mk(i):`vec4(czm_HSLToRGB(vec3(${l[0]}, ${l[1]}, ${l[2]})), 1.0)`;if(c==="hsla")return i=ine(this),u(i)?(i.alpha!==1&&(t.translucent=!0),Mk(i)):(l[3]!=="1.0"&&(t.translucent=!0),`vec4(czm_HSLToRGB(vec3(${l[0]}, ${l[1]}, ${l[2]})), ${l[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 ue("Error generating style shader: Regular expressions are not supported.");case dt.LITERAL_UNDEFINED:return Sd.NULL_SENTINEL;case dt.BUILTIN_VARIABLE:if(c==="tiles3d_tileset_time")return c}};_t.prototype.getVariables=function(e,t){let n,i,o,r=this._type,s=this._value;if(u(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(u(this._right)&&this._right.getVariables(e,this),u(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:gx(this)||e.push(s);break;case dt.VARIABLE_IN_STRING:for(a=Lk.exec(s);a!==null;)e.push(a[1]),a=Lk.exec(s);break;case dt.LITERAL_STRING:u(t)&&t._type===dt.MEMBER&&gx(t._left)&&e.push(s);break}};var sf=Sd;function Ap(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(Ap.prototype,{trianglesLength:{get:function(){return this._trianglesLength}},geometryByteLength:{get:function(){return this._geometryByteLength}}});var pLe={position:0,a_batchId:1};function _Le(e,t){if(u(e._va))return;let n=ct.createVertexBuffer({context:t,typedArray:e._positions,usage:Ne.STATIC_DRAW}),i=ct.createVertexBuffer({context:t,typedArray:e._vertexBatchIds,usage:Ne.STATIC_DRAW}),o=ct.createIndexBuffer({context:t,typedArray:e._indices,usage:Ne.DYNAMIC_DRAW,indexDatatype:e._indices.BYTES_PER_ELEMENT===2?Fe.UNSIGNED_SHORT:Fe.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 ni({context:t,attributes:r,indexBuffer:o}),t.webgl2&&(e._vaSwap=new ni({context:t,attributes:r,indexBuffer:ct.createIndexBuffer({context:t,sizeInBytes:o.sizeInBytes,usage:Ne.DYNAMIC_DRAW,indexDatatype:o.indexDatatype})})),e._batchedPositions=void 0,e._transferrableBatchIds=void 0,e._vertexBatchIds=void 0}function gLe(e,t){if(u(e._sp))return;let n=e._batchTable,i=y(e._attributeLocations,pLe),o=e._pickId,r=e._vertexShaderSource,s=e._fragmentShaderSource;if(u(r)){e._sp=Yt.fromCache({context:t,vertexShaderSource:r,fragmentShaderSource:s,attributeLocations:i}),e._spStencil=e._sp,s=Ue.replaceMain(s,"czm_non_pick_main"),s=`${s}void main()
  5295. {
  5296. czm_non_pick_main();
  5297. out_FragColor = ${o};
  5298. }
  5299. `,e._spPick=Yt.fromCache({context:t,vertexShaderSource:r,fragmentShaderSource:s,attributeLocations:i});return}let a=n.getVertexShaderCallback(!1,"a_batchId",void 0)(PA),c=n.getFragmentShaderCallback(!1,void 0,!0)(mg);o=n.getPickId();let l=new Ue({sources:[a]}),f=new Ue({defines:["VECTOR_TILE"],sources:[c]});e._sp=Yt.fromCache({context:t,vertexShaderSource:l,fragmentShaderSource:f,attributeLocations:i}),l=new Ue({sources:[PA]}),f=new Ue({defines:["VECTOR_TILE"],sources:[mg]}),e._spStencil=Yt.fromCache({context:t,vertexShaderSource:l,fragmentShaderSource:f,attributeLocations:i}),c=Ue.replaceMain(c,"czm_non_pick_main"),c=`${c}
  5300. void main()
  5301. {
  5302. czm_non_pick_main();
  5303. out_FragColor = ${o};
  5304. }
  5305. `;let d=new Ue({sources:[a]}),p=new Ue({defines:["VECTOR_TILE"],sources:[c]});e._spPick=Yt.fromCache({context:t,vertexShaderSource:d,fragmentShaderSource:p,attributeLocations:i})}function ane(e){let t=e?zn.EQUAL:zn.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:Lt.CESIUM_3D_TILE_MASK,mask:Lt.CESIUM_3D_TILE_MASK},stencilMask:Lt.CLASSIFICATION_MASK,depthTest:{enabled:!0,func:ja.LESS_OR_EQUAL},depthMask:!1}}var yLe={stencilTest:{enabled:!0,frontFunction:zn.NOT_EQUAL,frontOperation:{fail:lt.ZERO,zFail:lt.ZERO,zPass:lt.ZERO},backFunction:zn.NOT_EQUAL,backOperation:{fail:lt.ZERO,zFail:lt.ZERO,zPass:lt.ZERO},reference:0,mask:Lt.CLASSIFICATION_MASK},stencilMask:Lt.CLASSIFICATION_MASK,depthTest:{enabled:!1},depthMask:!1,blending:un.PRE_MULTIPLIED_ALPHA_BLEND},xLe={stencilTest:{enabled:!0,frontFunction:zn.NOT_EQUAL,frontOperation:{fail:lt.ZERO,zFail:lt.ZERO,zPass:lt.ZERO},backFunction:zn.NOT_EQUAL,backOperation:{fail:lt.ZERO,zFail:lt.ZERO,zPass:lt.ZERO},reference:0,mask:Lt.CLASSIFICATION_MASK},stencilMask:Lt.CLASSIFICATION_MASK,depthTest:{enabled:!1},depthMask:!1};function bLe(e){u(e._rsStencilDepthPass)||(e._rsStencilDepthPass=ke.fromCache(ane(!1)),e._rsStencilDepthPass3DTiles=ke.fromCache(ane(!0)),e._rsColorPass=ke.fromCache(yLe),e._rsPickPass=ke.fromCache(xLe))}var yx=new F,cne=new h;function TLe(e,t){if(u(e._uniformMap))return;let n={u_modifiedModelViewProjection:function(){let i=t.uniformState.view,o=t.uniformState.projection;return F.clone(i,yx),F.multiplyByPoint(yx,e._center,cne),F.setTranslation(yx,cne,yx),F.multiply(o,yx,yx),yx},u_highlightColor:function(){return e._highlightColor}};e._uniformMap=e._batchTable.getUniformMapCallback()(n)}function WG(e,t,n,i,o,r,s){let a=e.constructor.BYTES_PER_ELEMENT,c=r.length;for(let l=0;l<c;++l){let f=r[l],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 ALe(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],l=WG(n,s,0,i,o,a.batchIds,r);for(a.offset=0,a.count=l;t.length>0;){let f=t.pop();if(H.equals(f.color,a.color))l=WG(n,s,l,i,o,f.batchIds,r),a.batchIds=a.batchIds.concat(f.batchIds),a.count=l-a.offset;else{let d=l;l=WG(n,s,l,i,o,f.batchIds,r),f.offset=d,f.count=l-d,c.push(f),a=f}}e._va.indexBuffer.copyFromArrayView(s),e._indices=s,e._batchedIndices=c}function jG(e,t,n,i,o,r,s){let a=e.bytesPerIndex,c=r.length;for(let l=0;l<c;++l){let f=r[l],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 CLe(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,l=jG(a,c,0,n,i,r.batchIds,o);for(r.offset=0,r.count=l;t.length>0;){let d=t.pop();if(H.equals(d.color,r.color))l=jG(a,c,l,n,i,d.batchIds,o),r.batchIds=r.batchIds.concat(d.batchIds),r.count=l-r.offset;else{let p=l;l=jG(a,c,l,n,i,d.batchIds,o),d.offset=p,d.count=l-p,s.push(d),r=d}}let f=e._va;e._va=e._vaSwap,e._vaSwap=f,e._batchedIndices=s}function ELe(e,t){return t.color.toRgba()-e.color.toRgba()}function SLe(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(u(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(ELe),t.webgl2?CLe(e,n):ALe(e,n),e._framesSinceLastRebatch=0,e._batchDirty=!1,e._pickCommandsDirty=!0,e._wireframeDirty=!0,!0}function wLe(e,t){let n=SLe(e,t),i=e._commands,o=e._batchedIndices,r=o.length,s=r*2;if(u(i)&&!n&&i.length===s)return;i.length=s;let a=e._va,c=e._sp,l=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];u(x)||(x=i[p*2]=new Je({owner:e})),x.vertexArray=a,x.modelMatrix=l,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=Je.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];u(T)||(T=i[p*2+1]=new Je({owner:e})),T.vertexArray=a,T.modelMatrix=l,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 A=Je.shallowClone(T,T.derivedCommands.tileset);A.pass=Ee.CESIUM_3D_TILE_CLASSIFICATION,T.derivedCommands.tileset=A}e._commandsDirty=!0}function vLe(e,t){if(e.classificationType===Vn.TERRAIN||!t.invertClassification||u(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 l=i[c]=Je.shallowClone(n[a],i[c]);l.shaderProgram=o,l.pass=Ee.CESIUM_3D_TILE_CLASSIFICATION_IGNORE_SHOW,a+=2}e._commandsDirty=!1}function DLe(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 l=e._indexOffsets[c],f=e._indexCounts[c],d=u(e._boundingVolumes)?e._boundingVolumes[c]:e.boundingVolume,p=n[c*2];u(p)||(p=n[c*2]=new Je({owner:e,pickOnly:!0})),p.vertexArray=i,p.modelMatrix=s,p.offset=l,p.count=f,p.renderState=e._rsStencilDepthPass,p.shaderProgram=o,p.uniformMap=a,p.boundingVolume=d,p.pass=Ee.TERRAIN_CLASSIFICATION;let g=Je.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];u(m)||(m=n[c*2+1]=new Je({owner:e,pickOnly:!0})),m.vertexArray=i,m.modelMatrix=s,m.offset=l,m.count=f,m.renderState=e._rsPickPass,m.shaderProgram=r,m.uniformMap=a,m.boundingVolume=d,m.pass=Ee.TERRAIN_CLASSIFICATION;let x=Je.shallowClone(m,m.derivedCommands.tileset);x.pass=Ee.CESIUM_3D_TILE_CLASSIFICATION,m.derivedCommands.tileset=x}e._pickCommandsDirty=!1}Ap.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 ws(e,r)}};Ap.prototype.applyDebugSettings=function(e,t){this._highlightColor=e?t:this._constantColor};function ILe(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 PLe=new H,OLe=H.WHITE,RLe=!0,MLe=/\$/;Ap.prototype.applyStyle=function(e,t){if(!u(e)){ILe(this,t);return}let n=e.color,i=n instanceof sf&&!MLe.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=u(e.color)?e.color.evaluateColor(c,PLe):OLe,c.show=u(e.show)?e.show.evaluate(c):RLe}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}};Ap.prototype.updateCommands=function(e,t){if(this._updatingAllCommands)return;let n=this._batchIdLookUp,i=n[e];if(!u(i))return;let o=this._indexOffsets,r=this._indexCounts,s=o[i],a=r[i],c=this._batchedIndices,l=c.length,f;for(f=0;f<l;++f){let x=c[f].offset,b=c[f].count;if(s>=x&&s<x+b)break}c.push(new Yh({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 Yh({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 lne(e,t,n,i){let o=e.classificationType,r=o!==Vn.CESIUM_3D_TILE,s=o!==Vn.TERRAIN,a=t.commandList,c=n.length,l,f;for(f=0;f<c;++f)r&&(l=n[f],l.pass=Ee.TERRAIN_CLASSIFICATION,a.push(l)),s&&(l=n[f].derivedCommands.tileset,l.pass=Ee.CESIUM_3D_TILE_CLASSIFICATION,a.push(l));if(!(!t.invertClassification||!u(i)))for(c=i.length,f=0;f<c;++f)a.push(i[f])}function LLe(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 NLe(e){let t=e.debugWireframe===e._debugWireframe;if(t=t&&!(e.debugWireframe&&e._wireframeDirty),t)return;u(e._rsWireframe)||(e._rsWireframe=ke.fromCache({}));let n,i;e.debugWireframe?(n=e._rsWireframe,i=Me.LINES):(n=e._rsColorPass,i=Me.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}Ap.prototype.update=function(e){let t=e.context;_Le(this,t),gLe(this,t),bLe(this),TLe(this,t);let n=e.passes;n.render&&(wLe(this,t),vLe(this,e),NLe(this),this._debugWireframe?LLe(e,this._commands):lne(this,e,this._commands,this._commandsIgnoreShow)),n.pick&&(DLe(this),lne(this,e,this._pickCommands))};Ap.prototype.isDestroyed=function(){return!1};Ap.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(),le(this)};var xx=Ap;function au(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,u(this._center)||(u(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(au.prototype,{trianglesLength:{get:function(){return u(this._primitive)?this._primitive.trianglesLength:0}},geometryByteLength:{get:function(){return u(this._primitive)?this._primitive.geometryByteLength:0}},ready:{get:function(){return this._ready}}});au.packedBoxLength=F.packedLength+h.packedLength;au.packedCylinderLength=F.packedLength+2;au.packedEllipsoidLength=F.packedLength+h.packedLength;au.packedSphereLength=h.packedLength+1;function FLe(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 BLe(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]=se.unpack(t,n),n+=se.packedLength;let s=t[n++],a=e._batchedIndices=new Array(s);for(let c=0;c<s;++c){let l=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 Yh({color:l,offset:f,count:d,batchIds:g})}return i}var kLe=new hi("createVectorTileGeometries",5),ULe=new H;function VLe(e){if(!u(e._primitive)&&!u(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,l=e._batchTableColors,f=e._packedBuffer;if(!u(l)){let m=0;u(e._boxes)&&(t=e._boxes=t.slice(),n=e._boxBatchIds=n.slice(),m+=n.length),u(e._cylinders)&&(i=e._cylinders=i.slice(),o=e._cylinderBatchIds=o.slice(),m+=o.length),u(e._ellipsoids)&&(r=e._ellipsoids=r.slice(),s=e._ellipsoidBatchIds=s.slice(),m+=s.length),u(e._spheres)&&(a=e._sphere=a.slice(),c=e._sphereBatchIds=c.slice(),m+=c.length),l=e._batchTableColors=new Uint32Array(m);let x=e._batchTable;for(let b=0;b<m;++b){let T=x.getColor(b,ULe);l[b]=T.toRgba()}f=e._packedBuffer=FLe(e)}let d=[];u(t)&&d.push(t.buffer,n.buffer),u(i)&&d.push(i.buffer,o.buffer),u(r)&&d.push(r.buffer,s.buffer),u(a)&&d.push(a.buffer,c.buffer),d.push(l.buffer,f.buffer);let p={boxes:u(t)?t.buffer:void 0,boxBatchIds:u(t)?n.buffer:void 0,cylinders:u(i)?i.buffer:void 0,cylinderBatchIds:u(i)?o.buffer:void 0,ellipsoids:u(r)?r.buffer:void 0,ellipsoidBatchIds:u(r)?s.buffer:void 0,spheres:u(a)?a.buffer:void 0,sphereBatchIds:u(a)?c.buffer:void 0,batchTableColors:l.buffer,packedBuffer:f.buffer},g=e._verticesPromise=kLe.scheduleTask(p,d);return u(g)?g.then(function(m){if(e.isDestroyed())return;let x=new Float64Array(m.packedBuffer);BLe(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),zLe(e),e._ready=!0}).catch(m=>{e.isDestroyed()||(e._error=m)}):void 0}}function zLe(e){u(e._primitive)||(e._primitive=new xx({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)}au.prototype.createFeatures=function(e,t){this._primitive.createFeatures(e,t)};au.prototype.applyDebugSettings=function(e,t){this._primitive.applyDebugSettings(e,t)};au.prototype.applyStyle=function(e,t){this._primitive.applyStyle(e,t)};au.prototype.updateCommands=function(e,t){this._primitive.updateCommands(e,t)};au.prototype.update=function(e){if(!this._ready){if(u(this._promise)||(this._promise=VLe(this)),u(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)};au.prototype.isDestroyed=function(){return!1};au.prototype.destroy=function(){return this._primitive=this._primitive&&this._primitive.destroy(),le(this)};var Cp=au;function Ep(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,WLe(this,i,o)}Object.defineProperties(Ep.prototype,{featuresLength:{get:function(){return u(this._batchTable)?this._batchTable.featuresLength:0}},pointsLength:{get:function(){return 0}},trianglesLength:{get:function(){return u(this._geometries)?this._geometries.trianglesLength:0}},geometryByteLength:{get:function(){return u(this._geometries)?this._geometries.geometryByteLength:0}},texturesByteLength:{get:function(){return 0}},batchTableByteLength:{get:function(){return u(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 HLe(e){return function(t,n){u(e._geometries)&&e._geometries.updateCommands(t,n)}}function GLe(e,t){let n,i,o,r,s,a=y(e.BOXES_LENGTH,0),c=y(e.CYLINDERS_LENGTH,0),l=y(e.ELLIPSOIDS_LENGTH,0),f=y(e.SPHERES_LENGTH,0);if(a>0&&u(e.BOX_BATCH_IDS)){let m=t.byteOffset+e.BOX_BATCH_IDS.byteOffset;n=new Uint16Array(t.buffer,m,a)}if(c>0&&u(e.CYLINDER_BATCH_IDS)){let m=t.byteOffset+e.CYLINDER_BATCH_IDS.byteOffset;i=new Uint16Array(t.buffer,m,c)}if(l>0&&u(e.ELLIPSOID_BATCH_IDS)){let m=t.byteOffset+e.ELLIPSOID_BATCH_IDS.byteOffset;o=new Uint16Array(t.buffer,m,l)}if(f>0&&u(e.SPHERE_BATCH_IDS)){let m=t.byteOffset+e.SPHERE_BATCH_IDS.byteOffset;r=new Uint16Array(t.buffer,m,f)}let d=u(n)||u(i)||u(o)||u(r),p=a>0&&!u(n)||c>0&&!u(i)||l>0&&!u(o)||f>0&&!u(r);if(d&&p)throw new ue("If one group of batch ids is defined, then all batch ids must be defined");if(!u(n)&&!u(i)&&!u(o)&&!u(r)){let m=0;if(!u(n)&&a>0)for(n=new Uint16Array(a),s=0;s<a;++s)n[s]=m++;if(!u(i)&&c>0)for(i=new Uint16Array(c),s=0;s<c;++s)i[s]=m++;if(!u(o)&&l>0)for(o=new Uint16Array(l),s=0;s<l;++s)o[s]=m++;if(!u(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 bx=Uint32Array.BYTES_PER_ELEMENT;function WLe(e,t,n){n=y(n,0);let i=new Uint8Array(t),o=new DataView(t);n+=bx;let r=o.getUint32(n,!0);if(r!==1)throw new ue(`Only Geometry tile version 1 is supported. Version ${r} is not.`);n+=bx;let s=o.getUint32(n,!0);if(n+=bx,s===0){e._ready=!0;return}let a=o.getUint32(n,!0);if(n+=bx,a===0)throw new ue("Feature table must have a byte length greater than zero");let c=o.getUint32(n,!0);n+=bx;let l=o.getUint32(n,!0);n+=bx;let f=o.getUint32(n,!0);n+=bx;let d=Oo(i,n,a);n+=a;let p=new Uint8Array(t,n,c);n+=c;let g,m;l>0&&(g=Oo(i,n,l),n+=l,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),A=y(d.SPHERES_LENGTH,0),C=x+b+T+A,S=new Tp(e,C,g,m,HLe(e));if(e._batchTable=S,C===0)return;let w=e.tile.computedTransform,D;u(d.RTC_CENTER)&&(D=h.unpack(d.RTC_CENTER),F.multiplyByPoint(w,D,D));let O=GLe(d,p);if(x>0||b>0||T>0||A>0){let R,L,N,_;if(x>0){let E=p.byteOffset+d.BOXES.byteOffset;R=new Float32Array(p.buffer,E,Cp.packedBoxLength*x)}if(b>0){let E=p.byteOffset+d.CYLINDERS.byteOffset;L=new Float32Array(p.buffer,E,Cp.packedCylinderLength*b)}if(T>0){let E=p.byteOffset+d.ELLIPSOIDS.byteOffset;N=new Float32Array(p.buffer,E,Cp.packedEllipsoidLength*T)}if(A>0){let E=p.byteOffset+d.SPHERES.byteOffset;_=new Float32Array(p.buffer,E,Cp.packedSphereLength*A)}return e._geometries=new Cp({boxes:R,boxBatchIds:O.boxes,cylinders:L,cylinderBatchIds:O.cylinders,ellipsoids:N,ellipsoidBatchIds:O.ellipsoids,spheres:_,sphereBatchIds:O.spheres,center:D,modelMatrix:w,batchTable:S,boundingVolume:e.tile.boundingVolume.boundingVolume}),e}return Promise.resolve(e)}function une(e){let t=e.featuresLength;if(!u(e._features)&&t>0){let n=new Array(t);u(e._geometries)&&e._geometries.createFeatures(e,n),e._features=n}}Ep.prototype.hasProperty=function(e,t){return this._batchTable.hasProperty(e,t)};Ep.prototype.getFeature=function(e){return une(this),this._features[e]};Ep.prototype.applyDebugSettings=function(e,t){u(this._geometries)&&this._geometries.applyDebugSettings(e,t)};Ep.prototype.applyStyle=function(e){une(this),u(this._geometries)&&this._geometries.applyStyle(e,this._features)};Ep.prototype.update=function(e,t){u(this._geometries)&&(this._geometries.classificationType=this._tileset.classificationType,this._geometries.debugWireframe=this._tileset.debugWireframe,this._geometries.update(t)),u(this._batchTable)&&this._geometries.ready&&(this._batchTable.update(e,t),this._ready=!0)};Ep.prototype.isDestroyed=function(){return!1};Ep.prototype.destroy=function(){return this._geometries=this._geometries&&this._geometries.destroy(),this._batchTable=this._batchTable&&this._batchTable.destroy(),le(this)};var BP=Ep;var qG={};qG.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),fne(i,o,r,s);return c};qG.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)),fne(s,i,o,r),i.x+=s*o,i.y+=s*r,a/=BigInt(4);return[i.x,i.y]};function fne(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 OA=qG;var Tx=30,jLe=1<<Tx,qLe=1<<Tx+1>>>0,YG=2*Tx+1,Eg=4,mne=[],pne=[],YLe=[[0,1,3,2],[0,2,3,1],[3,2,0,1],[3,1,0,2]],Sg=1,RA=2,Uk=[Sg,0,0,Sg|RA];function Hr(e){if(!Bt.supportsBigInt())throw new ue("S2 required BigInt support");this._cellId=e,this._level=Hr.getLevel(e)}Hr.fromToken=function(e){return new Hr(Hr.getIdFromToken(e))};Hr.isValidId=function(e){return!(e<=0||e>>BigInt(YG)>5||!(e&~e+BigInt(1)&BigInt("0x1555555555555555")))};Hr.isValidToken=function(e){return/^[0-9a-fA-F]{1,16}$/.test(e)?Hr.isValidId(Hr.getIdFromToken(e)):!1};Hr.getIdFromToken=function(e){return BigInt("0x"+e+"0".repeat(16-e.length))};Hr.getTokenFromId=function(e){let t=Math.floor(iNe(e)/4),n=e.toString(16).replace(/0*$/,"");return Array(17-t-n.length).join("0")+n};Hr.getLevel=function(e){let t=0;for(;e!==BigInt(0)&&!(e&BigInt(1));)t++,e=e>>BigInt(1);return Tx-(t>>1)};Hr.prototype.getChild=function(e){let t=yne(this._cellId)>>BigInt(2),n=this._cellId+BigInt(2*e+1-4)*t;return new Hr(n)};Hr.prototype.getParent=function(){let e=yne(this._cellId)<<BigInt(2);return new Hr(this._cellId&~e+BigInt(1)|e)};Hr.prototype.getParentAtLevel=function(e){let t=tNe(e);return new Hr(this._cellId&-t|t)};Hr.prototype.getCenter=function(e){e=y(e,ie.WGS84);let t=XLe(this._cellId,this._level);t=h.normalize(t,t);let n=new fe.fromCartesian(t,ie.UNIT_SPHERE);return fe.toCartesian(n,e,new h)};Hr.prototype.getVertex=function(e,t){t=y(t,ie.WGS84);let n=KLe(this._cellId,this._level,e);n=h.normalize(n,n);let i=new fe.fromCartesian(n,ie.UNIT_SPHERE);return fe.toCartesian(i,t,new h)};Hr.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(YG-2*n).join("0"),a=BigInt(`0b${i}${r}${o}1${s}`);return new Hr(a)};function XLe(e,t){let n=ZLe(e,t);return $Le(n[0],n[1],n[2])}function KLe(e,t,n){let i=_ne(e,t),o=QLe([i[1],i[2]],t),r=n>>1&1;return gne(i[0],o[0][r^n&1],o[1][r])}function ZLe(e,t){let n=_ne(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,l=(o<<1)+c,f=(r<<1)+c;return[i,l,f]}function _ne(e){mne.length===0&&eNe();let t=Number(e>>BigInt(YG)),n=t&Sg,i=(1<<Eg)-1,o=0,r=0;for(let s=7;s>=0;s--){let c=(1<<2*(s===7?Tx-7*Eg:Eg))-1;n+=Number(e>>BigInt(s*2*Eg+1)&BigInt(c))<<2,n=pne[n];let l=s*Eg;o+=n>>Eg+2<<l,r+=(n>>2&i)<<l,n&=Sg|RA}return[t,o,r]}function $Le(e,t,n){let i=dne(t),o=dne(n),r=Vk(i),s=Vk(o);return gne(e,r,s)}function gne(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 Vk(e){return e>=.5?1/3*(4*e*e-1):1/3*(1-4*(1-e)*(1-e))}function dne(e){return 1/qLe*e}function QLe(e,t){let n=[[],[]],i=JLe(t);for(let o=0;o<2;++o){let r=e[o]&-i,s=r+i;n[o][0]=Vk(hne(r)),n[o][1]=Vk(hne(s))}return n}function JLe(e){return 1<<Tx-e>>>0}function hne(e){return 1/jLe*e}function wg(e,t,n,i,o,r){if(e===Eg){let s=(t<<Eg)+n;mne[(s<<2)+i]=(o<<2)+r,pne[(o<<2)+i]=(s<<2)+r}else{e++,t<<=1,n<<=1,o<<=2;let s=YLe[r];wg(e,t+(s[0]>>1),n+(s[0]&1),i,o,r^Uk[0]),wg(e,t+(s[1]>>1),n+(s[1]&1),i,o+1,r^Uk[1]),wg(e,t+(s[2]>>1),n+(s[2]&1),i,o+2,r^Uk[2]),wg(e,t+(s[3]>>1),n+(s[3]&1),i,o+3,r^Uk[3])}}function eNe(){wg(0,0,0,0,0,0),wg(0,0,0,Sg,0,Sg),wg(0,0,0,RA,0,RA),wg(0,0,0,Sg|RA,0,Sg|RA)}function yne(e){return e&~e+BigInt(1)}function tNe(e){return BigInt(1)<<BigInt(2*(Tx-e))}var nNe=[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 iNe(e){return nNe[(-e&e)%BigInt(67)]}var Sp=Hr;function oNe(e,t){return u(e)&&u(e.extensions)&&u(e.extensions[t])}var ri=oNe;function XG(e){let t=e.lengthBits,n=e.availableCount,i=e.constant,o=e.bitstream;if(u(i))n=t;else{let r=Math.ceil(t/8);if(o.length!==r)throw new ue(`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);!u(n)&&s&&(n=rNe(o,t))}this._lengthBits=t,this._availableCount=n,this._constant=i,this._bitstream=o}function rNe(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(XG.prototype,{lengthBits:{get:function(){return this._lengthBits}},availableCount:{get:function(){return this._availableCount}}});XG.prototype.getBit=function(e){if(u(this._constant))return this._constant;let t=e>>3,n=e%8;return(this._bitstream[t]>>n&1)===1};var MA=XG;function wp(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(wp.prototype,{class:{get:function(){return this._class}},extras:{get:function(){return this._extras}},extensions:{get:function(){return this._extensions}}});wp.prototype.hasProperty=function(e){return this._metadataTable.hasProperty(e)};wp.prototype.hasPropertyBySemantic=function(e){return this._metadataTable.hasPropertyBySemantic(e)};wp.prototype.getPropertyIds=function(e){return this._metadataTable.getPropertyIds(e)};wp.prototype.getProperty=function(e){return this._metadataTable.getProperty(this._entityId,e)};wp.prototype.setProperty=function(e,t){return this._metadataTable.setProperty(this._entityId,e,t)};wp.prototype.getPropertyBySemantic=function(e){return this._metadataTable.getPropertyBySemantic(this._entityId,e)};wp.prototype.setPropertyBySemantic=function(e,t){return this._metadataTable.setPropertyBySemantic(this._entityId,e,t)};var LA=wp;var zk={QUADTREE:"QUADTREE",OCTREE:"OCTREE"};zk.getBranchingFactor=function(e){switch(e){case zk.OCTREE:return 8;case zk.QUADTREE:return 4}};var Gr=Object.freeze(zk);function qs(){}Object.defineProperties(qs.prototype,{class:{get:function(){de.throwInstantiationError()}}});qs.prototype.hasProperty=function(e){de.throwInstantiationError()};qs.prototype.hasPropertyBySemantic=function(e){de.throwInstantiationError()};qs.prototype.getPropertyIds=function(e){de.throwInstantiationError()};qs.prototype.getProperty=function(e){de.throwInstantiationError()};qs.prototype.setProperty=function(e,t){de.throwInstantiationError()};qs.prototype.getPropertyBySemantic=function(e){de.throwInstantiationError()};qs.prototype.setPropertyBySemantic=function(e,t){de.throwInstantiationError()};qs.hasProperty=function(e,t,n){if(u(t[e]))return!0;let i=n.properties;if(!u(i))return!1;let o=i[e];return!!(u(o)&&u(o.default))};qs.hasPropertyBySemantic=function(e,t,n){let i=n.propertiesBySemantic;if(!u(i))return!1;let o=i[e];return u(o)};qs.getPropertyIds=function(e,t,n){n=u(n)?n:[],n.length=0;for(let o in e)e.hasOwnProperty(o)&&u(e[o])&&n.push(o);let i=t.properties;if(u(i))for(let o in i)i.hasOwnProperty(o)&&!u(e[o])&&u(i[o].default)&&n.push(o);return n};qs.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),!u(o)&&u(i.default))return o=He(i.default,!0),i.unpackVectorAndMatrixTypes(o,r);if(u(o))return o=i.normalize(o),o=i.applyValueTransform(o),i.unpackVectorAndMatrixTypes(o,r)};qs.setProperty=function(e,t,n,i){if(!u(n[e]))return!1;Array.isArray(t)&&(t=t.slice());let o,r=i.properties;u(r)&&(o=r[e]);let s=!0;return u(o)&&(t=o.packVectorAndMatrixTypes(t,s),t=o.unapplyValueTransform(t),t=o.unnormalize(t)),n[e]=t,!0};qs.getPropertyBySemantic=function(e,t,n){let i=n.propertiesBySemantic;if(!u(i))return;let o=i[e];if(u(o))return qs.getProperty(o.id,t,n)};qs.setPropertyBySemantic=function(e,t,n,i){let o=i.propertiesBySemantic;if(!u(o))return!1;let r=i.propertiesBySemantic[e];return u(r)?qs.setProperty(r.id,t,n,i):!1};var Fn=qs;function vp(e){e=y(e,y.EMPTY_OBJECT);let t=e.subtreeMetadata,n=e.class,i=u(t.properties)?t.properties:{};this._class=n,this._properties=i,this._extras=t.extras,this._extensions=t.extensions}Object.defineProperties(vp.prototype,{class:{get:function(){return this._class}},extras:{get:function(){return this._extras}},extensions:{get:function(){return this._extensions}}});vp.prototype.hasProperty=function(e){return Fn.hasProperty(e,this._properties,this._class)};vp.prototype.hasPropertyBySemantic=function(e){return Fn.hasPropertyBySemantic(e,this._properties,this._class)};vp.prototype.getPropertyIds=function(e){return Fn.getPropertyIds(this._properties,this._class,e)};vp.prototype.getProperty=function(e){return Fn.getProperty(e,this._properties,this._class)};vp.prototype.setProperty=function(e,t){return Fn.setProperty(e,t,this._properties,this._class)};vp.prototype.getPropertyBySemantic=function(e){return Fn.getPropertyBySemantic(e,this._properties,this._class)};vp.prototype.setPropertyBySemantic=function(e,t){return Fn.setPropertyBySemantic(e,t,this._properties,this._class)};var kP=vp;var wt={INT8:"INT8",UINT8:"UINT8",INT16:"INT16",UINT16:"UINT16",INT32:"INT32",UINT32:"UINT32",INT64:"INT64",UINT64:"UINT64",FLOAT32:"FLOAT32",FLOAT64:"FLOAT64"};wt.getMinimum=function(e){switch(e){case wt.INT8:return-128;case wt.UINT8:return 0;case wt.INT16:return-32768;case wt.UINT16:return 0;case wt.INT32:return-2147483648;case wt.UINT32:return 0;case wt.INT64:return Bt.supportsBigInt()?BigInt("-9223372036854775808"):-Math.pow(2,63);case wt.UINT64:return Bt.supportsBigInt()?BigInt(0):0;case wt.FLOAT32:return-34028234663852886e22;case wt.FLOAT64:return-Number.MAX_VALUE}};wt.getMaximum=function(e){switch(e){case wt.INT8:return 127;case wt.UINT8:return 255;case wt.INT16:return 32767;case wt.UINT16:return 65535;case wt.INT32:return 2147483647;case wt.UINT32:return 4294967295;case wt.INT64:return Bt.supportsBigInt()?BigInt("9223372036854775807"):Math.pow(2,63)-1;case wt.UINT64:return Bt.supportsBigInt()?BigInt("18446744073709551615"):Math.pow(2,64)-1;case wt.FLOAT32:return 34028234663852886e22;case wt.FLOAT64:return Number.MAX_VALUE}};wt.isIntegerType=function(e){switch(e){case wt.INT8:case wt.UINT8:case wt.INT16:case wt.UINT16:case wt.INT32:case wt.UINT32:case wt.INT64:case wt.UINT64:return!0;default:return!1}};wt.isUnsignedIntegerType=function(e){switch(e){case wt.UINT8:case wt.UINT16:case wt.UINT32:case wt.UINT64:return!0;default:return!1}};wt.isVectorCompatible=function(e){switch(e){case wt.INT8:case wt.UINT8:case wt.INT16:case wt.UINT16:case wt.INT32:case wt.UINT32:case wt.FLOAT32:case wt.FLOAT64:return!0;default:return!1}};wt.normalize=function(e,t){return Math.max(Number(e)/Number(wt.getMaximum(t)),-1)};wt.unnormalize=function(e,t){let n=wt.getMaximum(t),i=wt.isUnsignedIntegerType(t)?0:-n;return e=P.sign(e)*Math.round(Math.abs(e)*Number(n)),(t===wt.INT64||t===wt.UINT64)&&Bt.supportsBigInt()&&(e=BigInt(e)),e>n?n:e<i?i:e};wt.applyValueTransform=function(e,t,n){return n*e+t};wt.unapplyValueTransform=function(e,t,n){return n===0?0:(e-t)/n};wt.getSizeInBytes=function(e){switch(e){case wt.INT8:case wt.UINT8:return 1;case wt.INT16:case wt.UINT16:return 2;case wt.INT32:case wt.UINT32:return 4;case wt.INT64:case wt.UINT64:return 8;case wt.FLOAT32:return 4;case wt.FLOAT64:return 8}};wt.fromComponentDatatype=function(e){switch(e){case X.BYTE:return wt.INT8;case X.UNSIGNED_BYTE:return wt.UINT8;case X.SHORT:return wt.INT16;case X.UNSIGNED_SHORT:return wt.UINT16;case X.INT:return wt.INT32;case X.UNSIGNED_INT:return wt.UINT32;case X.FLOAT:return wt.FLOAT32;case X.DOUBLE:return wt.FLOAT64}};wt.toComponentDatatype=function(e){switch(e){case wt.INT8:return X.BYTE;case wt.UINT8:return X.UNSIGNED_BYTE;case wt.INT16:return X.SHORT;case wt.UINT16:return X.UNSIGNED_SHORT;case wt.INT32:return X.INT;case wt.UINT32:return X.UNSIGNED_INT;case wt.FLOAT32:return X.FLOAT;case wt.FLOAT64:return X.DOUBLE}};var Qt=Object.freeze(wt);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 Q;case Fo.MAT4:return F;default:return}};var Ht=Object.freeze(Fo);function ya(e){e=y(e,y.EMPTY_OBJECT);let t=e.id,n=e.type,i=e.componentType,o=e.enumType,r=u(i)&&Qt.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=u(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=u(s)||u(a),l=!0;u(s)||(s=this.expandConstant(0,l)),u(a)||(a=this.expandConstant(1,l)),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)}ya.fromJson=function(e){e=y(e,y.EMPTY_OBJECT);let t=e.id,n=e.property,i=sNe(n),o=aNe(n,e.enums),r;return u(i)?i?r=u(n.optional)?!n.optional:!0:r=y(n.required,!1):r=!1,new ya({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(ya.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 sNe(e){if(e.type==="ARRAY")return!0;let t=e.type;if(t===Ht.SCALAR||Ht.isMatrixType(t)||Ht.isVectorType(t))return!1;if(u(Qt[t]))return!0;if(u(e.noData)||u(e.scale)||u(e.offset)||u(e.required)||u(e.count)||u(e.array)||u(e.optional))return!1}function aNe(e,t){let n=e.type,i=e.componentType,o=n==="ARRAY",r,s,a;o?(r=!0,s=e.componentCount,a=!u(s)):e.array?(r=!0,s=e.count,a=!u(e.count)):(r=!1,s=void 0,a=!1);let c;if(u(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(u(i)&&u(Qt[i]))return{type:Ht.SCALAR,componentType:i,enumType:void 0,valueType:i,isArray:r,isVariableLengthArray:a,arrayLength:s};if(u(Qt[n]))return{type:Ht.SCALAR,componentType:n,enumType:void 0,valueType:n,isArray:r,isVariableLengthArray:a,arrayLength:s}}ya.prototype.normalize=function(e){return this._normalized?KG(e,this._valueType,Qt.normalize):e};ya.prototype.unnormalize=function(e){return this._normalized?KG(e,this._valueType,Qt.unnormalize):e};ya.prototype.applyValueTransform=function(e){return!this._hasValueTransform||this._isVariableLengthArray?e:ya.valueTransformInPlace(e,this._offset,this._scale,Qt.applyValueTransform)};ya.prototype.unapplyValueTransform=function(e){return!this._hasValueTransform||this._isVariableLengthArray?e:ya.valueTransformInPlace(e,this._offset,this._scale,Qt.unapplyValueTransform)};ya.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)};ya.prototype.handleNoData=function(e){let t=this._noData;if(!u(t))return e;if(!Ane(e,t))return e};function Ane(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(!Ane(e[n],t[n]))return!1;return!0}ya.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 u(n)?t&&r?e.map(function(s){return n.unpack(s)}):i?n.unpackArray(e):n.unpack(e):e};ya.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 u(n)?t&&r?e.map(function(s){return n.pack(s,[])}):i?n.packArray(e,[]):n.pack(e,[]):e};ya.prototype.validate=function(e){if(!(!u(e)&&u(this._default)))return this._required&&!u(e)?"required property must have a value":this._isArray?cNe(this,e):Cne(this,e)};function cNe(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=Cne(e,t[i]);if(u(o))return o}}function Cne(e,t){let n=e._type,i=e._componentType,o=e._enumType,r=e._normalized;return Ht.isVectorType(n)?lNe(t,n,i):Ht.isMatrixType(n)?uNe(t,n,i):n===Ht.STRING?fNe(t):n===Ht.BOOLEAN?dNe(t):n===Ht.ENUM?hNe(t,o):mNe(t,i,r)}function lNe(e,t,n){if(!Qt.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(!Qt.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 Q))return`matrix value ${e} must be a Matrix3`;if(t===Ht.MAT4&&!(e instanceof F))return`matrix value ${e} must be a Matrix4`}function fNe(e){if(typeof e!="string")return Hk(e,Ht.STRING)}function dNe(e){if(typeof e!="boolean")return Hk(e,Ht.BOOLEAN)}function hNe(e,t){let n=typeof e;if(u(t))return n!=="string"||!u(t.valuesByName[e])?`value ${e} is not a valid enum name for ${t.id}`:void 0}function mNe(e,t,n){let i=typeof e;switch(t){case Qt.INT8:case Qt.UINT8:case Qt.INT16:case Qt.UINT16:case Qt.INT32:case Qt.UINT32:case Qt.FLOAT32:case Qt.FLOAT64:return i!=="number"?Hk(e,t):isFinite(e)?bne(e,t,n):Tne(e,t);case Qt.INT64:case Qt.UINT64:return i!=="number"&&i!=="bigint"?Hk(e,t):i==="number"&&!isFinite(e)?Tne(e,t):bne(e,t,n)}}function Hk(e,t){return`value ${e} does not match type ${t}`}function xne(e,t,n){let i=`value ${e} is out of range for type ${t}`;return n&&(i+=" (normalized)"),i}function bne(e,t,n){if(n){let i=Qt.isUnsignedIntegerType(t)?0:-1,o=1;return e<i||e>o?xne(e,t,n):void 0}if(e<Qt.getMinimum(t)||e>Qt.getMaximum(t))return xne(e,t,n)}function Tne(e,t){return`value ${e} of type ${t} must be finite`}function KG(e,t,n){if(!Array.isArray(e))return n(e,t);for(let i=0;i<e.length;i++)e[i]=KG(e[i],t,n);return e}ya.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]=ya.valueTransformInPlace(e[o],t[o],n[o],i);return e};var vg=ya;function UP(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,l=i.enumType,f=r===Ht.STRING,d=r===Ht.BOOLEAN,p=0,g;if(a){let _=y(n.arrayOffsetType,n.offsetType);_=y(Qt[_],Qt.UINT32);let E=y(n.arrayOffsets,n.arrayOffsetBufferView);g=new ZG(o[E],_,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(Qt[_],Qt.UINT32);let E=y(n.stringOffsets,n.stringOffsetBufferView);T=new ZG(o[E],_,b+1),p+=T.typedArray.byteLength}(f||d)&&(c=Qt.UINT8);let A;f?A=T.get(b)-T.get(0):d?A=Math.ceil(b/8):A=b;let C=y(n.values,n.bufferView),S=new ZG(o[C],c,A);p+=S.typedArray.byteLength;let w=n.offset,D=n.scale,O=i.hasValueTransform||u(w)||u(D);w=y(w,i.offset),D=y(D,i.scale),w=Ene(w),D=Ene(D);let R,L,N=this;f?R=function(_){return gNe(_,N._values,N._stringOffsets)}:d?(R=function(_){return yNe(_,N._values)},L=function(_,E){xNe(_,N._values,E)}):u(l)?(R=function(_){let E=N._values.get(_);return l.namesByValue[E]},L=function(_,E){let v=l.valuesByName[E];N._values.set(_,v)}):(R=function(_){return N._values.get(_)},L=function(_,E){N._values.set(_,E)}),this._arrayOffsets=g,this._stringOffsets=T,this._values=S,this._classProperty=i,this._count=t,this._vectorComponentCount=m,this._min=n.min,this._max=n.max,this._offset=w,this._scale=D,this._hasValueTransform=O,this._getValue=R,this._setValue=L,this._unpackedValues=void 0,this._extras=n.extras,this._extensions=n.extensions,this._byteLength=p}Object.defineProperties(UP.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}}});UP.prototype.get=function(e){let t=pNe(this,e);return t=this._classProperty.handleNoData(t),u(t)?(t=this._classProperty.normalize(t),t=vNe(this,t),this._classProperty.unpackVectorAndMatrixTypes(t)):(t=this._classProperty.default,this._classProperty.unpackVectorAndMatrixTypes(t))};UP.prototype.set=function(e,t){let n=this._classProperty;t=n.packVectorAndMatrixTypes(t),t=DNe(this,t),t=n.unnormalize(t),_Ne(this,e,t)};UP.prototype.getTypedArray=function(){if(u(this._values))return this._values.typedArray};function Ene(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 pNe(e,t){wne(e)&&vne(e);let n=e._classProperty,i=n.isArray,o=n.type,r=Ht.getComponentCount(o);if(u(e._unpackedValues)){let s=e._unpackedValues[t];return i?He(s,!0):s}return!i&&r===1?e._getValue(t):Sne(e,n,t)}function Sne(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 _Ne(e,t,n){SNe(e,t,n)&&vne(e);let i=e._classProperty,o=i.isArray,r=i.type,s=Ht.getComponentCount(r);if(u(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 l=0;l<c;++l)e._setValue(a+l,n[l])}function gNe(e,t,n){let i=n.get(e),o=n.get(e+1)-i;return yl(t.typedArray,i,o)}function yNe(e,t){let n=e>>3,i=e%8;return(t.typedArray[n]>>i&1)===1}function xNe(e,t,n){let i=e>>3,o=e%8;n?t.typedArray[i]|=1<<o:t.typedArray[i]&=~(1<<o)}function bNe(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 TNe(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 ANe(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 CNe(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 ENe(e){switch(e){case Qt.INT8:return X.BYTE;case Qt.UINT8:return X.UNSIGNED_BYTE;case Qt.INT16:return X.SHORT;case Qt.UINT16:return X.UNSIGNED_SHORT;case Qt.INT32:return X.INT;case Qt.UINT32:return X.UNSIGNED_INT;case Qt.FLOAT32:return X.FLOAT;case Qt.FLOAT64:return X.DOUBLE}}function wne(e){if(u(e._unpackedValues))return!1;let t=e._classProperty,n=t.type,i=t.valueType;return n===Ht.STRING||i===Qt.INT64&&!Bt.supportsBigInt64Array()||i===Qt.UINT64&&!Bt.supportsBigUint64Array()}function SNe(e,t,n){if(wne(e))return!0;let i=e._arrayOffsets;if(u(i)){let o=i.get(t+1)-i.get(t),r=n.length;if(o!==r)return!0}return!1}function vne(e){e._unpackedValues=wNe(e),e._arrayOffsets=void 0,e._stringOffsets=void 0,e._values=void 0}function wNe(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]=Sne(e,i,a);return n}function vNe(e,t){let i=e._classProperty.isVariableLengthArray;return!e._hasValueTransform||i?t:vg.valueTransformInPlace(t,e._offset,e._scale,Qt.applyValueTransform)}function DNe(e,t){let i=e._classProperty.isVariableLengthArray;return!e._hasValueTransform||i?t:vg.valueTransformInPlace(t,e._offset,e._scale,Qt.unapplyValueTransform)}function ZG(e,t,n){let i=this,o,r,s;if(t===Qt.INT64)Bt.supportsBigInt()?Bt.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 TNe(a,i)}):(Dt("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 bNe(a,i)});else if(t===Qt.UINT64)Bt.supportsBigInt()?Bt.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 CNe(a,i)}):(Dt("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 ANe(a,i)});else{let a=ENe(t);o=X.createArrayBufferView(a,e.buffer,e.byteOffset,n),s=function(c,l){i.typedArray[c]=l}}u(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 VP=UP;function wd(e){e=y(e,y.EMPTY_OBJECT);let t=e.count,n=e.class,i=0,o={};if(u(e.properties)){for(let r in e.properties)if(e.properties.hasOwnProperty(r)){let s=new VP({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(wd.prototype,{count:{get:function(){return this._count}},class:{get:function(){return this._class}},byteLength:{get:function(){return this._byteLength}}});wd.prototype.hasProperty=function(e){return Fn.hasProperty(e,this._properties,this._class)};wd.prototype.hasPropertyBySemantic=function(e){return Fn.hasPropertyBySemantic(e,this._properties,this._class)};wd.prototype.getPropertyIds=function(e){return Fn.getPropertyIds(this._properties,this._class,e)};wd.prototype.getProperty=function(e,t){let n=this._properties[t],i;return u(n)?i=n.get(e):i=INe(this._class,t),i};wd.prototype.setProperty=function(e,t,n){let i=this._properties[t];return u(i)?(i.set(e,n),!0):!1};wd.prototype.getPropertyBySemantic=function(e,t){let n,i=this._class.propertiesBySemantic;if(u(i)&&(n=i[t]),u(n))return this.getProperty(e,n.id)};wd.prototype.setPropertyBySemantic=function(e,t,n){let i,o=this._class.propertiesBySemantic;return u(o)&&(i=o[t]),u(i)?this.setProperty(e,i.id,n):!1};wd.prototype.getPropertyTypedArray=function(e){let t=this._properties[e];if(u(t))return t.getTypedArray()};wd.prototype.getPropertyTypedArrayBySemantic=function(e){let t,n=this._class.propertiesBySemantic;if(u(n)&&(t=n[e]),u(t))return this.getPropertyTypedArray(t.id)};function INe(e,t){let n=e.properties;if(!u(n))return;let i=n[t];if(u(i)&&u(i.default)){let o=i.default;return i.isArray&&(o=He(o,!0)),o=i.normalize(o),i.unpackVectorAndMatrixTypes(o)}}var Tl=wd;function Dg(){}Object.defineProperties(Dg.prototype,{cacheKey:{get:function(){de.throwInstantiationError()}}});Dg.prototype.load=function(){de.throwInstantiationError()};Dg.prototype.unload=function(){};Dg.prototype.process=function(e){return!1};Dg.prototype.getError=function(e,t){u(t)&&u(t.message)&&(e+=`
  5306. ${t.message}`);let n=new ue(e);return u(t)&&(n.stack=`Original stack:
  5307. ${t.stack}
  5308. Handler stack:
  5309. ${n.stack}`),n};Dg.prototype.isDestroyed=function(){return!1};Dg.prototype.destroy=function(){return this.unload(),le(this)};var io=Dg;var PNe={UNLOADED:0,LOADING:1,LOADED:2,PROCESSING:3,READY:4,FAILED:5},Et=Object.freeze(PNe);function Dp(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=Et.UNLOADED,this._promise=void 0}u(Object.create)&&(Dp.prototype=Object.create(io.prototype),Dp.prototype.constructor=Dp);Object.defineProperties(Dp.prototype,{cacheKey:{get:function(){return this._cacheKey}},typedArray:{get:function(){return this._typedArray}}});Dp.prototype.load=async function(){return u(this._promise)?this._promise:u(this._typedArray)?(this._promise=Promise.resolve(this),this._promise):(this._promise=ONe(this),this._promise)};async function ONe(e){let t=e._resource;e._state=Et.LOADING;try{let n=await Dp._fetchArrayBuffer(t);return e.isDestroyed()?void 0:(e._typedArray=new Uint8Array(n),e._state=Et.READY,e)}catch(n){if(e.isDestroyed())return;e._state=Et.FAILED;let i=`Failed to load external buffer: ${t.url}`;throw e.getError(i,n)}}Dp._fetchArrayBuffer=function(e){return e.fetchArrayBuffer()};Dp.prototype.unload=function(){this._typedArray=void 0};var Ax=Dp;var Mne=ro(Rne(),1);function Cx(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,l=a.byteOffset,f=a.byteLength,d=!1,p,g,m,x;if(ri(a,"EXT_meshopt_compression")){let T=a.extensions.EXT_meshopt_compression;c=T.buffer,l=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=l,this._byteLength=f,this._cacheKey=s,this._bufferLoader=void 0,this._typedArray=void 0,this._state=Et.UNLOADED,this._promise=void 0}u(Object.create)&&(Cx.prototype=Object.create(io.prototype),Cx.prototype.constructor=Cx);Object.defineProperties(Cx.prototype,{cacheKey:{get:function(){return this._cacheKey}},typedArray:{get:function(){return this._typedArray}}});async function NNe(e){try{let t=FNe(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);Mne.MeshoptDecoder.decodeGltfBuffer(s,o,r,e._typedArray,e._meshoptMode,e._meshoptFilter),e._typedArray=s}return e._state=Et.READY,e}catch(t){if(e.isDestroyed())return;e.unload(),e._state=Et.FAILED;let n="Failed to load buffer view";throw e.getError(n,t)}}Cx.prototype.load=async function(){return u(this._promise)?this._promise:(this._state=Et.LOADING,this._promise=NNe(this),this._promise)};function FNe(e){let t=e._resourceCache,n=e._buffer;if(u(n.uri)){let o=e._baseResource.getDerivedResource({url:n.uri});return t.getExternalBufferLoader({resource:o})}return t.getEmbeddedBufferLoader({parentResource:e._gltfResource,bufferId:e._bufferId})}Cx.prototype.unload=function(){u(this._bufferLoader)&&!this._bufferLoader.isDestroyed()&&this._resourceCache.unload(this._bufferLoader),this._bufferLoader=void 0,this._typedArray=void 0};var NA=Cx;function wr(){}wr._maxDecodingConcurrency=Math.max(Bt.hardwareConcurrency-1,1);wr._decoderTaskProcessor=void 0;wr._taskProcessorReady=!1;wr._error=void 0;wr._getDecoderTaskProcessor=function(){if(!u(wr._decoderTaskProcessor)){let e=new hi("decodeDraco",wr._maxDecodingConcurrency);e.initWebAssemblyModule({wasmBinaryFile:"ThirdParty/draco_decoder.wasm"}).then(function(t){t?wr._taskProcessorReady=!0:wr._error=new ue("Draco decoder could not be initialized.")}).catch(t=>{wr._error=t}),wr._decoderTaskProcessor=e}return wr._decoderTaskProcessor};wr.decodePointCloud=function(e){let t=wr._getDecoderTaskProcessor();if(u(wr._error))throw wr._error;if(wr._taskProcessorReady)return t.scheduleTask(e,[e.buffer.buffer])};wr.decodeBufferView=function(e){let t=wr._getDecoderTaskProcessor();if(u(wr._error))throw wr._error;if(wr._taskProcessorReady)return t.scheduleTask(e,[e.array.buffer])};var Ip=wr;function Ig(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=Et.UNLOADED,this._promise=void 0,this._dracoError=void 0}u(Object.create)&&(Ig.prototype=Object.create(io.prototype),Ig.prototype.constructor=Ig);Object.defineProperties(Ig.prototype,{cacheKey:{get:function(){return this._cacheKey}},decodedData:{get:function(){return this._decodedData}}});async function BNe(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=Et.PROCESSING,e)}catch(n){if(e.isDestroyed())return;Lne(e,n)}}Ig.prototype.load=async function(){return u(this._promise)?this._promise:(this._state=Et.LOADING,this._promise=BNe(this),this._promise)};function Lne(e,t){e.unload(),e._state=Et.FAILED;let n="Failed to load Draco";throw e.getError(n,t)}async function kNe(e,t){try{let n=await t;return e.isDestroyed()?void 0:(e.unload(),e._decodedData={indices:n.indexArray,vertexAttributes:n.attributeData},e._state=Et.READY,e._baseResource)}catch(n){if(e.isDestroyed())return;e._dracoError=n}}Ig.prototype.process=function(e){if(this._state===Et.READY)return!0;if(this._state!==Et.PROCESSING||(u(this._dracoError)&&Lne(this,this._dracoError),!u(this._bufferViewTypedArray))||u(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=Ip.decodeBufferView(a);if(!u(c))return!1;this._decodePromise=kNe(this,c)};Ig.prototype.unload=function(){u(this._bufferViewLoader)&&this._resourceCache.unload(this._bufferViewLoader),this._bufferViewLoader=void 0,this._bufferViewTypedArray=void 0,this._decodedData=void 0,this._gltf=void 0};var FA=Ig;function UNe(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 ve.supportsImageBitmapOptions().then(function(c){return c?Promise.resolve(ve.createImageBitmapFromBlob(s,{flipY:o,premultiplyAlpha:!1,skipColorSpaceConversion:r})):(a=window.URL.createObjectURL(s),new ve({url:a,request:i}).fetchImage({flipY:o,skipColorSpaceConversion:r}))}).then(function(c){return u(a)&&window.URL.revokeObjectURL(a),c}).catch(function(c){return u(a)&&window.URL.revokeObjectURL(a),Promise.reject(c)})}var Ex=UNe;function Pp(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,l=a.uri;this._resourceCache=t,this._gltfResource=o,this._baseResource=r,this._gltf=n,this._bufferViewId=c,this._uri=l,this._cacheKey=s,this._bufferViewLoader=void 0,this._image=void 0,this._mipLevels=void 0,this._state=Et.UNLOADED,this._promise=void 0}u(Object.create)&&(Pp.prototype=Object.create(io.prototype),Pp.prototype.constructor=Pp);Object.defineProperties(Pp.prototype,{cacheKey:{get:function(){return this._cacheKey}},image:{get:function(){return this._image}},mipLevels:{get:function(){return this._mipLevels}}});Pp.prototype.load=function(){return u(this._promise)?this._promise:u(this._bufferViewId)?(this._promise=VNe(this),this._promise):(this._promise=zNe(this),this._promise)};function Nne(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 VNe(e){e._state=Et.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 GNe(i);if(e.isDestroyed())return;let r=Nne(o);return e.unload(),e._image=r.image,e._mipLevels=r.mipLevels,e._state=Et.READY,e}catch(n){return e.isDestroyed()?void 0:Fne(e,n,"Failed to load embedded image")}}async function zNe(e){e._state=Et.LOADING;let t=e._baseResource,n=e._uri,i=t.getDerivedResource({url:n});try{let o=await jNe(i);if(e.isDestroyed())return;let r=Nne(o);return e.unload(),e._image=r.image,e._mipLevels=r.mipLevels,e._state=Et.READY,e}catch(o){return e.isDestroyed()?void 0:Fne(e,o,`Failed to load image: ${n}`)}}function Fne(e,t,n){return e.unload(),e._state=Et.FAILED,Promise.reject(e.getError(n,t))}function HNe(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 ue("Image format is not recognized")}async function GNe(e){let t=HNe(e);if(t==="image/ktx2"){let n=new Uint8Array(e);return ul(n)}return Pp._loadImageFromTypedArray({uint8Array:e,format:t,flipY:!1,skipColorSpaceConversion:!0})}var WNe=/(^data:image\/ktx2)|(\.ktx2$)/i;function jNe(e){let t=e.getUrlComponent(!1,!0);return WNe.test(t)?ul(e):e.fetchImage({skipColorSpaceConversion:!0,preferImageBitmap:!0})}Pp.prototype.unload=function(){u(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};Pp._loadImageFromTypedArray=Ex;var BA=Pp;var qNe={TEXTURE:0,PROGRAM:1,BUFFER:2,NUMBER_OF_JOB_TYPES:3},xa=Object.freeze(qNe);function Pg(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),l=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=l,this._loadTypedArray=f,this._bufferViewLoader=void 0,this._dracoLoader=void 0,this._typedArray=void 0,this._buffer=void 0,this._state=Et.UNLOADED,this._promise=void 0}u(Object.create)&&(Pg.prototype=Object.create(io.prototype),Pg.prototype.constructor=Pg);Object.defineProperties(Pg.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 YNe=new t6;Pg.prototype.load=async function(){return u(this._promise)?this._promise:u(this._draco)?(this._promise=XNe(this),this._promise):(this._promise=KNe(this),this._promise)};async function XNe(e){e._state=Et.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=Et.LOADED,e)}catch(n){if(e.isDestroyed())return;e6(e,n)}}async function KNe(e){let t=e._gltf,n=e._accessorId,o=t.accessors[n].bufferView;e._state=Et.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=ZNe(e,a),e._state=Et.PROCESSING,e}catch(s){if(e.isDestroyed())return;e6(e,s)}}function ZNe(e,t){let n=e._gltf,i=e._accessorId,o=n.accessors[i],r=o.count,s=o.componentType,a=Fe.getSizeInBytes(s),c=t.buffer,l=t.byteOffset+o.byteOffset;if(l%a!==0){let d=r*a,p=new Uint8Array(c,l,d);c=new Uint8Array(p).buffer,l=0,Qr("index-buffer-unaligned",`The index array is not aligned to a ${a}-byte boundary.`)}let f;return s===Fe.UNSIGNED_BYTE?f=new Uint8Array(c,l,r):s===Fe.UNSIGNED_SHORT?f=new Uint16Array(c,l,r):s===Fe.UNSIGNED_INT&&(f=new Uint32Array(c,l,r)),f}function e6(e,t){e.unload(),e._state=Et.FAILED;let n="Failed to load index buffer";throw e.getError(n,t)}function t6(){this.typedArray=void 0,this.indexDatatype=void 0,this.context=void 0,this.buffer=void 0}t6.prototype.set=function(e,t,n){this.typedArray=e,this.indexDatatype=t,this.context=n};t6.prototype.execute=function(){this.buffer=Bne(this.typedArray,this.indexDatatype,this.context)};function Bne(e,t,n){let i=ct.createIndexBuffer({typedArray:e,context:n,usage:Ne.STATIC_DRAW,indexDatatype:t});return i.vertexArrayDestroyable=!1,i}Pg.prototype.process=function(e){if(this._state===Et.READY)return!0;if(this._state!==Et.LOADED&&this._state!==Et.PROCESSING)return!1;let t=this._typedArray,n=this._indexDatatype;if(u(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){e6(this,o)}if(!u(t))return!1;let i;if(this._loadBuffer&&this._asynchronous){let o=YNe;if(o.set(t,n,e.context),!e.jobScheduler.execute(o,xa.BUFFER))return!1;i=o.buffer}else this._loadBuffer&&(i=Bne(t,n,e.context));return this.unload(),this._buffer=i,this._typedArray=this._loadTypedArray?t:void 0,this._state=Et.READY,this._resourceCache.statistics.addGeometryLoader(this),!0};Pg.prototype.unload=function(){u(this._buffer)&&this._buffer.destroy();let e=this._resourceCache;u(this._bufferViewLoader)&&!this._bufferViewLoader.isDestroyed()&&e.unload(this._bufferViewLoader),u(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 kA=Pg;function $Ne(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 as=$Ne;function QNe(e,t){return u(e.extensionsUsed)&&e.extensionsUsed.indexOf(t)>=0}var ir=QNe;function Wt(){}Wt.objectLegacy=function(e,t){if(u(e)){for(let n in e)if(Object.prototype.hasOwnProperty.call(e,n)){let i=e[n],o=t(i,n);if(u(o))return o}}};Wt.object=function(e,t){if(u(e)){let n=e.length;for(let i=0;i<n;i++){let o=e[i],r=t(o,i);if(u(r))return r}}};Wt.topLevel=function(e,t,n){let i=e[t];return u(i)&&!Array.isArray(i)?Wt.objectLegacy(i,n):Wt.object(i,n)};Wt.accessor=function(e,t){return Wt.topLevel(e,"accessors",t)};Wt.accessorWithSemantic=function(e,t,n){let i={};return Wt.mesh(e,function(o){return Wt.meshPrimitive(o,function(r){let s=Wt.meshPrimitiveAttribute(r,function(a,c){if(c.indexOf(t)===0&&!u(i[a])){i[a]=!0;let l=n(a);if(u(l))return l}});return u(s)?s:Wt.meshPrimitiveTarget(r,function(a){return Wt.meshPrimitiveTargetAttribute(a,function(c,l){if(l.indexOf(t)===0&&!u(i[c])){i[c]=!0;let f=n(c);if(u(f))return f}})})})})};Wt.accessorContainingVertexAttributeData=function(e,t){let n={};return Wt.mesh(e,function(i){return Wt.meshPrimitive(i,function(o){let r=Wt.meshPrimitiveAttribute(o,function(s){if(!u(n[s])){n[s]=!0;let a=t(s);if(u(a))return a}});return u(r)?r:Wt.meshPrimitiveTarget(o,function(s){return Wt.meshPrimitiveTargetAttribute(s,function(a){if(!u(n[a])){n[a]=!0;let c=t(a);if(u(c))return c}})})})})};Wt.accessorContainingIndexData=function(e,t){let n={};return Wt.mesh(e,function(i){return Wt.meshPrimitive(i,function(o){let r=o.indices;if(u(r)&&!u(n[r])){n[r]=!0;let s=t(r);if(u(s))return s}})})};Wt.animation=function(e,t){return Wt.topLevel(e,"animations",t)};Wt.animationChannel=function(e,t){let n=e.channels;return Wt.object(n,t)};Wt.animationSampler=function(e,t){let n=e.samplers;return Wt.object(n,t)};Wt.buffer=function(e,t){return Wt.topLevel(e,"buffers",t)};Wt.bufferView=function(e,t){return Wt.topLevel(e,"bufferViews",t)};Wt.camera=function(e,t){return Wt.topLevel(e,"cameras",t)};Wt.image=function(e,t){return Wt.topLevel(e,"images",t)};Wt.material=function(e,t){return Wt.topLevel(e,"materials",t)};Wt.materialValue=function(e,t){let n=e.values;u(e.extensions)&&u(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(u(o))return o}};Wt.mesh=function(e,t){return Wt.topLevel(e,"meshes",t)};Wt.meshPrimitive=function(e,t){let n=e.primitives;if(u(n)){let i=n.length;for(let o=0;o<i;o++){let r=n[o],s=t(r,o);if(u(s))return s}}};Wt.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(u(o))return o}};Wt.meshPrimitiveTarget=function(e,t){let n=e.targets;if(u(n)){let i=n.length;for(let o=0;o<i;++o){let r=t(n[o],o);if(u(r))return r}}};Wt.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(u(o))return o}};Wt.node=function(e,t){return Wt.topLevel(e,"nodes",t)};Wt.nodeInTree=function(e,t,n){let i=e.nodes;if(u(i)){let o=t.length;for(let r=0;r<o;r++){let s=t[r],a=i[s];if(u(a)){let c=n(a,s);if(u(c))return c;let l=a.children;if(u(l)&&(c=Wt.nodeInTree(e,l,n),u(c)))return c}}}};Wt.nodeInScene=function(e,t,n){let i=t.nodes;if(u(i))return Wt.nodeInTree(e,i,n)};Wt.program=function(e,t){return ir(e,"KHR_techniques_webgl")?Wt.object(e.extensions.KHR_techniques_webgl.programs,t):Wt.topLevel(e,"programs",t)};Wt.sampler=function(e,t){return Wt.topLevel(e,"samplers",t)};Wt.scene=function(e,t){return Wt.topLevel(e,"scenes",t)};Wt.shader=function(e,t){return ir(e,"KHR_techniques_webgl")?Wt.object(e.extensions.KHR_techniques_webgl.shaders,t):Wt.topLevel(e,"shaders",t)};Wt.skin=function(e,t){return Wt.topLevel(e,"skins",t)};Wt.skinJoint=function(e,t){let n=e.joints;if(u(n)){let i=n.length;for(let o=0;o<i;o++){let r=n[o],s=t(r);if(u(s))return s}}};Wt.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(u(o))return o}};Wt.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(u(o))return o}};Wt.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(u(o))return o}};Wt.technique=function(e,t){return ir(e,"KHR_techniques_webgl")?Wt.object(e.extensions.KHR_techniques_webgl.techniques,t):Wt.topLevel(e,"techniques",t)};Wt.texture=function(e,t){return Wt.topLevel(e,"textures",t)};var Ie=Wt;function JNe(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 cu=JNe;function e2e(e,t){let n=t.bufferView;if(u(n)){let i=e.bufferViews[n];if(u(i.byteStride)&&i.byteStride>0)return i.byteStride}return X.getSizeInBytes(t.componentType)*cu(t.type)}var Al=e2e;function t2e(e){Ie.accessor(e,function(n){u(n.bufferView)&&(n.byteOffset=y(n.byteOffset,0))}),Ie.bufferView(e,function(n){u(n.buffer)&&(n.byteOffset=y(n.byteOffset,0))}),Ie.mesh(e,function(n){Ie.meshPrimitive(n,function(i){if(i.mode=y(i.mode,ee.TRIANGLES),!u(i.material)){u(e.materials)||(e.materials=[]);let o={name:"default"};i.material=as(e.materials,o)}})}),Ie.accessorContainingVertexAttributeData(e,function(n){let i=e.accessors[n],o=i.bufferView;if(i.normalized=y(i.normalized,!1),u(o)){let r=e.bufferViews[o];r.byteStride=Al(e,i),r.target=ee.ARRAY_BUFFER}}),Ie.accessorContainingIndexData(e,function(n){let o=e.accessors[n].bufferView;if(u(o)){let r=e.bufferViews[o];r.target=ee.ELEMENT_ARRAY_BUFFER}}),Ie.material(e,function(n){let i=y(n.extensions,y.EMPTY_OBJECT),o=i.KHR_materials_common;if(u(o)){let c=o.technique,l=u(o.values)?o.values:{};o.values=l,l.ambient=u(l.ambient)?l.ambient:[0,0,0,1],l.emission=u(l.emission)?l.emission:[0,0,0,1],l.transparency=y(l.transparency,1),c!=="CONSTANT"&&(l.diffuse=u(l.diffuse)?l.diffuse:[0,0,0,1],c!=="LAMBERT"&&(l.specular=u(l.specular)?l.specular:[0,0,0,1],l.shininess=y(l.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;u(r)&&Ie.materialValue(n,function(c){u(c.index)&&Sx(c)}),Sx(n.emissiveTexture),Sx(n.normalTexture),Sx(n.occlusionTexture);let s=n.pbrMetallicRoughness;u(s)&&(s.baseColorFactor=y(s.baseColorFactor,[1,1,1,1]),s.metallicFactor=y(s.metallicFactor,1),s.roughnessFactor=y(s.roughnessFactor,1),Sx(s.baseColorTexture),Sx(s.metallicRoughnessTexture));let a=i.KHR_materials_pbrSpecularGlossiness;u(a)&&(a.diffuseFactor=y(a.diffuseFactor,[1,1,1,1]),a.specularFactor=y(a.specularFactor,[1,1,1]),a.glossinessFactor=y(a.glossinessFactor,1),Sx(a.specularGlossinessTexture))}),Ie.animation(e,function(n){Ie.animationSampler(n,function(i){i.interpolation=y(i.interpolation,"LINEAR")})});let t=n2e(e);return Ie.node(e,function(n,i){u(t[i])||u(n.translation)||u(n.rotation)||u(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])}),Ie.sampler(e,function(n){n.wrapS=y(n.wrapS,ee.REPEAT),n.wrapT=y(n.wrapT,ee.REPEAT)}),u(e.scenes)&&!u(e.scene)&&(e.scene=0),e}function n2e(e){let t={};return Ie.animation(e,function(n){Ie.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 Sx(e){u(e)&&(e.texCoord=y(e.texCoord,0))}var WP=t2e;function i2e(e){return Ie.shader(e,function(t){qk(t)}),Ie.buffer(e,function(t){qk(t)}),Ie.image(e,function(t){qk(t)}),qk(e),e}function qk(e){e.extras=u(e.extras)?e.extras:{},e.extras._pipeline=u(e.extras._pipeline)?e.extras._pipeline:{}}var Og=i2e;function o2e(e,t){let n=e.extensionsRequired;if(u(n)){let i=n.indexOf(t);i>=0&&n.splice(i,1),n.length===0&&delete e.extensionsRequired}}var jP=o2e;function r2e(e,t){let n=e.extensionsUsed;if(u(n)){let i=n.indexOf(t);i>=0&&n.splice(i,1),jP(e,t),n.length===0&&delete e.extensionsUsed}}var wx=r2e;var s2e=4;function a2e(e){if(Cd(e)!=="glTF")throw new ue("File is not valid binary glTF");let n=kne(e,0,5),i=n[1];if(i!==1&&i!==2)throw new ue("Binary glTF version is not 1 or 2");return i===1?c2e(e,n):l2e(e,n)}function kne(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*s2e,!0);return o}function c2e(e,t){let n=t[2],i=t[3];if(t[4]!==0)throw new ue("Binary glTF scene format is not JSON");let r=20,s=r+i,a=yl(e,r,i),c=JSON.parse(a);Og(c);let l=e.subarray(s,n),f=c.buffers;if(u(f)&&Object.keys(f).length>0){let d=y(f.binary_glTF,f.KHR_binary_glTF);u(d)&&(d.extras._pipeline.source=l,delete d.uri)}return wx(c,"KHR_binary_glTF"),c}function l2e(e,t){let n=t[2],i=12,o,r;for(;i<n;){let s=kne(e,i,2),a=s[0],c=s[1];i+=8;let l=e.subarray(i,i+a);if(i+=a,c===1313821514){let f=yl(l);o=JSON.parse(f),Og(o)}else c===5130562&&(r=l)}if(u(o)&&u(r)){let s=o.buffers;if(u(s)&&s.length>0){let a=s[0];a.extras._pipeline.source=r}}return o}var qP=a2e;function u2e(e){return Ie.shader(e,function(t){Yk(t)}),Ie.buffer(e,function(t){Yk(t)}),Ie.image(e,function(t){Yk(t)}),Yk(e),e}function Yk(e){u(e.extras)&&(u(e.extras._pipeline)&&delete e.extras._pipeline,Object.keys(e.extras).length===0&&delete e.extras)}var YP=u2e;function f2e(e,t){let n=e.extensionsUsed;u(n)||(n=[],e.extensionsUsed=n),as(n,t,!0)}var af=f2e;function d2e(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 Op=d2e;function h2e(e,t){let n=e.bufferViews,i=e.buffers,o=t.bufferView,r=cu(t.type);if(!u(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],l=c.buffer,d=i[l].extras._pipeline.source,p=t.count,g=Al(e,t),m=t.byteOffset+c.byteOffset+d.byteOffset,x=t.componentType,b=X.getSizeInBytes(x),T=new DataView(d.buffer),A=new Array(r),C=Op(x);for(let S=0;S<p;S++){C(T,m,r,b,A);for(let w=0;w<r;w++){let D=A[w];s[w]=Math.min(s[w],D),a[w]=Math.max(a[w],D)}m+=g}return{min:s,max:a}}var vx=h2e;var m2e=[ee.FUNC_ADD,ee.FUNC_ADD],p2e=[ee.ONE,ee.ZERO,ee.ONE,ee.ZERO];function Une(e,t){let n=e.enable;return u(n)?n.indexOf(t)>-1:!1}var _2e=[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 g2e(e,t){if(!u(e))return t;for(let n=0;n<4;n++)if(_2e.indexOf(e[n])===-1)return t;return e}function y2e(e){let t={},n={},i=e.techniques;return u(i)&&(Ie.technique(e,function(o,r){let s=o.states;if(u(s)){let a=n[r]={};if(Une(s,ee.BLEND)){a.alphaMode="BLEND";let c=s.functions;u(c)&&(u(c.blendEquationSeparate)||u(c.blendFuncSeparate))&&(t[r]={blendEquation:y(c.blendEquationSeparate,m2e),blendFactors:g2e(c.blendFuncSeparate,p2e)})}Une(s,ee.CULL_FACE)||(a.doubleSided=!0),delete o.states}}),Object.keys(t).length>0&&(u(e.extensions)||(e.extensions={}),af(e,"KHR_blend")),Ie.material(e,function(o){if(u(o.technique)){let r=n[o.technique];Ie.objectLegacy(r,function(a,c){o[c]=a});let s=t[o.technique];u(s)&&(u(o.extensions)||(o.extensions={}),o.extensions.KHR_blend=s)}})),e}var XP=y2e;function x2e(e,t){let n=e.extensionsRequired;u(n)||(n=[],e.extensionsRequired=n),as(n,t,!0),af(e,t)}var KP=x2e;function b2e(e){let t=e.techniques,n={},i={},o={};if(u(t)){let r={programs:[],shaders:[],techniques:[]},s=e.glExtensionsUsed;delete e.glExtensionsUsed,Ie.technique(e,function(a,c){let l={name:a.name,program:void 0,attributes:{},uniforms:{}},f;if(Ie.techniqueAttribute(a,function(d,p){f=a.parameters[d],l.attributes[p]={semantic:f.semantic}}),Ie.techniqueUniform(a,function(d,p){f=a.parameters[d],l.uniforms[p]={count:f.count,node:f.node,type:f.type,semantic:f.semantic,value:f.value},u(n[c])||(n[c]={}),n[c][d]=p}),u(o[a.program]))l.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=as(r.shaders,g,!0);let m=e.shaders[d.vertexShader];p.vertexShader=as(r.shaders,m,!0),l.program=as(r.programs,p),o[a.program]=l.program}i[c]=as(r.techniques,l)}),r.techniques.length>0&&(u(e.extensions)||(e.extensions={}),e.extensions.KHR_techniques_webgl=r,af(e,"KHR_techniques_webgl"),KP(e,"KHR_techniques_webgl"))}return Ie.material(e,function(r){if(u(r.technique)){let s={technique:i[r.technique]};Ie.objectLegacy(r.values,function(a,c){u(s.values)||(s.values={});let l=n[r.technique][c];u(l)&&(s.values[l]=a)}),u(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 ZP=b2e;function T2e(e,t){sl.typeOf.object("material",e),sl.defined("handler",t);let n=e.pbrMetallicRoughness;if(u(n)){if(u(n.baseColorTexture)){let o=n.baseColorTexture,r=t(o.index,o);if(u(r))return r}if(u(n.metallicRoughnessTexture)){let o=n.metallicRoughnessTexture,r=t(o.index,o);if(u(r))return r}}if(u(e.extensions)){let o=e.extensions.KHR_materials_pbrSpecularGlossiness;if(u(o)){if(u(o.diffuseTexture)){let s=o.diffuseTexture,a=t(s.index,s);if(u(a))return a}if(u(o.specularGlossinessTexture)){let s=o.specularGlossinessTexture,a=t(s.index,s);if(u(a))return a}}let r=e.extensions.KHR_materials_common;if(u(r)&&u(r.values)){let s=r.values.diffuse,a=r.values.ambient,c=r.values.emission,l=r.values.specular;if(u(s)&&u(s.index)){let f=t(s.index,s);if(u(f))return f}if(u(a)&&u(a.index)){let f=t(a.index,a);if(u(f))return f}if(u(c)&&u(c.index)){let f=t(c.index,c);if(u(f))return f}if(u(l)&&u(l.index)){let f=t(l.index,l);if(u(f))return f}}}let i=Ie.materialValue(e,function(o){if(u(o.index)){let r=t(o.index,o);if(u(r))return r}});if(u(i))return i;if(u(e.emissiveTexture)){let o=e.emissiveTexture,r=t(o.index,o);if(u(r))return r}if(u(e.normalTexture)){let o=e.normalTexture,r=t(o.index,o);if(u(r))return r}if(u(e.occlusionTexture)){let o=e.occlusionTexture,r=t(o.index,o);if(u(r))return r}}var UA=T2e;var Vne=["mesh","node","material","accessor","bufferView","buffer","texture","sampler","image"];function A2e(e,t){return t=y(t,Vne),Vne.forEach(function(n){t.indexOf(n)>-1&&E2e(e,n)}),e}var C2e={accessor:"accessors",buffer:"buffers",bufferView:"bufferViews",image:"images",node:"nodes",material:"materials",mesh:"meshes",sampler:"samplers",texture:"textures"};function E2e(e,t){let n=C2e[t],i=e[n];if(u(i)){let o=0,r=Kh[t](e),s=i.length;for(let a=0;a<s;++a)r[a]||(Xh[t](e,a-o),o++)}}function Xh(){}Xh.accessor=function(e,t){e.accessors.splice(t,1),Ie.mesh(e,function(i){Ie.meshPrimitive(i,function(o){Ie.meshPrimitiveAttribute(o,function(a,c){a>t&&o.attributes[c]--}),Ie.meshPrimitiveTarget(o,function(a){Ie.meshPrimitiveTargetAttribute(a,function(c,l){c>t&&a[l]--})});let r=o.indices;u(r)&&r>t&&o.indices--;let s=o.extensions;u(s)&&u(s.CESIUM_primitive_outline)&&s.CESIUM_primitive_outline.indices>t&&--s.CESIUM_primitive_outline.indices})}),Ie.skin(e,function(i){u(i.inverseBindMatrices)&&i.inverseBindMatrices>t&&i.inverseBindMatrices--}),Ie.animation(e,function(i){Ie.animationSampler(i,function(o){u(o.input)&&o.input>t&&o.input--,u(o.output)&&o.output>t&&o.output--})})};Xh.buffer=function(e,t){e.buffers.splice(t,1),Ie.bufferView(e,function(i){u(i.buffer)&&i.buffer>t&&i.buffer--,u(i.extensions)&&u(i.extensions.EXT_meshopt_compression)&&i.extensions.EXT_meshopt_compression.buffer--})};Xh.bufferView=function(e,t){if(e.bufferViews.splice(t,1),Ie.accessor(e,function(i){u(i.bufferView)&&i.bufferView>t&&i.bufferView--}),Ie.shader(e,function(i){u(i.bufferView)&&i.bufferView>t&&i.bufferView--}),Ie.image(e,function(i){u(i.bufferView)&&i.bufferView>t&&i.bufferView--}),ir(e,"KHR_draco_mesh_compression")&&Ie.mesh(e,function(i){Ie.meshPrimitive(i,function(o){u(o.extensions)&&u(o.extensions.KHR_draco_mesh_compression)&&o.extensions.KHR_draco_mesh_compression.bufferView>t&&o.extensions.KHR_draco_mesh_compression.bufferView--})}),ir(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(u(a)){for(let c in a)if(a.hasOwnProperty(c)){let l=a[c];u(l.bufferView)&&l.bufferView>t&&l.bufferView--,u(l.arrayOffsetBufferView)&&l.arrayOffsetBufferView>t&&l.arrayOffsetBufferView--,u(l.stringOffsetBufferView)&&l.stringOffsetBufferView>t&&l.stringOffsetBufferView--}}}}if(ir(e,"EXT_structural_metadata")){let o=e.extensions.EXT_structural_metadata.propertyTables;if(u(o)){let r=o.length;for(let s=0;s<r;++s){let c=o[s].properties;for(let l in c)if(c.hasOwnProperty(l)){let f=c[l];u(f.values)&&f.values>t&&f.values--,u(f.arrayOffsets)&&f.arrayOffsets>t&&f.arrayOffsets--,u(f.stringOffsets)&&f.stringOffsets>t&&f.stringOffsets--}}}}};Xh.image=function(e,t){e.images.splice(t,1),Ie.texture(e,function(i){u(i.source)&&i.source>t&&--i.source;let o=i.extensions;u(o)&&u(o.EXT_texture_webp)&&o.EXT_texture_webp.source>t?--i.extensions.EXT_texture_webp.source:u(o)&&u(o.KHR_texture_basisu)&&o.KHR_texture_basisu.source>t&&--i.extensions.KHR_texture_basisu.source})};Xh.mesh=function(e,t){e.meshes.splice(t,1),Ie.node(e,function(i){u(i.mesh)&&(i.mesh>t?i.mesh--:i.mesh===t&&delete i.mesh)})};Xh.node=function(e,t){e.nodes.splice(t,1),Ie.skin(e,function(i){u(i.skeleton)&&i.skeleton>t&&i.skeleton--,i.joints=i.joints.map(function(o){return o>t?o-1:o})}),Ie.animation(e,function(i){Ie.animationChannel(i,function(o){u(o.target)&&u(o.target.node)&&o.target.node>t&&o.target.node--})}),Ie.technique(e,function(i){Ie.techniqueUniform(i,function(o){u(o.node)&&o.node>t&&o.node--})}),Ie.node(e,function(i){u(i.children)&&(i.children=i.children.filter(function(o){return o!==t}).map(function(o){return o>t?o-1:o}))}),Ie.scene(e,function(i){i.nodes=i.nodes.filter(function(o){return o!==t}).map(function(o){return o>t?o-1:o})})};Xh.material=function(e,t){e.materials.splice(t,1),Ie.mesh(e,function(i){Ie.meshPrimitive(i,function(o){u(o.material)&&o.material>t&&o.material--})})};Xh.sampler=function(e,t){e.samplers.splice(t,1),Ie.texture(e,function(i){u(i.sampler)&&i.sampler>t&&--i.sampler})};Xh.texture=function(e,t){if(e.textures.splice(t,1),Ie.material(e,function(i){UA(i,function(o,r){r.index>t&&--r.index})}),ir(e,"EXT_feature_metadata")){Ie.mesh(e,function(r){Ie.meshPrimitive(r,function(s){let a=s.extensions;if(u(a)&&u(a.EXT_feature_metadata)){let l=a.EXT_feature_metadata.featureIdTextures;if(u(l)){let f=l.length;for(let d=0;d<f;++d){let g=l[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(u(a)){for(let c in a)if(a.hasOwnProperty(c)){let f=a[c].texture;f.index>t&&--f.index}}}}if(ir(e,"EXT_mesh_features")&&Ie.mesh(e,function(i){Ie.meshPrimitive(i,function(o){let r=o.extensions;if(u(r)&&u(r.EXT_mesh_features)){let a=r.EXT_mesh_features.featureIds;if(u(a)){let c=a.length;for(let l=0;l<c;++l){let f=a[l];u(f.texture)&&f.texture.index>t&&--f.texture.index}}}})}),ir(e,"EXT_structural_metadata")){let o=e.extensions.EXT_structural_metadata.propertyTextures;if(u(o)){let r=o.length;for(let s=0;s<r;++s){let c=o[s].properties;for(let l in c)if(c.hasOwnProperty(l)){let f=c[l];f.index>t&&--f.index}}}}};function Kh(){}Kh.accessor=function(e){let t={};return Ie.mesh(e,function(n){Ie.meshPrimitive(n,function(i){Ie.meshPrimitiveAttribute(i,function(r){t[r]=!0}),Ie.meshPrimitiveTarget(i,function(r){Ie.meshPrimitiveTargetAttribute(r,function(s){t[s]=!0})});let o=i.indices;u(o)&&(t[o]=!0)})}),Ie.skin(e,function(n){u(n.inverseBindMatrices)&&(t[n.inverseBindMatrices]=!0)}),Ie.animation(e,function(n){Ie.animationSampler(n,function(i){u(i.input)&&(t[i.input]=!0),u(i.output)&&(t[i.output]=!0)})}),ir(e,"EXT_mesh_gpu_instancing")&&Ie.node(e,function(n){u(n.extensions)&&u(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})}),ir(e,"CESIUM_primitive_outline")&&Ie.mesh(e,function(n){Ie.meshPrimitive(n,function(i){let o=i.extensions;if(u(o)&&u(o.CESIUM_primitive_outline)){let s=o.CESIUM_primitive_outline.indices;u(s)&&(t[s]=!0)}})}),t};Kh.buffer=function(e){let t={};return Ie.bufferView(e,function(n){u(n.buffer)&&(t[n.buffer]=!0),u(n.extensions)&&u(n.extensions.EXT_meshopt_compression)&&(t[n.extensions.EXT_meshopt_compression.buffer]=!0)}),t};Kh.bufferView=function(e){let t={};if(Ie.accessor(e,function(n){u(n.bufferView)&&(t[n.bufferView]=!0)}),Ie.shader(e,function(n){u(n.bufferView)&&(t[n.bufferView]=!0)}),Ie.image(e,function(n){u(n.bufferView)&&(t[n.bufferView]=!0)}),ir(e,"KHR_draco_mesh_compression")&&Ie.mesh(e,function(n){Ie.meshPrimitive(n,function(i){u(i.extensions)&&u(i.extensions.KHR_draco_mesh_compression)&&(t[i.extensions.KHR_draco_mesh_compression.bufferView]=!0)})}),ir(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(u(s)){for(let a in s)if(s.hasOwnProperty(a)){let c=s[a];u(c.bufferView)&&(t[c.bufferView]=!0),u(c.arrayOffsetBufferView)&&(t[c.arrayOffsetBufferView]=!0),u(c.stringOffsetBufferView)&&(t[c.stringOffsetBufferView]=!0)}}}}if(ir(e,"EXT_structural_metadata")){let i=e.extensions.EXT_structural_metadata.propertyTables;if(u(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 l=a[c];u(l.values)&&(t[l.values]=!0),u(l.arrayOffsets)&&(t[l.arrayOffsets]=!0),u(l.stringOffsets)&&(t[l.stringOffsets]=!0)}}}}return t};Kh.image=function(e){let t={};return Ie.texture(e,function(n){u(n.source)&&(t[n.source]=!0),u(n.extensions)&&u(n.extensions.EXT_texture_webp)?t[n.extensions.EXT_texture_webp.source]=!0:u(n.extensions)&&u(n.extensions.KHR_texture_basisu)&&(t[n.extensions.KHR_texture_basisu.source]=!0)}),t};Kh.mesh=function(e){let t={};return Ie.node(e,function(n){if(u(n.mesh&&u(e.meshes))){let i=e.meshes[n.mesh];u(i)&&u(i.primitives)&&i.primitives.length>0&&(t[n.mesh]=!0)}}),t};function zne(e,t,n){let i=e.nodes[t];return u(i.mesh)||u(i.camera)||u(i.skin)||u(i.weights)||u(i.extras)||u(i.extensions)&&Object.keys(i.extensions).length!==0||u(n[t])?!1:!u(i.children)||i.children.filter(function(o){return!zne(e,o,n)}).length===0}Kh.node=function(e){let t={};return Ie.skin(e,function(n){u(n.skeleton)&&(t[n.skeleton]=!0),Ie.skinJoint(n,function(i){t[i]=!0})}),Ie.animation(e,function(n){Ie.animationChannel(n,function(i){u(i.target)&&u(i.target.node)&&(t[i.target.node]=!0)})}),Ie.technique(e,function(n){Ie.techniqueUniform(n,function(i){u(i.node)&&(t[i.node]=!0)})}),Ie.node(e,function(n,i){zne(e,i,t)||(t[i]=!0)}),t};Kh.material=function(e){let t={};return Ie.mesh(e,function(n){Ie.meshPrimitive(n,function(i){u(i.material)&&(t[i.material]=!0)})}),t};Kh.texture=function(e){let t={};if(Ie.material(e,function(n){UA(n,function(i){t[i]=!0})}),ir(e,"EXT_feature_metadata")){Ie.mesh(e,function(o){Ie.meshPrimitive(o,function(r){let s=r.extensions;if(u(s)&&u(s.EXT_feature_metadata)){let c=s.EXT_feature_metadata.featureIdTextures;if(u(c)){let l=c.length;for(let f=0;f<l;++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(u(s)){for(let a in s)if(s.hasOwnProperty(a)){let l=s[a].texture;t[l.index]=!0}}}}if(ir(e,"EXT_mesh_features")&&Ie.mesh(e,function(n){Ie.meshPrimitive(n,function(i){let o=i.extensions;if(u(o)&&u(o.EXT_mesh_features)){let s=o.EXT_mesh_features.featureIds;if(u(s)){let a=s.length;for(let c=0;c<a;++c){let l=s[c];u(l.texture)&&(t[l.texture.index]=!0)}}}})}),ir(e,"EXT_structural_metadata")){let i=e.extensions.EXT_structural_metadata.propertyTextures;if(u(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 l=a[c];t[l.index]=!0}}}}return t};Kh.sampler=function(e){let t={};return Ie.texture(e,function(n){u(n.sampler)&&(t[n.sampler]=!0)}),t};var $P=A2e;function S2e(e,t){let n={byteLength:t.length,extras:{_pipeline:{source:t}}},o={buffer:as(e.buffers,n),byteOffset:0,byteLength:t.length};return as(e.bufferViews,o)}var QP=S2e;function w2e(e,t){let n=Al(e,t),i=X.getSizeInBytes(t.componentType),o=cu(t.type),r=t.count,s=new Array(o*r);if(!u(t.bufferView))return s.fill(0);let a=e.bufferViews[t.bufferView],c=e.buffers[a.buffer].extras._pipeline.source,l=t.byteOffset+a.byteOffset+c.byteOffset,f=new DataView(c.buffer),d=new Array(o),p=Op(t.componentType);for(let g=0;g<r;++g){p(f,l,o,i,d);for(let m=0;m<o;++m)s[g*o+m]=d[m];l+=n}return s}var JP=w2e;function v2e(e){let t;return Ie.accessorWithSemantic(e,"JOINTS_0",function(n){let i=e.accessors[n];t=i.componentType,t===ee.BYTE?Xk(e,i,X.UNSIGNED_BYTE):t!==ee.UNSIGNED_BYTE&&t!==ee.UNSIGNED_SHORT&&Xk(e,i,X.UNSIGNED_SHORT)}),Ie.accessorWithSemantic(e,"WEIGHTS_0",function(n){let i=e.accessors[n];t=i.componentType,t===ee.BYTE?Xk(e,i,X.UNSIGNED_BYTE):t===ee.SHORT&&Xk(e,i,X.UNSIGNED_SHORT)}),e}function Xk(e,t,n){let i=X.createTypedArray(n,JP(e,t)),o=new Uint8Array(i.buffer);t.bufferView=QP(e,o),t.componentType=n,t.byteOffset=0}var e1=v2e;function D2e(e,t){return wx(e,t),t==="CESIUM_RTC"&&I2e(e),n6(e,t)}function I2e(e){Ie.technique(e,function(t){Ie.techniqueUniform(t,function(n){n.semantic==="CESIUM_RTC_MODELVIEW"&&(n.semantic="MODELVIEW")})})}function n6(e,t){if(Array.isArray(e)){let n=e.length;for(let i=0;i<n;++i)n6(e[i],t)}else if(e!==null&&typeof e=="object"&&e.constructor===Object){let n=e.extensions,i;u(n)&&(i=n[t],u(i)&&(delete n[t],Object.keys(n).length===0&&delete e.extensions));for(let o in e)Object.prototype.hasOwnProperty.call(e,o)&&n6(e[o],t);return i}}var Dx=D2e;var Kk={.8:N2e,"1.0":nFe,"2.0":void 0};function P2e(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(Kk,i)||(u(i)&&(i=i.substring(0,3)),Object.prototype.hasOwnProperty.call(Kk,i)||(i="1.0"));let o=Kk[i];for(;u(o)&&i!==n;)o(e,t),i=e.asset.version,o=Kk[i];return t.keepLegacyExtensions||(rFe(e,t),sFe(e)),e}function Gne(e){let t=e.materials;for(let n in t)if(Object.prototype.hasOwnProperty.call(t,n)){let i=t[n],o=i.instanceTechnique;u(o)&&(i.technique=o.technique,i.values=o.values,delete i.instanceTechnique)}}function O2e(e){let t=e.meshes;for(let n in t)if(Object.prototype.hasOwnProperty.call(t,n)){let o=t[n].primitives;if(u(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 R2e(e){let t=e.nodes,n=new h,i=new Le;for(let o in t)if(Object.prototype.hasOwnProperty.call(t,o)){let r=t[o];if(u(r.rotation)){let a=r.rotation;h.fromArray(a,0,n),Le.fromAxisAngle(n,a[3],i),r.rotation=[i.x,i.y,i.z,i.w]}let s=r.instanceSkin;u(s)&&(r.skeletons=s.skeletons,r.skin=s.skin,r.meshes=s.meshes,delete r.instanceSkin)}}function M2e(e){let t=e.animations,n=e.accessors,i=e.bufferViews,o=e.buffers,r={},s=new h,a=new Le;for(let c in t)if(Object.prototype.hasOwnProperty.call(t,c)){let l=t[c],f=l.channels,d=l.parameters,p=l.samplers;if(u(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(u(r[b]))continue;r[b]=!0;let T=n[b],A=i[T.bufferView],S=o[A.buffer].extras._pipeline.source,w=S.byteOffset+A.byteOffset+T.byteOffset,D=T.componentType,O=T.count,R=cu(T.type),L=T.count*R,N=X.createArrayBufferView(D,S.buffer,w,L);for(let _=0;_<O;_++){let E=_*R;h.unpack(N,E,s);let v=N[E+3];Le.fromAxisAngle(s,v,a),Le.pack(a,N,E)}}}}}}function L2e(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(u(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 N2e(e){u(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(u(e.version)&&delete e.version,Gne(e),O2e(e),R2e(e),M2e(e),L2e(e),u(e.allExtensions)&&(e.extensionsUsed=e.allExtensions,delete e.allExtensions),u(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,af(e,"KHR_materials_common")}}function F2e(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(u(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 Hne(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),u(o.name)||(o.name=i)}return n}function B2e(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,u(i)&&(o[i]=s));for(let s in e)if(Object.prototype.hasOwnProperty.call(e,s)&&u(n[s])){let a={},c=e[s];e[s]=Hne(c,a),n[s]=a}for(i in o)Object.prototype.hasOwnProperty.call(o,i)&&(o[i]=n.nodes[o[i]]);u(e.scene)&&(e.scene=n.scenes[e.scene]),Ie.bufferView(e,function(s){u(s.buffer)&&(s.buffer=n.buffers[s.buffer])}),Ie.accessor(e,function(s){u(s.bufferView)&&(s.bufferView=n.bufferViews[s.bufferView])}),Ie.shader(e,function(s){let a=s.extensions;if(u(a)){let c=a.KHR_binary_glTF;u(c)&&(s.bufferView=n.bufferViews[c.bufferView],delete a.KHR_binary_glTF),Object.keys(a).length===0&&delete s.extensions}}),Ie.program(e,function(s){u(s.vertexShader)&&(s.vertexShader=n.shaders[s.vertexShader]),u(s.fragmentShader)&&(s.fragmentShader=n.shaders[s.fragmentShader])}),Ie.technique(e,function(s){u(s.program)&&(s.program=n.programs[s.program]),Ie.techniqueParameter(s,function(a){u(a.node)&&(a.node=n.nodes[a.node]);let c=a.value;typeof c=="string"&&(a.value={index:n.textures[c]})})}),Ie.mesh(e,function(s){Ie.meshPrimitive(s,function(a){u(a.indices)&&(a.indices=n.accessors[a.indices]),Ie.meshPrimitiveAttribute(a,function(c,l){a.attributes[l]=n.accessors[c]}),u(a.material)&&(a.material=n.materials[a.material])})}),Ie.node(e,function(s){let a=s.children;if(u(a)){let c=a.length;for(t=0;t<c;++t)a[t]=n.nodes[a[t]]}if(u(s.meshes)){let c=s.meshes,l=c.length;if(l>0)for(s.mesh=n.meshes[c[0]],t=1;t<l;++t){let f={mesh:n.meshes[c[t]]},d=as(e.nodes,f);u(a)||(a=[],s.children=a),a.push(d)}delete s.meshes}if(u(s.camera)&&(s.camera=n.cameras[s.camera]),u(s.skin)&&(s.skin=n.skins[s.skin]),u(s.skeletons)){let c=s.skeletons;if(c.length>0&&u(s.skin)){let f=e.skins[s.skin];f.skeleton=n.nodes[c[0]]}delete s.skeletons}u(s.jointName)&&delete s.jointName}),Ie.skin(e,function(s){u(s.inverseBindMatrices)&&(s.inverseBindMatrices=n.accessors[s.inverseBindMatrices]);let a=s.jointNames;if(u(a)){let c=[],l=a.length;for(t=0;t<l;++t)c[t]=o[a[t]];s.joints=c,delete s.jointNames}}),Ie.scene(e,function(s){let a=s.nodes;if(u(a)){let c=a.length;for(t=0;t<c;++t)a[t]=n.nodes[a[t]]}}),Ie.animation(e,function(s){let a={};s.samplers=Hne(s.samplers,a),Ie.animationSampler(s,function(c){c.input=n.accessors[c.input],c.output=n.accessors[c.output]}),Ie.animationChannel(s,function(c){c.sampler=a[c.sampler];let l=c.target;u(l)&&(l.node=n.nodes[l.id],delete l.id)})}),Ie.material(e,function(s){u(s.technique)&&(s.technique=n.techniques[s.technique]),Ie.materialValue(s,function(c,l){typeof c=="string"&&(s.values[l]={index:n.textures[c]})});let a=s.extensions;if(u(a)){let c=a.KHR_materials_common;u(c)&&u(c.values)&&Ie.materialValue(c,function(l,f){typeof l=="string"&&(c.values[f]={index:n.textures[l]})})}}),Ie.image(e,function(s){let a=s.extensions;if(u(a)){let c=a.KHR_binary_glTF;u(c)&&(s.bufferView=n.bufferViews[c.bufferView],s.mimeType=c.mimeType,delete a.KHR_binary_glTF),Object.keys(a).length===0&&delete s.extensions}}),Ie.texture(e,function(s){u(s.sampler)&&(s.sampler=n.samplers[s.sampler]),u(s.source)&&(s.source=n.images[s.source])})}function k2e(e){Ie.animation(e,function(t){Ie.animationSampler(t,function(n){delete n.name})})}function U2e(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]}Ie.node(e,function(t){u(t.children)&&t.children.length===0&&delete t.children})}function V2e(e){let t=e.asset;delete t.profile,delete t.premultipliedAlpha}var z2e={CESIUM_RTC:!0,KHR_materials_common:!0,WEB3D_quantized_attributes:!0};function H2e(e){let t=e.extensionsUsed;if(e.extensionsRequired=y(e.extensionsRequired,[]),u(t)){let n=t.length;for(let i=0;i<n;++i){let o=t[i];u(z2e[o])&&e.extensionsRequired.push(o)}}}function G2e(e){Ie.buffer(e,function(t){delete t.type})}function W2e(e){Ie.texture(e,function(t){delete t.format,delete t.internalFormat,delete t.target,delete t.type})}function j2e(e){Ie.mesh(e,function(t){Ie.meshPrimitive(t,function(n){Ie.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})}),Ie.technique(e,function(t){Ie.techniqueParameter(t,function(n){let i=n.semantic;u(i)&&(i==="TEXCOORD"?n.semantic="TEXCOORD_0":i==="COLOR"&&(n.semantic="COLOR_0"))})})}var q2e={POSITION:!0,NORMAL:!0,TANGENT:!0},Y2e={COLOR:"COLOR",JOINT:"JOINTS",JOINTS:"JOINTS",TEXCOORD:"TEXCOORD",WEIGHT:"WEIGHTS",WEIGHTS:"WEIGHTS"};function X2e(e){let t={};Ie.mesh(e,function(n){Ie.meshPrimitive(n,function(i){Ie.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 l,f=Y2e[a];u(f)?(l=f+c,t[r]=l):u(q2e[a])||(l=`_${r}`,t[r]=l)}});for(let o in t)if(Object.prototype.hasOwnProperty.call(t,o)){let r=t[o],s=i.attributes[o];u(s)&&(delete i.attributes[o],i.attributes[r]=s)}})}),Ie.technique(e,function(n){Ie.techniqueParameter(n,function(i){let o=t[i.semantic];u(o)&&(i.semantic=o)})})}function K2e(e){Ie.camera(e,function(t){let n=t.perspective;if(u(n)){let i=n.aspectRatio;u(i)&&i===0&&delete n.aspectRatio;let o=n.yfov;u(o)&&o===0&&(n.yfov=1)}})}function i6(e,t){return u(t.byteStride)&&t.byteStride!==0?t.byteStride:Al(e,t)}function Z2e(e){Ie.buffer(e,function(t){u(t.byteLength)||(t.byteLength=t.extras._pipeline.source.length)}),Ie.accessor(e,function(t){let n=t.bufferView;if(u(n)){let i=e.bufferViews[n],o=i6(e,t),r=t.byteOffset+t.count*o;i.byteLength=Math.max(y(i.byteLength,0),r)}})}function $2e(e){let t,n,i,o=e.bufferViews,r={};Ie.accessorContainingVertexAttributeData(e,function(a){let c=e.accessors[a];u(c.bufferView)&&(r[c.bufferView]=!0)});let s={};Ie.accessor(e,function(a){u(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 l=0,f=0,d=c.length;for(t=0;t<d;++t){let p=c[t],g=i6(e,p),m=p.byteOffset,x=p.count*g;delete p.byteStride;let b=t<d-1,T=b?i6(e,c[t+1]):void 0;if(g!==T){let A=He(i,!0);r[a]&&(A.byteStride=g),A.byteOffset+=l,A.byteLength=m+x-l;let C=as(o,A);for(n=f;n<=t;++n)p=c[n],p.bufferView=C,p.byteOffset=p.byteOffset-l;l=b?c[t+1].byteOffset:void 0,f=t+1}}}$P(e,["accessor","bufferView","buffer"])}function Q2e(e){Ie.accessorWithSemantic(e,"POSITION",function(t){let n=e.accessors[t];if(!u(n.min)||!u(n.max)){let i=vx(e,n);n.min=i.min,n.max=i.max}})}function Wne(e){return(!u(e.children)||e.children.length===0)&&(!u(e.meshes)||e.meshes.length===0)&&!u(e.camera)&&!u(e.skin)&&!u(e.skeletons)&&!u(e.jointName)&&(!u(e.translation)||h.fromArray(e.translation).equals(h.ZERO))&&(!u(e.scale)||h.fromArray(e.scale).equals(new h(1,1,1)))&&(!u(e.rotation)||oe.fromArray(e.rotation).equals(new oe(0,0,0,1)))&&(!u(e.matrix)||F.fromColumnMajorArray(e.matrix).equals(F.IDENTITY))&&!u(e.extensions)&&!u(e.extras)}function jne(e,t){Ie.scene(e,function(n){let i=n.nodes;if(u(i)){let o=i.length;for(let r=o;r>=0;--r)if(i[r]===t){i.splice(r,1);return}}}),Ie.node(e,function(n,i){if(u(n.children)){let o=n.children.indexOf(t);o>-1&&(n.children.splice(o,1),Wne(n)&&jne(e,i))}}),delete e.nodes[t]}function J2e(e){return Ie.node(e,function(t,n){Wne(t)&&jne(e,n)}),e}function eFe(e){Ie.animation(e,function(t){Ie.animationSampler(t,function(n){let i=e.accessors[n.input];if(!u(i.min)||!u(i.max)){let o=vx(e,i);i.min=o.min,i.max=o.max}})})}function tFe(e){Ie.accessor(e,function(t){if(u(t.min)||u(t.max)){let n=vx(e,t);u(t.min)&&(t.min=n.min),u(t.max)&&(t.max=n.max)}})}function nFe(e){e.asset=y(e.asset,{}),e.asset.version="2.0",Gne(e),F2e(e),J2e(e),B2e(e),k2e(e),V2e(e),H2e(e),Z2e(e),$2e(e),Q2e(e),eFe(e),tFe(e),G2e(e),W2e(e),j2e(e),X2e(e),e1(e),K2e(e),XP(e),ZP(e),U2e(e)}var iFe=["u_tex","u_diffuse","u_emission","u_diffuse_tex"],oFe=["u_diffuse","u_diffuse_mat"];function o6(e){e.pbrMetallicRoughness=u(e.pbrMetallicRoughness)?e.pbrMetallicRoughness:{},e.pbrMetallicRoughness.roughnessFactor=1,e.pbrMetallicRoughness.metallicFactor=0}function Zk(e){return u(e.index)}function $k(e){return Array.isArray(e)&&e.length===4}function qne(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 rFe(e,t){t=y(t,y.EMPTY_OBJECT);let n=y(t.baseColorTextureNames,iFe),i=y(t.baseColorFactorNames,oFe);Ie.material(e,function(o){Ie.materialValue(o,function(r,s){n.indexOf(s)!==-1&&Zk(r)?(o6(o),o.pbrMetallicRoughness.baseColorTexture=r):i.indexOf(s)!==-1&&$k(r)&&(o6(o),o.pbrMetallicRoughness.baseColorFactor=qne(r))})}),Dx(e,"KHR_techniques_webgl"),Dx(e,"KHR_blend")}function sFe(e){Ie.material(e,function(t){let n=y(t.extensions,y.EMPTY_OBJECT).KHR_materials_common;if(u(n)){n.technique==="CONSTANT"&&(af(e,"KHR_materials_unlit"),t.extensions=u(t.extensions)?t.extensions:{},t.extensions.KHR_materials_unlit={});let o=u(n.values)?n.values:{},r=o.ambient,s=o.diffuse,a=o.emission,c=o.transparency,l=n.doubleSided,f=n.transparent;o6(t),u(r)&&($k(r)?t.emissiveFactor=r.slice(0,3):Zk(r)&&(t.emissiveTexture=r)),u(s)&&($k(s)?t.pbrMetallicRoughness.baseColorFactor=qne(s):Zk(s)&&(t.pbrMetallicRoughness.baseColorTexture=s)),u(l)&&(t.doubleSided=l),u(a)&&($k(a)?t.emissiveFactor=a.slice(0,3):Zk(a)&&(t.emissiveTexture=a)),u(c)&&(u(t.pbrMetallicRoughness.baseColorFactor)?t.pbrMetallicRoughness.baseColorFactor[3]*=c:t.pbrMetallicRoughness.baseColorFactor=[1,1,1,c]),u(f)&&(t.alphaMode=f?"BLEND":"OPAQUE")}}),Dx(e,"KHR_materials_common")}var t1=P2e;var si={POSITION:"POSITION",NORMAL:"NORMAL",TANGENT:"TANGENT",TEXCOORD:"TEXCOORD",COLOR:"COLOR",JOINTS:"JOINTS",WEIGHTS:"WEIGHTS",FEATURE_ID:"_FEATURE_ID"};function aFe(e){switch(e){case si.POSITION:return"positionMC";case si.NORMAL:return"normalMC";case si.TANGENT:return"tangentMC";case si.TEXCOORD:return"texCoord";case si.COLOR:return"color";case si.JOINTS:return"joints";case si.WEIGHTS:return"weights";case si.FEATURE_ID:return"featureId"}}si.hasSetIndex=function(e){switch(e){case si.POSITION:case si.NORMAL:case si.TANGENT:return!1;case si.TEXCOORD:case si.COLOR:case si.JOINTS:case si.WEIGHTS:case si.FEATURE_ID:return!0}};si.fromGltfSemantic=function(e){let t=e,i=/^(\w+)_\d+$/.exec(e);switch(i!==null&&(t=i[1]),t){case"POSITION":return si.POSITION;case"NORMAL":return si.NORMAL;case"TANGENT":return si.TANGENT;case"TEXCOORD":return si.TEXCOORD;case"COLOR":return si.COLOR;case"JOINTS":return si.JOINTS;case"WEIGHTS":return si.WEIGHTS;case"_FEATURE_ID":return si.FEATURE_ID}};si.fromPntsSemantic=function(e){switch(e){case"POSITION":case"POSITION_QUANTIZED":return si.POSITION;case"RGBA":case"RGB":case"RGB565":return si.COLOR;case"NORMAL":case"NORMAL_OCT16P":return si.NORMAL;case"BATCH_ID":return si.FEATURE_ID}};si.getGlslType=function(e){switch(e){case si.POSITION:case si.NORMAL:case si.TANGENT:return"vec3";case si.TEXCOORD:return"vec2";case si.COLOR:return"vec4";case si.JOINTS:return"ivec4";case si.WEIGHTS:return"vec4";case si.FEATURE_ID:return"int"}};si.getVariableName=function(e,t){let n=aFe(e);return u(t)&&(n+=`_${t}`),n};var Tt=Object.freeze(si);function Ka(){}Ka.getError=function(e,t,n){let i=`Failed to load ${e}: ${t}`;u(n)&&u(n.message)&&(i+=`
  5310. ${n.message}`);let o=new ue(i);return u(n)&&(o.stack=`Original stack:
  5311. ${n.stack}
  5312. Handler stack:
  5313. ${o.stack}`),o};Ka.getNodeTransform=function(e){return u(e.matrix)?e.matrix:F.fromTranslationQuaternionRotationScale(u(e.translation)?e.translation:h.ZERO,u(e.rotation)?e.rotation:Le.IDENTITY,u(e.scale)?e.scale:h.ONE)};Ka.getAttributeBySemantic=function(e,t,n){let i=e.attributes,o=i.length;for(let r=0;r<o;++r){let s=i[r],a=u(n)?s.setIndex===n:!0;if(s.semantic===t&&a)return s}};Ka.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}};Ka.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}};Ka.hasQuantizedAttributes=function(e){if(!u(e))return!1;for(let t=0;t<e.length;t++){let n=e[t];if(u(n.quantization))return!0}return!1};Ka.getAttributeInfo=function(e){let t=e.semantic,n=e.setIndex,i,o=!1;u(t)?(i=Tt.getVariableName(t,n),o=!0):(i=e.name,i=i.replace(/^_/,""),i=i.toLowerCase());let r=/^color_\d+$/.test(i),s=e.type,a=on.getGlslType(s);r&&(a="vec4");let c=u(e.quantization),l;return c&&(l=r?"vec4":on.getGlslType(e.quantization.type)),{attribute:e,isQuantized:c,variableName:i,hasSemantic:o,glslType:a,quantizedGlslType:l}};var cFe=new h,lFe=new h;Ka.getPositionMinMax=function(e,t,n){let i=Ka.getAttributeBySemantic(e,"POSITION"),o=i.max,r=i.min;return u(n)&&u(t)&&(r=h.add(r,t,lFe),o=h.add(o,n,cFe)),{min:r,max:o}};Ka.getAxisCorrectionMatrix=function(e,t,n){return n=F.clone(F.IDENTITY,n),e===Po.Y?n=F.clone(Po.Y_UP_TO_Z_UP,n):e===Po.X&&(n=F.clone(Po.X_UP_TO_Z_UP,n)),t===Po.Z&&(n=F.multiplyTransformation(n,Po.Z_UP_TO_X_UP,n)),n};var uFe=new Q;Ka.getCullFace=function(e,t){if(!Me.isTriangles(t))return pi.BACK;let n=F.getMatrix3(e,uFe);return Q.determinant(n)<0?pi.FRONT:pi.BACK};Ka.sanitizeGlslIdentifier=function(e){let t=e.replaceAll(/[^A-Za-z0-9]+/g,"_");return t=t.replace(/^gl_/,""),/^\d/.test(t)&&(t=`_${t}`),t};Ka.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_unlit:!0,KHR_mesh_quantization:!0,KHR_texture_basisu:!0,KHR_texture_transform:!0,WEB3D_quantized_attributes:!0};Ka.checkSupportedExtensions=function(e){let t=e.length;for(let n=0;n<t;n++){let i=e[n];if(!Ka.supportedExtensions[i])throw new ue(`Unsupported glTF Extension: ${i}`)}};var Jt=Ka;function Rg(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=Et.UNLOADED,this._promise=void 0}u(Object.create)&&(Rg.prototype=Object.create(io.prototype),Rg.prototype.constructor=Rg);Object.defineProperties(Rg.prototype,{cacheKey:{get:function(){return this._cacheKey}},gltf:{get:function(){return this._gltf}}});Rg.prototype.load=async function(){return u(this._promise)?this._promise:(this._state=Et.LOADING,u(this._gltfJson)?(this._promise=Yne(this,this._gltfJson),this._promise):u(this._typedArray)?(this._promise=Xne(this,this._typedArray),this._promise):(this._promise=fFe(this),this._promise))};async function fFe(e){let t;try{let n=await e._fetchGltf();if(e.isDestroyed())return;t=new Uint8Array(n)}catch(n){if(e.isDestroyed())return;r6(e,n)}return Xne(e,t)}function r6(e,t){e.unload(),e._state=Et.FAILED;let n=`Failed to load glTF: ${e._gltfResource.url}`;throw e.getError(n,t)}async function dFe(e,t){if(u(t.asset)&&t.asset.version==="2.0"&&!ir(t,"KHR_techniques_webgl")&&!ir(t,"KHR_materials_common"))return Promise.resolve();let n=[];Ie.buffer(t,function(i){if(!u(i.extras._pipeline.source)&&u(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),t1(t)}function hFe(e){let t=[];return Ie.buffer(e,function(n){let i=n.uri;!u(n.extras._pipeline.source)&&u(i)&&ep(i)&&(delete n.uri,t.push(ve.fetchArrayBuffer(i).then(function(o){n.extras._pipeline.source=new Uint8Array(o)})))}),Promise.all(t)}function mFe(e,t){let n=[];return Ie.buffer(t,function(i,o){let r=i.extras._pipeline.source;if(u(r)&&!u(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 Yne(e,t){try{Og(t),await hFe(t),await dFe(e,t),WP(t),await mFe(e,t),YP(t);let n=t.asset.version;if(n!=="1.0"&&n!=="2.0")throw new ue(`Unsupported glTF version: ${n}`);let i=t.extensionsRequired;return u(i)&&Jt.checkSupportedExtensions(i),e._gltf=t,e._state=Et.READY,e}catch(n){if(e.isDestroyed())return;r6(e,n)}}async function Xne(e,t){let n;try{Cd(t)==="glTF"?n=qP(t):n=Oo(t)}catch(i){if(e.isDestroyed())return;r6(e,i)}return Yne(e,n)}Rg.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};Rg.prototype._fetchGltf=function(){return this._gltfResource.fetchArrayBuffer()};var VA=Rg;var pFe={OPAQUE:"OPAQUE",MASK:"MASK",BLEND:"BLEND"},Zh=Object.freeze(pFe);var Xo={};function _Fe(){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 gFe(){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 yFe(){this.indexDatatype=void 0,this.count=void 0,this.buffer=void 0,this.typedArray=void 0}function xFe(){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 bFe(){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 TFe(){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 AFe(){this.attributes=[]}function CFe(){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 EFe(){this.attributes=[],this.featureIds=[],this.transformInWorldSpace=!1}function SFe(){this.index=void 0,this.joints=[],this.inverseBindMatrices=[]}function wFe(){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 vFe(){this.nodes=[]}var DFe={TRANSLATION:"translation",ROTATION:"rotation",SCALE:"scale",WEIGHTS:"weights"};function IFe(){this.input=[],this.interpolation=void 0,this.output=[]}function PFe(){this.node=void 0,this.path=void 0}function OFe(){this.sampler=void 0,this.target=void 0}function RFe(){this.name=void 0,this.samplers=[],this.channels=[]}function MFe(){this.name=void 0,this.type=void 0,this.minimumValue=void 0,this.maximumValue=void 0,this.initialValue=void 0}function LFe(){this.name=void 0,this.stages=[]}function Kne(){this.credits=[]}function NFe(){this.asset=new Kne,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 FFe(){this.texture=void 0,this.index=void 0,this.texCoord=0,this.transform=Q.clone(Q.IDENTITY),this.channels=void 0}function Mg(){this.baseColorTexture=void 0,this.metallicRoughnessTexture=void 0,this.baseColorFactor=oe.clone(Mg.DEFAULT_BASE_COLOR_FACTOR),this.metallicFactor=Mg.DEFAULT_METALLIC_FACTOR,this.roughnessFactor=Mg.DEFAULT_ROUGHNESS_FACTOR}Mg.DEFAULT_BASE_COLOR_FACTOR=oe.ONE;Mg.DEFAULT_METALLIC_FACTOR=1;Mg.DEFAULT_ROUGHNESS_FACTOR=1;function Ix(){this.diffuseTexture=void 0,this.specularGlossinessTexture=void 0,this.diffuseFactor=oe.clone(Ix.DEFAULT_DIFFUSE_FACTOR),this.specularFactor=h.clone(Ix.DEFAULT_SPECULAR_FACTOR),this.glossinessFactor=Ix.DEFAULT_GLOSSINESS_FACTOR}Ix.DEFAULT_DIFFUSE_FACTOR=oe.ONE;Ix.DEFAULT_SPECULAR_FACTOR=h.ONE;Ix.DEFAULT_GLOSSINESS_FACTOR=1;function s6(){this.metallicRoughness=new Mg,this.specularGlossiness=void 0,this.emissiveTexture=void 0,this.normalTexture=void 0,this.occlusionTexture=void 0,this.emissiveFactor=h.clone(s6.DEFAULT_EMISSIVE_FACTOR),this.alphaMode=Zh.OPAQUE,this.alphaCutoff=.5,this.doubleSided=!1,this.unlit=!1}s6.DEFAULT_EMISSIVE_FACTOR=h.ZERO;Xo.Quantization=_Fe;Xo.Attribute=gFe;Xo.Indices=yFe;Xo.FeatureIdAttribute=xFe;Xo.FeatureIdTexture=TFe;Xo.FeatureIdImplicitRange=bFe;Xo.MorphTarget=AFe;Xo.Primitive=CFe;Xo.Instances=EFe;Xo.Skin=SFe;Xo.Node=wFe;Xo.Scene=vFe;Xo.AnimatedPropertyType=Object.freeze(DFe);Xo.AnimationSampler=IFe;Xo.AnimationTarget=PFe;Xo.AnimationChannel=OFe;Xo.Animation=RFe;Xo.ArticulationStage=MFe;Xo.Articulation=LFe;Xo.Asset=Kne;Xo.Components=NFe;Xo.TextureReader=FFe;Xo.MetallicRoughness=Mg;Xo.SpecularGlossiness=Ix;Xo.Material=s6;var Mt=Xo;var Qk={};Qk.getImageIdFromTexture=function(e){e=y(e,y.EMPTY_OBJECT);let t=e.gltf,n=e.textureId,i=e.supportedImageFormats,o=t.textures[n],r=o.extensions;if(u(r)){if(i.webp&&u(r.EXT_texture_webp))return r.EXT_texture_webp.source;if(i.basis&&u(r.KHR_texture_basisu))return r.KHR_texture_basisu.source}return o.source};Qk.createSampler=function(e){e=y(e,y.EMPTY_OBJECT);let t=e.gltf,n=e.textureInfo,i=y(e.compressedTextureNoMipmap,!1),o=Sn.REPEAT,r=Sn.REPEAT,s=rn.LINEAR,a=yi.LINEAR,c=n.index,f=t.textures[c].sampler;if(u(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!==rn.LINEAR&&s!==rn.NEAREST&&(s===rn.NEAREST_MIPMAP_NEAREST||s===rn.NEAREST_MIPMAP_LINEAR?s=rn.NEAREST:s=rn.LINEAR),new ln({wrapS:o,wrapT:r,minificationFilter:s,magnificationFilter:a})};var BFe=new z(1,1);Qk.createModelTextureReader=function(e){e=y(e,y.EMPTY_OBJECT);let t=e.textureInfo,n=e.channels,i=e.texture,o=y(t.texCoord,0),r,s=y(t.extensions,y.EMPTY_OBJECT).KHR_texture_transform;if(u(s)){o=y(s.texCoord,o);let c=u(s.offset)?z.unpack(s.offset):z.ZERO,l=y(s.rotation,0),f=u(s.scale)?z.unpack(s.scale):BFe;l=-l,r=new Q(Math.cos(l)*f.x,-Math.sin(l)*f.y,c.x,Math.sin(l)*f.x,Math.cos(l)*f.y,c.y,0,0,1)}let a=new Mt.TextureReader;return a.index=t.index,a.texture=i,a.texCoord=o,a.transform=r,a.channels=n,a};var Cl=Qk;function kFe(e){let t=document.createElement("canvas");return t.width=P.nextPowerOfTwo(e.width),t.height=P.nextPowerOfTwo(e.height),t.getContext("2d").drawImage(e,0,0,e.width,e.height,0,0,t.width,t.height),t}var Lg=kFe;function Ng(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),l=i.index,f=Cl.getImageIdFromTexture({gltf:n,textureId:l,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=Et.UNLOADED,this._promise=void 0}u(Object.create)&&(Ng.prototype=Object.create(io.prototype),Ng.prototype.constructor=Ng);Object.defineProperties(Ng.prototype,{cacheKey:{get:function(){return this._cacheKey}},texture:{get:function(){return this._texture}}});var UFe=new a6;async function VFe(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=Et.LOADED,e)}catch(n){if(e.isDestroyed())return;e.unload(),e._state=Et.FAILED;let i="Failed to load texture";throw e.getError(i,n)}}Ng.prototype.load=async function(){return u(this._promise)?this._promise:(this._state=Et.LOADING,this._promise=VFe(this),this._promise)};function a6(){this.gltf=void 0,this.textureInfo=void 0,this.image=void 0,this.context=void 0,this.texture=void 0}a6.prototype.set=function(e,t,n,i,o){this.gltf=e,this.textureInfo=t,this.image=n,this.mipLevels=i,this.context=o};a6.prototype.execute=function(){this.texture=Zne(this.gltf,this.textureInfo,this.image,this.mipLevels,this.context)};function Zne(e,t,n,i,o){let r=n.internalFormat,s=!1;nt.isCompressedFormat(r)&&!u(i)&&(s=!0);let a=Cl.createSampler({gltf:e,textureInfo:t,compressedTextureNoMipmap:s}),c=a.minificationFilter,l=a.wrapS,f=a.wrapT,d=c===rn.NEAREST_MIPMAP_NEAREST||c===rn.NEAREST_MIPMAP_LINEAR||c===rn.LINEAR_MIPMAP_NEAREST||c===rn.LINEAR_MIPMAP_LINEAR,p=!u(r)&&d,g=p||l===Sn.REPEAT||l===Sn.MIRRORED_REPEAT||f===Sn.REPEAT||f===Sn.MIRRORED_REPEAT,m=!P.isPowerOfTwo(n.width)||!P.isPowerOfTwo(n.height),x=g&&m,b;return u(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=It.create({context:o,source:{arrayBufferView:n.bufferView,mipLevels:i},width:n.width,height:n.height,pixelFormat:n.internalFormat,sampler:a})):(x&&(n=Lg(n)),b=It.create({context:o,source:n,sampler:a,flipY:!1,skipColorSpaceConversion:!0})),p&&b.generateMipmap(),b}Ng.prototype.process=function(e){if(this._state===Et.READY)return!0;if(this._state!==Et.LOADED&&this._state!==Et.PROCESSING||u(this._texture)||!u(this._image))return!1;this._state=Et.PROCESSING;let t;if(this._asynchronous){let n=UFe;if(n.set(this._gltf,this._textureInfo,this._image,this._mipLevels,e.context),!e.jobScheduler.execute(n,xa.TEXTURE))return;t=n.texture}else t=Zne(this._gltf,this._textureInfo,this._image,this._mipLevels,e.context);return this.unload(),this._texture=t,this._state=Et.READY,this._resourceCache.statistics.addTextureLoader(this),!0};Ng.prototype.unload=function(){u(this._texture)&&this._texture.destroy(),u(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 zA=Ng;function Fg(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,l=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=l,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=Et.UNLOADED,this._promise=void 0}u(Object.create)&&(Fg.prototype=Object.create(io.prototype),Fg.prototype.constructor=Fg);Object.defineProperties(Fg.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 zFe(e,t){return u(e)&&u(e.attributes)&&u(e.attributes[t])}Fg.prototype.load=async function(){return u(this._promise)?this._promise:zFe(this._draco,this._attributeSemantic)?(this._promise=GFe(this),this._promise):(this._promise=jFe(this),this._promise)};function HFe(e,t,n,i){let r=(1<<e.quantizationBits)-1,s=1/r,a=new Mt.Quantization;if(a.componentDatatype=t,a.octEncoded=e.octEncoded,a.octEncodedZXY=!0,a.type=i,a.octEncoded)a.type=on.VEC2,a.normalizationRange=r;else{let c=on.getMathType(i);if(c===Number){let l=e.range;a.quantizedVolumeOffset=e.minValues[0],a.quantizedVolumeDimensions=l,a.normalizationRange=r,a.quantizedVolumeStepSize=l*s}else{a.quantizedVolumeOffset=c.unpack(e.minValues),a.normalizationRange=c.unpack(new Array(n).fill(r));let l=new Array(n).fill(e.range);a.quantizedVolumeDimensions=c.unpack(l);let f=l.map(function(d){return d*s});a.quantizedVolumeStepSize=c.unpack(f)}}return a}async function GFe(e){e._state=Et.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=Et.LOADED,e)}catch{if(e.isDestroyed())return;c6(e)}}function WFe(e){e._state=Et.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,l=o.data.quantization;u(l)&&(e._quantization=HFe(l,o.data.componentDatatype,o.data.componentsPerAttribute,a)),e._typedArray=new Uint8Array(c.buffer,c.byteOffset,c.byteLength)}async function jFe(e){e._state=Et.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=Et.PROCESSING,e)}catch(n){if(e.isDestroyed())return;c6(e,n)}}function c6(e,t){e.unload(),e._state=Et.FAILED;let n="Failed to load vertex buffer";throw e.getError(n,t)}function l6(){this.typedArray=void 0,this.context=void 0,this.buffer=void 0}l6.prototype.set=function(e,t){this.typedArray=e,this.context=t};l6.prototype.execute=function(){this.buffer=$ne(this.typedArray,this.context)};function $ne(e,t){let n=ct.createVertexBuffer({typedArray:e,context:t,usage:Ne.STATIC_DRAW});return n.vertexArrayDestroyable=!1,n}var qFe=new l6;Fg.prototype.process=function(e){if(this._state===Et.READY)return!0;if(this._state!==Et.LOADED&&this._state!==Et.PROCESSING)return!1;if(u(this._dracoLoader)){try{if(!this._dracoLoader.process(e))return!1}catch(i){c6(this,i)}WFe(this)}let t,n=this._typedArray;if(this._loadBuffer&&this._asynchronous){let i=qFe;if(i.set(n,e.context),!e.jobScheduler.execute(i,xa.BUFFER))return!1;t=i.buffer}else this._loadBuffer&&(t=$ne(n,e.context));return this.unload(),this._buffer=t,this._typedArray=this._loadTypedArray?n:void 0,this._state=Et.READY,this._resourceCache.statistics.addGeometryLoader(this),!0};Fg.prototype.unload=function(){u(this._buffer)&&this._buffer.destroy();let e=this._resourceCache;u(this._bufferViewLoader)&&!this._bufferViewLoader.isDestroyed()&&e.unload(this._bufferViewLoader),u(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 HA=Fg;function n1(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];u(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)}n1.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=vg.fromJson({id:o,property:n.properties[o],enums:e.enums});i[o]=r}return new n1({id:t,name:n.name,description:n.description,properties:i,extras:n.extras,extensions:n.extensions})};Object.defineProperties(n1.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}}});n1.BATCH_TABLE_CLASS_NAME="_batchTable";var vd=n1;function Jk(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)}Jk.fromJson=function(e){return new Jk({value:e.value,name:e.name,description:e.description,extras:e.extras,extensions:e.extensions})};Object.defineProperties(Jk.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 i1=Jk;function eU(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,Qt.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)}eU.fromJson=function(e){e=y(e,y.EMPTY_OBJECT);let t=e.id,n=e.enum,i=n.values.map(function(o){return i1.fromJson(o)});return new eU({id:t,values:i,valueType:Qt[n.valueType],name:n.name,description:n.description,extras:n.extras,extensions:n.extensions})};Object.defineProperties(eU.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 o1=eU;function tU(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)}tU.fromJson=function(e){let t={};if(u(e.enums))for(let i in e.enums)e.enums.hasOwnProperty(i)&&(t[i]=o1.fromJson({id:i,enum:e.enums[i]}));let n={};if(u(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 tU({id:e.id,name:e.name,description:e.description,version:e.version,classes:n,enums:t,extras:e.extras,extensions:e.extensions})};Object.defineProperties(tU.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 Dd=tU;function Px(e){e=y(e,y.EMPTY_OBJECT);let t=e.schema,n=e.resource,i=e.cacheKey;this._schema=u(t)?Dd.fromJson(t):void 0,this._resource=n,this._cacheKey=i,this._state=Et.UNLOADED,this._promise=void 0}u(Object.create)&&(Px.prototype=Object.create(io.prototype),Px.prototype.constructor=Px);Object.defineProperties(Px.prototype,{cacheKey:{get:function(){return this._cacheKey}},schema:{get:function(){return this._schema}}});Px.prototype.load=async function(){return u(this._promise)?this._promise:u(this._schema)?(this._promise=Promise.resolve(this),this._promise):(this._promise=YFe(this),this._promise)};async function YFe(e){let t=e._resource;e._state=Et.LOADING;try{let n=await t.fetchJson();return e.isDestroyed()?void 0:(e._schema=Dd.fromJson(n),e._state=Et.READY,e)}catch(n){if(e.isDestroyed())return;e._state=Et.FAILED;let i=`Failed to load schema: ${t.url}`;throw e.getError(i,n)}}Px.prototype.unload=function(){this._schema=void 0};var GA=Px;var Id={};function r1(e){return Rh(e.url)}function nU(e){let t=e.byteOffset,n=e.byteLength;if(ri(e,"EXT_meshopt_compression")){let i=e.extensions.EXT_meshopt_compression;t=y(i.byteOffset,0),n=i.byteLength}return`${t}-${t+n}`}function XFe(e,t){let n=t.byteOffset+e.byteOffset,i=e.componentType,o=e.type,r=e.count;return`${n}-${i}-${o}-${r}`}function Qne(e){return r1(e)}function Jne(e,t){return`${r1(e)}-buffer-id-${t}`}function s1(e,t,n,i){if(u(e.uri)){let o=i.getDerivedResource({url:e.uri});return Qne(o)}return Jne(n,t)}function u6(e,t,n,i){let o=t.bufferView,r=e.bufferViews[o],s=r.buffer,a=e.buffers[s],c=s1(a,s,n,i),l=nU(r);return`${c}-range-${l}`}function eie(e,t,n,i){let o=e.images[t],r=o.bufferView,s=o.uri;if(u(s)){let p=i.getDerivedResource({url:s});return r1(p)}let a=e.bufferViews[r],c=a.buffer,l=e.buffers[c],f=s1(l,c,n,i),d=nU(a);return`${f}-range-${d}`}function KFe(e,t){let n=Cl.createSampler({gltf:e,textureInfo:t});return`${n.wrapS}-${n.wrapT}-${n.minificationFilter}-${n.magnificationFilter}`}Id.getSchemaCacheKey=function(e){let t=e.schema,n=e.resource;return u(t)?`embedded-schema:${JSON.stringify(t)}`:`external-schema:${r1(n)}`};Id.getExternalBufferCacheKey=function(e){e=y(e,y.EMPTY_OBJECT);let t=e.resource;return`external-buffer:${Qne(t)}`};Id.getEmbeddedBufferCacheKey=function(e){e=y(e,y.EMPTY_OBJECT);let t=e.parentResource,n=e.bufferId;return`embedded-buffer:${Jne(t,n)}`};Id.getGltfCacheKey=function(e){e=y(e,y.EMPTY_OBJECT);let t=e.gltfResource;return`gltf:${r1(t)}`};Id.getBufferViewCacheKey=function(e){e=y(e,y.EMPTY_OBJECT);let t=e.gltf,n=e.bufferViewId,i=e.gltfResource,o=e.baseResource,r=t.bufferViews[n],s=r.buffer,a=t.buffers[s];ri(r,"EXT_meshopt_compression")&&(s=r.extensions.EXT_meshopt_compression.buffer);let c=s1(a,s,i,o),l=nU(r);return`buffer-view:${c}-range-${l}`};Id.getDracoCacheKey=function(e){e=y(e,y.EMPTY_OBJECT);let t=e.gltf,n=e.draco,i=e.gltfResource,o=e.baseResource;return`draco:${u6(t,n,i,o)}`};Id.getVertexBufferCacheKey=function(e){e=y(e,y.EMPTY_OBJECT);let t=e.gltf,n=e.gltfResource,i=e.baseResource,o=e.frameState,r=e.bufferViewId,s=e.draco,a=e.attributeSemantic,c=y(e.dequantize,!1),l=y(e.loadBuffer,!1),f=y(e.loadTypedArray,!1),d="";if(c&&(d+="-dequantize"),l&&(d+="-buffer",d+=`-context-${o.context.id}`),f&&(d+="-typed-array"),u(s))return`vertex-buffer:${u6(t,s,n,i)}-draco-${a}${d}`;let p=t.bufferViews[r],g=p.buffer,m=t.buffers[g],x=s1(m,g,n,i),b=nU(p);return`vertex-buffer:${x}-range-${b}${d}`};Id.getIndexBufferCacheKey=function(e){e=y(e,y.EMPTY_OBJECT);let t=e.gltf,n=e.accessorId,i=e.gltfResource,o=e.baseResource,r=e.frameState,s=e.draco,a=y(e.loadBuffer,!1),c=y(e.loadTypedArray,!1),l="";if(a&&(l+="-buffer",l+=`-context-${r.context.id}`),c&&(l+="-typed-array"),u(s))return`index-buffer:${u6(t,s,i,o)}-draco${l}`;let f=t.accessors[n],d=f.bufferView,p=t.bufferViews[d],g=p.buffer,m=t.buffers[g],x=s1(m,g,i,o),b=XFe(f,p);return`index-buffer:${x}-accessor-${b}${l}`};Id.getImageCacheKey=function(e){e=y(e,y.EMPTY_OBJECT);let t=e.gltf,n=e.imageId,i=e.gltfResource,o=e.baseResource;return`image:${eie(t,n,i,o)}`};Id.getTextureCacheKey=function(e){e=y(e,y.EMPTY_OBJECT);let t=e.gltf,n=e.textureInfo,i=e.gltfResource,o=e.baseResource,r=e.supportedImageFormats,s=e.frameState,a=n.index,c=Cl.getImageIdFromTexture({gltf:t,textureId:a,supportedImageFormats:r}),l=eie(t,c,i,o),f=KFe(t,n);return`texture:${l}-sampler-${f}-context-${s.context.id}`};var El=Id;function a1(){this.geometryByteLength=0,this.texturesByteLength=0,this._geometrySizes={},this._textureSizes={}}a1.prototype.clear=function(){this.geometryByteLength=0,this.texturesByteLength=0,this._geometrySizes={},this._textureSizes={}};a1.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;u(n)&&(o+=n.sizeInBytes),u(i)&&(o+=i.byteLength),this.geometryByteLength+=o,this._geometrySizes[t]=o};a1.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};a1.prototype.removeLoader=function(e){let t=e.cacheKey,n=this._geometrySizes[t];delete this._geometrySizes[t],u(n)&&(this.geometryByteLength-=n);let i=this._textureSizes[t];delete this._textureSizes[t],u(i)&&(this.texturesByteLength-=i)};var c1=a1;function Rn(){}Rn.cacheEntries={};Rn.statistics=new c1;function ZFe(e){this.referenceCount=1,this.resourceLoader=e,this._statisticsPromise=void 0}Rn.get=function(e){let t=Rn.cacheEntries[e];if(u(t))return++t.referenceCount,t.resourceLoader};Rn.add=function(e){let t=e.cacheKey;return Rn.cacheEntries[t]=new ZFe(e),e};Rn.unload=function(e){let t=e.cacheKey,n=Rn.cacheEntries[t];--n.referenceCount,n.referenceCount===0&&(Rn.statistics.removeLoader(e),e.destroy(),delete Rn.cacheEntries[t])};Rn.getSchemaLoader=function(e){e=y(e,y.EMPTY_OBJECT);let t=e.schema,n=e.resource,i=El.getSchemaCacheKey({schema:t,resource:n}),o=Rn.get(i);return u(o)?o:(o=new GA({schema:t,resource:n,cacheKey:i}),Rn.add(o))};Rn.getEmbeddedBufferLoader=function(e){e=y(e,y.EMPTY_OBJECT);let t=e.parentResource,n=e.bufferId,i=e.typedArray,o=El.getEmbeddedBufferCacheKey({parentResource:t,bufferId:n}),r=Rn.get(o);return u(r)?r:(r=new Ax({typedArray:i,cacheKey:o}),Rn.add(r))};Rn.getExternalBufferLoader=function(e){e=y(e,y.EMPTY_OBJECT);let t=e.resource,n=El.getExternalBufferCacheKey({resource:t}),i=Rn.get(n);return u(i)?i:(i=new Ax({resource:t,cacheKey:n}),Rn.add(i))};Rn.getGltfJsonLoader=function(e){e=y(e,y.EMPTY_OBJECT);let t=e.gltfResource,n=e.baseResource,i=e.typedArray,o=e.gltfJson,r=El.getGltfCacheKey({gltfResource:t}),s=Rn.get(r);return u(s)?s:(s=new VA({resourceCache:Rn,gltfResource:t,baseResource:n,typedArray:i,gltfJson:o,cacheKey:r}),Rn.add(s))};Rn.getBufferViewLoader=function(e){e=y(e,y.EMPTY_OBJECT);let t=e.gltf,n=e.bufferViewId,i=e.gltfResource,o=e.baseResource,r=El.getBufferViewCacheKey({gltf:t,bufferViewId:n,gltfResource:i,baseResource:o}),s=Rn.get(r);return u(s)?s:(s=new NA({resourceCache:Rn,gltf:t,bufferViewId:n,gltfResource:i,baseResource:o,cacheKey:r}),Rn.add(s))};Rn.getDracoLoader=function(e){e=y(e,y.EMPTY_OBJECT);let t=e.gltf,n=e.draco,i=e.gltfResource,o=e.baseResource,r=El.getDracoCacheKey({gltf:t,draco:n,gltfResource:i,baseResource:o}),s=Rn.get(r);return u(s)?s:(s=new FA({resourceCache:Rn,gltf:t,draco:n,gltfResource:i,baseResource:o,cacheKey:r}),Rn.add(s))};Rn.getVertexBufferLoader=function(e){e=y(e,y.EMPTY_OBJECT);let t=e.gltf,n=e.gltfResource,i=e.baseResource,o=e.frameState,r=e.bufferViewId,s=e.draco,a=e.attributeSemantic,c=e.accessorId,l=y(e.asynchronous,!0),f=y(e.dequantize,!1),d=y(e.loadBuffer,!1),p=y(e.loadTypedArray,!1),g=El.getVertexBufferCacheKey({gltf:t,gltfResource:n,baseResource:i,frameState:o,bufferViewId:r,draco:s,attributeSemantic:a,dequantize:f,loadBuffer:d,loadTypedArray:p}),m=Rn.get(g);return u(m)?m:(m=new HA({resourceCache:Rn,gltf:t,gltfResource:n,baseResource:i,bufferViewId:r,draco:s,attributeSemantic:a,accessorId:c,cacheKey:g,asynchronous:l,dequantize:f,loadBuffer:d,loadTypedArray:p}),Rn.add(m))};Rn.getIndexBufferLoader=function(e){e=y(e,y.EMPTY_OBJECT);let t=e.gltf,n=e.accessorId,i=e.gltfResource,o=e.baseResource,r=e.frameState,s=e.draco,a=y(e.asynchronous,!0),c=y(e.loadBuffer,!1),l=y(e.loadTypedArray,!1),f=El.getIndexBufferCacheKey({gltf:t,accessorId:n,gltfResource:i,baseResource:o,frameState:r,draco:s,loadBuffer:c,loadTypedArray:l}),d=Rn.get(f);return u(d)?d:(d=new kA({resourceCache:Rn,gltf:t,accessorId:n,gltfResource:i,baseResource:o,draco:s,cacheKey:f,asynchronous:a,loadBuffer:c,loadTypedArray:l}),Rn.add(d))};Rn.getImageLoader=function(e){e=y(e,y.EMPTY_OBJECT);let t=e.gltf,n=e.imageId,i=e.gltfResource,o=e.baseResource,r=El.getImageCacheKey({gltf:t,imageId:n,gltfResource:i,baseResource:o}),s=Rn.get(r);return u(s)?s:(s=new BA({resourceCache:Rn,gltf:t,imageId:n,gltfResource:i,baseResource:o,cacheKey:r}),Rn.add(s))};Rn.getTextureLoader=function(e){e=y(e,y.EMPTY_OBJECT);let t=e.gltf,n=e.textureInfo,i=e.gltfResource,o=e.baseResource,r=e.supportedImageFormats,s=e.frameState,a=y(e.asynchronous,!0),c=El.getTextureCacheKey({gltf:t,textureInfo:n,gltfResource:i,baseResource:o,supportedImageFormats:r,frameState:s}),l=Rn.get(c);return u(l)?l:(l=new zA({resourceCache:Rn,gltf:t,textureInfo:n,gltfResource:i,baseResource:o,supportedImageFormats:r,cacheKey:c,asynchronous:a}),Rn.add(l))};Rn.clearForSpecs=function(){let e=[HA,kA,FA,zA,BA,NA,Ax,GA,VA],t,n=Rn.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,u(n[t])&&(s.resourceLoader.destroy(),delete n[t])}Rn.statistics.clear()};var Hi=Rn;function Ys(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(Ys.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}}});Ys.prototype.tileIsAvailableAtIndex=function(e){return this._tileAvailability.getBit(e)};Ys.prototype.tileIsAvailableAtCoordinates=function(e){let t=this.getTileIndex(e);return this.tileIsAvailableAtIndex(t)};Ys.prototype.contentIsAvailableAtIndex=function(e,t){return t=y(t,0),this._contentAvailabilityBitstreams[t].getBit(e)};Ys.prototype.contentIsAvailableAtCoordinates=function(e,t){let n=this.getTileIndex(e);return this.contentIsAvailableAtIndex(n,t)};Ys.prototype.childSubtreeIsAvailableAtIndex=function(e){return this._childSubtreeAvailability.getBit(e)};Ys.prototype.childSubtreeIsAvailableAtCoordinates=function(e){let t=this.getChildSubtreeIndex(e);return this.childSubtreeIsAvailableAtIndex(t)};Ys.prototype.getLevelOffset=function(e){let t=this._branchingFactor;return(Math.pow(t,e)-1)/(t-1)};Ys.prototype.getParentMortonIndex=function(e){let t=2;return this._subdivisionScheme===Gr.OCTREE&&(t=3),e>>t};Ys.fromSubtreeJson=async function(e,t,n,i,o){let r=new Ys(e,i,o),s;u(t)?s={json:t,binary:void 0}:s=$Fe(n);let a=s.json;r._subtreeJson=a;let c;if(ri(a,"3DTILES_metadata"))c=a.extensions["3DTILES_metadata"];else if(u(a.tileMetadata)){let A=a.tileMetadata;c=a.propertyTables[A]}let l=[];if(u(a.contentMetadata)){let A=a.contentMetadata.length;for(let C=0;C<A;C++){let S=a.contentMetadata[C];l.push(a.propertyTables[S])}}let f,d=i.metadataSchema,p=a.subtreeMetadata;if(u(p)){let A=p.class,C=d.classes[A];f=new kP({subtreeMetadata:p,class:C})}r._metadata=f,r._tilePropertyTableJson=c,r._contentPropertyTableJsons=l;let g={constant:0};a.contentAvailabilityHeaders=[],ri(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=QFe(a.buffers),x=JFe(a.bufferViews,m);eBe(a,x),u(c)&&tie(c,x);for(let A=0;A<l.length;A++){let C=l[A];tie(C,x)}let b=await tBe(r,m,s.binary),T=iBe(x,b);return oBe(r,a,i,T),u(c)&&(rBe(r,i,T),aBe(r)),sBe(r,i,T),cBe(r),r._ready=!0,r};function $Fe(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=Oo(e,i,o);i+=o;let a=e.subarray(i,i+r);return{json:s,binary:a}}function QFe(e){e=u(e)?e:[];for(let t=0;t<e.length;t++){let n=e[t];n.isExternal=u(n.uri),n.isActive=!1}return e}function JFe(e,t){e=u(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 eBe(e,t){let n,i=e.tileAvailability;u(i.bitstream)?n=t[i.bitstream]:u(i.bufferView)&&(n=t[i.bufferView]),u(n)&&(n.isActive=!0,n.bufferHeader.isActive=!0);let o=e.contentAvailabilityHeaders;for(let s=0;s<o.length;s++)n=void 0,u(o[s].bitstream)?n=t[o[s].bitstream]:u(o[s].bufferView)&&(n=t[o[s].bufferView]),u(n)&&(n.isActive=!0,n.bufferHeader.isActive=!0);n=void 0;let r=e.childSubtreeAvailability;u(r.bitstream)?n=t[r.bitstream]:u(r.bufferView)&&(n=t[r.bufferView]),u(n)&&(n.isActive=!0,n.bufferHeader.isActive=!0)}function tie(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);u(a)&&(i=t[a],i.isActive=!0,i.bufferHeader.isActive=!0);let c=y(r.arrayOffsets,r.arrayOffsetBufferView);u(c)&&(i=t[c],i.isActive=!0,i.bufferHeader.isActive=!0)}}function tBe(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=nBe(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];u(a)&&(r[s]=a)}return r})}async function nBe(e,t){let i=e._resource.getDerivedResource({url:t.uri}),o=Hi.getExternalBufferLoader({resource:i});e._bufferLoader=o;try{await o.load()}catch(r){if(o.isDestroyed())return;throw r}return o.typedArray}function iBe(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 oBe(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=ri(t,"3DTILES_metadata"),l=u(e._tilePropertyTableJson),f=c||l;e._tileAvailability=f6(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=f6(t.contentAvailabilityHeaders[p],i,s,f);e._contentAvailabilityBitstreams.push(g)}e._childSubtreeAvailability=f6(t.childSubtreeAvailability,i,a)}function f6(e,t,n,i){if(u(e.constant))return new MA({constant:!!e.constant,lengthBits:n,availableCount:e.availableCount});let o;return u(e.bitstream)?o=t[e.bitstream]:u(e.bufferView)&&(o=t[e.bufferView]),new MA({bitstream:o,lengthBits:n,availableCount:e.availableCount,computeAvailableCountEnabled:i})}function rBe(e,t,n){let i=e._tilePropertyTableJson,o=e._tileAvailability.availableCount,r=t.metadataSchema,s=i.class,a=r.classes[s];e._tileMetadataTable=new Tl({class:a,count:o,properties:i.properties,bufferViews:n})}function sBe(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 Tl({class:p,count:f,properties:c.properties,bufferViews:n});s.push(g)}}function nie(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 aBe(e){let t=nie(e._tileAvailability);e._tileJumpBuffer=t}function cBe(e){let t=e._contentJumpBuffers,n=e._contentAvailabilityBitstreams;for(let i=0;i<n.length;i++){let o=n[i],r=nie(o);t.push(r)}}Ys.prototype.getTileIndex=function(e){let t=e.level-this._implicitCoordinates.level;if(t<0||this._subtreeLevels<=t)throw new ue("level is out of bounds for this subtree");return e.getSubtreeCoordinates().getOffsetCoordinates(e).tileIndex};Ys.prototype.getChildSubtreeIndex=function(e){if(e.level-this._implicitCoordinates.level!==this._implicitCoordinates.subtreeLevels)throw new ue("level is out of bounds for this subtree");return e.getParentSubtreeCoordinates().getOffsetCoordinates(e).mortonIndex};function lBe(e,t){if(!u(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(!u(i))return;let o=i[n];if(!u(o))return;let r=e._contentAvailabilityBitstreams[n],s=e.getTileIndex(t);if(r.getBit(s))return e._contentJumpBuffers[n][s]}Ys.prototype.getTileMetadataView=function(e){let t=lBe(this,e);if(!u(t))return;let n=this._tileMetadataTable;return new LA({class:n.class,metadataTable:n,entityId:t,propertyTableJson:this._tilePropertyTableJson})};Ys.prototype.getContentMetadataView=function(e,t){let n=uBe(this,e,t);if(!u(n))return;let i=this._contentMetadataTables[t],o=this._contentPropertyTableJsons[t];return new LA({class:i.class,metadataTable:i,entityId:n,contentIndex:t,propertyTableJson:o})};Ys.prototype.isDestroyed=function(){return!1};Ys.prototype.destroy=function(){return u(this._bufferLoader)&&Hi.unload(this._bufferLoader),le(this)};var Ox=Ys;var fBe={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"},Rx=Object.freeze(fBe);var Pd={};Pd.parseAllBoundingVolumeSemantics=function(e){return{tile:{boundingVolume:Pd.parseBoundingVolumeSemantic("TILE",e),minimumHeight:Pd._parseMinimumHeight("TILE",e),maximumHeight:Pd._parseMaximumHeight("TILE",e)},content:{boundingVolume:Pd.parseBoundingVolumeSemantic("CONTENT",e),minimumHeight:Pd._parseMinimumHeight("CONTENT",e),maximumHeight:Pd._parseMaximumHeight("CONTENT",e)}}};Pd.parseBoundingVolumeSemantic=function(e,t){let n=`${e}_BOUNDING_BOX`,i=t.getPropertyBySemantic(n);if(u(i))return{box:i};let o=`${e}_BOUNDING_REGION`,r=t.getPropertyBySemantic(o);if(u(r))return{region:r};let s=`${e}_BOUNDING_SPHERE`,a=t.getPropertyBySemantic(s);if(u(a))return{sphere:a}};Pd._parseMinimumHeight=function(e,t){let n=`${e}_MINIMUM_HEIGHT`;return t.getPropertyBySemantic(n)};Pd._parseMaximumHeight=function(e,t){let n=`${e}_MAXIMUM_HEIGHT`;return t.getPropertyBySemantic(n)};var Mx=Pd;function Sl(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(Sl.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}}});Sl.fromSubtreeJson=async function(e,t,n,i,o,r){r=y(r,0);let s;u(o)&&(s=new Uint8Array(o,r));let a=t.implicitTileset,c=t.implicitCoordinates,l=await Ox.fromSubtreeJson(n,i,s,a,c),f=new Sl(e,t,n);return f._implicitSubtree=l,dBe(f,l),f._ready=!0,f};function dBe(e,t){let n=e._tile,i=e._implicitCoordinates.childIndex,o=mBe(e,t,n,i),r=e._tileset.statistics;n.children.push(o.rootTile),r.numberOfTilesTotal++;let s=hBe(e,t,o.bottomRow);for(let a=0;a<s.length;a++){let c=s[a],l=c.tile,f=CBe(e,l,c.childIndex);l.children.push(f),r.numberOfTilesTotal++}}function hBe(e,t,n){let i=[],o=e._implicitTileset.branchingFactor;for(let r=0;r<n.length;r++){let s=n[r];if(u(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 mBe(e,t,n,i){let s=iie(e,t,n,i,0,!0),a=e._tileset.statistics,c=[s],l=[],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)){l.push(void 0);continue}let b=t.getParentMortonIndex(m),T=c[b],A=m%f.branchingFactor,C=iie(e,t,T,A,x);T.children.push(C),a.numberOfTilesTotal++,l.push(C)}c=l,l=[]}return{rootTile:s,bottomRow:c}}function oie(e,t,n){let i=Rx.TILE_GEOMETRIC_ERROR;return u(e)&&e.hasPropertyBySemantic(i)?e.getPropertyBySemantic(i):t.geometricError/Math.pow(2,n.level)}function iie(e,t,n,i,o,r){let s=e._implicitTileset,a;y(r,!1)?a=n.implicitCoordinates:a=n.implicitCoordinates.getChildCoordinates(i);let c,l,f;if(u(t.tilePropertyTableJson)){c=t.getTileMetadataView(a);let D=Mx.parseAllBoundingVolumeSemantics(c);l=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=gBe(s,a,i,r,n,l),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=yBe(m,f);u(N)&&(L.boundingVolume=N),x.push(gt(L,s.contentHeaders[D]))}let b=oie(c,s,a),T={boundingVolume:m,geometricError:b,refine:s.refine,contents:x},A=!0,C=He(s.tileHeader,A);delete C.boundingVolume,delete C.transform,delete C.metadata;let S=gt(T,C,A),w=lie(e,s.baseResource,S,n);return w.implicitCoordinates=a,w.implicitSubtree=t,w.metadata=c,w.hasImplicitContentMetadata=g,w}function iU(e,t){return u(e)&&u(t)&&(u(t.minimumHeight)||u(t.maximumHeight))&&(ri(e,"3DTILES_bounding_volume_S2")||u(e.region))}function h6(e,t){u(t)&&(ri(e,"3DTILES_bounding_volume_S2")?_Be(e.extensions["3DTILES_bounding_volume_S2"],t.minimumHeight,t.maximumHeight):u(e.region)&&pBe(e.region,t.minimumHeight,t.maximumHeight))}function pBe(e,t,n){u(t)&&(e[4]=t),u(n)&&(e[5]=n)}function _Be(e,t,n){u(t)&&(e.minimumHeight=t),u(n)&&(e.maximumHeight=n)}function gBe(e,t,n,i,o,r){let s;return!u(r)||!u(r.boundingVolume)||!iU(r.boundingVolume,r)&&iU(e.boundingVolume,r)?s=rie(e,t,n,y(i,!1),o):s=r.boundingVolume,h6(s,r),s}function yBe(e,t){let n;return u(t)&&(n=t.boundingVolume),iU(n,t)?h6(n,t):iU(e,t)&&(n=He(e,!0),h6(n,t)),n}function rie(e,t,n,i,o){let r=e.boundingVolume;return ri(r,"3DTILES_bounding_volume_S2")?sie(i,o,n,t.level,t.x,t.y,t.z):u(r.region)?{region:cie(r.region,t.level,t.x,t.y,t.z)}:{box:aie(r.box,t.level,t.x,t.y,t.z)}}function sie(e,t,n,i,o,r,s){let a=t._boundingVolume;if(e)return{extensions:{"3DTILES_bounding_volume_S2":{token:Sp.getTokenFromId(a.s2Cell._cellId),minimumHeight:a.minimumHeight,maximumHeight:a.maximumHeight}}};let c=Number(t._boundingVolume.s2Cell._cellId>>BigInt(61)),l=c%2===0?OA.encode2D(i,o,r):OA.encode2D(i,r,o),f=Sp.fromFacePositionLevel(c,BigInt(l),i),d,p;if(u(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:Sp.getTokenFromId(f._cellId),minimumHeight:d,maximumHeight:p}}}}var xBe=new h,bBe=new h,d6=new h,TBe=new Q;function aie(e,t,n,i,o){if(t===0)return e;let r=h.unpack(e,0,bBe),s=Q.unpack(e,3,TBe),a=Math.pow(2,-t),c=-1+(2*n+1)*a,l=-1+(2*i+1)*a,f=0,d=h.fromElements(a,a,1,xBe);u(o)&&(f=-1+(2*o+1)*a,d.z=a);let p=h.fromElements(c,l,f,d6);p=Q.multiplyByVector(s,p,d6),p=h.add(p,r,d6);let g=Q.clone(s);g=Q.multiplyByScale(g,d,g);let m=new Array(12);return h.pack(p,m),Q.pack(g,m,3),m}var ABe=new ce;function cie(e,t,n,i,o){if(t===0)return e.slice();let r=ce.unpack(e,0,ABe),s=e[4],a=e[5],c=Math.pow(2,-t),l=c*r.width,f=P.negativePiToPi(r.west+n*l),d=P.negativePiToPi(f+l),p=c*r.height,g=P.negativePiToPi(r.south+i*p),m=P.negativePiToPi(g+p),x=s,b=a;if(u(o)){let T=c*(a-s);x+=o*T,b=x+T}return[f,g,d,m,x,b]}function CBe(e,t,n){let i=e._implicitTileset,o=t.implicitCoordinates.getChildCoordinates(n),r=rie(i,o,n,!1,t),s=oie(void 0,i,o),a=i.subtreeUriTemplate.getDerivedResource({templateValues:o.getTemplateValues()}).url,c={boundingVolume:r,geometricError:s,refine:i.refine,contents:[{uri:a}]},l=lie(e,i.baseResource,c,t);return l.implicitTileset=i,l.implicitCoordinates=o,l}function lie(e,t,n,i){let o=e._tile.constructor;return new o(e._tileset,t,n,i)}Sl.prototype.hasProperty=function(e,t){return!1};Sl.prototype.getFeature=function(e){};Sl.prototype.applyDebugSettings=function(e,t){};Sl.prototype.applyStyle=function(e){};Sl.prototype.update=function(e,t){};Sl.prototype.isDestroyed=function(){return!1};Sl.prototype.destroy=function(){return this._implicitSubtree=this._implicitSubtree&&this._implicitSubtree.destroy(),le(this)};Sl._deriveBoundingBox=aie;Sl._deriveBoundingRegion=cie;Sl._deriveBoundingVolumeS2=sie;var WA=Sl;var EBe={NONE:0,REPEAT:1,MIRRORED_REPEAT:2},wl=Object.freeze(EBe);function jA(e,t){this._distance=t,this._normal=new uie(e,this),this.onChangeCallback=void 0,this.index=-1}Object.defineProperties(jA.prototype,{distance:{get:function(){return this._distance},set:function(e){u(this.onChangeCallback)&&e!==this._distance&&this.onChangeCallback(this.index),this._distance=e}},normal:{get:function(){return this._normal},set:function(e){u(this.onChangeCallback)&&!h.equals(this._normal._cartesian3,e)&&this.onChangeCallback(this.index),h.clone(e,this._normal._cartesian3)}}});jA.fromPlane=function(e,t){return u(t)?(t.normal=e.normal,t.distance=e.distance):t=new jA(e.normal,e.distance),t};jA.clone=function(e,t){return u(t)?(t.normal=e.normal,t.distance=e.distance,t):new jA(e.normal,e.distance)};function uie(e,t){this._clippingPlane=t,this._cartesian3=h.clone(e)}Object.defineProperties(uie.prototype,{x:{get:function(){return this._cartesian3.x},set:function(e){u(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){u(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){u(this._clippingPlane.onChangeCallback)&&e!==this._cartesian3.z&&this._clippingPlane.onChangeCallback(this._clippingPlane.index),this._cartesian3.z=e}}});var Lx=jA;function Za(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?pie:_ie,this._uint8View=void 0,this._float32View=void 0,this._clippingPlanesTexture=void 0;let n=e.planes;if(u(n)){let i=n.length;for(let o=0;o<i;++o)this.add(n[o])}}function pie(e){return e===Kt.OUTSIDE}function _ie(e){return e===Kt.INSIDE}Object.defineProperties(Za.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?pie:_ie)}},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 fie(e,t){e._multipleDirtyPlanes=e._multipleDirtyPlanes||e._dirtyIndex!==-1&&e._dirtyIndex!==t,e._dirtyIndex=t}Za.prototype.add=function(e){let t=this._planes.length,n=this;e.onChangeCallback=function(i){fie(n,i)},e.index=t,fie(this,t),this._planes.push(e),this.planeAdded.raiseEvent(e,t)};Za.prototype.get=function(e){return this._planes[e]};function gie(e,t){let n=e.length;for(let i=0;i<n;++i)if(en.equals(e[i],t))return i;return-1}Za.prototype.contains=function(e){return gie(this._planes,e)!==-1};Za.prototype.remove=function(e){let t=this._planes,n=gie(t,e);if(n===-1)return!1;e instanceof Lx&&(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 Lx&&(r.index=o)}return this._multipleDirtyPlanes=!0,t.length=i,this.planeRemoved.raiseEvent(e,n),!0};Za.prototype.removeAll=function(){let e=this._planes,t=e.length;for(let n=0;n<t;++n){let i=e[n];i instanceof Lx&&(i.onChangeCallback=void 0,i.index=-1),this.planeRemoved.raiseEvent(i,n)}this._multipleDirtyPlanes=!0,this._planes=[]};var SBe=new oe,wBe=new oe;function die(e,t,n){let i=e._uint8View,o=e._planes,r=0;for(let s=t;s<n;++s){let a=o[s],c=qn.octEncodeToCartesian4(a.normal,wBe);i[r]=c.x,i[r+1]=c.y,i[r+2]=c.z,i[r+3]=c.w;let l=oe.packFloat(a.distance,SBe);i[r+4]=l.x,i[r+5]=l.y,i[r+6]=l.z,i[r+7]=l.w,r+=8}}function hie(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 yie(e,t){let n=Ut.maximumTextureSize;return t.x=Math.min(e,n),t.y=Math.ceil(e/t.x),t}var vBe=new z;Za.prototype.update=function(e){let t=this._clippingPlanesTexture,n=e.context,i=Za.useFloatTexture(n),o=i?this.length:this.length*2;if(u(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(!u(t)){let s=yie(o,vBe);s.y*=2,i?(t=new It({context:n,width:s.x,height:s.y,pixelFormat:nt.RGBA,pixelDatatype:Ye.FLOAT,sampler:ln.NEAREST,flipY:!1}),this._float32View=new Float32Array(s.x*s.y*4)):(t=new It({context:n,width:s.x,height:s.y,pixelFormat:nt.RGBA,pixelDatatype:Ye.UNSIGNED_BYTE,sampler:ln.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?(hie(this,0,this._planes.length),t.copyFrom({source:{width:t.width,height:t.height,arrayBufferView:this._float32View}})):(die(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),hie(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),die(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 DBe=new F,mie=new en(h.UNIT_X,0);Za.prototype.computeIntersectionWithBoundingVolume=function(e,t){let n=this._planes,i=n.length,o=this.modelMatrix;u(t)&&(o=F.multiply(t,o,DBe));let r=Kt.INSIDE;!this.unionClippingRegions&&i>0&&(r=Kt.OUTSIDE);for(let s=0;s<i;++s){let a=n[s];en.transform(a,o,mie);let c=e.intersectPlane(mie);if(c===Kt.INTERSECTING)r=c;else if(this._testIntersection(c))return c}return r};Za.setOwner=function(e,t,n){e!==t[n]&&(t[n]=t[n]&&t[n].destroy(),u(e)&&(e._owner=t,t[n]=e))};Za.useFloatTexture=function(e){return e.floatingPointTexture};Za.getTextureResolution=function(e,t,n){let i=e.texture;if(u(i))return n.x=i.width,n.y=i.height,n;let o=Za.useFloatTexture(t)?e.length:e.length*2,r=yie(o,n);return r.y*=2,r};Za.prototype.isDestroyed=function(){return!1};Za.prototype.destroy=function(){return this._clippingPlanesTexture=this._clippingPlanesTexture&&this._clippingPlanesTexture.destroy(),le(this)};var cs=Za;var l1={HIGHLIGHT:0,REPLACE:1,MIX:2};l1.getColorBlend=function(e,t){if(e===l1.HIGHLIGHT)return 0;if(e===l1.REPLACE)return 1;if(e===l1.MIX)return P.clamp(t,P.EPSILON4,1)};var $a=Object.freeze(l1);var IBe={XTRANSLATE:"xTranslate",YTRANSLATE:"yTranslate",ZTRANSLATE:"zTranslate",XROTATE:"xRotate",YROTATE:"yRotate",ZROTATE:"zRotate",XSCALE:"xScale",YSCALE:"yScale",ZSCALE:"zScale",UNIFORMSCALE:"uniformScale"},Qa=Object.freeze(IBe);var PBe={STEP:0,LINEAR:1,CUBICSPLINE:2},Od=Object.freeze(PBe);var xie={};function u1(e){this._count=e.count,this._properties=He(e.properties,!0)}u1.prototype.hasProperty=function(e){return Fn.hasProperty(e,this._properties,xie)};u1.prototype.getPropertyIds=function(e){return Fn.getPropertyIds(this._properties,xie,e)};u1.prototype.getProperty=function(e,t){let n=this._properties[t];if(u(n))return He(n[e],!0)};u1.prototype.setProperty=function(e,t,n){let i=this._properties[t];u(i)||(i=new Array(this._count),this._properties[t]=i),i[e]=He(n,!0)};var Rp=u1;function Ja(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(Ja.prototype,{name:{get:function(){return this._name}},id:{get:function(){return this._id}},count:{get:function(){return this._count}},class:{get:function(){if(u(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 u(this._metadataTable)&&(e+=this._metadataTable.byteLength),u(this._batchTableHierarchy)&&(e+=this._batchTableHierarchy.byteLength),e}}});Ja.prototype.hasProperty=function(e,t){return!!(u(this._metadataTable)&&this._metadataTable.hasProperty(t)||u(this._batchTableHierarchy)&&this._batchTableHierarchy.hasProperty(e,t)||u(this._jsonMetadataTable)&&this._jsonMetadataTable.hasProperty(t))};Ja.prototype.hasPropertyBySemantic=function(e,t){return u(this._metadataTable)?this._metadataTable.hasPropertyBySemantic(t):!1};Ja.prototype.propertyExists=function(e){return!!(u(this._metadataTable)&&this._metadataTable.hasProperty(e)||u(this._batchTableHierarchy)&&this._batchTableHierarchy.propertyExists(e)||u(this._jsonMetadataTable)&&this._jsonMetadataTable.hasProperty(e))};Ja.prototype.propertyExistsBySemantic=function(e){return u(this._metadataTable)?this._metadataTable.hasPropertyBySemantic(e):!1};var m6=[];Ja.prototype.getPropertyIds=function(e,t){return t=u(t)?t:[],t.length=0,u(this._metadataTable)&&t.push.apply(t,this._metadataTable.getPropertyIds(m6)),u(this._batchTableHierarchy)&&t.push.apply(t,this._batchTableHierarchy.getPropertyIds(e,m6)),u(this._jsonMetadataTable)&&t.push.apply(t,this._jsonMetadataTable.getPropertyIds(m6)),t};Ja.prototype.getProperty=function(e,t){let n;if(u(this._metadataTable)&&(n=this._metadataTable.getProperty(e,t),u(n))||u(this._batchTableHierarchy)&&(n=this._batchTableHierarchy.getProperty(e,t),u(n))||u(this._jsonMetadataTable)&&(n=this._jsonMetadataTable.getProperty(e,t),u(n)))return n};Ja.prototype.setProperty=function(e,t,n){u(this._metadataTable)&&this._metadataTable.setProperty(e,t,n)||u(this._batchTableHierarchy)&&this._batchTableHierarchy.setProperty(e,t,n)||(u(this._jsonMetadataTable)||(this._jsonMetadataTable=new Rp({count:this._count,properties:{}})),this._jsonMetadataTable.setProperty(e,t,n))};Ja.prototype.getPropertyBySemantic=function(e,t){if(u(this._metadataTable))return this._metadataTable.getPropertyBySemantic(e,t)};Ja.prototype.setPropertyBySemantic=function(e,t,n){return u(this._metadataTable)?this._metadataTable.setPropertyBySemantic(e,t,n):!1};Ja.prototype.getPropertyTypedArray=function(e){if(u(this._metadataTable))return this._metadataTable.getPropertyTypedArray(e)};Ja.prototype.getPropertyTypedArrayBySemantic=function(e){if(u(this._metadataTable))return this._metadataTable.getPropertyTypedArrayBySemantic(e)};Ja.prototype.isClass=function(e,t){let n=this._batchTableHierarchy;return u(n)?n.isClass(e,t):!1};Ja.prototype.isExactClass=function(e,t){return this.getExactClassName(e)===t};Ja.prototype.getExactClassName=function(e){let t=this._batchTableHierarchy;if(u(t))return t.getClassName(e)};var Bc=Ja;function f1(e){e=y(e,y.EMPTY_OBJECT);let t=e.property,n=e.classProperty,i=e.textures,o=u(t.channels)?t.channels:[0],r=t,s=Cl.createModelTextureReader({textureInfo:r,channels:MBe(o),texture:i[r.index]});this._min=t.min,this._max=t.max;let a=t.offset,c=t.scale,l=n.hasValueTransform||u(a)||u(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=l,this._textureReader=s,this._classProperty=n,this._extras=t.extras,this._extensions=t.extensions}Object.defineProperties(f1.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}}});f1.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===Qt.UINT8:Ht.isVectorType(t)||t===Ht.SCALAR?n===Qt.UINT8:!1};var OBe=[void 0,"float","vec2","vec3","vec4"],RBe=[void 0,"int","ivec2","ivec3","ivec4"];f1.prototype.getGlslType=function(){let e=this._classProperty,t=Ht.getComponentCount(e.type);return e.isArray&&(t=e.arrayLength),e.normalized?OBe[t]:RBe[t]};f1.prototype.unpackInShader=function(e){return this._classProperty.normalized?e:`${this.getGlslType()}(255.0 * ${e})`};function MBe(e){return e.map(function(t){return"rgba".charAt(t)}).join("")}var d1=f1;function p6(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(u(t.properties))for(let a in t.properties)t.properties.hasOwnProperty(a)&&(s[a]=new d1({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(p6.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}}});p6.prototype.getProperty=function(e){return this._properties[e]};var Nx=p6;function bie(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||u(i)||u(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(bie.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 h1=bie;function _6(e){e=y(e,y.EMPTY_OBJECT);let t=e.propertyAttribute,n=e.class,i={};if(u(t.properties))for(let o in t.properties)t.properties.hasOwnProperty(o)&&(i[o]=new h1({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(_6.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}}});_6.prototype.getProperty=function(e){return this._properties[e]};var Fx=_6;function m1(e){e=y(e,y.EMPTY_OBJECT),this._schema=e.schema;let t=e.propertyTables;this._propertyTableCount=u(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(m1.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(!u(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}}});m1.prototype.getPropertyTable=function(e){return this._propertyTables[e]};m1.prototype.getPropertyTexture=function(e){return this._propertyTextures[e]};m1.prototype.getPropertyAttribute=function(e){return this._propertyAttributes[e]};var ba=m1;function LBe(e){e=y(e,y.EMPTY_OBJECT);let t=e.extension,n=e.schema,i=[];if(u(t.propertyTables))for(let s=0;s<t.propertyTables.length;s++){let a=t.propertyTables[s],c=n.classes[a.class],l=new Tl({count:a.count,properties:a.properties,class:c,bufferViews:e.bufferViews});i.push(new Bc({id:s,name:a.name,count:a.count,metadataTable:l,extras:a.extras,extensions:a.extensions}))}let o=[];if(u(t.propertyTextures))for(let s=0;s<t.propertyTextures.length;s++){let a=t.propertyTextures[s];o.push(new Nx({id:s,name:a.name,propertyTexture:a,class:n.classes[a.class],textures:e.textures}))}let r=[];if(u(t.propertyAttributes))for(let s=0;s<t.propertyAttributes.length;s++){let a=t.propertyAttributes[s];r.push(new Fx({id:s,name:a.name,class:n.classes[a.class],propertyAttribute:a}))}return new ba({schema:n,propertyTables:i,propertyTextures:o,propertyAttributes:r,statistics:t.statistics,extras:t.extras,extensions:t.extensions})}var p1=LBe;function NBe(e){e=y(e,y.EMPTY_OBJECT);let t=e.extension,n=e.schema,i,o=[],r;if(u(t.featureTables))for(r=Object.keys(t.featureTables).sort(),i=0;i<r.length;i++){let a=r[i],c=t.featureTables[a],l=n.classes[c.class],f=new Tl({count:c.count,properties:c.properties,class:l,bufferViews:e.bufferViews});o.push(new Bc({id:a,count:c.count,metadataTable:f,extras:c.extras,extensions:c.extensions}))}let s=[];if(u(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 Nx({id:a,propertyTexture:FBe(c),class:n.classes[c.class],textures:e.textures}))}return new ba({schema:n,propertyTables:o,propertyTextures:s,statistics:t.statistics,extras:t.extras,extensions:t.extensions})}function FBe(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:BBe(o.channels),extras:o.extras,extensions:o.extensions};t.properties[i]=gt(o.texture,r,!0)}return t}function BBe(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 _1=NBe;function Bg(e){e=y(e,y.EMPTY_OBJECT);let t=e.gltf,n=e.extension,i=e.extensionLegacy,o=e.gltfResource,r=e.baseResource,s=e.supportedImageFormats,a=e.frameState,c=e.cacheKey,l=y(e.asynchronous,!0);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=l,this._bufferViewLoaders=[],this._bufferViewIds=[],this._textureLoaders=[],this._textureIds=[],this._schemaLoader=void 0,this._structuralMetadata=void 0,this._state=Et.UNLOADED,this._promise=void 0}u(Object.create)&&(Bg.prototype=Object.create(io.prototype),Bg.prototype.constructor=Bg);Object.defineProperties(Bg.prototype,{cacheKey:{get:function(){return this._cacheKey}},structuralMetadata:{get:function(){return this._structuralMetadata}}});async function kBe(e){try{let t=GBe(e),n=XBe(e),i=KBe(e);return await Promise.all([t,n,i]),e.isDestroyed()?void 0:(e._gltf=void 0,e._state=Et.LOADED,e)}catch(t){if(e.isDestroyed())return;e.unload(),e._state=Et.FAILED;let n="Failed to load structural metadata";throw e.getError(n,t)}}Bg.prototype.load=function(){return u(this._promise)?this._promise:(this._state=Et.LOADING,this._promise=kBe(this),this._promise)};function UBe(e,t){for(let n in e)if(e.hasOwnProperty(n)){let i=e[n],o=i.values,r=i.arrayOffsets,s=i.stringOffsets;u(o)&&(t[o]=!0),u(r)&&(t[r]=!0),u(s)&&(t[s]=!0)}}function VBe(e,t){for(let n in e)if(e.hasOwnProperty(n)){let i=e[n],o=i.bufferView,r=i.arrayOffsetBufferView,s=i.stringOffsetBufferView;u(o)&&(t[o]=!0),u(r)&&(t[r]=!0),u(s)&&(t[s]=!0)}}function zBe(e){let t=e.propertyTables,n={};if(u(t))for(let i=0;i<t.length;i++){let o=t[i];UBe(o.properties,n)}return n}function HBe(e){let t=e.featureTables,n={};if(u(t)){for(let i in t)if(t.hasOwnProperty(i)){let r=t[i].properties;u(r)&&VBe(r,n)}}return n}async function GBe(e){let t;u(e._extension)?t=zBe(e._extension):t=HBe(e._extensionLegacy);let n=[];for(let i in t)if(t.hasOwnProperty(i)){let o=Hi.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 WBe(e){let t={},n=e.propertyTextures;if(u(n))for(let i=0;i<n.length;i++){let r=n[i].properties;u(r)&&jBe(r,t)}return t}function jBe(e,t){for(let n in e)if(e.hasOwnProperty(n)){let i=e[n];t[i.index]=i}}function qBe(e){let t={},n=e.featureTextures;if(u(n)){for(let i in n)if(n.hasOwnProperty(i)){let r=n[i].properties;u(r)&&YBe(r,t)}}return t}function YBe(e,t){for(let n in e)if(e.hasOwnProperty(n)){let o=e[n].texture;t[o.index]=o}}function XBe(e){let t;u(e._extension)?t=WBe(e._extension):t=qBe(e._extensionLegacy);let n=e._gltf,i=e._gltfResource,o=e._baseResource,r=e._supportedImageFormats,s=e._frameState,a=e._asynchronous,c=[];for(let l in t)if(t.hasOwnProperty(l)){let f=Hi.getTextureLoader({gltf:n,textureInfo:t[l],gltfResource:i,baseResource:o,supportedImageFormats:r,frameState:s,asynchronous:a});e._textureLoaders.push(f),e._textureIds.push(l),c.push(f.load())}return Promise.all(c)}async function KBe(e){let t=y(e._extension,e._extensionLegacy),n;if(u(t.schemaUri)){let i=e._baseResource.getDerivedResource({url:t.schemaUri});n=Hi.getSchemaLoader({resource:i})}else n=Hi.getSchemaLoader({schema:t.schema});if(e._schemaLoader=n,await n.load(),!n.isDestroyed())return n.schema}Bg.prototype.process=function(e){if(this._state===Et.READY)return!0;if(this._state!==Et.LOADED)return!1;let t=this._textureLoaders,n=t.length,i=!0;for(let a=0;a<n;++a){let l=t[a].process(e);i=i&&l}if(!i)return!1;let o=this._schemaLoader.schema,r={};for(let a=0;a<this._bufferViewIds.length;++a){let c=this._bufferViewIds[a],l=this._bufferViewLoaders[a];if(!l.isDestroyed()){let f=new Uint8Array(l.typedArray);r[c]=f}}let s={};for(let a=0;a<this._textureIds.length;++a){let c=this._textureIds[a],l=t[a];l.isDestroyed()||(s[c]=l.texture)}return u(this._extension)?this._structuralMetadata=p1({extension:this._extension,schema:o,bufferViews:r,textures:s}):this._structuralMetadata=_1({extension:this._extensionLegacy,schema:o,bufferViews:r,textures:s}),Tie(this),this._state=Et.READY,!0};function Tie(e){let t=e._bufferViewLoaders,n=t.length;for(let i=0;i<n;++i)Hi.unload(t[i]);e._bufferViewLoaders.length=0,e._bufferViewIds.length=0}function ZBe(e){let t=e._textureLoaders,n=t.length;for(let i=0;i<n;++i)Hi.unload(t[i]);e._textureLoaders.length=0,e._textureIds.length=0}Bg.prototype.unload=function(){Tie(this),ZBe(this),u(this._schemaLoader)&&Hi.unload(this._schemaLoader),this._schemaLoader=void 0,this._structuralMetadata=void 0};var g1=Bg;var qA={TRANSLATION:"TRANSLATION",ROTATION:"ROTATION",SCALE:"SCALE",FEATURE_ID:"_FEATURE_ID"};qA.fromGltfSemantic=function(e){let t=e,i=/^(\w+)_\d+$/.exec(e);switch(i!==null&&(t=i[1]),t){case"TRANSLATION":return qA.TRANSLATION;case"ROTATION":return qA.ROTATION;case"SCALE":return qA.SCALE;case"_FEATURE_ID":return qA.FEATURE_ID}};var Wr=Object.freeze(qA);var $Be=65534,QBe=255;function oU(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 Eie(n,i),this._outlineCoordinatesTypedArray=void 0,this._extraVertices=[],JBe(this)}Object.defineProperties(oU.prototype,{updatedTriangleIndices:{get:function(){return this._triangleIndices}},outlineCoordinates:{get:function(){return this._outlineCoordinatesTypedArray}}});function JBe(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],l=t[a+1],f=t[a+2],d=!1,p=d||n.hasEdge(c,l),g=d||n.hasEdge(l,f),m=d||n.hasEdge(f,c),x=Aie(i,c,l,f,p,g,m);for(;u(x);){let b=s[x];if(!u(b)){b=r+o.length;let T=x;for(;T>=r;)T=o[T-r];o.push(T),s[x]=b}b>$Be&&(t instanceof Uint16Array||t instanceof Uint8Array)?t=new Uint32Array(t):b>QBe&&t instanceof Uint8Array&&(t=new Uint16Array(t)),x===c?(c=b,t[a]=b):x===l?(l=b,t[a+1]=b):(f=b,t[a+2]=b),x=Aie(i,c,l,f,p,g,m)}}e._triangleIndices=t,e._outlineCoordinatesTypedArray=new Float32Array(i)}function Aie(e,t,n,i,o,r,s){let a=s?1:0,c=o?1:0,l=0,f=g6(e,t,a,c,l);if(f===0)return t;let d=0,p=o?1:0,g=r?1:0,m=g6(e,n,d,p,g);if(m===0)return n;let x=s?1:0,b=0,T=r?1:0,A=g6(e,i,x,b,T);if(A===0)return i;let C=f&m&A,S,w,D;if(C&1)S=0,w=1,D=2;else if(C&2)S=0,D=1,w=2;else if(C&4)w=0,S=1,D=2;else if(C&8)w=0,D=1,S=2;else if(C&16)D=0,S=1,w=2;else if(C&32)D=0,w=1,S=2;else{let N=y6(f),_=y6(m),E=y6(A);return N<_&&N<E?t:_<E?n:i}let O=t*3;e[O+S]=a,e[O+w]=c,e[O+D]=l;let R=n*3;e[R+S]=d,e[R+w]=p,e[R+D]=g;let L=i*3;e[L+S]=x,e[L+w]=b,e[L+D]=T}function g6(e,t,n,i,o){let r=t*3,s=e[r],a=e[r+1],c=e[r+2];return u(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 y6(e){return(e&1)+(e>>1&1)+(e>>2&1)+(e>>3&1)+(e>>4&1)+(e>>5&1)}oU.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,l=n+a*i;for(let f=0;f<i;f++)s[l+f]=s[c+f]}return s};oU.createTexture=function(e){let t=e.cache.modelOutliningCache;if(u(t)||(t=e.cache.modelOutliningCache={}),u(t.outlineTexture))return t.outlineTexture;let n=Math.min(4096,Ut.maximumTextureSize),i=n,o=Cie(i),r=[];for(;i>1;)i>>=1,r.push(Cie(i));let s=new It({context:e,source:{arrayBufferView:o,mipLevels:r},width:n,height:1,pixelFormat:nt.LUMINANCE,sampler:new ln({wrapS:Sn.CLAMP_TO_EDGE,wrapT:Sn.CLAMP_TO_EDGE,minificationFilter:rn.LINEAR_MIPMAP_LINEAR,magnificationFilter:yi.LINEAR})});return t.outlineTexture=s,s};function Cie(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 Eie(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)}}Eie.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 Bx=oU;function Sie(e){this.attribute=e,this.loadBuffer=!1,this.loadTypedArray=!1}function e3e(e){this.indices=e,this.loadBuffer=!1,this.loadTypedArray=!1}function rU(e){this.primitive=e,this.attributePlans=[],this.indicesPlan=void 0,this.needsOutlines=!1,this.outlineIndices=void 0}rU.prototype.postProcess=function(e){this.needsOutlines&&(t3e(this),i3e(this,e))};function t3e(e){let t=e.primitive,n=t.indices,i=t.attributes[0].count,o=new Bx({triangleIndices:n.typedArray,outlineIndices:e.outlineIndices,originalVertexCount:i});n.typedArray=o.updatedTriangleIndices,n.indexDatatype=Fe.fromTypedArray(n.typedArray);let r=n3e(o.outlineCoordinates),s=new Sie(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 l=0;l<c;l++){let f=a[l].attribute;f.typedArray=o.updateAttribute(f.typedArray)}}function n3e(e){let t=new Mt.Attribute;return t.name="_OUTLINE_COORDINATES",t.typedArray=e,t.componentDatatype=X.FLOAT,t.type=on.VEC3,t.normalized=!1,t.count=e.length/3,t}function i3e(e,t){o3e(e.attributePlans,t),u(e.indicesPlan)&&r3e(e.indicesPlan,t)}function o3e(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:Ne.STATIC_DRAW});a.vertexArrayDestroyable=!1,r.buffer=a}o.loadTypedArray||(r.typedArray=void 0)}}function r3e(e,t){let n=e.indices;if(e.loadBuffer){let i=ct.createIndexBuffer({typedArray:n.typedArray,context:t,usage:Ne.STATIC_DRAW,indexDatatype:n.indexDatatype});n.buffer=i,i.vertexArrayDestroyable=!1}e.loadTypedArray||(n.typedArray=void 0)}rU.AttributeLoadPlan=Sie;rU.IndicesLoadPlan=e3e;var kx=rU;function s3e(e){e=y(e,y.EMPTY_OBJECT),this.webp=y(e.webp,!1),this.basis=y(e.basis,!1)}var y1=s3e;var a3e=Mt.Attribute,c3e=Mt.Indices,wie=Mt.FeatureIdAttribute,vie=Mt.FeatureIdTexture,Die=Mt.FeatureIdImplicitRange,l3e=Mt.MorphTarget,u3e=Mt.Primitive,f3e=Mt.Instances,d3e=Mt.Skin,h3e=Mt.Node,m3e=Mt.AnimatedPropertyType,p3e=Mt.AnimationSampler,_3e=Mt.AnimationTarget,g3e=Mt.AnimationChannel,y3e=Mt.Animation,x3e=Mt.ArticulationStage,b3e=Mt.Articulation,T3e=Mt.Asset,A3e=Mt.Scene,C3e=Mt.Components,E3e=Mt.MetallicRoughness,S3e=Mt.SpecularGlossiness,w3e=Mt.Material,Ro={NOT_LOADED:0,LOADING:1,LOADED:2,PROCESSING:3,POST_PROCESSING:4,PROCESSED:5,READY:6,FAILED:7,UNLOADED:8};function Rd(e){e=y(e,y.EMPTY_OBJECT);let t=e.gltfResource,n=e.baseResource,i=e.typedArray,o=y(e.releaseGltfJson,!1),r=y(e.asynchronous,!0),s=y(e.incrementallyLoadTextures,!0),a=y(e.upAxis,Po.Y),c=y(e.forwardAxis,Po.Z),l=y(e.loadAttributesAsTypedArray,!1),f=y(e.loadAttributesFor2D,!1),d=y(e.loadIndicesForWireframe,!1),p=y(e.loadPrimitiveOutline,!0),g=y(e.loadForClassification,!1),m=y(e.renameBatchIdSemantic,!1);n=u(n)?n:t.clone(),this._gltfJson=e.gltfJson,this._gltfResource=t,this._baseResource=n,this._typedArray=i,this._releaseGltfJson=o,this._asynchronous=r,this._incrementallyLoadTextures=s,this._upAxis=a,this._forwardAxis=c,this._loadAttributesAsTypedArray=l,this._loadAttributesFor2D=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=Ro.NOT_LOADED,this._textureState=Ro.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._postProcessBuffers=[],this._components=void 0}u(Object.create)&&(Rd.prototype=Object.create(io.prototype),Rd.prototype.constructor=Rd);Object.defineProperties(Rd.prototype,{cacheKey:{get:function(){}},components:{get:function(){return this._components}},gltfJson:{get:function(){return u(this._gltfJsonLoader)?this._gltfJsonLoader.gltf:this._gltfJson}},incrementallyLoadTextures:{get:function(){return this._incrementallyLoadTextures}},texturesLoaded:{get:function(){return this._texturesLoaded}}});async function v3e(e){e._state=Ro.LOADING,e._textureState=Ro.LOADING;try{let t=Hi.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=Ro.LOADED,e._textureState=Ro.LOADED,e)}catch(t){if(e.isDestroyed())return;e._state=Ro.FAILED,e._textureState=Ro.FAILED,sU(e,t)}}async function D3e(e,t){Bt.supportsWebP.initialized||await Bt.supportsWebP.initialize();let n=new y1({webp:Bt.supportsWebP(),basis:t.context.supportsBasis}),i=e.gltfJson,o=Ske(e,i,n,t);return e._state=Ro.PROCESSING,e._textureState=Ro.PROCESSING,u(e._gltfJsonLoader)&&e._releaseGltfJson&&(Hi.unload(e._gltfJsonLoader),e._gltfJsonLoader=void 0),o}Rd.prototype.load=async function(){return u(this._promise)?this._promise:(this._promise=v3e(this),this._promise)};function sU(e,t){e.unload();let n="Failed to load glTF";throw e.getError(n,t)}function I3e(e,t){let n,i=!0,o=e._geometryLoaders,r=o.length;for(n=0;n<r;++n){let a=o[n].process(t);a&&u(e._geometryCallbacks[n])&&(e._geometryCallbacks[n](),e._geometryCallbacks[n]=void 0),i=i&&a}let s=e._structuralMetadataLoader;if(u(s)){let a=s.process(t);a&&(e._components.structuralMetadata=s.structuralMetadata),i=i&&a}i&&(e._state=Ro.POST_PROCESSING)}function P3e(e,t){let n=e._primitiveLoadPlans,i=n.length;for(let o=0;o<i;o++){let r=n[o];r.postProcess(t),r.needsOutlines&&O3e(e,r)}}function O3e(e,t){let n=e._postProcessBuffers,i=t.primitive,o=i.outlineCoordinates;u(o)&&n.push(o.buffer);let r=i.attributes,s=r.length;for(let c=0;c<s;c++){let l=r[c];u(l.buffer)&&n.push(l.buffer)}let a=i.indices;u(a)&&u(a.buffer)&&n.push(a.buffer)}Rd.prototype._process=function(e){return this._state===Ro.READY?!0:(this._state===Ro.PROCESSING&&I3e(this,e),this._resourcesLoaded&&this._state===Ro.POST_PROCESSING&&(P3e(this,e.context),this._state=Ro.PROCESSED),this._resourcesLoaded&&this._state===Ro.PROCESSED?(Bie(this),this._typedArray=void 0,this._state=Ro.READY,!0):!1)};Rd.prototype._processTextures=function(e){if(this._textureState===Ro.READY)return!0;if(this._textureState!==Ro.PROCESSING)return!1;let t,n=!0,i=this._textureLoaders,o=i.length;for(t=0;t<o;++t){let r=i[t].process(e);r&&u(this._textureCallbacks[t])&&(this._textureCallbacks[t](),this._textureCallbacks[t]=void 0),n=n&&r}return n?(this._textureState=Ro.READY,this._texturesLoaded=!0,!0):!1};Rd.prototype.process=function(e){if(this._state===Ro.LOADED&&!u(this._loadResourcesPromise)&&(this._loadResourcesPromise=D3e(this,e).then(()=>{this._resourcesLoaded=!0}).catch(o=>{this._processError=o})),u(this._processError)){this._state=Ro.FAILED;let o=this._processError;this._processError=void 0,sU(this,o)}let t=this._textureErrors.pop();if(u(t)){let o=this.getError("Failed to load glTF texture",t);throw o.name="TextureError",o}if(this._state===Ro.FAILED)return!1;let n=!1;try{n=this._process(e)}catch(o){this._state=Ro.FAILED,sU(this,o)}let i=!1;try{i=this._processTextures(e)}catch(o){this._textureState=Ro.FAILED,sU(this,o)}return this._incrementallyLoadTextures?n:n&&i};function R3e(e,t,n,i,o,r,s,a){let l=t.accessors[n].bufferView;return Hi.getVertexBufferLoader({gltf:t,gltfResource:e._gltfResource,baseResource:e._baseResource,frameState:a,bufferViewId:l,draco:o,attributeSemantic:i,accessorId:n,asynchronous:e._asynchronous,loadBuffer:r,loadTypedArray:s})}function M3e(e,t,n,i,o,r,s){return Hi.getIndexBufferLoader({gltf:t,accessorId:n,gltfResource:e._gltfResource,baseResource:e._baseResource,frameState:s,draco:i,asynchronous:e._asynchronous,loadBuffer:o,loadTypedArray:r})}function L3e(e,t,n){let i=Hi.getBufferViewLoader({gltf:t,bufferViewId:n,gltfResource:e._gltfResource,baseResource:e._baseResource});return e._bufferViewLoaders.push(i),i}function Iie(e,t,n){let i=t.byteOffset,o=Al(e,t),r=t.count,s=cu(t.type),a=t.componentType,c=X.getSizeInBytes(a),l=c*s,f=r*s;if(o===l)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=Op(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 N3e(e,t){let n=e.type;if(n===on.SCALAR)return t.fill(0);let i=on.getMathType(n);return t.fill(i.clone(i.ZERO))}function F3e(e,t,n,i){let o=e.type,r=e.count;if(o===on.SCALAR)for(let s=0;s<r;s++)n[s]=t[s];else if(o===on.VEC4&&i)for(let s=0;s<r;s++)n[s]=Le.unpack(t,s*4);else{let s=on.getMathType(o),a=on.getNumberOfComponents(o);for(let c=0;c<r;c++)n[c]=s.unpack(t,c*a)}return n}async function B3e(e,t,n,i,o,r){if(await t.load(),e.isDestroyed())return;let s=t.typedArray,a=Iie(n,i,s);o=y(o,!1),F3e(i,a,r,o)}function aU(e,t,n,i){let o=t.accessors[n],r=o.count,s=new Array(r),a=o.bufferView;if(u(a)){let c=L3e(e,t,a),l=B3e(e,c,t,o,i,s);return e._loaderPromises.push(l),s}return N3e(o,s)}function cf(e,t){if(u(t))return e===Number?t[0]:e.unpack(t)}function k3e(e){return e===Number?0:new e}function U3e(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 V3e={VEC2:new z(-1,-1),VEC3:new h(-1,-1,-1),VEC4:new oe(-1,-1,-1,-1)};function z3e(e,t){let n=U3e(e.componentDatatype),i=V3e[e.type],o=e.min;u(o)&&(o=t.divideByScalar(o,n,o),o=t.maximumByComponent(o,i,o));let r=e.max;u(r)&&(r=t.divideByScalar(r,n,r),r=t.maximumByComponent(r,i,r)),e.min=o,e.max=r}function H3e(e,t,n){let i=e.decodeMatrix,o=cf(n,e.decodedMin),r=cf(n,e.decodedMax);u(o)&&u(r)&&(t.min=o,t.max=r);let s=new Mt.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 G3e(e,t,n,i,o){let r=e.accessors[t],s=on.getMathType(r.type),a=y(r.normalized,!1),c=new a3e;c.name=n,c.semantic=i,c.setIndex=o,c.constant=k3e(s),c.componentDatatype=r.componentType,c.normalized=a,c.count=r.count,c.type=r.type,c.min=cf(s,r.min),c.max=cf(s,r.max),c.byteOffset=r.byteOffset,c.byteStride=Al(e,r),ri(r,"WEB3D_quantized_attributes")&&H3e(r.extensions.WEB3D_quantized_attributes,c,s);let l=c.semantic===Tt.POSITION||c.semantic===Tt.NORMAL||c.semantic===Tt.TANGENT||c.semantic===Tt.TEXCOORD;return e.extensionsRequired?.includes("KHR_mesh_quantization")&&a&&l&&z3e(c,s),c}function Pie(e){let n=/^\w+_(\d+)$/.exec(e);if(n!==null)return parseInt(n[1])}var W3e={gltfSemantic:void 0,renamedSemantic:void 0,modelSemantic:void 0};function x6(e,t,n){let i=n;e._renameBatchIdSemantic&&(n==="_BATCHID"||n==="BATCHID")&&(i="_FEATURE_ID_0");let o=t.fromGltfSemantic(i),r=W3e;return r.gltfSemantic=n,r.renamedSemantic=i,r.modelSemantic=o,r}function j3e(e){let t=e===Tt.POSITION,n=e===Tt.FEATURE_ID,i=e===Tt.TEXCOORD;return t||n||i}function q3e(e,t,n,i){if(e.byteOffset=0,e.byteStride=void 0,e.quantization=t.quantization,n&&(e.buffer=t.buffer),i){let o=u(t.quantization)?t.quantization.componentDatatype:e.componentDatatype;e.typedArray=X.createArrayBufferView(o,t.typedArray.buffer)}}function Y3e(e,t,n,i,o,r){if(o&&(n.buffer=i.buffer),r){let s=i.typedArray;n.typedArray=Iie(e,t,s),o||(n.byteOffset=0,n.byteStride=void 0)}}function Oie(e,t,n,i,o,r,s,a){let c=t.accessors[n],l=c.bufferView,f=i.gltfSemantic,d=i.renamedSemantic,p=i.modelSemantic,g=u(p)?Pie(d):void 0,x=G3e(t,n,f,p,g);if(!u(o)&&!u(l))return x;let b=R3e(e,t,n,f,o,r,s,a),T=e._geometryLoaders.length;e._geometryLoaders.push(b);let A=b.load();return e._loaderPromises.push(A),e._geometryCallbacks[T]=()=>{u(o)&&u(o.attributes)&&u(o.attributes[f])?q3e(x,b,r,s):Y3e(t,c,x,b,r,s)},x}function Rie(e,t,n,i,o,r,s,a){let c=i.modelSemantic,l=c===Tt.POSITION,f=c===Tt.FEATURE_ID,d=l&&!r&&e._loadAttributesFor2D&&!a.scene3DOnly,p=e._loadForClassification&&f,g=e._loadAttributesAsTypedArray,m=!g,x=g||d||p,A=Oie(e,t,n,i,o,s?!1:m,s?!0:x,a),C=new kx.AttributeLoadPlan(A);return C.loadBuffer=m,C.loadTypedArray=x,C}function X3e(e,t,n,i,o,r){let s=u(i.ROTATION),a=u(i.TRANSLATION)&&u(t.accessors[i.TRANSLATION].min)&&u(t.accessors[i.TRANSLATION].max),c=x6(e,Wr,o),l=c.modelSemantic,f=l===Wr.TRANSLATION||l===Wr.ROTATION||l===Wr.SCALE,d=l===Wr.TRANSLATION,p=e._loadAttributesAsTypedArray||s&&f||!r.context.instancedArrays,g=!p,m=e._loadAttributesFor2D&&!r.scene3DOnly;return Oie(e,t,n,c,void 0,g,p||d&&(!a||m),r)}function K3e(e,t,n,i,o,r,s){let a=t.accessors[n],c=a.bufferView;if(!u(i)&&!u(c))return;let l=new c3e;l.count=a.count;let f=e._loadAttributesAsTypedArray,d=e._loadIndicesForWireframe&&!s.context.webgl2,p=e._loadForClassification&&o,m=!f,x=f||d||p,A=M3e(e,t,n,i,r?!1:m,r?!0:x,s),C=e._geometryLoaders.length;e._geometryLoaders.push(A);let S=A.load();e._loaderPromises.push(S),e._geometryCallbacks[C]=()=>{l.indexDatatype=A.indexDatatype,l.buffer=A.buffer,l.typedArray=A.typedArray};let w=new kx.IndicesLoadPlan(l);return w.loadBuffer=m,w.loadTypedArray=x,w}function Mp(e,t,n,i,o,r){let s=Cl.getImageIdFromTexture({gltf:t,textureId:n.index,supportedImageFormats:i});if(!u(s))return;let a=Hi.getTextureLoader({gltf:t,textureInfo:n,gltfResource:e._gltfResource,baseResource:e._baseResource,supportedImageFormats:i,frameState:o,asynchronous:e._asynchronous}),c=Cl.createModelTextureReader({textureInfo:n}),l=e._textureLoaders.length;e._textureLoaders.push(a);let f=a.load().catch(d=>{if(!e.isDestroyed()){if(!e._incrementallyLoadTextures)throw d;e._textureState=Ro.FAILED,e._textureErrors.push(d)}});return e._texturesPromises.push(f),e._textureCallbacks[l]=()=>{c.texture=a.texture,u(r)&&(c.texture.sampler=r)},c}function Z3e(e,t,n,i,o){let r=new w3e,s=y(n.extensions,y.EMPTY_OBJECT),a=s.KHR_materials_pbrSpecularGlossiness,c=n.pbrMetallicRoughness;if(r.unlit=u(s.KHR_materials_unlit),u(a)){let l=new S3e;r.specularGlossiness=l,u(a.diffuseTexture)&&(l.diffuseTexture=Mp(e,t,a.diffuseTexture,i,o)),u(a.specularGlossinessTexture)&&u(a.specularGlossinessTexture)&&(l.specularGlossinessTexture=Mp(e,t,a.specularGlossinessTexture,i,o)),l.diffuseFactor=cf(oe,a.diffuseFactor),l.specularFactor=cf(h,a.specularFactor),l.glossinessFactor=a.glossinessFactor,r.pbrSpecularGlossiness=a}else if(u(c)){let l=new E3e;u(c.baseColorTexture)&&(l.baseColorTexture=Mp(e,t,c.baseColorTexture,i,o)),u(c.metallicRoughnessTexture)&&(l.metallicRoughnessTexture=Mp(e,t,c.metallicRoughnessTexture,i,o)),l.baseColorFactor=cf(oe,c.baseColorFactor),l.metallicFactor=c.metallicFactor,l.roughnessFactor=c.roughnessFactor,r.metallicRoughness=l}return u(n.emissiveTexture)&&(r.emissiveTexture=Mp(e,t,n.emissiveTexture,i,o)),u(n.normalTexture)&&!e._loadForClassification&&(r.normalTexture=Mp(e,t,n.normalTexture,i,o)),u(n.occlusionTexture)&&(r.occlusionTexture=Mp(e,t,n.occlusionTexture,i,o)),r.emissiveFactor=cf(h,n.emissiveFactor),r.alphaMode=n.alphaMode,r.alphaCutoff=n.alphaCutoff,r.doubleSided=n.doubleSided,r}function Mie(e,t){let n=new wie;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 Lie(e,t,n,i){let o=new wie,r=e.featureIds;return o.featureCount=n,o.propertyTableId=t,o.setIndex=Pie(r.attribute),o.positionalLabel=i,o}function Nie(e,t){let n=new Die;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 Fie(e,t,n,i){let o=new Die,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 $3e(e,t,n,i,o,r){let s=new vie;s.featureCount=n.featureCount,s.nullFeatureId=n.nullFeatureId,s.propertyTableId=n.propertyTable,s.label=n.label,s.positionalLabel=r;let a=n.texture;s.textureReader=Mp(e,t,a,i,o,ln.NEAREST);let l=(u(a.channels)?a.channels:[0]).map(function(f){return"rgba".charAt(f)}).join("");return s.textureReader.channels=l,s}function Q3e(e,t,n,i,o,r,s,a){let c=new vie,l=n.featureIds,f=l.texture;return c.featureCount=s,c.propertyTableId=i,c.textureReader=Mp(e,t,f,o,r,ln.NEAREST),c.textureReader.channels=l.channels,c.positionalLabel=a,c}function J3e(e,t,n,i,o,r){let s=new l3e,a=void 0,c=!1;for(let l in n)if(n.hasOwnProperty(l)){let f=n[l],d=x6(e,Tt,l),p=Rie(e,t,f,d,a,c,i,r);s.attributes.push(p.attribute),o.attributePlans.push(p)}return s}function eke(e,t,n,i,o,r){let s=new u3e,a=new kx(s);e._primitiveLoadPlans.push(a);let c=n.material;u(c)&&(s.material=Z3e(e,t,t.materials[c],o,r));let l=y(n.extensions,y.EMPTY_OBJECT),f=!1,d=l.CESIUM_primitive_outline;e._loadPrimitiveOutline&&u(d)&&(f=!0,a.needsOutlines=!0,a.outlineIndices=tke(e,t,d,a));let p=e._loadForClassification,g=l.KHR_draco_mesh_compression,m=!1,x=n.attributes;if(u(x)){for(let O in x)if(x.hasOwnProperty(O)){let R=x[O],L=x6(e,Tt,O),N=L.modelSemantic;if(p&&!j3e(N))continue;N===Tt.FEATURE_ID&&(m=!0);let _=Rie(e,t,R,L,g,i,f,r);a.attributePlans.push(_),s.attributes.push(_.attribute)}}let b=n.targets;if(u(b)&&!p){let O=b.length;for(let R=0;R<O;++R)s.morphTargets.push(J3e(e,t,b[R],f,a,r))}let T=n.indices;if(u(T)){let O=K3e(e,t,T,g,m,f,r);u(O)&&(a.indicesPlan=O,s.indices=O.indices)}let A=l.EXT_structural_metadata,C=l.EXT_mesh_features,S=l.EXT_feature_metadata,w=u(S);u(C)?nke(e,t,s,C,o,r):w&&ike(e,t,s,S,o,r),u(A)?oke(s,A):w&&rke(e,s,S);let D=n.mode;if(p&&D!==Me.TRIANGLES)throw new ue("Only triangle meshes can be used for classification.");return s.primitiveType=D,s}function tke(e,t,n){let i=n.indices;return aU(e,t,i,!1)}function nke(e,t,n,i,o,r){let s;u(i)&&u(i.featureIds)?s=i.featureIds:s=[];for(let a=0;a<s.length;a++){let c=s[a],l=`featureId_${a}`,f;u(c.texture)?f=$3e(e,t,c,o,r,l):u(c.attribute)?f=Mie(c,l):f=Nie(c,l),n.featureIds.push(f)}}function ike(e,t,n,i,o,r){let s=t.extensions.EXT_feature_metadata.featureTables,a=0,c=i.featureIdAttributes;if(u(c)){let f=c.length;for(let d=0;d<f;++d){let p=c[d],g=p.featureTable,m=e._sortedPropertyTableIds.indexOf(g),x=s[g].count,b=`featureId_${a}`;a++;let T;u(p.featureIds.attribute)?T=Lie(p,m,x,b):T=Fie(p,m,x,b),n.featureIds.push(T)}}let l=i.featureIdTextures;if(u(l)){let f=l.length;for(let d=0;d<f;++d){let p=l[d],g=p.featureTable,m=e._sortedPropertyTableIds.indexOf(g),x=s[g].count,b=`featureId_${a}`;a++;let T=Q3e(e,t,p,m,o,r,x,b);n.featureIds.push(T)}}}function oke(e,t){u(t)&&(u(t.propertyTextures)&&(e.propertyTextureIds=t.propertyTextures),u(t.propertyAttributes)&&(e.propertyAttributeIds=t.propertyAttributes))}function rke(e,t,n){u(n.featureTextures)&&(t.propertyTextureIds=n.featureTextures.map(function(i){return e._sortedFeatureTextureIds.indexOf(i)}))}function ske(e,t,n,i){let o=n.EXT_mesh_gpu_instancing,r=new f3e,s=o.attributes;if(u(s)){for(let f in s)if(s.hasOwnProperty(f)){let d=s[f];r.attributes.push(X3e(e,t,d,s,f,i))}}let a=y(o.extensions,y.EMPTY_OBJECT),c=n.EXT_instance_features,l=a.EXT_feature_metadata;return u(c)?ake(r,c):u(l)&&cke(t,r,l,e._sortedPropertyTableIds),r}function ake(e,t){let n=t.featureIds;for(let i=0;i<n.length;i++){let o=n[i],r=`instanceFeatureId_${i}`,s;u(o.attribute)?s=Mie(o,r):s=Nie(o,r),e.featureIds.push(s)}}function cke(e,t,n,i){let o=e.extensions.EXT_feature_metadata.featureTables,r=n.featureIdAttributes;if(u(r)){let s=r.length;for(let a=0;a<s;++a){let c=r[a],l=c.featureTable,f=i.indexOf(l),d=o[l].count,p=`instanceFeatureId_${a}`,g;u(c.featureIds.attribute)?g=Lie(c,f,d,p):g=Fie(c,f,d,p),t.featureIds.push(g)}}}function lke(e,t,n,i,o){let r=new h3e;r.name=n.name,r.matrix=cf(F,n.matrix),r.translation=cf(h,n.translation),r.rotation=cf(Le,n.rotation),r.scale=cf(h,n.scale);let s=y(n.extensions,y.EMPTY_OBJECT),a=s.EXT_mesh_gpu_instancing,c=s.AGI_articulations;if(u(a)){if(e._loadForClassification)throw new ue("Models with the EXT_mesh_gpu_instancing extension cannot be used for classification.");r.instances=ske(e,t,s,o)}u(c)&&(r.articulationName=c.articulationName);let l=n.mesh;if(u(l)){let f=t.meshes[l],d=f.primitives,p=d.length;for(let b=0;b<p;++b)r.primitives.push(eke(e,t,d[b],u(r.instances),i,o));let g=y(n.weights,f.weights),x=r.primitives[0].morphTargets.length;r.morphWeights=u(g)?g.slice():new Array(x).fill(0)}return r}function uke(e,t,n,i){if(!u(t.nodes))return[];let o,r,s=t.nodes.length,a=new Array(s);for(o=0;o<s;++o){let c=lke(e,t,t.nodes[o],n,i);c.index=o,a[o]=c}for(o=0;o<s;++o){let c=t.nodes[o].children;if(u(c)){let l=c.length;for(r=0;r<l;++r)a[o].children.push(a[c[r]])}}return a}function fke(e,t,n,i){let o=new d3e,r=n.joints,s=r.length,a=new Array(s);for(let l=0;l<s;++l)a[l]=i[r[l]];o.joints=a;let c=n.inverseBindMatrices;return u(c)?o.inverseBindMatrices=aU(e,t,c):o.inverseBindMatrices=new Array(s).fill(F.IDENTITY),o}function dke(e,t,n){let i=t.skins;if(e._loadForClassification||!u(i))return[];let o=t.skins.length,r=new Array(o);for(let a=0;a<o;++a){let c=fke(e,t,t.skins[a],n);c.index=a,r[a]=c}let s=n.length;for(let a=0;a<s;++a){let c=t.nodes[a].skin;u(c)&&(n[a].skin=r[c])}return r}async function hke(e,t,n,i,o,r){let s=new g1({gltf:t,extension:n,extensionLegacy:i,gltfResource:e._gltfResource,baseResource:e._baseResource,supportedImageFormats:o,frameState:r,asynchronous:e._asynchronous});return e._structuralMetadataLoader=s,s.load()}function mke(e,t,n){let i=new p3e,o=n.input;i.input=aU(e,t,o);let r=n.interpolation;i.interpolation=y(Od[r],Od.LINEAR);let s=n.output;return i.output=aU(e,t,s,!0),i}function pke(e,t){let n=new _3e,i=e.node;if(!u(i))return;n.node=t[i];let o=e.path.toUpperCase();return n.path=m3e[o],n}function _ke(e,t,n){let i=new g3e,o=e.sampler;return i.sampler=t[o],i.target=pke(e.target,n),i}function gke(e,t,n,i){let o,r=new y3e;r.name=n.name;let s=n.samplers,a=s.length,c=new Array(a);for(o=0;o<a;o++){let p=mke(e,t,s[o]);p.index=o,c[o]=p}let l=n.channels,f=l.length,d=new Array(f);for(o=0;o<f;o++)d[o]=_ke(l[o],c,i);return r.samplers=c,r.channels=d,r}function yke(e,t,n){let i=t.animations;if(e._loadForClassification||!u(i))return[];let o=t.animations.length,r=new Array(o);for(let s=0;s<o;++s){let a=gke(e,t,t.animations[s],n);a.index=s,r[s]=a}return r}function xke(e){let t=new x3e;t.name=e.name;let n=e.type.toUpperCase();return t.type=Qa[n],t.minimumValue=e.minimumValue,t.maximumValue=e.maximumValue,t.initialValue=e.initialValue,t}function bke(e){let t=new b3e;t.name=e.name;let n=e.stages,i=n.length,o=new Array(i);for(let r=0;r<i;r++){let s=xke(n[r]);o[r]=s}return t.stages=o,t}function Tke(e){let n=y(e.extensions,y.EMPTY_OBJECT).AGI_articulations;if(!u(n))return[];let i=n.articulations;if(!u(i))return[];let o=i.length,r=new Array(o);for(let s=0;s<o;s++){let a=bke(i[s]);r[s]=a}return r}function Ake(e){let t;return u(e.scenes)&&u(e.scene)&&(t=e.scenes[e.scene].nodes),t=y(t,e.nodes),t=u(t)?t:[],t}function Cke(e,t){let n=new A3e,i=Ake(e);return n.nodes=i.map(function(o){return t[o]}),n}var Eke=new h;function Ske(e,t,n,i){let o=y(t.extensions,y.EMPTY_OBJECT),r=o.EXT_structural_metadata,s=o.EXT_feature_metadata,a=o.CESIUM_RTC;if(u(s)){let T=s.featureTables,A=s.featureTextures,C=u(T)?T:[],S=u(A)?A:[];e._sortedPropertyTableIds=Object.keys(C).sort(),e._sortedFeatureTextureIds=Object.keys(S).sort()}let c=uke(e,t,n,i),l=dke(e,t,c),f=yke(e,t,c),d=Tke(t),p=Cke(t,c),g=new C3e,m=new T3e,x=t.asset.copyright;if(u(x)){let T=x.split(";").map(function(A){return new bt(A.trim())});m.credits=T}if(g.asset=m,g.scene=p,g.nodes=c,g.skins=l,g.animations=f,g.articulations=d,g.upAxis=e._upAxis,g.forwardAxis=e._forwardAxis,u(a)){let T=h.fromArray(a.center,0,Eke);g.transform=F.fromTranslation(T,g.transform)}if(e._components=g,u(r)||u(s)){let T=hke(e,t,r,s,n,i);e._loaderPromises.push(T)}let b=[];return b.push.apply(b,e._loaderPromises),e._incrementallyLoadTextures||b.push.apply(b,e._texturesPromises),Promise.all(b)}function wke(e){let t=e._textureLoaders,n=t.length;for(let i=0;i<n;++i)t[i]=!t[i].isDestroyed()&&Hi.unload(t[i]);e._textureLoaders.length=0}function Bie(e){let t=e._bufferViewLoaders,n=t.length;for(let i=0;i<n;++i)t[i]=!t[i].isDestroyed()&&Hi.unload(t[i]);e._bufferViewLoaders.length=0}function vke(e){let t=e._geometryLoaders,n=t.length;for(let i=0;i<n;++i)t[i]=!t[i].isDestroyed()&&Hi.unload(t[i]);e._geometryLoaders.length=0}function Dke(e){let t=e._postProcessBuffers,n=t.length;for(let i=0;i<n;i++){let o=t[i];o.isDestroyed()||o.destroy()}t.length=0}function Ike(e){u(e._structuralMetadataLoader)&&!e._structuralMetadataLoader.isDestroyed()&&(e._structuralMetadataLoader.destroy(),e._structuralMetadataLoader=void 0)}Rd.prototype.isUnloaded=function(){return this._state===Ro.UNLOADED};Rd.prototype.unload=function(){u(this._gltfJsonLoader)&&!this._gltfJsonLoader.isDestroyed()&&Hi.unload(this._gltfJsonLoader),this._gltfJsonLoader=void 0,wke(this),Bie(this),vke(this),Dke(this),Ike(this),this._components=void 0,this._typedArray=void 0,this._state=Ro.UNLOADED};var Lp=Rd;var x1=`uniform sampler2D u_pointCloud_colorGBuffer;
  5314. uniform sampler2D u_pointCloud_depthGBuffer;
  5315. uniform vec2 u_distanceAndEdlStrength;
  5316. in vec2 v_textureCoordinates;
  5317. vec2 neighborContribution(float log2Depth, vec2 offset)
  5318. {
  5319. float dist = u_distanceAndEdlStrength.x;
  5320. vec2 texCoordOrig = v_textureCoordinates + offset * dist;
  5321. vec2 texCoord0 = v_textureCoordinates + offset * floor(dist);
  5322. vec2 texCoord1 = v_textureCoordinates + offset * ceil(dist);
  5323. float depthOrLogDepth0 = czm_unpackDepth(texture(u_pointCloud_depthGBuffer, texCoord0));
  5324. float depthOrLogDepth1 = czm_unpackDepth(texture(u_pointCloud_depthGBuffer, texCoord1));
  5325. // ignore depth values that are the clear depth
  5326. if (depthOrLogDepth0 == 0.0 || depthOrLogDepth1 == 0.0) {
  5327. return vec2(0.0);
  5328. }
  5329. // interpolate the two adjacent depth values
  5330. float depthMix = mix(depthOrLogDepth0, depthOrLogDepth1, fract(dist));
  5331. vec4 eyeCoordinate = czm_windowToEyeCoordinates(texCoordOrig, depthMix);
  5332. return vec2(max(0.0, log2Depth - log2(-eyeCoordinate.z / eyeCoordinate.w)), 1.0);
  5333. }
  5334. void main()
  5335. {
  5336. float depthOrLogDepth = czm_unpackDepth(texture(u_pointCloud_depthGBuffer, v_textureCoordinates));
  5337. vec4 eyeCoordinate = czm_windowToEyeCoordinates(gl_FragCoord.xy, depthOrLogDepth);
  5338. eyeCoordinate /= eyeCoordinate.w;
  5339. float log2Depth = log2(-eyeCoordinate.z);
  5340. if (depthOrLogDepth == 0.0) // 0.0 is the clear value for the gbuffer
  5341. {
  5342. discard;
  5343. }
  5344. vec4 color = texture(u_pointCloud_colorGBuffer, v_textureCoordinates);
  5345. // sample from neighbors left, right, down, up
  5346. vec2 texelSize = 1.0 / czm_viewport.zw;
  5347. vec2 responseAndCount = vec2(0.0);
  5348. responseAndCount += neighborContribution(log2Depth, vec2(-texelSize.x, 0.0));
  5349. responseAndCount += neighborContribution(log2Depth, vec2(+texelSize.x, 0.0));
  5350. responseAndCount += neighborContribution(log2Depth, vec2(0.0, -texelSize.y));
  5351. responseAndCount += neighborContribution(log2Depth, vec2(0.0, +texelSize.y));
  5352. float response = responseAndCount.x / responseAndCount.y;
  5353. float strength = u_distanceAndEdlStrength.y;
  5354. float shade = exp(-response * 300.0 * strength);
  5355. color.rgb *= shade;
  5356. out_FragColor = vec4(color);
  5357. // Input and output depth are the same.
  5358. gl_FragDepth = depthOrLogDepth;
  5359. }
  5360. `;function YA(){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(YA.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 Pke(e){e._framebuffer.destroy(),e._drawCommand=void 0,e._clearCommand=void 0}var b6=new z;function Oke(e,t){let n=new Ue({defines:["LOG_DEPTH_WRITE"],sources:[x1]}),i={u_pointCloud_colorGBuffer:function(){return e.colorGBuffer},u_pointCloud_depthGBuffer:function(){return e.depthGBuffer},u_distanceAndEdlStrength:function(){return b6.x=e._radius,b6.y=e._strength,b6}},o=ke.fromCache({blending:un.ALPHA_BLEND,depthMask:!0,depthTest:{enabled:!0},stencilTest:Lt.setCesium3DTileBit(),stencilMask:Lt.CESIUM_3D_TILE_MASK});e._drawCommand=t.createViewportQuadCommand(n,{uniformMap:i,renderState:o,pass:Ee.CESIUM_3D_TILE,owner:e}),e._clearCommand=new ti({framebuffer:e.framebuffer,color:new H(0,0,0,0),depth:1,renderState:ke.fromCache(),pass:Ee.CESIUM_3D_TILE,owner:e})}function Rke(e,t){let n=t.drawingBufferWidth,i=t.drawingBufferHeight;e._framebuffer.update(t,n,i),Oke(e,t)}function kie(e){return e.drawBuffers&&e.fragmentDepth}YA.isSupported=kie;function Mke(e,t){let n=e.shaderCache.getDerivedShaderProgram(t,"EC");if(!u(n)){let i=t._attributeLocations,o=t.fragmentShaderSource.clone();o.sources.splice(0,0,`layout (location = 0) out vec4 out_FragData_0;
  5361. layout (location = 1) out vec4 out_FragData_1;`),o.sources=o.sources.map(function(r){return r=Ue.replaceMain(r,"czm_point_cloud_post_process_main"),r=r.replaceAll(/out_FragColor/g,"out_FragData_0"),r}),o.sources.push(`void main()
  5362. {
  5363. czm_point_cloud_post_process_main();
  5364. #ifdef LOG_DEPTH
  5365. czm_writeLogDepth();
  5366. out_FragData_1 = czm_packDepth(gl_FragDepth);
  5367. #else
  5368. out_FragData_1 = czm_packDepth(gl_FragCoord.z);
  5369. #endif
  5370. }`),n=e.shaderCache.createDerivedShaderProgram(t,"EC",{vertexShaderSource:t.vertexShaderSource,fragmentShaderSource:o,attributeLocations:i})}return n}YA.prototype.update=function(e,t,n,i){if(!kie(e.context))return;this._strength=n.eyeDomeLightingStrength,this._radius=n.eyeDomeLightingRadius*e.pixelRatio,Rke(this,e.context);let o,r=e.commandList,s=r.length;for(o=t;o<s;++o){let l=r[o];if(l.primitiveType!==Me.POINTS||l.pass===Ee.TRANSLUCENT)continue;let f,d,p=l.derivedCommands.pointCloudProcessor;u(p)&&(f=p.command,d=p.originalShaderProgram),(!u(f)||l.dirty||d!==l.shaderProgram||f.framebuffer!==this.framebuffer)&&(f=Je.shallowClone(l,f),f.framebuffer=this.framebuffer,f.shaderProgram=Mke(e.context,l.shaderProgram),f.castShadows=!1,f.receiveShadows=!1,u(p)||(p={command:f,originalShaderProgram:l.shaderProgram},l.derivedCommands.pointCloudProcessor=p),p.originalShaderProgram=l.shaderProgram),r[o]=f}let a=this._clearCommand,c=this._drawCommand;c.boundingVolume=i,r.push(c),r.push(a)};YA.prototype.isDestroyed=function(){return!1};YA.prototype.destroy=function(){return Pke(this),le(this)};var Np=YA;function Uie(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)}Uie.isSupported=function(e){return Np.isSupported(e.context)};var $h=Uie;var Ta={},Lke=new oe(0,0,0,1),ec=new oe,Nke=new We,T6=new z,A6=new z;Ta.wgs84ToWindowCoordinates=function(e,t,n){return Ta.wgs84WithEyeOffsetToWindowCoordinates(e,t,h.ZERO,n)};var Vie=new oe,zie=new h;function b1(e,t,n,i){let o=n.viewMatrix,r=F.multiplyByVector(o,oe.fromElements(e.x,e.y,e.z,1,Vie),Vie),s=h.multiplyComponents(t,h.normalize(r,zie),zie);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 Fke=new fe(Math.PI,P.PI_OVER_TWO),Bke=new h,kke=new h;Ta.wgs84WithEyeOffsetToWindowCoordinates=function(e,t,n,i){let o=e.frameState,r=Ta.computeActualWgs84Position(o,t,Lke);if(!u(r))return;let s=e.canvas,a=Nke;a.x=0,a.y=0,a.width=s.clientWidth,a.height=s.clientHeight;let c=e.camera,l=!1;if(o.mode===te.SCENE2D){let f=e.mapProjection,d=Fke,p=f.project(d,Bke),g=h.clone(c.position,kke),m=c.frustum.clone(),x=F.computeViewportTransformation(a,0,1,new F),b=c.frustum.projectionMatrix,T=c.positionWC.y,A=h.fromElements(P.sign(T)*p.x-T,0,-c.positionWC.x),C=Rt.pointToGLWindowCoordinates(b,x,A);if(T===0||C.x<=0||C.x>=s.clientWidth)l=!0;else{if(C.x>s.clientWidth*.5){a.width=C.x,c.frustum.right=p.x-T,ec=b1(r,n,c,ec),Ta.clipToGLWindowCoordinates(a,ec,T6),a.x+=C.x,c.position.x=-c.position.x;let S=c.frustum.right;c.frustum.right=-c.frustum.left,c.frustum.left=-S,ec=b1(r,n,c,ec),Ta.clipToGLWindowCoordinates(a,ec,A6)}else{a.x+=C.x,a.width-=C.x,c.frustum.left=-p.x-T,ec=b1(r,n,c,ec),Ta.clipToGLWindowCoordinates(a,ec,T6),a.x=a.x-a.width,c.position.x=-c.position.x;let S=c.frustum.left;c.frustum.left=-c.frustum.right,c.frustum.right=-S,ec=b1(r,n,c,ec),Ta.clipToGLWindowCoordinates(a,ec,A6)}h.clone(g,c.position),c.frustum=m.clone(),i=z.clone(T6,i),(i.x<0||i.x>s.clientWidth)&&(i.x=A6.x)}}if(o.mode!==te.SCENE2D||l){if(ec=b1(r,n,c,ec),ec.z<0&&!(c.frustum instanceof $t)&&!(c.frustum instanceof Cr))return;i=Ta.clipToGLWindowCoordinates(a,ec,i)}return i.y=s.clientHeight-i.y,i};Ta.wgs84ToDrawingBufferCoordinates=function(e,t,n){if(n=Ta.wgs84ToWindowCoordinates(e,t,n),!!u(n))return Ta.transformWindowToDrawingBuffer(e,n,n)};var Fp=new h,Uke=new fe;Ta.computeActualWgs84Position=function(e,t,n){let i=e.mode;if(i===te.SCENE3D)return h.clone(t,n);let o=e.mapProjection,r=o.ellipsoid.cartesianToCartographic(t,Uke);if(!u(r))return;if(o.project(r,Fp),i===te.COLUMBUS_VIEW)return h.fromElements(Fp.z,Fp.x,Fp.y,n);if(i===te.SCENE2D)return h.fromElements(0,Fp.x,Fp.y,n);let s=e.morphTime;return h.fromElements(P.lerp(Fp.z,t.x,s),P.lerp(Fp.x,t.y,s),P.lerp(Fp.y,t.z,s),n)};var Hie=new h,Gie=new h,Wie=new F;Ta.clipToGLWindowCoordinates=function(e,t,n){return h.divideByScalar(t,t.w,Hie),F.computeViewportTransformation(e,0,1,Wie),F.multiplyByPoint(Wie,Hie,Gie),z.fromCartesian3(Gie,n)};Ta.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 Vke=new oe,jie=new oe;Ta.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 l=e.view.passState.viewport,f=oe.clone(oe.UNIT_W,Vke);f.x=(t.x-l.x)/l.width*2-1,f.y=(t.y-l.y)/l.height*2-1,f.z=n*2-1,f.w=1;let d,p=e.camera.frustum;if(u(p.fovy)){d=F.multiplyByVector(r.inverseViewProjection,f,jie);let g=1/d.w;h.multiplyByScalar(d,g,d)}else{let g=p.offCenterFrustum;u(g)&&(p=g),d=jie,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 Xi=Ta;var zke={LEFT:-1,NONE:0,RIGHT:1},kc=Object.freeze(zke);var XA={};XA._deprecationWarning=Qr;var Bp=Uint32Array.BYTES_PER_ELEMENT;XA.parse=function(e,t){let n=y(t,0);t=n;let i=new Uint8Array(e),o=new DataView(e);t+=Bp;let r=o.getUint32(t,!0);if(r!==1)throw new ue(`Only Batched 3D Model version 1 is supported. Version ${r} is not.`);t+=Bp;let s=o.getUint32(t,!0);t+=Bp;let a=o.getUint32(t,!0);t+=Bp;let c=o.getUint32(t,!0);t+=Bp;let l=o.getUint32(t,!0);t+=Bp;let f=o.getUint32(t,!0);t+=Bp;let d;l>=570425344?(t-=Bp*2,d=a,l=c,f=0,a=0,c=0,XA._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-=Bp,d=l,l=a,f=c,a=0,c=0,XA._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=Oo(i,t,a),t+=a);let g=new Uint8Array(e,t,c);t+=c;let m,x;l>0&&(m=Oo(i,t,l),t+=l,f>0&&(x=new Uint8Array(e,t,f),x=new Uint8Array(x),t+=f));let b=n+s-t;if(b===0)throw new ue("glTF byte length must be greater than 0.");let T;return t%4===0?T=new Uint8Array(e,t,b):(XA._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 T1=XA;function A1(e,t){this.json=e,this.buffer=t,this._cachedTypedArrays={},this.featuresLength=0}function qie(e,t,n,i,o,r){let s=e._cachedTypedArrays,a=s[t];return u(a)||(a=X.createArrayBufferView(n,e.buffer.buffer,e.buffer.byteOffset+r,o*i),s[t]=a),a}function Hke(e,t,n,i){let o=e._cachedTypedArrays,r=o[t];return u(r)||(r=X.createTypedArray(n,i),o[t]=r),r}A1.prototype.getGlobalProperty=function(e,t,n){let i=this.json[e];if(u(i))return u(i.byteOffset)?(t=y(t,X.UNSIGNED_INT),n=y(n,1),qie(this,e,t,n,1,i.byteOffset)):i};A1.prototype.hasProperty=function(e){return u(this.json[e])};A1.prototype.getPropertyArray=function(e,t,n){let i=this.json[e];if(u(i))return u(i.byteOffset)?(u(i.componentType)&&(t=X.fromName(i.componentType)),qie(this,e,t,n,this.featuresLength,i.byteOffset)):Hke(this,e,t,i)};A1.prototype.getProperty=function(e,t,n,i,o){let r=this.json[e];if(!u(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 Md=A1;function C1(e){let t=e.count,n=e.batchTable,i=e.binaryBody,o=y(e.parseAsPropertyAttributes,!1),r=e.customAttributeOutput,s=Gke(n),a;u(s.jsonProperties)&&(a=new Rp({count:t,properties:s.jsonProperties}));let c;u(s.hierarchy)&&(c=new _x({extension:s.hierarchy,binaryBody:i}));let l=vd.BATCH_TABLE_CLASS_NAME,f=s.binaryProperties,d,p,g;if(o){let b=jke(t,l,f,i,r);g=b.transcodedSchema,p=[new Fx({propertyAttribute:b.propertyAttributeJson,class:b.transcodedClass})]}else{let b=Wke(t,l,f,i);g=b.transcodedSchema;let T=b.featureTableJson;d=new Tl({count:T.count,properties:T.properties,class:b.transcodedClass,bufferViews:b.bufferViewsTypedArrays}),p=[]}let m=[];if(u(d)||u(a)||u(c)){let b=new Bc({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 ba(x)}function Gke(e){let t=e.HIERARCHY,n=e.extras,i=e.extensions,o;u(t)?(C1._deprecationWarning("batchTableHierarchyExtension","The batch table HIERARCHY property has been moved to an extension. Use extensions.3DTILES_batch_table_hierarchy instead."),o=t):u(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=u(r)?r:{},r[a]=c):s[a]=c}return{binaryProperties:s,jsonProperties:r,hierarchy:o,extras:n,extensions:i}}function Wke(e,t,n,i){let o={},r={},s={},a=0;for(let d in n){if(!n.hasOwnProperty(d))continue;if(!u(i))throw new ue(`Property ${d} requires a batch table binary.`);let p=n[d],g=su(p);r[d]={bufferView:a},o[d]=Yie(p),s[a]=g.createArrayBufferView(i.buffer,i.byteOffset+p.byteOffset,e),a++}let c={classes:{}};c.classes[t]={properties:o};let l=Dd.fromJson(c);return{featureTableJson:{class:t,count:e,properties:r},bufferViewsTypedArrays:s,transcodedSchema:l,transcodedClass:l.classes[t]}}function jke(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(!u(i)&&!u(p.typedArray))throw new ue(`Property ${d} requires a batch table binary.`);let g=Jt.sanitizeGlslIdentifier(d);(g===""||r.hasOwnProperty(g))&&(g=`property_${a}`,a++);let m=Yie(p);m.name=d,r[g]=m;let x=g.toUpperCase();x.startsWith("_")||(x=`_${x}`);let b=p.typedArray;u(b)||(b=su(p).createArrayBufferView(i.buffer,i.byteOffset+p.byteOffset,e));let T=new Mt.Attribute;T.name=x,T.count=e,T.type=p.type;let A=X.fromTypedArray(b);(A===X.INT||A===X.UNSIGNED_INT||A===X.DOUBLE)&&(C1._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 l=Dd.fromJson(c);return{class:t,propertyAttributeJson:{properties:s},transcodedSchema:l,transcodedClass:l.classes[t]}}function Yie(e){let t=qke(e.componentType);return{type:e.type,componentType:t}}function qke(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"}}C1._deprecationWarning=Qr;C1._oneTimeWarning=Dt;var kp=C1;var Ux={UNLOADED:0,LOADING:1,PROCESSING:2,READY:3,FAILED:4},Yke=Mt.FeatureIdAttribute;function kg(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,Po.Y),l=y(e.forwardAxis,Po.X),f=y(e.loadAttributesAsTypedArray,!1),d=y(e.loadAttributesFor2D,!1),p=y(e.loadIndicesForWireframe,!1),g=y(e.loadPrimitiveOutline,!0),m=y(e.loadForClassification,!1);n=u(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=l,this._loadAttributesAsTypedArray=f,this._loadAttributesFor2D=d,this._loadIndicesForWireframe=p,this._loadPrimitiveOutline=g,this._loadForClassification=m,this._state=Ux.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}u(Object.create)&&(kg.prototype=Object.create(io.prototype),kg.prototype.constructor=kg);Object.defineProperties(kg.prototype,{texturesLoaded:{get:function(){return this._gltfLoader?.texturesLoaded}},cacheKey:{get:function(){}},components:{get:function(){return this._components}}});kg.prototype.load=function(){if(u(this._promise))return this._promise;let e=T1.parse(this._arrayBuffer,this._byteOffset),t=e.batchLength,n=e.featureTableJson,i=e.featureTableBinary,o=e.batchTableJson,r=e.batchTableBinary,s=new Md(n,i);t=s.getGlobalProperty("BATCH_LENGTH"),this._batchLength=t;let a=s.getGlobalProperty("RTC_CENTER",X.FLOAT,3);u(a)&&(this._transform=F.fromTranslation(h.fromArray(a))),this._batchTable={json:o,binary:r};let c=new Lp({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,loadIndicesForWireframe:this._loadIndicesForWireframe,loadPrimitiveOutline:this._loadPrimitiveOutline,loadForClassification:this._loadForClassification,renameBatchIdSemantic:!0});this._gltfLoader=c,this._state=Ux.LOADING;let l=this;return this._promise=c.load().then(function(){if(!l.isDestroyed())return l._state=Ux.PROCESSING,l}).catch(function(f){if(!l.isDestroyed())return Xke(l,f)}),this._promise};function Xke(e,t){e.unload(),e._state=Ux.FAILED;let n="Failed to load b3dm";return t=e.getError(n,t),Promise.reject(t)}kg.prototype.process=function(e){if(this._state===Ux.READY)return!0;if(this._state!==Ux.PROCESSING||!this._gltfLoader.process(e))return!1;let n=this._gltfLoader.components;return n.transform=F.multiplyTransformation(this._transform,n.transform,n.transform),Kke(this,n),this._components=n,this._arrayBuffer=void 0,this._state=Ux.READY,!0};function Kke(e,t){let n=e._batchTable,i=e._batchLength;if(i===0)return;let o;if(u(n.json))o=kp({count:i,batchTable:n.json,binaryBody:n.binary});else{let a=new Bc({name:vd.BATCH_TABLE_CLASS_NAME,count:i});o=new ba({schema:{},propertyTables:[a]})}let r=t.scene.nodes,s=r.length;for(let a=0;a<s;a++)Xie(r[a]);t.structuralMetadata=o}function Xie(e){let t=e.children.length;for(let i=0;i<t;i++)Xie(e.children[i]);let n=e.primitives.length;for(let i=0;i<n;i++){let o=e.primitives[i],r=Jt.getAttributeBySemantic(o,Tt.FEATURE_ID);if(u(r)){r.setIndex=0;let s=new Yke;s.propertyTableId=0,s.setIndex=0,s.positionalLabel="featureId_0",o.featureIds.push(s)}}}kg.prototype.unload=function(){u(this._gltfLoader)&&!this._gltfLoader.isDestroyed()&&this._gltfLoader.unload(),this._components=void 0,this._arrayBuffer=void 0};var E1=kg;function Ug(e){e=y(e,y.EMPTY_OBJECT),this._geoJson=e.geoJson,this._components=void 0}u(Object.create)&&(Ug.prototype=Object.create(io.prototype),Ug.prototype.constructor=Ug);Object.defineProperties(Ug.prototype,{cacheKey:{get:function(){}},components:{get:function(){return this._components}}});Ug.prototype.load=function(){return Promise.resolve(this)};Ug.prototype.process=function(e){return u(this._components)||(this._components=cUe(this._geoJson,e),this._geoJson=void 0),!0};function Zke(){this.lines=void 0,this.points=void 0,this.properties=void 0}function $ke(){this.features=[]}function C6(e){let t=e[0],n=e[1],i=y(e[2],0);return new h(t,n,i)}function E6(e){let t=e.length,n=new Array(t);for(let o=0;o<t;o++)n[o]=C6(e[o]);return[n]}function Qke(e){let t=e.length,n=new Array(t);for(let i=0;i<t;i++)n[i]=E6(e[i])[0];return n}function Kie(e){let t=e.length,n=new Array(t);for(let i=0;i<t;i++)n[i]=E6(e[i])[0];return n}function Jke(e){let t=e.length,n=[];for(let i=0;i<t;i++)Array.prototype.push.apply(n,Kie(e[i]));return n}function eUe(e){return[C6(e)]}function tUe(e){let t=e.length,n=new Array(t);for(let i=0;i<t;i++)n[i]=C6(e[i]);return n}var nUe={LineString:E6,MultiLineString:Qke,MultiPolygon:Jke,Polygon:Kie,MultiPoint:tUe,Point:eUe},iUe={LineString:Me.LINES,MultiLineString:Me.LINES,MultiPolygon:Me.LINES,Polygon:Me.LINES,MultiPoint:Me.POINTS,Point:Me.POINTS};function Zie(e,t){if(!u(e.geometry))return;let n=e.geometry.type,i=nUe[n],o=iUe[n],r=e.geometry.coordinates;if(!u(i)||!u(r))return;let s=new Zke;o===Me.LINES?s.lines=i(r):o===Me.POINTS&&(s.points=i(r)),s.properties=e.properties,t.features.push(s)}function oUe(e,t){let n=e.features,i=n.length;for(let o=0;o<i;o++)Zie(n[o],t)}var rUe={FeatureCollection:oUe,Feature:Zie},cU=new h;function sUe(e,t,n){let i=0,o=0,r=e.length;for(let L=0;L<r;L++){let N=e[L];if(u(N.lines)){let _=N.lines.length;for(let E=0;E<_;E++){let v=N.lines[E];i+=v.length,o+=(v.length-1)*2}}}let s=new Float32Array(i*3),a=new Float32Array(i),c=Fe.createTypedArray(i,o),l=Fe.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(!u(N.lines))continue;let _=N.lines.length;for(let E=0;E<_;E++){let v=N.lines[E],I=v.length;for(let M=0;M<I;M++){let B=v[M],V=h.fromDegrees(B.x,B.y,B.z,ie.WGS84,cU),U=F.multiplyByPoint(t,V,cU);h.minimumByComponent(f,U,f),h.maximumByComponent(d,U,d),h.pack(U,s,p*3),a[p]=L,M<I-1&&(c[g*2]=p,c[g*2+1]=p+1,g++),p++}}}let m=ct.createVertexBuffer({typedArray:s,context:n.context,usage:Ne.STATIC_DRAW});m.vertexArrayDestroyable=!1;let x=ct.createVertexBuffer({typedArray:a,context:n.context,usage:Ne.STATIC_DRAW});x.vertexArrayDestroyable=!1;let b=ct.createIndexBuffer({typedArray:c,context:n.context,usage:Ne.STATIC_DRAW,indexDatatype:l});b.vertexArrayDestroyable=!1;let T=new Mt.Attribute;T.semantic=Tt.POSITION,T.componentDatatype=X.FLOAT,T.type=on.VEC3,T.count=i,T.min=f,T.max=d,T.buffer=m;let A=new Mt.Attribute;A.semantic=Tt.FEATURE_ID,A.setIndex=0,A.componentDatatype=X.FLOAT,A.type=on.SCALAR,A.count=i,A.buffer=x;let C=[T,A],S=new Mt.Material;S.unlit=!0;let w=new Mt.Indices;w.indexDatatype=l,w.count=c.length,w.buffer=b;let D=new Mt.FeatureIdAttribute;D.featureCount=r,D.propertyTableId=0,D.setIndex=0,D.positionalLabel="featureId_0";let O=[D],R=new Mt.Primitive;return R.attributes=C,R.indices=w,R.featureIds=O,R.primitiveType=Me.LINES,R.material=S,R}function aUe(e,t,n){let i=0,o=e.length;for(let C=0;C<o;C++){let S=e[C];u(S.points)&&(i+=S.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),l=0;for(let C=0;C<o;C++){let S=e[C];if(!u(S.points))continue;let w=S.points.length;for(let D=0;D<w;D++){let O=S.points[D],R=h.fromDegrees(O.x,O.y,O.z,ie.WGS84,cU),L=F.multiplyByPoint(t,R,cU);h.minimumByComponent(a,L,a),h.maximumByComponent(c,L,c),h.pack(L,r,l*3),s[l]=C,l++}}let f=ct.createVertexBuffer({typedArray:r,context:n.context,usage:Ne.STATIC_DRAW});f.vertexArrayDestroyable=!1;let d=ct.createVertexBuffer({typedArray:s,context:n.context,usage:Ne.STATIC_DRAW});d.vertexArrayDestroyable=!1;let p=new Mt.Attribute;p.semantic=Tt.POSITION,p.componentDatatype=X.FLOAT,p.type=on.VEC3,p.count=i,p.min=a,p.max=c,p.buffer=f;let g=new Mt.Attribute;g.semantic=Tt.FEATURE_ID,g.setIndex=0,g.componentDatatype=X.FLOAT,g.type=on.SCALAR,g.count=i,g.buffer=d;let m=[p,g],x=new Mt.Material;x.unlit=!0;let b=new Mt.FeatureIdAttribute;b.featureCount=o,b.propertyTableId=0,b.setIndex=0,b.positionalLabel="featureId_0";let T=[b],A=new Mt.Primitive;return A.attributes=m,A.featureIds=T,A.primitiveType=Me.POINTS,A.material=x,A}function cUe(e,t){let n=new $ke,i=rUe[e.type];u(i)&&i(e,n);let o=n.features,r=o.length;if(r===0)throw new ue("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 E in _)_.hasOwnProperty(E)&&(u(s[E])||(s[E]=new Array(r)))}for(let L=0;L<r;L++){let N=o[L];for(let _ in s)if(s.hasOwnProperty(_)){let E=y(N.properties[_],"");s[_][L]=E}}let a=new Rp({count:r,properties:s}),l=[new Bc({id:0,count:r,jsonMetadataTable:a})],f=Dd.fromJson({}),d=new ba({schema:f,propertyTables:l}),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(u(N.lines)){m=!0;let _=N.lines.length;for(let E=0;E<_;E++){let v=N.lines[E],I=v.length;for(let M=0;M<I;M++)h.minimumByComponent(p,v[M],p),h.maximumByComponent(g,v[M],g)}}if(u(N.points)){x=!0;let _=N.points.length;for(let E=0;E<_;E++){let v=N.points[E];h.minimumByComponent(p,v,p),h.maximumByComponent(g,v,g)}}}let b=h.midpoint(p,g,new h),T=h.fromDegrees(b.x,b.y,b.z,ie.WGS84,new h),A=Rt.eastNorthUpToFixedFrame(T,ie.WGS84,new F),C=F.inverseTransformation(A,new F),S=[];m&&S.push(sUe(o,C,t)),x&&S.push(aUe(o,C,t));let w=new Mt.Node;w.index=0,w.primitives=S;let D=[w],O=new Mt.Scene;O.nodes=D;let R=new Mt.Components;return R.scene=O,R.nodes=D,R.transform=A,R.structuralMetadata=d,R}Ug.prototype.unload=function(){this._components=void 0};var S1=Ug;var lU={};lU._deprecationWarning=Qr;var Vg=Uint32Array.BYTES_PER_ELEMENT;lU.parse=function(e,t){let n=y(t,0);t=n;let i=new Uint8Array(e),o=new DataView(e);t+=Vg;let r=o.getUint32(t,!0);if(r!==1)throw new ue(`Only Instanced 3D Model version 1 is supported. Version ${r} is not.`);t+=Vg;let s=o.getUint32(t,!0);t+=Vg;let a=o.getUint32(t,!0);if(a===0)throw new ue("featureTableJsonByteLength is zero, the feature table must be defined.");t+=Vg;let c=o.getUint32(t,!0);t+=Vg;let l=o.getUint32(t,!0);t+=Vg;let f=o.getUint32(t,!0);t+=Vg;let d=o.getUint32(t,!0);if(d!==1&&d!==0)throw new ue(`Only glTF format 0 (uri) or 1 (embedded) are supported. Format ${d} is not.`);t+=Vg;let p=Oo(i,t,a);t+=a;let g=new Uint8Array(e,t,c);t+=c;let m,x;l>0&&(m=Oo(i,t,l),t+=l,f>0&&(x=new Uint8Array(e,t,f),x=new Uint8Array(x),t+=f));let b=n+s-t;if(b===0)throw new ue("glTF byte length must be greater than 0.");let T;return t%4===0?T=new Uint8Array(e,t,b):(lU._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 w1=lU;var Up={NOT_LOADED:0,LOADING:1,PROCESSING:2,POST_PROCESSING:3,READY:4,FAILED:5,UNLOADED:6},uU=Mt.Attribute,lUe=Mt.FeatureIdAttribute,Qie=Mt.Instances;function Vp(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,Po.Y),l=y(e.forwardAxis,Po.X),f=y(e.loadAttributesAsTypedArray,!1),d=y(e.loadIndicesForWireframe,!1),p=y(e.loadPrimitiveOutline,!0);i=u(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=l,this._loadAttributesAsTypedArray=f,this._loadIndicesForWireframe=d,this._loadPrimitiveOutline=p,this._state=Up.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}u(Object.create)&&(Vp.prototype=Object.create(io.prototype),Vp.prototype.constructor=Vp);Object.defineProperties(Vp.prototype,{texturesLoaded:{get:function(){return this._gltfLoader?.texturesLoaded}},cacheKey:{get:function(){}},components:{get:function(){return this._components}}});Vp.prototype.load=function(){if(u(this._promise))return this._promise;let e=w1.parse(this._arrayBuffer,this._byteOffset),t=e.featureTableJson,n=e.featureTableBinary,i=e.batchTableJson,o=e.batchTableBinary,r=e.gltfFormat,s=new Md(t,n);this._featureTable=s;let a=s.getGlobalProperty("INSTANCES_LENGTH");if(s.featuresLength=a,!u(a))throw new ue("Feature table global property: INSTANCES_LENGTH must be defined");this._instancesLength=a;let c=s.getGlobalProperty("RTC_CENTER",X.FLOAT,3);u(c)&&(this._transform=F.fromTranslation(h.fromArray(c))),this._batchTable={json:i,binary:o};let l={upAxis:this._upAxis,forwardAxis:this._forwardAxis,releaseGltfJson:this._releaseGltfJson,incrementallyLoadTextures:this._incrementallyLoadTextures,loadAttributesAsTypedArray:this._loadAttributesAsTypedArray,loadIndicesForWireframe:this._loadIndicesForWireframe,loadPrimitiveOutline:this._loadPrimitiveOutline};if(r===0){let d=yl(e.gltf);d=d.replace(/[\s\0]+$/,"");let p=this._baseResource.getDerivedResource({url:d});l.gltfResource=p,l.baseResource=p}else l.gltfResource=this._i3dmResource,l.typedArray=e.gltf;let f=new Lp(l);return this._gltfLoader=f,this._state=Up.LOADING,this._promise=f.load().then(()=>{if(!this.isDestroyed())return this._state=Up.PROCESSING,this}).catch(d=>{if(!this.isDestroyed())throw uUe(this,d)}),this._promise};function uUe(e,t){e.unload(),e._state=Up.FAILED;let n="Failed to load i3dm";return e.getError(n,t)}Vp.prototype.process=function(e){if(this._state===Up.READY)return!0;let t=this._gltfLoader,n=!1;if(this._state===Up.PROCESSING&&(n=t.process(e)),!n)return!1;let i=t.components;return i.transform=F.multiplyTransformation(this._transform,i.transform,i.transform),hUe(this,i,e),fUe(this,i),this._components=i,this._arrayBuffer=void 0,this._state=Up.READY,!0};function fUe(e,t){let n=e._batchTable,i=e._instancesLength;if(i===0)return;let o;if(u(n.json))o=kp({count:i,batchTable:n.json,binaryBody:n.binary});else{let r=new Bc({name:vd.BATCH_TABLE_CLASS_NAME,count:i});o=new ba({schema:{},propertyTables:[r]})}t.structuralMetadata=o}var fU=new h,S6=new Array(4),dUe=new F;function hUe(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,l=o.hasProperty("SCALE")||o.hasProperty("SCALE_NON_UNIFORM"),f=pUe(o,r),d;c&&(d=new Float32Array(4*r));let p;l&&(p=new Float32Array(3*r));let g=new Float32Array(r),m=h.unpackArray(f),x=new h,b=new h,T=new h,A=new h,C=new Q,S=new Le,w=new Array(4),D=new h,O=new Array(3),R=new F;if(!u(s)||h.equals(h.unpack(s),h.ZERO)){let U=se.fromPoints(m);for(i=0;i<m.length;i++)h.subtract(m[i],U.center,fU),f[3*i+0]=fU.x,f[3*i+1]=fU.y,f[3*i+2]=fU.z;let G=F.fromTranslation(U.center,dUe);t.transform=F.multiplyTransformation(G,t.transform,t.transform)}for(i=0;i<r;i++){x=h.clone(m[i]),u(s)&&h.add(x,h.unpack(s),x),c&&(_Ue(o,a,i,S,x,T,b,A,C,R),Le.pack(S,w,0),d[4*i+0]=w[0],d[4*i+1]=w[1],d[4*i+2]=w[2],d[4*i+3]=w[3]),l&&(gUe(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 U=o.getProperty("BATCH_ID",X.UNSIGNED_SHORT,1,i);u(U)||(U=i),g[i]=U}let L=new Qie;L.transformInWorldSpace=!0;let N=e._buffers,_=new uU;if(_.name="Instance Translation",_.semantic=Wr.TRANSLATION,_.componentDatatype=X.FLOAT,_.type=on.VEC3,_.count=r,_.typedArray=f,!c){let U=ct.createVertexBuffer({context:n.context,typedArray:f,usage:Ne.STATIC_DRAW});U.vertexArrayDestroyable=!1,N.push(U),_.buffer=U}if(L.attributes.push(_),c){let U=new uU;U.name="Instance Rotation",U.semantic=Wr.ROTATION,U.componentDatatype=X.FLOAT,U.type=on.VEC4,U.count=r,U.typedArray=d,L.attributes.push(U)}if(l){let U=new uU;if(U.name="Instance Scale",U.semantic=Wr.SCALE,U.componentDatatype=X.FLOAT,U.type=on.VEC3,U.count=r,c)U.typedArray=p;else{let G=ct.createVertexBuffer({context:n.context,typedArray:p,usage:Ne.STATIC_DRAW});G.vertexArrayDestroyable=!1,N.push(G),U.buffer=G}L.attributes.push(U)}let E=new uU;E.name="Instance Feature ID",E.setIndex=0,E.semantic=Wr.FEATURE_ID,E.componentDatatype=X.FLOAT,E.type=on.SCALAR,E.count=r;let v=ct.createVertexBuffer({context:n.context,typedArray:g,usage:Ne.STATIC_DRAW});v.vertexArrayDestroyable=!1,N.push(v),E.buffer=v,L.attributes.push(E);let I=new lUe;I.propertyTableId=0,I.setIndex=0,I.positionalLabel="instanceFeatureId_0",L.featureIds.push(I);let M=t.nodes,B=M.length,V=!1;for(i=0;i<B;i++){let U=M[i];U.primitives.length>0&&(U.instances=V?mUe(L):L,V=!0)}}function mUe(e){let t=new Qie;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 pUe(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(!u(i))throw new ue("Global property: QUANTIZED_VOLUME_OFFSET must be defined for quantized positions.");let o=e.getGlobalProperty("QUANTIZED_VOLUME_SCALE",X.FLOAT,3);if(!u(o))throw new ue("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 ue("Either POSITION or POSITION_QUANTIZED must be defined for each instance.")}var $ie=new Array(4);function _Ue(e,t,n,i,o,r,s,a,c,l){let f=e.getProperty("NORMAL_UP",X.FLOAT,3,n,S6),d=e.getProperty("NORMAL_RIGHT",X.FLOAT,3,n,$ie),p=!1;if(u(f)){if(!u(d))throw new ue("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,S6),m=e.getProperty("NORMAL_RIGHT_OCT32P",X.UNSIGNED_SHORT,2,n,$ie);if(u(g)){if(!u(m))throw new ue("To define a custom orientation with oct-encoded vectors, both NORMAL_UP_OCT32P and NORMAL_RIGHT_OCT32P must be defined.");qn.octDecodeInRange(g[0],g[1],65535,r),qn.octDecodeInRange(m[0],m[1],65535,s),p=!0}else t?(Rt.eastNorthUpToFixedFrame(o,ie.WGS84,l),F.getMatrix3(l,c)):Q.clone(Q.IDENTITY,c)}p&&(h.cross(s,r,a),h.normalize(a,a),Q.setColumn(c,0,s,c),Q.setColumn(c,1,r,c),Q.setColumn(c,2,a,c)),Le.fromRotationMatrix(c,i)}function gUe(e,t,n){n=h.fromElements(1,1,1,n);let i=e.getProperty("SCALE",X.FLOAT,1,t);u(i)&&h.multiplyByScalar(n,i,n);let o=e.getProperty("SCALE_NON_UNIFORM",X.FLOAT,3,t,S6);u(o)&&(n.x*=o[0],n.y*=o[1],n.z*=o[2])}function yUe(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}Vp.prototype.isUnloaded=function(){return this._state===Up.UNLOADED};Vp.prototype.unload=function(){u(this._gltfLoader)&&!this._gltfLoader.isDestroyed()&&this._gltfLoader.unload(),yUe(this),this._components=void 0,this._arrayBuffer=void 0,this._state=Up.UNLOADED};var v1=Vp;var xUe={STOPPED:0,ANIMATING:1},Ld=Object.freeze(xUe);function KA(){this.times=void 0,this.points=void 0,de.throwInstantiationError()}KA.getPointType=function(e){if(typeof e=="number")return Number;if(e instanceof h)return h;if(e instanceof Le)return Le};KA.prototype.evaluate=de.throwInstantiationError;KA.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};KA.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};KA.prototype.clampTime=function(e){let t=this.times;return P.clamp(e,t[0],t[t.length-1])};var oo=KA;function ZA(e){this._value=e,this._valueType=oo.getPointType(e)}Object.defineProperties(ZA.prototype,{value:{get:function(){return this._value}}});ZA.prototype.findTimeInterval=function(e){};ZA.prototype.wrapTime=function(e){return 0};ZA.prototype.clampTime=function(e){return 0};ZA.prototype.evaluate=function(e,t){let n=this._value,i=this._valueType;return i===Number?n:i.clone(n,t)};var D1=ZA;function $A(e){e=y(e,y.EMPTY_OBJECT);let t=e.points,n=e.times;this._times=n,this._points=t,this._pointType=oo.getPointType(t[0]),this._lastTimeIndex=0}Object.defineProperties($A.prototype,{times:{get:function(){return this._times}},points:{get:function(){return this._points}}});$A.prototype.findTimeInterval=oo.prototype.findTimeInterval;$A.prototype.wrapTime=oo.prototype.wrapTime;$A.prototype.clampTime=oo.prototype.clampTime;$A.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]:(u(t)||(t=new h),h.lerp(n[o],n[o+1],r,t))};var zg=$A;var Jie={};Jie.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 QA=Jie;var eoe=[],toe=[],noe=[],ioe=[];function bUe(e,t,n){let i=eoe,o=noe,r=toe,s=ioe;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(u(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],u(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],u(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],u(c)||(c=s[a+1]=new h),h.clone(n,c),QA.solve(i,r,o,s)}function TUe(e){let t=eoe,n=noe,i=toe,o=ioe;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(u(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],u(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],u(s)||(s=o[r]=new h),h.subtract(e[r],e[r-1],s),h.multiplyByScalar(s,3,s),QA.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=oo.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 zg({points:n,times:t});let i=TUe(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=oo.getPointType(n[0]);if(n.length<3)return new zg({points:n,times:t});let s=bUe(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=oo.prototype.findTimeInterval;var AUe=new oe,JA=new h;vl.prototype.wrapTime=oo.prototype.wrapTime;vl.prototype.clampTime=oo.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,l=AUe;l.z=c,l.y=c*c,l.x=l.y*c,l.w=1;let f=F.multiplyByVector(vl.hermiteCoefficientMatrix,l,l);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:(u(t)||(t=new d),t=d.multiplyByScalar(n[s],f.x,t),d.multiplyByScalar(n[s+1],f.y,JA),d.add(t,JA,t),d.multiplyByScalar(r[s],f.z,JA),d.add(t,JA,t),d.multiplyByScalar(o[s],f.w,JA),d.add(t,JA,t))};var Hg=vl;function eC(e){e=y(e,y.EMPTY_OBJECT);let t=e.points,n=e.times;this._times=n,this._points=t,this._pointType=oo.getPointType(t[0]),this._lastTimeIndex=0}Object.defineProperties(eC.prototype,{times:{get:function(){return this._times}},points:{get:function(){return this._points}}});eC.prototype.findTimeInterval=oo.prototype.findTimeInterval;eC.prototype.wrapTime=oo.prototype.wrapTime;eC.prototype.clampTime=oo.prototype.clampTime;eC.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]:(u(t)||(t=new o),o.clone(n[i],t))};var I1=eC;function CUe(e){let t=e.points,n=e.times;return function(i,o){u(o)||(o=new Le);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 Le.fastSlerp(a,c,s,o)}}function tC(e){e=y(e,y.EMPTY_OBJECT);let t=e.points,n=e.times;this._times=n,this._points=t,this._evaluateFunction=CUe(this),this._lastTimeIndex=0}Object.defineProperties(tC.prototype,{times:{get:function(){return this._times}},points:{get:function(){return this._points}}});tC.prototype.findTimeInterval=oo.prototype.findTimeInterval;tC.prototype.wrapTime=oo.prototype.wrapTime;tC.prototype.clampTime=oo.prototype.clampTime;tC.prototype.evaluate=function(e,t){return this._evaluateFunction(e,t)};var P1=tC;var Vx=Mt.AnimatedPropertyType;function v6(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,wUe(this)}Object.defineProperties(v6.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 EUe(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 Hg({times:e,points:n,inTangents:i,outTangents:o})}function ooe(e,t,n,i){if(e.length===1&&t.length===1)return new D1(t[0]);switch(n){case Od.STEP:return new I1({times:e,points:t});case Od.CUBICSPLINE:return EUe(e,t);case Od.LINEAR:return i===Vx.ROTATION?new P1({times:e,points:t}):new zg({times:e,points:t})}}function SUe(e,t,n,i,o){let r=[];if(i===Vx.WEIGHTS){let a=t.length/o,c,l;for(c=0;c<o;c++){let f=new Array(a),d=c;if(n===Od.CUBICSPLINE)for(l=0;l<a;l+=3)f[l]=t[d],f[l+1]=t[d+o],f[l+2]=t[d+2*o],d+=o*3;else for(l=0;l<a;l++)f[l]=t[d],d+=o;r.push(ooe(e,f,n,i))}}else r.push(ooe(e,t,n,i));return r}var w6;function wUe(e){let t=e._channel,n=t.sampler,i=n.input,o=n.output,r=n.interpolation,a=t.target.path,c=e._runtimeNode,l=u(c.morphWeights)?c.morphWeights.length:1,f=SUe(i,o,r,a,l);switch(e._splines=f,e._path=a,a){case Vx.TRANSLATION:case Vx.SCALE:w6=new h;break;case Vx.ROTATION:w6=new Le;break;case Vx.WEIGHTS:break}}v6.prototype.animate=function(e){let t=this._splines,n=this._path,i=this._runtimeAnimation.model,o=this._runtimeNode;if(n===Vx.WEIGHTS){let r=o.morphWeights,s=r.length;for(let a=0;a<s;a++){let c=t[a],l=i.clampAnimations?c.clampTime(e):c.wrapTime(e);r[a]=c.evaluate(l)}}else{if(o.userAnimated)return;{let r=t[0],s=i.clampAnimations?r.clampTime(e):r.wrapTime(e);o[n]=r.evaluate(s,w6)}}};var O1=v6;function D6(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,wl.NONE),this._animationTime=n.animationTime,this._prevAnimationDelta=void 0,this.start=new pe,this.update=new pe,this.stop=new pe,this._state=Ld.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,vUe(this)}Object.defineProperties(D6.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 vUe(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 l=r[c],f=l.target;if(!u(f))continue;let d=f.node.index,p=i._runtimeNodes[d],g=new O1({channel:l,runtimeAnimation:e,runtimeNode:p}),m=l.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}D6.prototype.animate=function(e){let t=this._runtimeChannels,n=t.length;for(let i=0;i<n;i++)t[i].animate(e)};var R1=D6;function zp(e){this.animationAdded=new pe,this.animationRemoved=new pe,this.animateWhilePaused=!1,this._model=e,this._runtimeAnimations=[],this._previousTime=void 0}Object.defineProperties(zp.prototype,{length:{get:function(){return this._runtimeAnimations.length}},model:{get:function(){return this._model}}});function I6(e,t,n){let i=e._model,o=new R1(i,t,n);return e._runtimeAnimations.push(o),e.animationAdded.raiseEvent(i,o),o}zp.prototype.add=function(e){e=y(e,y.EMPTY_OBJECT);let n=this._model.sceneGraph.components.animations,i=e.index;if(u(i))return I6(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 I6(this,n[i],e)};zp.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=I6(this,n[r],e);i.push(s)}return i};zp.prototype.remove=function(e){if(!u(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};zp.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])};zp.prototype.contains=function(e){return u(e)?this._runtimeAnimations.indexOf(e)!==-1:!1};zp.prototype.get=function(e){return this._runtimeAnimations[e]};var dU=[];function DUe(e,t,n){return function(){e.animationRemoved.raiseEvent(t,n)}}zp.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];u(a._computedStartTime)||(a._computedStartTime=J.addSeconds(y(a.startTime,o),a.delay,new J)),u(a._duration)||(a._duration=a.localStopTime*(1/a.multiplier));let c=a._computedStartTime,l=a._duration,f=a.stopTime,d=J.lessThanOrEquals(c,o),p=u(f)&&J.greaterThan(o,f),g=0;if(l!==0){let b=J.secondsDifference(p?f:o,c);g=u(a._animationTime)?a._animationTime(l,b):b/l}let m=a.loop===wl.REPEAT||a.loop===wl.MIRRORED_REPEAT,x=(d||m&&!u(a.startTime))&&(g<=1||m)&&!p;if(g===a._prevAnimationDelta){let b=a._state===Ld.STOPPED;if(x!==b)continue}if(a._prevAnimationDelta=g,x||a._state===Ld.ANIMATING){if(x&&a._state===Ld.STOPPED&&(a._state=Ld.ANIMATING,a.start.numberOfListeners>0&&e.afterRender.push(a._raiseStartEvent)),a.loop===wl.REPEAT)g=g-Math.floor(g);else if(a.loop===wl.MIRRORED_REPEAT){let T=Math.floor(g),A=g-T;g=T%2===1?1-A:A}a.reverse&&(g=1-g);let b=g*l*a.multiplier;b=P.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=Ld.STOPPED,a.stop.numberOfListeners>0&&e.afterRender.push(a._raiseStopEvent),a.removeOnStop&&dU.push(a))}}n=dU.length;for(let s=0;s<n;++s){let a=dU[s];t.splice(t.indexOf(a),1),e.afterRender.push(DUe(this,r,a))}return dU.length=0,i};var M1=zp;function zx(e){this._model=e.model,this._featureTable=e.featureTable,this._featureId=e.featureId,this._color=void 0}Object.defineProperties(zx.prototype,{show:{get:function(){return this._featureTable.getShow(this._featureId)},set:function(e){this._featureTable.setShow(this._featureId,e)}},color:{get:function(){return u(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}}});zx.prototype.hasProperty=function(e){return this._featureTable.hasProperty(this._featureId,e)};zx.prototype.getProperty=function(e){return this._featureTable.getProperty(this._featureId,e)};zx.prototype.getPropertyInherited=function(e){return this._featureTable.hasPropertyBySemantic(this._featureId,e)?this._featureTable.getPropertyBySemantic(this._featureId,e):this._featureTable.getProperty(this._featureId,e)};zx.prototype.getPropertyIds=function(e){return this._featureTable.getPropertyIds(e)};zx.prototype.setProperty=function(e,t){return this._featureTable.setProperty(this._featureId,e,t)};var L1=zx;var N1={ALL_OPAQUE:0,ALL_TRANSLUCENT:1,OPAQUE_AND_TRANSLUCENT:2};N1.getStyleCommandsNeeded=function(e,t){return t===0?N1.ALL_OPAQUE:t===e?N1.ALL_TRANSLUCENT:N1.OPAQUE_AND_TRANSLUCENT};var Nd=Object.freeze(N1);var Gg={GLTF:"GLTF",TILE_GLTF:"TILE_GLTF",TILE_B3DM:"B3DM",TILE_I3DM:"I3DM",TILE_PNTS:"PNTS",TILE_GEOJSON:"TILE_GEOJSON"};Gg.is3DTiles=function(e){switch(e){case Gg.TILE_GLTF:case Gg.TILE_B3DM:case Gg.TILE_I3DM:case Gg.TILE_PNTS:case Gg.TILE_GEOJSON:return!0;case Gg.GLTF:return!1}};var or=Object.freeze(Gg);function vr(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=Nd.ALL_OPAQUE,IUe(this)}Object.defineProperties(vr.prototype,{batchTexture:{get:function(){return this._batchTexture}},featuresLength:{get:function(){return this._featuresLength}},batchTextureByteLength:{get:function(){return u(this._batchTexture)?this._batchTexture.byteLength:0}},styleCommandsNeededDirty:{get:function(){return this._styleCommandsNeededDirty}}});function IUe(e){let t=e._model,n=or.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 ws(s,o)}else for(o=0;o<i;o++)r[o]=new L1({model:t,featureId:o,featureTable:e});e._features=r,e._featuresLength=i,e._batchTexture=new Fc({featuresLength:i,owner:e,statistics:n?t.content.tileset.statistics:void 0})}vr.prototype.update=function(e){this._styleCommandsNeededDirty=!1,this._batchTexture.update(void 0,e);let t=Nd.getStyleCommandsNeeded(this._featuresLength,this._batchTexture.translucentFeaturesLength);this._styleCommandsNeeded!==t&&(this._styleCommandsNeededDirty=!0,this._styleCommandsNeeded=t)};vr.prototype.setShow=function(e,t){this._batchTexture.setShow(e,t)};vr.prototype.setAllShow=function(e){this._batchTexture.setAllShow(e)};vr.prototype.getShow=function(e){return this._batchTexture.getShow(e)};vr.prototype.setColor=function(e,t){this._batchTexture.setColor(e,t)};vr.prototype.setAllColor=function(e){this._batchTexture.setAllColor(e)};vr.prototype.getColor=function(e,t){return this._batchTexture.getColor(e,t)};vr.prototype.getPickColor=function(e){return this._batchTexture.getPickColor(e)};vr.prototype.getFeature=function(e){return this._features[e]};vr.prototype.hasProperty=function(e,t){return this._propertyTable.hasProperty(e,t)};vr.prototype.hasPropertyBySemantic=function(e,t){return this._propertyTable.hasPropertyBySemantic(e,t)};vr.prototype.getProperty=function(e,t){return this._propertyTable.getProperty(e,t)};vr.prototype.getPropertyBySemantic=function(e,t){return this._propertyTable.getPropertyBySemantic(e,t)};vr.prototype.getPropertyIds=function(e){return this._propertyTable.getPropertyIds(e)};vr.prototype.setProperty=function(e,t,n){return this._propertyTable.setProperty(e,t,n)};vr.prototype.isClass=function(e,t){return this._propertyTable.isClass(e,t)};vr.prototype.isExactClass=function(e,t){return this._propertyTable.isExactClass(e,t)};vr.prototype.getExactClassName=function(e){return this._propertyTable.getExactClassName(e)};var PUe=new H;vr.prototype.applyStyle=function(e){if(!u(e)){this.setAllColor(Fc.DEFAULT_COLOR_VALUE),this.setAllShow(Fc.DEFAULT_SHOW_VALUE);return}for(let t=0;t<this._featuresLength;t++){let n=this.getFeature(t),i=u(e.color)?y(e.color.evaluateColor(n,PUe),Fc.DEFAULT_COLOR_VALUE):Fc.DEFAULT_COLOR_VALUE,o=u(e.show)?y(e.show.evaluate(n),Fc.DEFAULT_SHOW_VALUE):Fc.DEFAULT_SHOW_VALUE;this.setColor(t,i),this.setShow(t,o)}};vr.prototype.isDestroyed=function(){return!1};vr.prototype.destroy=function(e){this._batchTexture=this._batchTexture&&this._batchTexture.destroy(),le(this)};var F1=vr;var B1=`czm_modelMaterial defaultModelMaterial()
  5371. {
  5372. czm_modelMaterial material;
  5373. material.diffuse = vec3(0.0);
  5374. material.specular = vec3(1.0);
  5375. material.roughness = 1.0;
  5376. material.occlusion = 1.0;
  5377. material.normalEC = vec3(0.0, 0.0, 1.0);
  5378. material.emissive = vec3(0.0);
  5379. material.alpha = 1.0;
  5380. return material;
  5381. }
  5382. vec4 handleAlpha(vec3 color, float alpha)
  5383. {
  5384. #ifdef ALPHA_MODE_MASK
  5385. if (alpha < u_alphaCutoff) {
  5386. discard;
  5387. }
  5388. #endif
  5389. return vec4(color, alpha);
  5390. }
  5391. SelectedFeature selectedFeature;
  5392. void main()
  5393. {
  5394. #ifdef HAS_MODEL_SPLITTER
  5395. modelSplitterStage();
  5396. #endif
  5397. czm_modelMaterial material = defaultModelMaterial();
  5398. ProcessedAttributes attributes;
  5399. geometryStage(attributes);
  5400. FeatureIds featureIds;
  5401. featureIdStage(featureIds, attributes);
  5402. Metadata metadata;
  5403. MetadataClass metadataClass;
  5404. MetadataStatistics metadataStatistics;
  5405. metadataStage(metadata, metadataClass, metadataStatistics, attributes);
  5406. #ifdef HAS_SELECTED_FEATURE_ID
  5407. selectedFeatureIdStage(selectedFeature, featureIds);
  5408. #endif
  5409. #ifndef CUSTOM_SHADER_REPLACE_MATERIAL
  5410. materialStage(material, attributes, selectedFeature);
  5411. #endif
  5412. #ifdef HAS_CUSTOM_FRAGMENT_SHADER
  5413. customShaderStage(material, attributes, featureIds, metadata, metadataClass, metadataStatistics);
  5414. #endif
  5415. lightingStage(material, attributes);
  5416. #ifdef HAS_SELECTED_FEATURE_ID
  5417. cpuStylingStage(material, selectedFeature);
  5418. #endif
  5419. #ifdef HAS_MODEL_COLOR
  5420. modelColorStage(material);
  5421. #endif
  5422. #ifdef HAS_PRIMITIVE_OUTLINE
  5423. primitiveOutlineStage(material);
  5424. #endif
  5425. vec4 color = handleAlpha(material.diffuse, material.alpha);
  5426. #ifdef HAS_CLIPPING_PLANES
  5427. modelClippingPlanesStage(color);
  5428. #endif
  5429. #if defined(HAS_SILHOUETTE) && defined(HAS_NORMALS)
  5430. silhouetteStage(color);
  5431. #endif
  5432. out_FragColor = color;
  5433. }
  5434. `;var k1=`precision highp float;
  5435. czm_modelVertexOutput defaultVertexOutput(vec3 positionMC) {
  5436. czm_modelVertexOutput vsOutput;
  5437. vsOutput.positionMC = positionMC;
  5438. vsOutput.pointSize = 1.0;
  5439. return vsOutput;
  5440. }
  5441. void main()
  5442. {
  5443. // Initialize the attributes struct with all
  5444. // attributes except quantized ones.
  5445. ProcessedAttributes attributes;
  5446. initializeAttributes(attributes);
  5447. // Dequantize the quantized ones and add them to the
  5448. // attributes struct.
  5449. #ifdef USE_DEQUANTIZATION
  5450. dequantizationStage(attributes);
  5451. #endif
  5452. #ifdef HAS_MORPH_TARGETS
  5453. morphTargetsStage(attributes);
  5454. #endif
  5455. #ifdef HAS_SKINNING
  5456. skinningStage(attributes);
  5457. #endif
  5458. #ifdef HAS_PRIMITIVE_OUTLINE
  5459. primitiveOutlineStage();
  5460. #endif
  5461. // Compute the bitangent according to the formula in the glTF spec.
  5462. // Normal and tangents can be affected by morphing and skinning, so
  5463. // the bitangent should not be computed until their values are finalized.
  5464. #ifdef HAS_BITANGENTS
  5465. attributes.bitangentMC = normalize(cross(attributes.normalMC, attributes.tangentMC) * attributes.tangentSignMC);
  5466. #endif
  5467. FeatureIds featureIds;
  5468. featureIdStage(featureIds, attributes);
  5469. #ifdef HAS_SELECTED_FEATURE_ID
  5470. SelectedFeature feature;
  5471. selectedFeatureIdStage(feature, featureIds);
  5472. // Handle any show properties that come from the style.
  5473. cpuStylingStage(attributes.positionMC, feature);
  5474. #endif
  5475. #if defined(USE_2D_POSITIONS) || defined(USE_2D_INSTANCING)
  5476. // The scene mode 2D pipeline stage and instancing stage add a different
  5477. // model view matrix to accurately project the model to 2D. However, the
  5478. // output positions and normals should be transformed by the 3D matrices
  5479. // to keep the data the same for the fragment shader.
  5480. mat4 modelView = czm_modelView3D;
  5481. mat3 normal = czm_normal3D;
  5482. #else
  5483. // These are used for individual model projection because they will
  5484. // automatically change based on the scene mode.
  5485. mat4 modelView = czm_modelView;
  5486. mat3 normal = czm_normal;
  5487. #endif
  5488. // Update the position for this instance in place
  5489. #ifdef HAS_INSTANCING
  5490. // The legacy instance stage is used when rendering i3dm models that
  5491. // encode instances transforms in world space, as opposed to glTF models
  5492. // that use EXT_mesh_gpu_instancing, where instance transforms are encoded
  5493. // in object space.
  5494. #ifdef USE_LEGACY_INSTANCING
  5495. mat4 instanceModelView;
  5496. mat3 instanceModelViewInverseTranspose;
  5497. legacyInstancingStage(attributes, instanceModelView, instanceModelViewInverseTranspose);
  5498. modelView = instanceModelView;
  5499. normal = instanceModelViewInverseTranspose;
  5500. #else
  5501. instancingStage(attributes);
  5502. #endif
  5503. #ifdef USE_PICKING
  5504. v_pickColor = a_pickColor;
  5505. #endif
  5506. #endif
  5507. Metadata metadata;
  5508. MetadataClass metadataClass;
  5509. MetadataStatistics metadataStatistics;
  5510. metadataStage(metadata, metadataClass, metadataStatistics, attributes);
  5511. #ifdef HAS_CUSTOM_VERTEX_SHADER
  5512. czm_modelVertexOutput vsOutput = defaultVertexOutput(attributes.positionMC);
  5513. customShaderStage(vsOutput, attributes, featureIds, metadata, metadataClass, metadataStatistics);
  5514. #endif
  5515. // Compute the final position in each coordinate system needed.
  5516. // This returns the value that will be assigned to gl_Position.
  5517. vec4 positionClip = geometryStage(attributes, modelView, normal);
  5518. #ifdef HAS_SILHOUETTE
  5519. silhouetteStage(attributes, positionClip);
  5520. #endif
  5521. #ifdef HAS_POINT_CLOUD_SHOW_STYLE
  5522. float show = pointCloudShowStylingStage(attributes, metadata);
  5523. #else
  5524. float show = 1.0;
  5525. #endif
  5526. #ifdef HAS_POINT_CLOUD_BACK_FACE_CULLING
  5527. show *= pointCloudBackFaceCullingStage();
  5528. #endif
  5529. #ifdef HAS_POINT_CLOUD_COLOR_STYLE
  5530. v_pointCloudColor = pointCloudColorStylingStage(attributes, metadata);
  5531. #endif
  5532. #ifdef PRIMITIVE_TYPE_POINTS
  5533. #ifdef HAS_CUSTOM_VERTEX_SHADER
  5534. gl_PointSize = vsOutput.pointSize;
  5535. #elif defined(HAS_POINT_CLOUD_POINT_SIZE_STYLE) || defined(HAS_POINT_CLOUD_ATTENUATION)
  5536. gl_PointSize = pointCloudPointSizeStylingStage(attributes, metadata);
  5537. #else
  5538. gl_PointSize = 1.0;
  5539. #endif
  5540. gl_PointSize *= show;
  5541. #endif
  5542. gl_Position = show * positionClip;
  5543. }
  5544. `;function O6(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=[],LUe(this)}function OUe(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:Lt.CESIUM_3D_TILE_MASK,mask:Lt.CESIUM_3D_TILE_MASK},stencilMask:Lt.CLASSIFICATION_MASK,depthTest:{enabled:!0,func:ja.LESS_OR_EQUAL},depthMask:!1}}var RUe={stencilTest:{enabled:!0,frontFunction:zn.NOT_EQUAL,frontOperation:{fail:lt.ZERO,zFail:lt.ZERO,zPass:lt.ZERO},backFunction:zn.NOT_EQUAL,backOperation:{fail:lt.ZERO,zFail:lt.ZERO,zPass:lt.ZERO},reference:0,mask:Lt.CLASSIFICATION_MASK},stencilMask:Lt.CLASSIFICATION_MASK,depthTest:{enabled:!1},depthMask:!1,blending:un.PRE_MULTIPLIED_ALPHA_BLEND},MUe={stencilTest:{enabled:!0,frontFunction:zn.NOT_EQUAL,frontOperation:{fail:lt.ZERO,zFail:lt.ZERO,zPass:lt.ZERO},backFunction:zn.NOT_EQUAL,backOperation:{fail:lt.ZERO,zFail:lt.ZERO,zPass:lt.ZERO},reference:0,mask:Lt.CLASSIFICATION_MASK},stencilMask:Lt.CLASSIFICATION_MASK,depthTest:{enabled:!1},depthMask:!1},aoe=[];function LUe(e){let t=e._command,n=aoe;if(e._useDebugWireframe){t.pass=Ee.OPAQUE,n.length=0,n.push(t),e._commandListDebugWireframe=U1(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=P6(t,r),a=roe(t,r);n.length=0,n.push(s,a),e._commandListTerrain=U1(e,n,e._commandListTerrain),o&&(e._commandListTerrainPicking=soe(e,n,e._commandListTerrainPicking))}if(e._classifies3DTiles){let r=Ee.CESIUM_3D_TILE_CLASSIFICATION,s=P6(t,r),a=roe(t,r);n.length=0,n.push(s,a),e._commandList3DTiles=U1(e,n,e._commandList3DTiles),o&&(e._commandList3DTilesPicking=soe(e,n,e._commandList3DTilesPicking))}}function U1(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 l=o[c],f=r[c];for(let d=0;d<a;d++){let p=t[d],g=Je.shallowClone(p);g.count=l,g.offset=f,n.push(g)}}return n}function P6(e,t){let n=Je.shallowClone(e);n.cull=!1,n.pass=t;let i=t===Ee.TERRAIN_CLASSIFICATION?zn.ALWAYS:zn.EQUAL,o=OUe(i);return n.renderState=ke.fromCache(o),n}function roe(e,t){let n=Je.shallowClone(e);return n.cull=!1,n.pass=t,n.renderState=ke.fromCache(RUe),n}var NUe=[];function soe(e,t,n){let i=ke.fromCache(MUe),o=t[0],r=t[1],s=Je.shallowClone(o);s.cull=!0,s.pickOnly=!0;let a=Je.shallowClone(r);a.cull=!0,a.pickOnly=!0,a.renderState=i,a.pickId=e._pickId;let c=NUe;return c.length=0,c.push(s,a),U1(e,c,n)}Object.defineProperties(O6.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=se.transform(t,this._modelMatrix,this._boundingVolume)}},boundingVolume:{get:function(){return this._boundingVolume}},cullFace:{get:function(){return this._cullFace},set:function(e){this._cullFace=e}}});O6.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=P6(this._command,o),s=aoe;s.length=0,s.push(r),this._commandListIgnoreShow=U1(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 V1=O6;function hU(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,l=!r&&!c,f=n.hasSkipLevelOfDetail&&!r,d=c;this._command=t,this._modelMatrix=F.clone(t.modelMatrix),this._boundingVolume=se.clone(t.boundingVolume),this._modelMatrix2D=new F,this._boundingVolume2D=new se,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=l,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,FUe(this)}function Hp(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}Hp.clone=function(e){return new Hp({command:e.command,updateShadows:e.updateShadows,updateBackFaceCulling:e.updateBackFaceCulling,updateCullFace:e.updateCullFace,updateDebugShowBoundingVolume:e.updateDebugShowBoundingVolume,is2D:e.is2D,derivedCommand2D:e.derivedCommand2D})};function FUe(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 Hp({command:t,updateShadows:!0,updateBackFaceCulling:i,updateCullFace:i,updateDebugShowBoundingVolume:!0,is2D:!1}),o.push(e._originalCommand),e._needsTranslucentCommand&&(e._translucentCommand=new Hp({command:GUe(t),updateShadows:!0,updateBackFaceCulling:!1,updateCullFace:!1,updateDebugShowBoundingVolume:!0}),o.push(e._translucentCommand)),e._needsSkipLevelOfDetailCommands&&(e._skipLodBackfaceCommand=new Hp({command:KUe(t),updateShadows:!1,updateBackFaceCulling:!1,updateCullFace:i,updateDebugShowBoundingVolume:!1}),e._skipLodStencilCommand=new Hp({command:ZUe(t,n),updateShadows:!0,updateBackFaceCulling:i,updateCullFace:i,updateDebugShowBoundingVolume:!0}),o.push(e._skipLodBackfaceCommand),o.push(e._skipLodStencilCommand)),e._needsSilhouetteCommands&&(e._silhouetteModelCommand=new Hp({command:WUe(t,n),updateShadows:!0,updateBackFaceCulling:i,updateCullFace:i,updateDebugShowBoundingVolume:!0}),e._silhouetteColorCommand=new Hp({command:jUe(t,n),updateShadows:!1,updateBackFaceCulling:!1,updateCullFace:!1,updateDebugShowBoundingVolume:!1}),o.push(e._silhouetteModelCommand),o.push(e._silhouetteColorCommand))}Object.defineProperties(hU.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=se.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,kUe(this)}},backFaceCulling:{get:function(){return this._backFaceCulling},set:function(e){this._backFaceCulling!==e&&(this._backFaceCulling=e,UUe(this))}},cullFace:{get:function(){return this._cullFace},set:function(e){this._cullFace!==e&&(this._cullFace=e,VUe(this))}},debugShowBoundingVolume:{get:function(){return this._debugShowBoundingVolume},set:function(e){this._debugShowBoundingVolume!==e&&(this._debugShowBoundingVolume=e,zUe(this))}}});function BUe(e,t){let n=e._modelMatrix;e._modelMatrix2D=F.clone(n,e._modelMatrix2D),e._modelMatrix2D[13]-=P.sign(n[13])*2*P.PI*t.mapProjection.ellipsoid.maximumRadius,e._boundingVolume2D=se.transform(e.runtimePrimitive.boundingSphere,e._modelMatrix2D,e._boundingVolume2D)}function kUe(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 UUe(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=ke.fromCache(s)}}}function VUe(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=ke.fromCache(s)}}}function zUe(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}}}hU.prototype.pushCommands=function(e,t){let n=coe(this,e);n&&!this._has2DCommands&&(HUe(this),this._has2DCommands=!0,this._modelMatrix2DDirty=!0),this._modelMatrix2DDirty&&(BUe(this,e),this._modelMatrix2DDirty=!1);let i=this.model.styleCommandsNeeded;if(!(this._needsTranslucentCommand&&u(i)&&(i!==Nd.ALL_OPAQUE&&iC(t,this._translucentCommand,n),i===Nd.ALL_TRANSLUCENT))){if(this._needsSkipLevelOfDetailCommands){let{tileset:o,tile:r}=this._model.content;if(o.hasMixedContent){r._finalResolution||iC(o._backfaceCommands,this._skipLodBackfaceCommand,n),qUe(this,r,n),iC(t,this._skipLodStencilCommand,n);return}}if(this._needsSilhouetteCommands){iC(t,this._silhouetteModelCommand,n);return}return iC(t,this._originalCommand,n),t}};hU.prototype.pushSilhouetteCommands=function(e,t){let n=coe(this,e);return iC(t,this._silhouetteColorCommand,n),t};function iC(e,t,n){e.push(t.command),n&&e.push(t.derivedCommand2D.command)}function coe(e,t){if(t.mode!==te.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*P.PI;return o<s&&r>s||o<-s&&r>-s}function nC(e,t){if(!u(t))return;let n=Hp.clone(t),i=Je.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 HUe(e){nC(e,e._originalCommand),nC(e,e._translucentCommand),nC(e,e._skipLodBackfaceCommand),nC(e,e._skipLodStencilCommand),nC(e,e._silhouetteModelCommand),nC(e,e._silhouetteColorCommand)}function GUe(e){let t=Je.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=ke.fromCache(n),t}function WUe(e,t){let n=t._silhouetteId%255,i=Je.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=ke.fromCache(o),i}function jUe(e,t){let n=t._silhouetteId%255,i=Je.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=ke.fromCache(o),i.uniformMap=s,i.castShadows=!1,i.receiveShadows=!1,i}function qUe(e,t,n){let i=e._skipLodStencilCommand,o=i.command,r=t._selectionDepth,s=YUe(o);if(r!==s){let a=XUe(r),c=He(o.renderState,!0);c.stencilTest.reference=a,o.renderState=ke.fromCache(c),n&&(i.derivedCommand2D.renderState=c)}}function YUe(e){return(e.renderState.stencilTest.reference&Lt.SKIP_LOD_MASK)>>>Lt.SKIP_LOD_BIT_SHIFT}function XUe(e){return Lt.CESIUM_3D_TILE_MASK|e<<Lt.SKIP_LOD_BIT_SHIFT}function KUe(e){let t=Je.shallowClone(e),n=He(e.renderState,!0);n.cull.enabled=!0,n.cull.face=pi.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=ke.fromCache(n),t.uniformMap=i,t.castShadows=!1,t.receiveShadows=!1,t}function ZUe(e){let t=Je.shallowClone(e),n=He(e.renderState,!0),{stencilTest:i}=n;return i.enabled=!0,i.mask=Lt.SKIP_LOD_MASK,i.reference=Lt.CESIUM_3D_TILE_MASK,i.frontFunction=zn.GREATER_OR_EQUAL,i.frontOperation.zPass=lt.REPLACE,i.backFunction=zn.GREATER_OR_EQUAL,i.backOperation.zPass=lt.REPLACE,n.stencilMask=Lt.CESIUM_3D_TILE_MASK|Lt.SKIP_LOD_MASK,t.renderState=ke.fromCache(n),t}var z1=hU;function $Ue(e,t){let n=e.shaderBuilder;n.addVertexLines(k1),n.addFragmentLines(B1);let i=QUe(e),o=new ni({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,l=t.mode===te.SCENE3D,f,d;if(!l&&!t.scene3DOnly&&r._projectTo2D)f=F.multiplyTransformation(c._computedModelMatrix,e.runtimeNode.computedTransform,new F),d=e.runtimePrimitive.boundingSphere2D;else{let A=l?c._computedModelMatrix:c._computedModelMatrix2D;f=F.multiplyTransformation(A,e.runtimeNode.computedTransform,new F),d=se.transform(e.boundingSphere,f,e.boundingSphere)}let p=He(ke.fromCache(e.renderStateOptions),!0);p.cull.face=Jt.getCullFace(f,e.primitiveType),p=ke.fromCache(p);let g=u(r.classificationType),m=g?!1:yn.castShadows(r.shadows),x=g?!1:yn.receiveShadows(r.shadows),b=g?void 0:e.pickId,T=new Je({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 V1({primitiveRenderResources:e,command:T}):new z1({primitiveRenderResources:e,command:T})}function QUe(e){let t=e.wireframeIndexBuffer;if(u(t))return t;let n=e.indices;if(u(n))return n.buffer}var H1=$Ue;var loe={name:"TilesetPipelineStage"};loe.process=function(e,t,n){if(t.hasSkipLevelOfDetail(n)){e.shaderBuilder.addDefine("POLYGON_OFFSET",void 0,Ce.FRAGMENT);let r={u_polygonOffset:function(){return z.ZERO}};e.uniformMap=gt(r,e.uniformMap),e.hasSkipLevelOfDetail=!0}let i=e.renderStateOptions;i.stencilTest=Lt.setCesium3DTileBit(),i.stencilMask=Lt.CESIUM_3D_TILE_MASK};var G1=loe;var W1=`vec3 proceduralIBL(
  5545. vec3 positionEC,
  5546. vec3 normalEC,
  5547. vec3 lightDirectionEC,
  5548. vec3 lightColorHdr,
  5549. czm_pbrParameters pbrParameters
  5550. ) {
  5551. vec3 v = -positionEC;
  5552. vec3 positionWC = vec3(czm_inverseView * vec4(positionEC, 1.0));
  5553. vec3 vWC = -normalize(positionWC);
  5554. vec3 l = normalize(lightDirectionEC);
  5555. vec3 n = normalEC;
  5556. vec3 r = normalize(czm_inverseViewRotation * normalize(reflect(v, n)));
  5557. float NdotL = clamp(dot(n, l), 0.001, 1.0);
  5558. float NdotV = abs(dot(n, v)) + 0.001;
  5559. // Figure out if the reflection vector hits the ellipsoid
  5560. float vertexRadius = length(positionWC);
  5561. float horizonDotNadir = 1.0 - min(1.0, czm_ellipsoidRadii.x / vertexRadius);
  5562. float reflectionDotNadir = dot(r, normalize(positionWC));
  5563. // Flipping the X vector is a cheap way to get the inverse of czm_temeToPseudoFixed, since that's a rotation about Z.
  5564. r.x = -r.x;
  5565. r = -normalize(czm_temeToPseudoFixed * r);
  5566. r.x = -r.x;
  5567. vec3 diffuseColor = pbrParameters.diffuseColor;
  5568. float roughness = pbrParameters.roughness;
  5569. vec3 specularColor = pbrParameters.f0;
  5570. float inverseRoughness = 1.04 - roughness;
  5571. inverseRoughness *= inverseRoughness;
  5572. vec3 sceneSkyBox = czm_textureCube(czm_environmentMap, r).rgb * inverseRoughness;
  5573. float atmosphereHeight = 0.05;
  5574. float blendRegionSize = 0.1 * ((1.0 - inverseRoughness) * 8.0 + 1.1 - horizonDotNadir);
  5575. float blendRegionOffset = roughness * -1.0;
  5576. float farAboveHorizon = clamp(horizonDotNadir - blendRegionSize * 0.5 + blendRegionOffset, 1.0e-10 - blendRegionSize, 0.99999);
  5577. float aroundHorizon = clamp(horizonDotNadir + blendRegionSize * 0.5, 1.0e-10 - blendRegionSize, 0.99999);
  5578. float farBelowHorizon = clamp(horizonDotNadir + blendRegionSize * 1.5, 1.0e-10 - blendRegionSize, 0.99999);
  5579. float smoothstepHeight = smoothstep(0.0, atmosphereHeight, horizonDotNadir);
  5580. vec3 belowHorizonColor = mix(vec3(0.1, 0.15, 0.25), vec3(0.4, 0.7, 0.9), smoothstepHeight);
  5581. vec3 nadirColor = belowHorizonColor * 0.5;
  5582. vec3 aboveHorizonColor = mix(vec3(0.9, 1.0, 1.2), belowHorizonColor, roughness * 0.5);
  5583. vec3 blueSkyColor = mix(vec3(0.18, 0.26, 0.48), aboveHorizonColor, reflectionDotNadir * inverseRoughness * 0.5 + 0.75);
  5584. vec3 zenithColor = mix(blueSkyColor, sceneSkyBox, smoothstepHeight);
  5585. vec3 blueSkyDiffuseColor = vec3(0.7, 0.85, 0.9);
  5586. float diffuseIrradianceFromEarth = (1.0 - horizonDotNadir) * (reflectionDotNadir * 0.25 + 0.75) * smoothstepHeight;
  5587. float diffuseIrradianceFromSky = (1.0 - smoothstepHeight) * (1.0 - (reflectionDotNadir * 0.25 + 0.25));
  5588. vec3 diffuseIrradiance = blueSkyDiffuseColor * clamp(diffuseIrradianceFromEarth + diffuseIrradianceFromSky, 0.0, 1.0);
  5589. float notDistantRough = (1.0 - horizonDotNadir * roughness * 0.8);
  5590. vec3 specularIrradiance = mix(zenithColor, aboveHorizonColor, smoothstep(farAboveHorizon, aroundHorizon, reflectionDotNadir) * notDistantRough);
  5591. specularIrradiance = mix(specularIrradiance, belowHorizonColor, smoothstep(aroundHorizon, farBelowHorizon, reflectionDotNadir) * inverseRoughness);
  5592. specularIrradiance = mix(specularIrradiance, nadirColor, smoothstep(farBelowHorizon, 1.0, reflectionDotNadir) * inverseRoughness);
  5593. // Luminance model from page 40 of http://silviojemma.com/public/papers/lighting/spherical-harmonic-lighting.pdf
  5594. #ifdef USE_SUN_LUMINANCE
  5595. // Angle between sun and zenith
  5596. float LdotZenith = clamp(dot(normalize(czm_inverseViewRotation * l), vWC), 0.001, 1.0);
  5597. float S = acos(LdotZenith);
  5598. // Angle between zenith and current pixel
  5599. float NdotZenith = clamp(dot(normalize(czm_inverseViewRotation * n), vWC), 0.001, 1.0);
  5600. // Angle between sun and current pixel
  5601. float gamma = acos(NdotL);
  5602. float numerator = ((0.91 + 10.0 * exp(-3.0 * gamma) + 0.45 * pow(NdotL, 2.0)) * (1.0 - exp(-0.32 / NdotZenith)));
  5603. float denominator = (0.91 + 10.0 * exp(-3.0 * S) + 0.45 * pow(LdotZenith,2.0)) * (1.0 - exp(-0.32));
  5604. float luminance = model_luminanceAtZenith * (numerator / denominator);
  5605. #endif
  5606. vec2 brdfLut = texture(czm_brdfLut, vec2(NdotV, roughness)).rg;
  5607. vec3 iblColor = (diffuseIrradiance * diffuseColor * model_iblFactor.x) + (specularIrradiance * czm_srgbToLinear(specularColor * brdfLut.x + brdfLut.y) * model_iblFactor.y);
  5608. float maximumComponent = max(max(lightColorHdr.x, lightColorHdr.y), lightColorHdr.z);
  5609. vec3 lightColor = lightColorHdr / max(maximumComponent, 1.0);
  5610. iblColor *= lightColor;
  5611. #ifdef USE_SUN_LUMINANCE
  5612. iblColor *= luminance;
  5613. #endif
  5614. return iblColor;
  5615. }
  5616. #if defined(DIFFUSE_IBL) || defined(SPECULAR_IBL)
  5617. vec3 textureIBL(
  5618. vec3 positionEC,
  5619. vec3 normalEC,
  5620. vec3 lightDirectionEC,
  5621. czm_pbrParameters pbrParameters
  5622. ) {
  5623. vec3 diffuseColor = pbrParameters.diffuseColor;
  5624. float roughness = pbrParameters.roughness;
  5625. vec3 specularColor = pbrParameters.f0;
  5626. vec3 v = -positionEC;
  5627. vec3 n = normalEC;
  5628. vec3 l = normalize(lightDirectionEC);
  5629. vec3 h = normalize(v + l);
  5630. float NdotV = abs(dot(n, v)) + 0.001;
  5631. float VdotH = clamp(dot(v, h), 0.0, 1.0);
  5632. const mat3 yUpToZUp = mat3(
  5633. -1.0, 0.0, 0.0,
  5634. 0.0, 0.0, -1.0,
  5635. 0.0, 1.0, 0.0
  5636. );
  5637. vec3 cubeDir = normalize(yUpToZUp * model_iblReferenceFrameMatrix * normalize(reflect(-v, n)));
  5638. #ifdef DIFFUSE_IBL
  5639. #ifdef CUSTOM_SPHERICAL_HARMONICS
  5640. vec3 diffuseIrradiance = czm_sphericalHarmonics(cubeDir, model_sphericalHarmonicCoefficients);
  5641. #else
  5642. vec3 diffuseIrradiance = czm_sphericalHarmonics(cubeDir, czm_sphericalHarmonicCoefficients);
  5643. #endif
  5644. #else
  5645. vec3 diffuseIrradiance = vec3(0.0);
  5646. #endif
  5647. #ifdef SPECULAR_IBL
  5648. vec3 r0 = specularColor.rgb;
  5649. float reflectance = max(max(r0.r, r0.g), r0.b);
  5650. vec3 r90 = vec3(clamp(reflectance * 25.0, 0.0, 1.0));
  5651. vec3 F = fresnelSchlick2(r0, r90, VdotH);
  5652. vec2 brdfLut = texture(czm_brdfLut, vec2(NdotV, roughness)).rg;
  5653. #ifdef CUSTOM_SPECULAR_IBL
  5654. vec3 specularIBL = czm_sampleOctahedralProjection(model_specularEnvironmentMaps, model_specularEnvironmentMapsSize, cubeDir, roughness * model_specularEnvironmentMapsMaximumLOD, model_specularEnvironmentMapsMaximumLOD);
  5655. #else
  5656. vec3 specularIBL = czm_sampleOctahedralProjection(czm_specularEnvironmentMaps, czm_specularEnvironmentMapSize, cubeDir, roughness * czm_specularEnvironmentMapsMaximumLOD, czm_specularEnvironmentMapsMaximumLOD);
  5657. #endif
  5658. specularIBL *= F * brdfLut.x + brdfLut.y;
  5659. #else
  5660. vec3 specularIBL = vec3(0.0);
  5661. #endif
  5662. return diffuseColor * diffuseIrradiance + specularColor * specularIBL;
  5663. }
  5664. #endif
  5665. vec3 imageBasedLightingStage(
  5666. vec3 positionEC,
  5667. vec3 normalEC,
  5668. vec3 lightDirectionEC,
  5669. vec3 lightColorHdr,
  5670. czm_pbrParameters pbrParameters
  5671. ) {
  5672. #if defined(DIFFUSE_IBL) || defined(SPECULAR_IBL)
  5673. // Environment maps were provided, use them for IBL
  5674. return textureIBL(
  5675. positionEC,
  5676. normalEC,
  5677. lightDirectionEC,
  5678. pbrParameters
  5679. );
  5680. #else
  5681. // Use the procedural IBL if there are no environment maps
  5682. return proceduralIBL(
  5683. positionEC,
  5684. normalEC,
  5685. lightDirectionEC,
  5686. lightColorHdr,
  5687. pbrParameters
  5688. );
  5689. #endif
  5690. }`;var uoe={name:"ImageBasedLightingPipelineStage"};uoe.process=function(e,t,n){let i=t.imageBasedLighting,o=e.shaderBuilder;o.addDefine("USE_IBL_LIGHTING",void 0,Ce.FRAGMENT),o.addUniform("vec2","model_iblFactor",Ce.FRAGMENT),Td.isSupported(n.context)&&((i.useSphericalHarmonics||i.useSpecularEnvironmentMaps||i.enabled)&&o.addUniform("mat3","model_iblReferenceFrameMatrix",Ce.FRAGMENT),u(i.sphericalHarmonicCoefficients)?(o.addDefine("DIFFUSE_IBL",void 0,Ce.FRAGMENT),o.addDefine("CUSTOM_SPHERICAL_HARMONICS",void 0,Ce.FRAGMENT),o.addUniform("vec3","model_sphericalHarmonicCoefficients[9]",Ce.FRAGMENT)):i.useDefaultSphericalHarmonics&&o.addDefine("DIFFUSE_IBL",void 0,Ce.FRAGMENT),u(i.specularEnvironmentMapAtlas)&&i.specularEnvironmentMapAtlas.ready?(o.addDefine("SPECULAR_IBL",void 0,Ce.FRAGMENT),o.addDefine("CUSTOM_SPECULAR_IBL",void 0,Ce.FRAGMENT),o.addUniform("sampler2D","model_specularEnvironmentMaps",Ce.FRAGMENT),o.addUniform("vec2","model_specularEnvironmentMapsSize",Ce.FRAGMENT),o.addUniform("float","model_specularEnvironmentMapsMaximumLOD",Ce.FRAGMENT)):t.useDefaultSpecularMaps&&o.addDefine("SPECULAR_IBL",void 0,Ce.FRAGMENT)),u(i.luminanceAtZenith)&&(o.addDefine("USE_SUN_LUMINANCE",void 0,Ce.FRAGMENT),o.addUniform("float","model_luminanceAtZenith",Ce.FRAGMENT)),o.addFragmentLines(W1);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=gt(r,e.uniformMap)};var j1=uoe;var JUe=P.EPSILON16;function M6(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(M6.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=P.clamp(e,this.minimumValue,this.maximumValue),P.equalsEpsilon(this._currentValue,e,JUe)||(this._currentValue=e,this.runtimeArticulation._dirty=!0)}}});var eVe=new h,R6=new Q;M6.prototype.applyStageToMatrix=function(e){let t=this.type,n=this.currentValue,i=eVe,o;switch(t){case Qa.XROTATE:o=Q.fromRotationX(P.toRadians(n),R6),e=F.multiplyByMatrix3(e,o,e);break;case Qa.YROTATE:o=Q.fromRotationY(P.toRadians(n),R6),e=F.multiplyByMatrix3(e,o,e);break;case Qa.ZROTATE:o=Q.fromRotationZ(P.toRadians(n),R6),e=F.multiplyByMatrix3(e,o,e);break;case Qa.XTRANSLATE:i.x=n,i.y=0,i.z=0,e=F.multiplyByTranslation(e,i,e);break;case Qa.YTRANSLATE:i.x=0,i.y=n,i.z=0,e=F.multiplyByTranslation(e,i,e);break;case Qa.ZTRANSLATE:i.x=0,i.y=0,i.z=n,e=F.multiplyByTranslation(e,i,e);break;case Qa.XSCALE:i.x=n,i.y=1,i.z=1,e=F.multiplyByScale(e,i,e);break;case Qa.YSCALE:i.x=1,i.y=n,i.z=1,e=F.multiplyByScale(e,i,e);break;case Qa.ZSCALE:i.x=1,i.y=1,i.z=n,e=F.multiplyByScale(e,i,e);break;case Qa.UNIFORMSCALE:e=F.multiplyByUniformScale(e,n,e);break;default:break}return e};var q1=M6;function mU(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,tVe(this)}Object.defineProperties(mU.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 tVe(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 q1({stage:a,runtimeArticulation:e});o.push(c);let l=a.name;r[l]=c}}mU.prototype.setArticulationStage=function(e,t){let n=this._runtimeStagesByName[e];u(n)&&(n.currentValue=t)};var nVe=new F,iVe=new F;mU.prototype.apply=function(){if(!this._dirty)return;this._dirty=!1;let e=F.clone(F.IDENTITY,nVe),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,iVe);s.transform=a}};var Y1=mU;var X1=`void modelColorStage(inout czm_modelMaterial material)
  5691. {
  5692. material.diffuse = mix(material.diffuse, model_color.rgb, model_colorBlend);
  5693. float highlight = ceil(model_colorBlend);
  5694. material.diffuse *= mix(model_color.rgb, vec3(1.0), highlight);
  5695. material.alpha *= model_color.a;
  5696. }`;var oC={name:"ModelColorPipelineStage",COLOR_UNIFORM_NAME:"model_color",COLOR_BLEND_UNIFORM_NAME:"model_colorBlend"};oC.process=function(e,t,n){let i=e.shaderBuilder;i.addDefine("HAS_MODEL_COLOR",void 0,Ce.FRAGMENT),i.addFragmentLines(X1);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",oC.COLOR_UNIFORM_NAME,Ce.FRAGMENT),o[oC.COLOR_UNIFORM_NAME]=function(){return t.color},i.addUniform("float",oC.COLOR_BLEND_UNIFORM_NAME,Ce.FRAGMENT),o[oC.COLOR_BLEND_UNIFORM_NAME]=function(){return $a.getColorBlend(t.colorBlendMode,t.colorBlendAmount)},e.uniformMap=gt(o,e.uniformMap)};var Wg=oC;var K1=`#ifdef USE_CLIPPING_PLANES_FLOAT_TEXTURE
  5697. vec4 getClippingPlane(
  5698. highp sampler2D packedClippingPlanes,
  5699. int clippingPlaneNumber,
  5700. mat4 transform
  5701. ) {
  5702. int pixY = clippingPlaneNumber / CLIPPING_PLANES_TEXTURE_WIDTH;
  5703. int pixX = clippingPlaneNumber - (pixY * CLIPPING_PLANES_TEXTURE_WIDTH);
  5704. float pixelWidth = 1.0 / float(CLIPPING_PLANES_TEXTURE_WIDTH);
  5705. float pixelHeight = 1.0 / float(CLIPPING_PLANES_TEXTURE_HEIGHT);
  5706. float u = (float(pixX) + 0.5) * pixelWidth; // sample from center of pixel
  5707. float v = (float(pixY) + 0.5) * pixelHeight;
  5708. vec4 plane = texture(packedClippingPlanes, vec2(u, v));
  5709. return czm_transformPlane(plane, transform);
  5710. }
  5711. #else
  5712. // Handle uint8 clipping texture instead
  5713. vec4 getClippingPlane(
  5714. highp sampler2D packedClippingPlanes,
  5715. int clippingPlaneNumber,
  5716. mat4 transform
  5717. ) {
  5718. int clippingPlaneStartIndex = clippingPlaneNumber * 2; // clipping planes are two pixels each
  5719. int pixY = clippingPlaneStartIndex / CLIPPING_PLANES_TEXTURE_WIDTH;
  5720. int pixX = clippingPlaneStartIndex - (pixY * CLIPPING_PLANES_TEXTURE_WIDTH);
  5721. float pixelWidth = 1.0 / float(CLIPPING_PLANES_TEXTURE_WIDTH);
  5722. float pixelHeight = 1.0 / float(CLIPPING_PLANES_TEXTURE_HEIGHT);
  5723. float u = (float(pixX) + 0.5) * pixelWidth; // sample from center of pixel
  5724. float v = (float(pixY) + 0.5) * pixelHeight;
  5725. vec4 oct32 = texture(packedClippingPlanes, vec2(u, v)) * 255.0;
  5726. vec2 oct = vec2(oct32.x * 256.0 + oct32.y, oct32.z * 256.0 + oct32.w);
  5727. vec4 plane;
  5728. plane.xyz = czm_octDecode(oct, 65535.0);
  5729. plane.w = czm_unpackFloat(texture(packedClippingPlanes, vec2(u + pixelWidth, v)));
  5730. return czm_transformPlane(plane, transform);
  5731. }
  5732. #endif
  5733. float clip(vec4 fragCoord, sampler2D clippingPlanes, mat4 clippingPlanesMatrix) {
  5734. vec4 position = czm_windowToEyeCoordinates(fragCoord);
  5735. vec3 clipNormal = vec3(0.0);
  5736. vec3 clipPosition = vec3(0.0);
  5737. float pixelWidth = czm_metersPerPixel(position);
  5738. #ifdef UNION_CLIPPING_REGIONS
  5739. 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.
  5740. #else
  5741. float clipAmount = 0.0;
  5742. bool clipped = true;
  5743. #endif
  5744. for (int i = 0; i < CLIPPING_PLANES_LENGTH; ++i) {
  5745. vec4 clippingPlane = getClippingPlane(clippingPlanes, i, clippingPlanesMatrix);
  5746. clipNormal = clippingPlane.xyz;
  5747. clipPosition = -clippingPlane.w * clipNormal;
  5748. float amount = dot(clipNormal, (position.xyz - clipPosition)) / pixelWidth;
  5749. #ifdef UNION_CLIPPING_REGIONS
  5750. clipAmount = czm_branchFreeTernary(i == 0, amount, min(amount, clipAmount));
  5751. if (amount <= 0.0) {
  5752. discard;
  5753. }
  5754. #else
  5755. clipAmount = max(amount, clipAmount);
  5756. clipped = clipped && (amount <= 0.0);
  5757. #endif
  5758. }
  5759. #ifndef UNION_CLIPPING_REGIONS
  5760. if (clipped) {
  5761. discard;
  5762. }
  5763. #endif
  5764. return clipAmount;
  5765. }
  5766. void modelClippingPlanesStage(inout vec4 color)
  5767. {
  5768. float clipDistance = clip(gl_FragCoord, model_clippingPlanes, model_clippingPlanesMatrix);
  5769. vec4 clippingPlanesEdgeColor = vec4(1.0);
  5770. clippingPlanesEdgeColor.rgb = model_clippingPlanesEdgeStyle.rgb;
  5771. float clippingPlanesEdgeWidth = model_clippingPlanesEdgeStyle.a;
  5772. if (clipDistance > 0.0 && clipDistance < clippingPlanesEdgeWidth) {
  5773. color = clippingPlanesEdgeColor;
  5774. }
  5775. }
  5776. `;var foe={name:"ModelClippingPlanesPipelineStage"},oVe=new z;foe.process=function(e,t,n){let i=t.clippingPlanes,o=n.context,r=e.shaderBuilder;r.addDefine("HAS_CLIPPING_PLANES",void 0,Ce.FRAGMENT),r.addDefine("CLIPPING_PLANES_LENGTH",i.length,Ce.FRAGMENT),i.unionClippingRegions&&r.addDefine("UNION_CLIPPING_REGIONS",void 0,Ce.FRAGMENT),cs.useFloatTexture(o)&&r.addDefine("USE_CLIPPING_PLANES_FLOAT_TEXTURE",void 0,Ce.FRAGMENT);let s=cs.getTextureResolution(i,o,oVe);r.addDefine("CLIPPING_PLANES_TEXTURE_WIDTH",s.x,Ce.FRAGMENT),r.addDefine("CLIPPING_PLANES_TEXTURE_HEIGHT",s.y,Ce.FRAGMENT),r.addUniform("sampler2D","model_clippingPlanes",Ce.FRAGMENT),r.addUniform("vec4","model_clippingPlanesEdgeStyle",Ce.FRAGMENT),r.addUniform("mat4","model_clippingPlanesMatrix",Ce.FRAGMENT),r.addFragmentLines(K1);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=gt(a,e.uniformMap)};var Z1=foe;function doe(e,t){this._model=e,this._runtimeNode=t}Object.defineProperties(doe.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){u(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 $1=doe;var Q1=`mat4 getInstancingTransform()
  5777. {
  5778. mat4 instancingTransform;
  5779. #ifdef HAS_INSTANCE_MATRICES
  5780. instancingTransform = mat4(
  5781. a_instancingTransformRow0.x, a_instancingTransformRow1.x, a_instancingTransformRow2.x, 0.0, // Column 1
  5782. a_instancingTransformRow0.y, a_instancingTransformRow1.y, a_instancingTransformRow2.y, 0.0, // Column 2
  5783. a_instancingTransformRow0.z, a_instancingTransformRow1.z, a_instancingTransformRow2.z, 0.0, // Column 3
  5784. a_instancingTransformRow0.w, a_instancingTransformRow1.w, a_instancingTransformRow2.w, 1.0 // Column 4
  5785. );
  5786. #else
  5787. vec3 translation = vec3(0.0, 0.0, 0.0);
  5788. vec3 scale = vec3(1.0, 1.0, 1.0);
  5789. #ifdef HAS_INSTANCE_TRANSLATION
  5790. translation = a_instanceTranslation;
  5791. #endif
  5792. #ifdef HAS_INSTANCE_SCALE
  5793. scale = a_instanceScale;
  5794. #endif
  5795. instancingTransform = mat4(
  5796. scale.x, 0.0, 0.0, 0.0,
  5797. 0.0, scale.y, 0.0, 0.0,
  5798. 0.0, 0.0, scale.z, 0.0,
  5799. translation.x, translation.y, translation.z, 1.0
  5800. );
  5801. #endif
  5802. return instancingTransform;
  5803. }
  5804. #ifdef USE_2D_INSTANCING
  5805. mat4 getInstancingTransform2D()
  5806. {
  5807. mat4 instancingTransform2D;
  5808. #ifdef HAS_INSTANCE_MATRICES
  5809. instancingTransform2D = mat4(
  5810. a_instancingTransform2DRow0.x, a_instancingTransform2DRow1.x, a_instancingTransform2DRow2.x, 0.0, // Column 1
  5811. a_instancingTransform2DRow0.y, a_instancingTransform2DRow1.y, a_instancingTransform2DRow2.y, 0.0, // Column 2
  5812. a_instancingTransform2DRow0.z, a_instancingTransform2DRow1.z, a_instancingTransform2DRow2.z, 0.0, // Column 3
  5813. a_instancingTransform2DRow0.w, a_instancingTransform2DRow1.w, a_instancingTransform2DRow2.w, 1.0 // Column 4
  5814. );
  5815. #else
  5816. vec3 translation2D = vec3(0.0, 0.0, 0.0);
  5817. vec3 scale = vec3(1.0, 1.0, 1.0);
  5818. #ifdef HAS_INSTANCE_TRANSLATION
  5819. translation2D = a_instanceTranslation2D;
  5820. #endif
  5821. #ifdef HAS_INSTANCE_SCALE
  5822. scale = a_instanceScale;
  5823. #endif
  5824. instancingTransform2D = mat4(
  5825. scale.x, 0.0, 0.0, 0.0,
  5826. 0.0, scale.y, 0.0, 0.0,
  5827. 0.0, 0.0, scale.z, 0.0,
  5828. translation2D.x, translation2D.y, translation2D.z, 1.0
  5829. );
  5830. #endif
  5831. return instancingTransform2D;
  5832. }
  5833. #endif
  5834. `;var J1=`void instancingStage(inout ProcessedAttributes attributes)
  5835. {
  5836. vec3 positionMC = attributes.positionMC;
  5837. mat4 instancingTransform = getInstancingTransform();
  5838. attributes.positionMC = (instancingTransform * vec4(positionMC, 1.0)).xyz;
  5839. #ifdef HAS_NORMALS
  5840. vec3 normalMC = attributes.normalMC;
  5841. attributes.normalMC = (instancingTransform * vec4(normalMC, 0.0)).xyz;
  5842. #endif
  5843. #ifdef USE_2D_INSTANCING
  5844. mat4 instancingTransform2D = getInstancingTransform2D();
  5845. attributes.position2D = (instancingTransform2D * vec4(positionMC, 1.0)).xyz;
  5846. #endif
  5847. }
  5848. `;var eO=`void legacyInstancingStage(
  5849. inout ProcessedAttributes attributes,
  5850. out mat4 instanceModelView,
  5851. out mat3 instanceModelViewInverseTranspose)
  5852. {
  5853. vec3 positionMC = attributes.positionMC;
  5854. mat4 instancingTransform = getInstancingTransform();
  5855. mat4 instanceModel = instancingTransform * u_instance_nodeTransform;
  5856. instanceModelView = u_instance_modifiedModelView;
  5857. instanceModelViewInverseTranspose = mat3(u_instance_modifiedModelView * instanceModel);
  5858. attributes.positionMC = (instanceModel * vec4(positionMC, 1.0)).xyz;
  5859. #ifdef USE_2D_INSTANCING
  5860. mat4 instancingTransform2D = getInstancingTransform2D();
  5861. attributes.position2D = (instancingTransform2D * vec4(positionMC, 1.0)).xyz;
  5862. #endif
  5863. }
  5864. `;var pU=new F,rVe=new F,sVe=new F,moe={name:"InstancingPipelineStage",_getInstanceTransformsAsMatrices:xoe,_transformsToTypedArray:N6};moe.process=function(e,t,n){let i=t.instances,o=i.attributes[0].count,r=e.shaderBuilder;r.addDefine("HAS_INSTANCING"),r.addVertexLines(Q1);let s=e.model,a=s.sceneGraph,c=e.runtimeNode,l=n.mode!==te.SCENE3D&&!n.scene3DOnly&&s._projectTo2D,f=[];TVe(e,n,i,f,l),EVe(e,n,i,f);let d={};if(i.transformInWorldSpace?(r.addDefine("USE_LEGACY_INSTANCING",void 0,Ce.VERTEX),r.addUniform("mat4","u_instance_modifiedModelView",Ce.VERTEX),r.addUniform("mat4","u_instance_nodeTransform",Ce.VERTEX),d.u_instance_modifiedModelView=function(){let p=F.multiplyTransformation(s.modelMatrix,a.components.transform,pU);return l?F.multiplyTransformation(n.context.uniformState.view3D,p,pU):(n.mode!==te.SCENE3D&&(p=Rt.basisTo2D(n.mapProjection,p,pU)),F.multiplyTransformation(n.context.uniformState.view,p,pU))},d.u_instance_nodeTransform=function(){return F.multiplyTransformation(a.axisCorrectionMatrix,c.computedTransform,rVe)},r.addVertexLines(eO)):r.addVertexLines(J1),l){r.addDefine("USE_2D_INSTANCING",void 0,Ce.VERTEX),r.addUniform("mat4","u_modelView2D",Ce.VERTEX);let p=n.context,g=F.fromTranslation(c.instancingReferencePoint2D,new F);d.u_modelView2D=function(){return F.multiplyTransformation(p.uniformState.view,g,sVe)}}e.uniformMap=gt(d,e.uniformMap),e.instanceCount=o,e.attributes.push.apply(e.attributes,f)};var tO=new F,aVe=new h;function cVe(e,t,n,i,o){let r=F.multiplyTransformation(t,e,tO);return r=F.multiplyTransformation(r,n,tO),o=Rt.basisTo2D(i.mapProjection,r,o),o}function lVe(e,t,n,i,o){let r=F.fromTranslation(e,tO),s=F.multiplyTransformation(t,r,tO);s=F.multiplyTransformation(s,n,tO);let a=F.getTranslation(s,aVe);return o=Xi.computeActualWgs84Position(i,a,o),o}function poe(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 _oe=new F,goe=new F,uVe=new F,fVe=new h;function dVe(e,t,n,i){let o=_oe,r=goe;poe(t,o,r);let a=t.runtimeNode.instancingReferencePoint2D,c=e.length;for(let l=0;l<c;l++){let f=e[l],d=cVe(f,o,r,n,uVe),p=F.getTranslation(d,fVe),g=h.subtract(p,a,p);i[l]=F.setTranslation(d,g,i[l])}return i}function hVe(e,t,n,i){let o=_oe,r=goe;poe(t,o,r);let a=t.runtimeNode.instancingReferencePoint2D,c=e.length;for(let l=0;l<c;l++){let f=e[l],d=lVe(f,o,r,n,f);i[l]=h.subtract(d,a,i[l])}return i}var mVe=new h,pVe=new h;function yoe(e,t){let n=e.runtimeNode,i=e.model.sceneGraph.computedModelMatrix,o=F.multiplyByPoint(i,n.instancingTranslationMin,mVe),r=Xi.computeActualWgs84Position(t,o,o),s=F.multiplyByPoint(i,n.instancingTranslationMax,pVe),a=Xi.computeActualWgs84Position(t,s,s);n.instancingReferencePoint2D=h.lerp(r,a,.5,new h)}function N6(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 _Ve(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 gVe=new h,yVe=new Le,xVe=new h;function xoe(e,t,n){let i=new Array(t),o=Jt.getAttributeBySemantic(e,Wr.TRANSLATION),r=Jt.getAttributeBySemantic(e,Wr.ROTATION),s=Jt.getAttributeBySemantic(e,Wr.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),l=u(o),f=u(r),d=u(s),p=l?o.typedArray:new Float32Array(t*3),g=f?r.typedArray:new Float32Array(t*4);f&&r.normalized&&(g=qn.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],gVe);h.maximumByComponent(a,T,a),h.minimumByComponent(c,T,c);let A=new Le(g[b*4],g[b*4+1],g[b*4+2],f?g[b*4+3]:1,yVe),C=new h(m[b*3],m[b*3+1],m[b*3+2],xVe),S=F.fromTranslationQuaternionRotationScale(T,A,C,new F);i[b]=S}let x=n.runtimeNode;return x.instancingTranslationMin=c,x.instancingTranslationMax=a,l&&(o.typedArray=void 0),f&&(r.typedArray=void 0),d&&(s.typedArray=void 0),i}function bVe(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 l=new h(o[c*3],o[c*3+1],o[c*3+2]);i[c]=l,h.minimumByComponent(r,l,r),h.maximumByComponent(s,l,s)}let a=n.runtimeNode;return a.instancingTranslationMin=r,a.instancingTranslationMax=s,e.typedArray=void 0,i}function F6(e,t){let n=ct.createVertexBuffer({context:t.context,typedArray:e,usage:Ne.STATIC_DRAW});return n.vertexArrayDestroyable=!1,n}function TVe(e,t,n,i,o){let r=Jt.getAttributeBySemantic(n,Wr.ROTATION);u(r)?AVe(e,n,i,t,o):CVe(e,n,i,t,o)}function AVe(e,t,n,i,o){let r=e.shaderBuilder,s=t.attributes[0].count,a=e.model,c=e.runtimeNode;r.addDefine("HAS_INSTANCE_MATRICES");let l="Transform",f,d=c.instancingTransformsBuffer;if(!u(d)){f=xoe(t,s,e);let x=N6(f);d=F6(x,i),a._modelResources.push(d),c.instancingTransformsBuffer=d}if(hoe(e,d,n,l),!o)return;let p=He(i);p.mode=te.COLUMBUS_VIEW,yoe(e,p);let g=c.instancingTransformsBuffer2D;if(!u(g)){let x=dVe(f,e,p,f),b=N6(x);g=F6(b,i),a._modelResources.push(g),c.instancingTransformsBuffer2D=g}hoe(e,g,n,"Transform2D")}function CVe(e,t,n,i,o){let r=e.shaderBuilder,s=e.runtimeNode,a=Jt.getAttributeBySemantic(t,Wr.TRANSLATION),c=Jt.getAttributeBySemantic(t,Wr.SCALE);if(u(c)){r.addDefine("HAS_INSTANCE_SCALE");let T="Scale";L6(e,c.buffer,c.byteOffset,c.byteStride,n,T)}if(!u(a))return;let l,f=a.typedArray;u(f)?l=bVe(a,a.count,e):u(s.instancingTranslationMin)||(s.instancingTranslationMin=a.min,s.instancingTranslationMax=a.max),r.addDefine("HAS_INSTANCE_TRANSLATION");let d="Translation";if(L6(e,a.buffer,a.byteOffset,a.byteStride,n,d),!o)return;let p=He(i);p.mode=te.COLUMBUS_VIEW,yoe(e,p);let g=s.instancingTranslationBuffer2D;if(!u(g)){let T=hVe(l,e,p,l),A=_Ve(T);g=F6(A,i),e.model._modelResources.push(g),s.instancingTranslationBuffer2D=g}L6(e,g,0,void 0,n,"Translation2D")}function hoe(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 L6(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 EVe(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===Wr.FEATURE_ID&&(a.setIndex>=e.featureIdVertexAttributeSetIndex&&(e.featureIdVertexAttributeSetIndex=a.setIndex+1),i.push({index:e.attributeIndex++,vertexBuffer:a.buffer,componentsPerAttribute:on.getNumberOfComponents(a.type),componentDatatype:a.componentDatatype,normalize:!1,offsetInBytes:a.byteOffset,strideInBytes:a.byteStride,instanceDivisor:1}),r.addAttribute("float",`a_instanceFeatureId_${a.setIndex}`))}}var nO=moe;var B6={};B6.name="ModelMatrixUpdateStage";B6.update=function(e,t,n){let i=n.mode!==te.SCENE3D;if(!(i&&t._model._projectTo2D)&&e._transformDirty){let o=i?t._computedModelMatrix2D:t._computedModelMatrix;boe(e,t,o,e.transformToRoot),e._transformDirty=!1}};function boe(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=Jt.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),boe(a,t,n,i),a._transformDirty=!1}}var iO=B6;var Toe={name:"NodeStatisticsPipelineStage",_countInstancingAttributes:Aoe,_countGeneratedBuffers:Coe};Toe.process=function(e,t,n){let i=e.model.statistics,o=t.instances,r=e.runtimeNode;Aoe(i,o),Coe(i,r)};function Aoe(e,t){if(!u(t))return;let n=t.attributes,i=n.length;for(let o=0;o<i;o++){let r=n[o];u(r.buffer)&&e.addBuffer(r.buffer,!1)}}function Coe(e,t){u(t.instancingTransformsBuffer)&&e.addBuffer(t.instancingTransformsBuffer,!1),u(t.instancingTransformsBuffer2D)&&e.addBuffer(t.instancingTransformsBuffer2D,!1),u(t.instancingTranslationBuffer2D)&&e.addBuffer(t.instancingTranslationBuffer2D,!1)}var oO=Toe;function rC(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,SVe(this)}Object.defineProperties(rC.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 u(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),k6(this,t))}},rotation:{get:function(){return u(this._transformParameters)?this._transformParameters.rotation:void 0},set:function(e){let t=this._transformParameters,n=t.rotation;Le.equals(n,e)||(t.rotation=Le.clone(e,t.rotation),k6(this,t))}},scale:{get:function(){return u(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),k6(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 SVe(e){let t=e.transform,n=e.transformToRoot,i=e._computedTransform;e._computedTransform=F.multiply(n,t,i);let o=e.node;u(o.matrix)||(e._transformParameters=new xg(o.translation,o.rotation,o.scale)),u(o.morphWeights)&&(e._morphWeights=o.morphWeights.slice());let r=o.articulationName;if(u(r)){let c=e.sceneGraph._runtimeArticulations[r];u(c)&&c.runtimeNodes.push(e)}}function k6(e,t){e._transformDirty=!0,e._transform=F.fromTranslationRotationScale(t,e._transform)}rC.prototype.getChild=function(e){return this.sceneGraph._runtimeNodes[this.children[e]]};rC.prototype.configurePipeline=function(){let e=this.node,t=this.pipelineStages;t.length=0;let n=this.updateStages;n.length=0,u(e.instances)&&t.push(nO),t.push(oO),n.push(iO)};rC.prototype.updateComputedTransform=function(){this._computedTransform=F.multiply(this._transformToRoot,this._transform,this._computedTransform)};rC.prototype.updateJointMatrices=function(){let e=this._runtimeSkin;if(!u(e))return;e.updateJointMatrices();let t=this._computedJointMatrices,n=e.jointMatrices,i=n.length;for(let o=0;o<i;o++){u(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 rO=rC;var Eoe={name:"AlphaPipelineStage"};Eoe.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;u(i.alphaCutoff)&&(s.addDefine("ALPHA_MODE_MASK",void 0,Ce.FRAGMENT),s.addUniform("float","u_alphaCutoff",Ce.FRAGMENT),a.u_alphaCutoff=function(){return i.alphaCutoff})};var sO=Eoe;var Soe={name:"BatchTexturePipelineStage"};Soe.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=gt(o,e.uniformMap)};var aO=Soe;var woe={name:"ClassificationPipelineStage"};woe.process=function(e,t,n){e.shaderBuilder.addDefine("HAS_CLASSIFICATION",void 0,Ce.BOTH);let o=e.runtimePrimitive;u(o.batchLengths)||wVe(t,o)};function wVe(e,t){let n=Jt.getAttributeBySemantic(e,Tt.POSITION);if(!u(n))throw new ue("Primitives must have a position attribute to be used for classification.");let i,o=e.indices,r=u(o);r&&(i=o.typedArray,o.typedArray=void 0);let s=r?o.count:n.count,a=Jt.getAttributeBySemantic(e,Tt.FEATURE_ID,0);if(!u(a)){t.batchLengths=[s],t.batchOffsets=[0];return}let c=a.typedArray;a.typedArray=void 0;let l=[],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 A=x-g,C=x;l.push(A),f.push(C),g=C,p=T}}let m=s-g;l.push(m),t.batchLengths=l,t.batchOffsets=f}var cO=woe;var lO=`void filterByPassType(inout vec3 positionMC, vec4 featureColor)
  5865. {
  5866. bool styleTranslucent = (featureColor.a != 1.0);
  5867. // Only render translucent features in the translucent pass (if the style or the original command has translucency).
  5868. if (czm_pass == czm_passTranslucent && !styleTranslucent && !model_commandTranslucent)
  5869. {
  5870. // If the model has a translucent silhouette, it needs to render during the silhouette color command,
  5871. // (i.e. the command where model_silhouettePass = true), even if the model isn't translucent.
  5872. #ifdef HAS_SILHOUETTE
  5873. positionMC *= float(model_silhouettePass);
  5874. #else
  5875. positionMC *= 0.0;
  5876. #endif
  5877. }
  5878. // If the current pass is not the translucent pass and the style is not translucent, don't render the feature.
  5879. else if (czm_pass != czm_passTranslucent && styleTranslucent)
  5880. {
  5881. positionMC *= 0.0;
  5882. }
  5883. }
  5884. void cpuStylingStage(inout vec3 positionMC, inout SelectedFeature feature)
  5885. {
  5886. float show = ceil(feature.color.a);
  5887. positionMC *= show;
  5888. #if defined(HAS_SELECTED_FEATURE_ID_ATTRIBUTE) && !defined(HAS_CLASSIFICATION)
  5889. filterByPassType(positionMC, feature.color);
  5890. #endif
  5891. }
  5892. `;var uO=`void filterByPassType(vec4 featureColor)
  5893. {
  5894. bool styleTranslucent = (featureColor.a != 1.0);
  5895. // Only render translucent features in the translucent pass (if the style or the original command has translucency).
  5896. if (czm_pass == czm_passTranslucent && !styleTranslucent && !model_commandTranslucent)
  5897. {
  5898. // If the model has a translucent silhouette, it needs to render during the silhouette color command,
  5899. // (i.e. the command where model_silhouettePass = true), even if the model isn't translucent.
  5900. #ifdef HAS_SILHOUETTE
  5901. if(!model_silhouettePass) {
  5902. discard;
  5903. }
  5904. #else
  5905. discard;
  5906. #endif
  5907. }
  5908. // If the current pass is not the translucent pass and the style is not translucent, don't render the feature.
  5909. else if (czm_pass != czm_passTranslucent && styleTranslucent)
  5910. {
  5911. discard;
  5912. }
  5913. }
  5914. void cpuStylingStage(inout czm_modelMaterial material, SelectedFeature feature)
  5915. {
  5916. vec4 featureColor = feature.color;
  5917. if (featureColor.a == 0.0)
  5918. {
  5919. discard;
  5920. }
  5921. // If a feature ID vertex attribute is used, the pass type filter is applied in the vertex shader.
  5922. // So, we only apply in in the fragment shader if the feature ID texture is used.
  5923. #if defined(HAS_SELECTED_FEATURE_ID_TEXTURE) && !defined(HAS_CLASSIFICATION)
  5924. filterByPassType(featureColor);
  5925. #endif
  5926. featureColor = czm_gammaCorrect(featureColor);
  5927. // Classification models compute the diffuse differently.
  5928. #ifdef HAS_CLASSIFICATION
  5929. material.diffuse = featureColor.rgb * featureColor.a;
  5930. #else
  5931. float highlight = ceil(model_colorBlend);
  5932. material.diffuse *= mix(featureColor.rgb, vec3(1.0), highlight);
  5933. #endif
  5934. material.alpha *= featureColor.a;
  5935. }
  5936. `;var voe={name:"CPUStylingPipelineStage"};voe.process=function(e,t,n){let i=e.model,o=e.shaderBuilder;o.addVertexLines(lO),o.addFragmentLines(uO),o.addDefine("USE_CPU_STYLING",void 0,Ce.BOTH),u(i.color)||(o.addUniform("float",Wg.COLOR_BLEND_UNIFORM_NAME,Ce.FRAGMENT),e.uniformMap[Wg.COLOR_BLEND_UNIFORM_NAME]=function(){return $a.getColorBlend(i.colorBlendMode,i.colorBlendAmount)}),o.addUniform("bool","model_commandTranslucent",Ce.BOTH),e.uniformMap.model_commandTranslucent=function(){return e.alphaOptions.pass===Ee.TRANSLUCENT}};var fO=voe;var Doe={MODIFY_MATERIAL:"MODIFY_MATERIAL",REPLACE_MATERIAL:"REPLACE_MATERIAL"};Doe.getDefineName=function(e){return`CUSTOM_SHADER_${e}`};var Gp=Object.freeze(Doe);var dO=`void customShaderStage(
  5937. inout czm_modelVertexOutput vsOutput,
  5938. inout ProcessedAttributes attributes,
  5939. FeatureIds featureIds,
  5940. Metadata metadata,
  5941. MetadataClass metadataClass,
  5942. MetadataStatistics metadataStatistics
  5943. ) {
  5944. // VertexInput and initializeInputStruct() are dynamically generated in JS,
  5945. // see CustomShaderPipelineStage.js
  5946. VertexInput vsInput;
  5947. initializeInputStruct(vsInput, attributes);
  5948. vsInput.featureIds = featureIds;
  5949. vsInput.metadata = metadata;
  5950. vsInput.metadataClass = metadataClass;
  5951. vsInput.metadataStatistics = metadataStatistics;
  5952. vertexMain(vsInput, vsOutput);
  5953. attributes.positionMC = vsOutput.positionMC;
  5954. }
  5955. `;var hO=`void customShaderStage(
  5956. inout czm_modelMaterial material,
  5957. ProcessedAttributes attributes,
  5958. FeatureIds featureIds,
  5959. Metadata metadata,
  5960. MetadataClass metadataClass,
  5961. MetadataStatistics metadataStatistics
  5962. ) {
  5963. // FragmentInput and initializeInputStruct() are dynamically generated in JS,
  5964. // see CustomShaderPipelineStage.js
  5965. FragmentInput fsInput;
  5966. initializeInputStruct(fsInput, attributes);
  5967. fsInput.featureIds = featureIds;
  5968. fsInput.metadata = metadata;
  5969. fsInput.metadataClass = metadataClass;
  5970. fsInput.metadataStatistics = metadataStatistics;
  5971. fragmentMain(fsInput, material);
  5972. }
  5973. `;var mO=`void featureIdStage(out FeatureIds featureIds, ProcessedAttributes attributes) {
  5974. initializeFeatureIds(featureIds, attributes);
  5975. initializeFeatureIdAliases(featureIds);
  5976. }
  5977. `;var pO=`void featureIdStage(out FeatureIds featureIds, ProcessedAttributes attributes)
  5978. {
  5979. initializeFeatureIds(featureIds, attributes);
  5980. initializeFeatureIdAliases(featureIds);
  5981. setFeatureIdVaryings();
  5982. }
  5983. `;var Fi={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()"};Fi.process=function(e,t,n){let i=e.shaderBuilder;vVe(i);let o=e.runtimeNode.node.instances;u(o)&&DVe(e,o,n),IVe(e,t,n),i.addVertexLines(pO),i.addFragmentLines(mO)};function vVe(e){e.addStruct(Fi.STRUCT_ID_FEATURE_IDS_VS,Fi.STRUCT_NAME_FEATURE_IDS,Ce.VERTEX),e.addStruct(Fi.STRUCT_ID_FEATURE_IDS_FS,Fi.STRUCT_NAME_FEATURE_IDS,Ce.FRAGMENT),e.addFunction(Fi.FUNCTION_ID_INITIALIZE_FEATURE_IDS_VS,Fi.FUNCTION_SIGNATURE_INITIALIZE_FEATURE_IDS,Ce.VERTEX),e.addFunction(Fi.FUNCTION_ID_INITIALIZE_FEATURE_IDS_FS,Fi.FUNCTION_SIGNATURE_INITIALIZE_FEATURE_IDS,Ce.FRAGMENT),e.addFunction(Fi.FUNCTION_ID_INITIALIZE_FEATURE_ID_ALIASES_VS,Fi.FUNCTION_SIGNATURE_INITIALIZE_FEATURE_ID_ALIASES,Ce.VERTEX),e.addFunction(Fi.FUNCTION_ID_INITIALIZE_FEATURE_ID_ALIASES_FS,Fi.FUNCTION_SIGNATURE_INITIALIZE_FEATURE_ID_ALIASES,Ce.FRAGMENT),e.addFunction(Fi.FUNCTION_ID_SET_FEATURE_ID_VARYINGS,Fi.FUNCTION_SIGNATURE_SET_FEATURE_ID_VARYINGS,Ce.VERTEX)}function DVe(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 Mt.FeatureIdAttribute?PVe(e,s,a):Ioe(e,s,a,o,1,n);let c=s.label;u(c)&&Poe(e,a,c,Ce.BOTH)}}function IVe(e,t,n){let i=t.featureIds,r=Jt.getAttributeBySemantic(t,Tt.POSITION).count;for(let s=0;s<i.length;s++){let a=i[s],c=a.positionalLabel,l=Ce.BOTH;a instanceof Mt.FeatureIdAttribute?OVe(e,a,c):a instanceof Mt.FeatureIdImplicitRange?Ioe(e,a,c,r,void 0,n):(RVe(e,a,c,s,n),l=Ce.FRAGMENT);let f=a.label;u(f)&&Poe(e,c,f,l)}}function PVe(e,t,n){let i=e.shaderBuilder;i.addStructField(Fi.STRUCT_ID_FEATURE_IDS_VS,"int",n),i.addStructField(Fi.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}));`,l=`featureIds.${n} = int(czm_round(${a}));`;i.addFunctionLines(Fi.FUNCTION_ID_INITIALIZE_FEATURE_IDS_VS,[c]),i.addFunctionLines(Fi.FUNCTION_ID_INITIALIZE_FEATURE_IDS_FS,[l]),i.addVarying("float",a),i.addFunctionLines(Fi.FUNCTION_ID_SET_FEATURE_ID_VARYINGS,[`${a} = ${s};`])}function OVe(e,t,n){let i=e.shaderBuilder;i.addStructField(Fi.STRUCT_ID_FEATURE_IDS_VS,"int",n),i.addStructField(Fi.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(Fi.FUNCTION_ID_INITIALIZE_FEATURE_IDS_VS,s),i.addFunctionLines(Fi.FUNCTION_ID_INITIALIZE_FEATURE_IDS_FS,s)}function Ioe(e,t,n,i,o,r){MVe(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(Fi.STRUCT_ID_FEATURE_IDS_VS,"int",n),s.addStructField(Fi.STRUCT_ID_FEATURE_IDS_FS,"int",n),s.addFunctionLines(Fi.FUNCTION_ID_SET_FEATURE_ID_VARYINGS,[`${c} = ${a};`]),s.addFunctionLines(Fi.FUNCTION_ID_INITIALIZE_FEATURE_IDS_VS,[`featureIds.${n} = int(czm_round(${a}));`]),s.addFunctionLines(Fi.FUNCTION_ID_INITIALIZE_FEATURE_IDS_FS,[`featureIds.${n} = int(czm_round(${c}));`])}function RVe(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,l=e.shaderBuilder;l.addStructField(Fi.STRUCT_ID_FEATURE_IDS_FS,"int",n),l.addUniform("sampler2D",r,Ce.FRAGMENT);let f=`v_texCoord_${a.texCoord}`,d=`texture(${r}, ${f}).${c}`,p=`featureIds.${n} = czm_unpackUint(${d});`;l.addFunctionLines(Fi.FUNCTION_ID_INITIALIZE_FEATURE_IDS_FS,[p])}function Poe(e,t,n,i){let o=e.shaderBuilder,r=Ce.includesVertexShader(i);r&&o.addStructField(Fi.STRUCT_ID_FEATURE_IDS_VS,"int",n),o.addStructField(Fi.STRUCT_ID_FEATURE_IDS_FS,"int",n);let s=[`featureIds.${n} = featureIds.${t};`];r&&o.addFunctionLines(Fi.FUNCTION_ID_INITIALIZE_FEATURE_ID_ALIASES_VS,s),o.addFunctionLines(Fi.FUNCTION_ID_INITIALIZE_FEATURE_ID_ALIASES_FS,s)}function MVe(e,t,n,i,o){let r=e.model,s,a;if(u(t.repeat)){let l=LVe(t,n);s=ct.createVertexBuffer({context:o.context,typedArray:l,usage:Ne.STATIC_DRAW}),s.vertexArrayDestroyable=!1,r._pipelineResources.push(s);let f=!1;r.statistics.addBuffer(s,f)}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 LVe(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 jg=Fi;var _O=`void metadataStage(
  5984. out Metadata metadata,
  5985. out MetadataClass metadataClass,
  5986. out MetadataStatistics metadataStatistics,
  5987. ProcessedAttributes attributes
  5988. )
  5989. {
  5990. initializeMetadata(metadata, metadataClass, metadataStatistics, attributes);
  5991. }
  5992. `;var gO=`void metadataStage(
  5993. out Metadata metadata,
  5994. out MetadataClass metadataClass,
  5995. out MetadataStatistics metadataStatistics,
  5996. ProcessedAttributes attributes
  5997. )
  5998. {
  5999. initializeMetadata(metadata, metadataClass, metadataStatistics, attributes);
  6000. setMetadataVaryings();
  6001. }
  6002. `;var Ti={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"}]};Ti.process=function(e,t,n){let{shaderBuilder:i,model:o}=e,{structuralMetadata:r={},content:s}=o,a=s?.tileset.metadataExtension?.statistics,c=NVe(r.propertyAttributes,t,a),l=BVe(r.propertyTextures,a),f=c.concat(l);UVe(i,f),HVe(i),i.addVertexLines(gO),i.addFragmentLines(_O);for(let d=0;d<c.length;d++){let p=c[d];GVe(e,p)}for(let d=0;d<l.length;d++){let p=l[d];jVe(e,p)}};function NVe(e,t,n){return u(e)?e.flatMap(i=>FVe(i,t,n)):[]}function FVe(e,t,n){let{getAttributeByName:i,getAttributeInfo:o,sanitizeGlslIdentifier:r}=Jt,s=e.class.id,a=n?.classes[s],c=Object.entries(e.properties),l=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);l[f]={metadataVariable:r(d),property:p,type:p.classProperty.type,glslType:m,variableName:x,propertyStatistics:a?.properties[d],shaderDestination:Ce.BOTH}}return l}function BVe(e,t){return u(e)?e.flatMap(n=>kVe(n,t)):[]}function kVe(e,t){let{sanitizeGlslIdentifier:n}=Jt,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,l]=r[a];s[a]={metadataVariable:n(c),property:l,type:l.classProperty.type,glslType:l.getGlslType(),propertyStatistics:o?.properties[c],shaderDestination:Ce.FRAGMENT}}return s}function UVe(e,t){let n=new Set,i=new Set;for(let a=0;a<t.length;a++){let{type:c,glslType:l,propertyStatistics:f}=t[a];n.add(l),u(f)&&c!==Ht.ENUM&&i.add(l)}let o=Ti.METADATA_CLASS_FIELDS;for(let a of n){let c=`${a}MetadataClass`;s(c,a,o)}let r=Ti.METADATA_STATISTICS_FIELDS;for(let a of i){let c=`${a}MetadataStatistics`;s(c,a,r)}function s(a,c,l){e.addStruct(a,a,Ce.BOTH);for(let f=0;f<l.length;f++){let{shaderName:d}=l[f],p=l[f].type==="float"?zVe(c):c;e.addStructField(a,p,d)}}}var VVe={int:"float",ivec2:"vec2",ivec3:"vec3",ivec4:"vec4"};function zVe(e){let t=VVe[e];return u(t)?t:e}function HVe(e){e.addStruct(Ti.STRUCT_ID_METADATA_VS,Ti.STRUCT_NAME_METADATA,Ce.VERTEX),e.addStruct(Ti.STRUCT_ID_METADATA_FS,Ti.STRUCT_NAME_METADATA,Ce.FRAGMENT),e.addStruct(Ti.STRUCT_ID_METADATA_CLASS_VS,Ti.STRUCT_NAME_METADATA_CLASS,Ce.VERTEX),e.addStruct(Ti.STRUCT_ID_METADATA_CLASS_FS,Ti.STRUCT_NAME_METADATA_CLASS,Ce.FRAGMENT),e.addStruct(Ti.STRUCT_ID_METADATA_STATISTICS_VS,Ti.STRUCT_NAME_METADATA_STATISTICS,Ce.VERTEX),e.addStruct(Ti.STRUCT_ID_METADATA_STATISTICS_FS,Ti.STRUCT_NAME_METADATA_STATISTICS,Ce.FRAGMENT),e.addFunction(Ti.FUNCTION_ID_INITIALIZE_METADATA_VS,Ti.FUNCTION_SIGNATURE_INITIALIZE_METADATA,Ce.VERTEX),e.addFunction(Ti.FUNCTION_ID_INITIALIZE_METADATA_FS,Ti.FUNCTION_SIGNATURE_INITIALIZE_METADATA,Ce.FRAGMENT),e.addFunction(Ti.FUNCTION_ID_SET_METADATA_VARYINGS,Ti.FUNCTION_SIGNATURE_SET_METADATA_VARYINGS,Ce.VERTEX)}function GVe(e,t){WVe(e,t),Ooe(e.shaderBuilder,t),Roe(e.shaderBuilder,t)}function WVe(e,t){let{shaderBuilder:n}=e,{metadataVariable:i,property:o,glslType:r}=t,s=Loe({valueExpression:`attributes.${t.variableName}`,renderResources:e,glslType:r,metadataVariable:i,shaderDestination:Ce.BOTH,property:o});n.addStructField(Ti.STRUCT_ID_METADATA_VS,r,i),n.addStructField(Ti.STRUCT_ID_METADATA_FS,r,i);let a=`metadata.${i} = ${s};`;n.addFunctionLines(Ti.FUNCTION_ID_INITIALIZE_METADATA_VS,[a]),n.addFunctionLines(Ti.FUNCTION_ID_INITIALIZE_METADATA_FS,[a])}function jVe(e,t){qVe(e,t),Ooe(e.shaderBuilder,t),Roe(e.shaderBuilder,t)}function qVe(e,t){let{shaderBuilder:n,uniformMap:i}=e,{metadataVariable:o,glslType:r,property:s}=t,{texCoord:a,channels:c,index:l,texture:f}=s.textureReader,d=`u_propertyTexture_${l}`;i.hasOwnProperty(d)||(n.addUniform("sampler2D",d,Ce.FRAGMENT),i[d]=()=>f),n.addStructField(Ti.STRUCT_ID_METADATA_FS,r,o);let p=`attributes.texCoord_${a}`,g=`texture(${d}, ${p}).${c}`,m=s.unpackInShader(g),x=Loe({valueExpression:m,renderResources:e,glslType:r,metadataVariable:o,shaderDestination:Ce.FRAGMENT,property:s}),b=`metadata.${o} = ${x};`;n.addFunctionLines(Ti.FUNCTION_ID_INITIALIZE_METADATA_FS,[b])}function Ooe(e,t){let{classProperty:n}=t.property,{metadataVariable:i,glslType:o,shaderDestination:r}=t,s=Moe(Ti.METADATA_CLASS_FIELDS,n,`metadataClass.${i}`,o),a=`${o}MetadataClass`;e.addStructField(Ti.STRUCT_ID_METADATA_CLASS_FS,a,i),e.addFunctionLines(Ti.FUNCTION_ID_INITIALIZE_METADATA_FS,s),Ce.includesVertexShader(r)&&(e.addStructField(Ti.STRUCT_ID_METADATA_CLASS_VS,a,i),e.addFunctionLines(Ti.FUNCTION_ID_INITIALIZE_METADATA_VS,s))}function Roe(e,t){let{propertyStatistics:n}=t;if(!u(n))return;let{metadataVariable:i,type:o,glslType:r}=t;if(o===Ht.ENUM)return;let s=Ti.METADATA_STATISTICS_FIELDS,a=`metadataStatistics.${i}`,c=Moe(s,n,a,r),l=`${r}MetadataStatistics`;e.addStructField(Ti.STRUCT_ID_METADATA_STATISTICS_FS,l,i),e.addFunctionLines(Ti.FUNCTION_ID_INITIALIZE_METADATA_FS,c),Ce.includesVertexShader(t.shaderDestination)&&(e.addStructField(Ti.STRUCT_ID_METADATA_STATISTICS_VS,l,i),e.addFunctionLines(Ti.FUNCTION_ID_INITIALIZE_METADATA_VS,c))}function Moe(e,t,n,i){function o(r){let s=t[r.specName];if(u(s))return`${n}.${r.shaderName} = ${i}(${s});`}return u(t)?e.map(o).filter(u):[]}function Loe(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:l}=e;s.addUniform(c,o,l),s.addUniform(c,r,l);let{offset:f,scale:d}=n;return a[o]=()=>f,a[r]=()=>d,`czm_valueTransform(${o}, ${r}, ${t})`}var lf=Ti;var YVe={INHERIT:0,OPAQUE:1,TRANSLUCENT:2},qg=Object.freeze(YVe);var Xs={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:Dt};Xs.process=function(e,t,n){let{shaderBuilder:i,model:o,alphaOptions:r}=e,{customShader:s}=o,{lightingModel:a,translucencyMode:c}=s;u(a)&&(e.lightingOptions.lightingModel=a),c===qg.TRANSLUCENT?r.pass=Ee.TRANSLUCENT:c===qg.OPAQUE&&(r.pass=void 0);let l=tze(s,t);if(!l.customShaderEnabled)return;if(rze(i,s,l),l.shouldComputePositionWC&&i.addDefine("COMPUTE_POSITION_WC_CUSTOM_SHADER",void 0,Ce.BOTH),u(s.vertexShaderText)&&i.addDefine("HAS_CUSTOM_VERTEX_SHADER",void 0,Ce.VERTEX),u(s.fragmentShaderText)){i.addDefine("HAS_CUSTOM_FRAGMENT_SHADER",void 0,Ce.FRAGMENT);let p=Gp.getDefineName(s.mode);i.addDefine(p,void 0,Ce.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=gt(e.uniformMap,s.uniformMap)};function XVe(e){let t={};for(let n=0;n<e.length;n++){let i=Jt.getAttributeInfo(e[n]);t[i.variableName]=i}return t}var KVe={position:"vec3",normal:"vec3",tangent:"vec3",bitangent:"vec3",texCoord:"vec2",color:"vec4",joints:"ivec4",weights:"vec4"},ZVe={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 Noe(e){let t=e.replace(/_[0-9]+$/,"");t=t.replace(/(MC|EC)$/,"");let n=KVe[t],i=ZVe[t];if(u(n))return{attributeField:[n,e],value:i}}function $Ve(e,t){if(!u(e.vertexShaderText))return{enabled:!1};let n=e.usedVariablesVertex.attributeSet,i=Foe(t,n,!1),o=Boe(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 l=o[c],f=Noe(l);if(!u(f))return Xs._oneTimeWarning("CustomShaderPipelineStage.incompatiblePrimitiveVS",`Primitive is missing attribute ${l}, disabling custom vertex shader`),{enabled:!1};s.push(f.attributeField),r=`vsInput.attributes.${l} = ${f.value};`,a.push(r)}return{enabled:!0,attributeFields:s,initializationLines:a}}function QVe(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 JVe(e,t){if(!u(e.fragmentShaderText))return{enabled:!1};let n=e.usedVariablesFragment.attributeSet,i=Foe(t,n,!0),o=Boe(t,n,!0),r,s=[],a=[];for(let l in i){if(!i.hasOwnProperty(l))continue;let d=[i[l].glslType,l];s.push(d),r=`fsInput.attributes.${l} = attributes.${l};`,a.push(r)}for(let l=0;l<o.length;l++){let f=o[l],d=Noe(f);if(!u(d))return Xs._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=QVe(e);return{enabled:!0,attributeFields:s.concat(c.attributeFields),initializationLines:c.initializationLines.concat(a)}}var eze={positionWC:!0,positionEC:!0};function Foe(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 Boe(e,t,n){let i=[];for(let o in t){if(!t.hasOwnProperty(o)||eze.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 tze(e,t){let n=XVe(t.attributes),i=$Ve(e,n),o=JVe(e,n),s=e.usedVariablesFragment.attributeSet.hasOwnProperty("positionWC")&&o.enabled;return{vertexLines:i,fragmentLines:o,customShaderEnabled:i.enabled||o.enabled,shouldComputePositionWC:s}}function nze(e,t){let n=Xs.STRUCT_ID_ATTRIBUTES_VS;e.addStruct(n,Xs.STRUCT_NAME_ATTRIBUTES,Ce.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=Xs.STRUCT_ID_VERTEX_INPUT,e.addStruct(n,Xs.STRUCT_NAME_VERTEX_INPUT,Ce.VERTEX),e.addStructField(n,Xs.STRUCT_NAME_ATTRIBUTES,"attributes"),e.addStructField(n,jg.STRUCT_NAME_FEATURE_IDS,"featureIds"),e.addStructField(n,lf.STRUCT_NAME_METADATA,"metadata"),e.addStructField(n,lf.STRUCT_NAME_METADATA_CLASS,"metadataClass"),e.addStructField(n,lf.STRUCT_NAME_METADATA_STATISTICS,"metadataStatistics");let r=Xs.FUNCTION_ID_INITIALIZE_INPUT_STRUCT_VS;e.addFunction(r,Xs.FUNCTION_SIGNATURE_INITIALIZE_INPUT_STRUCT_VS,Ce.VERTEX),e.addFunctionLines(r,o)}function ize(e,t){let n=Xs.STRUCT_ID_ATTRIBUTES_FS;e.addStruct(n,Xs.STRUCT_NAME_ATTRIBUTES,Ce.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=Xs.STRUCT_ID_FRAGMENT_INPUT,e.addStruct(n,Xs.STRUCT_NAME_FRAGMENT_INPUT,Ce.FRAGMENT),e.addStructField(n,Xs.STRUCT_NAME_ATTRIBUTES,"attributes"),e.addStructField(n,jg.STRUCT_NAME_FEATURE_IDS,"featureIds"),e.addStructField(n,lf.STRUCT_NAME_METADATA,"metadata"),e.addStructField(n,lf.STRUCT_NAME_METADATA_CLASS,"metadataClass"),e.addStructField(n,lf.STRUCT_NAME_METADATA_STATISTICS,"metadataStatistics");let r=Xs.FUNCTION_ID_INITIALIZE_INPUT_STRUCT_FS;e.addFunction(r,Xs.FUNCTION_SIGNATURE_INITIALIZE_INPUT_STRUCT_FS,Ce.FRAGMENT),e.addFunctionLines(r,o)}var oze=[];function rze(e,t,n){let{vertexLines:i,fragmentLines:o}=n,r=oze;i.enabled&&(nze(e,i),r.length=0,r.push("#line 0",t.vertexShaderText,dO),e.addVertexLines(r)),o.enabled&&(ize(e,o),r.length=0,r.push("#line 0",t.fragmentShaderText,hO),e.addFragmentLines(r))}var yO=Xs;var xO={name:"DequantizationPipelineStage",FUNCTION_ID_DEQUANTIZATION_STAGE_VS:"dequantizationStage",FUNCTION_SIGNATURE_DEQUANTIZATION_STAGE_VS:"void dequantizationStage(inout ProcessedAttributes attributes)"};xO.process=function(e,t,n){let i=e.shaderBuilder,o=e.model,r=u(o.classificationType);i.addDefine("USE_DEQUANTIZATION",void 0,Ce.VERTEX),i.addFunction(xO.FUNCTION_ID_DEQUANTIZATION_STAGE_VS,xO.FUNCTION_SIGNATURE_DEQUANTIZATION_STAGE_VS,Ce.VERTEX);let s=t.attributes;for(let a=0;a<s.length;a++){let c=s[a],l=c.quantization;if(!u(l))continue;let f=c.semantic===Tt.POSITION,d=c.semantic===Tt.TEXCOORD;if(r&&!f&&!d)continue;let p=Jt.getAttributeInfo(c);aze(i,p),sze(e,p)}};function sze(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,Ce.VERTEX),i[s]=function(){return r.normalizationRange}}else{let s=`model_quantizedVolumeOffset_${o}`,a=`model_quantizedVolumeStepSize_${o}`,c=t.glslType;n.addUniform(c,s,Ce.VERTEX),n.addUniform(c,a,Ce.VERTEX);let l=r.quantizedVolumeOffset,f=r.quantizedVolumeStepSize;/^color_\d+$/.test(o)&&(l=koe(l,0),f=koe(f,1)),i[s]=function(){return l},i[a]=function(){return f}}}function koe(e,t){return e instanceof oe?e:new oe(e.x,e.y,e.z,t)}function aze(e,t){let n=t.variableName,i=t.attribute.quantization,o;i.octEncoded?o=cze(n,i):o=lze(n),e.addFunctionLines(xO.FUNCTION_ID_DEQUANTIZATION_STAGE_VS,[o])}function cze(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 lze(e){let t=`attributes.${e}`,n=`a_quantized_${e}`,i=`model_quantizedVolumeOffset_${e}`,o=`model_quantizedVolumeStepSize_${e}`;return`${t} = ${i} + ${n} * ${o};`}var bO=xO;var TO=`void geometryStage(out ProcessedAttributes attributes)
  6003. {
  6004. attributes.positionMC = v_positionMC;
  6005. attributes.positionEC = v_positionEC;
  6006. #ifdef COMPUTE_POSITION_WC_CUSTOM_SHADER
  6007. attributes.positionWC = v_positionWC;
  6008. #endif
  6009. #ifdef HAS_NORMALS
  6010. // renormalize after interpolation
  6011. attributes.normalEC = normalize(v_normalEC);
  6012. #endif
  6013. #ifdef HAS_TANGENTS
  6014. attributes.tangentEC = normalize(v_tangentEC);
  6015. #endif
  6016. #ifdef HAS_BITANGENTS
  6017. attributes.bitangentEC = normalize(v_bitangentEC);
  6018. #endif
  6019. // Everything else is dynamically generated in GeometryPipelineStage
  6020. setDynamicVaryings(attributes);
  6021. }
  6022. `;var AO=`vec4 geometryStage(inout ProcessedAttributes attributes, mat4 modelView, mat3 normal)
  6023. {
  6024. vec4 computedPosition;
  6025. // Compute positions in different coordinate systems
  6026. vec3 positionMC = attributes.positionMC;
  6027. v_positionMC = positionMC;
  6028. v_positionEC = (modelView * vec4(positionMC, 1.0)).xyz;
  6029. #if defined(USE_2D_POSITIONS) || defined(USE_2D_INSTANCING)
  6030. vec3 position2D = attributes.position2D;
  6031. vec3 positionEC = (u_modelView2D * vec4(position2D, 1.0)).xyz;
  6032. computedPosition = czm_projection * vec4(positionEC, 1.0);
  6033. #else
  6034. computedPosition = czm_projection * vec4(v_positionEC, 1.0);
  6035. #endif
  6036. // Sometimes the custom shader and/or style needs this
  6037. #if defined(COMPUTE_POSITION_WC_CUSTOM_SHADER) || defined(COMPUTE_POSITION_WC_STYLE)
  6038. // Note that this is a 32-bit position which may result in jitter on small
  6039. // scales.
  6040. v_positionWC = (czm_model * vec4(positionMC, 1.0)).xyz;
  6041. #endif
  6042. #ifdef HAS_NORMALS
  6043. v_normalEC = normalize(normal * attributes.normalMC);
  6044. #endif
  6045. #ifdef HAS_TANGENTS
  6046. v_tangentEC = normalize(normal * attributes.tangentMC);
  6047. #endif
  6048. #ifdef HAS_BITANGENTS
  6049. v_bitangentEC = normalize(normal * attributes.bitangentMC);
  6050. #endif
  6051. // All other varyings need to be dynamically generated in
  6052. // GeometryPipelineStage
  6053. setDynamicVaryings(attributes);
  6054. return computedPosition;
  6055. }
  6056. `;var sC=`vec2 computeSt(float featureId)
  6057. {
  6058. float stepX = model_textureStep.x;
  6059. float centerX = model_textureStep.y;
  6060. #ifdef MULTILINE_BATCH_TEXTURE
  6061. float stepY = model_textureStep.z;
  6062. float centerY = model_textureStep.w;
  6063. float xId = mod(featureId, model_textureDimensions.x);
  6064. float yId = floor(featureId / model_textureDimensions.x);
  6065. return vec2(centerX + (xId * stepX), centerY + (yId * stepY));
  6066. #else
  6067. return vec2(centerX + (featureId * stepX), 0.5);
  6068. #endif
  6069. }
  6070. void selectedFeatureIdStage(out SelectedFeature feature, FeatureIds featureIds)
  6071. {
  6072. int featureId = featureIds.SELECTED_FEATURE_ID;
  6073. if (featureId < model_featuresLength)
  6074. {
  6075. vec2 featureSt = computeSt(float(featureId));
  6076. feature.id = featureId;
  6077. feature.st = featureSt;
  6078. feature.color = texture(model_batchTexture, featureSt);
  6079. }
  6080. // Floating point comparisons can be unreliable in GLSL, so we
  6081. // increment the feature ID to make sure it's always greater
  6082. // then the model_featuresLength - a condition we check for in the
  6083. // pick ID, to avoid sampling the pick texture if the feature ID is
  6084. // greater than the number of features.
  6085. else
  6086. {
  6087. feature.id = model_featuresLength + 1;
  6088. feature.st = vec2(0.0);
  6089. feature.color = vec4(1.0);
  6090. }
  6091. #ifdef HAS_NULL_FEATURE_ID
  6092. if (featureId == model_nullFeatureId) {
  6093. feature.id = featureId;
  6094. feature.st = vec2(0.0);
  6095. feature.color = vec4(1.0);
  6096. }
  6097. #endif
  6098. }
  6099. `;var CO={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)"};CO.process=function(e,t,n){let i=e.shaderBuilder;e.hasPropertyTable=!0;let o=e.model,r=e.runtimeNode.node,s=uze(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),fze(i);let c=s.featureIds.nullFeatureId,l=e.uniformMap;u(c)&&(i.addDefine("HAS_NULL_FEATURE_ID",void 0,a),i.addUniform("int","model_nullFeatureId",a),l.model_nullFeatureId=function(){return c}),s.shaderDestination===Ce.BOTH&&i.addVertexLines(sC),i.addFragmentLines(sC)};function Uoe(e){return e instanceof Mt.FeatureIdTexture?"HAS_SELECTED_FEATURE_ID_TEXTURE":"HAS_SELECTED_FEATURE_ID_ATTRIBUTE"}function Voe(e){return e instanceof Mt.FeatureIdTexture?Ce.FRAGMENT:Ce.BOTH}function uze(e,t,n){let i,o;return u(t.instances)&&(o=Jt.getFeatureIdsByLabel(t.instances.featureIds,e.instanceFeatureIdLabel),u(o))?(i=y(o.label,o.positionalLabel),{featureIds:o,variableName:i,shaderDestination:Voe(o),featureIdDefine:Uoe(o)}):(o=Jt.getFeatureIdsByLabel(n.featureIds,e.featureIdLabel),i=y(o.label,o.positionalLabel),{featureIds:o,variableName:i,shaderDestination:Voe(o),featureIdDefine:Uoe(o)})}function fze(e){e.addStructField(CO.STRUCT_ID_SELECTED_FEATURE,"int","id"),e.addStructField(CO.STRUCT_ID_SELECTED_FEATURE,"vec2","st"),e.addStructField(CO.STRUCT_ID_SELECTED_FEATURE,"vec4","color")}var Yg=CO;var Ds={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)"};Ds.process=function(e,t,n){let i=e.shaderBuilder,o=e.model;i.addStruct(Ds.STRUCT_ID_PROCESSED_ATTRIBUTES_VS,"ProcessedAttributes",Ce.VERTEX),i.addStruct(Ds.STRUCT_ID_PROCESSED_ATTRIBUTES_FS,"ProcessedAttributes",Ce.FRAGMENT),i.addStruct(Yg.STRUCT_ID_SELECTED_FEATURE,Yg.STRUCT_NAME_SELECTED_FEATURE,Ce.BOTH),i.addFunction(Ds.FUNCTION_ID_INITIALIZE_ATTRIBUTES,Ds.FUNCTION_SIGNATURE_INITIALIZE_ATTRIBUTES,Ce.VERTEX),i.addVarying("vec3","v_positionWC"),i.addVarying("vec3","v_positionEC"),i.addStructField(Ds.STRUCT_ID_PROCESSED_ATTRIBUTES_FS,"vec3","positionWC"),i.addStructField(Ds.STRUCT_ID_PROCESSED_ATTRIBUTES_FS,"vec3","positionEC"),i.addFunction(Ds.FUNCTION_ID_SET_DYNAMIC_VARYINGS_VS,Ds.FUNCTION_SIGNATURE_SET_DYNAMIC_VARYINGS,Ce.VERTEX),i.addFunction(Ds.FUNCTION_ID_SET_DYNAMIC_VARYINGS_FS,Ds.FUNCTION_SIGNATURE_SET_DYNAMIC_VARYINGS,Ce.FRAGMENT),o.type===or.TILE_PNTS&&i.addDefine("HAS_SRGB_COLOR",void 0,Ce.FRAGMENT);let s=n.mode!==te.SCENE3D&&!n.scene3DOnly&&o._projectTo2D,a=u(e.runtimeNode.node.instances),c=s&&!a,l=t.attributes.length;for(let f=0;f<l;f++){let d=t.attributes[f],p=on.getAttributeLocationCount(d.type),g=d.semantic===Tt.POSITION,m;p>1?(m=e.attributeIndex,e.attributeIndex+=p):g&&!c?m=0:m=e.attributeIndex++,dze(e,d,m,p,s,a)}Tze(i,t.attributes),t.primitiveType===Me.POINTS&&i.addDefine("PRIMITIVE_TYPE_POINTS"),i.addVertexLines(AO),i.addFragmentLines(TO)};function dze(e,t,n,i,o,r){let s=e.shaderBuilder,a=Jt.getAttributeInfo(t),c=o&&!r;i>1?pze(e,t,n,i):mze(e,t,n,c),gze(s,a,c),_ze(s,a),u(t.semantic)&&hze(s,t),yze(s,a,o),xze(s,a,c),bze(s,a)}function hze(e,t){let n=t.semantic,i=t.setIndex;switch(n){case Tt.NORMAL:e.addDefine("HAS_NORMALS");break;case Tt.TANGENT:e.addDefine("HAS_TANGENTS");break;case Tt.FEATURE_ID:e.addDefine(`HAS${n}_${i}`);break;case Tt.TEXCOORD:case Tt.COLOR:e.addDefine(`HAS_${n}_${i}`)}}function mze(e,t,n,i){let o=t.quantization,r,s;u(o)?(r=o.type,s=o.componentDatatype):(r=t.type,s=t.componentDatatype);let a=t.semantic,c=t.setIndex;a===Tt.FEATURE_ID&&c>=e.featureIdVertexAttributeSetIndex&&(e.featureIdVertexAttributeSetIndex=c+1);let l=a===Tt.POSITION,f=l?0:n,d=on.getNumberOfComponents(r),p={index:f,value:u(t.buffer)?void 0:t.constant,vertexBuffer:t.buffer,count:t.count,componentsPerAttribute:d,componentDatatype:s,offsetInBytes:t.byteOffset,strideInBytes:t.byteStride,normalize:t.normalized};if(e.attributes.push(p),!l||!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 pze(e,t,n,i){let o=t.quantization,r,s;u(o)?(r=o.type,s=o.componentDatatype):(r=t.type,s=t.componentDatatype);let a=t.normalized,l=on.getNumberOfComponents(r)/i,f=X.getSizeInBytes(s),d=l*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:l,componentDatatype:s,offsetInBytes:m,strideInBytes:p,normalize:a};e.attributes.push(x)}}function _ze(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 gze(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===Tt.POSITION;a?e.setPositionAttribute(s,r):e.addAttribute(s,r),a&&n&&e.addAttribute("vec3","a_position2D")}function yze(e,t,n){let i=Ds.STRUCT_ID_PROCESSED_ATTRIBUTES_VS,o=Ds.STRUCT_ID_PROCESSED_ATTRIBUTES_FS,r=t.variableName;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,t.glslType,r),e.addStructField(o,t.glslType,r)),r==="positionMC"&&n&&e.addStructField(i,"vec3","position2D")}function xze(e,t,n){let i=Ds.FUNCTION_ID_INITIALIZE_ATTRIBUTES,o=t.variableName;if(o==="positionMC"&&n){let a="attributes.position2D = a_position2D;";e.addFunctionLines(i,[a])}if(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 bze(e,t){let n=t.attribute.semantic,i=t.attribute.setIndex;if(u(n)&&!u(i))return;let o=Ds.FUNCTION_ID_SET_DYNAMIC_VARYINGS_VS,r=t.variableName,s=`v_${r} = attributes.${r};`;e.addFunctionLines(o,[s]),o=Ds.FUNCTION_ID_SET_DYNAMIC_VARYINGS_FS,s=`attributes.${r} = v_${r};`,e.addFunctionLines(o,[s])}function Tze(e,t){let n=!1,i=!1;for(let o=0;o<t.length;o++){let r=t[o];r.semantic===Tt.NORMAL?n=!0:r.semantic===Tt.TANGENT&&(i=!0)}!n||!i||(e.addDefine("HAS_BITANGENTS"),e.addVarying("vec3","v_bitangentEC"),e.addStructField(Ds.STRUCT_ID_PROCESSED_ATTRIBUTES_VS,"vec3","bitangentMC"),e.addStructField(Ds.STRUCT_ID_PROCESSED_ATTRIBUTES_FS,"vec3","bitangentEC"))}var EO=Ds;var SO=`#ifdef LIGHTING_PBR
  6100. vec3 computePbrLighting(czm_modelMaterial inputMaterial, ProcessedAttributes attributes)
  6101. {
  6102. czm_pbrParameters pbrParameters;
  6103. pbrParameters.diffuseColor = inputMaterial.diffuse;
  6104. pbrParameters.f0 = inputMaterial.specular;
  6105. pbrParameters.roughness = inputMaterial.roughness;
  6106. #ifdef USE_CUSTOM_LIGHT_COLOR
  6107. vec3 lightColorHdr = model_lightColorHdr;
  6108. #else
  6109. vec3 lightColorHdr = czm_lightColorHdr;
  6110. #endif
  6111. vec3 color = inputMaterial.diffuse;
  6112. #ifdef HAS_NORMALS
  6113. color = czm_pbrLighting(
  6114. attributes.positionEC,
  6115. inputMaterial.normalEC,
  6116. czm_lightDirectionEC,
  6117. lightColorHdr,
  6118. pbrParameters
  6119. );
  6120. #ifdef USE_IBL_LIGHTING
  6121. color += imageBasedLightingStage(
  6122. attributes.positionEC,
  6123. inputMaterial.normalEC,
  6124. czm_lightDirectionEC,
  6125. lightColorHdr,
  6126. pbrParameters
  6127. );
  6128. #endif
  6129. #endif
  6130. color *= inputMaterial.occlusion;
  6131. color += inputMaterial.emissive;
  6132. // In HDR mode, the frame buffer is in linear color space. The
  6133. // post-processing stages (see PostProcessStageCollection) will handle
  6134. // tonemapping. However, if HDR is not enabled, we must tonemap else large
  6135. // values may be clamped to 1.0
  6136. #ifndef HDR
  6137. color = czm_acesTonemapping(color);
  6138. #endif
  6139. return color;
  6140. }
  6141. #endif
  6142. void lightingStage(inout czm_modelMaterial material, ProcessedAttributes attributes)
  6143. {
  6144. // Even though the lighting will only set the diffuse color,
  6145. // pass all other properties so further stages have access to them.
  6146. vec3 color = vec3(0.0);
  6147. #ifdef LIGHTING_PBR
  6148. color = computePbrLighting(material, attributes);
  6149. #else // unlit
  6150. color = material.diffuse;
  6151. #endif
  6152. #ifdef HAS_POINT_CLOUD_COLOR_STYLE
  6153. // The colors resulting from point cloud styles are adjusted differently.
  6154. color = czm_gammaCorrect(color);
  6155. #elif !defined(HDR)
  6156. // If HDR is not enabled, the frame buffer stores sRGB colors rather than
  6157. // linear colors so the linear value must be converted.
  6158. color = czm_linearToSrgb(color);
  6159. #endif
  6160. material.diffuse = color;
  6161. }
  6162. `;var Aze={UNLIT:0,PBR:1},Qh=Object.freeze(Aze);var zoe={name:"LightingPipelineStage"};zoe.process=function(e,t){let n=e.model,i=e.lightingOptions,o=e.shaderBuilder;if(u(n.lightColor)){o.addDefine("USE_CUSTOM_LIGHT_COLOR",void 0,Ce.FRAGMENT),o.addUniform("vec3","model_lightColorHdr",Ce.FRAGMENT);let s=e.uniformMap;s.model_lightColorHdr=function(){return n.lightColor}}i.lightingModel===Qh.PBR?o.addDefine("LIGHTING_PBR",void 0,Ce.FRAGMENT):o.addDefine("LIGHTING_UNLIT",void 0,Ce.FRAGMENT),o.addFragmentLines(SO)};var wO=zoe;var vO=`// If the style color is white, it implies the feature has not been styled.
  6163. bool isDefaultStyleColor(vec3 color)
  6164. {
  6165. return all(greaterThan(color, vec3(1.0 - czm_epsilon3)));
  6166. }
  6167. vec3 blend(vec3 sourceColor, vec3 styleColor, float styleColorBlend)
  6168. {
  6169. vec3 blendColor = mix(sourceColor, styleColor, styleColorBlend);
  6170. vec3 color = isDefaultStyleColor(styleColor.rgb) ? sourceColor : blendColor;
  6171. return color;
  6172. }
  6173. vec2 computeTextureTransform(vec2 texCoord, mat3 textureTransform)
  6174. {
  6175. return vec2(textureTransform * vec3(texCoord, 1.0));
  6176. }
  6177. #ifdef HAS_NORMALS
  6178. vec3 computeNormal(ProcessedAttributes attributes)
  6179. {
  6180. // Geometry normal. This is already normalized
  6181. vec3 ng = attributes.normalEC;
  6182. vec3 normal = ng;
  6183. #if defined(HAS_NORMAL_TEXTURE) && !defined(HAS_WIREFRAME)
  6184. vec2 normalTexCoords = TEXCOORD_NORMAL;
  6185. #ifdef HAS_NORMAL_TEXTURE_TRANSFORM
  6186. normalTexCoords = computeTextureTransform(normalTexCoords, u_normalTextureTransform);
  6187. #endif
  6188. // If HAS_BITANGENTS is set, then HAS_TANGENTS is also set
  6189. #ifdef HAS_BITANGENTS
  6190. vec3 t = attributes.tangentEC;
  6191. vec3 b = attributes.bitangentEC;
  6192. mat3 tbn = mat3(t, b, ng);
  6193. vec3 n = texture(u_normalTexture, normalTexCoords).rgb;
  6194. normal = normalize(tbn * (2.0 * n - 1.0));
  6195. #elif (__VERSION__ == 300 || defined(GL_OES_standard_derivatives))
  6196. // If derivatives are available (not IE 10), compute tangents
  6197. vec3 positionEC = attributes.positionEC;
  6198. vec3 pos_dx = dFdx(positionEC);
  6199. vec3 pos_dy = dFdy(positionEC);
  6200. vec3 tex_dx = dFdx(vec3(normalTexCoords,0.0));
  6201. vec3 tex_dy = dFdy(vec3(normalTexCoords,0.0));
  6202. vec3 t = (tex_dy.t * pos_dx - tex_dx.t * pos_dy) / (tex_dx.s * tex_dy.t - tex_dy.s * tex_dx.t);
  6203. t = normalize(t - ng * dot(ng, t));
  6204. vec3 b = normalize(cross(ng, t));
  6205. mat3 tbn = mat3(t, b, ng);
  6206. vec3 n = texture(u_normalTexture, normalTexCoords).rgb;
  6207. normal = normalize(tbn * (2.0 * n - 1.0));
  6208. #endif
  6209. #endif
  6210. #ifdef HAS_DOUBLE_SIDED_MATERIAL
  6211. if (czm_backFacing()) {
  6212. normal = -normal;
  6213. }
  6214. #endif
  6215. return normal;
  6216. }
  6217. #endif
  6218. void materialStage(inout czm_modelMaterial material, ProcessedAttributes attributes, SelectedFeature feature)
  6219. {
  6220. #ifdef HAS_NORMALS
  6221. material.normalEC = computeNormal(attributes);
  6222. #endif
  6223. vec4 baseColorWithAlpha = vec4(1.0);
  6224. // Regardless of whether we use PBR, set a base color
  6225. #ifdef HAS_BASE_COLOR_TEXTURE
  6226. vec2 baseColorTexCoords = TEXCOORD_BASE_COLOR;
  6227. #ifdef HAS_BASE_COLOR_TEXTURE_TRANSFORM
  6228. baseColorTexCoords = computeTextureTransform(baseColorTexCoords, u_baseColorTextureTransform);
  6229. #endif
  6230. baseColorWithAlpha = czm_srgbToLinear(texture(u_baseColorTexture, baseColorTexCoords));
  6231. #ifdef HAS_BASE_COLOR_FACTOR
  6232. baseColorWithAlpha *= u_baseColorFactor;
  6233. #endif
  6234. #elif defined(HAS_BASE_COLOR_FACTOR)
  6235. baseColorWithAlpha = u_baseColorFactor;
  6236. #endif
  6237. #ifdef HAS_POINT_CLOUD_COLOR_STYLE
  6238. baseColorWithAlpha = v_pointCloudColor;
  6239. #elif defined(HAS_COLOR_0)
  6240. vec4 color = attributes.color_0;
  6241. // .pnts files store colors in the sRGB color space
  6242. #ifdef HAS_SRGB_COLOR
  6243. color = czm_srgbToLinear(color);
  6244. #endif
  6245. baseColorWithAlpha *= color;
  6246. #endif
  6247. material.diffuse = baseColorWithAlpha.rgb;
  6248. material.alpha = baseColorWithAlpha.a;
  6249. #ifdef USE_CPU_STYLING
  6250. material.diffuse = blend(material.diffuse, feature.color.rgb, model_colorBlend);
  6251. #endif
  6252. #ifdef HAS_OCCLUSION_TEXTURE
  6253. vec2 occlusionTexCoords = TEXCOORD_OCCLUSION;
  6254. #ifdef HAS_OCCLUSION_TEXTURE_TRANSFORM
  6255. occlusionTexCoords = computeTextureTransform(occlusionTexCoords, u_occlusionTextureTransform);
  6256. #endif
  6257. material.occlusion = texture(u_occlusionTexture, occlusionTexCoords).r;
  6258. #endif
  6259. #ifdef HAS_EMISSIVE_TEXTURE
  6260. vec2 emissiveTexCoords = TEXCOORD_EMISSIVE;
  6261. #ifdef HAS_EMISSIVE_TEXTURE_TRANSFORM
  6262. emissiveTexCoords = computeTextureTransform(emissiveTexCoords, u_emissiveTextureTransform);
  6263. #endif
  6264. vec3 emissive = czm_srgbToLinear(texture(u_emissiveTexture, emissiveTexCoords).rgb);
  6265. #ifdef HAS_EMISSIVE_FACTOR
  6266. emissive *= u_emissiveFactor;
  6267. #endif
  6268. material.emissive = emissive;
  6269. #elif defined(HAS_EMISSIVE_FACTOR)
  6270. material.emissive = u_emissiveFactor;
  6271. #endif
  6272. #if defined(LIGHTING_PBR) && defined(USE_SPECULAR_GLOSSINESS)
  6273. #ifdef HAS_SPECULAR_GLOSSINESS_TEXTURE
  6274. vec2 specularGlossinessTexCoords = TEXCOORD_SPECULAR_GLOSSINESS;
  6275. #ifdef HAS_SPECULAR_GLOSSINESS_TEXTURE_TRANSFORM
  6276. specularGlossinessTexCoords = computeTextureTransform(specularGlossinessTexCoords, u_specularGlossinessTextureTransform);
  6277. #endif
  6278. vec4 specularGlossiness = czm_srgbToLinear(texture(u_specularGlossinessTexture, specularGlossinessTexCoords));
  6279. vec3 specular = specularGlossiness.rgb;
  6280. float glossiness = specularGlossiness.a;
  6281. #ifdef HAS_SPECULAR_FACTOR
  6282. specular *= u_specularFactor;
  6283. #endif
  6284. #ifdef HAS_GLOSSINESS_FACTOR
  6285. glossiness *= u_glossinessFactor;
  6286. #endif
  6287. #else
  6288. #ifdef HAS_SPECULAR_FACTOR
  6289. vec3 specular = clamp(u_specularFactor, vec3(0.0), vec3(1.0));
  6290. #else
  6291. vec3 specular = vec3(1.0);
  6292. #endif
  6293. #ifdef HAS_GLOSSINESS_FACTOR
  6294. float glossiness = clamp(u_glossinessFactor, 0.0, 1.0);
  6295. #else
  6296. float glossiness = 1.0;
  6297. #endif
  6298. #endif
  6299. #ifdef HAS_DIFFUSE_TEXTURE
  6300. vec2 diffuseTexCoords = TEXCOORD_DIFFUSE;
  6301. #ifdef HAS_DIFFUSE_TEXTURE_TRANSFORM
  6302. diffuseTexCoords = computeTextureTransform(diffuseTexCoords, u_diffuseTextureTransform);
  6303. #endif
  6304. vec4 diffuse = czm_srgbToLinear(texture(u_diffuseTexture, diffuseTexCoords));
  6305. #ifdef HAS_DIFFUSE_FACTOR
  6306. diffuse *= u_diffuseFactor;
  6307. #endif
  6308. #elif defined(HAS_DIFFUSE_FACTOR)
  6309. vec4 diffuse = clamp(u_diffuseFactor, vec4(0.0), vec4(1.0));
  6310. #else
  6311. vec4 diffuse = vec4(1.0);
  6312. #endif
  6313. czm_pbrParameters parameters = czm_pbrSpecularGlossinessMaterial(
  6314. diffuse.rgb,
  6315. specular,
  6316. glossiness
  6317. );
  6318. material.diffuse = parameters.diffuseColor;
  6319. // the specular glossiness extension's alpha overrides anything set
  6320. // by the base material.
  6321. material.alpha = diffuse.a;
  6322. material.specular = parameters.f0;
  6323. material.roughness = parameters.roughness;
  6324. #elif defined(LIGHTING_PBR)
  6325. #ifdef HAS_METALLIC_ROUGHNESS_TEXTURE
  6326. vec2 metallicRoughnessTexCoords = TEXCOORD_METALLIC_ROUGHNESS;
  6327. #ifdef HAS_METALLIC_ROUGHNESS_TEXTURE_TRANSFORM
  6328. metallicRoughnessTexCoords = computeTextureTransform(metallicRoughnessTexCoords, u_metallicRoughnessTextureTransform);
  6329. #endif
  6330. vec3 metallicRoughness = texture(u_metallicRoughnessTexture, metallicRoughnessTexCoords).rgb;
  6331. float metalness = clamp(metallicRoughness.b, 0.0, 1.0);
  6332. float roughness = clamp(metallicRoughness.g, 0.04, 1.0);
  6333. #ifdef HAS_METALLIC_FACTOR
  6334. metalness *= u_metallicFactor;
  6335. #endif
  6336. #ifdef HAS_ROUGHNESS_FACTOR
  6337. roughness *= u_roughnessFactor;
  6338. #endif
  6339. #else
  6340. #ifdef HAS_METALLIC_FACTOR
  6341. float metalness = clamp(u_metallicFactor, 0.0, 1.0);
  6342. #else
  6343. float metalness = 1.0;
  6344. #endif
  6345. #ifdef HAS_ROUGHNESS_FACTOR
  6346. float roughness = clamp(u_roughnessFactor, 0.04, 1.0);
  6347. #else
  6348. float roughness = 1.0;
  6349. #endif
  6350. #endif
  6351. czm_pbrParameters parameters = czm_pbrMetallicRoughnessMaterial(
  6352. material.diffuse,
  6353. metalness,
  6354. roughness
  6355. );
  6356. material.diffuse = parameters.diffuseColor;
  6357. material.specular = parameters.f0;
  6358. material.roughness = parameters.roughness;
  6359. #endif
  6360. }
  6361. `;var Cze=Mt.Material,U6=Mt.MetallicRoughness,V6=Mt.SpecularGlossiness,Hoe={name:"MaterialPipelineStage",_processTexture:Xg,_processTextureTransform:Goe};Hoe.process=function(e,t,n){let i=t.material,o=e.model,r=u(o.classificationType),s=r,a=e.uniformMap,c=e.shaderBuilder,l=n.context.defaultTexture,f=n.context.defaultNormalTexture,d=n.context.defaultEmissiveTexture;Eze(i,a,c,l,f,d,s),u(i.specularGlossiness)?Sze(i,a,c,l,s):wze(i,a,c,l,s);let p=Jt.getAttributeBySemantic(t,Tt.NORMAL),g=e.lightingOptions;i.unlit||!p||r?g.lightingModel=Qh.UNLIT:g.lightingModel=Qh.PBR;let m=o.backFaceCulling&&!i.doubleSided;e.renderStateOptions.cull.enabled=m;let x=e.alphaOptions;i.alphaMode===Zh.BLEND?x.pass=Ee.TRANSLUCENT:i.alphaMode===Zh.MASK&&(x.alphaCutoff=i.alphaCutoff),c.addFragmentLines(vO),i.doubleSided&&c.addDefine("HAS_DOUBLE_SIDED_MATERIAL",void 0,Ce.BOTH)};function Goe(e,t,n,i,o){let r=`HAS_${o}_TEXTURE_TRANSFORM`;e.addDefine(r,void 0,Ce.FRAGMENT);let s=`${i}Transform`;e.addUniform("mat3",s,Ce.FRAGMENT),t[s]=function(){return n.transform}}function Xg(e,t,n,i,o,r){e.addUniform("sampler2D",i,Ce.FRAGMENT),t[i]=function(){return y(n.texture,r)};let s=`HAS_${o}_TEXTURE`;e.addDefine(s,void 0,Ce.FRAGMENT);let c=`v_texCoord_${n.texCoord}`,l=`TEXCOORD_${o}`;e.addDefine(l,c,Ce.FRAGMENT);let f=n.transform;u(f)&&!Q.equals(f,Q.IDENTITY)&&Goe(e,t,n,i,o)}function Eze(e,t,n,i,o,r,s){let a=e.emissiveFactor;if(u(a)&&!h.equals(a,Cze.DEFAULT_EMISSIVE_FACTOR)){n.addUniform("vec3","u_emissiveFactor",Ce.FRAGMENT),t.u_emissiveFactor=function(){return e.emissiveFactor},n.addDefine("HAS_EMISSIVE_FACTOR",void 0,Ce.FRAGMENT);let f=e.emissiveTexture;u(f)&&!s&&Xg(n,t,f,"u_emissiveTexture","EMISSIVE",r)}let c=e.normalTexture;u(c)&&!s&&Xg(n,t,c,"u_normalTexture","NORMAL",o);let l=e.occlusionTexture;u(l)&&!s&&Xg(n,t,l,"u_occlusionTexture","OCCLUSION",i)}function Sze(e,t,n,i,o){let r=e.specularGlossiness;n.addDefine("USE_SPECULAR_GLOSSINESS",void 0,Ce.FRAGMENT);let s=r.diffuseTexture;u(s)&&!o&&Xg(n,t,s,"u_diffuseTexture","DIFFUSE",i);let a=r.diffuseFactor;u(a)&&!oe.equals(a,V6.DEFAULT_DIFFUSE_FACTOR)&&(n.addUniform("vec4","u_diffuseFactor",Ce.FRAGMENT),t.u_diffuseFactor=function(){return r.diffuseFactor},n.addDefine("HAS_DIFFUSE_FACTOR",void 0,Ce.FRAGMENT));let c=r.specularGlossinessTexture;u(c)&&!o&&Xg(n,t,c,"u_specularGlossinessTexture","SPECULAR_GLOSSINESS",i);let l=r.specularFactor;u(l)&&!h.equals(l,V6.DEFAULT_SPECULAR_FACTOR)&&(n.addUniform("vec3","u_specularFactor",Ce.FRAGMENT),t.u_specularFactor=function(){return r.specularFactor},n.addDefine("HAS_SPECULAR_FACTOR",void 0,Ce.FRAGMENT));let f=r.glossinessFactor;u(f)&&f!==V6.DEFAULT_GLOSSINESS_FACTOR&&(n.addUniform("float","u_glossinessFactor",Ce.FRAGMENT),t.u_glossinessFactor=function(){return r.glossinessFactor},n.addDefine("HAS_GLOSSINESS_FACTOR",void 0,Ce.FRAGMENT))}function wze(e,t,n,i,o){let r=e.metallicRoughness;n.addDefine("USE_METALLIC_ROUGHNESS",void 0,Ce.FRAGMENT);let s=r.baseColorTexture;u(s)&&!o&&Xg(n,t,s,"u_baseColorTexture","BASE_COLOR",i);let a=r.baseColorFactor;u(a)&&!oe.equals(a,U6.DEFAULT_BASE_COLOR_FACTOR)&&(n.addUniform("vec4","u_baseColorFactor",Ce.FRAGMENT),t.u_baseColorFactor=function(){return r.baseColorFactor},n.addDefine("HAS_BASE_COLOR_FACTOR",void 0,Ce.FRAGMENT));let c=r.metallicRoughnessTexture;u(c)&&!o&&Xg(n,t,c,"u_metallicRoughnessTexture","METALLIC_ROUGHNESS",i);let l=r.metallicFactor;u(l)&&l!==U6.DEFAULT_METALLIC_FACTOR&&(n.addUniform("float","u_metallicFactor",Ce.FRAGMENT),t.u_metallicFactor=function(){return r.metallicFactor},n.addDefine("HAS_METALLIC_FACTOR",void 0,Ce.FRAGMENT));let f=r.roughnessFactor;u(f)&&f!==U6.DEFAULT_ROUGHNESS_FACTOR&&(n.addUniform("float","u_roughnessFactor",Ce.FRAGMENT),t.u_roughnessFactor=function(){return r.roughnessFactor},n.addDefine("HAS_ROUGHNESS_FACTOR",void 0,Ce.FRAGMENT))}var DO=Hoe;var IO=`void morphTargetsStage(inout ProcessedAttributes attributes)
  6362. {
  6363. vec3 positionMC = attributes.positionMC;
  6364. attributes.positionMC = getMorphedPosition(positionMC);
  6365. #ifdef HAS_NORMALS
  6366. vec3 normalMC = attributes.normalMC;
  6367. attributes.normalMC = getMorphedNormal(normalMC);
  6368. #endif
  6369. #ifdef HAS_TANGENTS
  6370. vec3 tangentMC = attributes.tangentMC;
  6371. attributes.tangentMC = getMorphedTangent(tangentMC);
  6372. #endif
  6373. }`;var Aa={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)"};Aa.process=function(e,t){let n=e.shaderBuilder;n.addDefine("HAS_MORPH_TARGETS",void 0,Ce.VERTEX),Rze(n);let i=t.morphTargets.length;for(let a=0;a<i;a++){let c=t.morphTargets[a].attributes,l=c.length;for(let f=0;f<l;f++){let d=c[f],p=d.semantic;p!==Tt.POSITION&&p!==Tt.NORMAL&&p!==Tt.TANGENT||(Dze(e,d,e.attributeIndex,a),e.attributeIndex++)}}Mze(n);let r=e.runtimeNode.morphWeights.length;n.addUniform("float",`u_morphWeights[${r}]`,Ce.VERTEX),n.addVertexLines(IO);let s={u_morphWeights:function(){return e.runtimeNode.morphWeights}};e.uniformMap=gt(s,e.uniformMap)};var vze={attributeString:void 0,functionId:void 0};function Dze(e,t,n,i){let o=e.shaderBuilder;Ize(e,t,n);let r=Pze(t,vze);Oze(o,r,i)}function Ize(e,t,n){let i={index:n,value:u(t.buffer)?void 0:t.constant,vertexBuffer:t.buffer,componentsPerAttribute:on.getNumberOfComponents(t.type),componentDatatype:t.componentDatatype,offsetInBytes:t.byteOffset,strideInBytes:t.byteStride,normalize:t.normalized};e.attributes.push(i)}function Pze(e,t){switch(e.semantic){case Tt.POSITION:t.attributeString="Position",t.functionId=Aa.FUNCTION_ID_GET_MORPHED_POSITION;break;case Tt.NORMAL:t.attributeString="Normal",t.functionId=Aa.FUNCTION_ID_GET_MORPHED_NORMAL;break;case Tt.TANGENT:t.attributeString="Tangent",t.functionId=Aa.FUNCTION_ID_GET_MORPHED_TANGENT;break;default:break}return t}function Oze(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 Rze(e){e.addFunction(Aa.FUNCTION_ID_GET_MORPHED_POSITION,Aa.FUNCTION_SIGNATURE_GET_MORPHED_POSITION,Ce.VERTEX);let t="vec3 morphedPosition = position;";e.addFunctionLines(Aa.FUNCTION_ID_GET_MORPHED_POSITION,[t]),e.addFunction(Aa.FUNCTION_ID_GET_MORPHED_NORMAL,Aa.FUNCTION_SIGNATURE_GET_MORPHED_NORMAL,Ce.VERTEX);let n="vec3 morphedNormal = normal;";e.addFunctionLines(Aa.FUNCTION_ID_GET_MORPHED_NORMAL,[n]),e.addFunction(Aa.FUNCTION_ID_GET_MORPHED_TANGENT,Aa.FUNCTION_SIGNATURE_GET_MORPHED_TANGENT,Ce.VERTEX);let i="vec3 morphedTangent = tangent;";e.addFunctionLines(Aa.FUNCTION_ID_GET_MORPHED_TANGENT,[i])}function Mze(e){let t="return morphedPosition;";e.addFunctionLines(Aa.FUNCTION_ID_GET_MORPHED_POSITION,[t]);let n="return morphedNormal;";e.addFunctionLines(Aa.FUNCTION_ID_GET_MORPHED_NORMAL,[n]);let i="return morphedTangent;";e.addFunctionLines(Aa.FUNCTION_ID_GET_MORPHED_TANGENT,[i])}var PO=Aa;var Woe={name:"PickingPipelineStage"};Woe.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)Lze(e,t,a,i);else if(u(a))Nze(e,i);else{let c=joe(e),l=i.createPickId(c);s._pipelineResources.push(l),s._pickIds.push(l),r.addUniform("vec4","czm_pickColor",Ce.FRAGMENT);let f=e.uniformMap;f.czm_pickColor=function(){return l.color},e.pickId="czm_pickColor"}};function joe(e,t){let n=e.model;if(u(n.pickObject))return n.pickObject;let i={model:n,node:e.runtimeNode,primitive:e.runtimePrimitive},o;if(or.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,u(t)&&(o.instanceId=t),o}function Lze(e,t,n){let i=e.model,o,r,s=i.featureIdLabel,a=i.instanceFeatureIdLabel;u(i.featureTableId)?o=i.featureTableId:u(n)?(r=Jt.getFeatureIdsByLabel(n.featureIds,a),o=r.propertyTableId):(r=Jt.getFeatureIdsByLabel(t.featureIds,s),o=r.propertyTableId);let c=i.featureTables[o];e.shaderBuilder.addUniform("sampler2D","model_pickTexture",Ce.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 Nze(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=joe(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:Ne.STATIC_DRAW});a.vertexArrayDestroyable=!1;let c=!1;r.statistics.addBuffer(a,c),s.push(a);let l={index:e.attributeIndex++,vertexBuffer:a,componentsPerAttribute:4,componentDatatype:X.UNSIGNED_BYTE,normalize:!0,offsetInBytes:0,strideInBytes:0,instanceDivisor:1};e.attributes.push(l);let f=e.shaderBuilder;f.addDefine("USE_PICKING",void 0,Ce.BOTH),f.addAttribute("vec4","a_pickColor"),f.addVarying("vec4","v_pickColor"),e.pickId="v_pickColor"}var OO=Woe;var Fze={ADD:0,REPLACE:1},Bo=Object.freeze(Fze);var RO=`float getPointSizeFromAttenuation(vec3 positionEC) {
  6374. // Variables are packed into a single vector to minimize gl.uniformXXX() calls
  6375. float pointSize = model_pointCloudParameters.x;
  6376. float geometricError = model_pointCloudParameters.y;
  6377. float depthMultiplier = model_pointCloudParameters.z;
  6378. float depth = -positionEC.z;
  6379. return min((geometricError / depth) * depthMultiplier, pointSize);
  6380. }
  6381. #ifdef HAS_POINT_CLOUD_SHOW_STYLE
  6382. float pointCloudShowStylingStage(in ProcessedAttributes attributes, in Metadata metadata) {
  6383. float tiles3d_tileset_time = model_pointCloudParameters.w;
  6384. return float(getShowFromStyle(attributes, metadata, tiles3d_tileset_time));
  6385. }
  6386. #endif
  6387. #ifdef HAS_POINT_CLOUD_COLOR_STYLE
  6388. vec4 pointCloudColorStylingStage(in ProcessedAttributes attributes, in Metadata metadata) {
  6389. float tiles3d_tileset_time = model_pointCloudParameters.w;
  6390. return getColorFromStyle(attributes, metadata, tiles3d_tileset_time);
  6391. }
  6392. #endif
  6393. #ifdef HAS_POINT_CLOUD_POINT_SIZE_STYLE
  6394. float pointCloudPointSizeStylingStage(in ProcessedAttributes attributes, in Metadata metadata) {
  6395. float tiles3d_tileset_time = model_pointCloudParameters.w;
  6396. return float(getPointSizeFromStyle(attributes, metadata, tiles3d_tileset_time));
  6397. }
  6398. #elif defined(HAS_POINT_CLOUD_ATTENUATION)
  6399. float pointCloudPointSizeStylingStage(in ProcessedAttributes attributes, in Metadata metadata) {
  6400. return getPointSizeFromAttenuation(v_positionEC);
  6401. }
  6402. #endif
  6403. #ifdef HAS_POINT_CLOUD_BACK_FACE_CULLING
  6404. float pointCloudBackFaceCullingStage() {
  6405. #if defined(HAS_NORMALS) && !defined(HAS_DOUBLE_SIDED_MATERIAL)
  6406. // This needs to be computed in eye coordinates so we can't use attributes.normalMC
  6407. return step(-v_normalEC.z, 0.0);
  6408. #else
  6409. return 1.0;
  6410. #endif
  6411. }
  6412. #endif`;var Bze=new oe,Yoe={name:"PointCloudStylingPipelineStage"};Yoe.process=function(e,t,n){let i=e.shaderBuilder,o=e.model,r=o.style,s=o.structuralMetadata,a=u(s)?s.propertyAttributes:void 0,c=u(o.featureTableId)&&o.featureTables[o.featureTableId].featuresLength>0,l=!u(a)&&c;if(u(r)&&!l){let x=zze(a),b=Hze(r,x);Gze(i,b);let A=Wze(b).indexOf("normalMC")>=0,C=Jt.getAttributeBySemantic(t,Tt.NORMAL);if(A&&!C)throw new ue("Style references the NORMAL semantic but the point cloud does not have normals");i.addDefine("COMPUTE_POSITION_WC_STYLE",void 0,Ce.VERTEX),b.styleTranslucent&&(e.alphaOptions.pass=Ee.TRANSLUCENT)}let f=o.pointCloudShading;f.attenuation&&i.addDefine("HAS_POINT_CLOUD_ATTENUATION",void 0,Ce.VERTEX),f.backFaceCulling&&i.addDefine("HAS_POINT_CLOUD_BACK_FACE_CULLING",void 0,Ce.VERTEX);let d,p,g;or.is3DTiles(o.type)&&(p=!0,d=o.content,g=d.tile.refine===Bo.ADD),i.addUniform("vec4","model_pointCloudParameters",Ce.VERTEX),i.addVertexLines(RO);let m=e.uniformMap;m.model_pointCloudParameters=function(){let x=Bze,b=1;p&&(b=g?5:d.tileset.memoryAdjustedScreenSpaceError),x.x=y(f.maximumAttenuation,b),x.x*=n.pixelRatio;let T=kze(e,t,f,d);x.y=T*f.geometricErrorScale;let A=n.context,C=n.camera.frustum,S;return n.mode===te.SCENE2D||C instanceof $t?S=Number.POSITIVE_INFINITY:S=A.drawingBufferHeight/n.camera.frustum.sseDenominator,x.z=S,p&&(x.w=d.tileset.timeSinceLoad),x}};var qoe=new h;function kze(e,t,n,i){if(u(i)){let f=i.tile.geometricError;if(f>0)return f}if(u(n.baseResolution))return n.baseResolution;let o=Jt.getAttributeBySemantic(t,Tt.POSITION),r=o.count,s=e.runtimeNode.transform,a=h.subtract(o.max,o.min,qoe);a=F.multiplyByPointAsVector(s,a,qoe);let c=a.x*a.y*a.z;return P.cbrt(c/r)}var Uze={colorStyleFunction:void 0,showStyleFunction:void 0,pointSizeStyleFunction:void 0,styleTranslucent:!1},Vze={POSITION:"attributes.positionMC",POSITION_ABSOLUTE:"v_positionWC",COLOR:"attributes.color_0",NORMAL:"attributes.normalMC"};function zze(e){let t=He(Vze);if(!u(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 z6="ProcessedAttributes attributes, Metadata metadata, float tiles3d_tileset_time";function Hze(e,t){let n=Uze,i={translucent:!1};return n.colorStyleFunction=e.getColorShaderFunction(`getColorFromStyle(${z6})`,t,i),n.showStyleFunction=e.getShowShaderFunction(`getShowFromStyle(${z6})`,t,i),n.pointSizeStyleFunction=e.getPointSizeShaderFunction(`getPointSizeFromStyle(${z6})`,t,i),n.styleTranslucent=u(n.colorStyleFunction)&&i.translucent,n}function Gze(e,t){let n=t.colorStyleFunction;u(n)&&(e.addDefine("HAS_POINT_CLOUD_COLOR_STYLE",void 0,Ce.BOTH),e.addVertexLines(n),e.addVarying("vec4","v_pointCloudColor"));let i=t.showStyleFunction;u(i)&&(e.addDefine("HAS_POINT_CLOUD_SHOW_STYLE",void 0,Ce.VERTEX),e.addVertexLines(i));let o=t.pointSizeStyleFunction;u(o)&&(e.addDefine("HAS_POINT_CLOUD_POINT_SIZE_STYLE",void 0,Ce.VERTEX),e.addVertexLines(o))}function H6(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 Wze(e){let t=e.colorStyleFunction,n=e.showStyleFunction,i=e.pointSizeStyleFunction,o=[];return u(t)&&H6(t,o),u(n)&&H6(n,o),u(i)&&H6(i,o),o}var MO=Yoe;var LO=`void primitiveOutlineStage() {
  6413. v_outlineCoordinates = a_outlineCoordinates;
  6414. }
  6415. `;var NO=`void primitiveOutlineStage(inout czm_modelMaterial material) {
  6416. if (!model_showOutline) {
  6417. return;
  6418. }
  6419. float outlineX =
  6420. texture(model_outlineTexture, vec2(v_outlineCoordinates.x, 0.5)).r;
  6421. float outlineY =
  6422. texture(model_outlineTexture, vec2(v_outlineCoordinates.y, 0.5)).r;
  6423. float outlineZ =
  6424. texture(model_outlineTexture, vec2(v_outlineCoordinates.z, 0.5)).r;
  6425. float outlineness = max(outlineX, max(outlineY, outlineZ));
  6426. material.diffuse = mix(material.diffuse, model_outlineColor.rgb, model_outlineColor.a * outlineness);
  6427. }
  6428. `;var Xoe={name:"PrimitiveOutlinePipelineStage"};Xoe.process=function(e,t,n){let i=e.shaderBuilder,o=e.uniformMap;i.addDefine("HAS_PRIMITIVE_OUTLINE",void 0,Ce.BOTH),i.addAttribute("vec3","a_outlineCoordinates"),i.addVarying("vec3","v_outlineCoordinates");let r=t.outlineCoordinates,s={index:e.attributeIndex++,vertexBuffer:r.buffer,componentsPerAttribute:on.getNumberOfComponents(r.type),componentDatatype:r.componentDatatype,offsetInBytes:r.byteOffset,strideInBytes:r.byteStride,normalize:r.normalized};e.attributes.push(s),i.addUniform("sampler2D","model_outlineTexture",Ce.FRAGMENT);let a=Bx.createTexture(n.context);o.model_outlineTexture=function(){return a};let c=e.model;i.addUniform("vec4","model_outlineColor",Ce.FRAGMENT),o.model_outlineColor=function(){return c.outlineColor},i.addUniform("bool","model_showOutline",Ce.FRAGMENT),o.model_showOutline=function(){return c.showOutline},i.addVertexLines(LO),i.addFragmentLines(NO)};var FO=Xoe;var Koe={name:"PrimitiveStatisticsPipelineStage",_countGeometry:Zoe,_count2DPositions:$oe,_countMorphTargetAttributes:Qoe,_countMaterialTextures:Joe,_countFeatureIdTextures:ere,_countBinaryMetadata:tre};Koe.process=function(e,t,n){let i=e.model,o=i.statistics;Zoe(o,t),$oe(o,e.runtimePrimitive),Qoe(o,t),Joe(o,t.material),ere(o,t.featureIds),tre(o,i)};function Zoe(e,t){let n=u(t.indices)?t.indices.count:Jt.getAttributeBySemantic(t,"POSITION").count,i=t.primitiveType;i===Me.POINTS?e.pointsLength+=n:Me.isTriangles(i)&&(e.trianglesLength+=jze(i,n));let o=t.attributes,r=o.length;for(let c=0;c<r;c++){let l=o[c];if(u(l.buffer)){let f=u(l.typedArray);e.addBuffer(l.buffer,f)}}let s=t.outlineCoordinates;u(s)&&u(s.buffer)&&e.addBuffer(s.buffer,!1);let a=t.indices;if(u(a)&&u(a.buffer)){let c=u(a.typedArray);e.addBuffer(a.buffer,c)}}function jze(e,t){switch(e){case Me.TRIANGLES:return t/3;case Me.TRIANGLE_STRIP:case Me.TRIANGLE_FAN:return Math.max(t-2,0);default:return 0}}function $oe(e,t){let n=t.positionBuffer2D;u(n)&&e.addBuffer(n,!0)}function Qoe(e,t){let n=t.morphTargets;if(!u(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 l=s[c];u(l.buffer)&&e.addBuffer(l.buffer,i)}}}function Joe(e,t){let n=qze(t),i=n.length;for(let o=0;o<i;o++){let r=n[o];u(r)&&u(r.texture)&&e.addTexture(r.texture)}}function qze(e){let t=e.metallicRoughness,n=[e.emissiveTexture,e.normalTexture,e.occlusionTexture,t.baseColorTexture,t.metallicRoughnessTexture],i=e.specularGlossiness;return u(i)&&(n.push(i.diffuseTexture),n.push(i.specularGlossinessTexture)),n}function ere(e,t){let n=t.length;for(let i=0;i<n;i++){let o=t[i];if(o instanceof Mt.FeatureIdTexture){let r=o.textureReader;u(r.texture)&&e.addTexture(r.texture)}}}function tre(e,t){let n=t.structuralMetadata;u(n)&&(Yze(e,n),e.propertyTablesByteLength+=n.propertyTablesByteLength);let i=t.featureTables;if(!u(i))return;let o=i.length;for(let r=0;r<o;r++){let s=i[r];e.addBatchTexture(s.batchTexture)}}function Yze(e,t){let n=t.propertyTextures;if(!u(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 l=s[a].textureReader;u(l.texture)&&e.addTexture(l.texture)}}}var BO=Koe;var Xze=new F,Kze=new F,nre={name:"SceneMode2DPipelineStage"};nre.process=function(e,t,n){let i=Jt.getAttributeBySemantic(t,Tt.POSITION),o=e.shaderBuilder,r=e.model,s=r.sceneGraph.computedModelMatrix,a=e.runtimeNode.computedTransform,c=F.multiplyTransformation(s,a,Xze),l=Qze(e,c,n),f=e.runtimePrimitive;f.boundingSphere2D=l;let d=e.runtimeNode.node.instances;if(u(d))return;if(u(i.typedArray)){let x=t4e(i,c,l,n);f.positionBuffer2D=x,r._modelResources.push(x),i.typedArray=void 0}o.addDefine("USE_2D_POSITIONS",void 0,Ce.VERTEX),o.addUniform("mat4","u_modelView2D",Ce.VERTEX);let p=F.fromTranslation(l.center,new F),g=n.context,m={u_modelView2D:function(){return F.multiplyTransformation(g.uniformState.view,p,Kze)}};e.uniformMap=gt(m,e.uniformMap)};var Zze=new h,$ze=new h;function Qze(e,t,n){let i=F.multiplyByPoint(t,e.positionMin,Zze),o=Xi.computeActualWgs84Position(n,i,i),r=F.multiplyByPoint(t,e.positionMax,$ze),s=Xi.computeActualWgs84Position(n,r,r);return se.fromCornerPoints(o,s,new se)}var ire=new h;function Jze(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,ire),c=h.multiplyComponents(a,r,a),l=h.add(c,o,c);i[s]=l.x,i[s+1]=l.y,i[s+2]=l.z}return i}function e4e(e,t,n,i){let o;u(e.quantization)?o=Jze(e.typedArray,e.quantization):o=e.typedArray.slice();let r=e.byteOffset/Float32Array.BYTES_PER_ELEMENT,s=o.length,a=u(e.byteStride)?e.byteStride/Float32Array.BYTES_PER_ELEMENT:3;for(let c=r;c<s;c+=a){let l=h.fromArray(o,c,ire);if(isNaN(l.x)||isNaN(l.y)||isNaN(l.z))continue;let f=F.multiplyByPoint(t,l,l),d=Xi.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 t4e(e,t,n,i){let o=He(i);o.mode=te.COLUMBUS_VIEW;let r=n.center,s=e4e(e,t,r,o),a=ct.createVertexBuffer({context:i.context,typedArray:s,usage:Ne.STATIC_DRAW});return a.vertexArrayDestroyable=!1,a}var kO=nre;var UO=`void skinningStage(inout ProcessedAttributes attributes)
  6429. {
  6430. mat4 skinningMatrix = getSkinningMatrix();
  6431. mat3 skinningMatrixMat3 = mat3(skinningMatrix);
  6432. vec4 positionMC = vec4(attributes.positionMC, 1.0);
  6433. attributes.positionMC = vec3(skinningMatrix * positionMC);
  6434. #ifdef HAS_NORMALS
  6435. vec3 normalMC = attributes.normalMC;
  6436. attributes.normalMC = skinningMatrixMat3 * normalMC;
  6437. #endif
  6438. #ifdef HAS_TANGENTS
  6439. vec3 tangentMC = attributes.tangentMC;
  6440. attributes.tangentMC = skinningMatrixMat3 * tangentMC;
  6441. #endif
  6442. }`;var Hx={name:"SkinningPipelineStage",FUNCTION_ID_GET_SKINNING_MATRIX:"getSkinningMatrix",FUNCTION_SIGNATURE_GET_SKINNING_MATRIX:"mat4 getSkinningMatrix()"};Hx.process=function(e,t){let n=e.shaderBuilder;n.addDefine("HAS_SKINNING",void 0,Ce.VERTEX),i4e(n,t);let i=e.runtimeNode,o=i.computedJointMatrices;n.addUniform("mat4",`u_jointMatrices[${o.length}]`,Ce.VERTEX),n.addVertexLines(UO);let r={u_jointMatrices:function(){return i.computedJointMatrices}};e.uniformMap=gt(r,e.uniformMap)};function n4e(e){let t=-1,n=e.attributes,i=n.length;for(let o=0;o<i;o++){let r=n[o];(r.semantic===Tt.JOINTS||r.semantic===Tt.WEIGHTS)&&(t=Math.max(t,r.setIndex))}return t}function i4e(e,t){e.addFunction(Hx.FUNCTION_ID_GET_SKINNING_MATRIX,Hx.FUNCTION_SIGNATURE_GET_SKINNING_MATRIX,Ce.VERTEX);let n="mat4 skinnedMatrix = mat4(0);";e.addFunctionLines(Hx.FUNCTION_ID_GET_SKINNING_MATRIX,[n]);let i,o,r=["x","y","z","w"],s=n4e(t);for(i=0;i<=s;i++)for(o=0;o<=3;o++){let c=r[o],l=`skinnedMatrix += a_weights_${i}.${c} * u_jointMatrices[int(a_joints_${i}.${c})];`;e.addFunctionLines(Hx.FUNCTION_ID_GET_SKINNING_MATRIX,[l])}let a="return skinnedMatrix;";e.addFunctionLines(Hx.FUNCTION_ID_GET_SKINNING_MATRIX,[a])}var VO=Hx;var G6={};function o4e(e){let t=Fe.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 r4e(e,t){let n=t.length,i=Fe.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 s4e(e){let t=e-2,n=2+t*4,i=Fe.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 a4e(e,t){let i=t.length-2,o=2+i*4,r=Fe.createTypedArray(e,o),s=0;r[s++]=t[0],r[s++]=t[1];for(let a=0;a<i;a++){let c=t[a],l=t[a+1],f=t[a+2];r[s++]=l,r[s++]=f,r[s++]=f,r[s++]=c}return r}function c4e(e){let t=e-2,n=2+t*4,i=Fe.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 l4e(e,t){let i=t.length-2,o=2+i*4,r=Fe.createTypedArray(e,o),s=0,a=t[0];r[s++]=a,r[s++]=t[1];for(let c=0;c<i;c++){let l=t[c+1],f=t[c+2];r[s++]=l,r[s++]=f,r[s++]=f,r[s++]=a}return r}G6.createWireframeIndices=function(e,t,n){let i=u(n);if(e===Me.TRIANGLES)return i?r4e(t,n):o4e(t);if(e===Me.TRIANGLE_STRIP)return i?a4e(t,n):s4e(t);if(e===Me.TRIANGLE_FAN)return i?l4e(t,n):c4e(t)};G6.getWireframeIndicesCount=function(e,t){return e===Me.TRIANGLES?t*2:e===Me.TRIANGLE_STRIP||e===Me.TRIANGLE_FAN?2+(t-2)*4:t};var aC=G6;var ore={name:"WireframePipelineStage"};ore.process=function(e,t,n){e.shaderBuilder.addDefine("HAS_WIREFRAME",void 0,Ce.FRAGMENT);let o=e.model,r=u4e(t,e.indices,n);o._pipelineResources.push(r),e.wireframeIndexBuffer=r;let s=!1;o.statistics.addBuffer(r,s);let a=e.primitiveType,c=e.count;e.primitiveType=Me.LINES,e.count=aC.getWireframeIndicesCount(a,c)};function u4e(e,t,n){let o=Jt.getAttributeBySemantic(e,Tt.POSITION).count,r=n.context.webgl2,s;if(u(t)){let f=t.buffer,d=t.count;u(f)&&r?(s=f.sizeInBytes===d?new Uint8Array(d):Fe.createTypedArray(o,d),f.getBufferData(s)):s=t.typedArray}let a=e.primitiveType,c=aC.createWireframeIndices(a,o,s),l=Fe.fromSizeInBytes(c.BYTES_PER_ELEMENT);return ct.createIndexBuffer({context:n.context,typedArray:c,usage:Ne.STATIC_DRAW,indexDatatype:l})}var zO=ore;function rre(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=[]}rre.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,l=e.mode!==te.SCENE3D&&!e.scene3DOnly&&o._projectTo2D,f=u(n.morphTargets)&&n.morphTargets.length>0,d=u(i.skin),p=u(r),m=!(p&&u(r.fragmentShaderText))||r.mode!==Gp.REPLACE_MATERIAL,x=Jt.hasQuantizedAttributes(n.attributes),b=o.debugWireframe&&Me.isTriangles(n.primitiveType)&&(o._enableDebugWireframe||a),T=o.pointCloudShading,A=u(T)&&T.attenuation,C=u(T)&&T.backFaceCulling,S=n.primitiveType===Me.POINTS&&(u(s)||A||C),w=o._enableShowOutline&&u(n.outlineCoordinates),D=f4e(o,i,n),O=u(o.classificationType);l&&t.push(kO),t.push(EO),b&&t.push(zO),O&&t.push(cO),f&&t.push(PO),d&&t.push(VO),S&&t.push(MO),x&&t.push(bO),m&&t.push(DO),t.push(jg),t.push(lf),D.hasPropertyTable&&(t.push(Yg),t.push(aO),t.push(fO)),p&&t.push(yO),t.push(wO),o.allowPicking&&t.push(OO),w&&t.push(FO),t.push(sO),t.push(BO)};function f4e(e,t,n){let i;return u(t.instances)&&(i=Jt.getFeatureIdsByLabel(t.instances.featureIds,e.instanceFeatureIdLabel),u(i))?{hasFeatureIds:!0,hasPropertyTable:u(i.propertyTableId)}:(i=Jt.getFeatureIdsByLabel(n.featureIds,e.featureIdLabel),u(i)?{hasFeatureIds:!0,hasPropertyTable:u(i.propertyTableId)}:{hasFeatureIds:!1,hasPropertyTable:!1})}var HO=rre;function W6(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=[],d4e(this)}Object.defineProperties(W6.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 d4e(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 l=i[c].index,f=r[l];s.push(f);let d=n[c],p=sre(f,d,new F);a.push(p)}}function sre(e,t,n){let i=F.multiplyTransformation(e.transformToRoot,e.transform,n);return n=F.multiplyTransformation(i,t,n),n}W6.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]=sre(i,o,e[n])}};var GO=W6;function h4e(){this.pass=void 0,this.alphaCutoff=void 0}var WO=h4e;function m4e(e){this.shaderBuilder=new B0,this.model=e,this.uniformMap={},this.alphaOptions=new WO,this.renderStateOptions=ke.getState(ke.fromCache({depthTest:{enabled:!0,func:ja.LESS_OR_EQUAL}})),this.hasSilhouette=!1,this.hasSkipLevelOfDetail=!1}var jO=m4e;var qO=`void silhouetteStage(inout vec4 color) {
  6443. if(model_silhouettePass) {
  6444. color = czm_gammaCorrect(model_silhouetteColor);
  6445. }
  6446. }`;var YO=`void silhouetteStage(in ProcessedAttributes attributes, inout vec4 positionClip) {
  6447. #ifdef HAS_NORMALS
  6448. if(model_silhouettePass) {
  6449. vec3 normal = normalize(czm_normal3D * attributes.normalMC);
  6450. normal.x *= czm_projection[0][0];
  6451. normal.y *= czm_projection[1][1];
  6452. positionClip.xy += normal.xy * positionClip.w * model_silhouetteSize * czm_pixelRatio / czm_viewport.z;
  6453. }
  6454. #endif
  6455. }
  6456. `;var _U={name:"ModelSilhouettePipelineStage"};_U.silhouettesLength=0;_U.process=function(e,t,n){u(t._silhouetteId)||(t._silhouetteId=++_U.silhouettesLength);let i=e.shaderBuilder;i.addDefine("HAS_SILHOUETTE",void 0,Ce.BOTH),i.addVertexLines(YO),i.addFragmentLines(qO),i.addUniform("vec4","model_silhouetteColor",Ce.FRAGMENT),i.addUniform("float","model_silhouetteSize",Ce.VERTEX),i.addUniform("bool","model_silhouettePass",Ce.BOTH);let o={model_silhouetteColor:function(){return t.silhouetteColor},model_silhouetteSize:function(){return t.silhouetteSize},model_silhouettePass:function(){return!1}};e.uniformMap=gt(o,e.uniformMap),e.hasSilhouette=!0};var XO=_U;var KO=`void modelSplitterStage()
  6457. {
  6458. // Don't split when rendering the shadow map, because it is rendered from
  6459. // the perspective of a totally different camera.
  6460. #ifndef SHADOW_MAP
  6461. if (model_splitDirection < 0.0 && gl_FragCoord.x > czm_splitPosition) discard;
  6462. if (model_splitDirection > 0.0 && gl_FragCoord.x < czm_splitPosition) discard;
  6463. #endif
  6464. }
  6465. `;var gU={name:"ModelSplitterPipelineStage",SPLIT_DIRECTION_UNIFORM_NAME:"model_splitDirection"};gU.process=function(e,t,n){let i=e.shaderBuilder;i.addDefine("HAS_MODEL_SPLITTER",void 0,Ce.FRAGMENT),i.addFragmentLines(KO);let o={};i.addUniform("float",gU.SPLIT_DIRECTION_UNIFORM_NAME,Ce.FRAGMENT),o[gU.SPLIT_DIRECTION_UNIFORM_NAME]=function(){return t.splitDirection},e.uniformMap=gt(o,e.uniformMap)};var ZO=gU;function p4e(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 $O=p4e;function _4e(e){e=y(e,y.EMPTY_OBJECT),this.lightingModel=y(e.lightingModel,Qh.UNLIT)}var QO=_4e;function g4e(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=u(n.indices)?n.indices.count:Jt.getAttributeBySemantic(n,"POSITION").count,this.hasPropertyTable=!1,this.indices=n.indices,this.wireframeIndexBuffer=void 0,this.primitiveType=n.primitiveType;let i=Jt.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=se.fromCornerPoints(this.positionMin,this.positionMax,new se),this.lightingOptions=new QO,this.pickId=void 0}var JO=g4e;function lu(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=Jt.getAxisCorrectionMatrix(t.upAxis,t.forwardAxis,new F),this._runtimeArticulations={},y4e(this)}Object.defineProperties(lu.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 y4e(e){let t=e._components,n=t.scene,o=e._model.modelMatrix;are(e,o);let r=t.articulations,s=r.length,a=e._runtimeArticulations;for(let A=0;A<s;A++){let C=r[A],S=new Y1({articulation:C,sceneGraph:e}),w=S.name;a[w]=S}let c=t.nodes,l=c.length;e._runtimeNodes=new Array(l);let d=n.nodes.length,p=F.IDENTITY;for(let A=0;A<d;A++){let C=n.nodes[A],S=cre(e,C,p);e._rootNodes.push(S)}let g=t.skins,m=e._runtimeSkins,x=g.length;for(let A=0;A<x;A++){let C=g[A];m.push(new GO({skin:C,sceneGraph:e}))}let b=e._skinnedNodes,T=b.length;for(let A=0;A<T;A++){let C=b[A],S=e._runtimeNodes[C],D=c[C].skin.index;S._runtimeSkin=m[D],S.updateJointMatrices()}e.applyArticulations()}function are(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 x4e=new h;function b4e(e,t){let n=e._computedModelMatrix,i=F.getTranslation(n,x4e);if(!h.equals(i,h.ZERO))e._computedModelMatrix2D=Rt.basisTo2D(t.mapProjection,n,e._computedModelMatrix2D);else{let o=e.boundingSphere.center,r=Rt.wgs84To2DModelMatrix(t.mapProjection,o,e._computedModelMatrix2D);e._computedModelMatrix2D=F.multiply(r,n,e._computedModelMatrix2D)}e._boundingSphere2D=se.transform(e._boundingSphere,e._computedModelMatrix2D,e._boundingSphere2D)}function cre(e,t,n){let i=[],o=Jt.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=cre(e,d,p);i.push(g)}let s=new rO({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 HO({primitive:t.primitives[f],node:t,model:e._model}));let c=t.index;e._runtimeNodes[c]=s,u(t.skin)&&e._skinnedNodes.push(c);let l=t.name;if(u(l)){let f=e._model,d=new $1(f,s);f._nodesByName[l]=d}return c}var T4e=new h,A4e=new h,C4e=new h,E4e=new h;lu.prototype.buildDrawCommands=function(e){let t=this._model,n=new jO(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,T4e),c=h.fromElements(-Number.MAX_VALUE,-Number.MAX_VALUE,-Number.MAX_VALUE,A4e);for(o=0;o<this._runtimeNodes.length;o++){let l=this._runtimeNodes[o];if(!u(l))continue;l.configurePipeline();let f=l.pipelineStages,d=new $O(n,l);for(r=0;r<f.length;r++)f[r].process(d,l.node,e);let p=l.computedTransform;for(r=0;r<l.runtimePrimitives.length;r++){let g=l.runtimePrimitives[r];g.configurePipeline(e);let m=g.pipelineStages,x=new JO(d,g);for(s=0;s<m.length;s++)m[s].process(x,g.primitive,e);g.boundingSphere=se.clone(x.boundingSphere,new se);let b=F.multiplyByPoint(p,x.positionMin,C4e),T=F.multiplyByPoint(p,x.positionMax,E4e);h.minimumByComponent(a,b,a),h.maximumByComponent(c,T,c);let A=H1(x,e);g.drawCommand=A}}this._boundingSphere=se.fromCornerPoints(a,c,new se),this._boundingSphere=se.transformWithoutScale(this._boundingSphere,this._axisCorrectionMatrix,this._boundingSphere),this._boundingSphere=se.transform(this._boundingSphere,this._components.transform,this._boundingSphere),t._boundingSphere=se.transform(this._boundingSphere,t.modelMatrix,t._boundingSphere),t._initialRadius=t._boundingSphere.radius,t._boundingSphere.radius*=t._clampedScale};lu.prototype.configurePipeline=function(e){let t=this.modelPipelineStages;t.length=0;let n=this._model;u(n.color)&&t.push(Wg),!u(n.classificationType)&&(n.imageBasedLighting.enabled&&t.push(j1),n.isClippingEnabled()&&t.push(Z1),n.hasSilhouette(e)&&t.push(XO),u(n.splitDirection)&&n.splitDirection!==kc.NONE&&t.push(ZO),or.is3DTiles(n.type)&&t.push(G1))};lu.prototype.update=function(e,t){let n,i,o;for(n=0;n<this._runtimeNodes.length;n++){let r=this._runtimeNodes[n];if(!u(r))continue;for(i=0;i<r.updateStages.length;i++)r.updateStages[i].update(r,this,e);let s=e.mode!==te.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)}}};lu.prototype.updateModelMatrix=function(e,t){are(this,e),t.mode!==te.SCENE3D&&b4e(this,t);let n=this._rootNodes;for(let i=0;i<n.length;i++){let o=this._runtimeNodes[n[i]];o._transformDirty=!0}};lu.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 lre(e,t,n,i,o){if(n&&!t.show)return;let r=t.children.length;for(let c=0;c<r;c++){let l=t.getChild(c);lre(e,l,n,i,o)}let s=t.runtimePrimitives,a=s.length;for(let c=0;c<a;c++){let l=s[c];i(l,o)}}function yU(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];lre(e,c,t,n,i)}}var S4e={backFaceCulling:void 0};lu.prototype.updateBackFaceCulling=function(e){let t=S4e;t.backFaceCulling=e,yU(this,!1,w4e,t)};function w4e(e,t){let n=e.drawCommand;n.backFaceCulling=t.backFaceCulling}var v4e={shadowMode:void 0};lu.prototype.updateShadows=function(e){let t=v4e;t.shadowMode=e,yU(this,!1,D4e,t)};function D4e(e,t){let n=e.drawCommand;n.shadows=t.shadowMode}var I4e={debugShowBoundingVolume:void 0};lu.prototype.updateShowBoundingVolume=function(e){let t=I4e;t.debugShowBoundingVolume=e,yU(this,!1,P4e,t)};function P4e(e,t){let n=e.drawCommand;n.debugShowBoundingVolume=t.debugShowBoundingVolume}var ure=[],O4e={frameState:void 0,hasSilhouette:void 0};lu.prototype.pushDrawCommands=function(e){let t=ure;t.length=0;let n=O4e;n.hasSilhouette=this._model.hasSilhouette(e),n.frameState=e,yU(this,!0,R4e,n),e.commandList.push.apply(e.commandList,t)};function R4e(e,t){let n=t.frameState,i=t.hasSilhouette,o=n.passes,r=ure,s=e.drawCommand;s.pushCommands(n,n.commandList),i&&!o.pick&&s.pushSilhouetteCommands(n,r)}lu.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];u(r)&&r.setArticulationStage(o,t)};lu.prototype.applyArticulations=function(){let e=this._runtimeArticulations;for(let t in e)e.hasOwnProperty(t)&&e[t].apply()};var eR=lu;function cC(){this.pointsLength=0,this.trianglesLength=0,this.geometryByteLength=0,this.texturesByteLength=0,this.propertyTablesByteLength=0,this._bufferIdSet={},this._textureIdSet={},this._batchTextureIdMap=new xt}Object.defineProperties(cC.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}}});cC.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()};cC.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};cC.prototype.addTexture=function(e){this._textureIdSet.hasOwnProperty(e._id)||(this.texturesByteLength+=e.sizeInBytes),this._textureIdSet[e._id]=!0};cC.prototype.addBatchTexture=function(e){this._batchTextureIdMap.contains(e._id)||this._batchTextureIdMap.set(e._id,e)};var tR=cC;var mre=ro(h3(),1);var fre={},Gx=Uint32Array.BYTES_PER_ELEMENT;fre.parse=function(e,t){t=y(t,0);let n=new Uint8Array(e),i=new DataView(e);t+=Gx;let o=i.getUint32(t,!0);if(o!==1)throw new ue(`Only Point Cloud tile version 1 is supported. Version ${o} is not.`);t+=Gx,t+=Gx;let r=i.getUint32(t,!0);if(r===0)throw new ue("Feature table must have a byte length greater than zero");t+=Gx;let s=i.getUint32(t,!0);t+=Gx;let a=i.getUint32(t,!0);t+=Gx;let c=i.getUint32(t,!0);t+=Gx;let l=Oo(n,t,r);t+=r;let f=new Uint8Array(e,t,s);t+=s;let d,p;a>0&&(d=Oo(n,t,a),t+=a,c>0&&(p=new Uint8Array(e,t,c),t+=c));let g=new Md(l,f),m=g.getGlobalProperty("POINTS_LENGTH");if(g.featuresLength=m,!u(m))throw new ue("Feature table global property: POINTS_LENGTH must be defined");let x=g.getGlobalProperty("RTC_CENTER",X.FLOAT,3);u(x)&&(x=h.unpack(x));let b=M4e(g,d);if(b.rtcCenter=x,b.pointsLength=m,!b.hasPositions){let T=L4e(g);b.positions=T,b.hasPositions=b.hasPositions||u(T)}if(!b.hasPositions)throw new ue("Either POSITION or POSITION_QUANTIZED must be defined.");if(!b.hasNormals){let T=F4e(g);b.normals=T,b.hasNormals=b.hasNormals||u(T)}if(!b.hasColors){let T=N4e(g);b.colors=T,b.hasColors=b.hasColors||u(T),b.hasConstantColor=u(b.constantColor),b.isTranslucent=u(T)&&T.isTranslucent}if(!b.hasBatchIds){let T=B4e(g);b.batchIds=T,b.hasBatchIds=b.hasBatchIds||u(T)}if(b.hasBatchIds){let T=g.getGlobalProperty("BATCH_LENGTH");if(!u(T))throw new ue("Global property: BATCH_LENGTH must be defined when BATCH_ID is defined.");b.batchLength=T}return u(p)&&(p=new Uint8Array(p),b.batchTableJson=d,b.batchTableBinary=p),b};function M4e(e,t){let n=e.json,i,o,r,s=u(n.extensions)?n.extensions["3DTILES_draco_point_compression"]:void 0,a=u(t)&&u(t.extensions)?t.extensions["3DTILES_draco_point_compression"]:void 0;u(a)&&(r=a.properties);let c,l,f,d,p;if(u(s)){o=s.properties;let m=s.byteOffset,x=s.byteLength;if(!u(o)||!u(m)||!u(x))throw new ue("Draco properties, byteOffset, and byteLength must be defined");i=e.buffer.slice(m,m+x),c=u(o.POSITION),l=u(o.RGB)||u(o.RGBA),f=u(o.NORMAL),d=u(o.BATCH_ID),p=u(o.RGBA)}let g;return u(i)&&(g={buffer:i,featureTableProperties:o,batchTableProperties:r,properties:gt(o,r),dequantizeInShader:!0}),{draco:g,hasPositions:c,hasColors:l,isTranslucent:p,hasNormals:f,hasBatchIds:d}}function L4e(e){let t=e.json,n;if(u(t.POSITION))return n=e.getPropertyArray("POSITION",X.FLOAT,3),{name:Tt.POSITION,semantic:Tt.POSITION,typedArray:n,isQuantized:!1,componentDatatype:X.FLOAT,type:on.VEC3};if(u(t.POSITION_QUANTIZED)){n=e.getPropertyArray("POSITION_QUANTIZED",X.UNSIGNED_SHORT,3);let i=e.getGlobalProperty("QUANTIZED_VOLUME_SCALE",X.FLOAT,3);if(!u(i))throw new ue("Global property: QUANTIZED_VOLUME_SCALE must be defined for quantized positions.");let o=65536-1,r=e.getGlobalProperty("QUANTIZED_VOLUME_OFFSET",X.FLOAT,3);if(!u(r))throw new ue("Global property: QUANTIZED_VOLUME_OFFSET must be defined for quantized positions.");return{name:Tt.POSITION,semantic:Tt.POSITION,typedArray:n,isQuantized:!0,componentDatatype:X.FLOAT,type:on.VEC3,quantizedRange:o,quantizedVolumeOffset:h.unpack(r),quantizedVolumeScale:h.unpack(i),quantizedComponentDatatype:X.UNSIGNED_SHORT,quantizedType:on.VEC3}}}function N4e(e){let t=e.json,n;if(u(t.RGBA))return n=e.getPropertyArray("RGBA",X.UNSIGNED_BYTE,4),{name:Tt.COLOR,semantic:Tt.COLOR,setIndex:0,typedArray:n,componentDatatype:X.UNSIGNED_BYTE,type:on.VEC4,normalized:!0,isRGB565:!1,isTranslucent:!0};if(u(t.RGB))return n=e.getPropertyArray("RGB",X.UNSIGNED_BYTE,3),{name:"COLOR",semantic:Tt.COLOR,setIndex:0,typedArray:n,componentDatatype:X.UNSIGNED_BYTE,type:on.VEC3,normalized:!0,isRGB565:!1,isTranslucent:!1};if(u(t.RGB565))return n=e.getPropertyArray("RGB565",X.UNSIGNED_SHORT,1),{name:"COLOR",semantic:Tt.COLOR,setIndex:0,typedArray:n,componentDatatype:X.FLOAT,type:on.VEC3,normalized:!1,isRGB565:!0,isTranslucent:!1};if(u(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:Tt.COLOR,semantic:Tt.COLOR,setIndex:0,constantColor:r,componentDatatype:X.FLOAT,type:on.VEC4,isQuantized:!1,isTranslucent:s}}}function F4e(e){let t=e.json,n;if(u(t.NORMAL))return n=e.getPropertyArray("NORMAL",X.FLOAT,3),{name:Tt.NORMAL,semantic:Tt.NORMAL,typedArray:n,octEncoded:!1,octEncodedZXY:!1,componentDatatype:X.FLOAT,type:on.VEC3};if(u(t.NORMAL_OCT16P)){n=e.getPropertyArray("NORMAL_OCT16P",X.UNSIGNED_BYTE,2);let i=8;return{name:Tt.NORMAL,semantic:Tt.NORMAL,typedArray:n,octEncoded:!0,octEncodedZXY:!1,quantizedRange:(1<<i)-1,quantizedType:on.VEC2,quantizedComponentDatatype:X.UNSIGNED_BYTE,componentDatatype:X.FLOAT,type:on.VEC3}}}function B4e(e){let t=e.json;if(u(t.BATCH_ID)){let n=e.getPropertyArray("BATCH_ID",X.UNSIGNED_SHORT,1);return{name:Tt.FEATURE_ID,semantic:Tt.FEATURE_ID,setIndex:0,typedArray:n,componentDatatype:X.fromTypedArray(n),type:on.SCALAR}}}var Wx=fre;var k4e=Mt.Components,U4e=Mt.Scene,V4e=Mt.Node,z4e=Mt.Primitive,H4e=Mt.Attribute,dre=Mt.Quantization,G4e=Mt.FeatureIdAttribute,W4e=Mt.Material,j4e=Mt.MetallicRoughness;function Kg(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=Et.UNLOADED,this._buffers=[],this._components=void 0,this._transform=F.IDENTITY}u(Object.create)&&(Kg.prototype=Object.create(io.prototype),Kg.prototype.constructor=Kg);Object.defineProperties(Kg.prototype,{cacheKey:{get:function(){}},components:{get:function(){return this._components}},transform:{get:function(){return this._transform}}});Kg.prototype.load=function(){if(u(this._promise))return this._promise;this._parsedContent=Wx.parse(this._arrayBuffer,this._byteOffset),this._state=Et.PROCESSING,this._promise=Promise.resolve(this)};Kg.prototype.process=function(e){if(u(this._error)){let t=this._error;throw this._error=void 0,t}if(this._state===Et.READY)return!0;if(this._state===Et.PROCESSING){if(u(this._decodePromise))return!1;this._decodePromise=q4e(this,e.context)}return!1};function q4e(e,t){let i=e._parsedContent.draco,o;if(u(i)?o=Ip.decodePointCloud(i,t):o=Promise.resolve(),!!u(o))return e._decodePromise=o,o.then(function(r){if(!e.isDestroyed())return u(r)&&Y4e(e,i,r),o8e(e,t),e._state=Et.READY,e}).catch(function(r){e.unload(),e._state=Et.FAILED;let s="Failed to load Draco pnts";e._error=e.getError(s,r)})}function Y4e(e,t,n){e._state=Et.READY;let i=e._parsedContent,o;if(u(n.POSITION)){if(o={name:"POSITION",semantic:Tt.POSITION,typedArray:n.POSITION.array,componentDatatype:X.FLOAT,type:on.VEC3,isQuantized:!1},u(n.POSITION.data.quantization)){let a=n.POSITION.data.quantization,c=a.range,l=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=l,o.quantizedComponentDatatype=d<=255?X.UNSIGNED_BYTE:X.UNSIGNED_SHORT,o.quantizedType=on.VEC3}i.positions=o}if(u(n.NORMAL)){if(o={name:"NORMAL",semantic:Tt.NORMAL,typedArray:n.NORMAL.array,componentDatatype:X.FLOAT,type:on.VEC3,isQuantized:!1,octEncoded:!1,octEncodedZXY:!1},u(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=on.VEC2}i.normals=o}if(u(n.RGBA)?i.colors={name:"COLOR",semantic:Tt.COLOR,setIndex:0,typedArray:n.RGBA.array,componentDatatype:X.UNSIGNED_BYTE,type:on.VEC4,normalized:!0,isTranslucent:!0}:u(n.RGB)&&(i.colors={name:"COLOR",semantic:Tt.COLOR,setIndex:0,typedArray:n.RGB.array,componentDatatype:X.UNSIGNED_BYTE,type:on.VEC3,normalized:!0,isTranslucent:!1}),u(n.BATCH_ID)){let a=n.BATCH_ID.array;i.batchIds={name:"_FEATURE_ID",semantic:Tt.FEATURE_ID,setIndex:0,typedArray:a,componentDatatype:X.fromTypedArray(a),type:on.SCALAR}}let r=i.batchTableJson,s=t.batchTableProperties;for(let a in s)if(s.hasOwnProperty(a)){let c=n[a];u(r)||(r={}),i.hasDracoBatchTable=!0;let l=c.data;r[a]={byteOffset:l.byteOffset,type:X4e(l.componentsPerAttribute),componentType:K4e(l.componentDatatype),typedArray:c.array}}i.batchTableJson=r}function X4e(e){switch(e){case 1:return"SCALAR";case 2:return"VEC2";case 3:return"VEC3";case 4:return"VEC4"}}function K4e(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 nR(e,t,n){let i=t.typedArray,o;if(t.octEncoded&&(o=new dre,o.octEncoded=t.octEncoded,o.octEncodedZXY=t.octEncodedZXY,o.normalizationRange=t.quantizedRange,o.type=t.quantizedType,o.componentDatatype=t.quantizedComponentDatatype),t.isQuantized){o=new dre;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 H4e;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=qn.decodeRGB565(i)),u(t.constantColor)){let a=new Array(4);r.constant=H.pack(t.constantColor,a)}else{let a=ct.createVertexBuffer({typedArray:i,context:n,usage:Ne.STATIC_DRAW});a.vertexArrayDestroyable=!1,e._buffers.push(a),r.buffer=a}let s=e._loadAttributesFor2D;return r.semantic===Tt.POSITION&&s&&(r.typedArray=i),r}var hre,xU;function Z4e(e){if(!u(xU)){hre=new mre.default(0),xU=new Array(e);for(let t=0;t<e;++t)xU[t]=hre.random()}return xU}var $4e=new h,Q4e=new h,J4e=new h;function e8e(e){let t=e.typedArray,n=20,i=t.length/3,o=Math.min(i,n),r=Z4e(n),s=Number.MAX_VALUE,a=-Number.MAX_VALUE,c=h.fromElements(s,s,s,$4e),l=h.fromElements(a,a,a,Q4e),f,d,p;if(e.isQuantized)c=h.ZERO,l=e.quantizedVolumeScale;else for(f=0;f<o;++f)d=Math.floor(r[f]*i),p=h.unpack(t,d*3,J4e),h.minimumByComponent(c,p,c),h.maximumByComponent(l,p,l);e.min=h.clone(c),e.max=h.clone(l)}var t8e={name:Tt.COLOR,semantic:Tt.COLOR,setIndex:0,constantColor:H.DARKGRAY,componentDatatype:X.FLOAT,type:on.VEC4,isQuantized:!1,isTranslucent:!1};function n8e(e,t,n){let i=[],o,r=t.positions;return u(r)&&(e8e(r),o=nR(e,r,n),o.count=t.pointsLength,i.push(o)),u(t.normals)&&(o=nR(e,t.normals,n),i.push(o)),u(t.colors)?(o=nR(e,t.colors,n),i.push(o)):(o=nR(e,t8e,n),i.push(o)),u(t.batchIds)&&(o=nR(e,t.batchIds,n),i.push(o)),i}function i8e(e,t){let n=e.batchLength,i=e.pointsLength,o=e.batchTableBinary,r=!u(e.batchIds);if(u(o)||e.hasDracoBatchTable){let s=y(n,i);return kp({count:s,batchTable:e.batchTableJson,binaryBody:o,parseAsPropertyAttributes:r,customAttributeOutput:t})}return new ba({schema:{},propertyTables:[]})}function o8e(e,t){let n=e._parsedContent,i=new j4e;i.metallicFactor=0,i.roughnessFactor=.9;let o=new W4e;o.metallicRoughness=i;let r=n.colors;u(r)&&r.isTranslucent&&(o.alphaMode=Zh.BLEND);let s=!u(n.normals);o.unlit=s;let a=new z4e;if(a.attributes=n8e(e,n,t),a.primitiveType=Me.POINTS,a.material=o,u(n.batchIds)){let g=new G4e;g.propertyTableId=0,g.setIndex=0,g.positionalLabel="featureId_0",a.featureIds.push(g)}let c=new V4e;c.index=0,c.primitives=[a];let l=new U4e;l.nodes=[c],l.upAxis=Po.Z,l.forwardAxis=Po.X;let f=new k4e;f.scene=l,f.nodes=[c];let d=[];f.structuralMetadata=i8e(n,d),d.length>0&&r8e(e,a,d,t),u(n.rtcCenter)&&(f.transform=F.multiplyByTranslation(f.transform,n.rtcCenter,f.transform));let p=n.positions;u(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 r8e(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:Ne.STATIC_DRAW});c.vertexArrayDestroyable=!1,e._buffers.push(c),a.buffer=c,a.typedArray=void 0,o.push(a)}t.propertyAttributeIds=[0]}Kg.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 iR=Kg;function Ao(e){e=y(e,y.EMPTY_OBJECT),this._loader=e.loader,this._resource=e.resource,this.type=y(e.type,or.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=u(this._maximumScale)?Math.min(this._scale,this._maximumScale):this._scale,this._computedScale=this._clampedScale,this._updateModelMatrix=!1,this.referenceMatrix=void 0,this._iblReferenceFrameMatrix=Q.clone(Q.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 M1(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,$a.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 se,this._initialRadius=void 0,this._heightReference=y(e.heightReference,Ge.NONE),this._heightDirty=this._heightReference!==Ge.NONE,this._removeUpdateHeightCallback=void 0,this._clampedModelMatrix=void 0;let o=e.scene;u(o)&&u(o.terrainProviderChanged)&&(this._terrainProviderChangedCallback=o.terrainProviderChanged.addEventListener(function(){this._heightDirty=!0},this)),this._scene=o,this._distanceDisplayCondition=e.distanceDisplayCondition;let r=new $h(e.pointCloudShading);this._pointCloudShading=r,this._attenuation=r.attenuation,this._pointCloudBackFaceCulling=r.backFaceCulling;let s=e.clippingPlanes;u(s)&&s.owner===void 0?cs.setOwner(s,this,"_clippingPlanes"):this._clippingPlanes=s,this._clippingPlanesState=0,this._clippingPlanesMatrix=F.clone(F.IDENTITY),this._lightColor=h.clone(e.lightColor),this._imageBasedLighting=u(e.imageBasedLighting)?e.imageBasedLighting:new mx,this._shouldDestroyImageBasedLighting=!u(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===or.GLTF&&Dt("model-debug-wireframe-ignored","enableDebugWireframe must be set to true in Model.fromGltf, otherwise debugWireframe will be ignored.");let a=e.credit;typeof a=="string"&&(a=new bt(a)),this._credits=[],this._credit=a,this._resourceCredits=[],this._gltfCredits=[],this._showCreditsOnScreen=y(e.showCreditsOnScreen,!1),this._showCreditsOnScreenDirty=!0,this._splitDirection=y(e.splitDirection,kc.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 tR,this._sceneMode=void 0,this._projectTo2D=y(e.projectTo2D,!1),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 j6(e,t){if(e._errorEvent.numberOfListeners>0){e._errorEvent.raiseEvent(t);return}console.log(t)}function s8e(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 F1({model:e,propertyTable:s});n.push(a)}return n}function a8e(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],u(a.instances)&&(s=Jt.getFeatureIdsByLabel(a.instances.featureIds,i),u(s)&&u(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],l=Jt.getFeatureIdsByLabel(c.featureIds,n);if(u(l))return l.propertyTableId}if(t._featureTables.length===1)return 0}function Y6(e,t){if(!u(e)&&!u(t))return!1;if(u(e)!==u(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(Ao.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=St.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){Y6(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=Y6(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=u(this._clampedModelMatrix)?this._clampedModelMatrix:this.modelMatrix;return gre(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===or.GLTF&&Dt("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())}},lightColor:{get:function(){return this._lightColor},set:function(e){u(e)!==u(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}}});Ao.prototype.getNode=function(e){return this._nodesByName[e]};Ao.prototype.setArticulationStage=function(e,t){this._sceneGraph.setArticulationStage(e,t)};Ao.prototype.applyArticulations=function(){this._sceneGraph.applyArticulations()};Ao.prototype.makeStyleDirty=function(){this._styleDirty=!0};Ao.prototype.resetDrawCommands=function(){this._drawCommandsBuilt=!1};var c8e=new F,l8e=new Q,u8e=new F;Ao.prototype.update=function(e){let t=!1;try{t=f8e(this,e)}catch(n){if(!this._loader.incrementallyLoadTextures&&n.name==="TextureError")j6(this,n);else{let i=Jt.getError("model",this._resource,n);j6(this,i)}}if(d8e(this,e),h8e(this,e),!this._resourcesLoaded&&t){this._resourcesLoaded=!0;let n=this._loader.components;if(!u(n)){if(this._loader.isUnloaded())return;let r=Jt.getError("model",this._resource,new ue("Failed to load model."));j6(r),this._rejectLoad=this._rejectLoad&&this._rejectLoad(r)}let i=n.structuralMetadata;u(i)&&i.propertyTableCount>0&&s8e(this,i);let o=new eR({model:this,modelComponents:n});this._sceneGraph=o,this._gltfCredits=o.components.asset.credits}if(!(!this._resourcesLoaded||e.mode===te.MORPHING)){if(m8e(this),p8e(this),_8e(this,e),g8e(this),y8e(this,e),x8e(this,e),b8e(this,e),T8e(this,e),this._defaultTexture=e.context.defaultTexture,A8e(this,e),C8e(this,e),E8e(this),S8e(this,e),D8e(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)),v8e(this),I8e(this,e),P8e(this),O8e(this,e)}};function f8e(e,t){return!e._resourcesLoaded||e._loader.incrementallyLoadTextures&&!e._texturesLoaded?(t.afterRender.push(()=>!0),e._loader.process(t)):!0}function d8e(e,t){u(e._customShader)&&e._customShader.update(t)}function h8e(e,t){e._imageBasedLighting.update(t),e._imageBasedLighting.shouldRegenerateShaders&&e.resetDrawCommands()}function m8e(e){if(!e._featureTableIdDirty)return;e._featureTableIdDirty=!1;let t=e._sceneGraph.components,n=t.structuralMetadata;u(n)&&n.propertyTableCount>0&&(e.featureTableId=a8e(t,e),e._styleDirty=!0,e.resetDrawCommands())}function p8e(e){e._styleDirty&&(e.applyStyle(e._style),e._styleDirty=!1)}function _8e(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&&_re(e)}function _re(e){let t=e.featureTables[e.featureTableId];e._styleCommandsNeeded=Nd.getStyleCommandsNeeded(t.featuresLength,t.batchTexture.translucentFeaturesLength)}function g8e(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 y8e(e,t){e._silhouetteDirty&&(yre(t)&&e.resetDrawCommands(),e._silhouetteDirty=!1)}function x8e(e,t){let n=e.hasSkipLevelOfDetail(t);n!==e._skipLevelOfDetail&&(e.resetDrawCommands(),e._skipLevelOfDetail=n)}function b8e(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 T8e(e,t){t.mode!==e._sceneMode&&(e._projectTo2D?e.resetDrawCommands():e._updateModelMatrix=!0,e._sceneMode=t.mode)}function A8e(e,t){e._drawCommandsBuilt||(e.destroyPipelineResources(),e._sceneGraph.buildDrawCommands(t),e._drawCommandsBuilt=!0)}function C8e(e,t){F.equals(e.modelMatrix,e._modelMatrix)||(e._updateModelMatrix=!0,e._modelMatrix=F.clone(e.modelMatrix,e._modelMatrix))}var Jh=new h,bU=new fe;function E8e(e){if(!e._updateModelMatrix&&!e._heightDirty&&e._minimumPixelSize===0)return;u(e._removeUpdateHeightCallback)&&(e._removeUpdateHeightCallback(),e._removeUpdateHeightCallback=void 0);let t=e._scene;if(!u(t)||!u(t.globe)||e.heightReference===Ge.NONE){e._clampedModelMatrix=void 0;return}let n=t.globe,i=n.ellipsoid,o=e.modelMatrix;Jh.x=o[12],Jh.y=o[13],Jh.z=o[14];let r=i.cartesianToCartographic(Jh);u(e._clampedModelMatrix)||(e._clampedModelMatrix=F.clone(o,new F));let s=n._surface;e._removeUpdateHeightCallback=s.updateHeight(r,pre(e,i,r));let a=n.getHeight(r);if(u(a)){let c=pre(e,i,r);fe.clone(r,bU),bU.height=a,i.cartographicToCartesian(bU,Jh),c(Jh)}e._heightDirty=!1,e._updateModelMatrix=!0}function S8e(e,t){if(!e._updateModelMatrix&&e._minimumPixelSize===0)return;let n=u(e._clampedModelMatrix)?e._clampedModelMatrix:e.modelMatrix;gre(e,n),w8e(e,n,t)}function gre(e,t){e._clampedScale=u(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=se.transform(e._boundingSphere,t,e._boundingSphere)}function w8e(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,Jh),e._sceneMode!==te.SCENE3D&&Xi.computeActualWgs84Position(n,Jh,Jh);let s=e._boundingSphere.radius,a=R8e(Jh,s,n),c=1/a;Math.min(c*(2*s),r)<e.minimumPixelSize&&(i=e.minimumPixelSize*a/(2*e._initialRadius))}e._computedScale=u(e.maximumScale)?Math.min(e.maximumScale,i):i}function v8e(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}function D8e(e,t){let n=u(e._clampedModelMatrix)?e._clampedModelMatrix:e.modelMatrix,i=y(e.referenceMatrix,n),o=t.context,r=e._imageBasedLighting;if(r.useSphericalHarmonicCoefficients||r.useSpecularEnvironmentMaps){let s=l8e,a=c8e;a=F.multiply(o.uniformState.view3D,i,a),s=F.getMatrix3(a,s),s=Q.getRotation(s,s),e._iblReferenceFrameMatrix=Q.transpose(s,e._iblReferenceFrameMatrix)}if(e.isClippingEnabled()){let s=u8e;s=F.multiply(o.uniformState.view3D,i,s),s=F.multiply(s,e._clippingPlanes.modelMatrix,s),e._clippingPlanesMatrix=F.inverseTranspose(s,e._clippingPlanesMatrix)}}function I8e(e,t){let n=e._sceneGraph;if(e._updateModelMatrix||e._minimumPixelSize!==0){let o=u(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;u(e.classificationType)||(i=e._userAnimationDirty||e._activeAnimations.update(t)),n.update(t,i),e._userAnimationDirty=!1}function P8e(e){if(!e._showCreditsOnScreenDirty)return;e._showCreditsOnScreenDirty=!1,e._credits.length=0;let t=e._showCreditsOnScreen;if(u(e._credit)){let s=bt.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=bt.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=bt.clone(o[s]);a.showOnScreen=a.showOnScreen||t,e._credits.push(a)}}function O8e(e,t){let n=L8e(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&&(N8e(e,t),e._sceneGraph.pushDrawCommands(t))}var q6=new se;function R8e(e,t,n){return q6.center=e,q6.radius=t,n.camera.getPixelSize(q6,n.context.drawingBufferWidth,n.context.drawingBufferHeight)}function pre(e,t,n){return function(i){if(e.heightReference===Ge.RELATIVE_TO_GROUND){let r=t.cartesianToCartographic(i,bU);r.height+=n.height,t.cartographicToCartesian(r,i)}let o=e._clampedModelMatrix;F.clone(e.modelMatrix,o),o[12]=i.x,o[13]=i.y,o[14]=i.z,e._heightDirty=!0}}var M8e=new h;function L8e(e,t){let n=e.distanceDisplayCondition;if(!u(n))return!0;let i=n.near*n.near,o=n.far*n.far,r;if(t.mode===te.SCENE2D){let a=(t.camera.frustum.right-t.camera.frustum.left)*.5;r=a*a}else{let s=F.getTranslation(e.modelMatrix,M8e);Xi.computeActualWgs84Position(t,s,s),r=h.distanceSquared(s,t.camera.positionWC)}return r>=i&&r<=o}function N8e(e,t){let n=t.creditDisplay,i=e._credits,o=i.length;for(let r=0;r<o;r++)n.addCreditToNextFrame(i[r])}Ao.prototype.isTranslucent=function(){let e=this.color;return u(e)&&e.alpha>0&&e.alpha<1};Ao.prototype.isInvisible=function(){let e=this.color;return u(e)&&e.alpha===0};function yre(e){return e.context.stencilBuffer}Ao.prototype.hasSilhouette=function(e){return yre(e)&&this._silhouetteSize>0&&this._silhouetteColor.alpha>0&&!u(this._classificationType)};Ao.prototype.hasSkipLevelOfDetail=function(e){if(!or.is3DTiles(this.type))return!1;let t=e.context.stencilBuffer,n=this._content.tileset;return t&&n.isSkippingLevelOfDetail};Ao.prototype.isClippingEnabled=function(){let e=this._clippingPlanes;return u(e)&&e.enabled&&e.length!==0};Ao.prototype.isDestroyed=function(){return!1};Ao.prototype.destroy=function(){let e=this._loader;u(e)&&e.destroy();let t=this._featureTables;if(u(t)){let i=t.length;for(let o=0;o<i;o++)t[o].destroy()}this.destroyPipelineResources(),this.destroyModelResources(),u(this._removeUpdateHeightCallback)&&(this._removeUpdateHeightCallback(),this._removeUpdateHeightCallback=void 0),u(this._terrainProviderChangedCallback)&&(this._terrainProviderChangedCallback(),this._terrainProviderChangedCallback=void 0);let n=this._clippingPlanes;u(n)&&!n.isDestroyed()&&n.owner===this&&n.destroy(),this._clippingPlanes=void 0,this._shouldDestroyImageBasedLighting&&!this._imageBasedLighting.isDestroyed()&&this._imageBasedLighting.destroy(),this._imageBasedLighting=void 0,le(this)};Ao.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};Ao.prototype.destroyModelResources=function(){let e=this._modelResources;for(let t=0;t<e.length;t++)e[t].destroy();this._modelResources.length=0};Ao.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,loadIndicesForWireframe:e.enableDebugWireframe,loadPrimitiveOutline:e.enableShowOutline,loadForClassification:u(e.classificationType)},i=y(e.basePath,""),o=ve.createIfNeeded(i);u(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=ve.createIfNeeded(t);let r=new Lp(n),a=u(e.content)?or.TILE_GLTF:or.GLTF,c=n.gltfResource,l=oR(r,a,e);l.resource=c;try{await r.load()}catch(g){throw r.destroy(),Jt.getError("model",c,g)}let f=e.gltfCallback;u(f)&&f(r.gltfJson);let d=new Ao(l),p=d._resource.credits;if(u(p)){let g=p.length;for(let m=0;m<g;m++)d._resourceCredits.push(bt.clone(p[m]))}return d};Ao.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,loadIndicesForWireframe:e.enableDebugWireframe,loadPrimitiveOutline:e.enableShowOutline,loadForClassification:u(e.classificationType)},n=new E1(t);try{await n.load();let i=oR(n,or.TILE_B3DM,e);return new Ao(i)}catch(i){throw n.destroy(),i}};Ao.fromPnts=async function(e){let t={arrayBuffer:e.arrayBuffer,byteOffset:e.byteOffset,loadAttributesFor2D:e.projectTo2D},n=new iR(t);try{await n.load();let i=oR(n,or.TILE_PNTS,e);return new Ao(i)}catch(i){throw n.destroy(),i}};Ao.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,loadIndicesForWireframe:e.enableDebugWireframe,loadPrimitiveOutline:e.enableShowOutline},n=new v1(t);try{await n.load();let i=oR(n,or.TILE_I3DM,e);return new Ao(i)}catch(i){throw n.destroy(),i}};Ao.fromGeoJson=async function(e){let t={geoJson:e.geoJson},n=new S1(t),i=oR(n,or.TILE_GEOJSON,e);return new Ao(i)};var F8e=new H;Ao.prototype.applyColorAndShow=function(e){let t=H.clone(this._color,F8e),n=u(e)&&u(e.color),i=u(e)&&u(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,Y6(t,this._color)&&this.resetDrawCommands()};Ao.prototype.applyStyle=function(e){let t=this.type===or.TILE_PNTS,n=u(this.featureTableId)&&this.featureTables[this.featureTableId].featuresLength>0,i=u(this.structuralMetadata)?this.structuralMetadata.propertyAttributes:void 0,o=u(i)&&u(i[0]);if(t&&(!n||o)){this.resetDrawCommands();return}n?(this.featureTables[this.featureTableId].applyStyle(e),_re(this,e)):(this.applyColorAndShow(e),this._styleCommandsNeeded=void 0)};function oR(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,lightColor:n.lightColor,imageBasedLighting:n.imageBasedLighting,backFaceCulling:n.backFaceCulling,credit:n.credit,showCreditsOnScreen:n.showCreditsOnScreen,splitDirection:n.splitDirection,projectTo2D:n.projectTo2D,featureIdLabel:n.featureIdLabel,instanceFeatureIdLabel:n.instanceFeatureIdLabel,pointCloudShading:n.pointCloudShading,classificationType:n.classificationType,pickObject:n.pickObject}}var Fd=Ao;function Is(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(Is.prototype,{featuresLength:{get:function(){let e=this._model,t=e.featureTables,n=e.featureTableId;return u(t)&&u(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(u(t)&&u(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}}});Is.prototype.getFeature=function(e){let t=this._model,n=t.featureTableId;return t.featureTables[n].getFeature(e)};Is.prototype.hasProperty=function(e,t){let n=this._model,i=n.featureTableId;return u(i)?n.featureTables[i].hasProperty(e,t):!1};Is.prototype.applyDebugSettings=function(e,t){t=e?t:H.WHITE,this.featuresLength===0?this._model.color=t:u(this.batchTable)&&this.batchTable.setAllColor(t)};Is.prototype.applyStyle=function(e){this._model.style=e};Is.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,u(o)&&i.clippingPlanesDirty&&(n._clippingPlanes=o.enabled&&i._isClipped?o:void 0),u(o)&&u(n._clippingPlanes)&&n._clippingPlanes!==o&&(n._clippingPlanes=o,n._clippingPlanesState=0),n.update(t),!this._ready&&n.ready&&(n.activeAnimations.addAll({loop:wl.REPEAT}),this._ready=!0)};Is.prototype.isDestroyed=function(){return!1};Is.prototype.destroy=function(){return this._model=this._model&&this._model.destroy(),le(this)};Is.fromGltf=async function(e,t,n,i){let o=new Is(e,t,n),s=rR(e,t,o,{gltf:i,basePath:n}),a=e.vectorClassificationOnly?void 0:e.classificationType;s.classificationType=a;let c=await Fd.fromGltfAsync(s);return o._model=c,o};Is.fromB3dm=async function(e,t,n,i,o){let r=new Is(e,t,n),a=rR(e,t,r,{arrayBuffer:i,byteOffset:o,resource:n}),c=e.vectorClassificationOnly?void 0:e.classificationType;a.classificationType=c;let l=await Fd.fromB3dm(a);return r._model=l,r};Is.fromI3dm=async function(e,t,n,i,o){let r=new Is(e,t,n),a=rR(e,t,r,{arrayBuffer:i,byteOffset:o,resource:n}),c=await Fd.fromI3dm(a);return r._model=c,r};Is.fromPnts=async function(e,t,n,i,o){let r=new Is(e,t,n),a=rR(e,t,r,{arrayBuffer:i,byteOffset:o,resource:n}),c=await Fd.fromPnts(a);return r._model=c,r};Is.fromGeoJson=async function(e,t,n,i){let o=new Is(e,t,n),s=rR(e,t,o,{geoJson:i,resource:n}),a=await Fd.fromGeoJson(s);return o._model=a,o};function rR(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,enableShowOutline:e._enableShowOutline,showOutline:e.showOutline,outlineColor:e.outlineColor};return gt(i,o)}var em=Is;function Bd(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(Bd.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}}});Bd.fromJson=function(e,t,n,i){let o=new Bd(e,t,n);return o._tileset.loadTileset(o._resource,i,o._tile),o._ready=!0,o};Bd.prototype.hasProperty=function(e,t){return!1};Bd.prototype.getFeature=function(e){};Bd.prototype.applyDebugSettings=function(e,t){};Bd.prototype.applyStyle=function(e){};Bd.prototype.update=function(e,t){};Bd.prototype.isDestroyed=function(){return!1};Bd.prototype.destroy=function(){return le(this)};var sR=Bd;var aR=`uniform sampler2D u_atlas;
  6466. #ifdef VECTOR_TILE
  6467. uniform vec4 u_highlightColor;
  6468. #endif
  6469. in vec2 v_textureCoordinates;
  6470. in vec4 v_pickColor;
  6471. in vec4 v_color;
  6472. #ifdef SDF
  6473. in vec4 v_outlineColor;
  6474. in float v_outlineWidth;
  6475. #endif
  6476. #ifdef FRAGMENT_DEPTH_CHECK
  6477. in vec4 v_textureCoordinateBounds; // the min and max x and y values for the texture coordinates
  6478. in vec4 v_originTextureCoordinateAndTranslate; // texture coordinate at the origin, billboard translate (used for label glyphs)
  6479. in vec4 v_compressed; // x: eyeDepth, y: applyTranslate & enableDepthCheck, z: dimensions, w: imageSize
  6480. in mat2 v_rotationMatrix;
  6481. const float SHIFT_LEFT12 = 4096.0;
  6482. const float SHIFT_LEFT1 = 2.0;
  6483. const float SHIFT_RIGHT12 = 1.0 / 4096.0;
  6484. const float SHIFT_RIGHT1 = 1.0 / 2.0;
  6485. float getGlobeDepth(vec2 adjustedST, vec2 depthLookupST, bool applyTranslate, vec2 dimensions, vec2 imageSize)
  6486. {
  6487. vec2 lookupVector = imageSize * (depthLookupST - adjustedST);
  6488. lookupVector = v_rotationMatrix * lookupVector;
  6489. 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
  6490. vec2 translation = v_originTextureCoordinateAndTranslate.zw;
  6491. if (applyTranslate)
  6492. {
  6493. // this is only needed for labels where the horizontal origin is not LEFT
  6494. // it moves the label back to where the "origin" should be since all label glyphs are set to HorizontalOrigin.LEFT
  6495. translation += (dimensions * v_originTextureCoordinateAndTranslate.xy * vec2(1.0, 0.0));
  6496. }
  6497. vec2 st = ((lookupVector - translation + labelOffset) + gl_FragCoord.xy) / czm_viewport.zw;
  6498. float logDepthOrDepth = czm_unpackDepth(texture(czm_globeDepthTexture, st));
  6499. if (logDepthOrDepth == 0.0)
  6500. {
  6501. return 0.0; // not on the globe
  6502. }
  6503. vec4 eyeCoordinate = czm_windowToEyeCoordinates(gl_FragCoord.xy, logDepthOrDepth);
  6504. return eyeCoordinate.z / eyeCoordinate.w;
  6505. }
  6506. #endif
  6507. #ifdef SDF
  6508. // Get the distance from the edge of a glyph at a given position sampling an SDF texture.
  6509. float getDistance(vec2 position)
  6510. {
  6511. return texture(u_atlas, position).r;
  6512. }
  6513. // Samples the sdf texture at the given position and produces a color based on the fill color and the outline.
  6514. vec4 getSDFColor(vec2 position, float outlineWidth, vec4 outlineColor, float smoothing)
  6515. {
  6516. float distance = getDistance(position);
  6517. if (outlineWidth > 0.0)
  6518. {
  6519. // Don't get the outline edge exceed the SDF_EDGE
  6520. float outlineEdge = clamp(SDF_EDGE - outlineWidth, 0.0, SDF_EDGE);
  6521. float outlineFactor = smoothstep(SDF_EDGE - smoothing, SDF_EDGE + smoothing, distance);
  6522. vec4 sdfColor = mix(outlineColor, v_color, outlineFactor);
  6523. float alpha = smoothstep(outlineEdge - smoothing, outlineEdge + smoothing, distance);
  6524. return vec4(sdfColor.rgb, sdfColor.a * alpha);
  6525. }
  6526. else
  6527. {
  6528. float alpha = smoothstep(SDF_EDGE - smoothing, SDF_EDGE + smoothing, distance);
  6529. return vec4(v_color.rgb, v_color.a * alpha);
  6530. }
  6531. }
  6532. #endif
  6533. void main()
  6534. {
  6535. vec4 color = texture(u_atlas, v_textureCoordinates);
  6536. #ifdef SDF
  6537. float outlineWidth = v_outlineWidth;
  6538. vec4 outlineColor = v_outlineColor;
  6539. // Get the current distance
  6540. float distance = getDistance(v_textureCoordinates);
  6541. #if (__VERSION__ == 300 || defined(GL_OES_standard_derivatives))
  6542. float smoothing = fwidth(distance);
  6543. // Get an offset that is approximately half the distance to the neighbor pixels
  6544. // 0.354 is approximately half of 1/sqrt(2)
  6545. vec2 sampleOffset = 0.354 * vec2(dFdx(v_textureCoordinates) + dFdy(v_textureCoordinates));
  6546. // Sample the center point
  6547. vec4 center = getSDFColor(v_textureCoordinates, outlineWidth, outlineColor, smoothing);
  6548. // Sample the 4 neighbors
  6549. vec4 color1 = getSDFColor(v_textureCoordinates + vec2(sampleOffset.x, sampleOffset.y), outlineWidth, outlineColor, smoothing);
  6550. vec4 color2 = getSDFColor(v_textureCoordinates + vec2(-sampleOffset.x, sampleOffset.y), outlineWidth, outlineColor, smoothing);
  6551. vec4 color3 = getSDFColor(v_textureCoordinates + vec2(-sampleOffset.x, -sampleOffset.y), outlineWidth, outlineColor, smoothing);
  6552. vec4 color4 = getSDFColor(v_textureCoordinates + vec2(sampleOffset.x, -sampleOffset.y), outlineWidth, outlineColor, smoothing);
  6553. // Equally weight the center sample and the 4 neighboring samples
  6554. color = (center + color1 + color2 + color3 + color4)/5.0;
  6555. #else
  6556. // If no derivatives available (IE 10?), just do a single sample
  6557. float smoothing = 1.0/32.0;
  6558. color = getSDFColor(v_textureCoordinates, outlineWidth, outlineColor, smoothing);
  6559. #endif
  6560. color = czm_gammaCorrect(color);
  6561. #else
  6562. color = czm_gammaCorrect(color);
  6563. color *= czm_gammaCorrect(v_color);
  6564. #endif
  6565. // Fully transparent parts of the billboard are not pickable.
  6566. #if !defined(OPAQUE) && !defined(TRANSLUCENT)
  6567. if (color.a < 0.005) // matches 0/255 and 1/255
  6568. {
  6569. discard;
  6570. }
  6571. #else
  6572. // The billboard is rendered twice. The opaque pass discards translucent fragments
  6573. // and the translucent pass discards opaque fragments.
  6574. #ifdef OPAQUE
  6575. if (color.a < 0.995) // matches < 254/255
  6576. {
  6577. discard;
  6578. }
  6579. #else
  6580. if (color.a >= 0.995) // matches 254/255 and 255/255
  6581. {
  6582. discard;
  6583. }
  6584. #endif
  6585. #endif
  6586. #ifdef VECTOR_TILE
  6587. color *= u_highlightColor;
  6588. #endif
  6589. out_FragColor = color;
  6590. #ifdef LOG_DEPTH
  6591. czm_writeLogDepth();
  6592. #endif
  6593. #ifdef FRAGMENT_DEPTH_CHECK
  6594. float temp = v_compressed.y;
  6595. temp = temp * SHIFT_RIGHT1;
  6596. float temp2 = (temp - floor(temp)) * SHIFT_LEFT1;
  6597. bool enableDepthTest = temp2 != 0.0;
  6598. bool applyTranslate = floor(temp) != 0.0;
  6599. if (enableDepthTest) {
  6600. temp = v_compressed.z;
  6601. temp = temp * SHIFT_RIGHT12;
  6602. vec2 dimensions;
  6603. dimensions.y = (temp - floor(temp)) * SHIFT_LEFT12;
  6604. dimensions.x = floor(temp);
  6605. temp = v_compressed.w;
  6606. temp = temp * SHIFT_RIGHT12;
  6607. vec2 imageSize;
  6608. imageSize.y = (temp - floor(temp)) * SHIFT_LEFT12;
  6609. imageSize.x = floor(temp);
  6610. vec2 adjustedST = v_textureCoordinates - v_textureCoordinateBounds.xy;
  6611. adjustedST = adjustedST / vec2(v_textureCoordinateBounds.z - v_textureCoordinateBounds.x, v_textureCoordinateBounds.w - v_textureCoordinateBounds.y);
  6612. float epsilonEyeDepth = v_compressed.x + czm_epsilon1;
  6613. float globeDepth1 = getGlobeDepth(adjustedST, v_originTextureCoordinateAndTranslate.xy, applyTranslate, dimensions, imageSize);
  6614. // negative values go into the screen
  6615. if (globeDepth1 != 0.0 && globeDepth1 > epsilonEyeDepth)
  6616. {
  6617. float globeDepth2 = getGlobeDepth(adjustedST, vec2(0.0, 1.0), applyTranslate, dimensions, imageSize); // top left corner
  6618. if (globeDepth2 != 0.0 && globeDepth2 > epsilonEyeDepth)
  6619. {
  6620. float globeDepth3 = getGlobeDepth(adjustedST, vec2(1.0, 1.0), applyTranslate, dimensions, imageSize); // top right corner
  6621. if (globeDepth3 != 0.0 && globeDepth3 > epsilonEyeDepth)
  6622. {
  6623. discard;
  6624. }
  6625. }
  6626. }
  6627. }
  6628. #endif
  6629. }
  6630. `;var cR=`#ifdef INSTANCED
  6631. in vec2 direction;
  6632. #endif
  6633. in vec4 positionHighAndScale;
  6634. in vec4 positionLowAndRotation;
  6635. in vec4 compressedAttribute0; // pixel offset, translate, horizontal origin, vertical origin, show, direction, texture coordinates (texture offset)
  6636. in vec4 compressedAttribute1; // aligned axis, translucency by distance, image width
  6637. in vec4 compressedAttribute2; // label horizontal origin, image height, color, pick color, size in meters, valid aligned axis, 13 bits free
  6638. in vec4 eyeOffset; // eye offset in meters, 4 bytes free (texture range)
  6639. in vec4 scaleByDistance; // near, nearScale, far, farScale
  6640. in vec4 pixelOffsetScaleByDistance; // near, nearScale, far, farScale
  6641. in vec4 compressedAttribute3; // distance display condition near, far, disableDepthTestDistance, dimensions
  6642. in vec2 sdf; // sdf outline color (rgb) and width (w)
  6643. #if defined(VERTEX_DEPTH_CHECK) || defined(FRAGMENT_DEPTH_CHECK)
  6644. in vec4 textureCoordinateBoundsOrLabelTranslate; // the min and max x and y values for the texture coordinates
  6645. #endif
  6646. #ifdef VECTOR_TILE
  6647. in float a_batchId;
  6648. #endif
  6649. out vec2 v_textureCoordinates;
  6650. #ifdef FRAGMENT_DEPTH_CHECK
  6651. out vec4 v_textureCoordinateBounds;
  6652. out vec4 v_originTextureCoordinateAndTranslate;
  6653. out vec4 v_compressed; // x: eyeDepth, y: applyTranslate & enableDepthCheck, z: dimensions, w: imageSize
  6654. out mat2 v_rotationMatrix;
  6655. #endif
  6656. out vec4 v_pickColor;
  6657. out vec4 v_color;
  6658. #ifdef SDF
  6659. out vec4 v_outlineColor;
  6660. out float v_outlineWidth;
  6661. #endif
  6662. const float UPPER_BOUND = 32768.0;
  6663. const float SHIFT_LEFT16 = 65536.0;
  6664. const float SHIFT_LEFT12 = 4096.0;
  6665. const float SHIFT_LEFT8 = 256.0;
  6666. const float SHIFT_LEFT7 = 128.0;
  6667. const float SHIFT_LEFT5 = 32.0;
  6668. const float SHIFT_LEFT3 = 8.0;
  6669. const float SHIFT_LEFT2 = 4.0;
  6670. const float SHIFT_LEFT1 = 2.0;
  6671. const float SHIFT_RIGHT12 = 1.0 / 4096.0;
  6672. const float SHIFT_RIGHT8 = 1.0 / 256.0;
  6673. const float SHIFT_RIGHT7 = 1.0 / 128.0;
  6674. const float SHIFT_RIGHT5 = 1.0 / 32.0;
  6675. const float SHIFT_RIGHT3 = 1.0 / 8.0;
  6676. const float SHIFT_RIGHT2 = 1.0 / 4.0;
  6677. const float SHIFT_RIGHT1 = 1.0 / 2.0;
  6678. 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)
  6679. {
  6680. // Note the halfSize cannot be computed in JavaScript because it is sent via
  6681. // compressed vertex attributes that coerce it to an integer.
  6682. vec2 halfSize = imageSize * scale * 0.5;
  6683. halfSize *= ((direction * 2.0) - 1.0);
  6684. vec2 originTranslate = origin * abs(halfSize);
  6685. #if defined(ROTATION) || defined(ALIGNED_AXIS)
  6686. if (validAlignedAxis || rotation != 0.0)
  6687. {
  6688. float angle = rotation;
  6689. if (validAlignedAxis)
  6690. {
  6691. vec4 projectedAlignedAxis = czm_modelView3D * vec4(alignedAxis, 0.0);
  6692. angle += sign(-projectedAlignedAxis.x) * acos(sign(projectedAlignedAxis.y) * (projectedAlignedAxis.y * projectedAlignedAxis.y) /
  6693. (projectedAlignedAxis.x * projectedAlignedAxis.x + projectedAlignedAxis.y * projectedAlignedAxis.y));
  6694. }
  6695. float cosTheta = cos(angle);
  6696. float sinTheta = sin(angle);
  6697. rotationMatrix = mat2(cosTheta, sinTheta, -sinTheta, cosTheta);
  6698. halfSize = rotationMatrix * halfSize;
  6699. }
  6700. else
  6701. {
  6702. rotationMatrix = mat2(1.0, 0.0, 0.0, 1.0);
  6703. }
  6704. #endif
  6705. mpp = czm_metersPerPixel(positionEC);
  6706. positionEC.xy += (originTranslate + halfSize) * czm_branchFreeTernary(sizeInMeters, 1.0, mpp);
  6707. positionEC.xy += (translate + pixelOffset) * mpp;
  6708. return positionEC;
  6709. }
  6710. #ifdef VERTEX_DEPTH_CHECK
  6711. float getGlobeDepth(vec4 positionEC)
  6712. {
  6713. vec4 posWC = czm_eyeToWindowCoordinates(positionEC);
  6714. float globeDepth = czm_unpackDepth(texture(czm_globeDepthTexture, posWC.xy / czm_viewport.zw));
  6715. if (globeDepth == 0.0)
  6716. {
  6717. return 0.0; // not on the globe
  6718. }
  6719. vec4 eyeCoordinate = czm_windowToEyeCoordinates(posWC.xy, globeDepth);
  6720. return eyeCoordinate.z / eyeCoordinate.w;
  6721. }
  6722. #endif
  6723. void main()
  6724. {
  6725. // Modifying this shader may also require modifications to Billboard._computeScreenSpacePosition
  6726. // unpack attributes
  6727. vec3 positionHigh = positionHighAndScale.xyz;
  6728. vec3 positionLow = positionLowAndRotation.xyz;
  6729. float scale = positionHighAndScale.w;
  6730. #if defined(ROTATION) || defined(ALIGNED_AXIS)
  6731. float rotation = positionLowAndRotation.w;
  6732. #else
  6733. float rotation = 0.0;
  6734. #endif
  6735. float compressed = compressedAttribute0.x;
  6736. vec2 pixelOffset;
  6737. pixelOffset.x = floor(compressed * SHIFT_RIGHT7);
  6738. compressed -= pixelOffset.x * SHIFT_LEFT7;
  6739. pixelOffset.x -= UPPER_BOUND;
  6740. vec2 origin;
  6741. origin.x = floor(compressed * SHIFT_RIGHT5);
  6742. compressed -= origin.x * SHIFT_LEFT5;
  6743. origin.y = floor(compressed * SHIFT_RIGHT3);
  6744. compressed -= origin.y * SHIFT_LEFT3;
  6745. #ifdef FRAGMENT_DEPTH_CHECK
  6746. vec2 depthOrigin = origin.xy;
  6747. #endif
  6748. origin -= vec2(1.0);
  6749. float show = floor(compressed * SHIFT_RIGHT2);
  6750. compressed -= show * SHIFT_LEFT2;
  6751. #ifdef INSTANCED
  6752. vec2 textureCoordinatesBottomLeft = czm_decompressTextureCoordinates(compressedAttribute0.w);
  6753. vec2 textureCoordinatesRange = czm_decompressTextureCoordinates(eyeOffset.w);
  6754. vec2 textureCoordinates = textureCoordinatesBottomLeft + direction * textureCoordinatesRange;
  6755. #else
  6756. vec2 direction;
  6757. direction.x = floor(compressed * SHIFT_RIGHT1);
  6758. direction.y = compressed - direction.x * SHIFT_LEFT1;
  6759. vec2 textureCoordinates = czm_decompressTextureCoordinates(compressedAttribute0.w);
  6760. #endif
  6761. float temp = compressedAttribute0.y * SHIFT_RIGHT8;
  6762. pixelOffset.y = -(floor(temp) - UPPER_BOUND);
  6763. vec2 translate;
  6764. translate.y = (temp - floor(temp)) * SHIFT_LEFT16;
  6765. temp = compressedAttribute0.z * SHIFT_RIGHT8;
  6766. translate.x = floor(temp) - UPPER_BOUND;
  6767. translate.y += (temp - floor(temp)) * SHIFT_LEFT8;
  6768. translate.y -= UPPER_BOUND;
  6769. temp = compressedAttribute1.x * SHIFT_RIGHT8;
  6770. float temp2 = floor(compressedAttribute2.w * SHIFT_RIGHT2);
  6771. vec2 imageSize = vec2(floor(temp), temp2);
  6772. #ifdef FRAGMENT_DEPTH_CHECK
  6773. float labelHorizontalOrigin = floor(compressedAttribute2.w - (temp2 * SHIFT_LEFT2));
  6774. float applyTranslate = 0.0;
  6775. if (labelHorizontalOrigin != 0.0) // is a billboard, so set apply translate to false
  6776. {
  6777. applyTranslate = 1.0;
  6778. labelHorizontalOrigin -= 2.0;
  6779. depthOrigin.x = labelHorizontalOrigin + 1.0;
  6780. }
  6781. depthOrigin = vec2(1.0) - (depthOrigin * 0.5);
  6782. #endif
  6783. #ifdef EYE_DISTANCE_TRANSLUCENCY
  6784. vec4 translucencyByDistance;
  6785. translucencyByDistance.x = compressedAttribute1.z;
  6786. translucencyByDistance.z = compressedAttribute1.w;
  6787. translucencyByDistance.y = ((temp - floor(temp)) * SHIFT_LEFT8) / 255.0;
  6788. temp = compressedAttribute1.y * SHIFT_RIGHT8;
  6789. translucencyByDistance.w = ((temp - floor(temp)) * SHIFT_LEFT8) / 255.0;
  6790. #endif
  6791. #if defined(VERTEX_DEPTH_CHECK) || defined(FRAGMENT_DEPTH_CHECK)
  6792. temp = compressedAttribute3.w;
  6793. temp = temp * SHIFT_RIGHT12;
  6794. vec2 dimensions;
  6795. dimensions.y = (temp - floor(temp)) * SHIFT_LEFT12;
  6796. dimensions.x = floor(temp);
  6797. #endif
  6798. #ifdef ALIGNED_AXIS
  6799. vec3 alignedAxis = czm_octDecode(floor(compressedAttribute1.y * SHIFT_RIGHT8));
  6800. temp = compressedAttribute2.z * SHIFT_RIGHT5;
  6801. bool validAlignedAxis = (temp - floor(temp)) * SHIFT_LEFT1 > 0.0;
  6802. #else
  6803. vec3 alignedAxis = vec3(0.0);
  6804. bool validAlignedAxis = false;
  6805. #endif
  6806. vec4 pickColor;
  6807. vec4 color;
  6808. temp = compressedAttribute2.y;
  6809. temp = temp * SHIFT_RIGHT8;
  6810. pickColor.b = (temp - floor(temp)) * SHIFT_LEFT8;
  6811. temp = floor(temp) * SHIFT_RIGHT8;
  6812. pickColor.g = (temp - floor(temp)) * SHIFT_LEFT8;
  6813. pickColor.r = floor(temp);
  6814. temp = compressedAttribute2.x;
  6815. temp = temp * SHIFT_RIGHT8;
  6816. color.b = (temp - floor(temp)) * SHIFT_LEFT8;
  6817. temp = floor(temp) * SHIFT_RIGHT8;
  6818. color.g = (temp - floor(temp)) * SHIFT_LEFT8;
  6819. color.r = floor(temp);
  6820. temp = compressedAttribute2.z * SHIFT_RIGHT8;
  6821. bool sizeInMeters = floor((temp - floor(temp)) * SHIFT_LEFT7) > 0.0;
  6822. temp = floor(temp) * SHIFT_RIGHT8;
  6823. pickColor.a = (temp - floor(temp)) * SHIFT_LEFT8;
  6824. pickColor /= 255.0;
  6825. color.a = floor(temp);
  6826. color /= 255.0;
  6827. ///////////////////////////////////////////////////////////////////////////
  6828. vec4 p = czm_translateRelativeToEye(positionHigh, positionLow);
  6829. vec4 positionEC = czm_modelViewRelativeToEye * p;
  6830. #if defined(FRAGMENT_DEPTH_CHECK) || defined(VERTEX_DEPTH_CHECK)
  6831. float eyeDepth = positionEC.z;
  6832. #endif
  6833. positionEC = czm_eyeOffset(positionEC, eyeOffset.xyz);
  6834. positionEC.xyz *= show;
  6835. ///////////////////////////////////////////////////////////////////////////
  6836. #if defined(EYE_DISTANCE_SCALING) || defined(EYE_DISTANCE_TRANSLUCENCY) || defined(EYE_DISTANCE_PIXEL_OFFSET) || defined(DISTANCE_DISPLAY_CONDITION) || defined(DISABLE_DEPTH_DISTANCE)
  6837. float lengthSq;
  6838. if (czm_sceneMode == czm_sceneMode2D)
  6839. {
  6840. // 2D camera distance is a special case
  6841. // treat all billboards as flattened to the z=0.0 plane
  6842. lengthSq = czm_eyeHeight2D.y;
  6843. }
  6844. else
  6845. {
  6846. lengthSq = dot(positionEC.xyz, positionEC.xyz);
  6847. }
  6848. #endif
  6849. #ifdef EYE_DISTANCE_SCALING
  6850. float distanceScale = czm_nearFarScalar(scaleByDistance, lengthSq);
  6851. scale *= distanceScale;
  6852. translate *= distanceScale;
  6853. // push vertex behind near plane for clipping
  6854. if (scale == 0.0)
  6855. {
  6856. positionEC.xyz = vec3(0.0);
  6857. }
  6858. #endif
  6859. float translucency = 1.0;
  6860. #ifdef EYE_DISTANCE_TRANSLUCENCY
  6861. translucency = czm_nearFarScalar(translucencyByDistance, lengthSq);
  6862. // push vertex behind near plane for clipping
  6863. if (translucency == 0.0)
  6864. {
  6865. positionEC.xyz = vec3(0.0);
  6866. }
  6867. #endif
  6868. #ifdef EYE_DISTANCE_PIXEL_OFFSET
  6869. float pixelOffsetScale = czm_nearFarScalar(pixelOffsetScaleByDistance, lengthSq);
  6870. pixelOffset *= pixelOffsetScale;
  6871. #endif
  6872. #ifdef DISTANCE_DISPLAY_CONDITION
  6873. float nearSq = compressedAttribute3.x;
  6874. float farSq = compressedAttribute3.y;
  6875. if (lengthSq < nearSq || lengthSq > farSq)
  6876. {
  6877. positionEC.xyz = vec3(0.0);
  6878. }
  6879. #endif
  6880. mat2 rotationMatrix;
  6881. float mpp;
  6882. #ifdef DISABLE_DEPTH_DISTANCE
  6883. float disableDepthTestDistance = compressedAttribute3.z;
  6884. #endif
  6885. #ifdef VERTEX_DEPTH_CHECK
  6886. if (lengthSq < disableDepthTestDistance) {
  6887. float depthsilon = 10.0;
  6888. vec2 labelTranslate = textureCoordinateBoundsOrLabelTranslate.xy;
  6889. vec4 pEC1 = addScreenSpaceOffset(positionEC, dimensions, scale, vec2(0.0), origin, labelTranslate, pixelOffset, alignedAxis, validAlignedAxis, rotation, sizeInMeters, rotationMatrix, mpp);
  6890. float globeDepth1 = getGlobeDepth(pEC1);
  6891. if (globeDepth1 != 0.0 && pEC1.z + depthsilon < globeDepth1)
  6892. {
  6893. vec4 pEC2 = addScreenSpaceOffset(positionEC, dimensions, scale, vec2(0.0, 1.0), origin, labelTranslate, pixelOffset, alignedAxis, validAlignedAxis, rotation, sizeInMeters, rotationMatrix, mpp);
  6894. float globeDepth2 = getGlobeDepth(pEC2);
  6895. if (globeDepth2 != 0.0 && pEC2.z + depthsilon < globeDepth2)
  6896. {
  6897. vec4 pEC3 = addScreenSpaceOffset(positionEC, dimensions, scale, vec2(1.0), origin, labelTranslate, pixelOffset, alignedAxis, validAlignedAxis, rotation, sizeInMeters, rotationMatrix, mpp);
  6898. float globeDepth3 = getGlobeDepth(pEC3);
  6899. if (globeDepth3 != 0.0 && pEC3.z + depthsilon < globeDepth3)
  6900. {
  6901. positionEC.xyz = vec3(0.0);
  6902. }
  6903. }
  6904. }
  6905. }
  6906. #endif
  6907. positionEC = addScreenSpaceOffset(positionEC, imageSize, scale, direction, origin, translate, pixelOffset, alignedAxis, validAlignedAxis, rotation, sizeInMeters, rotationMatrix, mpp);
  6908. gl_Position = czm_projection * positionEC;
  6909. v_textureCoordinates = textureCoordinates;
  6910. #ifdef LOG_DEPTH
  6911. czm_vertexLogDepth();
  6912. #endif
  6913. #ifdef DISABLE_DEPTH_DISTANCE
  6914. if (disableDepthTestDistance == 0.0 && czm_minimumDisableDepthTestDistance != 0.0)
  6915. {
  6916. disableDepthTestDistance = czm_minimumDisableDepthTestDistance;
  6917. }
  6918. if (disableDepthTestDistance != 0.0)
  6919. {
  6920. // Don't try to "multiply both sides" by w. Greater/less-than comparisons won't work for negative values of w.
  6921. float zclip = gl_Position.z / gl_Position.w;
  6922. bool clipped = (zclip < -1.0 || zclip > 1.0);
  6923. if (!clipped && (disableDepthTestDistance < 0.0 || (lengthSq > 0.0 && lengthSq < disableDepthTestDistance)))
  6924. {
  6925. // Position z on the near plane.
  6926. gl_Position.z = -gl_Position.w;
  6927. #ifdef LOG_DEPTH
  6928. v_depthFromNearPlusOne = 1.0;
  6929. #endif
  6930. }
  6931. }
  6932. #endif
  6933. #ifdef FRAGMENT_DEPTH_CHECK
  6934. if (sizeInMeters) {
  6935. translate /= mpp;
  6936. dimensions /= mpp;
  6937. imageSize /= mpp;
  6938. }
  6939. #if defined(ROTATION) || defined(ALIGNED_AXIS)
  6940. v_rotationMatrix = rotationMatrix;
  6941. #else
  6942. v_rotationMatrix = mat2(1.0, 0.0, 0.0, 1.0);
  6943. #endif
  6944. float enableDepthCheck = 0.0;
  6945. if (lengthSq < disableDepthTestDistance)
  6946. {
  6947. enableDepthCheck = 1.0;
  6948. }
  6949. float dw = floor(clamp(dimensions.x, 0.0, SHIFT_LEFT12));
  6950. float dh = floor(clamp(dimensions.y, 0.0, SHIFT_LEFT12));
  6951. float iw = floor(clamp(imageSize.x, 0.0, SHIFT_LEFT12));
  6952. float ih = floor(clamp(imageSize.y, 0.0, SHIFT_LEFT12));
  6953. v_compressed.x = eyeDepth;
  6954. v_compressed.y = applyTranslate * SHIFT_LEFT1 + enableDepthCheck;
  6955. v_compressed.z = dw * SHIFT_LEFT12 + dh;
  6956. v_compressed.w = iw * SHIFT_LEFT12 + ih;
  6957. v_originTextureCoordinateAndTranslate.xy = depthOrigin;
  6958. v_originTextureCoordinateAndTranslate.zw = translate;
  6959. v_textureCoordinateBounds = textureCoordinateBoundsOrLabelTranslate;
  6960. #endif
  6961. #ifdef SDF
  6962. vec4 outlineColor;
  6963. float outlineWidth;
  6964. temp = sdf.x;
  6965. temp = temp * SHIFT_RIGHT8;
  6966. outlineColor.b = (temp - floor(temp)) * SHIFT_LEFT8;
  6967. temp = floor(temp) * SHIFT_RIGHT8;
  6968. outlineColor.g = (temp - floor(temp)) * SHIFT_LEFT8;
  6969. outlineColor.r = floor(temp);
  6970. temp = sdf.y;
  6971. temp = temp * SHIFT_RIGHT8;
  6972. float temp3 = (temp - floor(temp)) * SHIFT_LEFT8;
  6973. temp = floor(temp) * SHIFT_RIGHT8;
  6974. outlineWidth = (temp - floor(temp)) * SHIFT_LEFT8;
  6975. outlineColor.a = floor(temp);
  6976. outlineColor /= 255.0;
  6977. v_outlineWidth = outlineWidth / 255.0;
  6978. v_outlineColor = outlineColor;
  6979. v_outlineColor.a *= translucency;
  6980. #endif
  6981. v_pickColor = pickColor;
  6982. v_color = color;
  6983. v_color.a *= translucency;
  6984. }
  6985. `;function Ai(e,t){e=y(e,y.EMPTY_OBJECT);let n=e.translucencyByDistance,i=e.pixelOffsetScaleByDistance,o=e.scaleByDistance,r=e.distanceDisplayCondition;u(n)&&(n=Pt.clone(n)),u(i)&&(i=Pt.clone(i)),u(o)&&(o=Pt.clone(o)),u(r)&&(r=St.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,Ge.NONE),this._verticalOrigin=y(e.verticalOrigin,Dn.CENTER),this._horizontalOrigin=y(e.horizontalOrigin,mi.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;u(s)&&(u(a)||(typeof s=="string"?a=s:u(s.src)?a=s.src:a=Wn()),this._imageId=a,this._image=s),u(e.imageSubRegion)&&(this._imageId=a,this._imageSubRegion=e.imageSubRegion),u(this._billboardCollection._textureAtlas)&&this._loadImage(),this._actualClampedPosition=void 0,this._removeCallbackFunc=void 0,this._mode=te.SCENE3D,this._clusterShow=!0,this._outlineColor=H.clone(y(e.outlineColor,H.BLACK)),this._outlineWidth=y(e.outlineWidth,0),this._updateClamping()}var xre=Ai.SHOW_INDEX=0,AU=Ai.POSITION_INDEX=1,Ere=Ai.PIXEL_OFFSET_INDEX=2,B8e=Ai.EYE_OFFSET_INDEX=3,k8e=Ai.HORIZONTAL_ORIGIN_INDEX=4,U8e=Ai.VERTICAL_ORIGIN_INDEX=5,V8e=Ai.SCALE_INDEX=6,CU=Ai.IMAGE_INDEX_INDEX=7,bre=Ai.COLOR_INDEX=8,z8e=Ai.ROTATION_INDEX=9,H8e=Ai.ALIGNED_AXIS_INDEX=10,G8e=Ai.SCALE_BY_DISTANCE_INDEX=11,W8e=Ai.TRANSLUCENCY_BY_DISTANCE_INDEX=12,j8e=Ai.PIXEL_OFFSET_SCALE_BY_DISTANCE_INDEX=13,q8e=Ai.DISTANCE_DISPLAY_CONDITION=14,Y8e=Ai.DISABLE_DEPTH_DISTANCE=15;Ai.TEXTURE_COORDINATE_BOUNDS=16;var Tre=Ai.SDF_INDEX=17;Ai.NUMBER_OF_PROPERTIES=18;function Uo(e,t){let n=e._billboardCollection;u(n)&&(n._updateBillboard(e,t),e._dirty=!0)}Object.defineProperties(Ai.prototype,{show:{get:function(){return this._show},set:function(e){this._show!==e&&(this._show=e,Uo(this,xre))}},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(),Uo(this,AU))}},heightReference:{get:function(){return this._heightReference},set:function(e){let t=this._heightReference;e!==t&&(this._heightReference=e,this._updateClamping(),Uo(this,AU))}},pixelOffset:{get:function(){return this._pixelOffset},set:function(e){let t=this._pixelOffset;z.equals(t,e)||(z.clone(e,t),Uo(this,Ere))}},scaleByDistance:{get:function(){return this._scaleByDistance},set:function(e){let t=this._scaleByDistance;Pt.equals(t,e)||(this._scaleByDistance=Pt.clone(e,t),Uo(this,G8e))}},translucencyByDistance:{get:function(){return this._translucencyByDistance},set:function(e){let t=this._translucencyByDistance;Pt.equals(t,e)||(this._translucencyByDistance=Pt.clone(e,t),Uo(this,W8e))}},pixelOffsetScaleByDistance:{get:function(){return this._pixelOffsetScaleByDistance},set:function(e){let t=this._pixelOffsetScaleByDistance;Pt.equals(t,e)||(this._pixelOffsetScaleByDistance=Pt.clone(e,t),Uo(this,j8e))}},eyeOffset:{get:function(){return this._eyeOffset},set:function(e){let t=this._eyeOffset;h.equals(t,e)||(h.clone(e,t),Uo(this,B8e))}},horizontalOrigin:{get:function(){return this._horizontalOrigin},set:function(e){this._horizontalOrigin!==e&&(this._horizontalOrigin=e,Uo(this,k8e))}},verticalOrigin:{get:function(){return this._verticalOrigin},set:function(e){this._verticalOrigin!==e&&(this._verticalOrigin=e,Uo(this,U8e))}},scale:{get:function(){return this._scale},set:function(e){this._scale!==e&&(this._scale=e,Uo(this,V8e))}},color:{get:function(){return this._color},set:function(e){let t=this._color;H.equals(t,e)||(H.clone(e,t),Uo(this,bre))}},rotation:{get:function(){return this._rotation},set:function(e){this._rotation!==e&&(this._rotation=e,Uo(this,z8e))}},alignedAxis:{get:function(){return this._alignedAxis},set:function(e){let t=this._alignedAxis;h.equals(t,e)||(h.clone(e,t),Uo(this,H8e))}},width:{get:function(){return y(this._width,this._imageWidth)},set:function(e){this._width!==e&&(this._width=e,Uo(this,CU))}},height:{get:function(){return y(this._height,this._imageHeight)},set:function(e){this._height!==e&&(this._height=e,Uo(this,CU))}},sizeInMeters:{get:function(){return this._sizeInMeters},set:function(e){this._sizeInMeters!==e&&(this._sizeInMeters=e,Uo(this,bre))}},distanceDisplayCondition:{get:function(){return this._distanceDisplayCondition},set:function(e){St.equals(e,this._distanceDisplayCondition)||(this._distanceDisplayCondition=St.clone(e,this._distanceDisplayCondition),Uo(this,q8e))}},disableDepthTestDistance:{get:function(){return this._disableDepthTestDistance},set:function(e){this._disableDepthTestDistance!==e&&(this._disableDepthTestDistance=e,Uo(this,Y8e))}},id:{get:function(){return this._id},set:function(e){this._id=e,u(this._pickId)&&(this._pickId.object.id=e)}},pickPrimitive:{get:function(){return this._pickPrimitive},set:function(e){this._pickPrimitive=e,u(this._pickId)&&(this._pickId.object.primitive=e)}},pickId:{get:function(){return this._pickId}},image:{get:function(){return this._imageId},set:function(e){u(e)?typeof e=="string"?this.setImage(e,e):e instanceof ve?this.setImage(e.url,e):u(e.src)?this.setImage(e.src,e):this.setImage(Wn(),e):(this._imageIndex=-1,this._imageSubRegion=void 0,this._imageId=void 0,this._image=void 0,this._imageIndexPromise=void 0,Uo(this,CU))}},ready:{get:function(){return this._imageIndex!==-1}},_clampedPosition:{get:function(){return this._actualClampedPosition},set:function(e){this._actualClampedPosition=h.clone(e,this._actualClampedPosition),Uo(this,AU)}},clusterShow:{get:function(){return this._clusterShow},set:function(e){this._clusterShow!==e&&(this._clusterShow=e,Uo(this,xre))}},outlineColor:{get:function(){return this._outlineColor},set:function(e){let t=this._outlineColor;H.equals(t,e)||(H.clone(e,t),Uo(this,Tre))}},outlineWidth:{get:function(){return this._outlineWidth},set:function(e){this._outlineWidth!==e&&(this._outlineWidth=e,Uo(this,Tre))}}});Ai.prototype.getPickId=function(e){return u(this._pickId)||(this._pickId=e.createPickId({primitive:this._pickPrimitive,collection:this._collection,id:this._id})),this._pickId};Ai.prototype._updateClamping=function(){Ai._updateClamping(this._billboardCollection,this)};var lR=new fe,Are=new h;Ai._updateClamping=function(e,t){let n=e._scene;if(!u(n)||!u(n.globe))return;let i=n.globe,o=i.ellipsoid,r=i._surface,s=n.frameState.mode,a=s!==t._mode;if(t._mode=s,(t._heightReference===Ge.NONE||a)&&u(t._removeCallbackFunc)&&(t._removeCallbackFunc(),t._removeCallbackFunc=void 0,t._clampedPosition=void 0),t._heightReference===Ge.NONE||!u(t._position))return;let c=o.cartesianToCartographic(t._position);if(!u(c)){t._actualClampedPosition=void 0;return}u(t._removeCallbackFunc)&&t._removeCallbackFunc();function l(d){if(t._heightReference===Ge.RELATIVE_TO_GROUND)if(t._mode===te.SCENE3D){let p=o.cartesianToCartographic(d,lR);p.height+=c.height,o.cartographicToCartesian(p,d)}else d.x+=c.height;t._clampedPosition=h.clone(d,t._clampedPosition)}t._removeCallbackFunc=r.updateHeight(c,l),fe.clone(c,lR);let f=i.getHeight(c);u(f)&&(lR.height=f),o.cartographicToCartesian(lR,Are),l(Are)};Ai.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||!We.equals(r._imageSubRegion,i))return;let l=e.textureCoordinates[c];r._imageWidth=e.texture.width*l.width,r._imageHeight=e.texture.height*l.height,r._imageIndex=c,r._ready=!0,r._image=void 0,r._imageIndexPromise=void 0,Uo(r,CU);let f=r._billboardCollection._scene;u(f)&&f.frameState.afterRender.push(()=>!0)}if(u(n)&&(o=e.addImage(t,n)),u(i)&&(o=e.addSubRegion(t,i)),this._imageIndexPromise=o,!u(o))return;let a=e.getImageIndex(t);if(u(a)&&!u(i)){s(a);return}o.then(s).catch(function(c){console.error(`Error loading image for billboard: ${c}`),r._imageIndexPromise=void 0})};Ai.prototype.setImage=function(e,t){this._imageId!==e&&(this._imageIndex=-1,this._imageSubRegion=void 0,this._imageId=e,this._image=t,u(this._billboardCollection._textureAtlas)&&this._loadImage())};Ai.prototype.setImageSubRegion=function(e,t){this._imageId===e&&We.equals(this._imageSubRegion,t)||(this._imageIndex=-1,this._imageId=e,this._imageSubRegion=We.clone(t),u(this._billboardCollection._textureAtlas)&&this._loadImage())};Ai.prototype._setTranslate=function(e){let t=this._translate;z.equals(t,e)||(z.clone(e,t),Uo(this,Ere))};Ai.prototype._getActualPosition=function(){return u(this._clampedPosition)?this._clampedPosition:this._actualPosition};Ai.prototype._setActualPosition=function(e){u(this._clampedPosition)||h.clone(e,this._actualPosition),Uo(this,AU)};var Cre=new oe;Ai._computeActualPosition=function(e,t,n,i){return u(e._clampedPosition)?(n.mode!==e._mode&&e._updateClamping(),e._clampedPosition):n.mode===te.SCENE3D?t:(F.multiplyByPoint(i,t,Cre),Xi.computeActualWgs84Position(n,Cre))};var Sre=new h;Ai._computeScreenSpacePosition=function(e,t,n,i,o,r){let s=F.multiplyByPoint(e,t,Sre),a=Xi.wgs84WithEyeOffsetToWindowCoordinates(o,s,n,r);if(u(a))return z.add(a,i,a),a};var TU=new z(0,0);Ai.prototype.computeScreenSpacePosition=function(e,t){let n=this._billboardCollection;u(t)||(t=new z),z.clone(this._pixelOffset,TU),z.add(TU,this._translate,TU);let i=n.modelMatrix,o=this._position;if(u(this._clampedPosition)&&(o=this._clampedPosition,e.mode!==te.SCENE3D)){let s=e.mapProjection,a=s.ellipsoid,c=s.unproject(o,lR);o=a.cartographicToCartesian(c,Sre),i=F.IDENTITY}return Ai._computeScreenSpacePosition(i,o,this._eyeOffset,TU,e,t)};Ai.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===mi.RIGHT?s-=i:e.horizontalOrigin===mi.CENTER&&(s-=i*.5);let a=t.y;return e.verticalOrigin===Dn.BOTTOM||e.verticalOrigin===Dn.BASELINE?a-=o:e.verticalOrigin===Dn.CENTER&&(a-=o*.5),u(n)||(n=new We),n.x=s,n.y=a,n.width=i,n.height=o,n};Ai.prototype.equals=function(e){return this===e||u(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&&We.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)&&Pt.equals(this._scaleByDistance,e._scaleByDistance)&&Pt.equals(this._translucencyByDistance,e._translucencyByDistance)&&Pt.equals(this._pixelOffsetScaleByDistance,e._pixelOffsetScaleByDistance)&&St.equals(this._distanceDisplayCondition,e._distanceDisplayCondition)&&this._disableDepthTestDistance===e._disableDepthTestDistance};Ai.prototype._destroy=function(){u(this._customData)&&(this._billboardCollection._scene.globe._surface.removeTileCustomData(this._customData),this._customData=void 0),u(this._removeCallbackFunc)&&(this._removeCallbackFunc(),this._removeCallbackFunc=void 0),this.image=void 0,this._pickId=this._pickId&&this._pickId.destroy(),this._billboardCollection=void 0};var fo=Ai;var X8e={OPAQUE:0,TRANSLUCENT:1,OPAQUE_AND_TRANSLUCENT:2},Co=Object.freeze(X8e);var K8e={FONT_SIZE:48,PADDING:10,RADIUS:8,CUTOFF:.25},Ps=Object.freeze(K8e);function Wp(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 Z8e=new z(16,16);function Zg(e){e=y(e,y.EMPTY_OBJECT);let t=y(e.borderWidthInPixels,1),n=y(e.initialSize,Z8e);this._context=e.context,this._pixelFormat=y(e.pixelFormat,nt.RGBA),this._borderWidthInPixels=t,this._textureCoordinates=[],this._guid=Wn(),this._idHash={},this._indexHash={},this._initialSize=n,this._root=void 0}Object.defineProperties(Zg.prototype,{borderWidthInPixels:{get:function(){return this._borderWidthInPixels}},textureCoordinates:{get:function(){return this._textureCoordinates}},texture:{get:function(){return u(this._texture)||(this._texture=new It({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 $8e(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),l=o*(a+t.height+r),f=s/c,d=a/l,p=new Wp(new z(s+r,r),new z(c,a)),g=new Wp(new z,new z(c,a),e._root,p),m=new Wp(new z(r,a+r),new z(c,l)),x=new Wp(new z,new z(c,l),g,m);for(let A=0;A<e._textureCoordinates.length;A++){let C=e._textureCoordinates[A];u(C)&&(C.x*=f,C.y*=d,C.width*=f,C.height*=d)}let b=new It({context:e._context,width:c,height:l,pixelFormat:e._pixelFormat}),T=new Hs({context:n,colorTextures:[e._texture],destroyAttachments:!1});T._bind(),b.copyFromFramebuffer(0,0,0,0,c,l),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 It({context:e._context,width:s,height:a,pixelFormat:e._pixelFormat}),e._root=new Wp(new z(r,r),new z(s,a))}}function EU(e,t,n){if(u(t)){if(!u(t.childNode1)&&!u(t.childNode2)){if(u(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 Wp(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 Wp(new z(a,t.bottomLeft.y),new z(t.topRight.x,t.topRight.y)))}else{t.childNode1=new Wp(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 Wp(new z(t.bottomLeft.x,a),new z(t.topRight.x,t.topRight.y)))}return EU(e,t.childNode1,n)}return EU(e,t.childNode1,n)||EU(e,t.childNode2,n)}}function wre(e,t,n){let i=EU(e,e._root,t);if(u(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,l=i.bottomLeft.y/r,f=s/o,d=a/r;e._textureCoordinates[n]=new We(c,l,f,d),e._texture.copyFrom({source:t,xOffset:i.bottomLeft.x,yOffset:i.bottomLeft.y})}else $8e(e,t),wre(e,t,n);e._guid=Wn()}function vre(e,t){if(!u(e)||e.isDestroyed())return-1;let n=e.numberOfImages;return wre(e,t,n),n}Zg.prototype.getImageIndex=function(e){return this._indexHash[e]};Zg.prototype.addImageSync=function(e,t){let n=this._indexHash[e];return u(n)||(n=vre(this,t),this._idHash[e]=Promise.resolve(n),this._indexHash[e]=n),n};Zg.prototype.addImage=function(e,t){let n=this._idHash[e];if(u(n))return n;typeof t=="function"?t=t(e):(typeof t=="string"||t instanceof ve)&&(t=ve.createIfNeeded(t).fetchImage());let i=this;return n=Promise.resolve(t).then(function(o){let r=vre(i,o);return i._indexHash[e]=r,r}),this._idHash[e]=n,n};Zg.prototype.addSubRegion=function(e,t){let n=this._idHash[e];if(!u(n))throw new ue(`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,l=a.y+t.y/s,f=t.width/r,d=t.height/s,p=i._textureCoordinates.push(new We(c,l,f,d))-1;return i._indexHash[e]=p,i._guid=Wn(),p})};Zg.prototype.isDestroyed=function(){return!1};Zg.prototype.destroy=function(){return this._texture=this._texture&&this._texture.destroy(),le(this)};var $g=Zg;var Q8e=fo.SHOW_INDEX,fR=fo.POSITION_INDEX,Dre=fo.PIXEL_OFFSET_INDEX,Ire=fo.EYE_OFFSET_INDEX,J8e=fo.HORIZONTAL_ORIGIN_INDEX,eHe=fo.VERTICAL_ORIGIN_INDEX,tHe=fo.SCALE_INDEX,uR=fo.IMAGE_INDEX_INDEX,Pre=fo.COLOR_INDEX,nHe=fo.ROTATION_INDEX,iHe=fo.ALIGNED_AXIS_INDEX,Ore=fo.SCALE_BY_DISTANCE_INDEX,Rre=fo.TRANSLUCENCY_BY_DISTANCE_INDEX,Mre=fo.PIXEL_OFFSET_SCALE_BY_DISTANCE_INDEX,Lre=fo.DISTANCE_DISPLAY_CONDITION,oHe=fo.DISABLE_DEPTH_DISTANCE,rHe=fo.TEXTURE_COORDINATE_BOUNDS,Nre=fo.SDF_INDEX,e9=fo.NUMBER_OF_PROPERTIES,xo,sHe={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},aHe={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 df(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(e9),this._maxSize=0,this._maxEyeOffset=0,this._maxScale=1,this._maxPixelOffset=0,this._allHorizontalCenter=!0,this._allVerticalCenter=!0,this._allSizedInMeters=!0,this._baseVolume=new se,this._baseVolumeWC=new se,this._baseVolume2D=new se,this._boundingVolume=new se,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=te.SCENE3D,this._buffersUsage=[Ne.STATIC_DRAW,Ne.STATIC_DRAW,Ne.STATIC_DRAW,Ne.STATIC_DRAW,Ne.STATIC_DRAW,Ne.STATIC_DRAW,Ne.STATIC_DRAW,Ne.STATIC_DRAW,Ne.STATIC_DRAW,Ne.STATIC_DRAW,Ne.STATIC_DRAW,Ne.STATIC_DRAW,Ne.STATIC_DRAW,Ne.STATIC_DRAW,Ne.STATIC_DRAW,Ne.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;u(n)&&u(n.terrainProviderChanged)&&(this._removeCallbackFunc=n.terrainProviderChanged.addEventListener(function(){let i=this._billboards,o=i.length;for(let r=0;r<o;++r)u(i[r])&&i[r]._updateClamping()},this))}Object.defineProperties(df.prototype,{length:{get:function(){return t9(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 Fre(e){let t=e.length;for(let n=0;n<t;++n)e[n]&&e[n]._destroy()}df.prototype.add=function(e){let t=new fo(e,this);return t._index=this._billboards.length,this._billboards.push(t),this._createVertexArray=!0,t};df.prototype.remove=function(e){return this.contains(e)?(this._billboards[e._index]=void 0,this._billboardsRemoved=!0,this._createVertexArray=!0,e._destroy(),!0):!1};df.prototype.removeAll=function(){Fre(this._billboards),this._billboards=[],this._billboardsToUpdate=[],this._billboardsToUpdateIndex=0,this._billboardsRemoved=!1,this._createVertexArray=!0};function t9(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];u(s)&&(s._index=r++,t.push(s))}e._billboards=t}}df.prototype._updateBillboard=function(e,t){e._dirty||(this._billboardsToUpdate[this._billboardsToUpdateIndex++]=e),++this._propertiesChanged[t]};df.prototype.contains=function(e){return u(e)&&e._billboardCollection===this};df.prototype.get=function(e){return t9(this),this._billboards[e]};var X6;function cHe(e){let n=e.cache.billboardCollection_indexBufferBatched;if(u(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:Ne.STATIC_DRAW,indexDatatype:Fe.UNSIGNED_SHORT}),n.vertexArrayDestroyable=!1,e.cache.billboardCollection_indexBufferBatched=n,n}function lHe(e){let t=e.cache.billboardCollection_indexBufferInstanced;return u(t)||(t=ct.createIndexBuffer({context:e,typedArray:new Uint16Array([0,1,2,0,2,3]),usage:Ne.STATIC_DRAW,indexDatatype:Fe.UNSIGNED_SHORT}),t.vertexArrayDestroyable=!1,e.cache.billboardCollection_indexBufferInstanced=t),t}function uHe(e){let t=e.cache.billboardCollection_vertexBufferInstanced;return u(t)||(t=ct.createVertexBuffer({context:e,typedArray:new Float32Array([0,0,1,0,1,1,0,1]),usage:Ne.STATIC_DRAW}),t.vertexArrayDestroyable=!1,e.cache.billboardCollection_vertexBufferInstanced=t),t}df.prototype.computeNewBuffersUsage=function(){let e=this._buffersUsage,t=!1,n=this._propertiesChanged;for(let i=0;i<e9;++i){let o=n[i]===0?Ne.STATIC_DRAW:Ne.STREAM_DRAW;t=t||e[i]!==o,e[i]=o}return t};function fHe(e,t,n,i,o,r){let s=[{index:xo.positionHighAndScale,componentsPerAttribute:4,componentDatatype:X.FLOAT,usage:n[fR]},{index:xo.positionLowAndRotation,componentsPerAttribute:4,componentDatatype:X.FLOAT,usage:n[fR]},{index:xo.compressedAttribute0,componentsPerAttribute:4,componentDatatype:X.FLOAT,usage:n[Dre]},{index:xo.compressedAttribute1,componentsPerAttribute:4,componentDatatype:X.FLOAT,usage:n[Rre]},{index:xo.compressedAttribute2,componentsPerAttribute:4,componentDatatype:X.FLOAT,usage:n[Pre]},{index:xo.eyeOffset,componentsPerAttribute:4,componentDatatype:X.FLOAT,usage:n[Ire]},{index:xo.scaleByDistance,componentsPerAttribute:4,componentDatatype:X.FLOAT,usage:n[Ore]},{index:xo.pixelOffsetScaleByDistance,componentsPerAttribute:4,componentDatatype:X.FLOAT,usage:n[Mre]},{index:xo.compressedAttribute3,componentsPerAttribute:4,componentDatatype:X.FLOAT,usage:n[Lre]},{index:xo.textureCoordinateBoundsOrLabelTranslate,componentsPerAttribute:4,componentDatatype:X.FLOAT,usage:n[rHe]}];i&&s.push({index:xo.direction,componentsPerAttribute:2,componentDatatype:X.FLOAT,vertexBuffer:uHe(e)}),u(o)&&s.push({index:xo.a_batchId,componentsPerAttribute:1,componentDatatype:X.FLOAT,bufferUsage:Ne.STATIC_DRAW}),r&&s.push({index:xo.sdf,componentsPerAttribute:2,componentDatatype:X.FLOAT,usage:n[Nre]});let a=i?t:4*t;return new sp(e,s,a,i)}var K6=new jn;function Bre(e,t,n,i,o){let r,s=i[xo.positionHighAndScale],a=i[xo.positionLowAndRotation],c=o._getActualPosition();e._mode===te.SCENE3D&&(se.expand(e._baseVolume,c,e._baseVolume),e._boundingVolumeDirty=!0),jn.fromCartesian(c,K6);let l=o.scale,f=o.rotation;f!==0&&(e._shaderRotation=!0),e._maxScale=Math.max(e._maxScale,l);let d=K6.high,p=K6.low;e._instanced?(r=o._index,s(r,d.x,d.y,d.z,l),a(r,p.x,p.y,p.z,f)):(r=o._index*4,s(r+0,d.x,d.y,d.z,l),s(r+1,d.x,d.y,d.z,l),s(r+2,d.x,d.y,d.z,l),s(r+3,d.x,d.y,d.z,l),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 ff=new z,uf=32768,lC=65536,Z6=4096,tm=256,dHe=128,hHe=32,mHe=8,kre=4,pHe=1/256,Ure=0,Vre=2,zre=3,Hre=1;function Gre(e,t,n,i,o){let r,s=i[xo.compressedAttribute0],a=o.pixelOffset,c=a.x,l=a.y,f=o._translate,d=f.x,p=f.y;e._maxPixelOffset=Math.max(e._maxPixelOffset,Math.abs(c+d),Math.abs(-l+p));let g=o.horizontalOrigin,m=o._verticalOrigin,x=o.show&&o.clusterShow;o.color.alpha===0&&(x=!1),m===Dn.BASELINE&&(m=Dn.BOTTOM),e._allHorizontalCenter=e._allHorizontalCenter&&g===mi.CENTER,e._allVerticalCenter=e._allVerticalCenter&&m===Dn.CENTER;let b=0,T=0,A=0,C=0,S=o._imageIndex;if(S!==-1){let V=n[S];b=V.x,T=V.y,A=V.width,C=V.height}let w=b+A,D=T+C,O=Math.floor(P.clamp(c,-uf,uf)+uf)*dHe;O+=(g+1)*hHe,O+=(m+1)*mHe,O+=(x?1:0)*kre;let R=Math.floor(P.clamp(l,-uf,uf)+uf)*tm,L=Math.floor(P.clamp(d,-uf,uf)+uf)*tm,N=(P.clamp(p,-uf,uf)+uf)*pHe,_=Math.floor(N),E=Math.floor((N-_)*tm);R+=_,L+=E,ff.x=b,ff.y=T;let v=qn.compressTextureCoordinates(ff);ff.x=w;let I=qn.compressTextureCoordinates(ff);ff.y=D;let M=qn.compressTextureCoordinates(ff);ff.x=b;let B=qn.compressTextureCoordinates(ff);e._instanced?(r=o._index,s(r,O,R,L,v)):(r=o._index*4,s(r+0,O+Ure,R,L,v),s(r+1,O+Vre,R,L,I),s(r+2,O+zre,R,L,M),s(r+3,O+Hre,R,L,B))}function Wre(e,t,n,i,o){let r,s=i[xo.compressedAttribute1],a=o.alignedAxis;h.equals(a,h.ZERO)||(e._shaderAlignedAxis=!0);let c=0,l=1,f=1,d=1,p=o.translucencyByDistance;u(p)&&(c=p.near,l=p.nearValue,f=p.far,d=p.farValue,(l!==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=P.clamp(b,0,lC),A=0;Math.abs(h.magnitudeSquared(a)-1)<P.EPSILON6&&(A=qn.octEncodeFloat(a)),l=P.clamp(l,0,1),l=l===1?255:l*255|0,T=T*tm+l,d=P.clamp(d,0,1),d=d===1?255:d*255|0,A=A*tm+d,e._instanced?(r=o._index,s(r,T,A,c,f)):(r=o._index*4,s(r+0,T,A,c,f),s(r+1,T,A,c,f),s(r+2,T,A,c,f),s(r+3,T,A,c,f))}function Q6(e,t,n,i,o){let r,s=i[xo.compressedAttribute2],a=o.color,c=u(e._batchTable)?H.WHITE:o.getPickId(t.context).color,l=o.sizeInMeters?1:0,f=Math.abs(h.magnitudeSquared(o.alignedAxis)-1)<P.EPSILON6?1:0;e._allSizedInMeters=e._allSizedInMeters&&l===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*kre+x,T=H.floatToByte(a.red),A=H.floatToByte(a.green),C=H.floatToByte(a.blue),S=T*lC+A*tm+C;T=H.floatToByte(c.red),A=H.floatToByte(c.green),C=H.floatToByte(c.blue);let w=T*lC+A*tm+C,D=H.floatToByte(a.alpha)*lC+H.floatToByte(c.alpha)*tm;D+=l*2+f,e._instanced?(r=o._index,s(r,S,w,D,b)):(r=o._index*4,s(r+0,S,w,D,b),s(r+1,S,w,D,b),s(r+2,S,w,D,b),s(r+3,S,w,D,b))}function J6(e,t,n,i,o){let r,s=i[xo.eyeOffset],a=o.eyeOffset,c=a.z;if(o._heightReference!==Ge.NONE&&(c*=1.005),e._maxEyeOffset=Math.max(e._maxEyeOffset,Math.abs(a.x),Math.abs(a.y),Math.abs(c)),e._instanced){let l=0,f=0,d=o._imageIndex;if(d!==-1){let g=n[d];l=g.width,f=g.height}ff.x=l,ff.y=f;let p=qn.compressTextureCoordinates(ff);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 jre(e,t,n,i,o){let r,s=i[xo.scaleByDistance],a=0,c=1,l=1,f=1,d=o.scaleByDistance;u(d)&&(a=d.near,c=d.nearValue,l=d.far,f=d.farValue,(c!==1||f!==1)&&(e._shaderScaleByDistance=!0)),e._instanced?(r=o._index,s(r,a,c,l,f)):(r=o._index*4,s(r+0,a,c,l,f),s(r+1,a,c,l,f),s(r+2,a,c,l,f),s(r+3,a,c,l,f))}function qre(e,t,n,i,o){let r,s=i[xo.pixelOffsetScaleByDistance],a=0,c=1,l=1,f=1,d=o.pixelOffsetScaleByDistance;u(d)&&(a=d.near,c=d.nearValue,l=d.far,f=d.farValue,(c!==1||f!==1)&&(e._shaderPixelOffsetScaleByDistance=!0)),e._instanced?(r=o._index,s(r,a,c,l,f)):(r=o._index*4,s(r+0,a,c,l,f),s(r+1,a,c,l,f),s(r+2,a,c,l,f),s(r+3,a,c,l,f))}function Yre(e,t,n,i,o){let r,s=i[xo.compressedAttribute3],a=0,c=Number.MAX_VALUE,l=o.distanceDisplayCondition;u(l)&&(a=l.near,c=l.far,a*=a,c*=c,e._shaderDistanceDisplayCondition=!0);let f=o.disableDepthTestDistance,d=o.heightReference===Ge.CLAMP_TO_GROUND&&t.context.depthTexture;u(f)||(f=d?5e3:0),f*=f,(d||f>0)&&(e._shaderDisableDepthDistance=!0,f===Number.POSITIVE_INFINITY&&(f=-1));let p,g;if(u(o._labelDimensions))g=o._labelDimensions.x,p=o._labelDimensions.y;else{let T=0,A=0,C=o._imageIndex;if(C!==-1){let w=n[C];T=w.height,A=w.width}p=Math.round(y(o.height,e._textureAtlas.texture.dimensions.y*T));let S=e._textureAtlas.texture.width;g=Math.round(y(o.width,S*A))}let m=Math.floor(P.clamp(g,0,Z6)),x=Math.floor(P.clamp(p,0,Z6)),b=m*Z6+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 Xre(e,t,n,i,o){if(o.heightReference===Ge.CLAMP_TO_GROUND){let m=e._scene,x=t.context,b=t.globeTranslucencyState.translucent,T=u(m.globe)&&m.globe.depthTestAgainstTerrain;e._shaderClampToGround=x.depthTexture&&!b&&T}let r,s=i[xo.textureCoordinateBoundsOrLabelTranslate];if(Ut.maximumVertexTextureImageUnits>0){let m=0,x=0;u(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,l=0,f=0,d=o._imageIndex;if(d!==-1){let m=n[d];a=m.x,c=m.y,l=m.width,f=m.height}let p=a+l,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 _He(e,t,n,i,o){if(!u(e._batchTable))return;let r=i[xo.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 Kre(e,t,n,i,o){if(!e._sdf)return;let r,s=i[xo.sdf],a=o.outlineColor,c=o.outlineWidth,l=H.floatToByte(a.red),f=H.floatToByte(a.green),d=H.floatToByte(a.blue),p=l*lC+f*tm+d,g=c/Ps.RADIUS,m=H.floatToByte(a.alpha)*lC+H.floatToByte(g)*tm;e._instanced?(r=o._index,s(r,p,m)):(r=o._index*4,s(r+0,p+Ure,m),s(r+1,p+Vre,m),s(r+2,p+zre,m),s(r+3,p+Hre,m))}function gHe(e,t,n,i,o){Bre(e,t,n,i,o),Gre(e,t,n,i,o),Wre(e,t,n,i,o),Q6(e,t,n,i,o),J6(e,t,n,i,o),jre(e,t,n,i,o),qre(e,t,n,i,o),Yre(e,t,n,i,o),Xre(e,t,n,i,o),_He(e,t,n,i,o),Kre(e,t,n,i,o)}function $6(e,t,n,i,o,r){let s;i.mode===te.SCENE3D?(s=e._baseVolume,e._boundingVolumeDirty=!0):s=e._baseVolume2D;let a=[];for(let c=0;c<n;++c){let l=t[c],f=l.position,d=fo._computeActualPosition(l,f,i,o);u(d)&&(l._setActualPosition(d),r?a.push(d):se.expand(s,d,s))}r&&se.fromPoints(a,s)}function yHe(e,t){let n=t.mode,i=e._billboards,o=e._billboardsToUpdate,r=e._modelMatrix;e._createVertexArray||e._mode!==n||n!==te.SCENE3D&&!F.equals(r,e.modelMatrix)?(e._mode=n,F.clone(e.modelMatrix,r),e._createVertexArray=!0,(n===te.SCENE3D||n===te.SCENE2D||n===te.COLUMBUS_VIEW)&&$6(e,i,i.length,t,r,!0)):n===te.MORPHING?$6(e,i,i.length,t,r,!0):(n===te.SCENE2D||n===te.COLUMBUS_VIEW)&&$6(e,o,e._billboardsToUpdateIndex,t,r,!1)}function xHe(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 bHe(e,t){let n=`uniform sampler2D billboard_texture;
  6986. in vec2 v_textureCoordinates;
  6987. void main()
  6988. {
  6989. out_FragColor = texture(billboard_texture, v_textureCoordinates);
  6990. }
  6991. `,i=t.createViewportQuadCommand(n,{uniformMap:{billboard_texture:function(){return e._textureAtlas.texture}}});return i.pass=Ee.OVERLAY,i}var THe=[];df.prototype.update=function(e){if(t9(this),!this.show)return;let t=this._billboards,n=t.length,i=e.context;this._instanced=i.instancedArrays,xo=this._instanced?aHe:sHe,X6=this._instanced?lHe:cHe;let o=this._textureAtlas;if(!u(o)){o=this._textureAtlas=new $g({context:i});for(let R=0;R<n;++R)t[R]._loadImage()}let r=o.textureCoordinates;if(r.length===0)return;yHe(this,e),t=this._billboards,n=t.length;let s=this._billboardsToUpdate,a=this._billboardsToUpdateIndex,c=this._propertiesChanged,l=o.guid,f=this._createVertexArray||this._textureAtlasGUID!==l;this._textureAtlasGUID=l;let d,p=e.passes,g=p.pick;if(f||!g&&this.computeNewBuffersUsage()){this._createVertexArray=!1;for(let R=0;R<e9;++R)c[R]=0;if(this._vaf=this._vaf&&this._vaf.destroy(),n>0){this._vaf=fHe(i,n,this._buffersUsage,this._instanced,this._batchTable,this._sdf),d=this._vaf.writers;for(let R=0;R<n;++R){let L=this._billboards[R];L._dirty=!1,gHe(this,e,r,d,L)}this._vaf.commit(X6(i))}this._billboardsToUpdateIndex=0}else if(a>0){let R=THe;R.length=0,(c[fR]||c[nHe]||c[tHe])&&R.push(Bre),(c[uR]||c[Dre]||c[J8e]||c[eHe]||c[Q8e])&&(R.push(Gre),this._instanced&&R.push(J6)),(c[uR]||c[iHe]||c[Rre])&&(R.push(Wre),R.push(Q6)),(c[uR]||c[Pre])&&R.push(Q6),c[Ire]&&R.push(J6),c[Ore]&&R.push(jre),c[Mre]&&R.push(qre),(c[Lre]||c[oHe]||c[uR]||c[fR])&&R.push(Yre),(c[uR]||c[fR])&&R.push(Xre),c[Nre]&&R.push(Kre);let L=R.length;if(d=this._vaf.writers,a/n>.1){for(let N=0;N<a;++N){let _=s[N];_._dirty=!1;for(let E=0;E<L;++E)R[E](this,e,r,d,_)}this._vaf.commit(X6(i))}else{for(let N=0;N<a;++N){let _=s[N];_._dirty=!1;for(let E=0;E<L;++E)R[E](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),!u(this._vaf)||!u(this._vaf.va))return;this._boundingVolumeDirty&&(this._boundingVolumeDirty=!1,se.transform(this._baseVolume,this.modelMatrix,this._baseVolumeWC));let m,x=F.IDENTITY;e.mode===te.SCENE3D?(x=this.modelMatrix,m=se.clone(this._baseVolumeWC,this._boundingVolume)):m=se.clone(this._baseVolume2D,this._boundingVolume),xHe(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=ke.fromCache({depthTest:{enabled:!0,func:ee.LESS},depthMask:!0}):this._rsOpaque=void 0;let R=this._blendOption===Co.TRANSLUCENT;this._blendOption===Co.TRANSLUCENT||this._blendOption===Co.OPAQUE_AND_TRANSLUCENT?this._rsTranslucent=ke.fromCache({depthTest:{enabled:!0,func:R?ee.LEQUAL:ee.LESS},depthMask:R,blending:un.ALPHA_BLEND}):this._rsTranslucent=void 0}this._shaderDisableDepthDistance=this._shaderDisableDepthDistance||e.minimumDisableDepthTestDistance!==0;let T,A,C,S,w,D=Ut.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=cR,A=aR,w=[],u(this._batchTable)&&(w.push("VECTOR_TILE"),T=this._batchTable.getVertexShaderCallback(!1,"a_batchId",void 0)(T),A=this._batchTable.getFragmentShaderCallback(!1,void 0)(A)),C=new Ue({defines:w,sources:[T]}),this._instanced&&C.defines.push("INSTANCED"),this._shaderRotation&&C.defines.push("ROTATION"),this._shaderAlignedAxis&&C.defines.push("ALIGNED_AXIS"),this._shaderScaleByDistance&&C.defines.push("EYE_DISTANCE_SCALING"),this._shaderTranslucencyByDistance&&C.defines.push("EYE_DISTANCE_TRANSLUCENCY"),this._shaderPixelOffsetScaleByDistance&&C.defines.push("EYE_DISTANCE_PIXEL_OFFSET"),this._shaderDistanceDisplayCondition&&C.defines.push("DISTANCE_DISPLAY_CONDITION"),this._shaderDisableDepthDistance&&C.defines.push("DISABLE_DEPTH_DISTANCE"),this._shaderClampToGround&&(D?C.defines.push("VERTEX_DEPTH_CHECK"):C.defines.push("FRAGMENT_DEPTH_CHECK"));let R=1-Ps.CUTOFF;this._sdf&&C.defines.push("SDF");let L=u(this._batchTable)?"VECTOR_TILE":"";this._blendOption===Co.OPAQUE_AND_TRANSLUCENT&&(S=new Ue({defines:["OPAQUE",L],sources:[A]}),this._shaderClampToGround&&(D?S.defines.push("VERTEX_DEPTH_CHECK"):S.defines.push("FRAGMENT_DEPTH_CHECK")),this._sdf&&(S.defines.push("SDF"),S.defines.push(`SDF_EDGE ${R}`)),this._sp=Yt.replaceCache({context:i,shaderProgram:this._sp,vertexShaderSource:C,fragmentShaderSource:S,attributeLocations:xo}),S=new Ue({defines:["TRANSLUCENT",L],sources:[A]}),this._shaderClampToGround&&(D?S.defines.push("VERTEX_DEPTH_CHECK"):S.defines.push("FRAGMENT_DEPTH_CHECK")),this._sdf&&(S.defines.push("SDF"),S.defines.push(`SDF_EDGE ${R}`)),this._spTranslucent=Yt.replaceCache({context:i,shaderProgram:this._spTranslucent,vertexShaderSource:C,fragmentShaderSource:S,attributeLocations:xo})),this._blendOption===Co.OPAQUE&&(S=new Ue({defines:[L],sources:[A]}),this._shaderClampToGround&&(D?S.defines.push("VERTEX_DEPTH_CHECK"):S.defines.push("FRAGMENT_DEPTH_CHECK")),this._sdf&&(S.defines.push("SDF"),S.defines.push(`SDF_EDGE ${R}`)),this._sp=Yt.replaceCache({context:i,shaderProgram:this._sp,vertexShaderSource:C,fragmentShaderSource:S,attributeLocations:xo})),this._blendOption===Co.TRANSLUCENT&&(S=new Ue({defines:[L],sources:[A]}),this._shaderClampToGround&&(D?S.defines.push("VERTEX_DEPTH_CHECK"):S.defines.push("FRAGMENT_DEPTH_CHECK")),this._sdf&&(S.defines.push("SDF"),S.defines.push(`SDF_EDGE ${R}`)),this._spTranslucent=Yt.replaceCache({context:i,shaderProgram:this._spTranslucent,vertexShaderSource:C,fragmentShaderSource:S,attributeLocations:xo})),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 R=this._colorCommands,L=this._blendOption===Co.OPAQUE,N=this._blendOption===Co.OPAQUE_AND_TRANSLUCENT,_=this._vaf.va,E=_.length,v=this._uniforms,I;u(this._batchTable)?(v=this._batchTable.getUniformMapCallback()(v),I=this._batchTable.getPickId()):I="v_pickColor",R.length=E;let M=N?E*2:E;for(let B=0;B<M;++B){let V=R[B];u(V)||(V=R[B]=new Je);let U=L||N&&B%2===0;V.pass=U||!N?Ee.OPAQUE:Ee.TRANSLUCENT,V.owner=this;let G=N?Math.floor(B/2):B;V.boundingVolume=m,V.modelMatrix=x,V.count=_[G].indicesCount,V.shaderProgram=U?this._sp:this._spTranslucent,V.uniformMap=v,V.vertexArray=_[G].va,V.renderState=U?this._rsOpaque:this._rsTranslucent,V.debugShowBoundingVolume=this.debugShowBoundingVolume,V.pickId=I,this._instanced&&(V.count=6,V.instanceCount=n),O.push(V)}this.debugShowTextureAtlas&&(u(this.debugCommand)||(this.debugCommand=bHe(this,e.context)),O.push(this.debugCommand))}};df.prototype.isDestroyed=function(){return!1};df.prototype.destroy=function(){return u(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(),Fre(this._billboards),le(this)};var uu=df;function AHe(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 jx=AHe;function Ks(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),uC(this)}var CHe=new fe;Object.defineProperties(Ks.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),uC(this)}},pointSize:{get:function(){return this._pointSize},set:function(e){this._pointSize=e,uC(this)}},pointOutlineColor:{get:function(){return this._pointOutlineColor},set:function(e){this._pointOutlineColor=H.clone(e,this._pointOutlineColor),uC(this)}},pointOutlineWidth:{get:function(){return this._pointOutlineWidth},set:function(e){this._pointOutlineWidth=e,uC(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){u(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,CHe);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&&uC(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}}});Ks.defaultColor=H.WHITE;Ks.defaultPointOutlineColor=H.BLACK;Ks.defaultPointOutlineWidth=0;Ks.defaultPointSize=8;function uC(e){let t=e._billboard;if(u(e._billboardImage)&&e._billboardImage!==t.image){t.image=e._billboardImage;return}if(u(e._billboardImage))return;let n=y(e._color,Ks.defaultColor),i=y(e._pointOutlineColor,Ks.defaultPointOutlineColor),o=y(e._pointOutlineWidth,Ks.defaultPointOutlineWidth),r=y(e._pointSize,Ks.defaultPointSize),s=e._billboardColor,a=e._billboardOutlineColor,c=e._billboardOutlineWidth,l=e._billboardSize;if(H.equals(n,s)&&H.equals(i,a)&&o===c&&r===l)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,jx(f,d,p,o,r))}Ks.prototype.hasProperty=function(e){return this._content.batchTable.hasProperty(this._batchId,e)};Ks.prototype.getPropertyIds=function(e){return this._content.batchTable.getPropertyIds(this._batchId,e)};Ks.prototype.getProperty=function(e){return this._content.batchTable.getProperty(this._batchId,e)};Ks.prototype.getPropertyInherited=function(e){return ws.getPropertyInherited(this._content,this._batchId,e)};Ks.prototype.setProperty=function(e,t){this._content.batchTable.setProperty(this._batchId,e,t),this._content.featurePropertiesDirty=!0};Ks.prototype.isExactClass=function(e){return this._content.batchTable.isExactClass(this._batchId,e)};Ks.prototype.isClass=function(e){return this._content.batchTable.isClass(this._batchId,e)};Ks.prototype.getExactClassName=function(){return this._content.batchTable.getExactClassName(this._batchId)};var jp=Ks;function EHe(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"),l=100,f=r.width+l|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,l/2,p)),o&&(g.fillStyle="black",g.fillText(t,l/2,p));let m=g.getImageData(0,0,f,d).data,x=m.length,b=f*4,T,A,C,S;for(T=0;T<x;++T)if(m[T]!==255){C=T/b|0;break}for(T=x-1;T>=0;--T)if(m[T]!==255){S=T/b|0;break}let w=-1;for(T=0;T<f&&w===-1;++T)for(A=0;A<d;++A){let D=T*4+A*b;if(m[D]!==255||m[D+1]!==255||m[D+2]!==255||m[D+3]!==255){w=T;break}}return{width:r.width,height:S-C,ascent:p-C,descent:S-p,minx:w-l/2}}return{width:r.width,height:0,ascent:0,descent:0,minx:0}}var qx;function SHe(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,l=document.createElement("canvas");l.width=1,l.height=1,l.style.font=n;let f=l.getContext("2d",{willReadFrequently:!0});u(qx)||(u(f.imageSmoothingEnabled)?qx="imageSmoothingEnabled":u(f.mozImageSmoothingEnabled)?qx="mozImageSmoothingEnabled":u(f.webkitImageSmoothingEnabled)?qx="webkitImageSmoothingEnabled":u(f.msImageSmoothingEnabled)&&(qx="msImageSmoothingEnabled")),f.font=n,f.lineJoin="round",f.lineWidth=r,f[qx]=!1,l.style.visibility="hidden",document.body.appendChild(l);let d=EHe(f,e,n,i,o);l.dimensions=d,document.body.removeChild(l),l.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(l.width=g,l.height=m,f.font=n,f.lineJoin="round",f.lineWidth=r,f[qx]=!1,s!==H.TRANSPARENT&&(f.fillStyle=s.toCssColorString(),f.fillRect(0,0,l.width,l.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 l}var Yx=SHe;var sse=ro(Jre(),1);var vHe={FILL:0,OUTLINE:1,FILL_AND_OUTLINE:2},Vo=Object.freeze(vHe);var ese={},tse=0,DHe=256,IHe=new H(.165,.165,.165,.8),PHe=new z(7,5),ns=Object.freeze({LTR:0,RTL:1,WEAK:2,BRACKETS:3});function Xx(e){!e._rebindAllGlyphs&&!e._repositionAllGlyphs&&e._labelCollection._labelsToUpdate.push(e),e._rebindAllGlyphs=!0}function hR(e){!e._rebindAllGlyphs&&!e._repositionAllGlyphs&&e._labelCollection._labelsToUpdate.push(e),e._repositionAllGlyphs=!0}function mR(e,t){return document.defaultView.getComputedStyle(e,null).getPropertyValue(t)}function ise(e){let t=ese[e._font];if(!u(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(mR(n,"line-height"));isNaN(i)&&(i=void 0),t={family:mR(n,"font-family"),size:mR(n,"font-size").replace("px",""),style:mR(n,"font-style"),weight:mR(n,"font-weight"),lineHeight:i},document.body.removeChild(n),tse<DHe&&(ese[e._font]=t,tse++)}e._fontFamily=t.family,e._fontSize=t.size,e._fontStyle=t.style,e._fontWeight=t.weight,e._lineHeight=t.lineHeight}function qp(e,t){e=y(e,y.EMPTY_OBJECT);let n=e.translucencyByDistance,i=e.pixelOffsetScaleByDistance,o=e.scaleByDistance,r=e.distanceDisplayCondition;u(n)&&(n=Pt.clone(n)),u(i)&&(i=Pt.clone(i)),u(o)&&(o=Pt.clone(o)),u(r)&&(r=St.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,IHe)),this._backgroundPadding=z.clone(y(e.backgroundPadding,PHe)),this._style=y(e.style,Vo.FILL),this._verticalOrigin=y(e.verticalOrigin,Dn.BASELINE),this._horizontalOrigin=y(e.horizontalOrigin,mi.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,Ge.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,ise(this),this._updateClamping()}Object.defineProperties(qp.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;u(r)&&(r.show=e)}let n=this._backgroundBillboard;u(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;u(s)&&(s.position=e)}let i=this._backgroundBillboard;u(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;u(r)&&(r.heightReference=e)}let n=this._backgroundBillboard;u(n)&&(n.heightReference=e),hR(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=qp.enableRightToLeftDetection?FHe(t):t,Xx(this)}}},font:{get:function(){return this._font},set:function(e){this._font!==e&&(this._font=e,Xx(this),ise(this))}},fillColor:{get:function(){return this._fillColor},set:function(e){let t=this._fillColor;H.equals(t,e)||(H.clone(e,t),Xx(this))}},outlineColor:{get:function(){return this._outlineColor},set:function(e){let t=this._outlineColor;H.equals(t,e)||(H.clone(e,t),Xx(this))}},outlineWidth:{get:function(){return this._outlineWidth},set:function(e){this._outlineWidth!==e&&(this._outlineWidth=e,Xx(this))}},showBackground:{get:function(){return this._showBackground},set:function(e){this._showBackground!==e&&(this._showBackground=e,Xx(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;u(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),hR(this))}},style:{get:function(){return this._style},set:function(e){this._style!==e&&(this._style=e,Xx(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];u(s.billboard)&&(s.billboard.pixelOffset=e)}let i=this._backgroundBillboard;u(i)&&(i.pixelOffset=e)}}},translucencyByDistance:{get:function(){return this._translucencyByDistance},set:function(e){let t=this._translucencyByDistance;if(!Pt.equals(t,e)){this._translucencyByDistance=Pt.clone(e,t);let n=this._glyphs;for(let o=0,r=n.length;o<r;o++){let s=n[o];u(s.billboard)&&(s.billboard.translucencyByDistance=e)}let i=this._backgroundBillboard;u(i)&&(i.translucencyByDistance=e)}}},pixelOffsetScaleByDistance:{get:function(){return this._pixelOffsetScaleByDistance},set:function(e){let t=this._pixelOffsetScaleByDistance;if(!Pt.equals(t,e)){this._pixelOffsetScaleByDistance=Pt.clone(e,t);let n=this._glyphs;for(let o=0,r=n.length;o<r;o++){let s=n[o];u(s.billboard)&&(s.billboard.pixelOffsetScaleByDistance=e)}let i=this._backgroundBillboard;u(i)&&(i.pixelOffsetScaleByDistance=e)}}},scaleByDistance:{get:function(){return this._scaleByDistance},set:function(e){let t=this._scaleByDistance;if(!Pt.equals(t,e)){this._scaleByDistance=Pt.clone(e,t);let n=this._glyphs;for(let o=0,r=n.length;o<r;o++){let s=n[o];u(s.billboard)&&(s.billboard.scaleByDistance=e)}let i=this._backgroundBillboard;u(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];u(s.billboard)&&(s.billboard.eyeOffset=e)}let i=this._backgroundBillboard;u(i)&&(i.eyeOffset=e)}}},horizontalOrigin:{get:function(){return this._horizontalOrigin},set:function(e){this._horizontalOrigin!==e&&(this._horizontalOrigin=e,hR(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];u(r.billboard)&&(r.billboard.verticalOrigin=e)}let n=this._backgroundBillboard;u(n)&&(n.verticalOrigin=e),hR(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];u(r.billboard)&&(r.billboard.scale=e*this._relativeSize)}let n=this._backgroundBillboard;u(n)&&(n.scale=e*this._relativeSize),hR(this)}}},totalScale:{get:function(){return this._scale*this._relativeSize}},distanceDisplayCondition:{get:function(){return this._distanceDisplayCondition},set:function(e){if(!St.equals(e,this._distanceDisplayCondition)){this._distanceDisplayCondition=St.clone(e,this._distanceDisplayCondition);let t=this._glyphs;for(let i=0,o=t.length;i<o;i++){let r=t[i];u(r.billboard)&&(r.billboard.distanceDisplayCondition=e)}let n=this._backgroundBillboard;u(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];u(r.billboard)&&(r.billboard.disableDepthTestDistance=e)}let n=this._backgroundBillboard;u(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];u(r.billboard)&&(r.billboard.id=e)}let n=this._backgroundBillboard;u(n)&&(n.id=e)}}},pickId:{get:function(){if(!(this._glyphs.length===0||!u(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];u(r.billboard)&&(r.billboard._clampedPosition=e)}let n=this._backgroundBillboard;u(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];u(r.billboard)&&(r.billboard.clusterShow=e)}let n=this._backgroundBillboard;u(n)&&(n.clusterShow=e)}}}});qp.prototype._updateClamping=function(){fo._updateClamping(this._labelCollection,this)};qp.prototype.computeScreenSpacePosition=function(e,t){u(t)||(t=new z);let i=this._labelCollection.modelMatrix,o=u(this._actualClampedPosition)?this._actualClampedPosition:this._position;return fo._computeScreenSpacePosition(i,o,this._eyeOffset,this._pixelOffset,e,t)};qp.getScreenSpaceBoundingBox=function(e,t,n){let i=0,o=0,r=0,s=0,a=e.totalScale,c=e._backgroundBillboard;if(u(c))i=t.x+c._translate.x,o=t.y-c._translate.y,r=c.width*a,s=c.height*a,e.verticalOrigin===Dn.BOTTOM||e.verticalOrigin===Dn.BASELINE?o-=s:e.verticalOrigin===Dn.CENTER&&(o-=s*.5);else{i=Number.POSITIVE_INFINITY,o=Number.POSITIVE_INFINITY;let l=0,f=0,d=e._glyphs,p=d.length;for(let g=0;g<p;++g){let m=d[g],x=m.billboard;if(!u(x))continue;let b=t.x+x._translate.x,T=t.y-x._translate.y,A=m.dimensions.width*a,C=m.dimensions.height*a;e.verticalOrigin===Dn.BOTTOM||e.verticalOrigin===Dn.BASELINE?T-=C:e.verticalOrigin===Dn.CENTER&&(T-=C*.5),e._verticalOrigin===Dn.TOP?T+=Ps.PADDING*a:(e._verticalOrigin===Dn.BOTTOM||e._verticalOrigin===Dn.BASELINE)&&(T-=Ps.PADDING*a),i=Math.min(i,b),o=Math.min(o,T),l=Math.max(l,b+A),f=Math.max(f,T+C)}r=l-i,s=f-o}return u(n)||(n=new We),n.x=i,n.y=o,n.width=r,n.height=s,n};qp.prototype.equals=function(e){return this===e||u(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)&&Pt.equals(this._translucencyByDistance,e._translucencyByDistance)&&Pt.equals(this._pixelOffsetScaleByDistance,e._pixelOffsetScaleByDistance)&&Pt.equals(this._scaleByDistance,e._scaleByDistance)&&St.equals(this._distanceDisplayCondition,e._distanceDisplayCondition)&&this._disableDepthTestDistance===e._disableDepthTestDistance&&this._id===e._id};qp.prototype.isDestroyed=function(){return!1};qp.enableRightToLeftDetection=!1;function OHe(e,t){let n=/[a-zA-Z0-9]/,i=/[()[\]{}<>]/,o=[],r="",s=ns.LTR,a="",c=e.length;for(let l=0;l<c;++l){let f=e.charAt(l);t.test(f)?a=ns.RTL:n.test(f)?a=ns.LTR:i.test(f)?a=ns.BRACKETS:a=ns.WEAK,l===0&&(s=a),s===a&&a!==ns.BRACKETS?r+=f:(r!==""&&o.push({Type:s,Word:r}),s=a,r=f)}return o.push({Type:a,Word:r}),o}function RHe(e){return e.split("").reverse().join("")}function pR(e,t,n){return e.slice(0,t)+n+e.slice(t)}function MHe(e){switch(e){case"(":return")";case")":return"(";case"[":return"]";case"]":return"[";case"{":return"}";case"}":return"{";case"<":return">";case">":return"<"}}var LHe="\u05D0-\u05EA",NHe="\u0600-\u06FF\u0750-\u077F\u08A0-\u08FF",nse=new RegExp(`[${LHe}${NHe}]`);function FHe(e){let t=e.split(`
  6992. `),n="";for(let i=0;i<t.length;i++){let o=t[i],r=nse.test(o.charAt(0)),s=OHe(o,nse),a=0,c="";for(let l=0;l<s.length;++l){let f=s[l],d=f.Type===ns.BRACKETS?MHe(f.Word):RHe(f.Word);r?f.Type===ns.RTL?(c=d+c,a=0):f.Type===ns.LTR?(c=pR(c,a,f.Word),a+=f.Word.length):(f.Type===ns.WEAK||f.Type===ns.BRACKETS)&&(f.Type===ns.WEAK&&s[l-1].Type===ns.BRACKETS?c=d+c:s[l-1].Type===ns.RTL?(c=d+c,a=0):s.length>l+1?s[l+1].Type===ns.RTL?(c=d+c,a=0):(c=pR(c,a,f.Word),a+=f.Word.length):c=pR(c,0,d)):f.Type===ns.RTL?c=pR(c,a,d):f.Type===ns.LTR?(c+=f.Word,a=c.length):(f.Type===ns.WEAK||f.Type===ns.BRACKETS)&&(l>0&&s[l-1].Type===ns.RTL?s.length>l+1?s[l+1].Type===ns.RTL?c=pR(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+=`
  6993. `)}return n}var Qg=qp;var ase=ro(ose(),1);function kHe(){this.textureInfo=void 0,this.dimensions=void 0,this.billboard=void 0}function UHe(e,t,n){this.labelCollection=e,this.index=t,this.dimensions=n}var VHe=1.2,cse="ID_WHITE_PIXEL",n9=new z(4,4),zHe=new We(1,1,1,1);function HHe(e){let t=document.createElement("canvas");t.width=n9.x,t.height=n9.y;let n=t.getContext("2d");return n.fillStyle="#fff",n.fillRect(0,0,t.width,t.height),e.addImage(cse,t)}var hf={};function GHe(e,t,n,i,o,r,s){return hf.font=t,hf.fillColor=n,hf.strokeColor=i,hf.strokeWidth=o,hf.padding=Ps.PADDING,s===Dn.CENTER?hf.textBaseline="middle":s===Dn.TOP?hf.textBaseline="top":hf.textBaseline="bottom",hf.fill=r===Vo.FILL||r===Vo.FILL_AND_OUTLINE,hf.stroke=r===Vo.OUTLINE||r===Vo.FILL_AND_OUTLINE,hf.backgroundColor=H.BLACK,Yx(e,hf)}function i9(e,t){t.textureInfo=void 0,t.dimensions=void 0;let n=t.billboard;u(n)&&(n.show=!1,n.image=void 0,u(n._removeCallbackFunc)&&(n._removeCallbackFunc(),n._removeCallbackFunc=void 0),e._spareBillboards.push(n),t.billboard=void 0)}function WHe(e,t,n,i){i.index=e.addImageSync(t,n)}var jHe=new ase.default;function qHe(e,t){let n=t._renderedText,i=jHe.splitGraphemes(n),o=i.length,r=t._glyphs,s=r.length,a,c,l;if(t._relativeSize=t._fontSize/Ps.FONT_SIZE,o<s)for(c=o;c<s;++c)i9(e,r[c]);r.length=o;let f=t._showBackground&&n.split(`
  6994. `).join("").length>0,d=t._backgroundBillboard,p=e._backgroundBillboardCollection;f?(u(d)||(d=p.add({collection:e,image:cse,imageSubRegion:zHe}),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=mi.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):u(d)&&(p.remove(d),t._backgroundBillboard=d=void 0);let g=e._glyphTextureCache;for(l=0;l<o;++l){let m=i[l],x=t._verticalOrigin,b=JSON.stringify([m,t._fontFamily,t._fontStyle,t._fontWeight,+x]),T=g[b];if(!u(T)){let A=`${t._fontStyle} ${t._fontWeight} ${Ps.FONT_SIZE}px ${t._fontFamily}`,C=GHe(m,A,H.WHITE,H.WHITE,0,Vo.FILL,x);if(T=new UHe(e,-1,C.dimensions),g[b]=T,C.width>0&&C.height>0){let S=(0,sse.default)(C,{cutoff:Ps.CUTOFF,radius:Ps.RADIUS}),w=C.getContext("2d"),D=C.width,O=C.height,R=w.getImageData(0,0,D,O);for(let L=0;L<D;L++)for(let N=0;N<O;N++){let _=N*D+L,E=S[_]*255,v=_*4;R.data[v+0]=E,R.data[v+1]=E,R.data[v+2]=E,R.data[v+3]=E}w.putImageData(R,0,0),m!==" "&&WHe(e._textureAtlas,b,C,T)}}if(a=r[l],u(a)?T.index===-1?i9(e,a):u(a.textureInfo)&&(a.textureInfo=void 0):(a=new kHe,r[l]=a),a.textureInfo=T,a.dimensions=T.dimensions,T.index!==-1){let A=a.billboard,C=e._spareBillboards;u(A)||(C.length>0?A=C.pop():(A=e._billboardCollection.add({collection:e}),A._labelDimensions=new z,A._labelTranslate=new z),a.billboard=A),A.show=t._show,A.position=t._position,A.eyeOffset=t._eyeOffset,A.pixelOffset=t._pixelOffset,A.horizontalOrigin=mi.LEFT,A.verticalOrigin=t._verticalOrigin,A.heightReference=t._heightReference,A.scale=t.totalScale,A.pickPrimitive=t,A.id=t._id,A.image=b,A.translucencyByDistance=t._translucencyByDistance,A.pixelOffsetScaleByDistance=t._pixelOffsetScaleByDistance,A.scaleByDistance=t._scaleByDistance,A.distanceDisplayCondition=t._distanceDisplayCondition,A.disableDepthTestDistance=t._disableDepthTestDistance,A._batchIndex=t._batchIndex,A.outlineColor=t.outlineColor,t.style===Vo.FILL_AND_OUTLINE?(A.color=t._fillColor,A.outlineWidth=t.outlineWidth):t.style===Vo.FILL?(A.color=t._fillColor,A.outlineWidth=0):t.style===Vo.OUTLINE&&(A.color=H.TRANSPARENT,A.outlineWidth=t.outlineWidth)}}t._repositionAllGlyphs=!0}function rse(e,t,n){return t===mi.CENTER?-e/2:t===mi.RIGHT?-(e+n.x):n.x}var rr=new z,YHe=new z;function XHe(e){let t=e._glyphs,n=e._renderedText,i,o,r=0,s=0,a=[],c=Number.NEGATIVE_INFINITY,l=0,f=1,d,p=t.length,g=e._backgroundBillboard,m=z.clone(u(g)?e._backgroundPadding:z.ZERO,YHe);for(m.x/=e._relativeSize,m.y/=e._relativeSize,d=0;d<p;++d)n.charAt(d)===`
  6995. `?(a.push(r),++f,r=0):(i=t[d],o=i.dimensions,l=Math.max(l,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=l+c,b=e.totalScale,T=e._horizontalOrigin,A=e._verticalOrigin,C=0,S=a[C],w=rse(S,T,m),D=(u(e._lineHeight)?e._lineHeight:VHe*e._fontSize)/e._relativeSize,O=D*(f-1),R=s,L=x+O;u(g)&&(R+=m.x*2,L+=m.y*2,g._labelHorizontalOrigin=T),rr.x=w*b,rr.y=0;let N=!0,_=0;for(d=0;d<p;++d)if(n.charAt(d)===`
  6996. `)++C,_+=D,S=a[C],w=rse(S,T,m),rr.x=w*b,N=!0;else if(i=t[d],o=i.dimensions,A===Dn.TOP?(rr.y=o.height-l-m.y,rr.y+=Ps.PADDING):A===Dn.CENTER?rr.y=(O+o.height-l)/2:A===Dn.BASELINE?(rr.y=O,rr.y-=Ps.PADDING):(rr.y=O+c+m.y,rr.y-=Ps.PADDING),rr.y=(rr.y-o.descent-_)*b,N&&(rr.x-=Ps.PADDING*b,N=!1),u(i.billboard)&&(i.billboard._setTranslate(rr),i.billboard._labelDimensions.x=R,i.billboard._labelDimensions.y=L,i.billboard._labelHorizontalOrigin=T),d<p-1){let E=t[d+1];rr.x+=(o.width-o.minx+E.dimensions.minx)*b}if(u(g)&&n.split(`
  6997. `).join("").length>0&&(T===mi.CENTER?w=-s/2-m.x:T===mi.RIGHT?w=-(s+m.x*2):w=0,rr.x=w*b,A===Dn.TOP?rr.y=x-l-c:A===Dn.CENTER?rr.y=(x-l)/2-c:A===Dn.BASELINE?rr.y=-m.y-c:rr.y=0,rr.y=rr.y*b,g.width=R,g.height=L,g._setTranslate(rr),g._labelTranslate=z.clone(rr,g._labelTranslate)),e.heightReference===Ge.CLAMP_TO_GROUND)for(d=0;d<p;++d){i=t[d];let E=i.billboard;u(E)&&(E._labelTranslate=z.clone(rr,E._labelTranslate))}}function lse(e,t){let n=t._glyphs;for(let i=0,o=n.length;i<o;++i)i9(e,n[i]);u(t._backgroundBillboard)&&(e._backgroundBillboardCollection.remove(t._backgroundBillboard),t._backgroundBillboard=void 0),t._labelCollection=void 0,u(t._removeCallbackFunc)&&t._removeCallbackFunc(),le(t)}function nm(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 uu({scene:this._scene}),this._backgroundBillboardCollection.destroyTextureAtlas=!1,this._billboardCollection=new uu({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(nm.prototype,{length:{get:function(){return this._labels.length}}});nm.prototype.add=function(e){let t=new Qg(e,this);return this._labels.push(t),this._labelsToUpdate.push(t),t};nm.prototype.remove=function(e){if(u(e)&&e._labelCollection===this){let t=this._labels.indexOf(e);if(t!==-1)return this._labels.splice(t,1),lse(this,e),!0}return!1};nm.prototype.removeAll=function(){let e=this._labels;for(let t=0,n=e.length;t<n;++t)lse(this,e[t]);e.length=0};nm.prototype.contains=function(e){return u(e)&&e._labelCollection===this};nm.prototype.get=function(e){return this._labels[e]};nm.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;u(this._textureAtlas)||(this._textureAtlas=new $g({context:i}),t.textureAtlas=this._textureAtlas),u(this._backgroundTextureAtlas)||(this._backgroundTextureAtlas=new $g({context:i,initialSize:n9}),n.textureAtlas=this._backgroundTextureAtlas,HHe(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&&(qHe(this,a),a._rebindAllGlyphs=!1),a._repositionAllGlyphs&&(XHe(a),a._repositionAllGlyphs=!1);let l=a._glyphs.length-c;this._totalGlyphCount+=l}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)};nm.prototype.isDestroyed=function(){return!1};nm.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(),le(this)};var im=nm;var _R=`in vec3 position3DHigh;
  6998. in vec3 position3DLow;
  6999. in vec3 position2DHigh;
  7000. in vec3 position2DLow;
  7001. in vec3 prevPosition3DHigh;
  7002. in vec3 prevPosition3DLow;
  7003. in vec3 prevPosition2DHigh;
  7004. in vec3 prevPosition2DLow;
  7005. in vec3 nextPosition3DHigh;
  7006. in vec3 nextPosition3DLow;
  7007. in vec3 nextPosition2DHigh;
  7008. in vec3 nextPosition2DLow;
  7009. in vec4 texCoordExpandAndBatchIndex;
  7010. out vec2 v_st;
  7011. out float v_width;
  7012. out vec4 v_pickColor;
  7013. out float v_polylineAngle;
  7014. void main()
  7015. {
  7016. float texCoord = texCoordExpandAndBatchIndex.x;
  7017. float expandDir = texCoordExpandAndBatchIndex.y;
  7018. bool usePrev = texCoordExpandAndBatchIndex.z < 0.0;
  7019. float batchTableIndex = texCoordExpandAndBatchIndex.w;
  7020. vec2 widthAndShow = batchTable_getWidthAndShow(batchTableIndex);
  7021. float width = widthAndShow.x + 0.5;
  7022. float show = widthAndShow.y;
  7023. if (width < 1.0)
  7024. {
  7025. show = 0.0;
  7026. }
  7027. vec4 pickColor = batchTable_getPickColor(batchTableIndex);
  7028. vec4 p, prev, next;
  7029. if (czm_morphTime == 1.0)
  7030. {
  7031. p = czm_translateRelativeToEye(position3DHigh.xyz, position3DLow.xyz);
  7032. prev = czm_translateRelativeToEye(prevPosition3DHigh.xyz, prevPosition3DLow.xyz);
  7033. next = czm_translateRelativeToEye(nextPosition3DHigh.xyz, nextPosition3DLow.xyz);
  7034. }
  7035. else if (czm_morphTime == 0.0)
  7036. {
  7037. p = czm_translateRelativeToEye(position2DHigh.zxy, position2DLow.zxy);
  7038. prev = czm_translateRelativeToEye(prevPosition2DHigh.zxy, prevPosition2DLow.zxy);
  7039. next = czm_translateRelativeToEye(nextPosition2DHigh.zxy, nextPosition2DLow.zxy);
  7040. }
  7041. else
  7042. {
  7043. p = czm_columbusViewMorph(
  7044. czm_translateRelativeToEye(position2DHigh.zxy, position2DLow.zxy),
  7045. czm_translateRelativeToEye(position3DHigh.xyz, position3DLow.xyz),
  7046. czm_morphTime);
  7047. prev = czm_columbusViewMorph(
  7048. czm_translateRelativeToEye(prevPosition2DHigh.zxy, prevPosition2DLow.zxy),
  7049. czm_translateRelativeToEye(prevPosition3DHigh.xyz, prevPosition3DLow.xyz),
  7050. czm_morphTime);
  7051. next = czm_columbusViewMorph(
  7052. czm_translateRelativeToEye(nextPosition2DHigh.zxy, nextPosition2DLow.zxy),
  7053. czm_translateRelativeToEye(nextPosition3DHigh.xyz, nextPosition3DLow.xyz),
  7054. czm_morphTime);
  7055. }
  7056. #ifdef DISTANCE_DISPLAY_CONDITION
  7057. vec3 centerHigh = batchTable_getCenterHigh(batchTableIndex);
  7058. vec4 centerLowAndRadius = batchTable_getCenterLowAndRadius(batchTableIndex);
  7059. vec3 centerLow = centerLowAndRadius.xyz;
  7060. float radius = centerLowAndRadius.w;
  7061. vec2 distanceDisplayCondition = batchTable_getDistanceDisplayCondition(batchTableIndex);
  7062. float lengthSq;
  7063. if (czm_sceneMode == czm_sceneMode2D)
  7064. {
  7065. lengthSq = czm_eyeHeight2D.y;
  7066. }
  7067. else
  7068. {
  7069. vec4 center = czm_translateRelativeToEye(centerHigh.xyz, centerLow.xyz);
  7070. lengthSq = max(0.0, dot(center.xyz, center.xyz) - radius * radius);
  7071. }
  7072. float nearSq = distanceDisplayCondition.x * distanceDisplayCondition.x;
  7073. float farSq = distanceDisplayCondition.y * distanceDisplayCondition.y;
  7074. if (lengthSq < nearSq || lengthSq > farSq)
  7075. {
  7076. show = 0.0;
  7077. }
  7078. #endif
  7079. float polylineAngle;
  7080. vec4 positionWC = getPolylineWindowCoordinates(p, prev, next, expandDir, width, usePrev, polylineAngle);
  7081. gl_Position = czm_viewportOrthographic * positionWC * show;
  7082. v_st.s = texCoord;
  7083. v_st.t = czm_writeNonPerspective(clamp(expandDir, 0.0, 1.0), gl_Position.w);
  7084. v_width = width;
  7085. v_pickColor = pickColor;
  7086. v_polylineAngle = polylineAngle;
  7087. }
  7088. `;var Uc={};Uc.numberOfPoints=function(e,t,n){let i=h.distance(e,t);return Math.ceil(i/n)};Uc.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 KHe=new fe;Uc.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,KHe).height}return i};var ZHe=new F,$He=new h,use=new h,QHe=new en(h.UNIT_X,0),fse=new h,JHe=new en(h.UNIT_X,0),e5e=new h,t5e=new h,r9=[];function hse(e,t,n){let i=r9;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 vU=new fe,wU=new fe,Jg=new h,s9=new h,n5e=new h,o9=new nf,gR=new _a;function i5e(e,t,n,i,o,r,s,a){let c=i.scaleToGeodeticSurface(e,s9),l=i.scaleToGeodeticSurface(t,n5e),f=Uc.numberOfPoints(e,t,n),d=i.cartesianToCartographic(c,vU),p=i.cartesianToCartographic(l,wU),g=hse(f,o,r);o9.setEndPoints(d,p);let m=o9.surfaceDistance/f,x=a;d.height=o;let b=i.cartographicToCartesian(d,Jg);h.pack(b,s,x),x+=3;for(let T=1;T<f;T++){let A=o9.interpolateUsingSurfaceDistance(T*m,wU);A.height=g[T],b=i.cartographicToCartesian(A,Jg),h.pack(b,s,x),x+=3}return x}function o5e(e,t,n,i,o,r,s,a){let c=i.cartesianToCartographic(e,vU),l=i.cartesianToCartographic(t,wU),f=Uc.numberOfPointsRhumbLine(c,l,n);c.height=0,l.height=0;let d=hse(f,o,r);gR.ellipsoid.equals(i)||(gR=new _a(void 0,void 0,i)),gR.setEndPoints(c,l);let p=gR.surfaceDistance/f,g=a;c.height=o;let m=i.cartographicToCartesian(c,Jg);h.pack(m,s,g),g+=3;for(let x=1;x<f;x++){let b=gR.interpolateUsingSurfaceDistance(x*p,wU);b.height=d[x],m=i.cartographicToCartesian(b,Jg),h.pack(m,s,g),g+=3}return g}Uc.wrapLongitude=function(e,t){let n=[],i=[];if(u(e)&&e.length>0){t=y(t,F.IDENTITY);let o=F.inverseTransformation(t,ZHe),r=F.multiplyByPoint(o,h.ZERO,$He),s=h.normalize(F.multiplyByPointAsVector(o,h.UNIT_Y,use),use),a=en.fromPointNormal(r,s,QHe),c=h.normalize(F.multiplyByPointAsVector(o,h.UNIT_X,fse),fse),l=en.fromPointNormal(r,c,JHe),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(en.getPointDistance(l,d)<0||en.getPointDistance(l,m)<0){let x=xi.lineSegmentPlane(d,m,a,e5e);if(u(x)){let b=h.multiplyByScalar(s,5e-9,t5e);en.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}};Uc.generateArc=function(e){u(e)||(e={});let t=e.positions,n=t.length,i=y(e.ellipsoid,ie.WGS84),o=y(e.height,0),r=Array.isArray(o);if(n<1)return[];if(n===1){let x=i.scaleToGeodeticSurface(t[0],s9);if(o=r?o[0]:o,o!==0){let b=i.geodeticSurfaceNormal(x,Jg);h.multiplyByScalar(b,o,b),h.add(x,b,x)}return[x.x,x.y,x.z]}let s=e.minDistance;if(!u(s)){let x=y(e.granularity,P.RADIANS_PER_DEGREE);s=P.chordLength(x,i.maximumRadius)}let a=0,c;for(c=0;c<n-1;c++)a+=Uc.numberOfPoints(t[c],t[c+1],s);let l=(a+1)*3,f=new Array(l),d=0;for(c=0;c<n-1;c++){let x=t[c],b=t[c+1],T=r?o[c]:o,A=r?o[c+1]:o;d=i5e(x,b,s,i,T,A,f,d)}r9.length=0;let p=t[n-1],g=i.cartesianToCartographic(p,vU);g.height=r?o[n-1]:o;let m=i.cartographicToCartesian(g,Jg);return h.pack(m,f,l-3),f};var dse=new fe,r5e=new fe;Uc.generateRhumbArc=function(e){u(e)||(e={});let t=e.positions,n=t.length,i=y(e.ellipsoid,ie.WGS84),o=y(e.height,0),r=Array.isArray(o);if(n<1)return[];if(n===1){let T=i.scaleToGeodeticSurface(t[0],s9);if(o=r?o[0]:o,o!==0){let A=i.geodeticSurfaceNormal(T,Jg);h.multiplyByScalar(A,o,A),h.add(T,A,T)}return[T.x,T.y,T.z]}let s=y(e.granularity,P.RADIANS_PER_DEGREE),a=0,c,l=i.cartesianToCartographic(t[0],dse),f;for(c=0;c<n-1;c++)f=i.cartesianToCartographic(t[c+1],r5e),a+=Uc.numberOfPointsRhumbLine(l,f,s),l=fe.clone(f,dse);let d=(a+1)*3,p=new Array(d),g=0;for(c=0;c<n-1;c++){let T=t[c],A=t[c+1],C=r?o[c]:o,S=r?o[c+1]:o;g=o5e(T,A,s,i,C,S,p,g)}r9.length=0;let m=t[n-1],x=i.cartesianToCartographic(m,vU);x.height=r?o[n-1]:o;let b=i.cartographicToCartesian(x,Jg);return h.pack(b,p,d-3),p};Uc.generateCartesianArc=function(e){let t=Uc.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};Uc.generateCartesianRhumbArc=function(e){let t=Uc.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 Ii=Uc;function fu(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,u(this._material)||(this._material=Vi.fromType(Vi.ColorType,{color:new H(1,1,1,1)}));let n=e.positions;u(n)||(n=[]),this._positions=n,this._actualPositions=yo(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;u(t)&&(i=F.clone(t.modelMatrix)),this._modelMatrix=i,this._segments=Ii.wrapLongitude(this._actualPositions,i),this._actualLength=void 0,this._propertiesChanged=new Uint32Array(pse),this._polylineCollection=t,this._dirty=!1,this._pickId=void 0,this._boundingVolume=se.fromPoints(this._actualPositions),this._boundingVolumeWC=se.transform(this._boundingVolume,this._modelMatrix),this._boundingVolume2D=new se}var mse=fu.POSITION_INDEX=0,s5e=fu.SHOW_INDEX=1,a5e=fu.WIDTH_INDEX=2,c5e=fu.MATERIAL_INDEX=3,yR=fu.POSITION_SIZE_INDEX=4,l5e=fu.DISTANCE_DISPLAY_CONDITION=5,pse=fu.NUMBER_OF_PROPERTIES=6;function Yp(e,t){++e._propertiesChanged[t];let n=e._polylineCollection;u(n)&&(n._updatePolyline(e,t),e._dirty=!0)}Object.defineProperties(fu.prototype,{show:{get:function(){return this._show},set:function(e){e!==this._show&&(this._show=e,Yp(this,s5e))}},positions:{get:function(){return this._positions},set:function(e){let t=yo(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)&&Yp(this,yR),this._positions=e,this._actualPositions=t,this._length=t.length,this._boundingVolume=se.fromPoints(this._actualPositions,this._boundingVolume),this._boundingVolumeWC=se.transform(this._boundingVolume,this._modelMatrix,this._boundingVolumeWC),Yp(this,mse),this.update()}},material:{get:function(){return this._material},set:function(e){this._material!==e&&(this._material=e,Yp(this,c5e))}},width:{get:function(){return this._width},set:function(e){let t=this._width;e!==t&&(this._width=e,Yp(this,a5e))}},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,Yp(this,yR)}}},id:{get:function(){return this._id},set:function(e){this._id=e,u(this._pickId)&&(this._pickId.object.id=e)}},pickId:{get:function(){return this._pickId}},isDestroyed:{get:function(){return!u(this._polylineCollection)}},distanceDisplayCondition:{get:function(){return this._distanceDisplayCondition},set:function(e){St.equals(e,this._distanceDisplayCondition)||(this._distanceDisplayCondition=St.clone(e,this._distanceDisplayCondition),Yp(this,l5e))}}});fu.prototype.update=function(){let e=F.IDENTITY;u(this._polylineCollection)&&(e=this._polylineCollection.modelMatrix);let t=this._segments.positions.length,n=this._segments.lengths,i=this._propertiesChanged[mse]>0||this._propertiesChanged[yR]>0;if((!F.equals(e,this._modelMatrix)||i)&&(this._segments=Ii.wrapLongitude(this._actualPositions,e),this._boundingVolumeWC=se.transform(this._boundingVolume,e,this._boundingVolumeWC)),this._modelMatrix=F.clone(e,this._modelMatrix),this._segments.positions.length!==t)Yp(this,yR);else{let o=n.length;for(let r=0;r<o;++r)if(n[r]!==this._segments.lengths[r]){Yp(this,yR);break}}};fu.prototype.getPickId=function(e){return u(this._pickId)||(this._pickId=e.createPickId({primitive:this,collection:this._polylineCollection,id:this._id})),this._pickId};fu.prototype._clean=function(){this._dirty=!1;let e=this._propertiesChanged;for(let t=0;t<pse-1;++t)e[t]=0};fu.prototype._destroy=function(){this._pickId=this._pickId&&this._pickId.destroy(),this._material=this._material&&this._material.destroy(),this._polylineCollection=void 0};var mf=fu;var u5e=mf.SHOW_INDEX,f5e=mf.WIDTH_INDEX,c9=mf.POSITION_INDEX,d5e=mf.MATERIAL_INDEX,_se=mf.POSITION_SIZE_INDEX,h5e=mf.DISTANCE_DISPLAY_CONDITION,Cse=mf.NUMBER_OF_PROPERTIES,Dl={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 kd(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(Cse),this._polylines=[],this._polylineBuckets={},this._positionBufferUsage={bufferUsage:Ne.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(kd.prototype,{length:{get:function(){return l9(this),this._polylines.length}}});kd.prototype.add=function(e){let t=new mf(e,this);return t._index=this._polylines.length,this._polylines.push(t),this._createVertexArray=!0,this._createBatchTable=!0,t};kd.prototype.remove=function(e){if(this.contains(e)){if(this._polylinesRemoved=!0,this._createVertexArray=!0,this._createBatchTable=!0,u(e._bucket)){let t=e._bucket;t.shaderProgram=t.shaderProgram&&t.shaderProgram.destroy()}return e._destroy(),!0}return!1};kd.prototype.removeAll=function(){u9(this),Dse(this),this._polylineBuckets={},this._polylinesRemoved=!1,this._polylines.length=0,this._polylinesToUpdate.length=0,this._createVertexArray=!0};kd.prototype.contains=function(e){return u(e)&&e._polylineCollection===this};kd.prototype.get=function(e){return l9(this),this._polylines[e]};function m5e(e,t){u(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 G0(t,n,e._polylines.length)}var Ese=new jn,Sse=new oe,wse=new z;kd.prototype.update=function(e){if(l9(this),this._polylines.length===0||!this.show)return;b5e(this,e);let t=e.context,n=e.mapProjection,i,o=this._propertiesChanged;if(this._createBatchTable){if(Ut.maximumVertexTextureImageUnits===0)throw new ue("Vertex texture fetch support is required to render polylines. The maximum number of vertex texture image units must be greater than zero.");m5e(this,t),this._createBatchTable=!1}if(this._createVertexArray||_5e(this))xse(this,t,n);else if(this._polylinesUpdated){let c=this._polylinesToUpdate;if(this._mode!==te.SCENE3D){let l=c.length;for(let f=0;f<l;++f)i=c[f],i.update()}if(o[_se]||o[d5e])xse(this,t,n);else{let l=c.length,f=this._polylineBuckets;for(let d=0;d<l;++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[c9]&&p.writeUpdate(g,i,this._positionBuffer,n);break}g+=f[m].lengthOfPositions}if((o[u5e]||o[f5e])&&this._batchTable.setBatchedAttribute(i._index,0,new z(i._width,i._show)),this._batchTable.attributes.length>2){if(o[c9]||o[_se]){let m=e.mode===te.SCENE2D?i._boundingVolume2D:i._boundingVolumeWC,x=jn.fromCartesian(m.center,Ese),b=oe.fromElements(x.low.x,x.low.y,x.low.z,m.radius,Sse);this._batchTable.setBatchedAttribute(i._index,2,x.high),this._batchTable.setBatchedAttribute(i._index,3,b)}if(o[h5e]){let m=wse;m.x=0,m.y=Number.MAX_VALUE;let x=i.distanceDisplayCondition;u(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<Cse;++c)o[c]=0;let r=F.IDENTITY;e.mode===te.SCENE3D&&(r=this.modelMatrix);let s=e.passes,a=e.morphTime!==0;if((!u(this._opaqueRS)||this._opaqueRS.depthTest.enabled!==a)&&(this._opaqueRS=ke.fromCache({depthMask:a,depthTest:{enabled:a}})),(!u(this._translucentRS)||this._translucentRS.depthTest.enabled!==a)&&(this._translucentRS=ke.fromCache({blending:un.ALPHA_BLEND,depthMask:!a,depthTest:{enabled:a}})),this._batchTable.update(e),s.render||s.pick){let c=this._colorCommands;p5e(this,e,c,r)}};var xR=new se,gse=new se;function p5e(e,t,n,i){let o=t.context,r=t.commandList,s=n.length,a=0,c=!0,l=e._vertexArrays,f=e.debugShowBoundingVolume,p=e._batchTable.getUniformMapCallback(),g=l.length;for(let m=0;m<g;++m){let x=l[m],b=x.buckets,T=b.length;for(let A=0;A<T;++A){let C=b[A],S=C.offset,w=C.bucket.shaderProgram,D=C.bucket.polylines,O=D.length,R,L,N=0,_,E;for(let v=0;v<O;++v){let I=D[v],M=y5e(I._material);if(M!==R){if(u(R)&&N>0){let G=L.isTranslucent();a>=s?(_=new Je({owner:e}),n.push(_)):_=n[a],++a,E=gt(p(L._uniforms),e._uniformMap),_.boundingVolume=se.clone(xR,_.boundingVolume),_.modelMatrix=i,_.shaderProgram=w,_.vertexArray=x.va,_.renderState=G?e._translucentRS:e._opaqueRS,_.pass=G?Ee.TRANSLUCENT:Ee.OPAQUE,_.debugShowBoundingVolume=f,_.pickId="v_pickColor",_.uniformMap=E,_.count=N,_.offset=S,S+=N,N=0,c=!0,r.push(_)}L=I._material,L.update(o),R=M}let B=I._locatorBuckets,V=B.length;for(let G=0;G<V;++G){let k=B[G];k.locator===C&&(N+=k.count)}let U;t.mode===te.SCENE3D?U=I._boundingVolumeWC:t.mode===te.COLUMBUS_VIEW?U=I._boundingVolume2D:t.mode===te.SCENE2D?u(I._boundingVolume2D)&&(U=se.clone(I._boundingVolume2D,gse),U.center.x=0):u(I._boundingVolumeWC)&&u(I._boundingVolume2D)&&(U=se.union(I._boundingVolumeWC,I._boundingVolume2D,gse)),c?(c=!1,se.clone(U,xR)):se.union(U,xR,xR)}u(R)&&N>0&&(a>=s?(_=new Je({owner:e}),n.push(_)):_=n[a],++a,E=gt(p(L._uniforms),e._uniformMap),_.boundingVolume=se.clone(xR,_.boundingVolume),_.modelMatrix=i,_.shaderProgram=w,_.vertexArray=x.va,_.renderState=L.isTranslucent()?e._translucentRS:e._opaqueRS,_.pass=L.isTranslucent()?Ee.TRANSLUCENT:Ee.OPAQUE,_.debugShowBoundingVolume=f,_.pickId="v_pickColor",_.uniformMap=E,_.count=N,_.offset=S,c=!0,r.push(_)),R=void 0}}n.length=a}kd.prototype.isDestroyed=function(){return!1};kd.prototype.destroy=function(){return vse(this),u9(this),Dse(this),this._batchTable=this._batchTable&&this._batchTable.destroy(),le(this)};function _5e(e){let t=!1,n=e._propertiesChanged,i=e._positionBufferUsage;return n[c9]?(i.bufferUsage!==Ne.STREAM_DRAW&&(t=!0,i.bufferUsage=Ne.STREAM_DRAW),i.frameCount=100):i.bufferUsage!==Ne.STATIC_DRAW&&(i.frameCount===0?(t=!0,i.bufferUsage=Ne.STATIC_DRAW):i.frameCount--),t}var yse=[0,0,0];function xse(e,t,n){e._createVertexArray=!1,u9(e),vse(e),x5e(e);let i=[[]],o=i[0],r=e._batchTable,s=e._useHighlightColor,a=[0],c=0,l=[[]],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,A=0,C=0,S=0;for(p in d)if(d.hasOwnProperty(p)){g=d[p],g.write(x,b,A,C,S,r,t,n),m===te.MORPHING&&(u(T)||(T=new Float32Array(6*f*3)),g.writeForMorph(T,A));let E=g.lengthOfPositions;A+=6*E*3,C+=E*4,S+=E*4,c=g.updateIndices(i,a,l,c)}let w=e._positionBufferUsage.bufferUsage,D=Ne.STATIC_DRAW;e._positionBuffer=ct.createVertexBuffer({context:t,typedArray:x,usage:w});let O;u(T)&&(O=ct.createVertexBuffer({context:t,typedArray:T,usage:w})),e._texCoordExpandAndBatchIndexBuffer=ct.createVertexBuffer({context:t,typedArray:b,usage:D});let R=3*Float32Array.BYTES_PER_ELEMENT,L=4*Float32Array.BYTES_PER_ELEMENT,N=0,_=i.length;for(let E=0;E<_;++E)if(o=i[E],o.length>0){let v=new Uint16Array(o),I=ct.createIndexBuffer({context:t,typedArray:v,usage:Ne.STATIC_DRAW,indexDatatype:Fe.UNSIGNED_SHORT});N+=a[E];let M=6*(E*(R*P.SIXTY_FOUR_KILOBYTES)-N*R),B=R+M,V=R+B,U=R+V,G=R+U,k=R+G,Y=E*(L*P.SIXTY_FOUR_KILOBYTES)-N*L,j=[{index:Dl.position3DHigh,componentsPerAttribute:3,componentDatatype:X.FLOAT,offsetInBytes:M,strideInBytes:6*R},{index:Dl.position3DLow,componentsPerAttribute:3,componentDatatype:X.FLOAT,offsetInBytes:B,strideInBytes:6*R},{index:Dl.position2DHigh,componentsPerAttribute:3,componentDatatype:X.FLOAT,offsetInBytes:M,strideInBytes:6*R},{index:Dl.position2DLow,componentsPerAttribute:3,componentDatatype:X.FLOAT,offsetInBytes:B,strideInBytes:6*R},{index:Dl.prevPosition3DHigh,componentsPerAttribute:3,componentDatatype:X.FLOAT,offsetInBytes:V,strideInBytes:6*R},{index:Dl.prevPosition3DLow,componentsPerAttribute:3,componentDatatype:X.FLOAT,offsetInBytes:U,strideInBytes:6*R},{index:Dl.prevPosition2DHigh,componentsPerAttribute:3,componentDatatype:X.FLOAT,offsetInBytes:V,strideInBytes:6*R},{index:Dl.prevPosition2DLow,componentsPerAttribute:3,componentDatatype:X.FLOAT,offsetInBytes:U,strideInBytes:6*R},{index:Dl.nextPosition3DHigh,componentsPerAttribute:3,componentDatatype:X.FLOAT,offsetInBytes:G,strideInBytes:6*R},{index:Dl.nextPosition3DLow,componentsPerAttribute:3,componentDatatype:X.FLOAT,offsetInBytes:k,strideInBytes:6*R},{index:Dl.nextPosition2DHigh,componentsPerAttribute:3,componentDatatype:X.FLOAT,offsetInBytes:G,strideInBytes:6*R},{index:Dl.nextPosition2DLow,componentsPerAttribute:3,componentDatatype:X.FLOAT,offsetInBytes:k,strideInBytes:6*R},{index:Dl.texCoordExpandAndBatchIndex,componentsPerAttribute:4,componentDatatype:X.FLOAT,vertexBuffer:e._texCoordExpandAndBatchIndexBuffer,offsetInBytes:Y}],$,W,K,Z;m===te.SCENE3D?(W=e._positionBuffer,$="vertexBuffer",K=yse,Z="value"):m===te.SCENE2D||m===te.COLUMBUS_VIEW?(W=yse,$="value",K=e._positionBuffer,Z="vertexBuffer"):(W=O,$="vertexBuffer",K=e._positionBuffer,Z="vertexBuffer"),j[0][$]=W,j[1][$]=W,j[2][Z]=K,j[3][Z]=K,j[4][$]=W,j[5][$]=W,j[6][Z]=K,j[7][Z]=K,j[8][$]=W,j[9][$]=W,j[10][Z]=K,j[11][Z]=K;let me=new ni({context:t,attributes:j,indexBuffer:I});e._vertexArrays.push({va:me,buckets:l[E]})}}}function g5e(e,t){return t instanceof It?t.id:t}var DU=[];function y5e(e){let t=Vi._uniformList[e.type],n=t.length;DU.length=2*n;let i=0;for(let o=0;o<n;++o){let r=t[o];DU[i]=r,DU[i+1]=e._uniforms[r](),i+=2}return`${e.type}:${JSON.stringify(DU,g5e)}`}function x5e(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,l=i[c.type];u(l)||(l=i[c.type]=new om(c,t,n)),l.addPolyline(a)}}}function b5e(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 l9(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 u9(e){let t=e._polylines,n=t.length;for(let i=0;i<n;++i)if(!t[i].isDestroyed){let o=t[i]._bucket;u(o)&&(o.shaderProgram=o.shaderProgram&&o.shaderProgram.destroy())}}function vse(e){let t=e._vertexArrays.length;for(let n=0;n<t;++n)e._vertexArrays[n].va.destroy();e._vertexArrays.length=0}kd.prototype._updatePolyline=function(e,t){this._polylinesUpdated=!0,e._dirty||this._polylinesToUpdate.push(e),++this._propertiesChanged[t]};function Dse(e){let t=e._polylines,n=t.length;for(let i=0;i<n;++i)t[i].isDestroyed||t[i]._destroy()}function a9(e,t,n){this.count=e,this.offset=t,this.bucket=n}function om(e,t,n){this.polylines=[],this.lengthOfPositions=0,this.material=e,this.shaderProgram=void 0,this.mode=t,this.modelMatrix=n}om.prototype.addPolyline=function(e){this.polylines.push(e),e._actualLength=this.getPolylinePositionsLength(e),this.lengthOfPositions+=e._actualLength,e._bucket=this};om.prototype.updateShader=function(e,t,n){if(u(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"),Bt.isInternetExplorer()||i.push("CLIP_POLYLINE");let o=new Ue({defines:i,sources:[`in vec4 v_pickColor;
  7089. `,this.material.shaderSource,ex]}),r=t.getVertexShaderCallback()(_R),s=new Ue({defines:i,sources:[nu,r]});this.shaderProgram=Yt.fromCache({context:e,vertexShaderSource:s,fragmentShaderSource:o,attributeLocations:Dl})};function Ise(e){return h.dot(h.UNIT_X,e._boundingVolume.center)<0||e._boundingVolume.intersectPlane(en.ORIGIN_ZX_PLANE)===Kt.INTERSECTING}om.prototype.getPolylinePositionsLength=function(e){let t;if(this.mode===te.SCENE3D||!Ise(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 ls=new h,pf=new h,_f=new h,IU=new h,T5e=new oe,A5e=new z;om.prototype.write=function(e,t,n,i,o,r,s,a){let c=this.mode,l=a.ellipsoid.maximumRadius*P.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),A=T.positions,C=T.lengths,S=A.length,w=g.getPickId(s).color,D=0,O=0,R;for(let V=0;V<S;++V){V===0?g._loop?R=A[S-2]:(R=IU,h.subtract(A[0],A[1],R),h.add(A[0],R,R)):R=A[V-1],h.clone(R,pf),h.clone(A[V],ls),V===S-1?g._loop?R=A[1]:(R=IU,h.subtract(A[S-1],A[S-2],R),h.add(A[S-1],R,R)):R=A[V+1],h.clone(R,_f);let U=C[D];V===O+U&&(O+=U,++D);let G=V-O===0,k=V===O+C[D]-1;c===te.SCENE2D&&(pf.z=0,ls.z=0,_f.z=0),(c===te.SCENE2D||c===te.MORPHING)&&(G||k)&&l-Math.abs(ls.x)<1&&((ls.x<0&&pf.x>0||ls.x>0&&pf.x<0)&&h.clone(ls,pf),(ls.x<0&&_f.x>0||ls.x>0&&_f.x<0)&&h.clone(ls,_f));let Y=G?2:0,j=k?2:4;for(let $=Y;$<j;++$){jn.writeElements(ls,e,n),jn.writeElements(pf,e,n+6),jn.writeElements(_f,e,n+12);let W=$-2<0?-1:1;t[o]=V/(S-1),t[o+1]=2*($%2)-1,t[o+2]=W,t[o+3]=b,n+=6*3,o+=4}}let L=T5e;L.x=H.floatToByte(w.red),L.y=H.floatToByte(w.green),L.z=H.floatToByte(w.blue),L.w=H.floatToByte(w.alpha);let N=A5e;N.x=m,N.y=x?1:0;let _=c===te.SCENE2D?g._boundingVolume2D:g._boundingVolumeWC,E=jn.fromCartesian(_.center,Ese),v=E.high,I=oe.fromElements(E.low.x,E.low.y,E.low.z,_.radius,Sse),M=wse;M.x=0,M.y=Number.MAX_VALUE;let B=g.distanceDisplayCondition;u(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,v),r.setBatchedAttribute(b,3,I),r.setBatchedAttribute(b,4,M))}};var C5e=new h,E5e=new h,S5e=new h,bse=new h;om.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,l=a.length,f=0,d=0;for(let p=0;p<l;++p){let g;p===0?s._loop?g=a[l-2]:(g=bse,h.subtract(a[0],a[1],g),h.add(a[0],g,g)):g=a[p-1],g=F.multiplyByPoint(n,g,E5e);let m=F.multiplyByPoint(n,a[p],C5e),x;p===l-1?s._loop?x=a[1]:(x=bse,h.subtract(a[l-1],a[l-2],x),h.add(a[l-1],x,x)):x=a[p+1],x=F.multiplyByPoint(n,x,S5e);let b=c[f];p===d+b&&(d+=b,++f);let T=p-d===0,A=p===d+c[f]-1,C=T?2:0,S=A?2:4;for(let w=C;w<S;++w)jn.writeElements(m,e,t),jn.writeElements(g,e,t+6),jn.writeElements(x,e,t+12),t+=6*3}}};var w5e=new Array(1);om.prototype.updateIndices=function(e,t,n,i){let o=n.length-1,r=new a9(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 l=this.polylines,f=l.length;for(let d=0;d<f;++d){let p=l[d];p._locatorBuckets=[];let g;if(this.mode===te.SCENE3D){g=w5e;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 A=0;A<T;++A)c+4>P.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 a9(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>P.SIXTY_FOUR_KILOBYTES&&(t.push(0),a=[],e.push(a),c=0,r.count=s,i=0,s=0,r=new a9(0,0,this),n[++o]=[r])}p._clean()}return r.count=s,i};om.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 fC={positions:void 0,lengths:void 0},Tse=new Array(1),v5e=new h,D5e=new fe;om.prototype.getSegments=function(e,t){let n=e._actualPositions;if(this.mode===te.SCENE3D)return Tse[0]=n.length,fC.positions=n,fC.lengths=Tse,fC;Ise(e)&&(n=e._segments.positions);let i=t.ellipsoid,o=[],r=this.modelMatrix,s=n.length,a,c=v5e;for(let l=0;l<s;++l)a=n[l],c=F.multiplyByPoint(r,a,c),o.push(t.project(i.cartesianToCartographic(c,D5e)));if(o.length>0){e._boundingVolume2D=se.fromPoints(o,e._boundingVolume2D);let l=e._boundingVolume2D.center;e._boundingVolume2D.center=new h(l.z,l.x,l.y)}return fC.positions=o,fC.lengths=e._segments.lengths,fC};var Ase;om.prototype.writeUpdate=function(e,t,n,i){let o=this.mode,r=i.ellipsoid.maximumRadius*P.PI,s=t._actualLength;if(s){e+=this.getPolylineStartIndex(t);let a=Ase,c=6*s*3;!u(a)||a.length<c?a=Ase=new Float32Array(c):a.length>c&&(a=new Float32Array(a.buffer,0,c));let l=this.getSegments(t,i),f=l.positions,d=l.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=IU,h.subtract(f[0],f[1],x),h.add(f[0],x,x)):x=f[b-1],h.clone(x,pf),h.clone(f[b],ls),b===s-1?t._loop?x=f[1]:(x=IU,h.subtract(f[s-1],f[s-2],x),h.add(f[s-1],x,x)):x=f[b+1],h.clone(x,_f);let T=d[g];b===m+T&&(m+=T,++g);let A=b-m===0,C=b===m+d[g]-1;o===te.SCENE2D&&(pf.z=0,ls.z=0,_f.z=0),(o===te.SCENE2D||o===te.MORPHING)&&(A||C)&&r-Math.abs(ls.x)<1&&((ls.x<0&&pf.x>0||ls.x>0&&pf.x<0)&&h.clone(ls,pf),(ls.x<0&&_f.x>0||ls.x>0&&_f.x<0)&&h.clone(ls,_f));let S=A?2:0,w=C?2:4;for(let D=S;D<w;++D)jn.writeElements(ls,a,p),jn.writeElements(pf,a,p+6),jn.writeElements(_f,a,p+12),p+=6*3}n.copyFromArrayView(a,6*3*Float32Array.BYTES_PER_ELEMENT*e)}};var Ud=kd;function ey(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 uu({batchTable:e.batchTable}),this._labelCollection=new im({batchTable:e.batchTable}),this._polylineCollection=new Ud,this._polylineCollection._useHighlightColor=!0,this._packedBuffer=void 0,this._ready=!1,this._promise=void 0,this._error=void 0}Object.defineProperties(ey.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 I5e(e,t){let n=e._rectangle,i=e._minHeight,o=e._maxHeight,r=2+ce.packedLength+ie.packedLength,s=new Float64Array(r),a=0;return s[a++]=i,s[a++]=o,ce.pack(n,s,a),a+=ce.packedLength,ie.pack(t,s,a),s}var P5e=new hi("createVectorTilePoints",5),O5e=new h;function R5e(e,t){let n=e._positions,i=e._packedBuffer;u(i)||(n=e._positions=n.slice(),e._batchIds=e._batchIds.slice(),i=e._packedBuffer=I5e(e,t));let o=[n.buffer,i.buffer],r={positions:n.buffer,packedBuffer:i.buffer},s=P5e.scheduleTask(r,o);if(u(s))return s.then(a=>{if(e.isDestroyed())return;e._positions=new Float64Array(a.positions);let c=e._billboardCollection,l=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,O5e),b=c.add();b.position=x,b._batchIndex=m;let T=l.add();T.text=" ",T.position=x,T._batchIndex=m;let A=f.add();A.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)})}ey.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],l=n.get(a),f=i.get(a),d=o.get(a);t[c]=new jp(e,c,l,f,d)}};ey.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 M5e(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=jp.defaultPointSize,s.color=jp.defaultColor,s.pointOutlineColor=jp.defaultPointOutlineColor,s.pointOutlineWidth=jp.defaultPointOutlineWidth,s.labelColor=H.WHITE,s.labelOutlineColor=H.WHITE,s.labelOutlineWidth=1,s.font="30px sans-serif",s.labelStyle=Vo.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=mi.CENTER,s.verticalOrigin=Dn.CENTER,s.labelHorizontalOrigin=mi.RIGHT,s.labelVerticalOrigin=Dn.BASELINE}}var L5e=new H,N5e=new H,F5e=new H,B5e=new H,k5e=new H,U5e=new H,bR=new Pt,TR=new Pt,f9=new St;ey.prototype.applyStyle=function(e,t){if(!u(e)){M5e(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(u(e.show)&&(s.show=e.show.evaluate(s)),u(e.pointSize)&&(s.pointSize=e.pointSize.evaluate(s)),u(e.color)&&(s.color=e.color.evaluateColor(s,L5e)),u(e.pointOutlineColor)&&(s.pointOutlineColor=e.pointOutlineColor.evaluateColor(s,N5e)),u(e.pointOutlineWidth)&&(s.pointOutlineWidth=e.pointOutlineWidth.evaluate(s)),u(e.labelColor)&&(s.labelColor=e.labelColor.evaluateColor(s,F5e)),u(e.labelOutlineColor)&&(s.labelOutlineColor=e.labelOutlineColor.evaluateColor(s,B5e)),u(e.labelOutlineWidth)&&(s.labelOutlineWidth=e.labelOutlineWidth.evaluate(s)),u(e.font)&&(s.font=e.font.evaluate(s)),u(e.labelStyle)&&(s.labelStyle=e.labelStyle.evaluate(s)),u(e.labelText)?s.labelText=e.labelText.evaluate(s):s.labelText=void 0,u(e.backgroundColor)&&(s.backgroundColor=e.backgroundColor.evaluateColor(s,k5e)),u(e.backgroundPadding)&&(s.backgroundPadding=e.backgroundPadding.evaluate(s)),u(e.backgroundEnabled)&&(s.backgroundEnabled=e.backgroundEnabled.evaluate(s)),u(e.scaleByDistance)){let a=e.scaleByDistance.evaluate(s);u(a)?(bR.near=a.x,bR.nearValue=a.y,bR.far=a.z,bR.farValue=a.w,s.scaleByDistance=bR):s.scaleByDistance=void 0}else s.scaleByDistance=void 0;if(u(e.translucencyByDistance)){let a=e.translucencyByDistance.evaluate(s);u(a)?(TR.near=a.x,TR.nearValue=a.y,TR.far=a.z,TR.farValue=a.w,s.translucencyByDistance=TR):s.translucencyByDistance=void 0}else s.translucencyByDistance=void 0;if(u(e.distanceDisplayCondition)){let a=e.distanceDisplayCondition.evaluate(s);u(a)?(f9.near=a.x,f9.far=a.y,s.distanceDisplayCondition=f9):s.distanceDisplayCondition=void 0}else s.distanceDisplayCondition=void 0;u(e.heightOffset)&&(s.heightOffset=e.heightOffset.evaluate(s)),u(e.anchorLineEnabled)&&(s.anchorLineEnabled=e.anchorLineEnabled.evaluate(s)),u(e.anchorLineColor)&&(s.anchorLineColor=e.anchorLineColor.evaluateColor(s,U5e)),u(e.image)?s.image=e.image.evaluate(s):s.image=void 0,u(e.disableDepthTestDistance)&&(s.disableDepthTestDistance=e.disableDepthTestDistance.evaluate(s)),u(e.horizontalOrigin)&&(s.horizontalOrigin=e.horizontalOrigin.evaluate(s)),u(e.verticalOrigin)&&(s.verticalOrigin=e.verticalOrigin.evaluate(s)),u(e.labelHorizontalOrigin)&&(s.labelHorizontalOrigin=e.labelHorizontalOrigin.evaluate(s)),u(e.labelVerticalOrigin)&&(s.labelVerticalOrigin=e.labelVerticalOrigin.evaluate(s))}};ey.prototype.update=function(e){if(!this._ready){if(u(this._promise)||(this._promise=R5e(this,e.mapProjection.ellipsoid)),u(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)};ey.prototype.isDestroyed=function(){return!1};ey.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(),le(this)};var AR=ey;function Xp(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,ie.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(Xp.prototype,{trianglesLength:{get:function(){return u(this._primitive)?this._primitive.trianglesLength:0}},geometryByteLength:{get:function(){return u(this._primitive)?this._primitive.geometryByteLength:0}},ready:{get:function(){return this._ready}}});function V5e(e){let t=new Float64Array(3+h.packedLength+ie.packedLength+ce.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,ie.pack(e._ellipsoid,t,n),n+=ie.packedLength,ce.pack(e._rectangle,t,n),t}function z5e(e,t){let n=1,i=t[n++],o=e._boundingVolumes=new Array(i);for(let a=0;a<i;++a)o[a]=In.unpack(t,n),n+=In.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 l=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 Yh({color:c,offset:l,count:f,batchIds:p})}}var H5e=new hi("createVectorTilePolygons",5),G5e=new H;function W5e(e){if(u(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(!u(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(ce.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,G5e);s[x]=b.toRgba()}a=e._packedBuffer=V5e(e)}let c=[t.buffer,n.buffer,i.buffer,o.buffer,r.buffer,s.buffer,a.buffer],l={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;u(f)&&u(d)&&(f=f.slice(),d=d.slice(),c.push(f.buffer,d.buffer),l.minimumHeights=f,l.maximumHeights=d);let p=H5e.scheduleTask(l,c);if(u(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];z5e(e,m),e._indices=Fe.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),j5e(e),e._ready=!0}).catch(g=>{e.isDestroyed()||(e._error=g)})}function j5e(e){u(e._primitive)||(e._primitive=new xx({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)}Xp.prototype.createFeatures=function(e,t){this._primitive.createFeatures(e,t)};Xp.prototype.applyDebugSettings=function(e,t){this._primitive.applyDebugSettings(e,t)};Xp.prototype.applyStyle=function(e,t){this._primitive.applyStyle(e,t)};Xp.prototype.updateCommands=function(e,t){this._primitive.updateCommands(e,t)};Xp.prototype.update=function(e){if(!this._ready){if(u(this._promise)||(this._promise=W5e(this)),u(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)};Xp.prototype.isDestroyed=function(){return!1};Xp.prototype.destroy=function(){return this._primitive=this._primitive&&this._primitive.destroy(),le(this)};var CR=Xp;var ER=`in vec4 currentPosition;
  7090. in vec4 previousPosition;
  7091. in vec4 nextPosition;
  7092. in vec2 expandAndWidth;
  7093. in float a_batchId;
  7094. uniform mat4 u_modifiedModelView;
  7095. void main()
  7096. {
  7097. float expandDir = expandAndWidth.x;
  7098. float width = abs(expandAndWidth.y) + 0.5;
  7099. bool usePrev = expandAndWidth.y < 0.0;
  7100. vec4 p = u_modifiedModelView * currentPosition;
  7101. vec4 prev = u_modifiedModelView * previousPosition;
  7102. vec4 next = u_modifiedModelView * nextPosition;
  7103. float angle;
  7104. vec4 positionWC = getPolylineWindowCoordinatesEC(p, prev, next, expandDir, width, usePrev, angle);
  7105. gl_Position = czm_viewportOrthographic * positionWC;
  7106. }
  7107. `;function Vd(e){this._positions=e.positions,this._widths=e.widths,this._counts=e.counts,this._batchIds=e.batchIds,this._ellipsoid=y(e.ellipsoid,ie.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(Vd.prototype,{trianglesLength:{get:function(){return this._trianglesLength}},geometryByteLength:{get:function(){return this._geometryByteLength}},ready:{get:function(){return this._ready}}});function q5e(e){let t=e._rectangle,n=e._minimumHeight,i=e._maximumHeight,o=e._ellipsoid,r=e._center,s=2+ce.packedLength+ie.packedLength+h.packedLength,a=new Float64Array(s),c=0;return a[c++]=n,a[c++]=i,ce.pack(t,a,c),c+=ce.packedLength,ie.pack(o,a,c),c+=ie.packedLength,h.pack(r,a,c),a}var Y5e=new hi("createVectorTilePolylines",5),dC={previousPosition:0,currentPosition:1,nextPosition:2,expandAndWidth:3,a_batchId:4};function X5e(e,t){if(u(e._va))return;let n=e._positions,i=e._widths,o=e._counts,r=e._transferrableBatchIds,s=e._packedBuffer;u(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=q5e(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},l=Y5e.scheduleTask(c,a);if(u(l))return l.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===Fe.UNSIGNED_SHORT?new Uint16Array(f.indices):new Uint32Array(f.indices),K5e(e,t),e._ready=!0}).catch(f=>{e.isDestroyed()||(e._error=f)})}function K5e(e,t){if(!u(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 l=ct.createVertexBuffer({context:t,typedArray:i,usage:Ne.STATIC_DRAW}),f=ct.createVertexBuffer({context:t,typedArray:n,usage:Ne.STATIC_DRAW}),d=ct.createVertexBuffer({context:t,typedArray:o,usage:Ne.STATIC_DRAW}),p=ct.createVertexBuffer({context:t,typedArray:r,usage:Ne.STATIC_DRAW}),g=ct.createVertexBuffer({context:t,typedArray:s,usage:Ne.STATIC_DRAW}),m=ct.createIndexBuffer({context:t,typedArray:a,usage:Ne.STATIC_DRAW,indexDatatype:a.BYTES_PER_ELEMENT===2?Fe.UNSIGNED_SHORT:Fe.UNSIGNED_INT}),x=[{index:dC.previousPosition,vertexBuffer:l,componentDatatype:X.FLOAT,componentsPerAttribute:3},{index:dC.currentPosition,vertexBuffer:f,componentDatatype:X.FLOAT,componentsPerAttribute:3},{index:dC.nextPosition,vertexBuffer:d,componentDatatype:X.FLOAT,componentsPerAttribute:3},{index:dC.expandAndWidth,vertexBuffer:p,componentDatatype:X.FLOAT,componentsPerAttribute:2},{index:dC.a_batchId,vertexBuffer:g,componentDatatype:X.UNSIGNED_SHORT,componentsPerAttribute:1}];e._va=new ni({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 SR=new F,Pse=new h;function Z5e(e,t){u(e._uniformMap)||(e._uniformMap={u_modifiedModelView:function(){let n=t.uniformState.view;return F.clone(n,SR),F.multiplyByPoint(SR,e._center,Pse),F.setTranslation(SR,Pse,SR),SR},u_highlightColor:function(){return e._highlightColor}})}function $5e(e){if(u(e._rs))return;let t={enabled:!0,factor:-5,units:-5};e._rs=ke.fromCache({blending:un.ALPHA_BLEND,depthMask:!1,depthTest:{enabled:!0},polygonOffset:t})}var Q5e=`uniform vec4 u_highlightColor;
  7108. void main()
  7109. {
  7110. out_FragColor = u_highlightColor;
  7111. }
  7112. `;function J5e(e,t){if(u(e._sp))return;let n=e._batchTable,i=n.getVertexShaderCallback(!1,"a_batchId",void 0)(ER),o=n.getFragmentShaderCallback(!1,void 0,!1)(Q5e),r=new Ue({defines:["VECTOR_TILE",Bt.isInternetExplorer()?"":"CLIP_POLYLINE"],sources:[nu,i]}),s=new Ue({defines:["VECTOR_TILE"],sources:[o]});e._sp=Yt.fromCache({context:t,vertexShaderSource:r,fragmentShaderSource:s,attributeLocations:dC})}function eGe(e,t){if(!u(e._command)){let n=e._batchTable.getUniformMapCallback()(e._uniformMap);e._command=new Je({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)}Vd.getPolylinePositions=function(e,t){let n=e._batchIds,i=e._decodedPositions,o=e._decodedPositionOffsets;if(!u(n)||!u(i))return;let r,s,a=n.length,c=0,l=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[l++]=i[g],f[l++]=i[g+1],f[l++]=i[g+2]}}return f};Vd.prototype.getPositions=function(e){return Vd.getPolylinePositions(this,e)};Vd.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 ws(e,r)}};Vd.prototype.applyDebugSettings=function(e,t){this._highlightColor=e?t:this._constantColor};function tGe(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 nGe=new H,iGe=H.WHITE,oGe=!0;Vd.prototype.applyStyle=function(e,t){if(!u(e)){tGe(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=u(e.color)?e.color.evaluateColor(s,nGe):iGe,s.show=u(e.show)?e.show.evaluate(s):oGe}};Vd.prototype.update=function(e){let t=e.context;if(!this._ready){if(u(this._promise)||(this._promise=X5e(this,t)),u(this._error)){let i=this._error;throw this._error=void 0,i}return}Z5e(this,t),J5e(this,t),$5e(this);let n=e.passes;(n.render||n.pick)&&eGe(this,e)};Vd.prototype.isDestroyed=function(){return!1};Vd.prototype.destroy=function(){return this._va=this._va&&this._va.destroy(),this._sp=this._sp&&this._sp.destroy(),le(this)};var Kx=Vd;var wR=`in vec3 startEllipsoidNormal;
  7113. in vec3 endEllipsoidNormal;
  7114. in vec4 startPositionAndHeight;
  7115. in vec4 endPositionAndHeight;
  7116. in vec4 startFaceNormalAndVertexCorner;
  7117. in vec4 endFaceNormalAndHalfWidth;
  7118. in float a_batchId;
  7119. uniform mat4 u_modifiedModelView;
  7120. uniform vec2 u_minimumMaximumVectorHeights;
  7121. out vec4 v_startPlaneEC;
  7122. out vec4 v_endPlaneEC;
  7123. out vec4 v_rightPlaneEC;
  7124. out float v_halfWidth;
  7125. out vec3 v_volumeUpEC;
  7126. void main()
  7127. {
  7128. // vertex corner IDs
  7129. // 3-----------7
  7130. // /| left /|
  7131. // / | 1 / |
  7132. // 2-----------6 5 end
  7133. // | / | /
  7134. // start |/ right |/
  7135. // 0-----------4
  7136. //
  7137. float isEnd = floor(startFaceNormalAndVertexCorner.w * 0.251); // 0 for front, 1 for end
  7138. float isTop = floor(startFaceNormalAndVertexCorner.w * mix(0.51, 0.19, isEnd)); // 0 for bottom, 1 for top
  7139. vec3 forward = endPositionAndHeight.xyz - startPositionAndHeight.xyz;
  7140. vec3 right = normalize(cross(forward, startEllipsoidNormal));
  7141. vec4 position = vec4(startPositionAndHeight.xyz, 1.0);
  7142. position.xyz += forward * isEnd;
  7143. v_volumeUpEC = czm_normal * normalize(cross(right, forward));
  7144. // Push for volume height
  7145. float offset;
  7146. vec3 ellipsoidNormal = mix(startEllipsoidNormal, endEllipsoidNormal, isEnd);
  7147. // offset height to create volume
  7148. offset = mix(startPositionAndHeight.w, endPositionAndHeight.w, isEnd);
  7149. offset = mix(u_minimumMaximumVectorHeights.y, u_minimumMaximumVectorHeights.x, isTop) - offset;
  7150. position.xyz += offset * ellipsoidNormal;
  7151. // move from RTC to EC
  7152. position = u_modifiedModelView * position;
  7153. right = czm_normal * right;
  7154. // Push for width in a direction that is in the start or end plane and in a plane with right
  7155. // N = normalEC ("right-facing" direction for push)
  7156. // R = right
  7157. // p = angle between N and R
  7158. // w = distance to push along R if R == N
  7159. // d = distance to push along N
  7160. //
  7161. // N R
  7162. // { p| } * cos(p) = dot(N, R) = w / d
  7163. // d | |w * d = w / dot(N, R)
  7164. // { | }
  7165. // o---------- polyline segment ---->
  7166. //
  7167. vec3 scratchNormal = mix(-startFaceNormalAndVertexCorner.xyz, endFaceNormalAndHalfWidth.xyz, isEnd);
  7168. scratchNormal = cross(scratchNormal, mix(startEllipsoidNormal, endEllipsoidNormal, isEnd));
  7169. vec3 miterPushNormal = czm_normal * normalize(scratchNormal);
  7170. offset = 2.0 * endFaceNormalAndHalfWidth.w * max(0.0, czm_metersPerPixel(position)); // offset = widthEC
  7171. offset = offset / dot(miterPushNormal, right);
  7172. position.xyz += miterPushNormal * (offset * sign(0.5 - mod(startFaceNormalAndVertexCorner.w, 2.0)));
  7173. gl_Position = czm_depthClamp(czm_projection * position);
  7174. position = u_modifiedModelView * vec4(startPositionAndHeight.xyz, 1.0);
  7175. vec3 startNormalEC = czm_normal * startFaceNormalAndVertexCorner.xyz;
  7176. v_startPlaneEC = vec4(startNormalEC, -dot(startNormalEC, position.xyz));
  7177. v_rightPlaneEC = vec4(right, -dot(right, position.xyz));
  7178. position = u_modifiedModelView * vec4(endPositionAndHeight.xyz, 1.0);
  7179. vec3 endNormalEC = czm_normal * endFaceNormalAndHalfWidth.xyz;
  7180. v_endPlaneEC = vec4(endNormalEC, -dot(endNormalEC, position.xyz));
  7181. v_halfWidth = endFaceNormalAndHalfWidth.w;
  7182. }
  7183. `;var vR=`in vec4 v_startPlaneEC;
  7184. in vec4 v_endPlaneEC;
  7185. in vec4 v_rightPlaneEC;
  7186. in float v_halfWidth;
  7187. in vec3 v_volumeUpEC;
  7188. uniform vec4 u_highlightColor;
  7189. void main()
  7190. {
  7191. float logDepthOrDepth = czm_branchFreeTernary(czm_sceneMode == czm_sceneMode2D, gl_FragCoord.z, czm_unpackDepth(texture(czm_globeDepthTexture, gl_FragCoord.xy / czm_viewport.zw)));
  7192. // Discard for sky
  7193. if (logDepthOrDepth == 0.0) {
  7194. #ifdef DEBUG_SHOW_VOLUME
  7195. out_FragColor = vec4(0.0, 0.0, 1.0, 0.5);
  7196. return;
  7197. #else // DEBUG_SHOW_VOLUME
  7198. discard;
  7199. #endif // DEBUG_SHOW_VOLUME
  7200. }
  7201. vec4 eyeCoordinate = czm_windowToEyeCoordinates(gl_FragCoord.xy, logDepthOrDepth);
  7202. eyeCoordinate /= eyeCoordinate.w;
  7203. float halfMaxWidth = v_halfWidth * czm_metersPerPixel(eyeCoordinate);
  7204. // Expand halfMaxWidth if direction to camera is almost perpendicular with the volume's up direction
  7205. halfMaxWidth += halfMaxWidth * (1.0 - dot(-normalize(eyeCoordinate.xyz), v_volumeUpEC));
  7206. // Check distance of the eye coordinate against the right-facing plane
  7207. float widthwiseDistance = czm_planeDistance(v_rightPlaneEC, eyeCoordinate.xyz);
  7208. // Check eye coordinate against the mitering planes
  7209. float distanceFromStart = czm_planeDistance(v_startPlaneEC, eyeCoordinate.xyz);
  7210. float distanceFromEnd = czm_planeDistance(v_endPlaneEC, eyeCoordinate.xyz);
  7211. if (abs(widthwiseDistance) > halfMaxWidth || distanceFromStart < 0.0 || distanceFromEnd < 0.0) {
  7212. #ifdef DEBUG_SHOW_VOLUME
  7213. out_FragColor = vec4(logDepthOrDepth, 0.0, 0.0, 0.5);
  7214. return;
  7215. #else // DEBUG_SHOW_VOLUME
  7216. discard;
  7217. #endif // DEBUG_SHOW_VOLUME
  7218. }
  7219. out_FragColor = u_highlightColor;
  7220. czm_writeDepthClamp();
  7221. }
  7222. `;function Kp(e){this._positions=e.positions,this._widths=e.widths,this._counts=e.counts,this._batchIds=e.batchIds,this._ellipsoid=y(e.ellipsoid,ie.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(li._defaultMinTerrainHeight,li._defaultMaxTerrainHeight),this._boundingVolume=In.fromRectangle(e.rectangle,li._defaultMinTerrainHeight,li._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(Kp.prototype,{trianglesLength:{get:function(){return this._trianglesLength}},geometryByteLength:{get:function(){return this._geometryByteLength}},ready:{get:function(){return this._ready}}});function rGe(e,t,n){let i=li.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;In.fromRectangle(c,o,r,n,a)}function sGe(e){let t=e._rectangle,n=e._minimumHeight,i=e._maximumHeight,o=e._ellipsoid,r=e._center,s=2+ce.packedLength+ie.packedLength+h.packedLength,a=new Float64Array(s),c=0;return a[c++]=n,a[c++]=i,ce.pack(t,a,c),c+=ce.packedLength,ie.pack(o,a,c),c+=ie.packedLength,h.pack(r,a,c),a}var aGe=new hi("createVectorTileClampedPolylines"),ty={startEllipsoidNormal:0,endEllipsoidNormal:1,startPositionAndHeight:2,endPositionAndHeight:3,startFaceNormalAndVertexCorner:4,endFaceNormalAndHalfWidth:5,a_batchId:6};function cGe(e,t){if(u(e._va))return;let n=e._positions,i=e._widths,o=e._counts,r=e._transferrableBatchIds,s=e._packedBuffer;u(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=sGe(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},l=aGe.scheduleTask(c,a);if(u(l))return l.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===Fe.UNSIGNED_SHORT?new Uint16Array(f.indices):new Uint32Array(f.indices),lGe(e,t),e._ready=!0}).catch(f=>{e.isDestroyed()||(e._error=f)})}function lGe(e,t){if(!u(e._va)){let n=e._startEllipsoidNormals,i=e._endEllipsoidNormals,o=e._startPositionAndHeights,r=e._endPositionAndHeights,s=e._startFaceNormalAndVertexCornerIds,a=e._endFaceNormalAndHalfWidths,c=e._vertexBatchIds,l=e._indices,f=n.byteLength+i.byteLength;f+=o.byteLength+r.byteLength,f+=s.byteLength+a.byteLength,f+=c.byteLength+l.byteLength,e._trianglesLength=l.length/3,e._geometryByteLength=f;let d=ct.createVertexBuffer({context:t,typedArray:n,usage:Ne.STATIC_DRAW}),p=ct.createVertexBuffer({context:t,typedArray:i,usage:Ne.STATIC_DRAW}),g=ct.createVertexBuffer({context:t,typedArray:o,usage:Ne.STATIC_DRAW}),m=ct.createVertexBuffer({context:t,typedArray:r,usage:Ne.STATIC_DRAW}),x=ct.createVertexBuffer({context:t,typedArray:s,usage:Ne.STATIC_DRAW}),b=ct.createVertexBuffer({context:t,typedArray:a,usage:Ne.STATIC_DRAW}),T=ct.createVertexBuffer({context:t,typedArray:c,usage:Ne.STATIC_DRAW}),A=ct.createIndexBuffer({context:t,typedArray:l,usage:Ne.STATIC_DRAW,indexDatatype:l.BYTES_PER_ELEMENT===2?Fe.UNSIGNED_SHORT:Fe.UNSIGNED_INT}),C=[{index:ty.startEllipsoidNormal,vertexBuffer:d,componentDatatype:X.FLOAT,componentsPerAttribute:3},{index:ty.endEllipsoidNormal,vertexBuffer:p,componentDatatype:X.FLOAT,componentsPerAttribute:3},{index:ty.startPositionAndHeight,vertexBuffer:g,componentDatatype:X.FLOAT,componentsPerAttribute:4},{index:ty.endPositionAndHeight,vertexBuffer:m,componentDatatype:X.FLOAT,componentsPerAttribute:4},{index:ty.startFaceNormalAndVertexCorner,vertexBuffer:x,componentDatatype:X.FLOAT,componentsPerAttribute:4},{index:ty.endFaceNormalAndHalfWidth,vertexBuffer:b,componentDatatype:X.FLOAT,componentsPerAttribute:4},{index:ty.a_batchId,vertexBuffer:T,componentDatatype:X.UNSIGNED_SHORT,componentsPerAttribute:1}];e._va=new ni({context:t,attributes:C,indexBuffer:A}),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 DR=new F,Ose=new h;function uGe(e,t){u(e._uniformMap)||(e._uniformMap={u_modifiedModelView:function(){let n=t.uniformState.view;return F.clone(n,DR),F.multiplyByPoint(DR,e._center,Ose),F.setTranslation(DR,Ose,DR),DR},u_highlightColor:function(){return e._highlightColor},u_minimumMaximumVectorHeights:function(){return e._minimumMaximumVectorHeights}})}function Rse(e){return ke.fromCache({cull:{enabled:!0,face:pi.FRONT},blending:un.PRE_MULTIPLIED_ALPHA_BLEND,depthMask:!1,stencilTest:{enabled:e,frontFunction:zn.EQUAL,frontOperation:{fail:lt.KEEP,zFail:lt.KEEP,zPass:lt.KEEP},backFunction:zn.EQUAL,backOperation:{fail:lt.KEEP,zFail:lt.KEEP,zPass:lt.KEEP},reference:Lt.CESIUM_3D_TILE_MASK,mask:Lt.CESIUM_3D_TILE_MASK}})}function fGe(e){u(e._rs)||(e._rs=Rse(!1),e._rs3DTiles=Rse(!0))}function dGe(e,t){if(u(e._sp))return;let n=e._batchTable,i=n.getVertexShaderCallback(!1,"a_batchId",void 0)(wR),o=n.getFragmentShaderCallback(!1,void 0,!0)(vR),r=new Ue({defines:["VECTOR_TILE",Bt.isInternetExplorer()?"":"CLIP_POLYLINE"],sources:[nu,i]}),s=new Ue({defines:["VECTOR_TILE"],sources:[o]});e._sp=Yt.fromCache({context:t,vertexShaderSource:r,fragmentShaderSource:s,attributeLocations:ty})}function hGe(e,t){let n=e._command;if(!u(e._command)){let o=e._batchTable.getUniformMapCallback()(e._uniformMap);n=e._command=new Je({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=Je.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)}Kp.prototype.getPositions=function(e){return Kx.getPolylinePositions(this,e)};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 ws(e,r)}};Kp.prototype.applyDebugSettings=function(e,t){this._highlightColor=e?t:this._constantColor};function mGe(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 pGe=new H,_Ge=H.WHITE,gGe=!0;Kp.prototype.applyStyle=function(e,t){if(!u(e)){mGe(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=u(e.color)?e.color.evaluateColor(s,pGe):_Ge,s.show=u(e.show)?e.show.evaluate(s):gGe}};function yGe(e){return li.initialize().then(function(){rGe(e,e._rectangle,e._ellipsoid)}).catch(t=>{e.isDestroyed()||(e._error=t)})}Kp.prototype.update=function(e){let t=e.context;if(!this._ready){if(u(this._promise)||(this._promise=yGe(this).then(cGe(this,t))),u(this._error)){let i=this._error;throw this._error=void 0,i}return}uGe(this,t),dGe(this,t),fGe(this);let n=e.passes;(n.render||n.pick)&&hGe(this,e)};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(),le(this)};var IR=Kp;var d9=32767,xGe=new fe,bGe=new h;function TGe(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);qn.zigZagDeltaDecode(s,a,c);let l=new Float64Array(e.length);for(let f=0;f<r;++f){let d=s[f],p=a[f],g=c[f],m=P.lerp(t.west,t.east,d/d9),x=P.lerp(t.south,t.north,p/d9),b=P.lerp(n,i,g/d9),T=fe.fromRadians(m,x,b,xGe),A=o.cartographicToCartesian(T,bGe);h.pack(A,l,f*3)}return l}var PR=TGe;function rm(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,wGe(this,i,o)}Object.defineProperties(rm.prototype,{featuresLength:{get:function(){return u(this._batchTable)?this._batchTable.featuresLength:0}},pointsLength:{get:function(){return u(this._points)?this._points.pointsLength:0}},trianglesLength:{get:function(){let e=0;return u(this._polygons)&&(e+=this._polygons.trianglesLength),u(this._polylines)&&(e+=this._polylines.trianglesLength),e}},geometryByteLength:{get:function(){let e=0;return u(this._polygons)&&(e+=this._polygons.geometryByteLength),u(this._polylines)&&(e+=this._polylines.geometryByteLength),e}},texturesByteLength:{get:function(){return u(this._points)?this._points.texturesByteLength:0}},batchTableByteLength:{get:function(){return u(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 AGe(e){return function(t,n){u(e._polygons)&&e._polygons.updateCommands(t,n)}}function CGe(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&&u(e.POLYGON_BATCH_IDS)){let p=t.byteOffset+e.POLYGON_BATCH_IDS.byteOffset;n=new Uint16Array(t.buffer,p,s)}if(a>0&&u(e.POLYLINE_BATCH_IDS)){let p=t.byteOffset+e.POLYLINE_BATCH_IDS.byteOffset;i=new Uint16Array(t.buffer,p,a)}if(c>0&&u(e.POINT_BATCH_IDS)){let p=t.byteOffset+e.POINT_BATCH_IDS.byteOffset;o=new Uint16Array(t.buffer,p,c)}let l=u(n)||u(i)||u(o),f=s>0&&!u(n)||a>0&&!u(i)||c>0&&!u(o);if(l&&f)throw new ue("If one group of batch ids is defined, then all batch ids must be defined");if(!u(n)&&!u(i)&&!u(o)){let p=0;if(!u(n)&&s>0)for(n=new Uint16Array(s),r=0;r<s;++r)n[r]=p++;if(!u(i)&&a>0)for(i=new Uint16Array(a),r=0;r<a;++r)i[r]=p++;if(!u(o)&&c>0)for(o=new Uint16Array(c),r=0;r<c;++r)o[r]=p++}return{polygons:n,polylines:i,points:o}}var zd=Uint32Array.BYTES_PER_ELEMENT;function EGe(e){return new Kx(e)}function SGe(e){return new IR(e)}function wGe(e,t,n){n=y(n,0);let i=new Uint8Array(t),o=new DataView(t);n+=zd;let r=o.getUint32(n,!0);if(r!==1)throw new ue(`Only Vector tile version 1 is supported. Version ${r} is not.`);n+=zd;let s=o.getUint32(n,!0);if(n+=zd,s===0){e._ready=!0;return}let a=o.getUint32(n,!0);if(n+=zd,a===0)throw new ue("Feature table must have a byte length greater than zero");let c=o.getUint32(n,!0);n+=zd;let l=o.getUint32(n,!0);n+=zd;let f=o.getUint32(n,!0);n+=zd;let d=o.getUint32(n,!0);n+=zd;let p=o.getUint32(n,!0);n+=zd;let g=o.getUint32(n,!0);n+=zd;let m=o.getUint32(n,!0);n+=zd;let x=Oo(i,n,a);n+=a;let b=new Uint8Array(t,n,c);n+=c;let T,A;l>0&&(T=Oo(i,n,l),n+=l,f>0&&(A=new Uint8Array(t,n,f),A=new Uint8Array(A),n+=f));let C=y(x.POLYGONS_LENGTH,0),S=y(x.POLYLINES_LENGTH,0),w=y(x.POINTS_LENGTH,0),D=C+S+w,O=new Tp(e,D,T,A,AGe(e));if(e._batchTable=O,D===0)return;let R=new Md(x,b),L=R.getGlobalProperty("REGION");if(!u(L))throw new ue("Feature table global property: REGION must be defined");let N=ce.unpack(L),_=L[4],E=L[5],v=e._tile.computedTransform,I=R.getGlobalProperty("RTC_CENTER",X.FLOAT,3);u(I)?(I=h.unpack(I),F.multiplyByPoint(v,I,I)):(I=ce.center(N),I.height=P.lerp(_,E,.5),I=ie.WGS84.cartographicToCartesian(I));let M=CGe(x,b);if(n+=(4-n%4)%4,C>0){R.featuresLength=C;let B=y(R.getPropertyArray("POLYGON_COUNTS",X.UNSIGNED_INT,1),R.getPropertyArray("POLYGON_COUNT",X.UNSIGNED_INT,1));if(!u(B))throw new ue("Feature table property: POLYGON_COUNTS must be defined when POLYGONS_LENGTH is greater than 0");let V=y(R.getPropertyArray("POLYGON_INDEX_COUNTS",X.UNSIGNED_INT,1),R.getPropertyArray("POLYGON_INDEX_COUNT",X.UNSIGNED_INT,1));if(!u(V))throw new ue("Feature table property: POLYGON_INDEX_COUNTS must be defined when POLYGONS_LENGTH is greater than 0");let U=B.reduce(function(W,K){return W+K*2},0),G=V.reduce(function(W,K){return W+K},0),k=new Uint32Array(t,n,G);n+=d;let Y=new Uint16Array(t,n,U);n+=p;let j,$;u(x.POLYGON_MINIMUM_HEIGHTS)&&u(x.POLYGON_MAXIMUM_HEIGHTS)&&(j=R.getPropertyArray("POLYGON_MINIMUM_HEIGHTS",X.FLOAT,1),$=R.getPropertyArray("POLYGON_MAXIMUM_HEIGHTS",X.FLOAT,1)),e._polygons=new CR({positions:Y,counts:B,indexCounts:V,indices:k,minimumHeight:_,maximumHeight:E,polygonMinimumHeights:j,polygonMaximumHeights:$,center:I,rectangle:N,boundingVolume:e.tile.boundingVolume.boundingVolume,batchTable:O,batchIds:M.polygons,modelMatrix:v})}if(S>0){R.featuresLength=S;let B=y(R.getPropertyArray("POLYLINE_COUNTS",X.UNSIGNED_INT,1),R.getPropertyArray("POLYLINE_COUNT",X.UNSIGNED_INT,1));if(!u(B))throw new ue("Feature table property: POLYLINE_COUNTS must be defined when POLYLINES_LENGTH is greater than 0");let V=R.getPropertyArray("POLYLINE_WIDTHS",X.UNSIGNED_SHORT,1);if(!u(V)){V=new Uint16Array(S);for(let $=0;$<S;++$)V[$]=2}let U=B.reduce(function($,W){return $+W*3},0),G=new Uint16Array(t,n,U);n+=g;let k=e._tileset,Y=k.examineVectorLinesFunction;if(u(Y)){let $=PR(new Uint16Array(G),N,_,E,ie.WGS84);vGe($,B,M.polylines,O,e.url,Y)}let j=EGe;u(k.classificationType)&&(j=SGe),e._polylines=j({positions:G,widths:V,counts:B,batchIds:M.polylines,minimumHeight:_,maximumHeight:E,center:I,rectangle:N,boundingVolume:e.tile.boundingVolume.boundingVolume,batchTable:O,classificationType:k.classificationType,keepDecodedPositions:k.vectorKeepDecodedPositions})}if(w>0){let B=new Uint16Array(t,n,w*3);n+=m,e._points=new AR({positions:B,batchIds:M.points,minimumHeight:_,maximumHeight:E,rectangle:N,batchTable:O})}}function h9(e){let t=e.featuresLength;if(!u(e._features)&&t>0){let n=new Array(t);u(e._polygons)&&e._polygons.createFeatures(e,n),u(e._polylines)&&e._polylines.createFeatures(e,n),u(e._points)&&e._points.createFeatures(e,n),e._features=n}}rm.prototype.hasProperty=function(e,t){return this._batchTable.hasProperty(e,t)};rm.prototype.getFeature=function(e){return u(this._features)||h9(this),this._features[e]};rm.prototype.applyDebugSettings=function(e,t){u(this._polygons)&&this._polygons.applyDebugSettings(e,t),u(this._polylines)&&this._polylines.applyDebugSettings(e,t),u(this._points)&&this._points.applyDebugSettings(e,t)};rm.prototype.applyStyle=function(e){u(this._features)||h9(this),u(this._polygons)&&this._polygons.applyStyle(e,this._features),u(this._polylines)&&this._polylines.applyStyle(e,this._features),u(this._points)&&this._points.applyStyle(e,this._features)};rm.prototype.update=function(e,t){let n=!0;u(this._polygons)&&(this._polygons.classificationType=this._tileset.classificationType,this._polygons.debugWireframe=this._tileset.debugWireframe,this._polygons.update(t),n=n&&this._polygons.ready),u(this._polylines)&&(this._polylines.update(t),n=n&&this._polylines.ready),u(this._points)&&(this._points.update(t),n=n&&this._points.ready),u(this._batchTable)&&n&&(u(this._features)||h9(this),this._batchTable.update(e,t),this._ready=!0)};rm.prototype.getPolylinePositions=function(e){let t=this._polylines;if(u(t))return t.getPositions(e)};rm.prototype.isDestroyed=function(){return!1};rm.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(),le(this)};function vGe(e,t,n,i,o,r){let s=t.length,a=0;for(let c=0;c<s;c++){let l=t[c]*3,f=e.slice(a,a+l);a+=l,r(f,n[c],o,i)}}var OR=rm;var Mse={b3dm:function(e,t,n,i,o){return em.fromB3dm(e,t,n,i,o)},pnts:function(e,t,n,i,o){return em.fromPnts(e,t,n,i,o)},i3dm:function(e,t,n,i,o){return em.fromI3dm(e,t,n,i,o)},cmpt:function(e,t,n,i,o){return NP.fromTileType(e,t,n,i,o,Mse)},externalTileset:function(e,t,n,i){return sR.fromJson(e,t,n,i)},geom:function(e,t,n,i,o){return new BP(e,t,n,i,o)},vctr:function(e,t,n,i,o){return new OR(e,t,n,i,o)},subt:function(e,t,n,i,o){return WA.fromSubtreeJson(e,t,n,void 0,i,o)},subtreeJson:function(e,t,n,i){return WA.fromSubtreeJson(e,t,n,i)},glb:function(e,t,n,i,o){if(i.byteLength<12)throw new ue("Invalid glb content");let a=new DataView(i,o).getUint32(8,!0),c=new Uint8Array(i,o,a);return em.fromGltf(e,t,n,c)},gltf:function(e,t,n,i){return em.fromGltf(e,t,n,i)},geoJson:function(e,t,n,i){return em.fromGeoJson(e,t,n,i)}},Zx=Mse;var DGe={UNLOADED:0,LOADING:1,PROCESSING:2,READY:3,EXPIRED:4,FAILED:5},zo=Object.freeze(DGe);var Hd={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"};Hd.isBinaryFormat=function(e){switch(e){case Hd.BATCHED_3D_MODEL:case Hd.INSTANCED_3D_MODEL:case Hd.COMPOSITE:case Hd.POINT_CLOUD:case Hd.VECTOR:case Hd.GEOMETRY:case Hd.IMPLICIT_SUBTREE:case Hd.VOXEL_BINARY:case Hd.GLTF_BINARY:return!0;default:return!1}};var us=Object.freeze(Hd);var IGe={NOT_COMPUTED:-1,USE_OPTIMIZATION:1,SKIP_OPTIMIZATION:0},gf=Object.freeze(IGe);var Os={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},Zp=new Array(Os.NUMBER_OF_PASSES);Zp[Os.RENDER]=Object.freeze({pass:Os.RENDER,isRender:!0,requestTiles:!0,ignoreCommands:!1});Zp[Os.PICK]=Object.freeze({pass:Os.PICK,isRender:!1,requestTiles:!1,ignoreCommands:!1});Zp[Os.SHADOW]=Object.freeze({pass:Os.SHADOW,isRender:!1,requestTiles:!0,ignoreCommands:!1});Zp[Os.PRELOAD]=Object.freeze({pass:Os.PRELOAD,isRender:!1,requestTiles:!0,ignoreCommands:!0});Zp[Os.PRELOAD_FLIGHT]=Object.freeze({pass:Os.PRELOAD_FLIGHT,isRender:!1,requestTiles:!0,ignoreCommands:!0});Zp[Os.REQUEST_RENDER_MODE_DEFER_CHECK]=Object.freeze({pass:Os.REQUEST_RENDER_MODE_DEFER_CHECK,isRender:!1,requestTiles:!0,ignoreCommands:!0});Zp[Os.MOST_DETAILED_PRELOAD]=Object.freeze({pass:Os.MOST_DETAILED_PRELOAD,isRender:!1,requestTiles:!0,ignoreCommands:!0});Zp[Os.MOST_DETAILED_PICK]=Object.freeze({pass:Os.MOST_DETAILED_PICK,isRender:!1,requestTiles:!1,ignoreCommands:!1});Os.getPassOptions=function(e){return Zp[e]};var Mo=Object.freeze(Os);function $p(e,t){this._tileset=e,this._tile=t,this.featurePropertiesDirty=!1}Object.defineProperties($p.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){}}});$p.prototype.hasProperty=function(e,t){return!1};$p.prototype.getFeature=function(e){};$p.prototype.applyDebugSettings=function(e,t){};$p.prototype.applyStyle=function(e){};$p.prototype.update=function(e,t){};$p.prototype.isDestroyed=function(){return!1};$p.prototype.destroy=function(){return le(this)};var hC=$p;function Qp(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(Qp.prototype,{class:{get:function(){return this._class}},extras:{get:function(){return this._extras}},extensions:{get:function(){return this._extensions}}});Qp.prototype.hasProperty=function(e){return Fn.hasProperty(e,this._properties,this._class)};Qp.prototype.hasPropertyBySemantic=function(e){return Fn.hasPropertyBySemantic(e,this._properties,this._class)};Qp.prototype.getPropertyIds=function(e){return Fn.getPropertyIds(this._properties,this._class,e)};Qp.prototype.getProperty=function(e){return Fn.getProperty(e,this._properties,this._class)};Qp.prototype.setProperty=function(e,t){return Fn.setProperty(e,t,this._properties,this._class)};Qp.prototype.getPropertyBySemantic=function(e){return Fn.getPropertyBySemantic(e,this._properties,this._class)};Qp.prototype.setPropertyBySemantic=function(e,t){return Fn.setPropertyBySemantic(e,t,this._properties,this._class)};var RR=Qp;function m9(e,t){let n=ri(t,"3DTILES_metadata")?t.extensions["3DTILES_metadata"]:t.metadata;if(!u(n))return;if(!u(e.schema)){m9._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(u(n.class)){let o=i[n.class];return new RR({content:n,class:o})}}m9._oneTimeWarning=Dt;var $x=m9;function PGe(e,t){let n=e.metadataExtension;if(!u(n))return;let i=n.groups,o=ri(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 Qx=PGe;function Jp(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(Jp.prototype,{class:{get:function(){return this._class}},extras:{get:function(){return this._extras}},extensions:{get:function(){return this._extensions}}});Jp.prototype.hasProperty=function(e){return Fn.hasProperty(e,this._properties,this._class)};Jp.prototype.hasPropertyBySemantic=function(e){return Fn.hasPropertyBySemantic(e,this._properties,this._class)};Jp.prototype.getPropertyIds=function(e){return Fn.getPropertyIds(this._properties,this._class,e)};Jp.prototype.getProperty=function(e){return Fn.getProperty(e,this._properties,this._class)};Jp.prototype.setProperty=function(e,t){return Fn.setProperty(e,t,this._properties,this._class)};Jp.prototype.getPropertyBySemantic=function(e){return Fn.getPropertyBySemantic(e,this._properties,this._class)};Jp.prototype.setPropertyBySemantic=function(e,t){return Fn.setPropertyBySemantic(e,t,this._properties,this._class)};var MR=Jp;function p9(e,t){let n=ri(t,"3DTILES_metadata")?t.extensions["3DTILES_metadata"]:t.metadata;if(!u(n))return;if(!u(e.schema)){p9._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(u(n.class)){let o=i[n.class];return new MR({tile:n,class:o})}}p9._oneTimeWarning=Dt;var LR=p9;function OGe(e){let t=new Uint8Array(e),n=Cd(t);if(n==="glTF"&&(n="glb"),us.isBinaryFormat(n))return{contentType:n,binaryPayload:t};let i=RGe(t);if(u(i.root))return{contentType:us.EXTERNAL_TILESET,jsonPayload:i};if(u(i.asset))return{contentType:us.GLTF,jsonPayload:i};if(u(i.tileAvailability))return{contentType:us.IMPLICIT_SUBTREE_JSON,jsonPayload:i};if(u(i.type))return{contentType:us.GEOJSON,jsonPayload:i};if(u(i.voxelTable))return{contentType:us.VOXEL_JSON,jsonPayload:i};throw new ue("Invalid tile content.")}function RGe(e){let t;try{t=Oo(e)}catch{throw new ue("Invalid tile content.")}return t}var sm=OGe;function Gd(e,t,n,i){this._tileset=e,this._tile=t,this._tilesetResource=n,this._contents=[],this._contentsCreated=!1;let o=u(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=Ua.getServerKey(a.getUrlComponent());this._innerContentResources[s]=a,this._serverKeys[s]=c}}Object.defineProperties(Gd.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 _9(e,t){e._requestsInFlight+=t,e.tileset.statistics.numberOfPendingRequests+=t}function Lse(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)}Gd.prototype.requestInnerContents=function(){if(!MGe(this._serverKeys)){this.tileset.statistics.numberOfAttemptedRequests+=this._serverKeys.length;return}let e=this._innerContentHeaders;_9(this,e.length);let t=this._cancelCount;for(let n=0;n<e.length;n++)this._arrayFetchPromises[n]=LGe(this,n,t,this._tile._contentState);return NGe(this)};function MGe(e){let t={};for(let n=0;n<e.length;n++){let i=e[n];u(t[i])?t[i]++:t[i]=1}for(let n in t)if(t.hasOwnProperty(n)&&!Ua.serverHasOpenSlots(n,t[n]))return!1;return Ua.heapHasOpenSlots(e.length)}function LGe(e,t,n,i){let o=e._innerContentResources[t].clone(),r=e.tile,s=function(){return r._priority},a=e._serverKeys[t],c=new Go({throttle:!0,throttleByServer:!0,type:Jr.TILES3D,priorityFunction:s,serverKey:a});o.request=c,e._requests[t]=c;let l=o.fetchArrayBuffer();if(u(l))return l.then(function(f){if(!(n<e._cancelCount)){if(o.request.cancelled||o.request.state===Jn.CANCELLED){Lse(e,i);return}return _9(e,-1),f}}).catch(function(f){if(!(n<e._cancelCount)){if(o.request.cancelled||o.request.state===Jn.CANCELLED){Lse(e,i);return}_9(e,-1),Nse(e,t,f)}})}async function NGe(e){let t=e._cancelCount,n=await Promise.all(e._arrayFetchPromises);if(t<e._cancelCount)return;let i=n.map((r,s)=>FGe(e,r,s)),o=await Promise.all(i);return e._contentsCreated=!0,e._contents=o.filter(u),o}async function FGe(e,t,n){if(u(t))try{let i=sm(t);if(i.contentType===us.EXTERNAL_TILESET)throw new ue("External tilesets are disallowed inside multiple contents");e._disableSkipLevelOfDetail=e._disableSkipLevelOfDetail||i.contentType===us.GEOMETRY||i.contentType===us.VECTOR;let o=e._tileset,r=e._innerContentResources[n],s=e._tile,a,c=Zx[i.contentType];u(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 l=e._innerContentHeaders[n];if(s.hasImplicitContentMetadata){let d=s.implicitSubtree,p=s.implicitCoordinates;a.metadata=d.getContentMetadataView(p,n)}else s.hasImplicitContent||(a.metadata=$x(o,l));let f=Qx(o,l);return u(f)&&(a.group=new px({metadata:f})),a}catch(i){Nse(e,n,i)}}function Nse(e,t,n){let i=e._tileset,o=e._innerContentResources[t].url,r=u(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}`))}Gd.prototype.cancelRequests=function(){for(let e=0;e<this._requests.length;e++){let t=this._requests[e];u(t)&&t.cancel()}};Gd.prototype.hasProperty=function(e,t){return!1};Gd.prototype.getFeature=function(e){};Gd.prototype.applyDebugSettings=function(e,t){let n=this._contents,i=n.length;for(let o=0;o<i;++o)n[o].applyDebugSettings(e,t)};Gd.prototype.applyStyle=function(e){let t=this._contents,n=t.length;for(let i=0;i<n;++i)t[i].applyStyle(e)};Gd.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)};Gd.prototype.isDestroyed=function(){return!1};Gd.prototype.destroy=function(){let e=this._contents,t=e.length;for(let n=0;n<t;++n)e[n].destroy();return le(this)};var NR=Gd;var Wse=ro(Vse(),1);var QGe=new h,JGe=new h,ny={};ny.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};ny.computeWindingOrder2D=function(e){return ny.computeArea2D(e)>0?$r.COUNTER_CLOCKWISE:$r.CLOCKWISE};ny.triangulate=function(e,t){let n=z.packArray(e);return(0,Wse.default)(n,t,2)};var jse=new h,qse=new h,Yse=new h,zse=new h,Hse=new h,Gse=new h,e_=new h,Xse=new z,Kse=new z,Zse=new z,pC=new z;ny.computeSubdivision=function(e,t,n,i,o){o=y(o,P.RADIANS_PER_DEGREE);let r=u(i),s=n.slice(0),a,c=t.length,l=new Array(c*3),f=new Array(c*2),d=0,p=0;for(a=0;a<c;a++){let C=t[a];if(l[d++]=C.x,l[d++]=C.y,l[d++]=C.z,r){let S=i[a];f[p++]=S.x,f[p++]=S.y}}let g=[],m={},x=e.maximumRadius,b=P.chordLength(o,x),T=b*b;for(;s.length>0;){let C=s.pop(),S=s.pop(),w=s.pop(),D=h.fromArray(l,w*3,jse),O=h.fromArray(l,S*3,qse),R=h.fromArray(l,C*3,Yse),L,N,_;r&&(L=z.fromArray(f,w*2,Xse),N=z.fromArray(f,S*2,Kse),_=z.fromArray(f,C*2,Zse));let E=h.multiplyByScalar(h.normalize(D,zse),x,zse),v=h.multiplyByScalar(h.normalize(O,Hse),x,Hse),I=h.multiplyByScalar(h.normalize(R,Gse),x,Gse),M=h.magnitudeSquared(h.subtract(E,v,e_)),B=h.magnitudeSquared(h.subtract(v,I,e_)),V=h.magnitudeSquared(h.subtract(I,E,e_)),U=Math.max(M,B,V),G,k,Y;U>T?M===U?(G=`${Math.min(w,S)} ${Math.max(w,S)}`,a=m[G],u(a)||(k=h.add(D,O,e_),h.multiplyByScalar(k,.5,k),l.push(k.x,k.y,k.z),a=l.length/3-1,m[G]=a,r&&(Y=z.add(L,N,pC),z.multiplyByScalar(Y,.5,Y),f.push(Y.x,Y.y))),s.push(w,a,C),s.push(a,S,C)):B===U?(G=`${Math.min(S,C)} ${Math.max(S,C)}`,a=m[G],u(a)||(k=h.add(O,R,e_),h.multiplyByScalar(k,.5,k),l.push(k.x,k.y,k.z),a=l.length/3-1,m[G]=a,r&&(Y=z.add(N,_,pC),z.multiplyByScalar(Y,.5,Y),f.push(Y.x,Y.y))),s.push(S,a,w),s.push(a,C,w)):V===U&&(G=`${Math.min(C,w)} ${Math.max(C,w)}`,a=m[G],u(a)||(k=h.add(R,D,e_),h.multiplyByScalar(k,.5,k),l.push(k.x,k.y,k.z),a=l.length/3-1,m[G]=a,r&&(Y=z.add(_,L,pC),z.multiplyByScalar(Y,.5,Y),f.push(Y.x,Y.y))),s.push(C,a,S),s.push(a,w,S)):(g.push(w),g.push(S),g.push(C))}let A={attributes:{position:new we({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:l})},indices:g,primitiveType:Me.TRIANGLES};return r&&(A.attributes.st=new we({componentDatatype:X.FLOAT,componentsPerAttribute:2,values:f})),new st(A)};var e6e=new fe,t6e=new fe,n6e=new fe,T9=new fe;ny.computeRhumbLineSubdivision=function(e,t,n,i,o){o=y(o,P.RADIANS_PER_DEGREE);let r=u(i),s=n.slice(0),a,c=t.length,l=new Array(c*3),f=new Array(c*2),d=0,p=0;for(a=0;a<c;a++){let w=t[a];if(l[d++]=w.x,l[d++]=w.y,l[d++]=w.z,r){let D=i[a];f[p++]=D.x,f[p++]=D.y}}let g=[],m={},x=e.maximumRadius,b=P.chordLength(o,x),T=new _a(void 0,void 0,e),A=new _a(void 0,void 0,e),C=new _a(void 0,void 0,e);for(;s.length>0;){let w=s.pop(),D=s.pop(),O=s.pop(),R=h.fromArray(l,O*3,jse),L=h.fromArray(l,D*3,qse),N=h.fromArray(l,w*3,Yse),_,E,v;r&&(_=z.fromArray(f,O*2,Xse),E=z.fromArray(f,D*2,Kse),v=z.fromArray(f,w*2,Zse));let I=e.cartesianToCartographic(R,e6e),M=e.cartesianToCartographic(L,t6e),B=e.cartesianToCartographic(N,n6e);T.setEndPoints(I,M);let V=T.surfaceDistance;A.setEndPoints(M,B);let U=A.surfaceDistance;C.setEndPoints(B,I);let G=C.surfaceDistance,k=Math.max(V,U,G),Y,j,$,W,K;k>b?V===k?(Y=`${Math.min(O,D)} ${Math.max(O,D)}`,a=m[Y],u(a)||(j=T.interpolateUsingFraction(.5,T9),$=(I.height+M.height)*.5,W=h.fromRadians(j.longitude,j.latitude,$,e,e_),l.push(W.x,W.y,W.z),a=l.length/3-1,m[Y]=a,r&&(K=z.add(_,E,pC),z.multiplyByScalar(K,.5,K),f.push(K.x,K.y))),s.push(O,a,w),s.push(a,D,w)):U===k?(Y=`${Math.min(D,w)} ${Math.max(D,w)}`,a=m[Y],u(a)||(j=A.interpolateUsingFraction(.5,T9),$=(M.height+B.height)*.5,W=h.fromRadians(j.longitude,j.latitude,$,e,e_),l.push(W.x,W.y,W.z),a=l.length/3-1,m[Y]=a,r&&(K=z.add(E,v,pC),z.multiplyByScalar(K,.5,K),f.push(K.x,K.y))),s.push(D,a,O),s.push(a,w,O)):G===k&&(Y=`${Math.min(w,O)} ${Math.max(w,O)}`,a=m[Y],u(a)||(j=C.interpolateUsingFraction(.5,T9),$=(B.height+I.height)*.5,W=h.fromRadians(j.longitude,j.latitude,$,e,e_),l.push(W.x,W.y,W.z),a=l.length/3-1,m[Y]=a,r&&(K=z.add(v,_,pC),z.multiplyByScalar(K,.5,K),f.push(K.x,K.y))),s.push(w,a,D),s.push(a,O,D)):(g.push(O),g.push(D),g.push(w))}let S={attributes:{position:new we({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:l})},indices:g,primitiveType:Me.TRIANGLES};return r&&(S.attributes.st=new we({componentDatatype:X.FLOAT,componentsPerAttribute:2,values:f})),new st(S)};ny.scaleToGeodeticHeight=function(e,t,n,i){n=y(n,ie.WGS84);let o=QGe,r=JGe;if(t=y(t,0),i=y(i,!0),u(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 ai=ny;var $se=Math.cos,Qse=Math.sin,i6e=Math.sqrt,C9={};C9.computePosition=function(e,t,n,i,o,r,s){let a=t.radiiSquared,c=e.nwCorner,l=e.boundingRectangle,f=c.latitude-e.granYCos*i+o*e.granXSin,d=$se(f),p=Qse(f),g=a.z*p,m=c.longitude+i*e.granYSin+o*e.granXCos,x=d*$se(m),b=d*Qse(m),T=a.x*x,A=a.y*b,C=i6e(T*x+A*b+g*p);if(r.x=T/C,r.y=A/C,r.z=g/C,n){let S=e.stNwCorner;u(S)?(f=S.latitude-e.stGranYCos*i+o*e.stGranXSin,m=S.longitude+i*e.stGranYSin+o*e.stGranXCos,s.x=(m-e.stWest)*e.lonScalar,s.y=(f-e.stSouth)*e.latScalar):(s.x=(m-l.west)*e.lonScalar,s.y=(f-l.south)*e.latScalar)}};var o6e=new Qi,yf=new h,r6e=new fe,LU=new h,A9=new wi;function Jse(e,t,n,i,o,r,s){let a=Math.cos(t),c=i*a,l=n*a,f=Math.sin(t),d=i*f,p=n*f;yf=A9.project(e,yf),yf=h.subtract(yf,LU,yf);let g=Qi.fromRotation(t,o6e);yf=Qi.multiplyByVector(g,yf,yf),yf=h.add(yf,LU,yf),e=A9.unproject(yf,e),r-=1,s-=1;let m=e.latitude,x=m+r*p,b=m-c*s,T=m-c*s+r*p,A=Math.max(m,x,b,T),C=Math.min(m,x,b,T),S=e.longitude,w=S+r*l,D=S+s*d,O=S+s*d+r*l,R=Math.max(S,w,D,O),L=Math.min(S,w,D,O);return{north:A,south:C,east:R,west:L,granYCos:c,granYSin:d,granXCos:l,granXSin:p,nwCorner:e}}C9.computeOptions=function(e,t,n,i,o,r,s){let a=e.east,c=e.west,l=e.north,f=e.south,d=!1,p=!1;l===P.PI_OVER_TWO&&(d=!0),f===-P.PI_OVER_TWO&&(p=!0);let g,m=l-f;c>a?g=P.TWO_PI-c+a:g=a-c;let x=Math.ceil(g/t)+1,b=Math.ceil(m/t)+1,T=g/(x-1),A=m/(b-1),C=ce.northwest(e,r),S=ce.center(e,r6e);(n!==0||i!==0)&&(S.longitude<C.longitude&&(S.longitude+=P.TWO_PI),LU=A9.project(S,LU));let w=A,D=T,O=0,R=0,L=ce.clone(e,o),N={granYCos:w,granYSin:O,granXCos:D,granXSin:R,nwCorner:C,boundingRectangle:L,width:x,height:b,northCap:d,southCap:p};if(n!==0){let _=Jse(C,n,T,A,S,x,b);l=_.north,f=_.south,a=_.east,c=_.west,N.granYCos=_.granYCos,N.granYSin=_.granYSin,N.granXCos=_.granXCos,N.granXSin=_.granXSin,L.north=l,L.south=f,L.east=a,L.west=c}if(i!==0){n=n-i;let _=ce.northwest(L,s),E=Jse(_,n,T,A,S,x,b);N.stGranYCos=E.granYCos,N.stGranXCos=E.granXCos,N.stGranYSin=E.granYSin,N.stGranXSin=E.granXSin,N.stNwCorner=_,N.stWest=E.west,N.stSouth=E.south}return N};var fs=C9;var s6e=new se,a6e=new se,c6e=new h,l6e=new ce;function eae(e,t){let n=e._ellipsoid,i=t.height,o=t.width,r=t.northCap,s=t.southCap,a=i,c=2,l=0,f=4;r&&(c-=1,a-=1,l+=1,f-=2),s&&(c-=1,a-=1,l+=1,f-=2),l+=c*o+2*a-f;let d=new Float64Array(l*3),p=0,g=0,m,x=c6e;if(r)fs.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++)fs.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++)fs.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--)fs.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--)fs.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=Fe.createTypedArray(d.length/3,b),A=0;for(let S=0;S<d.length/3-1;S++)T[A++]=S,T[A++]=S+1;T[A++]=d.length/3-1,T[A++]=0;let C=new st({attributes:new fn,primitiveType:Me.LINES});return C.attributes.position=new we({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:d}),C.indices=T,C}function u6e(e,t){let n=e._surfaceHeight,i=e._extrudedHeight,o=e._ellipsoid,r=i,s=n,a=eae(e,t),c=t.height,l=t.width,f=ai.scaleToGeodeticHeight(a.attributes.position.values,s,o,!1),d=f.length,p=new Float64Array(d*2);p.set(f);let g=ai.scaleToGeodeticHeight(a.attributes.position.values,r,o);p.set(g,d),a.attributes.position.values=p;let m=t.northCap,x=t.southCap,b=4;m&&(b-=1),x&&(b-=1);let T=(p.length/3+b)*2,A=Fe.createTypedArray(p.length/3,T);d=p.length/6;let C=0;for(let w=0;w<d-1;w++)A[C++]=w,A[C++]=w+1,A[C++]=w+d,A[C++]=w+d+1;A[C++]=d-1,A[C++]=0,A[C++]=d+d-1,A[C++]=d,A[C++]=0,A[C++]=d;let S;if(m)S=c-1;else{let w=l-1;A[C++]=w,A[C++]=w+d,S=l+c-2}if(A[C++]=S,A[C++]=S+d,!x){let w=l+S-1;A[C++]=w,A[C]=w+d}return a.indices=A,a}function gC(e){e=y(e,y.EMPTY_OBJECT);let t=e.rectangle,n=y(e.granularity,P.RADIANS_PER_DEGREE),i=y(e.ellipsoid,ie.WGS84),o=y(e.rotation,0),r=y(e.height,0),s=y(e.extrudedHeight,r);this._rectangle=ce.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"}gC.packedLength=ce.packedLength+ie.packedLength+5;gC.pack=function(e,t,n){return n=y(n,0),ce.pack(e._rectangle,t,n),n+=ce.packedLength,ie.pack(e._ellipsoid,t,n),n+=ie.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 tae=new ce,nae=ie.clone(ie.UNIT_SPHERE),_C={rectangle:tae,ellipsoid:nae,granularity:void 0,height:void 0,rotation:void 0,extrudedHeight:void 0,offsetAttribute:void 0};gC.unpack=function(e,t,n){t=y(t,0);let i=ce.unpack(e,t,tae);t+=ce.packedLength;let o=ie.unpack(e,t,nae);t+=ie.packedLength;let r=e[t++],s=e[t++],a=e[t++],c=e[t++],l=e[t];return u(n)?(n._rectangle=ce.clone(i,n._rectangle),n._ellipsoid=ie.clone(o,n._ellipsoid),n._surfaceHeight=s,n._rotation=a,n._extrudedHeight=c,n._offsetAttribute=l===-1?void 0:l,n):(_C.granularity=r,_C.height=s,_C.rotation=a,_C.extrudedHeight=c,_C.offsetAttribute=l===-1?void 0:l,new gC(_C))};var f6e=new fe;gC.createGeometry=function(e){let t=e._rectangle,n=e._ellipsoid,i=fs.computeOptions(t,e._granularity,e._rotation,0,l6e,f6e),o,r;if(P.equalsEpsilon(t.north,t.south,P.EPSILON10)||P.equalsEpsilon(t.east,t.west,P.EPSILON10))return;let s=e._surfaceHeight,a=e._extrudedHeight,c=!P.equalsEpsilon(s,a,0,P.EPSILON2),l;if(c){if(o=u6e(e,i),u(e._offsetAttribute)){let p=o.attributes.position.values.length/3,g=new Uint8Array(p);e._offsetAttribute===tn.TOP?g=g.fill(1,0,p/2):(l=e._offsetAttribute===tn.NONE?0:1,g=g.fill(l)),o.attributes.applyOffset=new we({componentDatatype:X.UNSIGNED_BYTE,componentsPerAttribute:1,values:g})}let f=se.fromRectangle3D(t,n,s,a6e),d=se.fromRectangle3D(t,n,a,s6e);r=se.union(f,d)}else{if(o=eae(e,i),o.attributes.position.values=ai.scaleToGeodeticHeight(o.attributes.position.values,s,n,!1),u(e._offsetAttribute)){let f=o.attributes.position.values.length;l=e._offsetAttribute===tn.NONE?0:1;let d=new Uint8Array(f/3).fill(l);o.attributes.applyOffset=new we({componentDatatype:X.UNSIGNED_BYTE,componentsPerAttribute:1,values:d})}r=se.fromRectangle3D(t,n,s)}return new st({attributes:o.attributes,indices:o.indices,primitiveType:Me.LINES,boundingSphere:r,offsetAttribute:e._offsetAttribute})};var eb=gC;function xC(e){this.rectangle=ce.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,ie.WGS84);_6e(this,e.rectangle,t),this._orientedBoundingBox=void 0,this._boundingSphere=void 0,y(e.computeBoundingVolumes,!0)&&this.computeBoundingVolumes(t)}Object.defineProperties(xC.prototype,{boundingVolume:{get:function(){return this._orientedBoundingBox}},boundingSphere:{get:function(){return this._boundingSphere}}});xC.prototype.computeBoundingVolumes=function(e){this._orientedBoundingBox=In.fromRectangle(this.rectangle,this.minimumHeight,this.maximumHeight,e),this._boundingSphere=se.fromOrientedBoundingBox(this._orientedBoundingBox)};var iae=new h,NU=new h,oae=new h,d6e=new h,h6e=new h,m6e=new h,p6e=new h,xf=new fe,rae=new en(h.UNIT_X,0),yC=new Tn;function _6e(e,t,n){n.cartographicToCartesian(ce.southwest(t),e.southwestCornerCartesian),n.cartographicToCartesian(ce.northeast(t),e.northeastCornerCartesian),xf.longitude=t.west,xf.latitude=(t.south+t.north)*.5,xf.height=0;let i=n.cartographicToCartesian(xf,m6e),o=h.cross(i,h.UNIT_Z,d6e);h.normalize(o,e.westNormal),xf.longitude=t.east;let r=n.cartographicToCartesian(xf,p6e),s=h.cross(h.UNIT_Z,r,iae);h.normalize(s,e.eastNormal);let a=h.subtract(i,r,iae);h.magnitude(a)===0&&(a=h.clone(o,a));let c=h.normalize(a,h6e),l=t.south,f;if(l>0){xf.longitude=(t.west+t.east)*.5,xf.latitude=l;let x=n.cartographicToCartesian(xf,yC.origin);h.clone(c,yC.direction);let b=en.fromPointNormal(e.southwestCornerCartesian,e.westNormal,rae);xi.rayPlane(yC,b,e.southwestCornerCartesian),f=n.geodeticSurfaceNormal(x,NU)}else f=n.geodeticSurfaceNormalCartographic(ce.southeast(t),NU);let d=h.cross(f,a,oae);h.normalize(d,e.southNormal);let p=t.north,g;if(p<0){xf.longitude=(t.west+t.east)*.5,xf.latitude=p;let x=n.cartographicToCartesian(xf,yC.origin);h.negate(c,yC.direction);let b=en.fromPointNormal(e.northeastCornerCartesian,e.eastNormal,rae);xi.rayPlane(yC,b,e.northeastCornerCartesian),g=n.geodeticSurfaceNormal(x,NU)}else g=n.geodeticSurfaceNormalCartographic(ce.northwest(t),NU);let m=h.cross(a,g,oae);h.normalize(m,e.northNormal)}var g6e=new h,y6e=new h,x6e=new h(0,-1,0),b6e=new h(0,0,-1),sae=new h;function T6e(e,t){let n=t.camera,i=n.positionWC,o=n.positionCartographic,r=0;if(!ce.contains(e.rectangle,o)){let l=e.southwestCornerCartesian,f=e.northeastCornerCartesian,d=e.westNormal,p=e.southNormal,g=e.eastNormal,m=e.northNormal;t.mode!==te.SCENE3D&&(l=t.mapProjection.project(ce.southwest(e.rectangle),g6e),l.z=l.y,l.y=l.x,l.x=0,f=t.mapProjection.project(ce.northeast(e.rectangle),y6e),f.z=f.y,f.y=f.x,f.x=0,d=x6e,g=h.UNIT_Y,p=b6e,m=h.UNIT_Z);let x=h.subtract(i,l,sae),b=h.dot(x,d),T=h.dot(x,p),A=h.subtract(i,f,sae),C=h.dot(A,g),S=h.dot(A,m);b>0?r+=b*b:C>0&&(r+=C*C),T>0?r+=T*T:S>0&&(r+=S*S)}let s,a,c;if(t.mode===te.SCENE3D?(s=o.height,a=e.minimumHeight,c=e.maximumHeight):(s=i.x,a=0,c=0),s>c){let l=s-c;r+=l*l}else if(s<a){let l=a-s;r+=l*l}return Math.sqrt(r)}xC.prototype.distanceToCamera=function(e){let t=T6e(this,e);if(e.mode===te.SCENE3D&&u(this._orientedBoundingBox)){let n=Math.sqrt(this._orientedBoundingBox.distanceSquaredTo(e.camera.positionWC));return Math.max(t,n)}return t};xC.prototype.intersectPlane=function(e){return this._orientedBoundingBox.intersectPlane(e)};xC.prototype.createDebugVolume=function(e){let t=new F.clone(F.IDENTITY),n=new eb({rectangle:this.rectangle,height:this.minimumHeight,extrudedHeight:this.maximumHeight}),i=new yt({geometry:n,id:"outline",modelMatrix:t,attributes:{color:kt.fromColor(e)}});return new En({geometryInstances:i,appearance:new nn({translucent:!1,flat:!0}),asynchronous:!1})};var bf=xC;var UR={},A6e=new h,aae=new h,cae=new h,lae=new h,uae=new In;UR.validOutline=function(e){let n=In.fromPoints(e,uae).halfAxes,i=Q.getColumn(n,0,aae),o=Q.getColumn(n,1,cae),r=Q.getColumn(n,2,lae),s=h.magnitude(i),a=h.magnitude(o),c=h.magnitude(r);return!(s===0&&(a===0||c===0)||a===0&&c===0)};UR.computeProjectTo2DArguments=function(e,t,n,i){let o=In.fromPoints(e,uae),r=o.halfAxes,s=Q.getColumn(r,0,aae),a=Q.getColumn(r,1,cae),c=Q.getColumn(r,2,lae),l=h.magnitude(s),f=h.magnitude(a),d=h.magnitude(c),p=Math.min(l,f,d);if(l===0&&(f===0||d===0)||f===0&&d===0)return!1;let g,m;return(p===f||p===d)&&(g=s),p===l?g=a:p===d&&(m=a),(p===l||p===f)&&(m=c),h.normalize(g,n),h.normalize(m,i),h.clone(o.center,t),!0};function fae(e,t,n,i,o){let r=h.subtract(e,t,A6e),s=h.dot(n,r),a=h.dot(i,r);return z.fromElements(s,a,o)}UR.createProjectPointsTo2DFunction=function(e,t,n){return function(i){let o=new Array(i.length);for(let r=0;r<i.length;r++)o[r]=fae(i[r],e,t,n);return o}};UR.createProjectPointTo2DFunction=function(e,t,n){return function(i,o){return fae(i,e,t,n,o)}};var t_=UR;function iy(){this._array=[],this._offset=0,this._length=0}Object.defineProperties(iy.prototype,{length:{get:function(){return this._length}}});iy.prototype.enqueue=function(e){this._array.push(e),this._length++};iy.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};iy.prototype.peek=function(){if(this._length!==0)return this._array[this._offset]};iy.prototype.contains=function(e){return this._array.indexOf(e)!==-1};iy.prototype.clear=function(){this._array.length=this._offset=this._length=0};iy.prototype.sort=function(e){this._offset>0&&(this._array=this._array.slice(this._offset),this._offset=0),this._array.sort(e)};var oy=iy;var Ko={};Ko.computeHierarchyPackedLength=function(e,t){let n=0,i=[e];for(;i.length>0;){let o=i.pop();if(!u(o))continue;n+=2;let r=o.positions,s=o.holes;if(u(r)&&r.length>0&&(n+=r.length*t.packedLength),u(s)){let a=s.length;for(let c=0;c<a;++c)i.push(s[c])}}return n};Ko.packPolygonHierarchy=function(e,t,n,i){let o=[e];for(;o.length>0;){let r=o.pop();if(!u(r))continue;let s=r.positions,a=r.holes;if(t[n++]=u(s)?s.length:0,t[n++]=u(a)?a.length:0,u(s)){let c=s.length;for(let l=0;l<c;++l,n+=i.packedLength)i.pack(s[l],t,n)}if(u(a)){let c=a.length;for(let l=0;l<c;++l)o.push(a[l])}}return n};Ko.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]=Ko.unpackPolygonHierarchy(e,t,n),t=s[a].startingIndex,delete s[a].startingIndex;return{positions:r,holes:s,startingIndex:t}};var tb=new z;function mae(e,t,n,i){return z.subtract(t,e,tb),z.multiplyByScalar(tb,n/i,tb),z.add(e,tb,tb),[tb.x,tb.y]}var ry=new h;function C6e(e,t,n,i){return h.subtract(t,e,ry),h.multiplyByScalar(ry,n/i,ry),h.add(e,ry,ry),[ry.x,ry.y,ry.z]}Ko.subdivideLineCount=function(e,t,n){let o=h.distance(e,t)/n,r=Math.max(0,Math.ceil(P.log2(o)));return Math.pow(2,r)};var BU=new fe,kU=new fe,E6e=new fe,S6e=new h,FU=new _a;Ko.subdivideRhumbLineCount=function(e,t,n,i){let o=e.cartesianToCartographic(t,BU),r=e.cartesianToCartographic(n,kU),a=new _a(o,r,e).surfaceDistance/i,c=Math.max(0,Math.ceil(P.log2(a)));return Math.pow(2,c)};Ko.subdivideTexcoordLine=function(e,t,n,i,o,r){let s=Ko.subdivideLineCount(n,i,o),a=z.distance(e,t),c=a/s,l=r;l.length=s*2;let f=0;for(let d=0;d<s;d++){let p=mae(e,t,d*c,a);l[f++]=p[0],l[f++]=p[1]}return l};Ko.subdivideLine=function(e,t,n,i){let o=Ko.subdivideLineCount(e,t,n),r=h.distance(e,t),s=r/o;u(i)||(i=[]);let a=i;a.length=o*3;let c=0;for(let l=0;l<o;l++){let f=C6e(e,t,l*s,r);a[c++]=f[0],a[c++]=f[1],a[c++]=f[2]}return a};Ko.subdivideTexcoordRhumbLine=function(e,t,n,i,o,r,s){let a=n.cartesianToCartographic(i,BU),c=n.cartesianToCartographic(o,kU);FU.setEndPoints(a,c);let l=FU.surfaceDistance/r,f=Math.max(0,Math.ceil(P.log2(l))),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=mae(e,t,b*g,p);m[x++]=T[0],m[x++]=T[1]}return m};Ko.subdivideRhumbLine=function(e,t,n,i,o){let r=e.cartesianToCartographic(t,BU),s=e.cartesianToCartographic(n,kU),a=new _a(r,s,e),c=a.surfaceDistance/i,l=Math.max(0,Math.ceil(P.log2(c))),f=Math.pow(2,l),d=a.surfaceDistance/f;u(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,E6e),b=e.cartographicToCartesian(x,S6e);p[g++]=b.x,p[g++]=b.y,p[g++]=b.z}return p};var w6e=new h,v6e=new h,D6e=new h,I6e=new h;Ko.scaleToGeodeticHeightExtruded=function(e,t,n,i,o){i=y(i,ie.WGS84);let r=w6e,s=v6e,a=D6e,c=I6e;if(u(e)&&u(e.attributes)&&u(e.attributes.position)){let l=e.attributes.position.values,f=l.length/2;for(let d=0;d<f;d+=3)h.fromArray(l,d,a),i.geodeticSurfaceNormal(a,r),c=i.scaleToGeodeticSurface(a,c),s=h.multiplyByScalar(r,n,s),s=h.add(c,s,s),l[d+f]=s.x,l[d+1+f]=s.y,l[d+2+f]=s.z,o&&(c=h.clone(a,c)),s=h.multiplyByScalar(r,t,s),s=h.add(c,s,s),l[d]=s.x,l[d+1]=s.y,l[d+2]=s.z}return e};Ko.polygonOutlinesFromHierarchy=function(e,t,n){let i=[],o=new oy;o.enqueue(e);let r,s,a;for(;o.length!==0;){let c=o.dequeue(),l=c.positions;if(t)for(a=l.length,r=0;r<a;r++)n.scaleToGeodeticSurface(l[r],l[r]);if(l=yo(l,h.equalsEpsilon,!0),l.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=yo(p,h.equalsEpsilon,!0),p.length<3)continue;i.push(p);let g=0;for(u(d.holes)&&(g=d.holes.length),s=0;s<g;s++)o.enqueue(d.holes[s])}i.push(l)}return i};var P6e=new fe;function O6e(e,t,n){let i=n.cartesianToCartographic(e,BU),o=n.cartesianToCartographic(t,kU);if(Math.sign(i.latitude)===Math.sign(o.latitude))return;FU.setEndPoints(i,o);let r=FU.findIntersectionWithLatitude(0,P6e);if(!u(r))return;let s=Math.min(i.longitude,o.longitude),a=Math.max(i.longitude,o.longitude);if(Math.abs(a-s)>P.PI){let c=s;s=a,a=c}if(!(r.longitude<s||r.longitude>a))return n.cartographicToCartesian(r)}function R6e(e,t,n,i){if(i===qt.RHUMB)return O6e(e,t,n);let o=xi.lineSegmentPlane(e,t,en.ORIGIN_XY_PLANE);if(u(o))return n.scaleToGeodeticSurface(o,o)}var M6e=new fe;function L6e(e,t,n){let i=[],o,r,s,a,c,l=0;for(;l<e.length;){o=e[l],r=e[(l+1)%e.length],s=P.sign(o.z),a=P.sign(r.z);let f=d=>t.cartesianToCartographic(d,M6e).longitude;if(s===0)i.push({position:l,type:s,visited:!1,next:a,theta:f(o)});else if(a!==0){if(c=R6e(o,r,t,n),++l,!u(c))continue;e.splice(l,0,c),i.push({position:l,type:s,visited:!1,next:a,theta:f(c)})}++l}return i}function pae(e,t,n,i,o,r,s){let a=[],c=r,l=d=>p=>p.position===d,f=[];do{let d=n[c];a.push(d);let p=i.findIndex(l(c)),g=i[p];if(!u(g)){++c;continue}let{visited:m,type:x,next:b}=g;if(g.visited=!0,x===0){if(b===0){let S=i[p-(s?1:-1)];if(S?.position===c+1)S.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 A=p+(s?1:-1),C=i[A];if(!u(C)){++c;continue}c=C.position}while(c<n.length&&c>=0&&c!==r&&a.length<n.length);e.splice(t,o,a);for(let d of f)t=pae(e,++t,n,i,0,d,!s);return t}Ko.splitPolygonsOnEquator=function(e,t,n,i){u(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=L6e(s,t,n);if(s.length===r.length||a.length<=1){i[o]=s,++o;continue}a.sort((l,f)=>l.theta-f.theta);let c=s[0].z>=0;o=pae(i,o,s,a,1,0,c)}return i};Ko.polygonsFromHierarchy=function(e,t,n,i,o,r){let s=[],a=[],c=new oy;c.enqueue(e);let l=u(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=yo(d,h.equalsEpsilon,!0)),d.length<3)continue;let x=n(d);if(!u(x))continue;let b=[],T=ai.computeWindingOrder2D(x);if(T===$r.CLOCKWISE&&(x.reverse(),d=d.slice().reverse()),l){l=!1;let D=[d];if(D=r(D,D),D.length>1){for(let O of D)c.enqueue(new ga(O,p));continue}}let A=d.slice(),C=u(p)?p.length:0,S=[],w;for(g=0;g<C;g++){let D=p[g],O=D.positions;if(i)for(m=O.length,w=0;w<m;++w)o.scaleToGeodeticSurface(O[w],O[w]);if(t||(O=yo(O,h.equalsEpsilon,!0)),O.length<3)continue;let R=n(O);if(!u(R))continue;T=ai.computeWindingOrder2D(R),T===$r.CLOCKWISE&&(R.reverse(),O=O.slice().reverse()),S.push(O),b.push(A.length),A=A.concat(O),x=x.concat(R);let L=0;for(u(D.holes)&&(L=D.holes.length),w=0;w<L;w++)c.enqueue(D.holes[w])}s.push({outerRing:d,holes:S}),a.push({positions:A,positions2D:x,holes:b})}return{hierarchy:s,polygons:a}};var N6e=new z,F6e=new h,B6e=new Le,k6e=new Q;Ko.computeBoundingRectangle=function(e,t,n,i,o){let r=Le.fromAxisAngle(e,i,B6e),s=Q.fromQuaternion(r,k6e),a=Number.POSITIVE_INFINITY,c=Number.NEGATIVE_INFINITY,l=Number.POSITIVE_INFINITY,f=Number.NEGATIVE_INFINITY,d=n.length;for(let p=0;p<d;++p){let g=h.clone(n[p],F6e);Q.multiplyByVector(s,g,g);let m=t(g,N6e);u(m)&&(a=Math.min(a,m.x),c=Math.max(c,m.x),l=Math.min(l,m.y),f=Math.max(f,m.y))}return o.x=a,o.y=l,o.width=c-a,o.height=f-l,o};Ko.createGeometryFromPositions=function(e,t,n,i,o,r,s){let a=ai.triangulate(t.positions2D,t.holes);a.length<3&&(a=[0,1,2]);let c=t.positions,l=u(n),f=l?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 we({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:p})},indices:a,primitiveType:Me.TRIANGLES};l&&(m.attributes.st=new we({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 ai.computeSubdivision(e,c,a,f,i);if(s===qt.RHUMB)return ai.computeRhumbLineSubdivision(e,c,a,f,i)};var dae=[],hae=[],U6e=new h,V6e=new h;Ko.computeWallGeometry=function(e,t,n,i,o,r){let s,a,c,l,f,d,p,g,m,x=e.length,b=0,T=0,A=u(t),C=A?t.positions:void 0;if(o)for(a=x*3*2,s=new Array(a*2),A&&(m=x*2*2,g=new Array(m*2)),c=0;c<x;c++)l=e[c],f=e[(c+1)%x],s[b]=s[b+a]=l.x,++b,s[b]=s[b+a]=l.y,++b,s[b]=s[b+a]=l.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,A&&(d=C[c],p=C[(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 R=P.chordLength(i,n.maximumRadius),L=0;if(r===qt.GEODESIC)for(c=0;c<x;c++)L+=Ko.subdivideLineCount(e[c],e[(c+1)%x],R);else if(r===qt.RHUMB)for(c=0;c<x;c++)L+=Ko.subdivideRhumbLineCount(n,e[c],e[(c+1)%x],R);for(a=(L+x)*3,s=new Array(a*2),A&&(m=(L+x)*2,g=new Array(m*2)),c=0;c<x;c++){l=e[c],f=e[(c+1)%x];let N,_;A&&(d=C[c],p=C[(c+1)%x]),r===qt.GEODESIC?(N=Ko.subdivideLine(l,f,R,hae),A&&(_=Ko.subdivideTexcoordLine(d,p,l,f,R,dae))):r===qt.RHUMB&&(N=Ko.subdivideRhumbLine(n,l,f,R,hae),A&&(_=Ko.subdivideTexcoordRhumbLine(d,p,n,l,f,R,dae)));let E=N.length;for(let v=0;v<E;++v,++b)s[b]=N[v],s[b+a]=N[v];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,A){let v=_.length;for(let I=0;I<v;++I,++T)g[T]=_[I],g[T+m]=_[I];g[T]=p.x,g[T+m]=p.x,++T,g[T]=p.y,g[T+m]=p.y,++T}}}x=s.length;let S=Fe.createTypedArray(x/3,x-e.length*6),w=0;for(x/=6,c=0;c<x;c++){let R=c,L=R+1,N=R+x,_=N+1;l=h.fromArray(s,R*3,U6e),f=h.fromArray(s,L*3,V6e),!h.equalsEpsilon(l,f,P.EPSILON10,P.EPSILON10)&&(S[w++]=R,S[w++]=N,S[w++]=L,S[w++]=L,S[w++]=N,S[w++]=_)}let D={attributes:new fn({position:new we({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:s})}),indices:S,primitiveType:Me.TRIANGLES};return A&&(D.attributes.st=new we({componentDatatype:X.FLOAT,componentsPerAttribute:2,values:g})),new st(D)};var Hn=Ko;function z6e(e){let t=e.length,n=new Float64Array(t*3),i=Fe.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 we({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:n})});return new st({attributes:s,indices:i,primitiveType:Me.LINES})}function nb(e){e=y(e,y.EMPTY_OBJECT);let t=e.polygonHierarchy;this._polygonHierarchy=t,this._workerName="createCoplanarPolygonOutlineGeometry",this.packedLength=Hn.computeHierarchyPackedLength(t,h)+1}nb.fromPositions=function(e){e=y(e,y.EMPTY_OBJECT);let t={polygonHierarchy:{positions:e.positions}};return new nb(t)};nb.pack=function(e,t,n){return n=y(n,0),n=Hn.packPolygonHierarchy(e._polygonHierarchy,t,n,h),t[n]=e.packedLength,t};var H6e={polygonHierarchy:{}};nb.unpack=function(e,t,n){t=y(t,0);let i=Hn.unpackPolygonHierarchy(e,t,h);t=i.startingIndex,delete i.startingIndex;let o=e[t];return u(n)||(n=new nb(H6e)),n._polygonHierarchy=i,n.packedLength=o,n};nb.createGeometry=function(e){let t=e._polygonHierarchy,n=t.positions;if(n=yo(n,h.equalsEpsilon,!0),n.length<3||!t_.validOutline(n))return;let o=Hn.polygonOutlinesFromHierarchy(t,!1);if(o.length===0)return;let r=[];for(let c=0;c<o.length;c++){let l=new yt({geometry:z6e(o[c])});r.push(l)}let s=Nn.combineInstances(r)[0],a=se.fromPoints(t.positions);return new st({attributes:s.attributes,indices:s.indices,primitiveType:s.primitiveType,boundingSphere:a})};var Tf=nb;var UU=new fe;function VR(e){let t=Sp.fromToken(e.token),n=y(e.minimumHeight,0),i=y(e.maximumHeight,0),o=y(e.ellipsoid,ie.WGS84);this.s2Cell=t,this.minimumHeight=n,this.maximumHeight=i,this.ellipsoid=o;let r=$6e(t,n,i,o);this._boundingPlanes=r;let s=t9e(r);this._vertices=s,this._edgeNormals=new Array(6),this._edgeNormals[0]=O9(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]=O9(r[1],s.slice(4,8)),a=0;a<4;a++)this._edgeNormals[2+a]=O9(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();UU=o.cartesianToCartographic(c,UU),UU.height=(i+n)/2,this.center=o.cartographicToCartesian(UU,c),this._boundingSphere=se.fromPoints(s)}var G6e=new h,W6e=new fe,j6e=new h,q6e=new fe,Y6e=new h,X6e=new h,K6e=new h,Z6e=new h;function $6e(e,t,n,i){let o=new Array(6),r=e.getCenter(),s=i.geodeticSurfaceNormal(r,G6e),a=i.cartesianToCartographic(r,W6e);a.height=n;let c=i.cartographicToCartesian(a,j6e),l=en.fromPointNormal(c,s);o[0]=l;let f=0,d,p=[],g,m;for(d=0;d<4;d++){g=e.getVertex(d),p[d]=g,m=i.cartesianToCartographic(g,q6e),m.height=t;let b=en.getPointDistance(l,i.cartographicToCartesian(m,Y6e));b<f&&(f=b)}let x=en.clone(l);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,X6e),A=h.subtract(b,g,Z6e),C=h.cross(A,T,K6e);C=h.normalize(C,C),o[2+d]=en.fromPointNormal(g,C)}return o}var ib=new h,ob=new h,rb=new h,E9=new h,S9=new h,w9=new h,Q6e=new h,J6e=new h,e9e=new h,v9=new h,D9=new h,I9=new h,sy=new h,am=new Q;function _ae(e,t,n){ib=e.normal,ob=t.normal,rb=n.normal,E9=h.multiplyByScalar(e.normal,-e.distance,E9),S9=h.multiplyByScalar(t.normal,-t.distance,S9),w9=h.multiplyByScalar(n.normal,-n.distance,w9),v9=h.multiplyByScalar(h.cross(ob,rb,Q6e),h.dot(E9,ib),v9),D9=h.multiplyByScalar(h.cross(rb,ib,J6e),h.dot(S9,ob),D9),I9=h.multiplyByScalar(h.cross(ib,ob,e9e),h.dot(w9,rb),I9),am[0]=ib.x,am[1]=ob.x,am[2]=rb.x,am[3]=ib.y,am[4]=ob.y,am[5]=rb.y,am[6]=ib.z,am[7]=ob.z,am[8]=rb.z;let i=Q.determinant(am);return sy=h.add(v9,D9,sy),sy=h.add(sy,I9,sy),new h(sy.x/i,sy.y/i,sy.z/i)}function t9e(e){let t=new Array(8);for(let n=0;n<4;n++)t[n]=_ae(e[0],e[2+(n+3)%4],e[2+n%4]),t[n+4]=_ae(e[1],e[2+(n+3)%4],e[2+n%4]);return t}var P9=new h,bC=new h;function O9(e,t){let n=[];for(let i=0;i<4;i++)P9=h.subtract(t[(i+1)%4],t[i],P9),bC=h.cross(e.normal,P9,bC),bC=h.normalize(bC,bC),n[i]=h.clone(bC);return n}Object.defineProperties(VR.prototype,{boundingVolume:{get:function(){return this}},boundingSphere:{get:function(){return this._boundingSphere}}});var R9=new h;VR.prototype.distanceToCamera=function(e){let t=e.camera.positionWC,n=[],i=[],o;en.getPointDistance(this._boundingPlanes[0],t)>0?(n.push(0),i.push(this._planeVertices[0]),o=this._edgeNormals[0]):en.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,en.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=M9(en.projectPointOntoPlane(c,t,R9),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=gae(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=M9(en.projectPointOntoPlane(c,t,R9),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=M9(en.projectPointOntoPlane(this._boundingPlanes[1],t,R9),this._planeVertices[1],this._boundingPlanes[1],this._edgeNormals[1]),h.distance(a,t);let l=n[1]===2&&n[2]===5?0:1;return n[0]===0?h.distance(t,this._vertices[(n[1]-2+l)%4]):h.distance(t,this._vertices[4+(n[1]-2+l)%4])};var n9e=new h,i9e=new h;function gae(e,t,n){let i=h.subtract(n,t,n9e),o=h.subtract(e,t,i9e),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 o9e=new en(h.UNIT_X,0);function M9(e,t,n,i){let o=Number.MAX_VALUE,r,s,a;for(let c=0;c<t.length;c++){let l=en.fromPointNormal(t[c],i[c],o9e);en.getPointDistance(l,e)<0||(a=gae(e,t[c],t[(c+1)%4]),r=h.distance(e,a),r<o&&(o=r,s=a))}return u(s)?s:e}VR.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?Kt.INSIDE:n===this._vertices.length?Kt.OUTSIDE:Kt.INTERSECTING};VR.prototype.createDebugVolume=function(e){let t=new F.clone(F.IDENTITY),n=new Tf({polygonHierarchy:{positions:this._planeVertices[0]}}),i=Tf.createGeometry(n),o=new yt({geometry:i,id:"outline",modelMatrix:t,attributes:{color:kt.fromColor(e)}}),r=new Tf({polygonHierarchy:{positions:this._planeVertices[1]}}),s=Tf.createGeometry(r),a=new yt({geometry:s,id:"outline",modelMatrix:t,attributes:{color:kt.fromColor(e)}}),c=[];for(let l=0;l<4;l++){let f=new Tf({polygonHierarchy:{positions:this._planeVertices[2+l]}}),d=Tf.createGeometry(f);c[l]=new yt({geometry:d,id:"outline",modelMatrix:t,attributes:{color:kt.fromColor(e)}})}return new En({geometryInstances:[c[0],c[1],c[2],c[3],a,o],appearance:new nn({translucent:!1,flat:!0}),asynchronous:!1})};var zR=VR;var r9e=new h(1,1,1),VU=Math.cos,zU=Math.sin;function TC(e){e=y(e,y.EMPTY_OBJECT);let t=y(e.radii,r9e),n=y(e.innerRadii,t),i=y(e.minimumClock,0),o=y(e.maximumClock,P.TWO_PI),r=y(e.minimumCone,0),s=y(e.maximumCone,P.PI),a=Math.round(y(e.stackPartitions,10)),c=Math.round(y(e.slicePartitions,8)),l=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=l,this._offsetAttribute=e.offsetAttribute,this._workerName="createEllipsoidOutlineGeometry"}TC.packedLength=2*h.packedLength+8;TC.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 yae=new h,xae=new h,n_={radii:yae,innerRadii:xae,minimumClock:void 0,maximumClock:void 0,minimumCone:void 0,maximumCone:void 0,stackPartitions:void 0,slicePartitions:void 0,subdivisions:void 0,offsetAttribute:void 0};TC.unpack=function(e,t,n){t=y(t,0);let i=h.unpack(e,t,yae);t+=h.packedLength;let o=h.unpack(e,t,xae);t+=h.packedLength;let r=e[t++],s=e[t++],a=e[t++],c=e[t++],l=e[t++],f=e[t++],d=e[t++],p=e[t];return u(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=l,n._slicePartitions=f,n._subdivisions=d,n._offsetAttribute=p===-1?void 0:p,n):(n_.minimumClock=r,n_.maximumClock=s,n_.minimumCone=a,n_.maximumCone=c,n_.stackPartitions=l,n_.slicePartitions=f,n_.subdivisions=d,n_.offsetAttribute=p===-1?void 0:p,new TC(n_))};TC.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=ie.fromCartesian3(t),l=e._slicePartitions+1,f=e._stackPartitions+1;l=Math.round(l*Math.abs(o-i)/P.TWO_PI),f=Math.round(f*Math.abs(s-r)/P.PI),l<2&&(l=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+=l),s<Math.PI&&(x=!0,d+=l));let b=a*p*(f+l),T=new Float64Array(b*3),A=2*(b+d-(l+f)*p),C=Fe.createTypedArray(b,A),S,w,D,O,R=0,L=new Array(f),N=new Array(f);for(S=0;S<f;S++)O=r+S*(s-r)/(f-1),L[S]=zU(O),N[S]=VU(O);let _=new Array(a),E=new Array(a);for(S=0;S<a;S++)D=i+S*(o-i)/(a-1),_[S]=zU(D),E[S]=VU(D);for(S=0;S<f;S++)for(w=0;w<a;w++)T[R++]=t.x*L[S]*E[w],T[R++]=t.y*L[S]*_[w],T[R++]=t.z*N[S];if(g)for(S=0;S<f;S++)for(w=0;w<a;w++)T[R++]=n.x*L[S]*E[w],T[R++]=n.y*L[S]*_[w],T[R++]=n.z*N[S];for(L.length=a,N.length=a,S=0;S<a;S++)O=r+S*(s-r)/(a-1),L[S]=zU(O),N[S]=VU(O);for(_.length=l,E.length=l,S=0;S<l;S++)D=i+S*(o-i)/(l-1),_[S]=zU(D),E[S]=VU(D);for(S=0;S<a;S++)for(w=0;w<l;w++)T[R++]=t.x*L[S]*E[w],T[R++]=t.y*L[S]*_[w],T[R++]=t.z*N[S];if(g)for(S=0;S<a;S++)for(w=0;w<l;w++)T[R++]=n.x*L[S]*E[w],T[R++]=n.y*L[S]*_[w],T[R++]=n.z*N[S];for(R=0,S=0;S<f*p;S++){let M=S*a;for(w=0;w<a-1;w++)C[R++]=M+w,C[R++]=M+w+1}let v=f*a*p;for(S=0;S<l;S++)for(w=0;w<a-1;w++)C[R++]=v+S+w*l,C[R++]=v+S+(w+1)*l;if(g)for(v=f*a*p+l*a,S=0;S<l;S++)for(w=0;w<a-1;w++)C[R++]=v+S+w*l,C[R++]=v+S+(w+1)*l;if(g){let M=f*a*p,B=M+a*l;if(m)for(S=0;S<l;S++)C[R++]=M+S,C[R++]=B+S;if(x)for(M+=a*l-l,B+=a*l-l,S=0;S<l;S++)C[R++]=M+S,C[R++]=B+S}let I=new fn({position:new we({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:T})});if(u(e._offsetAttribute)){let M=T.length,B=e._offsetAttribute===tn.NONE?0:1,V=new Uint8Array(M/3).fill(B);I.applyOffset=new we({componentDatatype:X.UNSIGNED_BYTE,componentsPerAttribute:1,values:V})}return new st({attributes:I,indices:C,primitiveType:Me.LINES,boundingSphere:se.fromEllipsoid(c),offsetAttribute:e._offsetAttribute})};var du=TC;function AC(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 du(i),this._workerName="createSphereOutlineGeometry"}AC.packedLength=du.packedLength;AC.pack=function(e,t,n){return du.pack(e._ellipsoidGeometry,t,n)};var s9e=new du,sb={radius:void 0,radii:new h,stackPartitions:void 0,slicePartitions:void 0,subdivisions:void 0};AC.unpack=function(e,t,n){let i=du.unpack(e,t,s9e);return sb.stackPartitions=i._stackPartitions,sb.slicePartitions=i._slicePartitions,sb.subdivisions=i._subdivisions,u(n)?(h.clone(i._radii,sb.radii),n._ellipsoidGeometry=new du(sb),n):(sb.radius=i._radii.x,new AC(sb))};AC.createGeometry=function(e){return du.createGeometry(e._ellipsoidGeometry)};var i_=AC;function CC(e,t){t===0&&(t=P.EPSILON7),this._boundingSphere=new se(e,t)}Object.defineProperties(CC.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}}});CC.prototype.distanceToCamera=function(e){let t=this._boundingSphere;return Math.max(0,h.distance(t.center,e.camera.positionWC)-t.radius)};CC.prototype.intersectPlane=function(e){return se.intersectPlane(this._boundingSphere,e)};CC.prototype.update=function(e,t){h.clone(e,this._boundingSphere.center),this._boundingSphere.radius=t};CC.prototype.createDebugVolume=function(e){let t=new i_({radius:this.radius}),n=F.fromTranslation(this.center,new F.clone(F.IDENTITY)),i=new yt({geometry:t,id:"outline",modelMatrix:n,attributes:{color:kt.fromColor(e)}});return new En({geometryInstances:i,appearance:new nn({translucent:!1,flat:!0}),asynchronous:!1})};var o_=CC;var a9e=new h,c9e=new h,l9e=new h,u9e=new h;function ab(e,t,n){n=h.cross(e,t,n);let i=h.magnitude(n);return h.multiplyByScalar(n,P.EPSILON7/i,n)}function L9(e,t){let n=h.normalize(e,u9e),i=h.equalsEpsilon(n,h.UNIT_X,P.EPSILON6)?h.UNIT_Y:h.UNIT_X;return ab(e,i,t)}function bae(e){let t=Q.getColumn(e,0,a9e),n=Q.getColumn(e,1,c9e),i=Q.getColumn(e,2,l9e),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]=P.EPSILON7,e[4]=P.EPSILON7,e[8]=P.EPSILON7,e):(o&&!r&&!s?t=ab(n,i,t):!o&&r&&!s?n=ab(t,i,n):!o&&!r&&s?i=ab(n,t,i):o?r?s||(t=L9(i,t),n=ab(i,t,n)):(t=L9(n,t),i=ab(n,t,i)):(n=L9(t,n),i=ab(n,t,i)),Q.setColumn(e,0,t,e),Q.setColumn(e,1,n,e),Q.setColumn(e,2,i,e),e)}function EC(e,t){t=bae(t),this._orientedBoundingBox=new In(e,t),this._boundingSphere=se.fromOrientedBoundingBox(this._orientedBoundingBox)}Object.defineProperties(EC.prototype,{boundingVolume:{get:function(){return this._orientedBoundingBox}},boundingSphere:{get:function(){return this._boundingSphere}}});EC.prototype.distanceToCamera=function(e){return Math.sqrt(this._orientedBoundingBox.distanceSquaredTo(e.camera.positionWC))};EC.prototype.intersectPlane=function(e){return this._orientedBoundingBox.intersectPlane(e)};EC.prototype.update=function(e,t){h.clone(e,this._orientedBoundingBox.center),t=bae(t),Q.clone(t,this._orientedBoundingBox.halfAxes),se.fromOrientedBoundingBox(this._orientedBoundingBox,this._boundingSphere)};EC.prototype.createDebugVolume=function(e){let t=new fd({minimum:new h(-1,-1,-1),maximum:new h(1,1,1)}),n=F.fromRotationTranslation(this.boundingVolume.halfAxes,this.boundingVolume.center),i=new yt({geometry:t,id:"outline",modelMatrix:n,attributes:{color:kt.fromColor(e)}});return new En({geometryInstances:i,appearance:new nn({translucent:!1,flat:!0}),asynchronous:!1})};var Af=EC;function Zo(e,t,n,i){this._tileset=e,this._header=n;let o=u(n.contents),r=o&&n.contents.length>1||ri(n,"3DTILES_multiple_contents"),s=o&&!r?n.contents[0]:n.content;this._contentHeader=s,this.transform=u(n.transform)?F.unpack(n.transform):F.clone(F.IDENTITY);let a=u(i)?i.computedTransform:e.modelMatrix,c=F.multiply(a,this.transform,new F),l=u(i)?i._initialTransform:F.IDENTITY;this._initialTransform=F.multiply(l,this.transform,new F),this.computedTransform=c,this.metadata=LR(e,n),this._boundingVolume=this.createBoundingVolume(n.boundingVolume,c),this._boundingVolume2D=void 0;let f;u(s)&&u(s.boundingVolume)&&(f=this.createBoundingVolume(s.boundingVolume,c)),this._contentBoundingVolume=f,this._contentBoundingVolume2D=void 0;let d;u(n.viewerRequestVolume)&&(d=this.createBoundingVolume(n.viewerRequestVolume,c)),this._viewerRequestVolume=d,this.geometricError=n.geometricError,this._geometricError=n.geometricError,u(this._geometricError)||(this._geometricError=u(i)?i._geometricError:e._geometricError,Zo._deprecationWarning("geometricErrorUndefined","Required property geometricError is undefined for this tile. Using parent's geometric error instead.")),this.updateGeometricErrorScale();let p;u(n.refine)?((n.refine==="replace"||n.refine==="add")&&Zo._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):u(i)?p=i.refine:p=Bo.REPLACE,this.refine=p,this.children=[],this.parent=i;let g,m=!1,x,b,T;if(t=ve.createIfNeeded(t),r)x=zo.UNLOADED,b=t.clone();else if(u(s)){let w=s.uri;u(s.url)&&(Zo._deprecationWarning("contentUrl",'This tileset JSON uses the "content.url" property which has been deprecated. Use "content.uri" instead.'),w=s.url),w===""?(Zo._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 hC(e,this),m=!0,x=zo.READY):(x=zo.UNLOADED,b=t.getDerivedResource({url:w}),T=Ua.getServerKey(b.getUrlComponent()))}else g=new hC(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 A=n.expire,C,S;u(A)&&(C=A.duration,u(A.date)&&(S=J.fromIso8601(A.date))),this.expireDuration=C,this.expireDate=S,this.lastStyleTime=0,this._optimChildrenWithinParent=gf.NOT_COMPUTED,this.clippingPlanesDirty=!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._requestedFrame=0,this._ancestorWithContent=void 0,this._ancestorWithContentAvailable=void 0,this._refines=!1,this._shouldSelect=!1,this._isClipped=!0,this._clippingPlanesState=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}Zo._deprecationWarning=Qr;Object.defineProperties(Zo.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 u(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||u(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 ay=new h;function f9e(e,t){let{tileset:n,boundingSphere:i}=e,{radius:o,center:r}=i,{camera:s}=t,a=h.multiplyByScalar(s.directionWC,e._centerZDepth,ay),c=h.add(s.positionWC,a,ay),l=h.subtract(c,r,ay);if(h.magnitude(l)>o){let S=h.normalize(l,ay),w=h.multiplyByScalar(S,o,ay),D=h.add(r,w,ay),O=h.subtract(D,s.positionWC,ay),R=h.normalize(O,ay);e._foveatedFactor=1-Math.abs(h.dot(s.directionWC,R))}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=P.clamp((e._foveatedFactor-x)/b,0,1),A=n.foveatedInterpolationCallback(n.foveatedMinimumScreenSpaceErrorRelaxation,n.memoryAdjustedScreenSpaceError,T),C=e._screenSpaceError===0&&u(e.parent)?e.parent._screenSpaceError*.5:e._screenSpaceError;return n.memoryAdjustedScreenSpaceError-A<=C}var Cae=new J;Zo.prototype.getScreenSpaceError=function(e,t,n){let i=this._tileset,o=y(n,1),r=u(this.parent)?this.parent.geometricError:i._scaledGeometricError,s=t?r:this.geometricError;if(s===0)return 0;let{camera:a,context:c}=e,l=a.frustum,f=c.drawingBufferWidth,d=c.drawingBufferHeight*o,p;if(e.mode===te.SCENE2D||l instanceof $t){let g=l.offCenterFrustum;u(g)&&(l=g);let m=Math.max(l.top-l.bottom,l.right-l.left)/Math.max(f,d);p=s/m}else{let g=Math.max(this._distanceToCamera,P.EPSILON7),m=l.sseDenominator;if(p=s*d/(g*m),i.dynamicScreenSpaceError){let x=i._dynamicScreenSpaceErrorComputedDensity,b=i.dynamicScreenSpaceErrorFactor,T=P.fog(g,x)*b;p-=T}}return p/=e.pixelRatio,p};function d9e(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=u(o)&&o._screenSpaceErrorProgressiveResolution>n;return r&&s&&(t._priorityProgressiveResolutionScreenSpaceErrorLeaf=!0,i=!0),i}function h9e(e,t){let n=t.parent,o=u(n)&&(!e.isSkippingLevelOfDetail||t._screenSpaceError===0||n.hasTilesetContent||n.hasImplicitContent)?n._screenSpaceError:t._screenSpaceError;return e.root._screenSpaceError-o}Zo.prototype.updateVisibility=function(e){let{parent:t,tileset:n}=this;if(this._updatedVisibilityFrame===n._updatedVisibilityFrame)return;let i=u(t)?t.computedTransform:n.modelMatrix,o=u(t)?t._visibilityPlaneMask:es.MASK_INDETERMINATE;this.updateTransform(i),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!==es.MASK_OUTSIDE,this._inRequestVolume=this.insideViewerRequestVolume(e),this._priorityReverseScreenSpaceError=h9e(n,this),this._priorityProgressiveResolution=d9e(n,this),this.priorityDeferred=f9e(this,e),this._updatedVisibilityFrame=n._updatedVisibilityFrame};Zo.prototype.updateExpiration=function(){if(u(this.expireDate)&&this.contentReady&&!this.hasEmptyContent&&!this.hasMultipleContents){let e=J.now(Cae);J.lessThan(this.expireDate,e)&&(this._contentState=zo.EXPIRED,this._expiredContent=this._content)}};function m9e(e){if(!u(e.expireDuration))return;let t=J.now(Cae);J.addSeconds(t,e.expireDuration,t),u(e.expireDate)?J.lessThan(e.expireDate,t)&&J.clone(t,e.expireDate):e.expireDate=J.clone(t)}function p9e(e){return function(){return e._priority}}Zo.prototype.requestContent=function(){if(!this.hasEmptyContent)return this.hasMultipleContents?_9e(this):y9e(this)};function _9e(e){let t=e._content,n=e._tileset;if(!u(t)){let o=ri(e._header,"3DTILES_multiple_contents")?e._header.extensions["3DTILES_multiple_contents"]:e._header;t=new NR(n,e,e._contentResource.clone(),o),e._content=t}let i=t.requestInnerContents();if(u(i))return e._contentState=zo.LOADING,i.then(o=>{if(!e.isDestroyed()&&u(o))return e._contentState=zo.PROCESSING,t}).catch(o=>{if(!e.isDestroyed())throw e._contentState=zo.FAILED,o})}async function g9e(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===Jn.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===Jn.CANCELLED){e._contentState=r,--t.statistics.numberOfPendingRequests,++t.statistics.numberOfAttemptedRequests;return}try{let a=await x9e(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 y9e(e){let t=e._contentResource.clone(),n=e.contentExpired;n&&t.setQueryParameters({expired:e.expireDate.toString()});let i=new Go({throttle:!0,throttleByServer:!0,type:Jr.TILES3D,priorityFunction:p9e(e),serverKey:e._serverKey});e._request=i,t.request=i;let o=e._tileset,r=t.fetchArrayBuffer();if(!u(r)){++o.statistics.numberOfAttemptedRequests;return}return g9e(e,o,i,n,r)}async function x9e(e,t){let n=sm(t),i=e._tileset;i._disableSkipLevelOfDetail=i._disableSkipLevelOfDetail||n.contentType===us.GEOMETRY||n.contentType===us.VECTOR,(n.contentType===us.IMPLICIT_SUBTREE||n.contentType===us.IMPLICIT_SUBTREE_JSON)&&(e.hasImplicitContent=!0),n.contentType===us.EXTERNAL_TILESET&&(e.hasTilesetContent=!0);let o,r=Zx[n.contentType];if(e.isDestroyed())return;u(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,l=e.implicitCoordinates;o.metadata=c.getContentMetadataView(l,0)}else e.hasImplicitContent||(o.metadata=$x(i,s));let a=Qx(i,s);return u(a)&&(o.group=new px({metadata:a})),o}Zo.prototype.cancelRequests=function(){this.hasMultipleContents?this._content.cancelRequests():this._request.cancel()};Zo.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._debugColorizeTiles=!1,this._debugBoundingVolume=this._debugBoundingVolume&&this._debugBoundingVolume.destroy(),this._debugContentBoundingVolume=this._debugContentBoundingVolume&&this._debugContentBoundingVolume.destroy(),this._debugViewerRequestVolume=this._debugViewerRequestVolume&&this._debugViewerRequestVolume.destroy())};var Eae=new se;function F9(e,t){if(t.mode!==te.SCENE3D&&!u(e._boundingVolume2D)){let n=e._boundingVolume.boundingSphere,i=se.projectTo2D(n,t.mapProjection,Eae);e._boundingVolume2D=new o_(i.center,i.radius)}return t.mode!==te.SCENE3D?e._boundingVolume2D:e._boundingVolume}function b9e(e,t){if(t.mode!==te.SCENE3D&&!u(e._contentBoundingVolume2D)){let n=e._contentBoundingVolume.boundingSphere,i=se.projectTo2D(n,t.mapProjection,Eae);e._contentBoundingVolume2D=new o_(i.center,i.radius)}return t.mode!==te.SCENE3D?e._contentBoundingVolume2D:e._contentBoundingVolume}Zo.prototype.visibility=function(e,t){let n=e.cullingVolume,i=F9(this,e),o=this._tileset,r=o.clippingPlanes;if(u(r)&&r.enabled){let s=r.computeIntersectionWithBoundingVolume(i,o.clippingPlanesOriginMatrix);if(this._isClipped=s!==Kt.INSIDE,s===Kt.OUTSIDE)return es.MASK_OUTSIDE}return n.computeVisibilityWithPlaneMask(i,t)};Zo.prototype.contentVisibility=function(e){if(!u(this._contentBoundingVolume))return Kt.INSIDE;if(this._visibilityPlaneMask===es.MASK_INSIDE)return Kt.INSIDE;let t=e.cullingVolume,n=b9e(this,e),i=this._tileset,o=i.clippingPlanes;if(u(o)&&o.enabled){let r=o.computeIntersectionWithBoundingVolume(n,i.clippingPlanesOriginMatrix);if(this._isClipped=r!==Kt.INSIDE,r===Kt.OUTSIDE)return Kt.OUTSIDE}return t.computeVisibility(n)};Zo.prototype.distanceToTile=function(e){return F9(this,e).distanceToCamera(e)};var T9e=new h;Zo.prototype.distanceToTileCenter=function(e){let n=F9(this,e).boundingVolume,i=h.subtract(n.center,e.camera.positionWC,T9e);return h.dot(e.camera.directionWC,i)};Zo.prototype.insideViewerRequestVolume=function(e){let t=this._viewerRequestVolume;return!u(t)||t.distanceToCamera(e)===0};var Sae=new Q,wae=new h,A9e=new Q,vae=new h,Dae=new ce,C9e=new In,N9=new F;function E9e(e,t,n){let i=h.fromElements(e[0],e[1],e[2],vae),o=Q.fromArray(e,3,A9e);i=F.multiplyByPoint(t,i,i);let r=F.getMatrix3(t,Sae);return o=Q.multiply(r,o,o),u(n)?(n.update(i,o),n):new Af(i,o)}function S9e(e,t,n,i){let o=ce.unpack(e,0,Dae),r=e[4],s=e[5],a=In.fromRectangle(o,r,s,ie.WGS84,C9e),c=a.center,l=a.halfAxes;t=F.multiplyTransformation(t,F.inverseTransformation(n,N9),N9),c=F.multiplyByPoint(t,c,c);let f=F.getMatrix3(t,Sae);return l=Q.multiply(f,l,l),u(i)&&i instanceof Af?(i.update(c,l),i):new Af(c,l)}function w9e(e,t,n,i){if(!F.equalsEpsilon(t,n,P.EPSILON8))return S9e(e,t,n,i);if(u(i))return i;let o=ce.unpack(e,0,Dae);return new bf({rectangle:o,minimumHeight:e[4],maximumHeight:e[5]})}function v9e(e,t,n){let i=h.fromElements(e[0],e[1],e[2],vae),o=e[3];i=F.multiplyByPoint(t,i,i);let r=F.getScale(t,wae),s=h.maximumComponent(r);return o*=s,u(n)?(n.update(i,o),n):new o_(i,o)}Zo.prototype.createBoundingVolume=function(e,t,n){let i=this.metadata,o;if(u(i)&&(o=Mx.parseBoundingVolumeSemantic("TILE",i)),u(o)&&(e=o),!u(e))throw new ue("boundingVolume must be defined");if(ri(e,"3DTILES_bounding_volume_S2"))return new zR(e.extensions["3DTILES_bounding_volume_S2"]);let{box:r,region:s,sphere:a}=e;if(u(r))return E9e(r,t,n);if(u(s))return w9e(s,t,this._initialTransform,n);if(u(a))return v9e(a,t,n);throw new ue("boundingVolume must contain a sphere, region, or box")};Zo.prototype.updateTransform=function(e){e=y(e,F.IDENTITY);let t=F.multiplyTransformation(e,this.transform,N9);if(!!F.equals(t,this.computedTransform))return;F.clone(t,this.computedTransform);let i=this._header,o=this._contentHeader;this._boundingVolume=this.createBoundingVolume(i.boundingVolume,this.computedTransform,this._boundingVolume),u(this._contentBoundingVolume)&&(this._contentBoundingVolume=this.createBoundingVolume(o.boundingVolume,this.computedTransform,this._contentBoundingVolume)),u(this._viewerRequestVolume)&&(this._viewerRequestVolume=this.createBoundingVolume(i.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()};Zo.prototype.updateGeometricErrorScale=function(){let e=F.getScale(this.computedTransform,wae),t=h.maximumComponent(e);if(this.geometricError=this._geometricError*t,!u(this.parent)){let n=this._tileset;n._scaledGeometricError=n._geometricError*t}};function D9e(e,t,n,i){if(!i.isRender)return;let o=u(e._contentHeader)&&u(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,u(e._debugBoundingVolume)||(e._debugBoundingVolume=e._boundingVolume.createDebugVolume(c)),e._debugBoundingVolume.update(n);let l=e._debugBoundingVolume.getGeometryInstanceAttributes("outline");l.color=kt.toValue(c,l.color)}else!r&&u(e._debugBoundingVolume)&&(e._debugBoundingVolume=e._debugBoundingVolume.destroy());t.debugShowContentBoundingVolume&&o?(u(e._debugContentBoundingVolume)||(e._debugContentBoundingVolume=e._contentBoundingVolume.createDebugVolume(H.BLUE)),e._debugContentBoundingVolume.update(n)):!t.debugShowContentBoundingVolume&&u(e._debugContentBoundingVolume)&&(e._debugContentBoundingVolume=e._debugContentBoundingVolume.destroy()),t.debugShowViewerRequestVolume&&u(e._viewerRequestVolume)?(u(e._debugViewerRequestVolume)||(e._debugViewerRequestVolume=e._viewerRequestVolume.createDebugVolume(H.YELLOW)),e._debugViewerRequestVolume.update(n)):!t.debugShowViewerRequestVolume&&u(e._debugViewerRequestVolume)&&(e._debugViewerRequestVolume=e._debugViewerRequestVolume.destroy());let s=t.debugColorizeTiles&&!e._debugColorizeTiles||u(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 I9e(e,t,n){let i=e._expiredContent;if(!e.hasMultipleContents&&u(i)){if(!e.contentReady){try{i.update(t,n)}catch{}return}e._expiredContent.destroy(),e._expiredContent=void 0}if(u(e.content))try{e.content.update(t,n)}catch(o){throw e._contentState=zo.FAILED,o}}function P9e(e,t){let n=t.clippingPlanes,i=0;u(n)&&e._isClipped&&n.enabled&&(i=n.clippingPlanesState),i!==e._clippingPlanesState&&(e._clippingPlanesState=i,e.clippingPlanesDirty=!0)}Zo.prototype.update=function(e,t,n){let{commandList:i}=t,o=i.length;P9e(this,e),D9e(this,e,t,n),I9e(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};var Tae=[];Zo.prototype.process=function(e,t){!this.contentExpired&&!this.contentReady&&this._content.ready&&(m9e(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=Tae;try{this._content.update(e,t)}catch(i){throw this._contentState=zo.FAILED,i}Tae.length=0,t.commandList=n};function Aae(e,t,n){let i=e*Math.pow(10,t);return parseInt(i)*Math.pow(10,n)}function HU(e,t,n){return Math.max(P.normalize(e,t,n)-P.EPSILON7,0)}Zo.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,l=o,f=c+l,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),A=HU(this._depth,n.depth,i.depth);A=t?1-A:A;let S=!e.isSkippingLevelOfDetail&&this.refine===Bo.REPLACE?HU(this._priorityHolder._distanceToCamera,n.distance,i.distance):HU(this._priorityReverseScreenSpaceError,n.reverseScreenSpaceError,i.reverseScreenSpaceError),w=Aae(S,a,s),D=this._priorityProgressiveResolution?0:p,O=HU(this._priorityHolder._foveatedFactor,n.foveatedFactor,i.foveatedFactor),R=Aae(O,l,c),L=this.priorityDeferred?x:0,N=e._pass===Mo.PRELOAD_FLIGHT?0:T;this._priority=A+w+D+R+L+N};Zo.prototype.isDestroyed=function(){return!1};Zo.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(),le(this)};var Cf=Zo;function r_(e){e=y(e,y.EMPTY_OBJECT);let t=e.id,n=e.group,i=e.class,o=u(n.properties)?n.properties:{};this._class=i,this._properties=o,this._id=t,this._extras=n.extras,this._extensions=n.extensions}Object.defineProperties(r_.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}}});r_.prototype.hasProperty=function(e){return Fn.hasProperty(e,this._properties,this._class)};r_.prototype.hasPropertyBySemantic=function(e){return Fn.hasPropertyBySemantic(e,this._properties,this._class)};r_.prototype.getPropertyIds=function(e){return Fn.getPropertyIds(this._properties,this._class,e)};r_.prototype.getProperty=function(e){return Fn.getProperty(e,this._properties,this._class)};r_.prototype.setProperty=function(e,t){return Fn.setProperty(e,t,this._properties,this._class)};r_.prototype.getPropertyBySemantic=function(e){return Fn.getPropertyBySemantic(e,this._properties,this._class)};r_.prototype.setPropertyBySemantic=function(e,t){return Fn.setPropertyBySemantic(e,t,this._properties,this._class)};var SC=r_;function s_(e){e=y(e,y.EMPTY_OBJECT);let t=e.tileset,n=e.class,i=u(t.properties)?t.properties:{};this._class=n,this._properties=i,this._extras=t.extras,this._extensions=t.extensions}Object.defineProperties(s_.prototype,{class:{get:function(){return this._class}},extras:{get:function(){return this._extras}},extensions:{get:function(){return this._extensions}}});s_.prototype.hasProperty=function(e){return Fn.hasProperty(e,this._properties,this._class)};s_.prototype.hasPropertyBySemantic=function(e){return Fn.hasPropertyBySemantic(e,this._properties,this._class)};s_.prototype.getPropertyIds=function(e){return Fn.getPropertyIds(this._properties,this._class,e)};s_.prototype.getProperty=function(e){return Fn.getProperty(e,this._properties,this._class)};s_.prototype.setProperty=function(e,t){return Fn.setProperty(e,t,this._properties,this._class)};s_.prototype.getPropertyBySemantic=function(e){return Fn.getPropertyBySemantic(e,this._properties,this._class)};s_.prototype.setPropertyBySemantic=function(e,t){return Fn.setPropertyBySemantic(e,t,this._properties,this._class)};var HR=s_;function Iae(e){e=y(e,y.EMPTY_OBJECT);let t=e.metadataJson,n=e.schema,i=y(t.metadata,t.tileset),o;u(i)&&(o=new HR({tileset:i,class:n.classes[i.class]}));let r=[],s=[],a=t.groups;if(Array.isArray(a)){let c=a.length;for(let l=0;l<c;l++){let f=a[l];s.push(new SC({group:f,class:n.classes[f.class]}))}}else if(u(a)){r=Object.keys(a).sort();let c=r.length;for(let l=0;l<c;l++){let f=r[l];if(a.hasOwnProperty(f)){let d=a[f];s.push(new SC({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(Iae.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 cb=Iae;var Pae={},O9e=new h;Pae.checkChildrenWithinParent=function(e){let t=e.children,n=t.length,i=e.boundingVolume;if(i instanceof Af||i instanceof bf){let o=i._orientedBoundingBox;e._optimChildrenWithinParent=gf.USE_OPTIMIZATION;for(let r=0;r<n;++r){let a=t[r].boundingVolume;if(!(a instanceof Af||a instanceof bf)){e._optimChildrenWithinParent=gf.SKIP_OPTIMIZATION;break}let c=a._orientedBoundingBox,l=h.subtract(c.center,o.center,O9e),f=h.magnitude(l);h.divideByScalar(l,f,l);let d=Math.abs(o.halfAxes[0]*l.x)+Math.abs(o.halfAxes[1]*l.y)+Math.abs(o.halfAxes[2]*l.z)+Math.abs(o.halfAxes[3]*l.x)+Math.abs(o.halfAxes[4]*l.y)+Math.abs(o.halfAxes[5]*l.z)+Math.abs(o.halfAxes[6]*l.x)+Math.abs(o.halfAxes[7]*l.y)+Math.abs(o.halfAxes[8]*l.z),p=Math.abs(c.halfAxes[0]*l.x)+Math.abs(c.halfAxes[1]*l.y)+Math.abs(c.halfAxes[2]*l.z)+Math.abs(c.halfAxes[3]*l.x)+Math.abs(c.halfAxes[4]*l.y)+Math.abs(c.halfAxes[5]*l.z)+Math.abs(c.halfAxes[6]*l.x)+Math.abs(c.halfAxes[7]*l.y)+Math.abs(c.halfAxes[8]*l.z);if(d<=p+f){e._optimChildrenWithinParent=gf.SKIP_OPTIMIZATION;break}}}return e._optimChildrenWithinParent===gf.USE_OPTIMIZATION};var GR=Pae;function WR(){this.head=void 0,this.tail=void 0,this._length=0}Object.defineProperties(WR.prototype,{length:{get:function(){return this._length}}});function R9e(e,t,n){this.item=e,this.previous=t,this.next=n}WR.prototype.add=function(e){let t=new R9e(e,this.tail,void 0);return u(this.tail)?(this.tail.next=t,this.tail=t):(this.head=t,this.tail=t),++this._length,t};function Oae(e,t){u(t.previous)&&u(t.next)?(t.previous.next=t.next,t.next.previous=t.previous):u(t.previous)?(t.previous.next=void 0,e.tail=t.previous):u(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}WR.prototype.remove=function(e){u(e)&&(Oae(this,e),--this._length)};WR.prototype.splice=function(e,t){if(e===t)return;Oae(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 jR=WR;function lb(){this._list=new jR,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;u(t)&&this._list.splice(this._sentinel,t)};lb.prototype.add=function(e){u(e.cacheNode)||(e.cacheNode=this._list.add(e))};lb.prototype.unloadTile=function(e,t,n){let i=t.cacheNode;u(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 qR=lb;function GU(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 k9(e,t){let n;return t==="_loadTimestamp"?n=J.toDate(e).getTime():n=e,n}GU.prototype.setReferenceMinimumMaximum=function(e,t,n){this._referenceMinimum[n]=k9(e,n),this._referenceMaximum[n]=k9(t,n)};function M9e(e,t){let n=e.tilePropertyName;if(u(n)){let i=k9(t[n],n);return u(i)?(e._maximum=Math.max(i,e._maximum),e._minimum=Math.min(i,e._minimum),i):(e.tilePropertyName=void 0,i)}}var B9=[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)];GU.prototype.colorize=function(e,t){let n=this.tilePropertyName;if(!u(n)||!e.contentAvailable||e._selectedFrame!==t.frameNumber)return;let i=M9e(this,e),o=this._previousMinimum,r=this._previousMaximum;if(o===Number.MAX_VALUE||r===-Number.MAX_VALUE)return;let s=r-o+P.EPSILON7,c=P.clamp(i-o,0,s)/s,l=B9.length-1,f=c*l,d=Math.floor(f),p=Math.ceil(f),g=f-d,m=B9[d],x=B9[p],b=H.clone(H.WHITE);b.red=P.lerp(m.red,x.red,g),b.green=P.lerp(m.green,x.green,g),b.blue=P.lerp(m.blue,x.blue,g),e._debugColor=b};GU.prototype.resetMinimumMaximum=function(){let e=this.tilePropertyName;if(u(e)){let t=this._referenceMinimum[e],n=this._referenceMaximum[e],i=u(t)&&u(n);this._previousMinimum=i?t:this._minimum,this._previousMaximum=i?n:this._maximum,this._minimum=Number.MAX_VALUE,this._maximum=-Number.MAX_VALUE}};var YR=GU;function wC(){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}wC.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 WU(e,t,n,i){let o=t.innerContents,r=t.pointsLength,s=t.trianglesLength,a=t.featuresLength,c=t.geometryByteLength,l=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?-l:l,e.batchTableByteLength+=n?-f:f):(e.numberOfFeaturesSelected+=n?-a:a,e.numberOfPointsSelected+=n?-r:r,e.numberOfTrianglesSelected+=n?-s:s),u(o)){let d=o.length;for(let p=0;p<d;++p)WU(e,o[p],n,i)}}wC.prototype.incrementSelectionCounts=function(e){WU(this,e,!1,!1)};wC.prototype.incrementLoadCounts=function(e){WU(this,e,!1,!0)};wC.prototype.decrementLoadCounts=function(e){WU(this,e,!0,!0)};wC.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_=wC;function XR(){this._style=void 0,this._styleDirty=!1,this._lastStyleTime=0}Object.defineProperties(XR.prototype,{style:{get:function(){return this._style},set:function(e){e!==this._style&&(this._style=e,this._styleDirty=!0)}}});XR.prototype.makeDirty=function(){this._styleDirty=!0};XR.prototype.resetDirty=function(){this._styleDirty=!1};XR.prototype.applyStyle=function(e){if(!u(e.root)||u(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 KR=XR;function L9e(e,t,n){let i=ri(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(!u(o.box)&&!u(o.region)&&!ri(o,"3DTILES_bounding_volume_S2")&&!ri(o,"3DTILES_bounding_volume_cylinder"))throw new ue("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 ve({url:i.subtrees.uri}),this.contentUriTemplates=[],this.contentHeaders=[];let r=N9e(t);for(let s=0;s<r.length;s++){let a=r[s];this.contentHeaders.push(He(a,!0));let c=new ve({url:a.uri});this.contentUriTemplates.push(c)}this.contentCount=this.contentHeaders.length,this.tileHeader=F9e(t),this.subdivisionScheme=Gr[i.subdivisionScheme],this.branchingFactor=Gr.getBranchingFactor(this.subdivisionScheme),this.subtreeLevels=i.subtreeLevels,u(i.availableLevels)?this.availableLevels=i.availableLevels:this.availableLevels=i.maximumLevel+1}function N9e(e){if(ri(e,"3DTILES_multiple_contents")){let t=e.extensions["3DTILES_multiple_contents"];return u(t.contents)?t.contents:t.content}return u(e.contents)?e.contents:u(e.content)?[e.content]:[]}function F9e(e){let t=He(e,!0);return u(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 ub=L9e;var ZR={};function Rae(e){return e=(e^e<<8)&16711935,e=(e^e<<4)&252645135,e=(e^e<<2)&858993459,e=(e^e<<1)&1431655765,e}function U9(e){return e=(e^e<<16)&50331903,e=(e^e<<8)&50393103,e=(e^e<<4)&51130563,e=(e^e<<2)&153391689,e}function Mae(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 V9(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}ZR.encode2D=function(e,t){return(Rae(e)|Rae(t)<<1)>>>0};ZR.decode2D=function(e,t){return u(t)||(t=new Array(2)),t[0]=Mae(e),t[1]=Mae(e>>1),t};ZR.encode3D=function(e,t,n){return U9(e)|U9(t)<<1|U9(n)<<2};ZR.decode3D=function(e,t){return u(t)||(t=new Array(3)),t[0]=V9(e),t[1]=V9(e>>1),t[2]=V9(e>>2),t};var cy=ZR;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===Gr.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===Gr.OCTREE&&(e|=(this.z&1)<<2),e}},mortonIndex:{get:function(){return this.subdivisionScheme===Gr.OCTREE?cy.encode3D(this.x,this.y,this.z):cy.encode2D(this.x,this.y)}},tileIndex:{get:function(){let e=this.subdivisionScheme===Gr.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===Gr.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===Gr.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===Gr.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===Gr.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===Gr.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===Gr.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===Gr.OCTREE&&(e.z=this.z),e};var Lae=[0,0,0];Ho.fromMortonIndex=function(e,t,n,i){let o;return e===Gr.OCTREE?(o=cy.decode3D(i,Lae),new Ho({subdivisionScheme:e,subtreeLevels:t,level:n,x:o[0],y:o[1],z:o[2]})):(o=cy.decode2D(i,Lae),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===Gr.OCTREE?(i=Math.floor(P.log2(7*n+1)/3),o=((1<<3*i)-1)/7,r=n-o):(i=Math.floor(P.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)===Kt.OUTSIDE)return;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._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||!B9e(e,t))return;let i=t.camera.timeSinceMoved<n.foveatedTimeDelay;e.priorityDeferred&&i||(e._requestedFrame=t.frameNumber,n._requestedTiles.push(e))};function B9e(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){Nae(e,t),e.updateExpiration(),e._wasMinPriorityChild=!1,e._priorityHolder=e,V9e(e),e._shouldSelect=!1,e._finalResolution=!0};function Nae(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];Nae(r,t),e._visible=r._visible;return}if(k9e(e,t)){e._visible=!1;return}let i=e.refine===Bo.REPLACE,o=e._optimChildrenWithinParent===gf.USE_OPTIMIZATION;if(i&&o&&n&&!U9e(e,t)){++e.tileset._statistics.numberOfTilesCulledWithChildrenUnion,e._visible=!1;return}}function k9e(e,t){let{parent:n,tileset:i}=e;return!u(n)||n.hasTilesetContent||n.hasImplicitContent||n.refine!==Bo.ADD?!1:e.getScreenSpaceError(t,!0)<=i.memoryAdjustedScreenSpaceError}function U9e(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 V9e(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 Rs=c_;function Fae(){}var $R={stack:new Nc,stackMaximumLength:0};Fae.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}=Rs,s=$R.stack;for(s.push(i);s.length>0;){$R.stackMaximumLength=Math.max($R.stackMaximumLength,s.length);let a=s.pop(),c=a.refine===Bo.ADD,l=a.refine===Bo.REPLACE,f=z9e(a);f&&H9e(a,s,t),(c||l&&!f)&&(G9e(e,a),o(a,t),W9e(a,t),a.hasRenderableContent&&!a.contentAvailable&&(n=!1)),r(a,t)}return $R.stack.trim($R.stackMaximumLength),n};function z9e(e){return e.children.length===0?!1:e.hasTilesetContent||e.hasImplicitContent?!e.contentExpired:(e.hasEmptyContent,!0)}function H9e(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 G9e(e,t){(t.hasUnloadedRenderableContent||t.contentExpired)&&(t._priority=0,e._requestedTiles.push(t))}function W9e(e,t){e.contentAvailable&&e.contentVisibility(t)!==Kt.OUTSIDE&&e.tileset._selectedTiles.push(e)}var QR=Fae;function Bae(){}var JR={stack:new Nc,stackMaximumLength:0},eM={stack:new Nc,stackMaximumLength:0};Bae.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(Rs.updateTile(n,t),!n.isVisible||n.getScreenSpaceError(t,!0)<=e.memoryAdjustedScreenSpaceError)return;q9e(n,t),JR.stack.trim(JR.stackMaximumLength),eM.stack.trim(eM.stackMaximumLength);let i=e._requestedTiles;for(let o=0;o<i.length;++o)i[o].updatePriority()};function z9(e,t){e.contentAvailable&&Rs.selectTile(e,t)}function j9e(e,t,n){let i=e.refine===Bo.REPLACE,{tileset:o,children:r}=e,{updateTile:s,loadTile:a,touchTile:c}=Rs;for(let m=0;m<r.length;++m)s(r[m],n);r.sort(Rs.sortChildrenByDistanceToCamera);let l=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):(l||o.loadSiblings)&&(x._foveatedFactor<g&&(p=m,g=x._foveatedFactor),a(x,n),c(x,n)),l){let b;x._inRequestVolume?x.hasRenderableContent?b=x.contentAvailable:b=Y9e(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 q9e(e,t){let{tileset:n}=e,{canTraverse:i,loadTile:o,visitTile:r,touchTile:s}=Rs,a=JR.stack;for(a.push(e);a.length>0;){JR.stackMaximumLength=Math.max(JR.stackMaximumLength,a.length);let c=a.pop(),l=c.parent,f=!u(l)||l._refines;c._refines=i(c)?j9e(c,a,t)&&f:!1;let d=!c._refines&&f;c.hasRenderableContent?c.refine===Bo.ADD?(z9(c,t),o(c,t)):c.refine===Bo.REPLACE&&(o(c,t),d&&z9(c,t)):(n._emptyTiles.push(c),o(c,t),d&&z9(c,t)),r(c,t),s(c,t)}}function Y9e(e,t){let{canTraverse:n,updateTile:i,loadTile:o,touchTile:r}=Rs,s=!0,a=eM.stack;for(a.push(e);a.length>0;){eM.stackMaximumLength=Math.max(eM.stackMaximumLength,a.length);let c=a.pop(),l=c.children,f=l.length,d=!c.hasRenderableContent&&n(c),p=!c.hasRenderableContent&&c.children.length===0;if(!d&&!c.contentAvailable&&!p&&(s=!1),i(c,t),c.isVisible||(o(c,t),r(c,t)),d)for(let g=0;g<f;++g){let m=l[g];a.push(m)}}return s}var tM=Bae;function kae(){}var nM={stack:new Nc,stackMaximumLength:0},iM={stack:new Nc,stackMaximumLength:0},l_={stack:new Nc,stackMaximumLength:0,ancestorStack:new Nc,ancestorStackMaximumLength:0},X9e=2;kae.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(Rs.updateTile(n,t),!n.isVisible||n.getScreenSpaceError(t,!0)<=e.memoryAdjustedScreenSpaceError)return;eWe(n,t),tWe(n,t),nM.stack.trim(nM.stackMaximumLength),iM.stack.trim(iM.stackMaximumLength),l_.stack.trim(l_.stackMaximumLength),l_.ancestorStack.trim(l_.ancestorStackMaximumLength);let i=e._requestedTiles;for(let o=0;o<i.length;++o)i[o].updatePriority()};function K9e(e,t){let{updateTile:n,touchTile:i,selectTile:o}=Rs,r=iM.stack;for(r.push(e);r.length>0;){iM.stackMaximumLength=Math.max(iM.stackMaximumLength,r.length);let a=r.pop().children;for(let c=0;c<a.length;++c){let l=a[c];l.isVisible&&(l.contentAvailable?(n(l,t),i(l,t),o(l,t)):l._depth-e._depth<X9e&&r.push(l))}}}function jU(e,t){let n=e.contentAvailable?e:e._ancestorWithContentAvailable;u(n)?n._shouldSelect=!0:K9e(e,t)}function Z9e(e,t){e._ancestorWithContent=void 0,e._ancestorWithContentAvailable=void 0;let{parent:n}=e;if(!u(n))return;let i=!n.hasUnloadedRenderableContent||n._requestedFrame===t.frameNumber;e._ancestorWithContent=i?n:n._ancestorWithContent,e._ancestorWithContentAvailable=n.contentAvailable?n:n._ancestorWithContentAvailable}function $9e(e,t){let n=t._ancestorWithContent;return!e.immediatelyLoadDesiredLevelOfDetail&&(t._priorityProgressiveResolutionScreenSpaceErrorLeaf||u(n)&&t._screenSpaceError<n._screenSpaceError/e.skipScreenSpaceErrorFactor&&t._depth>n._depth+e.skipLevels)}function Q9e(e,t,n){let{tileset:i,children:o}=e,{updateTile:r,loadTile:s,touchTile:a}=Rs;for(let l=0;l<o.length;++l)r(o[l],n);o.sort(Rs.sortChildrenByDistanceToCamera);let c=!1;for(let l=0;l<o.length;++l){let f=o[l];f.isVisible?(t.push(f),c=!0):i.loadSiblings&&(s(f,n),a(f,n))}return c}function J9e(e,t){let{tileset:n}=e;return n.immediatelyLoadDesiredLevelOfDetail?!1:u(e._ancestorWithContent)?e._screenSpaceError===0?e.parent._screenSpaceError>t:e._screenSpaceError>t:!0}function eWe(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}=Rs,c=nM.stack;for(c.push(e);c.length>0;){nM.stackMaximumLength=Math.max(nM.stackMaximumLength,c.length);let l=c.pop();Z9e(l,t);let f=l.parent,d=!u(f)||f._refines;l._refines=o(l)?Q9e(l,c,t)&&d:!1;let p=!l._refines&&d;l.hasRenderableContent?l.refine===Bo.ADD?(jU(l,t),r(l,t)):l.refine===Bo.REPLACE&&(J9e(l,i)?(r(l,t),p&&jU(l,t)):p?(jU(l,t),r(l,t)):$9e(n,l)&&r(l,t)):(n._emptyTiles.push(l),r(l,t),p&&jU(l,t)),s(l,t),a(l,t)}}function tWe(e,t){let{selectTile:n,canTraverse:i}=Rs,{stack:o,ancestorStack:r}=l_,s;for(o.push(e);o.length>0||r.length>0;){if(l_.stackMaximumLength=Math.max(l_.stackMaximumLength,o.length),l_.ancestorStackMaximumLength=Math.max(l_.ancestorStackMaximumLength,r.length),r.length>0){let l=r.peek();if(l._stackLength===o.length){r.pop(),l!==s&&(l._finalResolution=!1),n(l,t);continue}}let a=o.pop();if(!u(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 l=a.children;for(let f=0;f<l.length;++f){let d=l[f];d.isVisible&&o.push(d)}}}}var oM=kae;function Ir(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 qR,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 Nc,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 KR,this._styleApplied=!1,this._modelMatrix=u(e.modelMatrix)?F.clone(e.modelMatrix):F.clone(F.IDENTITY),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 YR(e.debugHeatmapTilePropertyName),this.cullRequestsWhileMoving=y(e.cullRequestsWhileMoving,!0),this._cullRequestsWhileMoving=!1,this.cullRequestsWhileMovingMultiplier=y(e.cullRequestsWhileMovingMultiplier,60),this.progressiveResolutionHeightFraction=P.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,ie.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,!1),this.foveatedScreenSpaceError=y(e.foveatedScreenSpaceError,!0),this._foveatedConeSize=y(e.foveatedConeSize,.1),this._foveatedMinimumScreenSpaceErrorRelaxation=y(e.foveatedMinimumScreenSpaceErrorRelaxation,0),this.foveatedInterpolationCallback=y(e.foveatedInterpolationCallback,P.lerp),this.foveatedTimeDelay=y(e.foveatedTimeDelay,.2),this.dynamicScreenSpaceErrorDensity=.00278,this.dynamicScreenSpaceErrorFactor=4,this.dynamicScreenSpaceErrorHeightFalloff=.25,this._dynamicScreenSpaceErrorComputedDensity=0,this.shadows=y(e.shadows,yn.ENABLED),this.show=y(e.show,!0),this.colorBlendMode=xl.HIGHLIGHT,this.colorBlendAmount=.5,this._pointCloudShading=new $h(e.pointCloudShading),this._pointCloudEyeDomeLighting=new Np,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,this.clippingPlanes=e.clippingPlanes,u(e.imageBasedLighting)?(this._imageBasedLighting=e.imageBasedLighting,this._shouldDestroyImageBasedLighting=!1):(this._imageBasedLighting=new mx,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,kc.NONE),this._projectTo2D=y(e.projectTo2D,!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&&Dt("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(Ir.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")}},properties:{get:function(){return this._properties}},tilesLoaded:{get:function(){return this._tilesLoaded}},resource:{get:function(){return this._resource}},basePath:{get:function(){return Qr("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&&!u(this._classificationType)&&!this._disableSkipLevelOfDetail&&!this._allTilesAdditive}},metadataExtension:{get:function(){return this._metadataExtension}},metadata:{get:function(){if(u(this._metadataExtension))return this._metadataExtension.tileset}},schema:{get:function(){if(u(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 u(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,qae(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}}});Ir.fromIonAssetId=async function(e,t){let n=await ru.fromAssetId(e);return Ir.fromUrl(n,t)};Ir.fromUrl=async function(e,t){t=y(t,y.EMPTY_OBJECT);let n=ve.createIfNeeded(e),i;n.extension==="json"?i=n.getBaseUri(!0):n.isDataUri&&(i="");let o=await Ir.loadJson(n),r=await nWe(n,o),s=new Ir(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,qae(s);let c=u(o.asset.gltfUpAxis)?Po.fromName(o.asset.gltfUpAxis):Po.Y,l=y(t.modelUpAxis,c),f=y(t.modelForwardAxis,Po.X);s._properties=o.properties,s._extensionsUsed=o.extensionsUsed,s._extensions=o.extensions,s._modelUpAxis=l,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 u(g)&&g.height>li._defaultMinTerrainHeight&&(s._initialClippingPlanesOriginMatrix=Rt.eastNorthUpToFixedFrame(p)),s._clippingPlanesOriginMatrix=F.clone(s._initialClippingPlanesOriginMatrix),s};Ir.loadJson=function(e){return ve.createIfNeeded(e).fetchJson()};Ir.prototype.makeStyleDirty=function(){this._styleEngine.makeDirty()};Ir.prototype.loadTileset=function(e,t,n){let i=t.asset;if(!u(i))throw new ue("Tileset must have an asset property.");if(i.version!=="0.0"&&i.version!=="1.0"&&i.version!=="1.1")throw new ue("The tileset must be 3D Tiles version 0.0, 1.0, or 1.1");u(t.extensionsRequired)&&Ir.checkSupportedExtensions(t.extensionsRequired);let o=this._statistics,r=i.tilesetVersion;u(r)&&(this._basePath+=`?v=${r}`,e=e.clone(),e.setQueryParameters({v:r}));let s=Uae(this,e,t.root,n);u(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 l=c._header.children;if(u(l))for(let f=0;f<l.length;++f){let d=l[f],p=Uae(this,e,d,c);c.children.push(p),p._depth=c._depth+1,a.push(p)}this._cullWithChildrenBounds&&GR.checkChildrenWithinParent(c)}return s};function Uae(e,t,n,i){if(!(u(n.implicitTiling)||ri(n,"3DTILES_implicit_tiling")))return new Cf(e,t,n,i);let r=e.schema,s=new ub(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 Cf(e,t,f,i);return d.implicitTileset=s,d.implicitCoordinates=a,d}async function nWe(e,t){let n=ri(t,"3DTILES_metadata")?t.extensions["3DTILES_metadata"]:t,i;if(u(n.schemaUri))e=e.getDerivedResource({url:n.schemaUri}),i=Hi.getSchemaLoader({resource:e});else if(u(n.schema))i=Hi.getSchemaLoader({schema:n.schema});else return;await i.load();let o=new cb({schema:i.schema,metadataJson:n});return Hi.unload(i),o}var Vae=new h,iWe=new fe,oWe=new F,rWe=new h,sWe=new h,aWe=new h;function cWe(e,t){let n,i,o,r,s,a=t.camera,c=e._root,l=c.contentBoundingVolume;if(l instanceof bf)n=h.normalize(a.positionWC,Vae),i=a.directionWC,o=a.positionCartographic.height,r=l.minimumHeight,s=l.maximumHeight;else{let x=F.inverseTransformation(c.computedTransform,oWe),b=t.mapProjection.ellipsoid,T=l.boundingVolume,A=F.multiplyByPoint(x,T.center,rWe);if(h.magnitude(A)>b.minimumRadius){let C=fe.fromCartesian(A,b,iWe);n=h.normalize(a.positionWC,Vae),i=a.directionWC,o=a.positionCartographic.height,r=0,s=C.height*2}else{let C=F.multiplyByPoint(x,a.positionWC,sWe);if(n=h.UNIT_Z,i=F.multiplyByPointAsVector(x,a.directionWC,aWe),i=h.normalize(i,i),o=C.z,l instanceof Af){let S=c._header.boundingVolume.box[11];r=A.z-S,s=A.z+S}else if(l instanceof o_){let S=T.radius;r=A.z-S,s=A.z+S}}}let f=e.dynamicScreenSpaceErrorHeightFalloff,d=r+(s-r)*f,p=s,g=P.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 lWe(e,t){if(t.hasEmptyContent)return;let{statistics:n}=e,i=t.contentExpired,o=t.requestContent();u(o)&&(o.then(r=>{!u(r)||t.isDestroyed()||e.isDestroyed()||(e._processingQueue.push(t),++n.numberOfTilesProcessing)}).catch(r=>{Gae(r,e,t)}),i&&(t.hasTilesetContent||t.hasImplicitContent?xWe(e,t):(n.decrementLoadCounts(t.content),--n.numberOfTilesWithContentReady)),e._requestedTilesInFlight.push(t))}function Hae(e,t){return e._priority-t._priority}Ir.prototype.postPassesUpdate=function(e){u(this._root)&&(uWe(this,e),TWe(this,e),this._cache.unloadTiles(this,jae),this._styleApplied&&this._styleEngine.resetDirty(),this._styleApplied=!1)};Ir.prototype.prePassesUpdate=function(e){if(!u(this._root))return;hWe(this,e);let t=this._clippingPlanes;this._clippingPlanesOriginMatrixDirty=!0,u(t)&&t.enabled&&t.update(e),u(this._loadTimestamp)||(this._loadTimestamp=J.clone(e.time)),this._timeSinceLoad=Math.max(J.secondsDifference(e.time,this._loadTimestamp)*1e3,0),this.dynamicScreenSpaceError&&cWe(this,e),e.newFrame&&this._cache.reset()};function uWe(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 fWe(e){let t=e._requestedTiles;t.sort(Hae);for(let n=0;n<t.length;++n)lWe(e,t[n])}function Gae(e,t,n){if(t.isDestroyed())return;let i;n.isDestroyed()||(i=n._contentResource.url);let o=u(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 dWe(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}function hWe(e,t){dWe(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 l=n[c];try{l.process(e,t),l.contentReady&&(--r.numberOfTilesProcessing,e.tileLoad.raiseEvent(l))}catch(f){--r.numberOfTilesProcessing,Gae(f,e,l)}}e.totalMemoryUsageInBytes<i?pWe(e):a&&n.length>0&&mWe(e)}function mWe(e){e._memoryAdjustedScreenSpaceError*=1.02;let t=e._processingQueue;for(let n=0;n<t.length;++n)t[n].updatePriority();t.sort(Hae)}function pWe(e){e._memoryAdjustedScreenSpaceError=Math.max(e.memoryAdjustedScreenSpaceError/1.02,e.maximumScreenSpaceError)}var qU=new h,_We={maximumFractionDigits:3};function zae(e){let t=e/1048576;return t<1?t.toLocaleString(void 0,_We):Math.round(t).toLocaleString()}function H9(e){let{halfAxes:t,radius:n,center:i}=e.boundingVolume.boundingVolume,o=h.clone(i,qU);if(u(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(u(n)){let r=h.normalize(i,qU);r=h.multiplyByScalar(r,.75*n,qU),o=h.add(r,i,qU)}return o}function G9(e,t,n){let i="",o=0;if(t.debugShowGeometricError&&(i+=`
  7223. Geometric error: ${e.geometricError}`,o++),t.debugShowRenderingStatistics&&(i+=`
  7224. Commands: ${e.commandsLength}`,o++,e.content.pointsLength>0&&(i+=`
  7225. Points: ${e.content.pointsLength}`,o++),e.content.trianglesLength>0&&(i+=`
  7226. Triangles: ${e.content.trianglesLength}`,o++),i+=`
  7227. Features: ${e.content.featuresLength}`,o++),t.debugShowMemoryUsage&&(i+=`
  7228. Texture Memory: ${zae(e.content.texturesByteLength)}`,i+=`
  7229. Geometry Memory: ${zae(e.content.geometryByteLength)}`,o+=2),t.debugShowUrl)if(e.hasMultipleContents){i+=`
  7230. Urls:`;let s=e.content.innerContentUrls;for(let a=0;a<s.length;a++)i+=`
  7231. - ${s[a]}`;o+=s.length}else i+=`
  7232. 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 gWe(e,t){let n=e._selectedTiles,i=n.length,o=e._emptyTiles,r=o.length;if(e._tileDebugLabels.removeAll(),e.debugPickedTileLabelOnly){if(u(e.debugPickedTile)){let s=u(e.debugPickPosition)?e.debugPickPosition:H9(e.debugPickedTile),a=G9(e.debugPickedTile,e,s);a.pixelOffset=new z(15,-15)}}else{for(let s=0;s<i;++s){let a=n[s];G9(a,e,H9(a))}for(let s=0;s<r;++s){let a=o[s];(a.hasTilesetContent||a.hasImplicitContent)&&G9(a,e,H9(a))}}e._tileDebugLabels.update(t)}function yWe(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&&(u(e._stencilClearCommand)||(e._stencilClearCommand=new ti({stencil:0,pass:Ee.CESIUM_3D_TILE,renderState:ke.fromCache({stencilMask:Lt.SKIP_LOD_MASK})})),i.push(e._stencilClearCommand));let{statistics:c,tileVisible:l}=e,f=n.isRender,d=i.length;for(let m=0;m<s.length;++m){let x=s[m];f&&l.raiseEvent(x),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?(u(e._tileDebugLabels)||(e._tileDebugLabels=new im),gWe(e,t)):e._tileDebugLabels=e._tileDebugLabels&&e._tileDebugLabels.destroy())}var Wae=[];function xWe(e,t){let n=t,i=Wae;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&&(bWe(e,t),--e._statistics.numberOfTilesTotal)}n.children=[]}function jae(e,t){e.tileUnload.raiseEvent(t),e._statistics.decrementLoadCounts(t.content),--e._statistics.numberOfTilesWithContentReady,t.unloadContent()}function bWe(e,t){e._cache.unloadTile(e,t,jae),t.destroy()}Ir.prototype.trimLoadedTiles=function(){this._cache.trim()};function TWe(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 AWe(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 CWe(e,t){t.frameNumber===e._updatedModelMatrixFrame&&u(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 EWe(e,t,n,i){if(t.mode===te.MORPHING||!u(e._root))return!1;let o=e._statistics;o.clear(),++e._updatedVisibilityFrame,AWe(e),CWe(e,t),e._cullRequestsWhileMoving=e.cullRequestsWhileMoving&&!e._modelMatrixChanged;let r=e.getTraversal(i).selectTiles(e,t);if(i.requestTiles&&fWe(e),yWe(e,t,i),a_.clone(o,n),i.isRender){let s=e._credits;if(u(s)&&o.selected!==0)for(let a=0;a<s.length;++a){let c=s[a];t.creditDisplay.addCreditToNextFrame(c)}}return r}function qae(e){let t=e._credits;u(t)||(t=[]),t.length=0,u(e.resource.credits)&&e.resource.credits.forEach(i=>{t.push(bt.clone(i))});let n=e.asset.extras;if(u(n)&&u(n.cesium)&&u(n.cesium.credits)){let i=n.cesium.credits;for(let o=0;o<i.length;++o){let r=i[o];t.push(new bt(r.html))}}t.forEach(i=>i.showOnScreen=i.showOnScreen||e._showCreditsOnScreen),e._credits=t}Ir.prototype.getTraversal=function(e){let{pass:t}=e;return t===Mo.MOST_DETAILED_PRELOAD||t===Mo.MOST_DETAILED_PICK?QR:this.isSkippingLevelOfDetail?oM:tM};Ir.prototype.update=function(e){this.updateForPass(e,e.tilesetPassState)};Ir.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),l=c.length;e.commandList=c,e.camera=y(t.camera,o),e.cullingVolume=y(t.cullingVolume,r);let f=this._statisticsPerPass[n];(this.show||a)&&(this._pass=n,t.ready=EWe(this,e,f,s)),a&&(c.length=l),e.commandList=i,e.camera=o,e.cullingVolume=r};Ir.prototype.hasExtension=function(e){return u(this._extensionsUsed)?this._extensionsUsed.indexOf(e)>-1:!1};Ir.prototype.isDestroyed=function(){return!1};Ir.prototype.destroy=function(){if(this._tileDebugLabels=this._tileDebugLabels&&this._tileDebugLabels.destroy(),this._clippingPlanes=this._clippingPlanes&&this._clippingPlanes.destroy(),u(this._root)){let e=Wae;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,le(this)};Ir.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};Ir.checkSupportedExtensions=function(e){for(let t=0;t<e.length;t++)if(!Ir.supportedExtensions[e[t]])throw new ue(`Unsupported 3D Tiles Extension: ${e[t]}`)};var Zs=Ir;var SWe=new F;function ly(e,t){t.collectionChanged.addEventListener(ly.prototype._onCollectionChanged,this),this._scene=e,this._primitives=e.primitives,this._entityCollection=t,this._tilesetHash={},this._entitiesToVisualize=new xt,this._onCollectionChanged(t,t.values,[],[])}ly.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,l=n[s.id],f=s.isShowing&&s.isAvailable(e)&&q.getValueOrDefault(a._show,e,!0),d;f&&(d=s.computeModelMatrix(e,SWe),c=ve.createIfNeeded(q.getValueOrUndefined(a._uri,e)));let p=u(l)?l.tilesetPrimitive:void 0;if(!f){u(p)&&(p.show=!1);continue}(!u(l)||c.url!==l.url)&&(u(p)&&i.removeAndDestroy(p),delete n[s.id],wWe(c,n,s,i)),u(p)&&(p.show=!0,u(d)&&(p.modelMatrix=d),p.maximumScreenSpaceError=q.getValueOrDefault(a.maximumScreenSpaceError,e,p.maximumScreenSpaceError))}return!0};ly.prototype.isDestroyed=function(){return!1};ly.prototype.destroy=function(){this._entityCollection.collectionChanged.removeEventListener(ly.prototype._onCollectionChanged,this);let e=this._entitiesToVisualize.values,t=this._tilesetHash,n=this._primitives;for(let i=e.length-1;i>-1;i--)W9(this,e[i],t,n);return le(this)};ly.prototype.getBoundingSphere=function(e,t){let n=this._tilesetHash[e.id];if(!u(n)||n.loadFail)return ot.FAILED;let i=n.tilesetPrimitive;return u(i)?i.show?(se.clone(i.boundingSphere,t),ot.DONE):ot.FAILED:ot.PENDING};ly.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],u(r._tileset)&&s.set(r.id,r);for(o=i.length-1;o>-1;o--)r=i[o],u(r._tileset)?s.set(r.id,r):(W9(this,r,a,c),s.remove(r.id));for(o=n.length-1;o>-1;o--)r=n[o],W9(this,r,a,c),s.remove(r.id)};function W9(e,t,n,i){let o=n[t.id];u(o)&&(u(o.tilesetPrimitive)&&i.removeAndDestroy(o.tilesetPrimitive),delete n[t.id])}async function wWe(e,t,n,i){t[n.id]={url:e.url,loadFail:!1};try{let o=await Zs.fromUrl(e);if(o.id=n,i.add(o),!u(t[n.id]))return;t[n.id].tilesetPrimitive=o}catch(o){console.error(o),t[n.id].loadFail=!0}}var rM=ly;var vWe=H.WHITE,DWe=H.BLACK,IWe=new z(2,2);function vC(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(vC.prototype,{isConstant:{get:function(){return q.isConstant(this._evenColor)&&q.isConstant(this._oddColor)&&q.isConstant(this._repeat)}},definitionChanged:{get:function(){return this._definitionChanged}},evenColor:ae("evenColor"),oddColor:ae("oddColor"),repeat:ae("repeat")});vC.prototype.getType=function(e){return"Checkerboard"};vC.prototype.getValue=function(e,t){return u(t)||(t={}),t.lightColor=q.getValueOrClonedDefault(this._evenColor,e,vWe,t.lightColor),t.darkColor=q.getValueOrClonedDefault(this._oddColor,e,DWe,t.darkColor),t.repeat=q.getValueOrDefault(this._repeat,e,IWe),t};vC.prototype.equals=function(e){return this===e||e instanceof vC&&q.equals(this._evenColor,e._evenColor)&&q.equals(this._oddColor,e._oddColor)&&q.equals(this._repeat,e._repeat)};var DC=vC;var Yae={id:void 0};function sM(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 tc(e){this._owner=e,this._entities=new xt,this._addedEntities=new xt,this._removedEntities=new xt,this._changedEntities=new xt,this._suspendCount=0,this._collectionChanged=new pe,this._id=Wn(),this._show=!0,this._firing=!1,this._refire=!1}tc.prototype.suspendEvents=function(){this._suspendCount++};tc.prototype.resumeEvents=function(){this._suspendCount--,sM(this)};Object.defineProperties(tc.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}}});tc.prototype.computeAvailability=function(){let e=Ve.MAXIMUM_VALUE,t=Ve.MINIMUM_VALUE,n=this._entities.values;for(let i=0,o=n.length;i<o;i++){let s=n[i].availability;if(u(s)){let a=s.start,c=s.stop;J.lessThan(a,e)&&!a.equals(Ve.MINIMUM_VALUE)&&(e=a),J.greaterThan(c,t)&&!c.equals(Ve.MAXIMUM_VALUE)&&(t=c)}}return Ve.MAXIMUM_VALUE.equals(e)&&(e=Ve.MINIMUM_VALUE),Ve.MINIMUM_VALUE.equals(t)&&(t=Ve.MAXIMUM_VALUE),new bn({start:e,stop:t})};tc.prototype.add=function(e){e instanceof Yo||(e=new Yo(e));let t=e.id,n=this._entities;if(n.contains(t))throw new ue(`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(tc.prototype._onEntityDefinitionChanged,this),sM(this),e};tc.prototype.remove=function(e){return u(e)?this.removeById(e.id):!1};tc.prototype.contains=function(e){return this._entities.get(e.id)===e};tc.prototype.removeById=function(e){if(!u(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(tc.prototype._onEntityDefinitionChanged,this),sM(this),!0):!1};tc.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);u(c)||(s.definitionChanged.removeEventListener(tc.prototype._onEntityDefinitionChanged,this),o.set(a,s))}e.removeAll(),i.removeAll(),this._changedEntities.removeAll(),sM(this)};tc.prototype.getById=function(e){return this._entities.get(e)};tc.prototype.getOrCreateEntity=function(e){let t=this._entities.get(e);return u(t)||(Yae.id=e,t=new Yo(Yae),this.add(t)),t};tc.prototype._onEntityDefinitionChanged=function(e){let t=e.id;this._addedEntities.contains(t)||this._changedEntities.set(t,e),sM(this)};var Ms=tc;var YU={id:void 0},IC=new Array(2);function j9(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 Xae(e,t,n,i){IC[0]=n,IC[1]=i.id,t[JSON.stringify(IC)]=i.definitionChanged.addEventListener(Pr.prototype._onDefinitionChanged,e)}function Kae(e,t,n,i){IC[0]=n,IC[1]=i.id;let o=JSON.stringify(IC);t[o](),t[o]=void 0}function uy(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,l,f=e._composite,d=new Ms(e),p=e._eventHash,g;for(r=0;r<o;r++)for(l=i[r],l.collectionChanged.removeEventListener(Pr.prototype._onCollectionChanged,e),a=l.values,g=l.id,c=a.length-1;c>-1;c--)s=a[c],Kae(e,p,g,s);for(r=n-1;r>=0;r--)for(l=t[r],l.collectionChanged.addEventListener(Pr.prototype._onCollectionChanged,e),a=l.values,g=l.id,c=a.length-1;c>-1;c--){s=a[c],Xae(e,p,g,s);let x=d.getById(s.id);u(x)||(x=f.getById(s.id),u(x)?j9(x):(YU.id=s.id,x=new Yo(YU)),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 Ms(this),this._suspendCount=0,this._collections=u(e)?e.slice():[],this._collectionsCopy=[],this._id=Wn(),this._eventHash={},uy(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){u(t)?this._collections.splice(t,0,e):(t=this._collections.length,this._collections.push(e)),uy(this)};Pr.prototype.removeCollection=function(e){let t=this._collections.indexOf(e);return t!==-1?(this._collections.splice(t,1),uy(this),!0):!1};Pr.prototype.removeAllCollections=function(){this._collections.length=0,uy(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 XU(e,t){return e.indexOf(t)}function Zae(e,t,n){let i=e._collections;if(t=P.clamp(t,0,i.length-1),n=P.clamp(n,0,i.length-1),t===n)return;let o=i[t];i[t]=i[n],i[n]=o,uy(e)}Pr.prototype.raiseCollection=function(e){let t=XU(this._collections,e);Zae(this,t,t+1)};Pr.prototype.lowerCollection=function(e){let t=XU(this._collections,e);Zae(this,t,t-1)};Pr.prototype.raiseCollectionToTop=function(e){let t=XU(this._collections,e);t!==this._collections.length-1&&(this._collections.splice(t,1),this._collections.push(e),uy(this))};Pr.prototype.lowerCollectionToBottom=function(e){let t=XU(this._collections,e);t!==0&&(this._collections.splice(t,1),this._collections.splice(0,0,e),uy(this))};Pr.prototype.suspendEvents=function(){this._suspendCount++,this._composite.suspendEvents()};Pr.prototype.resumeEvents=function(){this._suspendCount--,this._shouldRecomposite&&this._suspendCount===0&&(uy(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,l,f=n.length,d=this._eventHash,p=e.id;for(s=0;s<f;s++){let m=n[s];Kae(this,d,p,m);let x=m.id;for(a=o-1;a>=0;a--)c=i[a].getById(x),u(c)&&(u(l)||(l=r.getById(x),j9(l)),l.merge(c));u(l)||r.removeById(x),l=void 0}let g=t.length;for(s=0;s<g;s++){let m=t[s];Xae(this,d,p,m);let x=m.id;for(a=o-1;a>=0;a--)c=i[a].getById(x),u(c)&&(u(l)||(l=r.getById(x),u(l)?j9(l):(YU.id=x,l=new Yo(YU),r.add(l))),l.merge(c));l=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),l=c[t],f=!u(l),d=!0;for(let p=s-1;p>=0;p--){let g=o[p].getById(e.id);if(u(g)){let m=g[t];if(u(m)){if(d)if(d=!1,u(m.merge)&&u(m.clone))l=m.clone(l);else{l=m;break}l.merge(m)}}}f&&c.propertyNames.indexOf(t)===-1&&c.addProperty(t),c[t]=l};var q9=Pr;function Y9(){this._removalFunctions=[]}Y9.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)}};Y9.prototype.removeAll=function(){let e=this._removalFunctions;for(let t=0,n=e.length;t<n;++t)e[t]();e.length=0};var Or=Y9;function Z9(e,t){return J.compare(e.start,t.start)}function Rr(e){if(this._intervals=[],this._changedEvent=new pe,u(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(!bn.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 X9=new bn;Rr.prototype.indexOf=function(e){let t=this._intervals;X9.start=e,X9.stop=e;let n=Do(t,X9,Z9);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&&bn.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((!u(t)||c.start.equals(t))&&(!u(n)||c.stop.equals(n))&&(!u(i)||c.isStartIncluded===i)&&(!u(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,Z9);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))&&((u(t)?t(n[i-1].data,e.data):n[i-1].data===e.data)?(J.greaterThan(e.stop,n[i-1].stop)?e=new bn({start:n[i-1].start,stop:e.stop,isStartIncluded:n[i-1].isStartIncluded,isStopIncluded:e.isStopIncluded,data:e.data}):e=new bn({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 bn({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 bn({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(u(t)?t(n[i].data,e.data):n[i].data===e.data)e=new bn({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 bn({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,Z9);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 bn({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 bn({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 bn({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 bn({start:t[n].start,stop:t[n].stop,isStartIncluded:!0,isStopIncluded:t[n].isStopIncluded,data:t[n].data})):t[n]=new bn({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 bn({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],l=a[r];if(J.lessThan(c.stop,l.start))++o;else if(J.lessThan(l.stop,c.start))++r;else{if(u(n)||u(t)&&t(c.data,l.data)||!u(t)&&l.data===c.data){let f=bn.intersect(c,l,new bn,n);f.isEmpty||i.addInterval(f,t)}J.lessThan(c.stop,l.stop)||c.stop.equals(l.stop)&&!c.isStopIncluded&&l.isStopIncluded?++o:++r}}return i};Rr.fromJulianDateArray=function(e,t){u(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),l,f=0;a&&(++f,l=new bn({start:Ve.MINIMUM_VALUE,stop:n[0],isStartIncluded:!0,isStopIncluded:!r}),l.data=u(o)?o(l,t.length):t.length,t.addInterval(l));for(let d=0;d<i-1;++d){let p=n[d],g=n[d+1];l=new bn({start:p,stop:g,isStartIncluded:t.length===f?r:!0,isStopIncluded:d===i-2?s:!1}),l.data=u(o)?o(l,t.length):t.length,t.addInterval(l),p=g}return c&&(l=new bn({start:n[i-1],stop:Ve.MAXIMUM_VALUE,isStartIncluded:!s,isStopIncluded:!0}),l.data=u(o)?o(l,t.length):t.length,t.addInterval(l)),t};var nc=new Qm,aM=[0,31,28,31,30,31,30,31,31,30,31,30,31];function K9(e,t,n){u(n)||(n=new J),J.toGregorianDate(e,nc);let i=nc.millisecond+t.millisecond,o=nc.second+t.second,r=nc.minute+t.minute,s=nc.hour+t.hour,a=nc.day+t.day,c=nc.month+t.month,l=nc.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),aM[2]=Jm(l)?29:28;a>aM[c]||c>=13;)a>aM[c]&&(a-=aM[c],++c),c>=13&&(--c,l+=Math.floor(c/12),c=c%12,++c),aM[2]=Jm(l)?29:28;return nc.millisecond=i,nc.second=o,nc.minute=r,nc.hour=s,nc.day=a,nc.month=c,nc.year=l,J.fromGregorianDate(nc,n)}var PWe=new J,OWe=/P(?:([\d.,]+)Y)?(?:([\d.,]+)M)?(?:([\d.,]+)W)?(?:([\d.,]+)D)?(?:T(?:([\d.,]+)H)?(?:([\d.,]+)M)?(?:([\d.,]+)S)?)?/;function $ae(e,t){if(!u(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(OWe);if(!u(n))return!1;if(u(n[1])&&(t.year=Number(n[1].replace(",","."))),u(n[2])&&(t.month=Number(n[2].replace(",","."))),u(n[3])&&(t.day=Number(n[3].replace(",","."))*7),u(n[4])&&(t.day+=Number(n[4].replace(",","."))),u(n[5])&&(t.hour=Number(n[5].replace(",","."))),u(n[6])&&(t.minute=Number(n[6].replace(",","."))),u(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,PWe),t);return t.year||t.month||t.day||t.hour||t.minute||t.second||t.millisecond}var cM=new Qm;Rr.fromIso8601=function(e,t){let n=e.iso8601.split("/"),i=J.fromIso8601(n[0]),o=J.fromIso8601(n[1]),r=[];if(!$ae(n[2],cM))r.push(i,o);else{let s=J.clone(i);for(r.push(s);J.compare(s,o)<0;)s=K9(s,cM),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 l=0;l<c;++l)($ae(i[l],cM)||l===0)&&(o&&u(a)?s=K9(a,cM):s=K9(n,cM),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 Mr=Rr;function RWe(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);u(c.data)&&r.indexOf(c.data)===-1&&t.add(c.data.definitionChanged,o)}}function db(){this._eventHelper=new Or,this._definitionChanged=new pe,this._intervals=new Mr,this._intervals.changedEvent.addEventListener(db.prototype._intervalsChanged,this)}Object.defineProperties(db.prototype,{isConstant:{get:function(){return this._intervals.isEmpty}},definitionChanged:{get:function(){return this._definitionChanged}},intervals:{get:function(){return this._intervals}}});db.prototype.getValue=function(e,t){let n=this._intervals.findDataForIntervalContainingDate(e);if(u(n))return n.getValue(e,t)};db.prototype.equals=function(e){return this===e||e instanceof db&&this._intervals.equals(e._intervals,q.equals)};db.prototype._intervalsChanged=function(){RWe(this,this._eventHelper,this._definitionChanged,this._intervals),this._definitionChanged.raiseEvent(this)};var ic=db;function fy(){this._definitionChanged=new pe,this._composite=new ic,this._composite.definitionChanged.addEventListener(fy.prototype._raiseDefinitionChanged,this)}Object.defineProperties(fy.prototype,{isConstant:{get:function(){return this._composite.isConstant}},definitionChanged:{get:function(){return this._definitionChanged}},intervals:{get:function(){return this._composite._intervals}}});fy.prototype.getType=function(e){let t=this._composite._intervals.findDataForIntervalContainingDate(e);if(u(t))return t.getType(e)};fy.prototype.getValue=function(e,t){let n=this._composite._intervals.findDataForIntervalContainingDate(e);if(u(n))return n.getValue(e,t)};fy.prototype.equals=function(e){return this===e||e instanceof fy&&this._composite.equals(e._composite,q.equals)};fy.prototype._raiseDefinitionChanged=function(){this._definitionChanged.raiseEvent(this)};var PC=fy;function dy(e){this._referenceFrame=y(e,no.FIXED),this._definitionChanged=new pe,this._composite=new ic,this._composite.definitionChanged.addEventListener(dy.prototype._raiseDefinitionChanged,this)}Object.defineProperties(dy.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}}});dy.prototype.getValue=function(e,t){return this.getValueInReferenceFrame(e,no.FIXED,t)};dy.prototype.getValueInReferenceFrame=function(e,t,n){let i=this._composite._intervals.findDataForIntervalContainingDate(e);if(u(i))return i.getValueInReferenceFrame(e,t,n)};dy.prototype.equals=function(e){return this===e||e instanceof dy&&this._referenceFrame===e._referenceFrame&&this._composite.equals(e._composite,q.equals)};dy.prototype._raiseDefinitionChanged=function(){this._definitionChanged.raiseEvent(this)};var $s=dy;var MWe={ROUNDED:0,MITERED:1,BEVELED:2},Pi=Object.freeze(MWe);var Qs=[new h,new h],LWe=new h,NWe=new h,FWe=new h,BWe=new h,kWe=new h,UWe=new h,VWe=new h,zWe=new h,HWe=new h,OC=new h,KU=new h,lM={},$9=new fe;function GWe(e,t){let n=new Array(e.length);for(let i=0;i<e.length;i++){let o=e[i];$9=t.cartesianToCartographic(o,$9),n[i]=$9.height,e[i]=t.scaleToGeodeticSurface(o,o)}return n}function Q9(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),l;if(t===n){for(l=0;l<a;l++)c[l]=t;return c.push(n),c}let d=(n-t)/a;for(l=1;l<a;l++){let p=t+l*d;c[l]=p}return c[0]=t,c.push(n),c}var ZU=new h,$U=new h;function WWe(e,t,n,i){let o=new Sr(n,i),r=o.projectPointOntoPlane(h.add(n,e,ZU),ZU),s=o.projectPointOntoPlane(h.add(n,t,$U),$U),a=z.angleBetween(r,s);return s.x*r.y-s.y*r.x>=0?-a:a}var jWe=new h(-1,0,0),hb=new F,qWe=new F,J9=new Q,YWe=Q.IDENTITY.clone(),XWe=new h,KWe=new oe,Qae=new h;function u_(e,t,n,i,o,r,s,a){let c=XWe,l=KWe;hb=Rt.eastNorthUpToFixedFrame(e,o,hb),c=F.multiplyByPointAsVector(hb,jWe,c),c=h.normalize(c,c);let f=WWe(c,t,e,o);J9=Q.fromRotationZ(f,J9),Qae.z=r,hb=F.multiplyTransformation(hb,F.fromRotationTranslation(J9,Qae,qWe),hb);let d=YWe;d[0]=s;for(let p=0;p<a;p++)for(let g=0;g<n.length;g+=3)l=h.fromArray(n,g,l),l=Q.multiplyByVector(d,l,l),l=F.multiplyByPoint(hb,l,l),i.push(l.x,l.y,l.z);return i}var ZWe=new h;function eW(e,t,n,i,o,r,s){for(let a=0;a<e.length;a+=3){let c=h.fromArray(e,a,ZWe);i=u_(c,t,n,i,o,r[a/3],s,1)}return i}function $We(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 l=a.x-r,f=a.y-s;i[o++]=l,i[o++]=0,i[o++]=f,i[o++]=l,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 Jae(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 ece=new Le,tce=new h,nce=new Q;function ice(e,t,n,i,o,r,s,a,c,l){let f=h.angleBetween(h.subtract(t,e,OC),h.subtract(n,e,KU)),d=i===Pi.BEVELED?0:Math.ceil(f/P.toRadians(5)),p;o?p=Q.fromQuaternion(Le.fromAxisAngle(h.negate(e,OC),f/(d+1),ece),nce):p=Q.fromQuaternion(Le.fromAxisAngle(e,f/(d+1),ece),nce);let g,m;if(t=h.clone(t,tce),d>0){let x=l?2:1;for(let b=0;b<d;b++)t=Q.multiplyByVector(p,t,t),g=h.subtract(t,e,OC),g=h.normalize(g,g),o||(g=h.negate(g,g)),m=r.scaleToGeodeticSurface(t,KU),s=u_(m,g,a,s,r,c,1,x)}else g=h.subtract(t,e,OC),g=h.normalize(g,g),o||(g=h.negate(g,g)),m=r.scaleToGeodeticSurface(t,KU),s=u_(m,g,a,s,r,c,1,1),n=h.clone(n,tce),g=h.subtract(n,e,OC),g=h.normalize(g,g),o||(g=h.negate(g,g)),m=r.scaleToGeodeticSurface(n,KU),s=u_(m,g,a,s,r,c,1,1);return s}lM.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};lM.angleIsGreaterThanPi=function(e,t,n,i){let o=new Sr(n,i),r=o.projectPointOntoPlane(h.add(n,e,ZU),ZU),s=o.projectPointOntoPlane(h.add(n,t,$U),$U);return s.x*r.y-s.y*r.x>=0};var QWe=new h,JWe=new h;lM.computePositions=function(e,t,n,i,o){let r=i._ellipsoid,s=GWe(e,r),a=i._granularity,c=i._cornerType,l=o?$We(t,n):Jae(t,n),f=o?Jae(t,n):void 0,d=n.height/2,p=n.width/2,g=e.length,m=[],x=o?[]:void 0,b=LWe,T=NWe,A=FWe,C=BWe,S=kWe,w=UWe,D=VWe,O=zWe,R=HWe,L=e[0],N=e[1];C=r.geodeticSurfaceNormal(L,C),b=h.subtract(N,L,b),b=h.normalize(b,b),O=h.cross(C,b,O),O=h.normalize(O,O);let _=s[0],E=s[1];o&&(x=u_(L,O,f,x,r,_+d,1,1)),R=h.clone(L,R),L=N,T=h.negate(b,T);let v,I;for(let V=1;V<g-1;V++){let U=o?2:1;if(N=e[V+1],L.equals(N)){Dt("Positions are too close and are considered equivalent with rounding error.");continue}b=h.subtract(N,L,b),b=h.normalize(b,b),A=h.add(b,T,A),A=h.normalize(A,A),C=r.geodeticSurfaceNormal(L,C);let G=h.multiplyByScalar(C,h.dot(b,C),QWe);h.subtract(b,G,G),h.normalize(G,G);let k=h.multiplyByScalar(C,h.dot(T,C),JWe);if(h.subtract(T,k,k),h.normalize(k,k),!P.equalsEpsilon(Math.abs(h.dot(G,k)),1,P.EPSILON7)){A=h.cross(A,C,A),A=h.cross(C,A,A),A=h.normalize(A,A);let j=1/Math.max(.25,h.magnitude(h.cross(A,T,OC))),$=lM.angleIsGreaterThanPi(b,T,L,r);$?(S=h.add(L,h.multiplyByScalar(A,j*p,A),S),w=h.add(S,h.multiplyByScalar(O,p,w),w),Qs[0]=h.clone(R,Qs[0]),Qs[1]=h.clone(w,Qs[1]),v=Q9(Qs,_+d,E+d,a),I=Ii.generateArc({positions:Qs,granularity:a,ellipsoid:r}),m=eW(I,O,l,m,r,v,1),O=h.cross(C,b,O),O=h.normalize(O,O),D=h.add(S,h.multiplyByScalar(O,p,D),D),c===Pi.ROUNDED||c===Pi.BEVELED?ice(S,w,D,c,$,r,m,l,E+d,o):(A=h.negate(A,A),m=u_(L,A,l,m,r,E+d,j,U)),R=h.clone(D,R)):(S=h.add(L,h.multiplyByScalar(A,j*p,A),S),w=h.add(S,h.multiplyByScalar(O,-p,w),w),Qs[0]=h.clone(R,Qs[0]),Qs[1]=h.clone(w,Qs[1]),v=Q9(Qs,_+d,E+d,a),I=Ii.generateArc({positions:Qs,granularity:a,ellipsoid:r}),m=eW(I,O,l,m,r,v,1),O=h.cross(C,b,O),O=h.normalize(O,O),D=h.add(S,h.multiplyByScalar(O,-p,D),D),c===Pi.ROUNDED||c===Pi.BEVELED?ice(S,w,D,c,$,r,m,l,E+d,o):m=u_(L,A,l,m,r,E+d,j,U),R=h.clone(D,R)),T=h.negate(b,T)}else m=u_(R,O,l,m,r,_+d,1,1),R=L;_=E,E=s[V+1],L=N}Qs[0]=h.clone(R,Qs[0]),Qs[1]=h.clone(L,Qs[1]),v=Q9(Qs,_+d,E+d,a),I=Ii.generateArc({positions:Qs,granularity:a,ellipsoid:r}),m=eW(I,O,l,m,r,v,1),o&&(x=u_(L,O,f,x,r,E+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 Wd=lM;var nW={},RC=new h,cce=new h,eje=new h,oce=new h,Vc=[new h,new h],lce=new h,uce=new h,fce=new h,tje=new h,nje=new h,ije=new h,oje=new h,rje=new h,sje=new h,aje=new h,rce=new Le,sce=new Q;function QU(e,t,n,i,o){let r=h.angleBetween(h.subtract(t,e,RC),h.subtract(n,e,cce)),s=i===Pi.BEVELED?1:Math.ceil(r/P.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 l;o?l=Q.fromQuaternion(Le.fromAxisAngle(h.negate(e,RC),r/s,rce),sce):l=Q.fromQuaternion(Le.fromAxisAngle(e,r/s,rce),sce);let f=0;t=h.clone(t,RC);for(let d=0;d<s;d++)t=Q.multiplyByVector(l,t,t),c[f++]=t.x,c[f++]=t.y,c[f++]=t.z;return c}function cje(e){let t=lce,n=uce,i=fce,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=QU(t,n,i,Pi.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=QU(t,n,i,Pi.ROUNDED,!1);return[r,c]}function ace(e,t,n,i){let o=RC;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 tW(e,t,n,i){let o=new Array(e.length),r=new Array(e.length),s=h.multiplyByScalar(t,n,RC),a=h.negate(s,cce),c=0,l=e.length-1;for(let f=0;f<e.length;f+=3){let d=h.fromArray(e,f,eje),p=h.add(d,a,oce);o[c++]=p.x,o[c++]=p.y,o[c++]=p.z;let g=h.add(d,s,oce);r[l--]=g.z,r[l--]=g.y,r[l--]=g.x}return i.push(o,r),i}nW.addAttribute=function(e,t,n,i){let o=t.x,r=t.y,s=t.z;u(n)&&(e[n]=o,e[n+1]=r,e[n+2]=s),u(i)&&(e[i]=s,e[i-1]=r,e[i-2]=o)};var lje=new h,uje=new h;nW.computePositions=function(e){let t=e.granularity,n=e.positions,i=e.ellipsoid,o=e.width/2,r=e.cornerType,s=e.saveAttributes,a=lce,c=uce,l=fce,f=tje,d=nje,p=ije,g=oje,m=rje,x=sje,b=aje,T=[],A=s?[]:void 0,C=s?[]:void 0,S=n[0],w=n[1];c=h.normalize(h.subtract(w,S,c),c),a=i.geodeticSurfaceNormal(S,a),f=h.normalize(h.cross(a,c,f),f),s&&(A.push(f.x,f.y,f.z),C.push(a.x,a.y,a.z)),g=h.clone(S,g),S=w,l=h.negate(c,l);let D,O=[],R,L=n.length;for(R=1;R<L-1;R++){a=i.geodeticSurfaceNormal(S,a),w=n[R+1],c=h.normalize(h.subtract(w,S,c),c),d=h.normalize(h.add(c,l,d),d);let _=h.multiplyByScalar(a,h.dot(c,a),lje);h.subtract(c,_,_),h.normalize(_,_);let E=h.multiplyByScalar(a,h.dot(l,a),uje);if(h.subtract(l,E,E),h.normalize(E,E),!P.equalsEpsilon(Math.abs(h.dot(_,E)),1,P.EPSILON7)){d=h.cross(d,a,d),d=h.cross(a,d,d),d=h.normalize(d,d);let I=o/Math.max(.25,h.magnitude(h.cross(d,l,RC))),M=Wd.angleIsGreaterThanPi(c,l,S,i);d=h.multiplyByScalar(d,I,d),M?(m=h.add(S,d,m),b=h.add(m,h.multiplyByScalar(f,o,b),b),x=h.add(m,h.multiplyByScalar(f,o*2,x),x),Vc[0]=h.clone(g,Vc[0]),Vc[1]=h.clone(b,Vc[1]),D=Ii.generateArc({positions:Vc,granularity:t,ellipsoid:i}),T=tW(D,f,o,T),s&&(A.push(f.x,f.y,f.z),C.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===Pi.ROUNDED||r===Pi.BEVELED?O.push({leftPositions:QU(m,p,x,r,M)}):O.push({leftPositions:ace(S,h.negate(d,d),x,M)})):(x=h.add(S,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),Vc[0]=h.clone(g,Vc[0]),Vc[1]=h.clone(b,Vc[1]),D=Ii.generateArc({positions:Vc,granularity:t,ellipsoid:i}),T=tW(D,f,o,T),s&&(A.push(f.x,f.y,f.z),C.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===Pi.ROUNDED||r===Pi.BEVELED?O.push({rightPositions:QU(x,p,m,r,M)}):O.push({rightPositions:ace(S,d,m,M)})),l=h.negate(c,l)}S=w}a=i.geodeticSurfaceNormal(S,a),Vc[0]=h.clone(g,Vc[0]),Vc[1]=h.clone(S,Vc[1]),D=Ii.generateArc({positions:Vc,granularity:t,ellipsoid:i}),T=tW(D,f,o,T),s&&(A.push(f.x,f.y,f.z),C.push(a.x,a.y,a.z));let N;return r===Pi.ROUNDED&&(N=cje(T)),{positions:T,corners:O,lefts:A,normals:C,endPositions:N}};var Bi=nW;var mce=new h,pce=new h,JU=new h,eV=new h,fje=new h,_ce=new h,hy=new h,MC=new h;function gce(e,t){for(let n=0;n<e.length;n++)e[n]=t.scaleToGeodeticSurface(e[n],e[n]);return e}function jd(e,t,n,i,o,r){let s=e.normals,a=e.tangents,c=e.bitangents,l=h.normalize(h.cross(n,t,hy),hy);r.normal&&Bi.addAttribute(s,t,i,o),r.tangent&&Bi.addAttribute(a,l,i,o),r.bitangent&&Bi.addAttribute(c,n,i,o)}function yce(e,t,n){let i=e.positions,o=e.corners,r=e.endPositions,s=e.lefts,a=e.normals,c=new fn,l,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++){l=o[p];let Z=o[p].leftPositions;u(Z)?(m=Z.length,f+=m,g+=m):(m=o[p].rightPositions.length,d+=m,g+=m)}let x=u(r),b;x&&(b=r[0].length-3,f+=b,d+=b,b/=3,g+=b*6);let T=f+d,A=new Float64Array(T),C=t.normal?new Float32Array(T):void 0,S=t.tangent?new Float32Array(T):void 0,w=t.bitangent?new Float32Array(T):void 0,D={normals:C,tangents:S,bitangents:w},O=0,R=T-1,L,N,_,E,v=mce,I=pce,M,B,V=b/2,U=Fe.createTypedArray(T/3,g),G=0;if(x){B=JU,M=eV;let Z=r[0];for(v=h.fromArray(a,0,v),I=h.fromArray(s,0,I),p=0;p<V;p++)B=h.fromArray(Z,(V-1-p)*3,B),M=h.fromArray(Z,(V+p)*3,M),Bi.addAttribute(A,M,O),Bi.addAttribute(A,B,void 0,R),jd(D,v,I,O,R,t),N=O/3,E=N+1,L=(R-2)/3,_=L-1,U[G++]=L,U[G++]=N,U[G++]=_,U[G++]=_,U[G++]=N,U[G++]=E,O+=3,R-=3}let k=0,Y=0,j=i[k++],$=i[k++];A.set(j,O),A.set($,R-$.length+1),I=h.fromArray(s,Y,I);let W,K;for(m=$.length-3,p=0;p<m;p+=3)W=n.geodeticSurfaceNormal(h.fromArray(j,p,hy),hy),K=n.geodeticSurfaceNormal(h.fromArray($,m-p,MC),MC),v=h.normalize(h.add(W,K,v),v),jd(D,v,I,O,R,t),N=O/3,E=N+1,L=(R-2)/3,_=L-1,U[G++]=L,U[G++]=N,U[G++]=_,U[G++]=_,U[G++]=N,U[G++]=E,O+=3,R-=3;for(W=n.geodeticSurfaceNormal(h.fromArray(j,m,hy),hy),K=n.geodeticSurfaceNormal(h.fromArray($,m,MC),MC),v=h.normalize(h.add(W,K,v),v),Y+=3,p=0;p<o.length;p++){let Z;l=o[p];let me=l.leftPositions,xe=l.rightPositions,re,ye,ge=_ce,Ae=JU,De=eV;if(v=h.fromArray(a,Y,v),u(me)){for(jd(D,v,I,void 0,R,t),R-=3,re=E,ye=_,Z=0;Z<me.length/3;Z++)ge=h.fromArray(me,Z*3,ge),U[G++]=re,U[G++]=ye-Z-1,U[G++]=ye-Z,Bi.addAttribute(A,ge,void 0,R),Ae=h.fromArray(A,(ye-Z-1)*3,Ae),De=h.fromArray(A,re*3,De),I=h.normalize(h.subtract(Ae,De,I),I),jd(D,v,I,void 0,R,t),R-=3;ge=h.fromArray(A,re*3,ge),Ae=h.subtract(h.fromArray(A,ye*3,Ae),ge,Ae),De=h.subtract(h.fromArray(A,(ye-Z)*3,De),ge,De),I=h.normalize(h.add(Ae,De,I),I),jd(D,v,I,O,void 0,t),O+=3}else{for(jd(D,v,I,O,void 0,t),O+=3,re=_,ye=E,Z=0;Z<xe.length/3;Z++)ge=h.fromArray(xe,Z*3,ge),U[G++]=re,U[G++]=ye+Z,U[G++]=ye+Z+1,Bi.addAttribute(A,ge,O),Ae=h.fromArray(A,re*3,Ae),De=h.fromArray(A,(ye+Z)*3,De),I=h.normalize(h.subtract(Ae,De,I),I),jd(D,v,I,O,void 0,t),O+=3;ge=h.fromArray(A,re*3,ge),Ae=h.subtract(h.fromArray(A,(ye+Z)*3,Ae),ge,Ae),De=h.subtract(h.fromArray(A,ye*3,De),ge,De),I=h.normalize(h.negate(h.add(De,Ae,I),I),I),jd(D,v,I,void 0,R,t),R-=3}for(j=i[k++],$=i[k++],j.splice(0,3),$.splice($.length-3,3),A.set(j,O),A.set($,R-$.length+1),m=$.length-3,Y+=3,I=h.fromArray(s,Y,I),Z=0;Z<$.length;Z+=3)W=n.geodeticSurfaceNormal(h.fromArray(j,Z,hy),hy),K=n.geodeticSurfaceNormal(h.fromArray($,m-Z,MC),MC),v=h.normalize(h.add(W,K,v),v),jd(D,v,I,O,R,t),E=O/3,N=E-1,_=(R-2)/3,L=_+1,U[G++]=L,U[G++]=N,U[G++]=_,U[G++]=_,U[G++]=N,U[G++]=E,O+=3,R-=3;O-=3,R+=3}if(v=h.fromArray(a,a.length-3,v),jd(D,v,I,O,R,t),x){O+=3,R-=3,B=JU,M=eV;let Z=r[1];for(p=0;p<V;p++)B=h.fromArray(Z,(b-p-1)*3,B),M=h.fromArray(Z,p*3,M),Bi.addAttribute(A,B,void 0,R),Bi.addAttribute(A,M,O),jd(D,v,I,O,R,t),E=O/3,N=E-1,_=(R-2)/3,L=_+1,U[G++]=L,U[G++]=N,U[G++]=_,U[G++]=_,U[G++]=N,U[G++]=E,O+=3,R-=3}if(c.position=new we({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:A}),t.st){let Z=new Float32Array(T/3*2),me,xe,re=0;if(x){f/=3,d/=3;let ye=Math.PI/(b+1);xe=1/(f-b+1),me=1/(d-b+1);let ge,Ae=b/2;for(p=Ae+1;p<b+1;p++)ge=P.PI_OVER_TWO+ye*p,Z[re++]=me*(1+Math.cos(ge)),Z[re++]=.5*(1+Math.sin(ge));for(p=1;p<d-b+1;p++)Z[re++]=p*me,Z[re++]=0;for(p=b;p>Ae;p--)ge=P.PI_OVER_TWO-p*ye,Z[re++]=1-me*(1+Math.cos(ge)),Z[re++]=.5*(1+Math.sin(ge));for(p=Ae;p>0;p--)ge=P.PI_OVER_TWO-ye*p,Z[re++]=1-xe*(1+Math.cos(ge)),Z[re++]=.5*(1+Math.sin(ge));for(p=f-b;p>0;p--)Z[re++]=p*xe,Z[re++]=1;for(p=1;p<Ae+1;p++)ge=P.PI_OVER_TWO+ye*p,Z[re++]=xe*(1+Math.cos(ge)),Z[re++]=.5*(1+Math.sin(ge))}else{for(f/=3,d/=3,xe=1/(f-1),me=1/(d-1),p=0;p<d;p++)Z[re++]=p*me,Z[re++]=0;for(p=f;p>0;p--)Z[re++]=(p-1)*xe,Z[re++]=1}c.st=new we({componentDatatype:X.FLOAT,componentsPerAttribute:2,values:Z})}return t.normal&&(c.normal=new we({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:D.normals})),t.tangent&&(c.tangent=new we({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:D.tangents})),t.bitangent&&(c.bitangent=new we({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:D.bitangents})),{attributes:c,indices:U}}function dje(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,l;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=mce,m=pce,x=JU,b=eV,T=fje,A=_ce,C=c;for(l=0;l<s;l+=3){let S=C+c;g=h.fromArray(n,l,g),m=h.fromArray(n,l+s,m),x=h.fromArray(n,(l+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&&(Bi.addAttribute(f,b,S),Bi.addAttribute(f,b,S+3),Bi.addAttribute(f,b,C),Bi.addAttribute(f,b,C+3)),(t.tangent||t.bitangent)&&(A=h.fromArray(i,l,A),t.bitangent&&(Bi.addAttribute(p,A,S),Bi.addAttribute(p,A,S+3),Bi.addAttribute(p,A,C),Bi.addAttribute(p,A,C+3)),t.tangent&&(T=h.normalize(h.cross(A,b,T),T),Bi.addAttribute(d,T,S),Bi.addAttribute(d,T,S+3),Bi.addAttribute(d,T,C),Bi.addAttribute(d,T,C+3))),C+=6}if(t.normal){for(f.set(i),l=0;l<s;l+=3)f[l+s]=-i[l],f[l+s+1]=-i[l+1],f[l+s+2]=-i[l+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 S=e.tangent.values;d.set(S),d.set(S,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],l=2;l<a;l+=2){let m=f[l],x=f[l+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 iW(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 hje(e,t){let n=new Pe({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=Bi.computePositions(e),r=yce(o,n,i),s=e.height,a=e.extrudedHeight,c=r.attributes,l=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=ai.scaleToGeodeticHeight(f,s,i),m=iW(f,0,m),g=ai.scaleToGeodeticHeight(g,a,i),m=iW(g,d*2,m),p.set(f),p.set(g,d),p.set(m,d*2),c.position.values=p,c=dje(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=iW(L,d*4,N),c.extrudeDirection=new we({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:N}),t.normal||(c.normal=void 0)}if(u(e.offsetAttribute)){let L=new Uint8Array(b*6);if(e.offsetAttribute===tn.TOP)L=L.fill(1,0,b).fill(1,b*2,b*4);else{let N=e.offsetAttribute===tn.NONE?0:1;L=L.fill(N)}c.applyOffset=new we({componentDatatype:X.UNSIGNED_BYTE,componentsPerAttribute:1,values:L})}let T=l.length,A=b+b,C=Fe.createTypedArray(p.length/3,T*2+A*3);C.set(l);let S=T;for(x=0;x<T;x+=3){let L=l[x],N=l[x+1],_=l[x+2];C[S++]=_+b,C[S++]=N+b,C[S++]=L+b}let w,D,O,R;for(x=0;x<A;x+=2)w=x+A,D=w+A,O=w+1,R=D+1,C[S++]=w,C[S++]=D,C[S++]=O,C[S++]=O,C[S++]=D,C[S++]=R;return{attributes:c,indices:C}}var dce=new h,uM=new h,Sf=new fe;function hce(e,t,n,i,o,r){let s=h.subtract(t,e,dce);h.normalize(s,s);let a=n.geodeticSurfaceNormal(e,uM),c=h.cross(s,a,dce);h.multiplyByScalar(c,i,c);let l=o.latitude,f=o.longitude,d=r.latitude,p=r.longitude;h.add(e,c,uM),n.cartesianToCartographic(uM,Sf);let g=Sf.latitude,m=Sf.longitude;l=Math.min(l,g),f=Math.min(f,m),d=Math.max(d,g),p=Math.max(p,m),h.subtract(e,c,uM),n.cartesianToCartographic(uM,Sf),g=Sf.latitude,m=Sf.longitude,l=Math.min(l,g),f=Math.min(f,m),d=Math.max(d,g),p=Math.max(p,m),o.latitude=l,o.longitude=f,r.latitude=d,r.longitude=p}var Ef=new h,fM=new h,Il=new fe,Pl=new fe;function xce(e,t,n,i,o){e=gce(e,t);let r=yo(e,h.equalsEpsilon),s=r.length;if(s<2||n<=0)return new ce;let a=n*.5;Il.latitude=Number.POSITIVE_INFINITY,Il.longitude=Number.POSITIVE_INFINITY,Pl.latitude=Number.NEGATIVE_INFINITY,Pl.longitude=Number.NEGATIVE_INFINITY;let c,l;if(i===Pi.ROUNDED){let p=r[0];h.subtract(p,r[1],Ef),h.normalize(Ef,Ef),h.multiplyByScalar(Ef,a,Ef),h.add(p,Ef,fM),t.cartesianToCartographic(fM,Sf),c=Sf.latitude,l=Sf.longitude,Il.latitude=Math.min(Il.latitude,c),Il.longitude=Math.min(Il.longitude,l),Pl.latitude=Math.max(Pl.latitude,c),Pl.longitude=Math.max(Pl.longitude,l)}for(let p=0;p<s-1;++p)hce(r[p],r[p+1],t,a,Il,Pl);let f=r[s-1];h.subtract(f,r[s-2],Ef),h.normalize(Ef,Ef),h.multiplyByScalar(Ef,a,Ef),h.add(f,Ef,fM),hce(f,fM,t,a,Il,Pl),i===Pi.ROUNDED&&(t.cartesianToCartographic(fM,Sf),c=Sf.latitude,l=Sf.longitude,Il.latitude=Math.min(Il.latitude,c),Il.longitude=Math.min(Il.longitude,l),Pl.latitude=Math.max(Pl.latitude,c),Pl.longitude=Math.max(Pl.longitude,l));let d=u(o)?o:new ce;return d.north=Pl.latitude,d.south=Il.latitude,d.east=Pl.longitude,d.west=Il.longitude,d}function d_(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=ie.clone(y(e.ellipsoid,ie.WGS84)),this._vertexFormat=Pe.clone(y(e.vertexFormat,Pe.DEFAULT)),this._width=n,this._height=Math.max(i,o),this._extrudedHeight=Math.min(i,o),this._cornerType=y(e.cornerType,Pi.ROUNDED),this._granularity=y(e.granularity,P.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+ie.packedLength+Pe.packedLength+7}d_.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 ie.pack(e._ellipsoid,t,n),n+=ie.packedLength,Pe.pack(e._vertexFormat,t,n),n+=Pe.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 bce=ie.clone(ie.UNIT_SPHERE),Tce=new Pe,f_={positions:void 0,ellipsoid:bce,vertexFormat:Tce,width:void 0,height:void 0,extrudedHeight:void 0,cornerType:void 0,granularity:void 0,shadowVolume:void 0,offsetAttribute:void 0};d_.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=ie.unpack(e,t,bce);t+=ie.packedLength;let s=Pe.unpack(e,t,Tce);t+=Pe.packedLength;let a=e[t++],c=e[t++],l=e[t++],f=e[t++],d=e[t++],p=e[t++]===1,g=e[t];return u(n)?(n._positions=o,n._ellipsoid=ie.clone(r,n._ellipsoid),n._vertexFormat=Pe.clone(s,n._vertexFormat),n._width=a,n._height=c,n._extrudedHeight=l,n._cornerType=f,n._granularity=d,n._shadowVolume=p,n._offsetAttribute=g===-1?void 0:g,n):(f_.positions=o,f_.width=a,f_.height=c,f_.extrudedHeight=l,f_.cornerType=f,f_.granularity=d,f_.shadowVolume=p,f_.offsetAttribute=g===-1?void 0:g,new d_(f_))};d_.computeRectangle=function(e,t){e=y(e,y.EMPTY_OBJECT);let n=e.positions,i=e.width,o=y(e.ellipsoid,ie.WGS84),r=y(e.cornerType,Pi.ROUNDED);return xce(n,o,i,r,t)};d_.createGeometry=function(e){let t=e._positions,n=e._width,i=e._ellipsoid;t=gce(t,i);let o=yo(t,h.equalsEpsilon);if(o.length<2||n<=0)return;let r=e._height,s=e._extrudedHeight,a=!P.equalsEpsilon(r,s,0,P.EPSILON2),c=e._vertexFormat,l={ellipsoid:i,positions:o,width:n,cornerType:e._cornerType,granularity:e._granularity,saveAttributes:!0},f;if(a)l.height=r,l.extrudedHeight=s,l.shadowVolume=e._shadowVolume,l.offsetAttribute=e._offsetAttribute,f=hje(l,c);else{let g=Bi.computePositions(l);if(f=yce(g,c,i),f.attributes.position.values=ai.scaleToGeodeticHeight(f.attributes.position.values,r,i),u(e._offsetAttribute)){let m=e._offsetAttribute===tn.NONE?0:1,x=f.attributes.position.values.length,b=new Uint8Array(x/3).fill(m);f.attributes.applyOffset=new we({componentDatatype:X.UNSIGNED_BYTE,componentsPerAttribute:1,values:b})}}let d=f.attributes,p=se.fromVertices(d.position.values,void 0,3);return c.position||(f.attributes.position.values=void 0),new st({attributes:d,indices:f.indices,primitiveType:Me.TRIANGLES,boundingSphere:p,offsetAttribute:e._offsetAttribute})};d_.createShadowVolume=function(e,t,n){let i=e._granularity,o=e._ellipsoid,r=t(i,o),s=n(i,o);return new d_({positions:e._positions,width:e._width,cornerType:e._cornerType,ellipsoid:o,granularity:i,extrudedHeight:r,height:s,vertexFormat:Pe.POSITION_ONLY,shadowVolume:!0})};Object.defineProperties(d_.prototype,{rectangle:{get:function(){return u(this._rectangle)||(this._rectangle=xce(this._positions,this._ellipsoid,this._width,this._cornerType)),this._rectangle}},textureCoordinateRotationPoints:{get:function(){return[0,0,0,1,1,0]}}});var mb=d_;var Ace=new h,Cce=new h,mje=new h;function pje(e,t){for(let n=0;n<e.length;n++)e[n]=t.scaleToGeodeticSurface(e[n],e[n]);return e}function Ece(e,t){let n=[],i=e.positions,o=e.corners,r=e.endPositions,s=new fn,a,c=0,l=0,f,d=0,p;for(f=0;f<i.length;f+=2)p=i[f].length-3,c+=p,d+=p/3*4,l+=i[f+1].length-3;for(c+=3,l+=3,f=0;f<o.length;f++){a=o[f];let M=o[f].leftPositions;u(M)?(p=M.length,c+=p,d+=p/3*2):(p=o[f].rightPositions.length,l+=p,d+=p/3*2)}let g=u(r),m;g&&(m=r[0].length-3,c+=m,l+=m,m/=3,d+=m*4);let x=c+l,b=new Float64Array(x),T=0,A=x-1,C,S,w,D,O,R,L=m/2,N=Fe.createTypedArray(x/3,d+4),_=0;if(N[_++]=T/3,N[_++]=(A-2)/3,g){n.push(T/3),R=Ace,O=Cce;let M=r[0];for(f=0;f<L;f++)R=h.fromArray(M,(L-1-f)*3,R),O=h.fromArray(M,(L+f)*3,O),Bi.addAttribute(b,O,T),Bi.addAttribute(b,R,void 0,A),S=T/3,D=S+1,C=(A-2)/3,w=C-1,N[_++]=C,N[_++]=w,N[_++]=S,N[_++]=D,T+=3,A-=3}let E=0,v=i[E++],I=i[E++];for(b.set(v,T),b.set(I,A-I.length+1),p=I.length-3,n.push(T/3,(A-2)/3),f=0;f<p;f+=3)S=T/3,D=S+1,C=(A-2)/3,w=C-1,N[_++]=C,N[_++]=w,N[_++]=S,N[_++]=D,T+=3,A-=3;for(f=0;f<o.length;f++){let M;a=o[f];let B=a.leftPositions,V=a.rightPositions,U,G=mje;if(u(B)){for(A-=3,U=w,n.push(D),M=0;M<B.length/3;M++)G=h.fromArray(B,M*3,G),N[_++]=U-M-1,N[_++]=U-M,Bi.addAttribute(b,G,void 0,A),A-=3;n.push(U-Math.floor(B.length/6)),t===Pi.BEVELED&&n.push((A-2)/3+1),T+=3}else{for(T+=3,U=D,n.push(w),M=0;M<V.length/3;M++)G=h.fromArray(V,M*3,G),N[_++]=U+M,N[_++]=U+M+1,Bi.addAttribute(b,G,T),T+=3;n.push(U+Math.floor(V.length/6)),t===Pi.BEVELED&&n.push(T/3-1),A-=3}for(v=i[E++],I=i[E++],v.splice(0,3),I.splice(I.length-3,3),b.set(v,T),b.set(I,A-I.length+1),p=I.length-3,M=0;M<I.length;M+=3)D=T/3,S=D-1,w=(A-2)/3,C=w+1,N[_++]=C,N[_++]=w,N[_++]=S,N[_++]=D,T+=3,A-=3;T-=3,A+=3,n.push(T/3,(A-2)/3)}if(g){T+=3,A-=3,R=Ace,O=Cce;let M=r[1];for(f=0;f<L;f++)R=h.fromArray(M,(m-f-1)*3,R),O=h.fromArray(M,f*3,O),Bi.addAttribute(b,R,void 0,A),Bi.addAttribute(b,O,T),D=T/3,S=D-1,w=(A-2)/3,C=w+1,N[_++]=C,N[_++]=w,N[_++]=S,N[_++]=D,T+=3,A-=3;n.push(T/3)}else n.push(T/3,(A-2)/3);return N[_++]=T/3,N[_++]=(A-2)/3,s.position=new we({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:b}),{attributes:s,indices:N,wallIndices:n}}function _je(e){let t=e.ellipsoid,n=Bi.computePositions(e),i=Ece(n,e.cornerType),o=i.wallIndices,r=e.height,s=e.extrudedHeight,a=i.attributes,c=i.indices,l=a.position.values,f=l.length,d=new Float64Array(f);d.set(l);let p=new Float64Array(f*2);if(l=ai.scaleToGeodeticHeight(l,r,t),d=ai.scaleToGeodeticHeight(d,s,t),p.set(l),p.set(d,f),a.position.values=p,f/=3,u(e.offsetAttribute)){let C=new Uint8Array(f*2);if(e.offsetAttribute===tn.TOP)C=C.fill(1,0,f);else{let S=e.offsetAttribute===tn.NONE?0:1;C=C.fill(S)}a.applyOffset=new we({componentDatatype:X.UNSIGNED_BYTE,componentsPerAttribute:1,values:C})}let g,m=c.length,x=Fe.createTypedArray(p.length/3,(m+o.length)*2);x.set(c);let b=m;for(g=0;g<m;g+=2){let C=c[g],S=c[g+1];x[b++]=C+f,x[b++]=S+f}let T,A;for(g=0;g<o.length;g++)T=o[g],A=T+f,x[b++]=T,x[b++]=A;return{attributes:a,indices:x}}function dM(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=ie.clone(y(e.ellipsoid,ie.WGS84)),this._width=n,this._height=Math.max(i,o),this._extrudedHeight=Math.min(i,o),this._cornerType=y(e.cornerType,Pi.ROUNDED),this._granularity=y(e.granularity,P.RADIANS_PER_DEGREE),this._offsetAttribute=e.offsetAttribute,this._workerName="createCorridorOutlineGeometry",this.packedLength=1+t.length*h.packedLength+ie.packedLength+6}dM.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 ie.pack(e._ellipsoid,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]=y(e._offsetAttribute,-1),t};var Sce=ie.clone(ie.UNIT_SPHERE),my={positions:void 0,ellipsoid:Sce,width:void 0,height:void 0,extrudedHeight:void 0,cornerType:void 0,granularity:void 0,offsetAttribute:void 0};dM.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=ie.unpack(e,t,Sce);t+=ie.packedLength;let s=e[t++],a=e[t++],c=e[t++],l=e[t++],f=e[t++],d=e[t];return u(n)?(n._positions=o,n._ellipsoid=ie.clone(r,n._ellipsoid),n._width=s,n._height=a,n._extrudedHeight=c,n._cornerType=l,n._granularity=f,n._offsetAttribute=d===-1?void 0:d,n):(my.positions=o,my.width=s,my.height=a,my.extrudedHeight=c,my.cornerType=l,my.granularity=f,my.offsetAttribute=d===-1?void 0:d,new dM(my))};dM.createGeometry=function(e){let t=e._positions,n=e._width,i=e._ellipsoid;t=pje(t,i);let o=yo(t,h.equalsEpsilon);if(o.length<2||n<=0)return;let r=e._height,s=e._extrudedHeight,a=!P.equalsEpsilon(r,s,0,P.EPSILON2),c={ellipsoid:i,positions:o,width:n,cornerType:e._cornerType,granularity:e._granularity,saveAttributes:!1},l;if(a)c.height=r,c.extrudedHeight=s,c.offsetAttribute=e._offsetAttribute,l=_je(c);else{let p=Bi.computePositions(c);if(l=Ece(p,c.cornerType),l.attributes.position.values=ai.scaleToGeodeticHeight(l.attributes.position.values,r,i),u(e._offsetAttribute)){let g=l.attributes.position.values.length,m=e._offsetAttribute===tn.NONE?0:1,x=new Uint8Array(g/3).fill(m);l.attributes.applyOffset=new we({componentDatatype:X.UNSIGNED_BYTE,componentsPerAttribute:1,values:x})}}let f=l.attributes,d=se.fromVertices(f.position.values,void 0,3);return new st({attributes:f,indices:l.indices,primitiveType:Me.LINES,boundingSphere:d,offsetAttribute:e._offsetAttribute})};var hM=dM;var gje=new Qn(0);function zc(e){oi.call(this,e),this._zIndex=0,this._terrainOffsetProperty=void 0}u(Object.create)&&(zc.prototype=Object.create(oi.prototype),zc.prototype.constructor=zc);Object.defineProperties(zc.prototype,{zIndex:{get:function(){return this._zIndex}},terrainOffsetProperty:{get:function(){return this._terrainOffsetProperty}}});zc.prototype._isOnTerrain=function(e,t){return this._fillEnabled&&!u(t.height)&&!u(t.extrudedHeight)&&Ic.isSupported(this._scene)};zc.prototype._getIsClosed=function(e){let t=e.height,n=e.extrudedHeight;return t===0||u(n)&&n!==t};zc.prototype._computeCenter=de.throwInstantiationError;zc.prototype._onEntityPropertyChanged=function(e,t,n,i){if(oi.prototype._onEntityPropertyChanged.call(this,e,t,n,i),this._observedPropertyNames.indexOf(t)===-1)return;let o=this._entity[this._geometryPropertyName];if(!u(o))return;u(o.zIndex)&&(u(o.height)||u(o.extrudedHeight))&&Dt(Dt.geometryZIndex),this._zIndex=y(o.zIndex,gje),u(this._terrainOffsetProperty)&&(this._terrainOffsetProperty.destroy(),this._terrainOffsetProperty=void 0);let r=o.heightReference,s=o.extrudedHeightReference;if(u(r)||u(s)){let a=new xd(this._computeCenter.bind(this),!this._dynamic);this._terrainOffsetProperty=new dx(this._scene,a,r,s)}};zc.prototype.destroy=function(){u(this._terrainOffsetProperty)&&(this._terrainOffsetProperty.destroy(),this._terrainOffsetProperty=void 0),oi.prototype.destroy.call(this)};zc.getGeometryHeight=function(e,t){if(!u(e)){t!==Ge.NONE&&Dt(Dt.geometryHeightReference);return}return t!==Ge.CLAMP_TO_GROUND?e:0};zc.getGeometryExtrudedHeight=function(e,t){if(!u(e)){t!==Ge.NONE&&Dt(Dt.geometryExtrudedHeightReference);return}return t!==Ge.CLAMP_TO_GROUND?e:zc.CLAMP_TO_GROUND};zc.CLAMP_TO_GROUND="clamp";zc.computeGeometryOffsetAttribute=function(e,t,n,i){(!u(e)||!u(t))&&(t=Ge.NONE),(!u(n)||!u(i))&&(i=Ge.NONE);let o=0;if(t!==Ge.NONE&&o++,i===Ge.RELATIVE_TO_GROUND&&o++,o===2)return tn.ALL;if(o===1)return tn.TOP};var Yn=zc;var wce=new H,vce=h.ZERO,Dce=new h,Ice=new ce;function yje(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 qd(e,t){Yn.call(this,{entity:e,scene:t,geometryOptions:new yje(e),geometryPropertyName:"corridor",observedPropertyNames:["availability","corridor"]}),this._onEntityPropertyChanged(e,"corridor",e.corridor,void 0)}u(Object.create)&&(qd.prototype=Object.create(Yn.prototype),qd.prototype.constructor=qd);qd.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:Un.fromDistanceDisplayCondition(this._distanceDisplayConditionProperty.getValue(e)),offset:void 0,color:void 0};if(this._materialProperty instanceof Nt){let o;u(this._materialProperty.color)&&(this._materialProperty.color.isConstant||n)&&(o=this._materialProperty.color.getValue(e,wce)),u(o)||(o=H.WHITE),i.color=kt.fromColor(o)}return u(this._options.offsetAttribute)&&(i.offset=Yi.fromCartesian3(q.getValueOrDefault(this._terrainOffsetProperty,e,vce,Dce))),new yt({id:t,geometry:new mb(this._options),attributes:i})};qd.prototype.createOutlineGeometryInstance=function(e){let t=this._entity,n=t.isAvailable(e),i=q.getValueOrDefault(this._outlineColorProperty,e,H.BLACK,wce),o={show:new gn(n&&t.isShowing&&this._showProperty.getValue(e)&&this._showOutlineProperty.getValue(e)),color:kt.fromColor(i),distanceDisplayCondition:Un.fromDistanceDisplayCondition(this._distanceDisplayConditionProperty.getValue(e)),offset:void 0};return u(this._options.offsetAttribute)&&(o.offset=Yi.fromCartesian3(q.getValueOrDefault(this._terrainOffsetProperty,e,vce,Dce))),new yt({id:t,geometry:new hM(this._options),attributes:o})};qd.prototype._computeCenter=function(e,t){let n=q.getValueOrUndefined(this._entity.corridor.positions,e);if(!(!u(n)||n.length===0))return h.clone(n[Math.floor(n.length/2)],t)};qd.prototype._isHidden=function(e,t){return!u(t.positions)||!u(t.width)||oi.prototype._isHidden.call(this,e,t)};qd.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 Nt)};qd.prototype._setStaticOptions=function(e,t){let n=q.getValueOrUndefined(t.height,Ve.MINIMUM_VALUE),i=q.getValueOrDefault(t.heightReference,Ve.MINIMUM_VALUE,Ge.NONE),o=q.getValueOrUndefined(t.extrudedHeight,Ve.MINIMUM_VALUE),r=q.getValueOrDefault(t.extrudedHeightReference,Ve.MINIMUM_VALUE,Ge.NONE);u(o)&&!u(n)&&(n=0);let s=this._options;s.vertexFormat=this._materialProperty instanceof Nt?nn.VERTEX_FORMAT:so.MaterialSupport.TEXTURED.vertexFormat,s.positions=t.positions.getValue(Ve.MINIMUM_VALUE,s.positions),s.width=t.width.getValue(Ve.MINIMUM_VALUE),s.granularity=q.getValueOrUndefined(t.granularity,Ve.MINIMUM_VALUE),s.cornerType=q.getValueOrUndefined(t.cornerType,Ve.MINIMUM_VALUE),s.offsetAttribute=Yn.computeGeometryOffsetAttribute(n,i,o,r),s.height=Yn.getGeometryHeight(n,i),o=Yn.getGeometryExtrudedHeight(o,r),o===Yn.CLAMP_TO_GROUND&&(o=li.getMinimumMaximumHeights(mb.computeRectangle(s,Ice)).minimumTerrainHeight),s.extrudedHeight=o};qd.DynamicGeometryUpdater=LC;function LC(e,t,n){ii.call(this,e,t,n)}u(Object.create)&&(LC.prototype=Object.create(ii.prototype),LC.prototype.constructor=LC);LC.prototype._isHidden=function(e,t,n){let i=this._options;return!u(i.positions)||!u(i.width)||ii.prototype._isHidden.call(this,e,t,n)};LC.prototype._setOptions=function(e,t,n){let i=this._options,o=q.getValueOrUndefined(t.height,n),r=q.getValueOrDefault(t.heightReference,n,Ge.NONE),s=q.getValueOrUndefined(t.extrudedHeight,n),a=q.getValueOrDefault(t.extrudedHeightReference,n,Ge.NONE);u(s)&&!u(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=Yn.computeGeometryOffsetAttribute(o,r,s,a),i.height=Yn.getGeometryHeight(o,r),s=Yn.getGeometryExtrudedHeight(s,a),s===Yn.CLAMP_TO_GROUND&&(s=li.getMinimumMaximumHeights(mb.computeRectangle(i,Ice)).minimumTerrainHeight),i.extrudedHeight=s};var mM=qd;function tV(){de.throwInstantiationError()}Object.defineProperties(tV.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}});tV.prototype.update=function(e){de.throwInstantiationError()};tV.setLoading=function(e,t){e._isLoading!==t&&(t?e._entityCollection.suspendEvents():e._entityCollection.resumeEvents(),e._isLoading=t,e._loading.raiseEvent(e,t))};var Lr=tV;function cm(e,t){this._ellipsoid=e,this._cameraPosition=new h,this._cameraPositionInScaledSpace=new h,this._distanceToLimbInScaledSpaceSquared=0,u(t)&&(this.cameraPosition=t)}Object.defineProperties(cm.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 Pce=new h;cm.prototype.isPointVisible=function(e){let n=this._ellipsoid.transformPositionToScaledSpace(e,Pce);return rW(n,this._cameraPositionInScaledSpace,this._distanceToLimbInScaledSpaceSquared)};cm.prototype.isScaledSpacePointVisible=function(e){return rW(e,this._cameraPositionInScaledSpace,this._distanceToLimbInScaledSpaceSquared)};var xje=new h;cm.prototype.isScaledSpacePointVisiblePossiblyUnderEllipsoid=function(e,t){let n=this._ellipsoid,i,o;return u(t)&&t<0&&n.minimumRadius>-t?(o=xje,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),rW(e,o,i)};cm.prototype.computeHorizonCullingPoint=function(e,t,n){return Mce(this._ellipsoid,e,t,n)};var Oce=ie.clone(ie.UNIT_SPHERE);cm.prototype.computeHorizonCullingPointPossiblyUnderEllipsoid=function(e,t,n,i){let o=Rce(this._ellipsoid,n,Oce);return Mce(o,e,t,i)};cm.prototype.computeHorizonCullingPointFromVertices=function(e,t,n,i,o){return Lce(this._ellipsoid,e,t,n,i,o)};cm.prototype.computeHorizonCullingPointFromVerticesPossiblyUnderEllipsoid=function(e,t,n,i,o,r){let s=Rce(this._ellipsoid,o,Oce);return Lce(s,e,t,n,i,r)};var bje=[];cm.prototype.computeHorizonCullingPointFromRectangle=function(e,t,n){let i=ce.subsample(e,t,0,bje),o=se.fromPoints(i);if(!(h.magnitude(o.center)<.1*t.minimumRadius))return this.computeHorizonCullingPoint(o.center,i,n)};var Tje=new h;function Rce(e,t,n){if(u(t)&&t<0&&e.minimumRadius>-t){let i=h.fromElements(e.radii.x+t,e.radii.y+t,e.radii.z+t,Tje);e=ie.fromCartesian3(i,n)}return e}function Mce(e,t,n,i){u(i)||(i=new h);let o=Bce(e,t),r=0;for(let s=0,a=n.length;s<a;++s){let c=n[s],l=Nce(e,c,o);if(l<0)return;r=Math.max(r,l)}return Fce(o,r,i)}var nV=new h;function Lce(e,t,n,i,o,r){u(r)||(r=new h),i=y(i,3),o=y(o,h.ZERO);let s=Bce(e,t),a=0;for(let c=0,l=n.length;c<l;c+=i){nV.x=n[c]+o.x,nV.y=n[c+1]+o.y,nV.z=n[c+2]+o.z;let f=Nce(e,nV,s);if(f<0)return;a=Math.max(a,f)}return Fce(s,a,r)}function rW(e,t,n){let i=t,o=n,r=h.subtract(e,i,Pce),s=-h.dot(r,i);return!(o<0?s>0:s>o&&s*s/h.magnitudeSquared(r)>o)}var Aje=new h,Cje=new h;function Nce(e,t,n){let i=e.transformPositionToScaledSpace(t,Aje),o=h.magnitudeSquared(i),r=Math.sqrt(o),s=h.divideByScalar(i,r,Cje);o=Math.max(1,o),r=Math.max(1,r);let a=h.dot(s,n),c=h.magnitude(h.cross(s,n,s)),l=1/r,f=Math.sqrt(o-1)*l;return 1/(a*l-c*f)}function Fce(e,t,n){if(!(t<=0||t===1/0||t!==t))return h.multiplyByScalar(e,t,n)}var oW=new h;function Bce(e,t){return h.equals(t,h.ZERO)?t:(e.transformPositionToScaledSpace(t,oW),h.normalize(oW,oW))}var h_=cm;function Nr(e,t){e=y(e,y.EMPTY_OBJECT);let n=e.translucencyByDistance,i=e.scaleByDistance,o=e.distanceDisplayCondition;u(n)&&(n=Pt.clone(n)),u(i)&&(i=Pt.clone(i)),u(o)&&(o=St.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 kce=Nr.SHOW_INDEX=0,zce=Nr.POSITION_INDEX=1,Eje=Nr.COLOR_INDEX=2,Sje=Nr.OUTLINE_COLOR_INDEX=3,wje=Nr.OUTLINE_WIDTH_INDEX=4,vje=Nr.PIXEL_SIZE_INDEX=5,Dje=Nr.SCALE_BY_DISTANCE_INDEX=6,Ije=Nr.TRANSLUCENCY_BY_DISTANCE_INDEX=7,Pje=Nr.DISTANCE_DISPLAY_CONDITION_INDEX=8,Oje=Nr.DISABLE_DEPTH_DISTANCE_INDEX=9;Nr.NUMBER_OF_PROPERTIES=10;function wf(e,t){let n=e._pointPrimitiveCollection;u(n)&&(n._updatePointPrimitive(e,t),e._dirty=!0)}Object.defineProperties(Nr.prototype,{show:{get:function(){return this._show},set:function(e){this._show!==e&&(this._show=e,wf(this,kce))}},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,zce))}},scaleByDistance:{get:function(){return this._scaleByDistance},set:function(e){let t=this._scaleByDistance;Pt.equals(t,e)||(this._scaleByDistance=Pt.clone(e,t),wf(this,Dje))}},translucencyByDistance:{get:function(){return this._translucencyByDistance},set:function(e){let t=this._translucencyByDistance;Pt.equals(t,e)||(this._translucencyByDistance=Pt.clone(e,t),wf(this,Ije))}},pixelSize:{get:function(){return this._pixelSize},set:function(e){this._pixelSize!==e&&(this._pixelSize=e,wf(this,vje))}},color:{get:function(){return this._color},set:function(e){let t=this._color;H.equals(t,e)||(H.clone(e,t),wf(this,Eje))}},outlineColor:{get:function(){return this._outlineColor},set:function(e){let t=this._outlineColor;H.equals(t,e)||(H.clone(e,t),wf(this,Sje))}},outlineWidth:{get:function(){return this._outlineWidth},set:function(e){this._outlineWidth!==e&&(this._outlineWidth=e,wf(this,wje))}},distanceDisplayCondition:{get:function(){return this._distanceDisplayCondition},set:function(e){St.equals(this._distanceDisplayCondition,e)||(this._distanceDisplayCondition=St.clone(e,this._distanceDisplayCondition),wf(this,Pje))}},disableDepthTestDistance:{get:function(){return this._disableDepthTestDistance},set:function(e){this._disableDepthTestDistance!==e&&(this._disableDepthTestDistance=e,wf(this,Oje))}},id:{get:function(){return this._id},set:function(e){this._id=e,u(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,kce))}}});Nr.prototype.getPickId=function(e){return u(this._pickId)||(this._pickId=e.createPickId({primitive:this,collection:this._collection,id:this._id})),this._pickId};Nr.prototype._getActualPosition=function(){return this._actualPosition};Nr.prototype._setActualPosition=function(e){h.clone(e,this._actualPosition),wf(this,zce)};var Uce=new oe;Nr._computeActualPosition=function(e,t,n){return t.mode===te.SCENE3D?e:(F.multiplyByPoint(n,e,Uce),Xi.computeActualWgs84Position(t,Uce))};var Vce=new oe;Nr._computeScreenSpacePosition=function(e,t,n,i){let o=F.multiplyByVector(e,oe.fromElements(t.x,t.y,t.z,1,Vce),Vce);return Xi.wgs84ToWindowCoordinates(n,o,i)};Nr.prototype.computeScreenSpacePosition=function(e,t){let n=this._pointPrimitiveCollection;u(t)||(t=new z);let i=n.modelMatrix,o=Nr._computeScreenSpacePosition(i,this._actualPosition,e,t);if(u(o))return o.y=e.canvas.clientHeight-o.y,o};Nr.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 u(n)||(n=new We),n.x=r,n.y=s,n.width=a,n.height=c,n};Nr.prototype.equals=function(e){return this===e||u(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)&&Pt.equals(this._scaleByDistance,e._scaleByDistance)&&Pt.equals(this._translucencyByDistance,e._translucencyByDistance)&&St.equals(this._distanceDisplayCondition,e._distanceDisplayCondition)&&this._disableDepthTestDistance===e._disableDepthTestDistance};Nr.prototype._destroy=function(){this._pickId=this._pickId&&this._pickId.destroy(),this._pointPrimitiveCollection=void 0};var Ls=Nr;var py=`in vec4 v_color;
  7233. in vec4 v_outlineColor;
  7234. in float v_innerPercent;
  7235. in float v_pixelDistance;
  7236. in vec4 v_pickColor;
  7237. void main()
  7238. {
  7239. // The distance in UV space from this fragment to the center of the point, at most 0.5.
  7240. float distanceToCenter = length(gl_PointCoord - vec2(0.5));
  7241. // The max distance stops one pixel shy of the edge to leave space for anti-aliasing.
  7242. float maxDistance = max(0.0, 0.5 - v_pixelDistance);
  7243. float wholeAlpha = 1.0 - smoothstep(maxDistance, 0.5, distanceToCenter);
  7244. float innerAlpha = 1.0 - smoothstep(maxDistance * v_innerPercent, 0.5 * v_innerPercent, distanceToCenter);
  7245. vec4 color = mix(v_outlineColor, v_color, innerAlpha);
  7246. color.a *= wholeAlpha;
  7247. // Fully transparent parts of the billboard are not pickable.
  7248. #if !defined(OPAQUE) && !defined(TRANSLUCENT)
  7249. if (color.a < 0.005) // matches 0/255 and 1/255
  7250. {
  7251. discard;
  7252. }
  7253. #else
  7254. // The billboard is rendered twice. The opaque pass discards translucent fragments
  7255. // and the translucent pass discards opaque fragments.
  7256. #ifdef OPAQUE
  7257. if (color.a < 0.995) // matches < 254/255
  7258. {
  7259. discard;
  7260. }
  7261. #else
  7262. if (color.a >= 0.995) // matches 254/255 and 255/255
  7263. {
  7264. discard;
  7265. }
  7266. #endif
  7267. #endif
  7268. out_FragColor = czm_gammaCorrect(color);
  7269. czm_writeLogDepth();
  7270. }
  7271. `;var pM=`uniform float u_maxTotalPointSize;
  7272. in vec4 positionHighAndSize;
  7273. in vec4 positionLowAndOutline;
  7274. in vec4 compressedAttribute0; // color, outlineColor, pick color
  7275. in vec4 compressedAttribute1; // show, translucency by distance, some free space
  7276. in vec4 scaleByDistance; // near, nearScale, far, farScale
  7277. in vec3 distanceDisplayConditionAndDisableDepth; // near, far, disableDepthTestDistance
  7278. out vec4 v_color;
  7279. out vec4 v_outlineColor;
  7280. out float v_innerPercent;
  7281. out float v_pixelDistance;
  7282. out vec4 v_pickColor;
  7283. const float SHIFT_LEFT8 = 256.0;
  7284. const float SHIFT_RIGHT8 = 1.0 / 256.0;
  7285. void main()
  7286. {
  7287. // Modifying this shader may also require modifications to PointPrimitive._computeScreenSpacePosition
  7288. // unpack attributes
  7289. vec3 positionHigh = positionHighAndSize.xyz;
  7290. vec3 positionLow = positionLowAndOutline.xyz;
  7291. float outlineWidthBothSides = 2.0 * positionLowAndOutline.w;
  7292. float totalSize = positionHighAndSize.w + outlineWidthBothSides;
  7293. float outlinePercent = outlineWidthBothSides / totalSize;
  7294. // Scale in response to browser-zoom.
  7295. totalSize *= czm_pixelRatio;
  7296. float temp = compressedAttribute1.x * SHIFT_RIGHT8;
  7297. float show = floor(temp);
  7298. #ifdef EYE_DISTANCE_TRANSLUCENCY
  7299. vec4 translucencyByDistance;
  7300. translucencyByDistance.x = compressedAttribute1.z;
  7301. translucencyByDistance.z = compressedAttribute1.w;
  7302. translucencyByDistance.y = ((temp - floor(temp)) * SHIFT_LEFT8) / 255.0;
  7303. temp = compressedAttribute1.y * SHIFT_RIGHT8;
  7304. translucencyByDistance.w = ((temp - floor(temp)) * SHIFT_LEFT8) / 255.0;
  7305. #endif
  7306. ///////////////////////////////////////////////////////////////////////////
  7307. vec4 color;
  7308. vec4 outlineColor;
  7309. vec4 pickColor;
  7310. // compressedAttribute0.z => pickColor.rgb
  7311. temp = compressedAttribute0.z * SHIFT_RIGHT8;
  7312. pickColor.b = (temp - floor(temp)) * SHIFT_LEFT8;
  7313. temp = floor(temp) * SHIFT_RIGHT8;
  7314. pickColor.g = (temp - floor(temp)) * SHIFT_LEFT8;
  7315. pickColor.r = floor(temp);
  7316. // compressedAttribute0.x => color.rgb
  7317. temp = compressedAttribute0.x * SHIFT_RIGHT8;
  7318. color.b = (temp - floor(temp)) * SHIFT_LEFT8;
  7319. temp = floor(temp) * SHIFT_RIGHT8;
  7320. color.g = (temp - floor(temp)) * SHIFT_LEFT8;
  7321. color.r = floor(temp);
  7322. // compressedAttribute0.y => outlineColor.rgb
  7323. temp = compressedAttribute0.y * SHIFT_RIGHT8;
  7324. outlineColor.b = (temp - floor(temp)) * SHIFT_LEFT8;
  7325. temp = floor(temp) * SHIFT_RIGHT8;
  7326. outlineColor.g = (temp - floor(temp)) * SHIFT_LEFT8;
  7327. outlineColor.r = floor(temp);
  7328. // compressedAttribute0.w => color.a, outlineColor.a, pickColor.a
  7329. temp = compressedAttribute0.w * SHIFT_RIGHT8;
  7330. pickColor.a = (temp - floor(temp)) * SHIFT_LEFT8;
  7331. pickColor = pickColor / 255.0;
  7332. temp = floor(temp) * SHIFT_RIGHT8;
  7333. outlineColor.a = (temp - floor(temp)) * SHIFT_LEFT8;
  7334. outlineColor /= 255.0;
  7335. color.a = floor(temp);
  7336. color /= 255.0;
  7337. ///////////////////////////////////////////////////////////////////////////
  7338. vec4 p = czm_translateRelativeToEye(positionHigh, positionLow);
  7339. vec4 positionEC = czm_modelViewRelativeToEye * p;
  7340. ///////////////////////////////////////////////////////////////////////////
  7341. #if defined(EYE_DISTANCE_SCALING) || defined(EYE_DISTANCE_TRANSLUCENCY) || defined(DISTANCE_DISPLAY_CONDITION) || defined(DISABLE_DEPTH_DISTANCE)
  7342. float lengthSq;
  7343. if (czm_sceneMode == czm_sceneMode2D)
  7344. {
  7345. // 2D camera distance is a special case
  7346. // treat all billboards as flattened to the z=0.0 plane
  7347. lengthSq = czm_eyeHeight2D.y;
  7348. }
  7349. else
  7350. {
  7351. lengthSq = dot(positionEC.xyz, positionEC.xyz);
  7352. }
  7353. #endif
  7354. #ifdef EYE_DISTANCE_SCALING
  7355. totalSize *= czm_nearFarScalar(scaleByDistance, lengthSq);
  7356. #endif
  7357. if (totalSize > 0.0) {
  7358. // Add padding for anti-aliasing on both sides.
  7359. totalSize += 3.0;
  7360. }
  7361. // Clamp to max point size.
  7362. totalSize = min(totalSize, u_maxTotalPointSize);
  7363. // If size is too small, push vertex behind near plane for clipping.
  7364. // Note that context.minimumAliasedPointSize "will be at most 1.0".
  7365. if (totalSize < 1.0)
  7366. {
  7367. positionEC.xyz = vec3(0.0);
  7368. totalSize = 1.0;
  7369. }
  7370. float translucency = 1.0;
  7371. #ifdef EYE_DISTANCE_TRANSLUCENCY
  7372. translucency = czm_nearFarScalar(translucencyByDistance, lengthSq);
  7373. // push vertex behind near plane for clipping
  7374. if (translucency < 0.004)
  7375. {
  7376. positionEC.xyz = vec3(0.0);
  7377. }
  7378. #endif
  7379. #ifdef DISTANCE_DISPLAY_CONDITION
  7380. float nearSq = distanceDisplayConditionAndDisableDepth.x;
  7381. float farSq = distanceDisplayConditionAndDisableDepth.y;
  7382. if (lengthSq < nearSq || lengthSq > farSq) {
  7383. // push vertex behind camera to force it to be clipped
  7384. positionEC.xyz = vec3(0.0, 0.0, 1.0);
  7385. }
  7386. #endif
  7387. gl_Position = czm_projection * positionEC;
  7388. czm_vertexLogDepth();
  7389. #ifdef DISABLE_DEPTH_DISTANCE
  7390. float disableDepthTestDistance = distanceDisplayConditionAndDisableDepth.z;
  7391. if (disableDepthTestDistance == 0.0 && czm_minimumDisableDepthTestDistance != 0.0)
  7392. {
  7393. disableDepthTestDistance = czm_minimumDisableDepthTestDistance;
  7394. }
  7395. if (disableDepthTestDistance != 0.0)
  7396. {
  7397. // Don't try to "multiply both sides" by w. Greater/less-than comparisons won't work for negative values of w.
  7398. float zclip = gl_Position.z / gl_Position.w;
  7399. bool clipped = (zclip < -1.0 || zclip > 1.0);
  7400. if (!clipped && (disableDepthTestDistance < 0.0 || (lengthSq > 0.0 && lengthSq < disableDepthTestDistance)))
  7401. {
  7402. // Position z on the near plane.
  7403. gl_Position.z = -gl_Position.w;
  7404. #ifdef LOG_DEPTH
  7405. czm_vertexLogDepth(vec4(czm_currentFrustum.x));
  7406. #endif
  7407. }
  7408. }
  7409. #endif
  7410. v_color = color;
  7411. v_color.a *= translucency * show;
  7412. v_outlineColor = outlineColor;
  7413. v_outlineColor.a *= translucency * show;
  7414. v_innerPercent = 1.0 - outlinePercent;
  7415. v_pixelDistance = 2.0 / totalSize;
  7416. gl_PointSize = totalSize * show;
  7417. gl_Position *= show;
  7418. v_pickColor = pickColor;
  7419. }
  7420. `;var Rje=Ls.SHOW_INDEX,cW=Ls.POSITION_INDEX,Hce=Ls.COLOR_INDEX,Mje=Ls.OUTLINE_COLOR_INDEX,Lje=Ls.OUTLINE_WIDTH_INDEX,Nje=Ls.PIXEL_SIZE_INDEX,Gce=Ls.SCALE_BY_DISTANCE_INDEX,Wce=Ls.TRANSLUCENCY_BY_DISTANCE_INDEX,jce=Ls.DISTANCE_DISPLAY_CONDITION_INDEX,Fje=Ls.DISABLE_DEPTH_DISTANCE_INDEX,lW=Ls.NUMBER_OF_PROPERTIES,oc={positionHighAndSize:0,positionLowAndOutline:1,compressedAttribute0:2,compressedAttribute1:3,scaleByDistance:4,distanceDisplayConditionAndDisableDepth:5};function vf(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(lW),this._maxPixelSize=1,this._baseVolume=new se,this._baseVolumeWC=new se,this._baseVolume2D=new se,this._boundingVolume=new se,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=te.SCENE3D,this._maxTotalPointSize=1,this._buffersUsage=[Ne.STATIC_DRAW,Ne.STATIC_DRAW,Ne.STATIC_DRAW,Ne.STATIC_DRAW,Ne.STATIC_DRAW,Ne.STATIC_DRAW,Ne.STATIC_DRAW,Ne.STATIC_DRAW,Ne.STATIC_DRAW];let t=this;this._uniforms={u_maxTotalPointSize:function(){return t._maxTotalPointSize}}}Object.defineProperties(vf.prototype,{length:{get:function(){return uW(this),this._pointPrimitives.length}}});function qce(e){let t=e.length;for(let n=0;n<t;++n)e[n]&&e[n]._destroy()}vf.prototype.add=function(e){let t=new Ls(e,this);return t._index=this._pointPrimitives.length,this._pointPrimitives.push(t),this._createVertexArray=!0,t};vf.prototype.remove=function(e){return this.contains(e)?(this._pointPrimitives[e._index]=null,this._pointPrimitivesRemoved=!0,this._createVertexArray=!0,e._destroy(),!0):!1};vf.prototype.removeAll=function(){qce(this._pointPrimitives),this._pointPrimitives=[],this._pointPrimitivesToUpdate=[],this._pointPrimitivesToUpdateIndex=0,this._pointPrimitivesRemoved=!1,this._createVertexArray=!0};function uW(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}}vf.prototype._updatePointPrimitive=function(e,t){e._dirty||(this._pointPrimitivesToUpdate[this._pointPrimitivesToUpdateIndex++]=e),++this._propertiesChanged[t]};vf.prototype.contains=function(e){return u(e)&&e._pointPrimitiveCollection===this};vf.prototype.get=function(e){return uW(this),this._pointPrimitives[e]};vf.prototype.computeNewBuffersUsage=function(){let e=this._buffersUsage,t=!1,n=this._propertiesChanged;for(let i=0;i<lW;++i){let o=n[i]===0?Ne.STATIC_DRAW:Ne.STREAM_DRAW;t=t||e[i]!==o,e[i]=o}return t};function Bje(e,t,n){return new sp(e,[{index:oc.positionHighAndSize,componentsPerAttribute:4,componentDatatype:X.FLOAT,usage:n[cW]},{index:oc.positionLowAndShow,componentsPerAttribute:4,componentDatatype:X.FLOAT,usage:n[cW]},{index:oc.compressedAttribute0,componentsPerAttribute:4,componentDatatype:X.FLOAT,usage:n[Hce]},{index:oc.compressedAttribute1,componentsPerAttribute:4,componentDatatype:X.FLOAT,usage:n[Wce]},{index:oc.scaleByDistance,componentsPerAttribute:4,componentDatatype:X.FLOAT,usage:n[Gce]},{index:oc.distanceDisplayConditionAndDisableDepth,componentsPerAttribute:3,componentDatatype:X.FLOAT,usage:n[jce]}],t)}var sW=new jn;function Yce(e,t,n,i){let o=i._index,r=i._getActualPosition();e._mode===te.SCENE3D&&(se.expand(e._baseVolume,r,e._baseVolume),e._boundingVolumeDirty=!0),jn.fromCartesian(r,sW);let s=i.pixelSize,a=i.outlineWidth;e._maxPixelSize=Math.max(e._maxPixelSize,s+a);let c=n[oc.positionHighAndSize],l=sW.high;c(o,l.x,l.y,l.z,s);let f=n[oc.positionLowAndOutline],d=sW.low;f(o,d.x,d.y,d.z,a)}var iV=65536,_M=256;function Xce(e,t,n,i){let o=i._index,r=i.color,s=i.getPickId(t).color,a=i.outlineColor,c=H.floatToByte(r.red),l=H.floatToByte(r.green),f=H.floatToByte(r.blue),d=c*iV+l*_M+f;c=H.floatToByte(a.red),l=H.floatToByte(a.green),f=H.floatToByte(a.blue);let p=c*iV+l*_M+f;c=H.floatToByte(s.red),l=H.floatToByte(s.green),f=H.floatToByte(s.blue);let g=c*iV+l*_M+f,m=H.floatToByte(r.alpha)*iV+H.floatToByte(a.alpha)*_M+H.floatToByte(s.alpha),x=n[oc.compressedAttribute0];x(o,d,p,g,m)}function Kce(e,t,n,i){let o=i._index,r=0,s=1,a=1,c=1,l=i.translucencyByDistance;u(l)&&(r=l.near,s=l.nearValue,a=l.far,c=l.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=P.clamp(s,0,1),s=s===1?255:s*255|0;let d=(f?1:0)*_M+s;c=P.clamp(c,0,1),c=c===1?255:c*255|0;let p=c,g=n[oc.compressedAttribute1];g(o,d,p,r,a)}function Zce(e,t,n,i){let o=i._index,r=n[oc.scaleByDistance],s=0,a=1,c=1,l=1,f=i.scaleByDistance;u(f)&&(s=f.near,a=f.nearValue,c=f.far,l=f.farValue,(a!==1||l!==1)&&(e._shaderScaleByDistance=!0)),r(o,s,a,c,l)}function $ce(e,t,n,i){let o=i._index,r=n[oc.distanceDisplayConditionAndDisableDepth],s=0,a=Number.MAX_VALUE,c=i.distanceDisplayCondition;u(c)&&(s=c.near,a=c.far,s*=s,a*=a,e._shaderDistanceDisplayCondition=!0);let l=i.disableDepthTestDistance;l*=l,l>0&&(e._shaderDisableDepthDistance=!0,l===Number.POSITIVE_INFINITY&&(l=-1)),r(o,s,a,l)}function kje(e,t,n,i){Yce(e,t,n,i),Xce(e,t,n,i),Kce(e,t,n,i),Zce(e,t,n,i),$ce(e,t,n,i)}function aW(e,t,n,i,o,r){let s;i.mode===te.SCENE3D?(s=e._baseVolume,e._boundingVolumeDirty=!0):s=e._baseVolume2D;let a=[];for(let c=0;c<n;++c){let l=t[c],f=l.position,d=Ls._computeActualPosition(f,i,o);u(d)&&(l._setActualPosition(d),r?a.push(d):se.expand(s,d,s))}r&&se.fromPoints(a,s)}function Uje(e,t){let n=t.mode,i=e._pointPrimitives,o=e._pointPrimitivesToUpdate,r=e._modelMatrix;e._createVertexArray||e._mode!==n||n!==te.SCENE3D&&!F.equals(r,e.modelMatrix)?(e._mode=n,F.clone(e.modelMatrix,r),e._createVertexArray=!0,(n===te.SCENE3D||n===te.SCENE2D||n===te.COLUMBUS_VIEW)&&aW(e,i,i.length,t,r,!0)):n===te.MORPHING?aW(e,i,i.length,t,r,!0):(n===te.SCENE2D||n===te.COLUMBUS_VIEW)&&aW(e,o,e._pointPrimitivesToUpdateIndex,t,r,!1)}function Vje(e,t,n){let o=t.camera.getPixelSize(n,t.context.drawingBufferWidth,t.context.drawingBufferHeight)*e._maxPixelSize;n.radius+=o}var zje=[];vf.prototype.update=function(e){if(uW(this),!this.show)return;this._maxTotalPointSize=Ut.maximumAliasedPointSize,Uje(this,e);let n=this._pointPrimitives.length,i=this._pointPrimitivesToUpdate,o=this._pointPrimitivesToUpdateIndex,r=this._propertiesChanged,s=this._createVertexArray,a,c=e.context,l=e.passes,f=l.pick;if(s||!f&&this.computeNewBuffersUsage()){this._createVertexArray=!1;for(let w=0;w<lW;++w)r[w]=0;if(this._vaf=this._vaf&&this._vaf.destroy(),n>0){this._vaf=Bje(c,n,this._buffersUsage),a=this._vaf.writers;for(let w=0;w<n;++w){let D=this._pointPrimitives[w];D._dirty=!1,kje(this,c,a,D)}this._vaf.commit()}this._pointPrimitivesToUpdateIndex=0}else if(o>0){let w=zje;w.length=0,(r[cW]||r[Lje]||r[Nje])&&w.push(Yce),(r[Hce]||r[Mje])&&w.push(Xce),(r[Rje]||r[Wce])&&w.push(Kce),r[Gce]&&w.push(Zce),(r[jce]||r[Fje])&&w.push($ce);let D=w.length;if(a=this._vaf.writers,o/n>.1){for(let O=0;O<o;++O){let R=i[O];R._dirty=!1;for(let L=0;L<D;++L)w[L](this,c,a,R)}this._vaf.commit()}else{for(let O=0;O<o;++O){let R=i[O];R._dirty=!1;for(let L=0;L<D;++L)w[L](this,c,a,R);this._vaf.subCommit(R._index,1)}this._vaf.endSubCommits()}this._pointPrimitivesToUpdateIndex=0}if(o>n*1.5&&(i.length=n),!u(this._vaf)||!u(this._vaf.va))return;this._boundingVolumeDirty&&(this._boundingVolumeDirty=!1,se.transform(this._baseVolume,this.modelMatrix,this._baseVolumeWC));let d,p=F.IDENTITY;e.mode===te.SCENE3D?(p=this.modelMatrix,d=se.clone(this._baseVolumeWC,this._boundingVolume)):d=se.clone(this._baseVolume2D,this._boundingVolume),Vje(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=ke.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=ke.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 Ue({sources:[pM]}),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 Ue({defines:["OPAQUE"],sources:[py]}),this._sp=Yt.replaceCache({context:c,shaderProgram:this._sp,vertexShaderSource:m,fragmentShaderSource:x,attributeLocations:oc}),x=new Ue({defines:["TRANSLUCENT"],sources:[py]}),this._spTranslucent=Yt.replaceCache({context:c,shaderProgram:this._spTranslucent,vertexShaderSource:m,fragmentShaderSource:x,attributeLocations:oc})),this._blendOption===Co.OPAQUE&&(x=new Ue({sources:[py]}),this._sp=Yt.replaceCache({context:c,shaderProgram:this._sp,vertexShaderSource:m,fragmentShaderSource:x,attributeLocations:oc})),this._blendOption===Co.TRANSLUCENT&&(x=new Ue({sources:[py]}),this._spTranslucent=Yt.replaceCache({context:c,shaderProgram:this._spTranslucent,vertexShaderSource:m,fragmentShaderSource:x,attributeLocations:oc})),this._compiledShaderScaleByDistance=this._shaderScaleByDistance,this._compiledShaderTranslucencyByDistance=this._shaderTranslucencyByDistance,this._compiledShaderDistanceDisplayCondition=this._shaderDistanceDisplayCondition,this._compiledShaderDisableDepthDistance=this._shaderDisableDepthDistance);let b,T,A,C,S=e.commandList;if(l.render||f){let w=this._colorCommands,D=this._blendOption===Co.OPAQUE,O=this._blendOption===Co.OPAQUE_AND_TRANSLUCENT;b=this._vaf.va,T=b.length,w.length=T;let R=O?T*2:T;for(C=0;C<R;++C){let L=D||O&&C%2===0;A=w[C],u(A)||(A=w[C]=new Je),A.primitiveType=Me.POINTS,A.pass=L||!O?Ee.OPAQUE:Ee.TRANSLUCENT,A.owner=this;let N=O?Math.floor(C/2):C;A.boundingVolume=d,A.modelMatrix=p,A.shaderProgram=L?this._sp:this._spTranslucent,A.uniformMap=this._uniforms,A.vertexArray=b[N].va,A.renderState=L?this._rsOpaque:this._rsTranslucent,A.debugShowBoundingVolume=this.debugShowBoundingVolume,A.pickId="v_pickColor",S.push(A)}}};vf.prototype.isDestroyed=function(){return!1};vf.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(),qce(this._pointPrimitives),le(this)};var NC=vf;var Qce=[Int8Array,Uint8Array,Uint8ClampedArray,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array],fW=1,gM=8,xM=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!==fW)throw new Error(`Got v${o} data when expected v${fW}.`);let r=Qce[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=Qce.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,gM,t),this.coords=new this.ArrayType(this.data,gM+a+c,t*2),this._pos=t*2,this._finished=!0):(this.data=new ArrayBuffer(gM+s+a+c),this.ids=new this.IndexArrayType(this.data,gM,t),this.coords=new this.ArrayType(this.data,gM+a+c,t*2),this._pos=0,this._finished=!1,new Uint8Array(this.data,0,2).set([219,(fW<<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 hW(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],l=[];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],A=s[2*b+1];T>=t&&T<=i&&A>=n&&A<=o&&l.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&&l.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 l}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=[],l=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++)Jce(r[2*b],r[2*b+1],t,n)<=l&&c.push(o[b]);continue}let g=p+d>>1,m=r[2*g],x=r[2*g+1];Jce(m,x,t,n)<=l&&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 hW(e,t,n,i,o,r){if(o-i<=n)return;let s=i+o>>1;ele(e,t,s,i,o,r),hW(e,t,n,i,s-1,1-r),hW(e,t,n,s+1,o,1-r)}function ele(e,t,n,i,o,r){for(;o>i;){if(o-i>600){let l=o-i+1,f=n-i+1,d=Math.log(l),p=.5*Math.exp(2*d/3),g=.5*Math.sqrt(d*p*(l-p)/l)*(f-l/2<0?-1:1),m=Math.max(i,Math.floor(n-f*p/l+g)),x=Math.min(o,Math.floor(n+(l-f)*p/l+g));ele(e,t,n,m,x,r)}let s=t[2*n+r],a=i,c=o;for(yM(e,t,i,n),t[2*o+r]>s&&yM(e,t,i,o);a<c;){for(yM(e,t,a,c),a++,c--;t[2*a+r]<s;)a++;for(;t[2*c+r]>s;)c--}t[2*i+r]===s?yM(e,t,i,c):(c++,yM(e,t,c,o)),c<=n&&(i=c+1),n<=c&&(o=c-1)}}function yM(e,t,n,i){dW(e,n,i),dW(t,2*n,2*i),dW(t,2*n+1,2*i+1)}function dW(e,t,n){let i=e[t];e[t]=e[n],e[n]=i}function Jce(e,t,n,i){let o=e-n,r=t-i;return o*o+r*r}function Yd(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 tle(e,t){e.x-=t,e.y-=t,e.width+=t*2,e.height+=t*2}var Hje=new We;function nle(e,t,n,i,o){if(u(e._labelCollection)&&i._clusterLabels?o=Qg.getScreenSpaceBoundingBox(e,t,o):u(e._billboardCollection)&&i._clusterBillboards?o=fo.getScreenSpaceBoundingBox(e,t,o):u(e._pointPrimitiveCollection)&&i._clusterPoints&&(o=Ls.getScreenSpaceBoundingBox(e,t,o)),tle(o,n),i._clusterLabels&&!u(e._labelCollection)&&u(e.id)&&ole(i,e.id.id)&&u(e.id._label)){let r=i._collectionIndicesByEntity[e.id.id].labelIndex,s=i._labelCollection.get(r),a=Qg.getScreenSpaceBoundingBox(s,t,Hje);tle(a,n),o=We.union(o,a,o)}return o}function Gje(e,t){if(e.clusterShow=!0,!u(e._labelCollection)&&u(e.id)&&ole(t,e.id.id)&&u(e.id._label)){let n=t._collectionIndicesByEntity[e.id.id].labelIndex,i=t._labelCollection.get(n);i.clusterShow=!0}}function ile(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 ole(e,t){return u(e)&&u(e._collectionIndicesByEntity[t])&&u(e._collectionIndicesByEntity[t].labelIndex)}function mW(e,t,n,i,o){if(!u(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===te.SCENE3D&&!i.isPointVisible(a.position))continue;let c=o._clusterLabels&&u(a._labelCollection),l=o._clusterBillboards&&u(a.id._billboard),f=o._clusterPoints&&u(a.id._point);if(c&&(f||l))continue;let d=a.computeScreenSpacePosition(n);u(d)&&t.push({index:s,collection:e,clustered:!1,coord:d})}}var Wje=new We,jje=new We,qje=new We;function Yje(e){return function(t){if(u(t)&&t<.05||!e.enabled)return;let n=e._scene,i=e._labelCollection,o=e._billboardCollection,r=e._pointCollection;if(!u(i)&&!u(o)&&!u(r)||!e._clusterBillboards&&!e._clusterLabels&&!e._clusterPoints)return;let s=e._clusterLabelCollection,a=e._clusterBillboardCollection,c=e._clusterPointCollection;u(s)?s.removeAll():s=e._clusterLabelCollection=new im({scene:n}),u(a)?a.removeAll():a=e._clusterBillboardCollection=new uu({scene:n}),u(c)?c.removeAll():c=e._clusterPointCollection=new NC;let l=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 h_(x,b),A=[];e._clusterLabels&&mW(i,A,n,T,e),e._clusterBillboards&&mW(o,A,n,T,e),e._clusterPoints&&mW(r,A,n,T,e);let C,S,w,D,O,R,L,N,_,E,v,I;if(A.length>0){let M=new xM(A.length,64,Uint32Array);for(let B=0;B<A.length;++B)M.add(A[B].coord.x,A[B].coord.y);if(M.finish(),m<g)for(w=d.length,C=0;C<w;++C){let B=d[C];if(!T.isPointVisible(B.position))continue;let V=fo._computeScreenSpacePosition(F.IDENTITY,B.position,h.ZERO,z.ZERO,n);if(!u(V))continue;let U=1-m/g,G=B.width=B.width*U,k=B.height=B.height*U;G=Math.max(G,B.minimumWidth),k=Math.max(k,B.minimumHeight);let Y=V.x-G*.5,j=V.y-k*.5,$=V.x+G,W=V.y+k;for(O=M.range(Y,j,$,W),R=O.length,E=0,_=[],S=0;S<R;++S)L=O[S],N=A[L],N.clustered||(++E,v=N.collection,I=N.index,_.push(v.get(I).id));if(E>=f)for(ile(B.position,E,_,e),p.push(B),S=0;S<R;++S)A[O[S]].clustered=!0}for(w=A.length,C=0;C<w;++C){let B=A[C];if(B.clustered)continue;B.clustered=!0,v=B.collection,I=B.index;let V=v.get(I);D=nle(V,B.coord,l,e,Wje);let U=We.clone(D,jje);O=M.range(D.x,D.y,D.x+D.width,D.y+D.height),R=O.length;let G=h.clone(V.position);for(E=1,_=[V.id],S=0;S<R;++S)if(L=O[S],N=A[L],!N.clustered){let k=N.collection.get(N.index),Y=nle(k,N.coord,l,e,qje);h.add(k.position,G,G),We.union(U,Y,U),++E,_.push(k.id)}if(E>=f){let k=h.multiplyByScalar(G,1/E,G);for(ile(k,E,_,e),p.push({position:k,width:U.width,height:U.height,minimumWidth:D.width,minimumHeight:D.height}),S=0;S<R;++S)A[O[S]].clustered=!0}else Gje(V,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}}Yd.prototype._initialize=function(e){this._scene=e;let t=Yje(this);this._cluster=t,this._removeEventListener=e.camera.changed.addEventListener(t)};Object.defineProperties(Yd.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 _W(e,t,n,i){return function(o){let r=this[e];u(this._collectionIndicesByEntity)||(this._collectionIndicesByEntity={});let s=this._collectionIndicesByEntity[o.id];if(u(s)||(s=this._collectionIndicesByEntity[o.id]={billboardIndex:void 0,labelIndex:void 0,pointIndex:void 0}),u(r)&&u(s[i]))return r.get(s[i]);u(r)||(r=this[e]=new t({scene:this._scene}));let a,c,l=this[n];l.length>0?(a=l.pop(),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 gW(e,t){let n=e._collectionIndicesByEntity[t];!u(n.billboardIndex)&&!u(n.labelIndex)&&!u(n.pointIndex)&&delete e._collectionIndicesByEntity[t]}Yd.prototype.getLabel=_W("_labelCollection",im,"_unusedLabelIndices","labelIndex");Yd.prototype.removeLabel=function(e){let t=this._collectionIndicesByEntity&&this._collectionIndicesByEntity[e.id];if(!u(this._labelCollection)||!u(t)||!u(t.labelIndex))return;let n=t.labelIndex;t.labelIndex=void 0,gW(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};Yd.prototype.getBillboard=_W("_billboardCollection",uu,"_unusedBillboardIndices","billboardIndex");Yd.prototype.removeBillboard=function(e){let t=this._collectionIndicesByEntity&&this._collectionIndicesByEntity[e.id];if(!u(this._billboardCollection)||!u(t)||!u(t.billboardIndex))return;let n=t.billboardIndex;t.billboardIndex=void 0,gW(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};Yd.prototype.getPoint=_W("_pointCollection",NC,"_unusedPointIndices","pointIndex");Yd.prototype.removePoint=function(e){let t=this._collectionIndicesByEntity&&this._collectionIndicesByEntity[e.id];if(!u(this._pointCollection)||!u(t)||!u(t.pointIndex))return;let n=t.pointIndex;t.pointIndex=void 0,gW(this,e.id);let i=this._pointCollection.get(n);i.show=!1,i.id=void 0,this._unusedPointIndices.push(n),this._clusterDirty=!0};function pW(e){if(!u(e))return;let t=e.length;for(let n=0;n<t;++n)e.get(n).clusterShow=!0}function Xje(e){e.enabled||(u(e._clusterLabelCollection)&&e._clusterLabelCollection.destroy(),u(e._clusterBillboardCollection)&&e._clusterBillboardCollection.destroy(),u(e._clusterPointCollection)&&e._clusterPointCollection.destroy(),e._clusterLabelCollection=void 0,e._clusterBillboardCollection=void 0,e._clusterPointCollection=void 0,pW(e._labelCollection),pW(e._billboardCollection),pW(e._pointCollection))}Yd.prototype.update=function(e){if(!this.show)return;let t;u(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),u(this._billboardCollection)&&this._billboardCollection.length>0&&!u(this._billboardCollection.get(0).width)&&(t=e.commandList,e.commandList=[],this._billboardCollection.update(e),e.commandList=t),this._enabledDirty&&(this._enabledDirty=!1,Xje(this),this._clusterDirty=!0),this._clusterDirty&&(this._clusterDirty=!1,this._cluster()),u(this._clusterLabelCollection)&&this._clusterLabelCollection.update(e),u(this._clusterBillboardCollection)&&this._clusterBillboardCollection.update(e),u(this._clusterPointCollection)&&this._clusterPointCollection.update(e),u(this._labelCollection)&&this._labelCollection.update(e),u(this._billboardCollection)&&this._billboardCollection.update(e),u(this._pointCollection)&&this._pointCollection.update(e)};Yd.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(),u(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 hu=Yd;function yW(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 Ms(this),this._entityCluster=new hu}Object.defineProperties(yW.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){Lr.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}}});yW.prototype.update=function(e){return!0};var bM=yW;var rle={};rle.computePositions=function(e,t,n,i,o){let r=e*.5,s=-r,a=i+i,c=o?2*a:a,l=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*P.TWO_PI,b=Math.cos(x),T=Math.sin(x),A=b*n,C=T*n,S=b*t,w=T*t;l[p+g]=A,l[p+g+1]=C,l[p+g+2]=s,l[p+m]=S,l[p+m+1]=w,l[p+m+2]=r,p+=3,o&&(l[d++]=A,l[d++]=C,l[d++]=s,l[d++]=S,l[d++]=w,l[d++]=r)}return l};var pb=rle;var xW=new z,Kje=new h,Zje=new h,$je=new h,Qje=new h;function m_(e){e=y(e,y.EMPTY_OBJECT);let t=e.length,n=e.topRadius,i=e.bottomRadius,o=y(e.vertexFormat,Pe.DEFAULT),r=y(e.slices,128);this._length=t,this._topRadius=n,this._bottomRadius=i,this._vertexFormat=Pe.clone(o),this._slices=r,this._offsetAttribute=e.offsetAttribute,this._workerName="createCylinderGeometry"}m_.packedLength=Pe.packedLength+5;m_.pack=function(e,t,n){return n=y(n,0),Pe.pack(e._vertexFormat,t,n),n+=Pe.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 sle=new Pe,FC={vertexFormat:sle,length:void 0,topRadius:void 0,bottomRadius:void 0,slices:void 0,offsetAttribute:void 0};m_.unpack=function(e,t,n){t=y(t,0);let i=Pe.unpack(e,t,sle);t+=Pe.packedLength;let o=e[t++],r=e[t++],s=e[t++],a=e[t++],c=e[t];return u(n)?(n._vertexFormat=Pe.clone(i,n._vertexFormat),n._length=o,n._topRadius=r,n._bottomRadius=s,n._slices=a,n._offsetAttribute=c===-1?void 0:c,n):(FC.length=o,FC.topRadius=r,FC.bottomRadius=s,FC.slices=a,FC.offsetAttribute=c===-1?void 0:c,new m_(FC))};m_.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,l=pb.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,R=0,L=0,N=0,_=Math.atan2(i-n,t),E=Kje;E.z=Math.sin(_);let v=Math.cos(_),I=$je,M=Zje;for(m=0;m<r;m++){let B=m/r*P.TWO_PI,V=v*Math.cos(B),U=v*Math.sin(B);x&&(E.x=V,E.y=U,O&&(I=h.normalize(h.cross(h.UNIT_Z,E,I),I)),o.normal&&(d[R++]=E.x,d[R++]=E.y,d[R++]=E.z,d[R++]=E.x,d[R++]=E.y,d[R++]=E.z),o.tangent&&(p[L++]=I.x,p[L++]=I.y,p[L++]=I.z,p[L++]=I.x,p[L++]=I.y,p[L++]=I.z),o.bitangent&&(M=h.normalize(h.cross(E,I,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[R++]=0,d[R++]=0,d[R++]=-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[R++]=0,d[R++]=0,d[R++]=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=Fe.createTypedArray(c,b),A=0,C=0;for(m=0;m<r-1;m++)T[A++]=C,T[A++]=C+2,T[A++]=C+3,T[A++]=C,T[A++]=C+3,T[A++]=C+1,C+=2;for(T[A++]=s-2,T[A++]=0,T[A++]=1,T[A++]=s-2,T[A++]=1,T[A++]=s-1,m=1;m<r-1;m++)T[A++]=s+m+1,T[A++]=s+m,T[A++]=s;for(m=1;m<r-1;m++)T[A++]=a,T[A++]=a+m,T[A++]=a+m+1;let S=0;if(o.st){let O=Math.max(n,i);for(m=0;m<c;m++){let R=h.fromArray(l,m*3,Qje);f[S++]=(R.x+O)/(2*O),f[S++]=(R.y+O)/(2*O)}}let w=new fn;o.position&&(w.position=new we({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:l})),o.normal&&(w.normal=new we({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:d})),o.tangent&&(w.tangent=new we({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:p})),o.bitangent&&(w.bitangent=new we({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:g})),o.st&&(w.st=new we({componentDatatype:X.FLOAT,componentsPerAttribute:2,values:f})),xW.x=t*.5,xW.y=Math.max(i,n);let D=new se(h.ZERO,z.magnitude(xW));if(u(e._offsetAttribute)){t=l.length;let O=e._offsetAttribute===tn.NONE?0:1,R=new Uint8Array(t/3).fill(O);w.applyOffset=new we({componentDatatype:X.UNSIGNED_BYTE,componentsPerAttribute:1,values:R})}return new st({attributes:w,indices:T,primitiveType:Me.TRIANGLES,boundingSphere:D,offsetAttribute:e._offsetAttribute})};var bW;m_.getUnitCylinder=function(){return u(bW)||(bW=m_.createGeometry(new m_({topRadius:1,bottomRadius:1,length:1,vertexFormat:Pe.POSITION_ONLY}))),bW};var TM=m_;var TW=new z;function BC(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"}BC.packedLength=6;BC.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 _b={length:void 0,topRadius:void 0,bottomRadius:void 0,slices:void 0,numberOfVerticalLines:void 0,offsetAttribute:void 0};BC.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 u(n)?(n._length=i,n._topRadius=o,n._bottomRadius=r,n._slices=s,n._numberOfVerticalLines=a,n._offsetAttribute=c===-1?void 0:c,n):(_b.length=i,_b.topRadius=o,_b.bottomRadius=r,_b.slices=s,_b.numberOfVerticalLines=a,_b.offsetAttribute=c===-1?void 0:c,new BC(_b))};BC.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=pb.computePositions(t,n,i,o,!1),c=o*2,l;if(r>0){let x=Math.min(r,o);l=Math.round(o/x),c+=x}let f=Fe.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+=l)f[d++]=p,f[d++]=p+o;let g=new fn;g.position=new we({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:a}),TW.x=t*.5,TW.y=Math.max(i,n);let m=new se(h.ZERO,z.magnitude(TW));if(u(e._offsetAttribute)){t=a.length;let x=e._offsetAttribute===tn.NONE?0:1,b=new Uint8Array(t/3).fill(x);g.applyOffset=new we({componentDatatype:X.UNSIGNED_BYTE,componentsPerAttribute:1,values:b})}return new st({attributes:g,indices:f,primitiveType:Me.LINES,boundingSphere:m,offsetAttribute:e._offsetAttribute})};var AM=BC;var ale=h.ZERO,cle=new h,Jje=new h,lle=new H;function e7e(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 mu(e,t){oi.call(this,{entity:e,scene:t,geometryOptions:new e7e(e),geometryPropertyName:"cylinder",observedPropertyNames:["availability","position","orientation","cylinder"]}),this._onEntityPropertyChanged(e,"cylinder",e.cylinder,void 0)}u(Object.create)&&(mu.prototype=Object.create(oi.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=Un.fromDistanceDisplayCondition(o),s={show:i,distanceDisplayCondition:r,color:void 0,offset:void 0};if(this._materialProperty instanceof Nt){let a;u(this._materialProperty.color)&&(this._materialProperty.color.isConstant||n)&&(a=this._materialProperty.color.getValue(e,lle)),u(a)||(a=H.WHITE),s.color=kt.fromColor(a)}return u(this._options.offsetAttribute)&&(s.offset=Yi.fromCartesian3(q.getValueOrDefault(this._terrainOffsetProperty,e,ale,cle))),new yt({id:t,geometry:new TM(this._options),modelMatrix:t.computeModelMatrixForHeightReference(e,t.cylinder.heightReference,this._options.length*.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,lle),o=this._distanceDisplayConditionProperty.getValue(e),r={show:new gn(n&&t.isShowing&&this._showProperty.getValue(e)&&this._showOutlineProperty.getValue(e)),color:kt.fromColor(i),distanceDisplayCondition:Un.fromDistanceDisplayCondition(o),offset:void 0};return u(this._options.offsetAttribute)&&(r.offset=Yi.fromCartesian3(q.getValueOrDefault(this._terrainOffsetProperty,e,ale,cle))),new yt({id:t,geometry:new AM(this._options),modelMatrix:t.computeModelMatrixForHeightReference(e,t.cylinder.heightReference,this._options.length*.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!u(e.position)||!u(t.length)||!u(t.topRadius)||!u(t.bottomRadius)||oi.prototype._isHidden.call(this,e,t)};mu.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)};mu.prototype._setStaticOptions=function(e,t){let n=q.getValueOrDefault(t.heightReference,Ve.MINIMUM_VALUE,Ge.NONE),i=this._options;i.vertexFormat=this._materialProperty instanceof Nt?nn.VERTEX_FORMAT:so.MaterialSupport.TEXTURED.vertexFormat,i.length=t.length.getValue(Ve.MINIMUM_VALUE),i.topRadius=t.topRadius.getValue(Ve.MINIMUM_VALUE),i.bottomRadius=t.bottomRadius.getValue(Ve.MINIMUM_VALUE),i.slices=q.getValueOrUndefined(t.slices,Ve.MINIMUM_VALUE),i.numberOfVerticalLines=q.getValueOrUndefined(t.numberOfVerticalLines,Ve.MINIMUM_VALUE),i.offsetAttribute=n!==Ge.NONE?tn.ALL:void 0};mu.prototype._onEntityPropertyChanged=yp;mu.DynamicGeometryUpdater=kC;function kC(e,t,n){ii.call(this,e,t,n)}u(Object.create)&&(kC.prototype=Object.create(ii.prototype),kC.prototype.constructor=kC);kC.prototype._isHidden=function(e,t,n){let i=this._options,o=q.getValueOrUndefined(e.position,n,Jje);return!u(o)||!u(i.length)||!u(i.topRadius)||!u(i.bottomRadius)||ii.prototype._isHidden.call(this,e,t,n)};kC.prototype._setOptions=function(e,t,n){let i=q.getValueOrDefault(t.heightReference,n,Ge.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!==Ge.NONE?tn.ALL:void 0};var CM=mu;var t7e={UNBOUNDED:0,CLAMPED:1,LOOP_STOP:2},Fr=Object.freeze(t7e);var n7e={TICK_DEPENDENT:0,SYSTEM_CLOCK_MULTIPLIER:1,SYSTEM_CLOCK:2},ho=Object.freeze(n7e);var i7e={NONE:0,HOLD:1,EXTRAPOLATE:2},pu=Object.freeze(i7e);var ule=ro(Yl(),1);function o7e(e){let t=new ule.default(e);t.normalize();let n=t.path(),i=n.lastIndexOf("/");return i!==-1&&(n=n.substr(i+1)),n}var p_=o7e;var r7e=P.factorial;function AW(e,t,n,i,o,r){let s=0,a,c,l;if(i>0){for(c=0;c<o;c++){for(a=!1,l=0;l<r.length&&!a;l++)c===r[l]&&(a=!0);a||(r.push(c),s+=AW(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,l=0;l<r.length&&!a;l++)c===r[l]&&(a=!0);a||(s*=e-n[t[c]])}return s}var oV={type:"Hermite"};oV.getRequiredDataPoints=function(e,t){return t=y(t,0),Math.max(Math.floor((e+1)/(t+1)),2)};oV.interpolateOrderZero=function(e,t,n,i,o){u(o)||(o=new Array(i));let r,s,a,c,l,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]],A=t[m[s+r]],C;A-T<=0?(f=m[s]*i+i*r+c,C=n[f],p[c][r].push(C/r7e(r))):(C=p[c][r-1][s+1]-p[c][r-1][s],p[c][r].push(C/(A-T))),b=b||C!==0}b||(x=r-1)}}for(a=0,l=0;a<=l;a++)for(r=a;r<=x;r++){let b=AW(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 s7e=[];oV.interpolate=function(e,t,n,i,o,r,s){let a=i*(r+1);u(s)||(s=new Array(a));for(let T=0;T<a;T++)s[T]=0;let c=t.length,l=new Array(c*(o+1)),f;for(f=0;f<c;f++)for(let T=0;T<o+1;T++)l[f*(o+1)+T]=f;let d=l.length,p=s7e,g=a7e(p,l,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 A=AW(e,l,t,T,f,m),C=Math.floor(f*(1-f)/2)+d*f;for(let S=0;S<i;S++){let w=Math.floor(S*x),D=p[w+C];s[S+T*i]+=D*A}}return s};function a7e(e,t,n,i,o,r){let s,a,c=-1,l=t.length,f=l*(l+1)/2;for(let d=0;d<o;d++){let p=Math.floor(d*f);for(s=0;s<l;s++)a=t[s]*o*(r+1)+d,e[p+s]=i[a];for(let g=1;g<l;g++){let m=0,x=Math.floor(g*(1-g)/2)+l*g,b=!1;for(s=0;s<l-g;s++){let T=n[t[s]],A=n[t[s+g]],C,S;if(A-T<=0)a=t[s]*o*(r+1)+o*g+d,C=i[a],S=C/P.factorial(g),e[p+x+m]=S,m++;else{let w=Math.floor((g-1)*(2-g)/2)+l*(g-1);C=e[p+w+s+1]-e[p+w+s],S=C/(A-T),e[p+x+m]=S,m++}b=b||C!==0}b&&(c=Math.max(c,g))}}return c}var EM=oV;var CW={type:"Lagrange"};CW.getRequiredDataPoints=function(e){return Math.max(e+1,2)};CW.interpolateOrderZero=function(e,t,n,i,o){u(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 l=t[r]-t[s];c*=(e-t[s])/l}for(s=0;s<i;s++)o[s]+=c*n[r*i+s]}return o};var SM=CW;var EW={type:"Linear"};EW.getRequiredDataPoints=function(e){return 2};EW.interpolateOrderZero=function(e,t,n,i,o){u(o)||(o=new Array(i));let r,s,a,c=t[0],l=t[1];for(r=0;r<i;r++)s=n[r],a=n[r+i],o[r]=((a-s)*e+l*s-c*a)/(l-c);return o};var gb=EW;function rc(e,t,n){this.clock=y(e,0),this.cone=y(t,0),this.magnitude=y(n,1)}rc.fromCartesian3=function(e,t){let n=e.x,i=e.y,o=e.z,r=n*n+i*i;return u(t)||(t=new rc),t.clock=Math.atan2(i,n),t.cone=Math.atan2(Math.sqrt(r),o),t.magnitude=Math.sqrt(r+o*o),t};rc.clone=function(e,t){if(u(e))return u(t)?(t.clock=e.clock,t.cone=e.cone,t.magnitude=e.magnitude,t):new rc(e.clock,e.cone,e.magnitude)};rc.normalize=function(e,t){return u(t)?(t.clock=e.clock,t.cone=e.cone,t.magnitude=1,t):new rc(e.clock,e.cone,1)};rc.equals=function(e,t){return e===t||u(e)&&u(t)&&e.clock===t.clock&&e.cone===t.cone&&e.magnitude===t.magnitude};rc.equalsEpsilon=function(e,t,n){return n=y(n,0),e===t||u(e)&&u(t)&&Math.abs(e.clock-t.clock)<=n&&Math.abs(e.cone-t.cone)<=n&&Math.abs(e.magnitude-t.magnitude)<=n};rc.prototype.equals=function(e){return rc.equals(this,e)};rc.prototype.clone=function(e){return rc.clone(this,e)};rc.prototype.equalsEpsilon=function(e,t){return rc.equalsEpsilon(this,e,t)};rc.prototype.toString=function(){return`(${this.clock}, ${this.cone}, ${this.magnitude})`};var wM=rc;var OM=ro(Yl(),1);var SW;typeof performance<"u"&&typeof performance.now=="function"&&isFinite(performance.now())?SW=function(){return performance.now()}:SW=function(){return Date.now()};var _i=SW;function wW(e){e=y(e,y.EMPTY_OBJECT);let t=e.currentTime,n=e.startTime,i=e.stopTime;u(t)?t=J.clone(t):u(n)?t=J.clone(n):u(i)?t=J.addDays(i,-1,new J):t=J.now(),u(n)?n=J.clone(n):n=J.clone(t),u(i)?i=J.clone(i):i=J.addDays(n,1,new J),this.startTime=n,this.stopTime=i,this.clockRange=y(e.clockRange,Fr.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=_i(),this.currentTime=t,this.multiplier=y(e.multiplier,1),this.shouldAnimate=y(e.shouldAnimate,!1),this.clockStep=y(e.clockStep,ho.SYSTEM_CLOCK_MULTIPLIER)}Object.defineProperties(wW.prototype,{currentTime:{get:function(){return this._currentTime},set:function(e){J.equals(this._currentTime,e)||(this._clockStep===ho.SYSTEM_CLOCK&&(this._clockStep=ho.SYSTEM_CLOCK_MULTIPLIER),this._currentTime=e)}},multiplier:{get:function(){return this._multiplier},set:function(e){this._multiplier!==e&&(this._clockStep===ho.SYSTEM_CLOCK&&(this._clockStep=ho.SYSTEM_CLOCK_MULTIPLIER),this._multiplier=e)}},clockStep:{get:function(){return this._clockStep},set:function(e){e===ho.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===ho.SYSTEM_CLOCK&&(this._clockStep=ho.SYSTEM_CLOCK_MULTIPLIER),this._shouldAnimate=e)}}});wW.prototype.tick=function(){let e=_i(),t=J.clone(this._currentTime);if(this.canAnimate&&this._shouldAnimate){let n=this._clockStep;if(n===ho.SYSTEM_CLOCK)t=J.now(t);else{let i=this._multiplier;if(n===ho.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===Fr.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===Fr.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 Xd=wW;function yb(){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(yb.prototype,{definitionChanged:{get:function(){return this._definitionChanged}},startTime:_l("startTime"),stopTime:_l("stopTime"),currentTime:_l("currentTime"),clockRange:_l("clockRange"),clockStep:_l("clockStep"),multiplier:_l("multiplier")});yb.prototype.clone=function(e){return u(e)||(e=new yb),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};yb.prototype.equals=function(e){return this===e||u(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};yb.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)};yb.prototype.getValue=function(e){return u(e)||(e=new Xd),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 Kd=yb;var c7e=H.WHITE,l7e=.1,u7e=new z(8,8),f7e=new z(0,0),d7e=new z(1,1);function UC(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(UC.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:ae("color"),cellAlpha:ae("cellAlpha"),lineCount:ae("lineCount"),lineThickness:ae("lineThickness"),lineOffset:ae("lineOffset")});UC.prototype.getType=function(e){return"Grid"};UC.prototype.getValue=function(e,t){return u(t)||(t={}),t.color=q.getValueOrClonedDefault(this._color,e,c7e,t.color),t.cellAlpha=q.getValueOrDefault(this._cellAlpha,e,l7e),t.lineCount=q.getValueOrClonedDefault(this._lineCount,e,u7e,t.lineCount),t.lineThickness=q.getValueOrClonedDefault(this._lineThickness,e,d7e,t.lineThickness),t.lineOffset=q.getValueOrClonedDefault(this._lineOffset,e,f7e,t.lineOffset),t};UC.prototype.equals=function(e){return this===e||e instanceof UC&&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 VC=UC;function zC(e){this._definitionChanged=new pe,this._color=void 0,this._colorSubscription=void 0,this.color=e}Object.defineProperties(zC.prototype,{isConstant:{get:function(){return q.isConstant(this._color)}},definitionChanged:{get:function(){return this._definitionChanged}},color:ae("color")});zC.prototype.getType=function(e){return"PolylineArrow"};zC.prototype.getValue=function(e,t){return u(t)||(t={}),t.color=q.getValueOrClonedDefault(this._color,e,H.WHITE,t.color),t};zC.prototype.equals=function(e){return this===e||e instanceof zC&&q.equals(this._color,e._color)};var HC=zC;var h7e=H.WHITE,m7e=H.TRANSPARENT,p7e=16,_7e=255;function GC(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(GC.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:ae("color"),gapColor:ae("gapColor"),dashLength:ae("dashLength"),dashPattern:ae("dashPattern")});GC.prototype.getType=function(e){return"PolylineDash"};GC.prototype.getValue=function(e,t){return u(t)||(t={}),t.color=q.getValueOrClonedDefault(this._color,e,h7e,t.color),t.gapColor=q.getValueOrClonedDefault(this._gapColor,e,m7e,t.gapColor),t.dashLength=q.getValueOrDefault(this._dashLength,e,p7e,t.dashLength),t.dashPattern=q.getValueOrDefault(this._dashPattern,e,_7e,t.dashPattern),t};GC.prototype.equals=function(e){return this===e||e instanceof GC&&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 WC=GC;var g7e=H.WHITE,y7e=.25,x7e=1;function jC(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(jC.prototype,{isConstant:{get:function(){return q.isConstant(this._color)&&q.isConstant(this._glow)}},definitionChanged:{get:function(){return this._definitionChanged}},color:ae("color"),glowPower:ae("glowPower"),taperPower:ae("taperPower")});jC.prototype.getType=function(e){return"PolylineGlow"};jC.prototype.getValue=function(e,t){return u(t)||(t={}),t.color=q.getValueOrClonedDefault(this._color,e,g7e,t.color),t.glowPower=q.getValueOrDefault(this._glowPower,e,y7e,t.glowPower),t.taperPower=q.getValueOrDefault(this._taperPower,e,x7e,t.taperPower),t};jC.prototype.equals=function(e){return this===e||e instanceof jC&&q.equals(this._color,e._color)&&q.equals(this._glowPower,e._glowPower)&&q.equals(this._taperPower,e._taperPower)};var qC=jC;var b7e=H.WHITE,T7e=H.BLACK,A7e=1;function YC(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(YC.prototype,{isConstant:{get:function(){return q.isConstant(this._color)&&q.isConstant(this._outlineColor)&&q.isConstant(this._outlineWidth)}},definitionChanged:{get:function(){return this._definitionChanged}},color:ae("color"),outlineColor:ae("outlineColor"),outlineWidth:ae("outlineWidth")});YC.prototype.getType=function(e){return"PolylineOutline"};YC.prototype.getValue=function(e,t){return u(t)||(t={}),t.color=q.getValueOrClonedDefault(this._color,e,b7e,t.color),t.outlineColor=q.getValueOrClonedDefault(this._outlineColor,e,T7e,t.outlineColor),t.outlineWidth=q.getValueOrDefault(this._outlineWidth,e,A7e),t};YC.prototype.equals=function(e){return this===e||e instanceof YC&&q.equals(this._color,e._color)&&q.equals(this._outlineColor,e._outlineColor)&&q.equals(this._outlineWidth,e._outlineWidth)};var _y=YC;function __(e,t){this._value=void 0,this._definitionChanged=new pe,this._eventHelper=new Or,this._referenceFrame=y(t,no.FIXED),this.setValue(e)}Object.defineProperties(__.prototype,{isConstant:{get:function(){let e=this._value;if(!u(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}}});__.prototype.getValue=function(e,t){return this.getValueInReferenceFrame(e,no.FIXED,t)};__.prototype.getValueInReferenceFrame=function(e,t,n){let i=this._value;if(!u(i))return;let o=i.length;u(n)||(n=new Array(o));let r=0,s=0;for(;r<o;){let c=i[r].getValueInReferenceFrame(e,t,n[r]);u(c)&&(n[s]=c,s++),r++}return n.length=s,n};__.prototype.setValue=function(e){let t=this._eventHelper;if(t.removeAll(),u(e)){this._value=e.slice();let n=e.length;for(let i=0;i<n;i++){let o=e[i];u(o)&&t.add(o.definitionChanged,__.prototype._raiseDefinitionChanged,this)}}else this._value=void 0;this._definitionChanged.raiseEvent(this)};__.prototype.equals=function(e){return this===e||e instanceof __&&this._referenceFrame===e._referenceFrame&&q.arrayEquals(this._value,e._value)};__.prototype._raiseDefinitionChanged=function(){this._definitionChanged.raiseEvent(this)};var g_=__;function gy(e){this._value=void 0,this._definitionChanged=new pe,this._eventHelper=new Or,this.setValue(e)}Object.defineProperties(gy.prototype,{isConstant:{get:function(){let e=this._value;if(!u(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}}});gy.prototype.getValue=function(e,t){let n=this._value;if(!u(n))return;let i=n.length;u(t)||(t=new Array(i));let o=0,r=0;for(;o<i;){let a=this._value[o].getValue(e,t[o]);u(a)&&(t[r]=a,r++),o++}return t.length=r,t};gy.prototype.setValue=function(e){let t=this._eventHelper;if(t.removeAll(),u(e)){this._value=e.slice();let n=e.length;for(let i=0;i<n;i++){let o=e[i];u(o)&&t.add(o.definitionChanged,gy.prototype._raiseDefinitionChanged,this)}}else this._value=void 0;this._definitionChanged.raiseEvent(this)};gy.prototype.equals=function(e){return this===e||e instanceof gy&&q.arrayEquals(this._value,e._value)};gy.prototype._raiseDefinitionChanged=function(){this._definitionChanged.raiseEvent(this)};var XC=gy;function xb(e){let t=e._targetProperty;if(!u(t)){let n=e._targetEntity;if(!u(n)){if(n=e._targetCollection.getById(e._targetId),!u(n)){e._targetEntity=e._targetProperty=void 0;return}n.definitionChanged.addEventListener(_u.prototype._onTargetEntityDefinitionChanged,e),e._targetEntity=n}let i=e._targetPropertyNames;t=e._targetEntity;for(let o=0,r=i.length;o<r&&u(t);++o)t=t[i[o]];e._targetProperty=t}return t}function _u(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(_u.prototype._onCollectionChanged,this)}Object.defineProperties(_u.prototype,{isConstant:{get:function(){return q.isConstant(xb(this))}},definitionChanged:{get:function(){return this._definitionChanged}},referenceFrame:{get:function(){let e=xb(this);return u(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 xb(this)}}});_u.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 _u(e,n,i)};_u.prototype.getValue=function(e,t){let n=xb(this);return u(n)?n.getValue(e,t):void 0};_u.prototype.getValueInReferenceFrame=function(e,t,n){let i=xb(this);return u(i)?i.getValueInReferenceFrame(e,t,n):void 0};_u.prototype.getType=function(e){let t=xb(this);return u(t)?t.getType(e):void 0};_u.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};_u.prototype._onTargetEntityDefinitionChanged=function(e,t,n,i){u(this._targetProperty)&&this._targetPropertyNames[0]===t&&(this._targetProperty=void 0,this._definitionChanged.raiseEvent(this))};_u.prototype._onCollectionChanged=function(e,t,n){let i=this._targetEntity;u(i)&&n.indexOf(i)!==-1?(i.definitionChanged.removeEventListener(_u.prototype._onTargetEntityDefinitionChanged,this),this._targetEntity=this._targetProperty=void 0):u(i)||(i=xb(this),u(i)&&this._definitionChanged.raiseEvent(this))};var y_=_u;var C7e={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){u(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-P.TWO_PI,o=a}},unpackInterpolationResult:function(e,t,n,i,o){return o=e[0],o<0?o+P.TWO_PI:o}},Df=C7e;var fle={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 dle(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 hle(e,t){return e instanceof J?e:typeof e=="string"?J.fromIso8601(e):J.addSeconds(t,e,new J)}var vW=[],DW=[];function rV(e,t,n,i,o){let r=0,s,a,c,l,f,d;for(;r<i.length;){f=hle(i[r],e),c=Do(t,f,J.compare);let p=0,g=0;if(c<0){for(c=~c,l=c*o,a=void 0,d=t[c];r<i.length&&(f=hle(i[r],e),!(u(a)&&J.compare(a,f)>=0||u(d)&&J.compare(f,d)>=0));){for(vW[p++]=f,r=r+1,s=0;s<o;s++)DW[g++]=i[r],r=r+1;a=f}p>0&&(DW.length=g,dle(n,l,DW),vW.length=p,dle(t,c,vW))}else{for(s=0;s<o;s++)r++,n[c*o+s]=i[r];r++}}}function Zd(e,t){let n=e;n===Number&&(n=fle);let i=n.packedLength,o=y(n.packedInterpolationLength,i),r=0,s;if(u(t)){let a=t.length;s=new Array(a);for(let c=0;c<a;c++){let l=t[c];l===Number&&(l=fle);let f=l.packedLength;i+=f,o+=y(l.packedInterpolationLength,f),s[c]=l}r=a}this._type=e,this._innerType=n,this._interpolationDegree=1,this._interpolationAlgorithm=gb,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(Zd.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))}}});Zd.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 S=n[a];if(o=this._backwardExtrapolationDuration,this._backwardExtrapolationType===pu.NONE||o!==0&&J.secondsDifference(S,e)>o)return;if(this._backwardExtrapolationType===pu.HOLD)return r.unpack(s,0,t)}if(a>=i){a=i-1;let S=n[a];if(o=this._forwardExtrapolationDuration,this._forwardExtrapolationType===pu.NONE||o!==0&&J.secondsDifference(e,S)>o)return;if(this._forwardExtrapolationType===pu.HOLD)return a=i-1,r.unpack(s,a*r.packedLength,t)}let c=this._xTable,l=this._yTable,f=this._interpolationAlgorithm,d=this._packedInterpolationLength,p=this._inputOrder;if(this._updateTableLength){this._updateTableLength=!1;let S=Math.min(f.getRequiredDataPoints(this._interpolationDegree,p),i);S!==this._numberOfPoints&&(this._numberOfPoints=S,c.length=S,l.length=S*d)}let g=this._numberOfPoints-1;if(g<1)return;let m=0,x=i-1;if(x-m+1>=g+1){let S=a-(g/2|0)-1;S<m&&(S=m);let w=S+g;w>x&&(w=x,S=w-g,S<m&&(S=m)),m=S,x=w}let T=x-m+1;for(let S=0;S<T;++S)c[S]=J.secondsDifference(n[m+S],n[x]);if(u(r.convertPackedArrayForInterpolation))r.convertPackedArrayForInterpolation(s,m,x,l);else{let S=0,w=this._packedLength,D=m*w,O=(x+1)*w;for(;D<O;)l[S]=s[D],D++,S++}let A=J.secondsDifference(e,n[x]),C;if(p===0||!u(f.interpolate))C=f.interpolateOrderZero(A,c,l,d,this._interpolationResult);else{let S=Math.floor(d/(p+1));C=f.interpolate(A,c,l,S,p,p,this._interpolationResult)}return u(r.unpackInterpolationResult)?r.unpackInterpolationResult(C,s,m,x,t):r.unpack(C,0,t)}return r.unpack(s,a*this._packedLength,t)};Zd.prototype.setInterpolationOptions=function(e){if(!u(e))return;let t=!1,n=e.interpolationAlgorithm,i=e.interpolationDegree;u(n)&&this._interpolationAlgorithm!==n&&(this._interpolationAlgorithm=n,t=!0),u(i)&&this._interpolationDegree!==i&&(this._interpolationDegree=i,t=!0),t&&(this._updateTableLength=!0,this._definitionChanged.raiseEvent(this))};Zd.prototype.addSample=function(e,t,n){let i=this._innerDerivativeTypes,o=u(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)}rV(void 0,this._times,this._values,s,this._packedLength),this._updateTableLength=!0,this._definitionChanged.raiseEvent(this)};Zd.prototype.addSamples=function(e,t,n){let i=this._innerDerivativeTypes,o=u(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 l=n[c],f=i.length;for(let d=0;d<f;d++)i[d].pack(l[d],a,a.length)}rV(void 0,this._times,this._values,a,this._packedLength),this._updateTableLength=!0,this._definitionChanged.raiseEvent(this)};Zd.prototype.addSamplesPackedArray=function(e,t){rV(t,this._times,this._values,e,this._packedLength),this._updateTableLength=!0,this._definitionChanged.raiseEvent(this)};Zd.prototype.removeSample=function(e){let t=Do(this._times,e,J.compare);return t<0?!1:(mle(this,t,1),!0)};function mle(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)}Zd.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,mle(this,n,i-n)};Zd.prototype.equals=function(e){if(this===e)return!0;if(!u(e)||this._type!==e._type||this._interpolationDegree!==e._interpolationDegree||this._interpolationAlgorithm!==e._interpolationAlgorithm)return!1;let t=this._derivativeTypes,n=u(t),i=e._derivativeTypes,o=u(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 l=this._values,f=e._values;for(s=l.length,r=0;r<s;r++)if(l[r]!==f[r])return!1;return!0};Zd._mergeNewSamples=rV;var gu=Zd;function If(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 gu(h,n),this._definitionChanged=new pe,this._referenceFrame=y(e,no.FIXED),this._property._definitionChanged.addEventListener(function(){this._definitionChanged.raiseEvent(this)},this)}Object.defineProperties(If.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}}});If.prototype.getValue=function(e,t){return this.getValueInReferenceFrame(e,no.FIXED,t)};If.prototype.getValueInReferenceFrame=function(e,t,n){if(n=this._property.getValue(e,n),u(n))return hp.convertToReferenceFrame(e,n,this._referenceFrame,t,n)};If.prototype.setInterpolationOptions=function(e){this._property.setInterpolationOptions(e)};If.prototype.addSample=function(e,t,n){let i=this._numberOfDerivatives;this._property.addSample(e,t,n)};If.prototype.addSamples=function(e,t,n){this._property.addSamples(e,t,n)};If.prototype.addSamplesPackedArray=function(e,t){this._property.addSamplesPackedArray(e,t)};If.prototype.removeSample=function(e){return this._property.removeSample(e)};If.prototype.removeSamples=function(e){this._property.removeSamples(e)};If.prototype.equals=function(e){return this===e||e instanceof If&&q.equals(this._property,e._property)&&this._referenceFrame===e._referenceFrame};var Js=If;var E7e={HORIZONTAL:0,VERTICAL:1},$d=Object.freeze(E7e);var S7e=$d.HORIZONTAL,w7e=H.WHITE,v7e=H.BLACK,D7e=0,I7e=1;function KC(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(KC.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:ae("orientation"),evenColor:ae("evenColor"),oddColor:ae("oddColor"),offset:ae("offset"),repeat:ae("repeat")});KC.prototype.getType=function(e){return"Stripe"};KC.prototype.getValue=function(e,t){return u(t)||(t={}),t.horizontal=q.getValueOrDefault(this._orientation,e,S7e)===$d.HORIZONTAL,t.evenColor=q.getValueOrClonedDefault(this._evenColor,e,w7e,t.evenColor),t.oddColor=q.getValueOrClonedDefault(this._oddColor,e,v7e,t.oddColor),t.offset=q.getValueOrDefault(this._offset,e,D7e),t.repeat=q.getValueOrDefault(this._repeat,e,I7e),t};KC.prototype.equals=function(e){return this===e||e instanceof KC&&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 ZC=KC;function yy(e){this._definitionChanged=new pe,this._intervals=new Mr,this._intervals.changedEvent.addEventListener(yy.prototype._intervalsChanged,this),this._referenceFrame=y(e,no.FIXED)}Object.defineProperties(yy.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}}});yy.prototype.getValue=function(e,t){return this.getValueInReferenceFrame(e,no.FIXED,t)};yy.prototype.getValueInReferenceFrame=function(e,t,n){let i=this._intervals.findDataForIntervalContainingDate(e);if(u(i))return hp.convertToReferenceFrame(e,i,this._referenceFrame,t,n)};yy.prototype.equals=function(e){return this===e||e instanceof yy&&this._intervals.equals(e._intervals,q.equals)&&this._referenceFrame===e._referenceFrame};yy.prototype._intervalsChanged=function(){this._definitionChanged.raiseEvent(this)};var x_=yy;function bb(){this._definitionChanged=new pe,this._intervals=new Mr,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);return u(n)&&typeof n.clone=="function"?n.clone(t):n};bb.prototype.equals=function(e){return this===e||e instanceof bb&&this._intervals.equals(e._intervals,q.equals)};bb.prototype._intervalsChanged=function(){this._definitionChanged.raiseEvent(this)};var b_=bb;function $C(e,t){this._position=void 0,this._subscription=void 0,this._definitionChanged=new pe,this._normalize=y(t,!0),this.position=e}Object.defineProperties($C.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&&(u(t)&&this._subscription(),this._position=e,u(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 P7e=new h,ple=new h,_le=new J,IW=1/60;$C.prototype.getValue=function(e,t){return this._getValue(e,t)};$C.prototype._getValue=function(e,t,n){u(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,P7e),r=i.getValue(J.addSeconds(e,IW,_le),ple);if(!u(o)||!u(r)&&(r=o,o=i.getValue(J.addSeconds(e,-IW,_le),ple),!u(o)))return;if(h.equals(o,r))return this._normalize?void 0:h.clone(h.ZERO,t);u(n)&&o.clone(n);let s=h.subtract(r,o,t);return this._normalize?h.normalize(s,t):h.divideByScalar(s,IW,t)};$C.prototype.equals=function(e){return this===e||e instanceof $C&&q.equals(this._position,e._position)};var Tb=$C;function vM(e,t){this._velocityVectorProperty=new Tb(e,!0),this._subscription=void 0,this._ellipsoid=void 0,this._definitionChanged=new pe,this.ellipsoid=y(t,ie.WGS84);let n=this;this._velocityVectorProperty.definitionChanged.addEventListener(function(){n._definitionChanged.raiseEvent(n)})}Object.defineProperties(vM.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 gle=new h,O7e=new h,yle=new Q;vM.prototype.getValue=function(e,t){let n=this._velocityVectorProperty._getValue(e,O7e,gle);if(u(n))return Rt.rotationMatrixFromPositionVelocity(gle,n,this._ellipsoid,yle),Le.fromRotationMatrix(yle,t)};vM.prototype.equals=function(e){return this===e||e instanceof vM&&q.equals(this._velocityVectorProperty,e._velocityVectorProperty)&&(this._ellipsoid===e._ellipsoid||this._ellipsoid.equals(e._ellipsoid))};var DM=vM;function xy(){}xy.packedLength=h.packedLength;xy.unpack=h.unpack;xy.pack=h.pack;var PW;function IM(e,t){return t[0]==="#"&&(t=PW+t),y_.fromString(e,t)}function xle(e,t,n){if(u(n.reference))return IM(t,n.reference);if(u(n.velocityReference)){let i=IM(t,n.velocityReference);switch(e){case h:case xy:return new Tb(i,e===xy);case Le:return new DM(i)}}throw new ue(`${JSON.stringify(n)} is not valid CZML.`)}function R7e(e,t){return new xd(function(n,i){return t(e.getValue(n,i))},e.isConstant)}var ki=new h,Hc=new wM,sc=new fe,Ab=new bn,sV=new Le;function M7e(e){let t=e.rgbaf;if(u(t))return t;let n=e.rgba;if(!u(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 ble(e,t){let n=y(e.uri,e);return u(t)?t.getDerivedResource({url:n}):ve.createIfNeeded(n)}function L7e(e){let t=e.wsen;if(u(t))return t;let n=e.wsenDegrees;if(!u(n))return;let i=n.length;if(i===ce.packedLength)return[P.toRadians(n[0]),P.toRadians(n[1]),P.toRadians(n[2]),P.toRadians(n[3])];t=new Array(i);for(let o=0;o<i;o+=5)t[o]=n[o],t[o+1]=P.toRadians(n[o+1]),t[o+2]=P.toRadians(n[o+2]),t[o+3]=P.toRadians(n[o+3]),t[o+4]=P.toRadians(n[o+4]);return t}function N7e(e){let t=e.length;if(Hc.magnitude=1,t===2)return Hc.clock=e[0],Hc.cone=e[1],h.fromSpherical(Hc,ki),[ki.x,ki.y,ki.z];let n=new Array(t/3*4);for(let i=0,o=0;i<t;i+=3,o+=4)n[o]=e[i],Hc.clock=e[i+1],Hc.cone=e[i+2],h.fromSpherical(Hc,ki),n[o+1]=ki.x,n[o+2]=ki.y,n[o+3]=ki.z;return n}function F7e(e){let t=e.length;if(t===3)return Hc.clock=e[0],Hc.cone=e[1],Hc.magnitude=e[2],h.fromSpherical(Hc,ki),[ki.x,ki.y,ki.z];let n=new Array(t);for(let i=0;i<t;i+=4)n[i]=e[i],Hc.clock=e[i+1],Hc.cone=e[i+2],Hc.magnitude=e[i+3],h.fromSpherical(Hc,ki),n[i+1]=ki.x,n[i+2]=ki.y,n[i+3]=ki.z;return n}function B7e(e){let t=e.length;if(t===3)return sc.longitude=e[0],sc.latitude=e[1],sc.height=e[2],ie.WGS84.cartographicToCartesian(sc,ki),[ki.x,ki.y,ki.z];let n=new Array(t);for(let i=0;i<t;i+=4)n[i]=e[i],sc.longitude=e[i+1],sc.latitude=e[i+2],sc.height=e[i+3],ie.WGS84.cartographicToCartesian(sc,ki),n[i+1]=ki.x,n[i+2]=ki.y,n[i+3]=ki.z;return n}function k7e(e){let t=e.length;if(t===3)return sc.longitude=P.toRadians(e[0]),sc.latitude=P.toRadians(e[1]),sc.height=e[2],ie.WGS84.cartographicToCartesian(sc,ki),[ki.x,ki.y,ki.z];let n=new Array(t);for(let i=0;i<t;i+=4)n[i]=e[i],sc.longitude=P.toRadians(e[i+1]),sc.latitude=P.toRadians(e[i+2]),sc.height=e[i+3],ie.WGS84.cartographicToCartesian(sc,ki),n[i+1]=ki.x,n[i+2]=ki.y,n[i+3]=ki.z;return n}function OW(e){let t=e.cartesian;if(u(t))return t;let n=e.cartesianVelocity;if(u(n))return n;let i=e.unitCartesian;if(u(i))return i;let o=e.unitSpherical;if(u(o))return N7e(o);let r=e.spherical;if(u(r))return F7e(r);let s=e.cartographicRadians;if(u(s))return B7e(s);let a=e.cartographicDegrees;if(u(a))return k7e(a);throw new ue(`${JSON.stringify(e)} is not a valid CZML interval.`)}function Tle(e,t){h.unpack(e,t,ki),h.normalize(ki,ki),h.pack(ki,e,t)}function U7e(e){let t=OW(e);if(t.length===3)return Tle(t,0),t;for(let n=1;n<t.length;n+=4)Tle(t,n);return t}function Ale(e,t){Le.unpack(e,t,sV),Le.normalize(sV,sV),Le.pack(sV,e,t)}function V7e(e){let t=e.unitQuaternion;if(u(t)){if(t.length===4)return Ale(t,0),t;for(let n=1;n<t.length;n+=5)Ale(t,n)}return t}function Cle(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")?We:e.hasOwnProperty("cartesian2")?z:e.hasOwnProperty("cartesian")||e.hasOwnProperty("spherical")||e.hasOwnProperty("cartographicRadians")||e.hasOwnProperty("cartographicDegrees")?h:e.hasOwnProperty("unitCartesian")||e.hasOwnProperty("unitSpherical")?xy:e.hasOwnProperty("rgba")||e.hasOwnProperty("rgbaf")?H:e.hasOwnProperty("arcType")?qt:e.hasOwnProperty("classificationType")?Vn:e.hasOwnProperty("colorBlendMode")?$a:e.hasOwnProperty("cornerType")?Pi:e.hasOwnProperty("heightReference")?Ge:e.hasOwnProperty("horizontalOrigin")?mi:e.hasOwnProperty("date")?J:e.hasOwnProperty("labelStyle")?Vo:e.hasOwnProperty("number")?Number:e.hasOwnProperty("nearFarScalar")?Pt:e.hasOwnProperty("distanceDisplayCondition")?St:e.hasOwnProperty("object")||e.hasOwnProperty("value")?Object:e.hasOwnProperty("unitQuaternion")?Le:e.hasOwnProperty("shadowMode")?yn:e.hasOwnProperty("string")?String:e.hasOwnProperty("stripeOrientation")?$d:e.hasOwnProperty("wsen")||e.hasOwnProperty("wsenDegrees")?ce:e.hasOwnProperty("uri")?OM.default:e.hasOwnProperty("verticalOrigin")?Dn:Object}function z7e(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 We:return t.boundingRectangle;case z:return t.cartesian2;case h:return OW(t);case xy:return U7e(t);case H:return M7e(t);case Vn:return Vn[y(t.classificationType,t)];case $a:return $a[y(t.colorBlendMode,t)];case Pi:return Pi[y(t.cornerType,t)];case Ge:return Ge[y(t.heightReference,t)];case mi:return mi[y(t.horizontalOrigin,t)];case Image:return ble(t,n);case J:return J.fromIso8601(y(t.date,t));case Vo:return Vo[y(t.labelStyle,t)];case Number:return y(t.number,t);case Pt:return t.nearFarScalar;case St:return t.distanceDisplayCondition;case Object:return y(y(t.object,t.value),t);case Le:return V7e(t);case Df:return y(t.number,t);case yn:return yn[y(y(t.shadowMode,t.shadows),t)];case String:return y(t.string,t);case $d:return $d[y(t.stripeOrientation,t)];case ce:return L7e(t);case OM.default:return ble(t,n);case Dn:return Dn[y(t.verticalOrigin,t)];default:throw new ue(e)}}var H7e={HERMITE:EM,LAGRANGE:SM,LINEAR:gb};function aV(e,t){let n=e.interpolationAlgorithm,i=e.interpolationDegree;(u(n)||u(i))&&t.setInterpolationOptions({interpolationAlgorithm:H7e[n],interpolationDegree:i});let o=e.forwardExtrapolationType;u(o)&&(t.forwardExtrapolationType=pu[o]);let r=e.forwardExtrapolationDuration;u(r)&&(t.forwardExtrapolationDuration=r);let s=e.backwardExtrapolationType;u(s)&&(t.backwardExtrapolationType=pu[s]);let a=e.backwardExtrapolationDuration;u(a)&&(t.backwardExtrapolationDuration=a)}var Ele={iso8601:void 0};function sr(e){if(u(e))return Ele.iso8601=e,bn.fromIso8601(Ele)}function RW(e){let t=Ve.MAXIMUM_INTERVAL.clone();return t.data=e,t}function Sle(e){let t=new ic;return t.intervals.addInterval(RW(e)),t}function wle(e){let t=new $s(e.referenceFrame);return t.intervals.addInterval(RW(e)),t}function cV(e,t,n,i,o,r,s){let a=sr(i.interval);u(o)&&(u(a)?a=bn.intersect(a,o,Ab):a=o);let c,l,f,d=!u(i.reference)&&!u(i.velocityReference),p=u(a)&&!a.equals(Ve.MAXIMUM_INTERVAL);if(i.delete===!0){if(!p){t[n]=void 0;return}return Ble(t[n],a)}let g=!1;if(d){if(l=z7e(e,i,r),!u(l))return;c=y(e.packedLength,1),f=y(l.length,1),g=!u(i.array)&&typeof l!="string"&&f>c&&e!==Object}let m=typeof e.unpack=="function"&&e!==Df;if(!g&&!p){d?t[n]=new Qn(m?e.unpack(l,0):l):t[n]=xle(e,s,i);return}let x=t[n],b,T=i.epoch;if(u(T)&&(b=J.fromIso8601(T)),g&&!p){x instanceof gu||(t[n]=x=new gu(e)),x.addSamplesPackedArray(l,b),aV(i,x);return}let A;if(!g&&p){a=a.clone(),d?a.data=m?e.unpack(l,0):l:a.data=xle(e,s,i),u(x)||(t[n]=x=d?new b_:new ic),d&&x instanceof b_?x.intervals.addInterval(a):x instanceof ic?(d&&(a.data=new Qn(a.data)),x.intervals.addInterval(a)):(t[n]=x=Sle(x),d&&(a.data=new Qn(a.data)),x.intervals.addInterval(a));return}u(x)||(t[n]=x=new ic),x instanceof ic||(t[n]=x=Sle(x));let C=x.intervals;A=C.findInterval(a),(!u(A)||!(A.data instanceof gu))&&(A=a.clone(),A.data=new gu(e),C.addInterval(A)),A.data.addSamplesPackedArray(l,b),aV(i,A.data)}function Ble(e,t){if(e instanceof gu){e.removeSamples(t);return}else if(e instanceof b_){e.intervals.removeInterval(t);return}else if(e instanceof ic){let n=e.intervals;for(let i=0;i<n.length;++i){let o=bn.intersect(n.get(i),t,Ab);o.isEmpty||Ble(o.data,t)}n.removeInterval(t);return}}function _e(e,t,n,i,o,r,s){if(u(i))if(Array.isArray(i))for(let a=0,c=i.length;a<c;++a)cV(e,t,n,i[a],o,r,s);else cV(e,t,n,i,o,r,s)}function vle(e,t,n,i,o,r){let s=sr(n.interval);u(i)&&(u(s)?s=bn.intersect(s,i,Ab):s=i);let a=u(n.cartesianVelocity)?1:0,c=h.packedLength*(a+1),l,f,d=!u(n.reference),p=u(s)&&!s.equals(Ve.MAXIMUM_INTERVAL);if(n.delete===!0){if(!p){e[t]=void 0;return}return kle(e[t],s)}let g,m=!1;if(d&&(u(n.referenceFrame)&&(g=no[n.referenceFrame]),g=y(g,no.FIXED),l=OW(n),f=y(l.length,1),m=f>c),!m&&!p){d?e[t]=new Oc(h.unpack(l),g):e[t]=IM(r,n.reference);return}let x=e[t],b,T=n.epoch;if(u(T)&&(b=J.fromIso8601(T)),m&&!p){(!(x instanceof Js)||u(g)&&x.referenceFrame!==g)&&(e[t]=x=new Js(g,a)),x.addSamplesPackedArray(l,b),aV(n,x);return}let A;if(!m&&p){s=s.clone(),d?s.data=h.unpack(l):s.data=IM(r,n.reference),u(x)||(d?x=new x_(g):x=new $s(g),e[t]=x),d&&x instanceof x_&&u(g)&&x.referenceFrame===g?x.intervals.addInterval(s):x instanceof $s?(d&&(s.data=new Oc(s.data,g)),x.intervals.addInterval(s)):(e[t]=x=wle(x),d&&(s.data=new Oc(s.data,g)),x.intervals.addInterval(s));return}u(x)?x instanceof $s||(e[t]=x=wle(x)):e[t]=x=new $s(g);let C=x.intervals;A=C.findInterval(s),(!u(A)||!(A.data instanceof Js)||u(g)&&A.data.referenceFrame!==g)&&(A=s.clone(),A.data=new Js(g,a),C.addInterval(A)),A.data.addSamplesPackedArray(l,b),aV(n,A.data)}function kle(e,t){if(e instanceof Js){e.removeSamples(t);return}else if(e instanceof x_){e.intervals.removeInterval(t);return}else if(e instanceof $s){let n=e.intervals;for(let i=0;i<n.length;++i){let o=bn.intersect(n.get(i),t,Ab);o.isEmpty||kle(o.data,t)}n.removeInterval(t);return}}function Ule(e,t,n,i,o,r){if(u(n))if(Array.isArray(n))for(let s=0,a=n.length;s<a;++s)vle(e,t,n[s],i,o,r);else vle(e,t,n,i,o,r)}function Dle(e,t,n,i){u(n.references)?lV(e,t,n.references,n.interval,i,XC,ic):(u(n.cartesian2)?n.array=z.unpackArray(n.cartesian2):u(n.cartesian)&&(n.array=z.unpackArray(n.cartesian)),u(n.array)&&_e(Array,e,t,n,void 0,void 0,i))}function Ile(e,t,n,i,o,r){let s=sr(n.interval);u(i)&&(u(s)?s=bn.intersect(s,i,Ab):s=i);let a=e[t],c,l;if(u(s)){a instanceof PC||(a=new PC,e[t]=a);let d=a.intervals;l=d.findInterval({start:s.start,stop:s.stop}),u(l)?c=l.data:(l=s.clone(),d.addInterval(l))}else c=a;let f;u(n.solidColor)?(c instanceof Nt||(c=new Nt),f=n.solidColor,_e(H,c,"color",f.color,void 0,void 0,r)):u(n.grid)?(c instanceof VC||(c=new VC),f=n.grid,_e(H,c,"color",f.color,void 0,o,r),_e(Number,c,"cellAlpha",f.cellAlpha,void 0,o,r),_e(z,c,"lineCount",f.lineCount,void 0,o,r),_e(z,c,"lineThickness",f.lineThickness,void 0,o,r),_e(z,c,"lineOffset",f.lineOffset,void 0,o,r)):u(n.image)?(c instanceof yg||(c=new yg),f=n.image,_e(Image,c,"image",f.image,void 0,o,r),_e(z,c,"repeat",f.repeat,void 0,o,r),_e(H,c,"color",f.color,void 0,o,r),_e(Boolean,c,"transparent",f.transparent,void 0,o,r)):u(n.stripe)?(c instanceof ZC||(c=new ZC),f=n.stripe,_e($d,c,"orientation",f.orientation,void 0,o,r),_e(H,c,"evenColor",f.evenColor,void 0,o,r),_e(H,c,"oddColor",f.oddColor,void 0,o,r),_e(Number,c,"offset",f.offset,void 0,o,r),_e(Number,c,"repeat",f.repeat,void 0,o,r)):u(n.polylineOutline)?(c instanceof _y||(c=new _y),f=n.polylineOutline,_e(H,c,"color",f.color,void 0,o,r),_e(H,c,"outlineColor",f.outlineColor,void 0,o,r),_e(Number,c,"outlineWidth",f.outlineWidth,void 0,o,r)):u(n.polylineGlow)?(c instanceof qC||(c=new qC),f=n.polylineGlow,_e(H,c,"color",f.color,void 0,o,r),_e(Number,c,"glowPower",f.glowPower,void 0,o,r),_e(Number,c,"taperPower",f.taperPower,void 0,o,r)):u(n.polylineArrow)?(c instanceof HC||(c=new HC),f=n.polylineArrow,_e(H,c,"color",f.color,void 0,void 0,r)):u(n.polylineDash)?(c instanceof WC||(c=new WC),f=n.polylineDash,_e(H,c,"color",f.color,void 0,void 0,r),_e(H,c,"gapColor",f.gapColor,void 0,void 0,r),_e(Number,c,"dashLength",f.dashLength,void 0,o,r),_e(Number,c,"dashPattern",f.dashPattern,void 0,o,r)):u(n.checkerboard)&&(c instanceof DC||(c=new DC),f=n.checkerboard,_e(H,c,"evenColor",f.evenColor,void 0,o,r),_e(H,c,"oddColor",f.oddColor,void 0,o,r),_e(z,c,"repeat",f.repeat,void 0,o,r)),u(l)?l.data=c:e[t]=c}function yu(e,t,n,i,o,r){if(u(n))if(Array.isArray(n))for(let s=0,a=n.length;s<a;++s)Ile(e,t,n[s],i,o,r);else Ile(e,t,n,i,o,r)}function G7e(e,t,n,i){let o=t.name;u(o)&&(e.name=t.name)}function W7e(e,t,n,i){let o=t.description;u(o)&&_e(String,e,"description",o,void 0,i,n)}function j7e(e,t,n,i){let o=t.position;u(o)&&Ule(e,"position",o,void 0,i,n)}function q7e(e,t,n,i){let o=t.viewFrom;u(o)&&_e(h,e,"viewFrom",o,void 0,i,n)}function Y7e(e,t,n,i){let o=t.orientation;u(o)&&_e(Le,e,"orientation",o,void 0,i,n)}function X7e(e,t,n,i){let o=t.properties;if(u(o)){u(e.properties)||(e.properties=new gl);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)cV(Cle(s[a]),e.properties,r,s[a],void 0,i,n);else cV(Cle(s),e.properties,r,s,void 0,i,n)}}}function lV(e,t,n,i,o,r,s){let a=n.map(function(c){return IM(o,c)});if(u(i)){i=sr(i);let c=e[t];if(!(c instanceof s)){let l=new s;l.intervals.addInterval(RW(c)),e[t]=c=l}i.data=new r(a),c.intervals.addInterval(i)}else e[t]=new r(a)}function Ple(e,t,n,i){let o=n.references;u(o)?lV(e,t,o,n.interval,i,XC,ic):_e(Array,e,t,n,void 0,void 0,i)}function Ole(e,t,n,i){if(u(n))if(Array.isArray(n))for(let o=0,r=n.length;o<r;++o)Ple(e,t,n[o],i);else Ple(e,t,n,i)}function Rle(e,t,n,i){let o=n.references;u(o)?lV(e,t,o,n.interval,i,g_,$s):(u(n.cartesian)?n.array=h.unpackArray(n.cartesian):u(n.cartographicRadians)?n.array=h.fromRadiansArrayHeights(n.cartographicRadians,ie.WGS84):u(n.cartographicDegrees)&&(n.array=h.fromDegreesArrayHeights(n.cartographicDegrees,ie.WGS84)),u(n.array)&&_e(Array,e,t,n,void 0,void 0,i))}function RM(e,t,n,i){if(u(n))if(Array.isArray(n))for(let o=0,r=n.length;o<r;++o)Rle(e,t,n[o],i);else Rle(e,t,n,i)}function K7e(e){return h.unpackArray(e)}function Z7e(e){return h.fromRadiansArrayHeights(e,ie.WGS84)}function $7e(e){return h.fromDegreesArrayHeights(e,ie.WGS84)}function Mle(e,t,n,i){let o=n.references;if(u(o)){let r=o.map(function(s){let a={};return lV(a,"positions",s,n.interval,i,g_,$s),a.positions});e[t]=new g_(r)}else u(n.cartesian)?n.array=n.cartesian.map(K7e):u(n.cartographicRadians)?n.array=n.cartographicRadians.map(Z7e):u(n.cartographicDegrees)&&(n.array=n.cartographicDegrees.map($7e)),u(n.array)&&_e(Array,e,t,n,void 0,void 0,i)}function Q7e(e,t,n,i){if(u(n))if(Array.isArray(n))for(let o=0,r=n.length;o<r;++o)Mle(e,t,n[o],i);else Mle(e,t,n,i)}function J7e(e,t,n,i){if(u(n))if(Array.isArray(n))for(let o=0,r=n.length;o<r;o++)Dle(e,t,n[o],i);else Dle(e,t,n,i)}function eqe(e,t,n,i){let o=t.availability;if(!u(o))return;let r;if(Array.isArray(o))for(let s=0,a=o.length;s<a;++s)u(r)||(r=new Mr),r.addInterval(sr(o[s]));else r=new Mr,r.addInterval(sr(o));e.availability=r}function tqe(e,t,n,i,o){u(t)&&_e(xy,e,"alignedAxis",t,n,i,o)}function nqe(e,t,n,i){let o=t.billboard;if(!u(o))return;let r=sr(o.interval),s=e.billboard;u(s)||(e.billboard=s=new Wa),_e(Boolean,s,"show",o.show,r,i,n),_e(Image,s,"image",o.image,r,i,n),_e(Number,s,"scale",o.scale,r,i,n),_e(z,s,"pixelOffset",o.pixelOffset,r,i,n),_e(h,s,"eyeOffset",o.eyeOffset,r,i,n),_e(mi,s,"horizontalOrigin",o.horizontalOrigin,r,i,n),_e(Dn,s,"verticalOrigin",o.verticalOrigin,r,i,n),_e(Ge,s,"heightReference",o.heightReference,r,i,n),_e(H,s,"color",o.color,r,i,n),_e(Df,s,"rotation",o.rotation,r,i,n),tqe(s,o.alignedAxis,r,i,n),_e(Boolean,s,"sizeInMeters",o.sizeInMeters,r,i,n),_e(Number,s,"width",o.width,r,i,n),_e(Number,s,"height",o.height,r,i,n),_e(Pt,s,"scaleByDistance",o.scaleByDistance,r,i,n),_e(Pt,s,"translucencyByDistance",o.translucencyByDistance,r,i,n),_e(Pt,s,"pixelOffsetScaleByDistance",o.pixelOffsetScaleByDistance,r,i,n),_e(We,s,"imageSubRegion",o.imageSubRegion,r,i,n),_e(St,s,"distanceDisplayCondition",o.distanceDisplayCondition,r,i,n),_e(Number,s,"disableDepthTestDistance",o.disableDepthTestDistance,r,i,n)}function iqe(e,t,n,i){let o=t.box;if(!u(o))return;let r=sr(o.interval),s=e.box;u(s)||(e.box=s=new nx),_e(Boolean,s,"show",o.show,r,i,n),_e(h,s,"dimensions",o.dimensions,r,i,n),_e(Ge,s,"heightReference",o.heightReference,r,i,n),_e(Boolean,s,"fill",o.fill,r,i,n),yu(s,"material",o.material,r,i,n),_e(Boolean,s,"outline",o.outline,r,i,n),_e(H,s,"outlineColor",o.outlineColor,r,i,n),_e(Number,s,"outlineWidth",o.outlineWidth,r,i,n),_e(yn,s,"shadows",o.shadows,r,i,n),_e(St,s,"distanceDisplayCondition",o.distanceDisplayCondition,r,i,n)}function oqe(e,t,n,i){let o=t.corridor;if(!u(o))return;let r=sr(o.interval),s=e.corridor;u(s)||(e.corridor=s=new ox),_e(Boolean,s,"show",o.show,r,i,n),RM(s,"positions",o.positions,n),_e(Number,s,"width",o.width,r,i,n),_e(Number,s,"height",o.height,r,i,n),_e(Ge,s,"heightReference",o.heightReference,r,i,n),_e(Number,s,"extrudedHeight",o.extrudedHeight,r,i,n),_e(Ge,s,"extrudedHeightReference",o.extrudedHeightReference,r,i,n),_e(Pi,s,"cornerType",o.cornerType,r,i,n),_e(Number,s,"granularity",o.granularity,r,i,n),_e(Boolean,s,"fill",o.fill,r,i,n),yu(s,"material",o.material,r,i,n),_e(Boolean,s,"outline",o.outline,r,i,n),_e(H,s,"outlineColor",o.outlineColor,r,i,n),_e(Number,s,"outlineWidth",o.outlineWidth,r,i,n),_e(yn,s,"shadows",o.shadows,r,i,n),_e(St,s,"distanceDisplayCondition",o.distanceDisplayCondition,r,i,n),_e(Vn,s,"classificationType",o.classificationType,r,i,n),_e(Number,s,"zIndex",o.zIndex,r,i,n)}function rqe(e,t,n,i){let o=t.cylinder;if(!u(o))return;let r=sr(o.interval),s=e.cylinder;u(s)||(e.cylinder=s=new rx),_e(Boolean,s,"show",o.show,r,i,n),_e(Number,s,"length",o.length,r,i,n),_e(Number,s,"topRadius",o.topRadius,r,i,n),_e(Number,s,"bottomRadius",o.bottomRadius,r,i,n),_e(Ge,s,"heightReference",o.heightReference,r,i,n),_e(Boolean,s,"fill",o.fill,r,i,n),yu(s,"material",o.material,r,i,n),_e(Boolean,s,"outline",o.outline,r,i,n),_e(H,s,"outlineColor",o.outlineColor,r,i,n),_e(Number,s,"outlineWidth",o.outlineWidth,r,i,n),_e(Number,s,"numberOfVerticalLines",o.numberOfVerticalLines,r,i,n),_e(Number,s,"slices",o.slices,r,i,n),_e(yn,s,"shadows",o.shadows,r,i,n),_e(St,s,"distanceDisplayCondition",o.distanceDisplayCondition,r,i,n)}function sqe(e,t){let n=e.version;if(u(n)&&typeof n=="string"){let r=n.split(".");if(r.length===2){if(r[0]!=="1")throw new ue("Cesium only supports CZML version 1.");t._version=n}}if(!u(t._version))throw new ue("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;u(e.name)&&(i.name=e.name);let o=e.clock;if(u(o)){let r=i.clock;u(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 aqe(e,t,n,i){let o=t.ellipse;if(!u(o))return;let r=sr(o.interval),s=e.ellipse;u(s)||(e.ellipse=s=new sx),_e(Boolean,s,"show",o.show,r,i,n),_e(Number,s,"semiMajorAxis",o.semiMajorAxis,r,i,n),_e(Number,s,"semiMinorAxis",o.semiMinorAxis,r,i,n),_e(Number,s,"height",o.height,r,i,n),_e(Ge,s,"heightReference",o.heightReference,r,i,n),_e(Number,s,"extrudedHeight",o.extrudedHeight,r,i,n),_e(Ge,s,"extrudedHeightReference",o.extrudedHeightReference,r,i,n),_e(Df,s,"rotation",o.rotation,r,i,n),_e(Df,s,"stRotation",o.stRotation,r,i,n),_e(Number,s,"granularity",o.granularity,r,i,n),_e(Boolean,s,"fill",o.fill,r,i,n),yu(s,"material",o.material,r,i,n),_e(Boolean,s,"outline",o.outline,r,i,n),_e(H,s,"outlineColor",o.outlineColor,r,i,n),_e(Number,s,"outlineWidth",o.outlineWidth,r,i,n),_e(Number,s,"numberOfVerticalLines",o.numberOfVerticalLines,r,i,n),_e(yn,s,"shadows",o.shadows,r,i,n),_e(St,s,"distanceDisplayCondition",o.distanceDisplayCondition,r,i,n),_e(Vn,s,"classificationType",o.classificationType,r,i,n),_e(Number,s,"zIndex",o.zIndex,r,i,n)}function cqe(e,t,n,i){let o=t.ellipsoid;if(!u(o))return;let r=sr(o.interval),s=e.ellipsoid;u(s)||(e.ellipsoid=s=new ax),_e(Boolean,s,"show",o.show,r,i,n),_e(h,s,"radii",o.radii,r,i,n),_e(h,s,"innerRadii",o.innerRadii,r,i,n),_e(Number,s,"minimumClock",o.minimumClock,r,i,n),_e(Number,s,"maximumClock",o.maximumClock,r,i,n),_e(Number,s,"minimumCone",o.minimumCone,r,i,n),_e(Number,s,"maximumCone",o.maximumCone,r,i,n),_e(Ge,s,"heightReference",o.heightReference,r,i,n),_e(Boolean,s,"fill",o.fill,r,i,n),yu(s,"material",o.material,r,i,n),_e(Boolean,s,"outline",o.outline,r,i,n),_e(H,s,"outlineColor",o.outlineColor,r,i,n),_e(Number,s,"outlineWidth",o.outlineWidth,r,i,n),_e(Number,s,"stackPartitions",o.stackPartitions,r,i,n),_e(Number,s,"slicePartitions",o.slicePartitions,r,i,n),_e(Number,s,"subdivisions",o.subdivisions,r,i,n),_e(yn,s,"shadows",o.shadows,r,i,n),_e(St,s,"distanceDisplayCondition",o.distanceDisplayCondition,r,i,n)}function lqe(e,t,n,i){let o=t.label;if(!u(o))return;let r=sr(o.interval),s=e.label;u(s)||(e.label=s=new _d),_e(Boolean,s,"show",o.show,r,i,n),_e(String,s,"text",o.text,r,i,n),_e(String,s,"font",o.font,r,i,n),_e(Vo,s,"style",o.style,r,i,n),_e(Number,s,"scale",o.scale,r,i,n),_e(Boolean,s,"showBackground",o.showBackground,r,i,n),_e(H,s,"backgroundColor",o.backgroundColor,r,i,n),_e(z,s,"backgroundPadding",o.backgroundPadding,r,i,n),_e(z,s,"pixelOffset",o.pixelOffset,r,i,n),_e(h,s,"eyeOffset",o.eyeOffset,r,i,n),_e(mi,s,"horizontalOrigin",o.horizontalOrigin,r,i,n),_e(Dn,s,"verticalOrigin",o.verticalOrigin,r,i,n),_e(Ge,s,"heightReference",o.heightReference,r,i,n),_e(H,s,"fillColor",o.fillColor,r,i,n),_e(H,s,"outlineColor",o.outlineColor,r,i,n),_e(Number,s,"outlineWidth",o.outlineWidth,r,i,n),_e(Pt,s,"translucencyByDistance",o.translucencyByDistance,r,i,n),_e(Pt,s,"pixelOffsetScaleByDistance",o.pixelOffsetScaleByDistance,r,i,n),_e(Pt,s,"scaleByDistance",o.scaleByDistance,r,i,n),_e(St,s,"distanceDisplayCondition",o.distanceDisplayCondition,r,i,n),_e(Number,s,"disableDepthTestDistance",o.disableDepthTestDistance,r,i,n)}function uqe(e,t,n,i){let o=t.model;if(!u(o))return;let r=sr(o.interval),s=e.model;u(s)||(e.model=s=new pp),_e(Boolean,s,"show",o.show,r,i,n),_e(OM.default,s,"uri",o.gltf,r,i,n),_e(Number,s,"scale",o.scale,r,i,n),_e(Number,s,"minimumPixelSize",o.minimumPixelSize,r,i,n),_e(Number,s,"maximumScale",o.maximumScale,r,i,n),_e(Boolean,s,"incrementallyLoadTextures",o.incrementallyLoadTextures,r,i,n),_e(Boolean,s,"runAnimations",o.runAnimations,r,i,n),_e(Boolean,s,"clampAnimations",o.clampAnimations,r,i,n),_e(yn,s,"shadows",o.shadows,r,i,n),_e(Ge,s,"heightReference",o.heightReference,r,i,n),_e(H,s,"silhouetteColor",o.silhouetteColor,r,i,n),_e(Number,s,"silhouetteSize",o.silhouetteSize,r,i,n),_e(H,s,"color",o.color,r,i,n),_e($a,s,"colorBlendMode",o.colorBlendMode,r,i,n),_e(Number,s,"colorBlendAmount",o.colorBlendAmount,r,i,n),_e(St,s,"distanceDisplayCondition",o.distanceDisplayCondition,r,i,n);let a,c,l=o.nodeTransformations;if(u(l))if(Array.isArray(l))for(a=0,c=l.length;a<c;++a)Lle(s,l[a],r,i,n);else Lle(s,l,r,i,n);let f=o.articulations;if(u(f))if(Array.isArray(f))for(a=0,c=f.length;a<c;++a)Nle(s,f[a],r,i,n);else Nle(s,f,r,i,n)}function Lle(e,t,n,i,o){let r=sr(t.interval);u(n)&&(u(r)?r=bn.intersect(r,n,Ab):r=n);let s=e.nodeTransformations,a=Object.keys(t);for(let c=0,l=a.length;c<l;++c){let f=a[c];if(f==="interval")continue;let d=t[f];if(!u(d))continue;u(s)||(e.nodeTransformations=s=new gl),s.hasProperty(f)||s.addProperty(f);let p=s[f];u(p)||(s[f]=p=new cx),_e(h,p,"translation",d.translation,r,i,o),_e(Le,p,"rotation",d.rotation,r,i,o),_e(h,p,"scale",d.scale,r,i,o)}}function Nle(e,t,n,i,o){let r=sr(t.interval);u(n)&&(u(r)?r=bn.intersect(r,n,Ab):r=n);let s=e.articulations,a=Object.keys(t);for(let c=0,l=a.length;c<l;++c){let f=a[c];if(f==="interval")continue;let d=t[f];u(d)&&(u(s)||(e.articulations=s=new gl),s.hasProperty(f)||s.addProperty(f),_e(Number,s,f,d,r,i,o))}}function fqe(e,t,n,i){let o=t.path;if(!u(o))return;let r=sr(o.interval),s=e.path;u(s)||(e.path=s=new _p),_e(Boolean,s,"show",o.show,r,i,n),_e(Number,s,"leadTime",o.leadTime,r,i,n),_e(Number,s,"trailTime",o.trailTime,r,i,n),_e(Number,s,"width",o.width,r,i,n),_e(Number,s,"resolution",o.resolution,r,i,n),yu(s,"material",o.material,r,i,n),_e(St,s,"distanceDisplayCondition",o.distanceDisplayCondition,r,i,n)}function dqe(e,t,n,i){let o=t.point;if(!u(o))return;let r=sr(o.interval),s=e.point;u(s)||(e.point=s=new ux),_e(Boolean,s,"show",o.show,r,i,n),_e(Number,s,"pixelSize",o.pixelSize,r,i,n),_e(Ge,s,"heightReference",o.heightReference,r,i,n),_e(H,s,"color",o.color,r,i,n),_e(H,s,"outlineColor",o.outlineColor,r,i,n),_e(Number,s,"outlineWidth",o.outlineWidth,r,i,n),_e(Pt,s,"scaleByDistance",o.scaleByDistance,r,i,n),_e(Pt,s,"translucencyByDistance",o.translucencyByDistance,r,i,n),_e(St,s,"distanceDisplayCondition",o.distanceDisplayCondition,r,i,n),_e(Number,s,"disableDepthTestDistance",o.disableDepthTestDistance,r,i,n)}function PM(e){this.polygon=e,this._definitionChanged=new pe}Object.defineProperties(PM.prototype,{isConstant:{get:function(){let e=this.polygon._positions,t=this.polygon._holes;return(!u(e)||e.isConstant)&&(!u(t)||t.isConstant)}},definitionChanged:{get:function(){return this._definitionChanged}}});PM.prototype.getValue=function(e,t){let n;u(this.polygon._positions)&&(n=this.polygon._positions.getValue(e));let i;return u(this.polygon._holes)&&(i=this.polygon._holes.getValue(e),u(i)&&(i=i.map(function(o){return new ga(o)}))),u(t)?(t.positions=n,t.holes=i,t):new ga(n,i)};PM.prototype.equals=function(e){return this===e||e instanceof PM&&q.equals(this.polygon._positions,e.polygon._positions)&&q.equals(this.polygon._holes,e.polygon._holes)};function hqe(e,t,n,i){let o=t.polygon;if(!u(o))return;let r=sr(o.interval),s=e.polygon;u(s)||(e.polygon=s=new gd),_e(Boolean,s,"show",o.show,r,i,n),RM(s,"_positions",o.positions,n),Q7e(s,"_holes",o.holes,n),(u(s._positions)||u(s._holes))&&(s.hierarchy=new PM(s)),_e(Number,s,"height",o.height,r,i,n),_e(Ge,s,"heightReference",o.heightReference,r,i,n),_e(Number,s,"extrudedHeight",o.extrudedHeight,r,i,n),_e(Ge,s,"extrudedHeightReference",o.extrudedHeightReference,r,i,n),_e(Df,s,"stRotation",o.stRotation,r,i,n),_e(Number,s,"granularity",o.granularity,r,i,n),_e(Boolean,s,"fill",o.fill,r,i,n),yu(s,"material",o.material,r,i,n),_e(Boolean,s,"outline",o.outline,r,i,n),_e(H,s,"outlineColor",o.outlineColor,r,i,n),_e(Number,s,"outlineWidth",o.outlineWidth,r,i,n),_e(Boolean,s,"perPositionHeight",o.perPositionHeight,r,i,n),_e(Boolean,s,"closeTop",o.closeTop,r,i,n),_e(Boolean,s,"closeBottom",o.closeBottom,r,i,n),_e(qt,s,"arcType",o.arcType,r,i,n),_e(yn,s,"shadows",o.shadows,r,i,n),_e(St,s,"distanceDisplayCondition",o.distanceDisplayCondition,r,i,n),_e(Vn,s,"classificationType",o.classificationType,r,i,n),_e(Number,s,"zIndex",o.zIndex,r,i,n)}function mqe(e){return e?qt.GEODESIC:qt.NONE}function pqe(e,t,n,i){let o=t.polyline;if(!u(o))return;let r=sr(o.interval),s=e.polyline;if(u(s)||(e.polyline=s=new Ya),_e(Boolean,s,"show",o.show,r,i,n),RM(s,"positions",o.positions,n),_e(Number,s,"width",o.width,r,i,n),_e(Number,s,"granularity",o.granularity,r,i,n),yu(s,"material",o.material,r,i,n),yu(s,"depthFailMaterial",o.depthFailMaterial,r,i,n),_e(qt,s,"arcType",o.arcType,r,i,n),_e(Boolean,s,"clampToGround",o.clampToGround,r,i,n),_e(yn,s,"shadows",o.shadows,r,i,n),_e(St,s,"distanceDisplayCondition",o.distanceDisplayCondition,r,i,n),_e(Vn,s,"classificationType",o.classificationType,r,i,n),_e(Number,s,"zIndex",o.zIndex,r,i,n),u(o.followSurface)&&!u(o.arcType)){let a={};_e(Boolean,a,"followSurface",o.followSurface,r,i,n),s.arcType=R7e(a.followSurface,mqe)}}function _qe(e,t,n,i){let o=t.polylineVolume;if(!u(o))return;let r=sr(o.interval),s=e.polylineVolume;u(s)||(e.polylineVolume=s=new fx),RM(s,"positions",o.positions,n),J7e(s,"shape",o.shape,n),_e(Boolean,s,"show",o.show,r,i,n),_e(Pi,s,"cornerType",o.cornerType,r,i,n),_e(Boolean,s,"fill",o.fill,r,i,n),yu(s,"material",o.material,r,i,n),_e(Boolean,s,"outline",o.outline,r,i,n),_e(H,s,"outlineColor",o.outlineColor,r,i,n),_e(Number,s,"outlineWidth",o.outlineWidth,r,i,n),_e(Number,s,"granularity",o.granularity,r,i,n),_e(yn,s,"shadows",o.shadows,r,i,n),_e(St,s,"distanceDisplayCondition",o.distanceDisplayCondition,r,i,n)}function gqe(e,t,n,i){let o=t.rectangle;if(!u(o))return;let r=sr(o.interval),s=e.rectangle;u(s)||(e.rectangle=s=new yd),_e(Boolean,s,"show",o.show,r,i,n),_e(ce,s,"coordinates",o.coordinates,r,i,n),_e(Number,s,"height",o.height,r,i,n),_e(Ge,s,"heightReference",o.heightReference,r,i,n),_e(Number,s,"extrudedHeight",o.extrudedHeight,r,i,n),_e(Ge,s,"extrudedHeightReference",o.extrudedHeightReference,r,i,n),_e(Df,s,"rotation",o.rotation,r,i,n),_e(Df,s,"stRotation",o.stRotation,r,i,n),_e(Number,s,"granularity",o.granularity,r,i,n),_e(Boolean,s,"fill",o.fill,r,i,n),yu(s,"material",o.material,r,i,n),_e(Boolean,s,"outline",o.outline,r,i,n),_e(H,s,"outlineColor",o.outlineColor,r,i,n),_e(Number,s,"outlineWidth",o.outlineWidth,r,i,n),_e(yn,s,"shadows",o.shadows,r,i,n),_e(St,s,"distanceDisplayCondition",o.distanceDisplayCondition,r,i,n),_e(Vn,s,"classificationType",o.classificationType,r,i,n),_e(Number,s,"zIndex",o.zIndex,r,i,n)}function yqe(e,t,n,i){let o=t.tileset;if(!u(o))return;let r=sr(o.interval),s=e.tileset;u(s)||(e.tileset=s=new lx),_e(Boolean,s,"show",o.show,r,i,n),_e(OM.default,s,"uri",o.uri,r,i,n),_e(Number,s,"maximumScreenSpaceError",o.maximumScreenSpaceError,r,i,n)}function xqe(e,t,n,i){let o=t.wall;if(!u(o))return;let r=sr(o.interval),s=e.wall;u(s)||(e.wall=s=new gp),_e(Boolean,s,"show",o.show,r,i,n),RM(s,"positions",o.positions,n),Ole(s,"minimumHeights",o.minimumHeights,n),Ole(s,"maximumHeights",o.maximumHeights,n),_e(Number,s,"granularity",o.granularity,r,i,n),_e(Boolean,s,"fill",o.fill,r,i,n),yu(s,"material",o.material,r,i,n),_e(Boolean,s,"outline",o.outline,r,i,n),_e(H,s,"outlineColor",o.outlineColor,r,i,n),_e(Number,s,"outlineWidth",o.outlineWidth,r,i,n),_e(yn,s,"shadows",o.shadows,r,i,n),_e(St,s,"distanceDisplayCondition",o.distanceDisplayCondition,r,i,n)}function Fle(e,t,n,i,o){let r=e.id;if(u(r)||(r=Wn()),PW=r,!u(o._version)&&r!=="document")throw new ue("The first CZML packet is required to be the document object.");if(e.delete===!0)t.removeById(r);else if(r==="document")sqe(e,o);else{let s=t.getOrCreateEntity(r),a=e.parent;u(a)&&(s.parent=t.getOrCreateEntity(a));for(let c=n.length-1;c>-1;c--)n[c](s,e,t,i)}PW=void 0}function bqe(e){let t,n=e._documentPacket.clock;if(!u(n)){if(!u(e._clock)){let o=e._entityCollection.computeAvailability();if(!o.start.equals(Ve.MINIMUM_VALUE)){let r=o.start,s=o.stop,a=J.secondsDifference(s,r),c=Math.round(a/120);return t=new Kd,t.startTime=J.clone(r),t.stopTime=J.clone(s),t.clockRange=Fr.LOOP_STOP,t.multiplier=c,t.currentTime=J.clone(r),t.clockStep=ho.SYSTEM_CLOCK_MULTIPLIER,e._clock=t,!0}}return!1}u(e._clock)?t=e._clock.clone():(t=new Kd,t.startTime=Ve.MINIMUM_VALUE.clone(),t.stopTime=Ve.MAXIMUM_VALUE.clone(),t.currentTime=Ve.MINIMUM_VALUE.clone(),t.clockRange=Fr.LOOP_STOP,t.clockStep=ho.SYSTEM_CLOCK_MULTIPLIER,t.multiplier=1);let i=sr(n.interval);return u(i)&&(t.startTime=i.start,t.stopTime=i.stop),u(n.currentTime)&&(t.currentTime=J.fromIso8601(n.currentTime)),u(n.range)&&(t.clockRange=y(Fr[n.range],Fr.LOOP_STOP)),u(n.step)&&(t.clockStep=y(ho[n.step],ho.SYSTEM_CLOCK_MULTIPLIER)),u(n.multiplier)&&(t.multiplier=n.multiplier),t.equals(e._clock)?!1:(e._clock=t.clone(e._clock),!0)}function Vle(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 bt(s)),e._credit=s,typeof t=="string"||t instanceof ve){t=ve.createIfNeeded(t),o=t.fetchJson(),r=y(r,t.clone());let a=e._resourceCredits,c=t.credits;if(u(c)){let l=c.length;for(let f=0;f<l;f++)a.push(c[f])}}return r=ve.createIfNeeded(r),Lr.setLoading(e,!0),Promise.resolve(o).then(function(a){return Tqe(e,a,r,i)}).catch(function(a){return Lr.setLoading(e,!1),e._error.raiseEvent(e,a),console.log(a),Promise.reject(a)})}function Tqe(e,t,n,i){Lr.setLoading(e,!0);let o=e._entityCollection;i&&(e._version=void 0,e._documentPacket=new zle,o.removeAll()),Ol._processCzml(t,o,n,void 0,e);let r=bqe(e),s=e._documentPacket;return u(s.name)&&e._name!==s.name?(e._name=s.name,r=!0):!u(e._name)&&u(n)&&(e._name=p_(n.getUrlComponent()),r=!0),Lr.setLoading(e,!1),r&&e._changed.raiseEvent(e),e}function zle(){this.name=void 0,this.clock=void 0}function Ol(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 zle,this._version=void 0,this._entityCollection=new Ms(this),this._entityCluster=new hu,this._credit=void 0,this._resourceCredits=[]}Ol.load=function(e,t){return new Ol().load(e,t)};Object.defineProperties(Ol.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}}});Ol.updaters=[nqe,iqe,oqe,rqe,aqe,cqe,lqe,uqe,G7e,W7e,fqe,dqe,hqe,pqe,_qe,X7e,gqe,j7e,yqe,q7e,xqe,Y7e,eqe];Ol.prototype.process=function(e,t){return Vle(this,e,t,!1)};Ol.prototype.load=function(e,t){return Vle(this,e,t,!0)};Ol.prototype.update=function(e){return!0};Ol.processPacketData=_e;Ol.processPositionPacketData=Ule;Ol.processMaterialPacketData=yu;Ol._processCzml=function(e,t,n,i,o){if(i=y(i,Ol.updaters),Array.isArray(e))for(let r=0,s=e.length;r<s;++r)Fle(e[r],t,i,n,o);else Fle(e,t,i,n,o)};var MM=Ol;function Gc(){this._dataSources=[],this._dataSourceAdded=new pe,this._dataSourceRemoved=new pe,this._dataSourceMoved=new pe}Object.defineProperties(Gc.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}}});Gc.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})};Gc.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};Gc.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=[]};Gc.prototype.contains=function(e){return this.indexOf(e)!==-1};Gc.prototype.indexOf=function(e){return this._dataSources.indexOf(e)};Gc.prototype.get=function(e){return this._dataSources[e]};Gc.prototype.getByName=function(e){return this._dataSources.filter(function(t){return t.name===e})};function uV(e,t){return e.indexOf(t)}function Hle(e,t,n){let i=e._dataSources,o=i.length-1;if(t=P.clamp(t,0,o),n=P.clamp(n,0,o),t===n)return;let r=i[t];i[t]=i[n],i[n]=r,e.dataSourceMoved.raiseEvent(r,n,t)}Gc.prototype.raise=function(e){let t=uV(this._dataSources,e);Hle(this,t,t+1)};Gc.prototype.lower=function(e){let t=uV(this._dataSources,e);Hle(this,t,t-1)};Gc.prototype.raiseToTop=function(e){let t=uV(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))};Gc.prototype.lowerToBottom=function(e){let t=uV(this._dataSources,e);t!==0&&(this._dataSources.splice(t,1),this._dataSources.splice(0,0,e),this.dataSourceMoved.raiseEvent(e,0,t))};Gc.prototype.isDestroyed=function(){return!1};Gc.prototype.destroy=function(){return this.removeAll(!0),le(this)};var LM=Gc;function ea(e){e=y(e,y.EMPTY_OBJECT),this._primitives=[],this._guid=Wn(),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(ea.prototype,{length:{get:function(){return this._primitives.length}},primitiveAdded:{get:function(){return this._primitiveAdded}},primitiveRemoved:{get:function(){return this._primitiveRemoved}}});ea.prototype.add=function(e,t){let n=u(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};ea.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};ea.prototype.removeAndDestroy=function(e){let t=this.remove(e);return t&&!this.destroyPrimitives&&e.destroy(),t};ea.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=[]};ea.prototype.contains=function(e){return!!(u(e)&&e._external&&e._external._composites&&e._external._composites[this._guid])};function fV(e,t){return e._primitives.indexOf(t)}ea.prototype.raise=function(e){if(u(e)){let t=fV(this,e),n=this._primitives;if(t!==n.length-1){let i=n[t];n[t]=n[t+1],n[t+1]=i}}};ea.prototype.raiseToTop=function(e){if(u(e)){let t=fV(this,e),n=this._primitives;t!==n.length-1&&(n.splice(t,1),n.push(e))}};ea.prototype.lower=function(e){if(u(e)){let t=fV(this,e),n=this._primitives;if(t!==0){let i=n[t];n[t]=n[t-1],n[t-1]=i}}};ea.prototype.lowerToBottom=function(e){if(u(e)){let t=fV(this,e),n=this._primitives;t!==0&&(n.splice(t,1),n.unshift(e))}};ea.prototype.get=function(e){return this._primitives[e]};ea.prototype.update=function(e){if(!this.show)return;let t=this._primitives;for(let n=0;n<t.length;++n)t[n].update(e)};ea.prototype.prePassesUpdate=function(e){let t=this._primitives;for(let n=0;n<t.length;++n){let i=t[n];u(i.prePassesUpdate)&&i.prePassesUpdate(e)}};ea.prototype.updateForPass=function(e,t){let n=this._primitives;for(let i=0;i<n.length;++i){let o=n[i];u(o.updateForPass)&&o.updateForPass(e,t)}};ea.prototype.postPassesUpdate=function(e){let t=this._primitives;for(let n=0;n<t.length;++n){let i=t[n];u(i.postPassesUpdate)&&i.postPassesUpdate(e)}};ea.prototype.isDestroyed=function(){return!1};ea.prototype.destroy=function(){return this.removeAll(),le(this)};var Rl=ea;function lm(){this._length=0,this._collections={},this._collectionsArray=[],this.show=!0}Object.defineProperties(lm.prototype,{length:{get:function(){return this._length}}});lm.prototype.add=function(e,t){t=y(t,0);let n=this._collections[t];if(!u(n)){n=new Rl({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};lm.prototype.set=function(e,t){return t===e._zIndex||(this.remove(e,!0),this.add(e,t)),e};lm.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};lm.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};lm.prototype.contains=function(e){if(!u(e))return!1;let t=this._collections[e._zIndex];return u(t)&&t.contains(e)};lm.prototype.update=function(e){if(!this.show)return;let t=this._collectionsArray;for(let n=0;n<t.length;n++)t[n].update(e)};lm.prototype.isDestroyed=function(){return!1};lm.prototype.destroy=function(){return this.removeAll(),le(this)};var NM=lm;function QC(e,t){this._primitives=e,this._orderedGroundPrimitives=t,this._dynamicUpdaters=new xt}QC.prototype.add=function(e,t){this._dynamicUpdaters.set(t.id,t.createDynamicUpdater(this._primitives,this._orderedGroundPrimitives))};QC.prototype.remove=function(e){let t=e.id,n=this._dynamicUpdaters.get(t);u(n)&&(this._dynamicUpdaters.remove(t),n.destroy())};QC.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};QC.prototype.removeAllPrimitives=function(){let e=this._dynamicUpdaters.values;for(let t=0,n=e.length;t<n;t++)e[t].destroy();this._dynamicUpdaters.removeAll()};QC.prototype.getBoundingSphere=function(e,t){return e=this._dynamicUpdaters.get(e.id),u(e)&&u(e.getBoundingSphere)?e.getBoundingSphere(t):ot.FAILED};var Cb=QC;var LW={},dV=new h,Gle=new h,Wle=new Le,jle=new Q;function JC(e,t,n,i,o,r,s,a,c,l){let f=e+t;h.multiplyByScalar(i,Math.cos(f),dV),h.multiplyByScalar(n,Math.sin(f),Gle),h.add(dV,Gle,dV);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 Le.fromAxisAngle(dV,m,Wle),Q.fromQuaternion(Wle,jle),Q.multiplyByVector(jle,c,l),h.normalize(l,l),h.multiplyByScalar(l,a,l),l}var qle=new h,Yle=new h,MW=new h,Aqe=new h;LW.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,l=n?c:0;for(let f=0;f<c;f+=3){let d=f+1,p=f+2,g=h.fromArray(e,f,qle);i.scaleToGeodeticSurface(g,g);let m=h.clone(g,Yle),x=i.geodeticSurfaceNormal(g,Aqe),b=h.multiplyByScalar(x,o,MW);h.add(g,b,g),n&&(h.multiplyByScalar(x,r,b),h.add(m,b,m),a[f+l]=m.x,a[d+l]=m.y,a[p+l]=m.z),a[f]=g.x,a[d]=g.y,a[p]=g.z}return a};var Cqe=new h,Eqe=new h,Sqe=new h;LW.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,l=o*o,f=o*i,d=h.magnitude(s),p=h.normalize(s,Cqe),g=h.cross(h.UNIT_Z,s,Eqe);g=h.normalize(g,g);let m=h.cross(p,g,Sqe),x=1+Math.ceil(P.PI_OVER_TWO/a),b=P.PI_OVER_TWO/(x-1),T=P.PI_OVER_TWO-x*b;T<0&&(x-=Math.ceil(Math.abs(T)/b));let A=2*(x*(x+2)),C=t?new Array(A*3):void 0,S=0,w=qle,D=Yle,O=x*4*3,R=O-1,L=0,N=n?new Array(O):void 0,_,E,v,I,M;for(T=P.PI_OVER_TWO,w=JC(T,r,m,g,c,f,l,d,p,w),t&&(C[S++]=w.x,C[S++]=w.y,C[S++]=w.z),n&&(N[R--]=w.z,N[R--]=w.y,N[R--]=w.x),T=P.PI_OVER_TWO-b,_=1;_<x+1;++_){if(w=JC(T,r,m,g,c,f,l,d,p,w),D=JC(Math.PI-T,r,m,g,c,f,l,d,p,D),t){for(C[S++]=w.x,C[S++]=w.y,C[S++]=w.z,v=2*_+2,E=1;E<v-1;++E)I=E/(v-1),M=h.lerp(w,D,I,MW),C[S++]=M.x,C[S++]=M.y,C[S++]=M.z;C[S++]=D.x,C[S++]=D.y,C[S++]=D.z}n&&(N[R--]=w.z,N[R--]=w.y,N[R--]=w.x,N[L++]=D.x,N[L++]=D.y,N[L++]=D.z),T=P.PI_OVER_TWO-(_+1)*b}for(_=x;_>1;--_){if(T=P.PI_OVER_TWO-(_-1)*b,w=JC(-T,r,m,g,c,f,l,d,p,w),D=JC(T+Math.PI,r,m,g,c,f,l,d,p,D),t){for(C[S++]=w.x,C[S++]=w.y,C[S++]=w.z,v=2*(_-1)+2,E=1;E<v-1;++E)I=E/(v-1),M=h.lerp(w,D,I,MW),C[S++]=M.x,C[S++]=M.y,C[S++]=M.z;C[S++]=D.x,C[S++]=D.y,C[S++]=D.z}n&&(N[R--]=w.z,N[R--]=w.y,N[R--]=w.x,N[L++]=D.x,N[L++]=D.y,N[L++]=D.z)}T=P.PI_OVER_TWO,w=JC(-T,r,m,g,c,f,l,d,p,w);let B={};return t&&(C[S++]=w.x,C[S++]=w.y,C[S++]=w.z,B.positions=C,B.numPts=x),n&&(N[R--]=w.z,N[R--]=w.y,N[R--]=w.x,B.outerPositions=N),B};var Ml=LW;var eE=new h,NW=new h,FW=new h,Xle=new h,ds=new z,Kle=new Q,wqe=new Q,BW=new Le,Zle=new h,$le=new h,Qle=new h,pV=new fe,Jle=new h,eue=new z,tue=new z;function nue(e,t,n){let i=t.vertexFormat,o=t.center,r=t.semiMajorAxis,s=t.semiMinorAxis,a=t.ellipsoid,c=t.stRotation,l=n?e.length/3*2:e.length/3,f=t.shadowVolume,d=i.st?new Float32Array(l*2):void 0,p=i.normal?new Float32Array(l*3):void 0,g=i.tangent?new Float32Array(l*3):void 0,m=i.bitangent?new Float32Array(l*3):void 0,x=f?new Float32Array(l*3):void 0,b=0,T=Zle,A=$le,C=Qle,S=new wi(a),w=S.project(a.cartesianToCartographic(o,pV),Jle),D=a.scaleToGeodeticSurface(o,eE);a.geodeticSurfaceNormal(D,D);let O=Kle,R=wqe;if(c!==0){let M=Le.fromAxisAngle(D,c,BW);O=Q.fromQuaternion(M,O),M=Le.fromAxisAngle(D,-c,BW),R=Q.fromQuaternion(M,R)}else O=Q.clone(Q.IDENTITY,O),R=Q.clone(Q.IDENTITY,R);let L=z.fromElements(Number.POSITIVE_INFINITY,Number.POSITIVE_INFINITY,eue),N=z.fromElements(Number.NEGATIVE_INFINITY,Number.NEGATIVE_INFINITY,tue),_=e.length,E=n?_:0,v=E/3*2;for(let M=0;M<_;M+=3){let B=M+1,V=M+2,U=h.fromArray(e,M,eE);if(i.st){let G=Q.multiplyByVector(O,U,NW),k=S.project(a.cartesianToCartographic(G,pV),FW);h.subtract(k,w,k),ds.x=(k.x+r)/(2*r),ds.y=(k.y+s)/(2*s),L.x=Math.min(ds.x,L.x),L.y=Math.min(ds.y,L.y),N.x=Math.max(ds.x,N.x),N.y=Math.max(ds.y,N.y),n&&(d[b+v]=ds.x,d[b+1+v]=ds.y),d[b++]=ds.x,d[b++]=ds.y}(i.normal||i.tangent||i.bitangent||f)&&(T=a.geodeticSurfaceNormal(U,T),f&&(x[M+E]=-T.x,x[B+E]=-T.y,x[V+E]=-T.z),(i.normal||i.tangent||i.bitangent)&&((i.tangent||i.bitangent)&&(A=h.normalize(h.cross(h.UNIT_Z,T,A),A),Q.multiplyByVector(R,A,A)),i.normal&&(p[M]=T.x,p[B]=T.y,p[V]=T.z,n&&(p[M+E]=-T.x,p[B+E]=-T.y,p[V+E]=-T.z)),i.tangent&&(g[M]=A.x,g[B]=A.y,g[V]=A.z,n&&(g[M+E]=-A.x,g[B+E]=-A.y,g[V+E]=-A.z)),i.bitangent&&(C=h.normalize(h.cross(T,A,C),C),m[M]=C.x,m[B]=C.y,m[V]=C.z,n&&(m[M+E]=C.x,m[B+E]=C.y,m[V+E]=C.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 I=new fn;if(i.position){let M=Ml.raisePositionsToHeight(e,t,n);I.position=new we({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:M})}if(i.st&&(I.st=new we({componentDatatype:X.FLOAT,componentsPerAttribute:2,values:d})),i.normal&&(I.normal=new we({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:p})),i.tangent&&(I.tangent=new we({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:g})),i.bitangent&&(I.bitangent=new we({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:m})),f&&(I.extrudeDirection=new we({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:x})),n&&u(t.offsetAttribute)){let M=new Uint8Array(l);if(t.offsetAttribute===tn.TOP)M=M.fill(1,0,l/2);else{let B=t.offsetAttribute===tn.NONE?0:1;M=M.fill(B)}I.applyOffset=new we({componentDatatype:X.UNSIGNED_BYTE,componentsPerAttribute:1,values:M})}return I}function iue(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 Eb=new h;function vqe(e){let t=e.center;Eb=h.multiplyByScalar(e.ellipsoid.geodeticSurfaceNormal(t,Eb),e.height,Eb),Eb=h.add(t,Eb,Eb);let n=new se(Eb,e.semiMajorAxis),i=Ml.computeEllipsePositions(e,!0,!1),o=i.positions,r=i.numPts,s=nue(o,e,!1),a=iue(r);return a=Fe.createTypedArray(o.length/3,a),{boundingSphere:n,attributes:s,indices:a}}function Dqe(e,t){let n=t.vertexFormat,i=t.center,o=t.semiMajorAxis,r=t.semiMinorAxis,s=t.ellipsoid,a=t.height,c=t.extrudedHeight,l=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,A=0,C=Zle,S=$le,w=Qle,D=new wi(s),O=D.project(s.cartesianToCartographic(i,pV),Jle),R=s.scaleToGeodeticSurface(i,eE);s.geodeticSurfaceNormal(R,R);let L=Le.fromAxisAngle(R,l,BW),N=Q.fromQuaternion(L,Kle),_=z.fromElements(Number.POSITIVE_INFINITY,Number.POSITIVE_INFINITY,eue),E=z.fromElements(Number.NEGATIVE_INFINITY,Number.NEGATIVE_INFINITY,tue),v=e.length,I=v/3*2;for(let B=0;B<v;B+=3){let V=B+1,U=B+2,G=h.fromArray(e,B,eE),k;if(n.st){let j=Q.multiplyByVector(N,G,NW),$=D.project(s.cartesianToCartographic(j,pV),FW);h.subtract($,O,$),ds.x=($.x+o)/(2*o),ds.y=($.y+r)/(2*r),_.x=Math.min(ds.x,_.x),_.y=Math.min(ds.y,_.y),E.x=Math.max(ds.x,E.x),E.y=Math.max(ds.y,E.y),p[A+I]=ds.x,p[A+1+I]=ds.y,p[A++]=ds.x,p[A++]=ds.y}G=s.scaleToGeodeticSurface(G,G),k=h.clone(G,NW),C=s.geodeticSurfaceNormal(G,C),b&&(T[B+v]=-C.x,T[V+v]=-C.y,T[U+v]=-C.z);let Y=h.multiplyByScalar(C,a,Xle);if(G=h.add(G,Y,G),Y=h.multiplyByScalar(C,c,Y),k=h.add(k,Y,k),n.position&&(d[B+v]=k.x,d[V+v]=k.y,d[U+v]=k.z,d[B]=G.x,d[V]=G.y,d[U]=G.z),n.normal||n.tangent||n.bitangent){w=h.clone(C,w);let j=h.fromArray(e,(B+3)%v,Xle);h.subtract(j,G,j);let $=h.subtract(k,G,FW);C=h.normalize(h.cross($,j,C),C),n.normal&&(g[B]=C.x,g[V]=C.y,g[U]=C.z,g[B+v]=C.x,g[V+v]=C.y,g[U+v]=C.z),n.tangent&&(S=h.normalize(h.cross(w,C,S),S),m[B]=S.x,m[V]=S.y,m[U]=S.z,m[B+v]=S.x,m[B+1+v]=S.y,m[B+2+v]=S.z),n.bitangent&&(x[B]=w.x,x[V]=w.y,x[U]=w.z,x[B+v]=w.x,x[V+v]=w.y,x[U+v]=w.z)}}if(n.st){v=p.length;for(let B=0;B<v;B+=2)p[B]=(p[B]-_.x)/(E.x-_.x),p[B+1]=(p[B+1]-_.y)/(E.y-_.y)}let M=new fn;if(n.position&&(M.position=new we({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:d})),n.st&&(M.st=new we({componentDatatype:X.FLOAT,componentsPerAttribute:2,values:p})),n.normal&&(M.normal=new we({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:g})),n.tangent&&(M.tangent=new we({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:m})),n.bitangent&&(M.bitangent=new we({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:x})),b&&(M.extrudeDirection=new we({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:T})),u(t.offsetAttribute)){let B=new Uint8Array(f);if(t.offsetAttribute===tn.TOP)B=B.fill(1,0,f/2);else{let V=t.offsetAttribute===tn.NONE?0:1;B=B.fill(V)}M.applyOffset=new we({componentDatatype:X.UNSIGNED_BYTE,componentsPerAttribute:1,values:B})}return M}function Iqe(e){let t=e.length/3,n=Fe.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 hV=new se,mV=new se;function Pqe(e){let t=e.center,n=e.ellipsoid,i=e.semiMajorAxis,o=h.multiplyByScalar(n.geodeticSurfaceNormal(t,eE),e.height,eE);hV.center=h.add(t,o,hV.center),hV.radius=i,o=h.multiplyByScalar(n.geodeticSurfaceNormal(t,o),e.extrudedHeight,o),mV.center=h.add(t,o,mV.center),mV.radius=i;let r=Ml.computeEllipsePositions(e,!0,!0),s=r.positions,a=r.numPts,c=r.outerPositions,l=se.union(hV,mV),f=nue(s,e,!0),d=iue(a),p=d.length;d.length=p*2;let g=s.length/3;for(let S=0;S<p;S+=3)d[S+p]=d[S+2]+g,d[S+1+p]=d[S+1]+g,d[S+2+p]=d[S]+g;let m=Fe.createTypedArray(g*2/3,d),x=new st({attributes:f,indices:m,primitiveType:Me.TRIANGLES}),b=Dqe(c,e);d=Iqe(c);let T=Fe.createTypedArray(c.length*2/3,d),A=new st({attributes:b,indices:T,primitiveType:Me.TRIANGLES}),C=Nn.combineInstances([new yt({geometry:x}),new yt({geometry:A})]);return{boundingSphere:l,attributes:C[0].attributes,indices:C[0].indices}}function oue(e,t,n,i,o,r,s){let c=Ml.computeEllipsePositions({center:e,semiMajorAxis:t,semiMinorAxis:n,rotation:i,granularity:o},!1,!0).outerPositions,l=c.length/3,f=new Array(l);for(let p=0;p<l;++p)f[p]=h.fromArray(c,p*3);let d=ce.fromCartesianArray(f,r,s);return d.width>P.PI&&(d.north=d.north>0?P.PI_OVER_TWO-P.EPSILON7:d.north,d.south=d.south<0?P.EPSILON7-P.PI_OVER_TWO:d.south,d.east=P.PI,d.west=-P.PI),d}function fm(e){e=y(e,y.EMPTY_OBJECT);let t=e.center,n=y(e.ellipsoid,ie.WGS84),i=e.semiMajorAxis,o=e.semiMinorAxis,r=y(e.granularity,P.RADIANS_PER_DEGREE),s=y(e.vertexFormat,Pe.DEFAULT),a=y(e.height,0),c=y(e.extrudedHeight,a);this._center=h.clone(t),this._semiMajorAxis=i,this._semiMinorAxis=o,this._ellipsoid=ie.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=Pe.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}fm.packedLength=h.packedLength+ie.packedLength+Pe.packedLength+9;fm.pack=function(e,t,n){return n=y(n,0),h.pack(e._center,t,n),n+=h.packedLength,ie.pack(e._ellipsoid,t,n),n+=ie.packedLength,Pe.pack(e._vertexFormat,t,n),n+=Pe.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 rue=new h,sue=new ie,aue=new Pe,um={center:rue,ellipsoid:sue,vertexFormat:aue,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};fm.unpack=function(e,t,n){t=y(t,0);let i=h.unpack(e,t,rue);t+=h.packedLength;let o=ie.unpack(e,t,sue);t+=ie.packedLength;let r=Pe.unpack(e,t,aue);t+=Pe.packedLength;let s=e[t++],a=e[t++],c=e[t++],l=e[t++],f=e[t++],d=e[t++],p=e[t++],g=e[t++]===1,m=e[t];return u(n)?(n._center=h.clone(i,n._center),n._ellipsoid=ie.clone(o,n._ellipsoid),n._vertexFormat=Pe.clone(r,n._vertexFormat),n._semiMajorAxis=s,n._semiMinorAxis=a,n._rotation=c,n._stRotation=l,n._height=f,n._granularity=d,n._extrudedHeight=p,n._shadowVolume=g,n._offsetAttribute=m===-1?void 0:m,n):(um.height=f,um.extrudedHeight=p,um.granularity=d,um.stRotation=l,um.rotation=c,um.semiMajorAxis=s,um.semiMinorAxis=a,um.shadowVolume=g,um.offsetAttribute=m===-1?void 0:m,new fm(um))};fm.computeRectangle=function(e,t){e=y(e,y.EMPTY_OBJECT);let n=e.center,i=y(e.ellipsoid,ie.WGS84),o=e.semiMajorAxis,r=e.semiMinorAxis,s=y(e.granularity,P.RADIANS_PER_DEGREE),a=y(e.rotation,0);return oue(n,o,r,a,s,i,t)};fm.createGeometry=function(e){if(e._semiMajorAxis<=0||e._semiMinorAxis<=0)return;let t=e._height,n=e._extrudedHeight,i=!P.equalsEpsilon(t,n,0,P.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=Pqe(o);else if(r=vqe(o),u(e._offsetAttribute)){let s=r.attributes.position.values.length,a=e._offsetAttribute===tn.NONE?0:1,c=new Uint8Array(s/3).fill(a);r.attributes.applyOffset=new we({componentDatatype:X.UNSIGNED_BYTE,componentsPerAttribute:1,values:c})}return new st({attributes:r.attributes,indices:r.indices,primitiveType:Me.TRIANGLES,boundingSphere:r.boundingSphere,offsetAttribute:e._offsetAttribute})};fm.createShadowVolume=function(e,t,n){let i=e._granularity,o=e._ellipsoid,r=t(i,o),s=n(i,o);return new fm({center:e._center,semiMajorAxis:e._semiMajorAxis,semiMinorAxis:e._semiMinorAxis,ellipsoid:o,rotation:e._rotation,stRotation:e._stRotation,granularity:i,extrudedHeight:r,height:s,vertexFormat:Pe.POSITION_ONLY,shadowVolume:!0})};function Oqe(e){let t=-e._stRotation;if(t===0)return[0,0,0,1,1,0];let i=Ml.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(fm.prototype,{rectangle:{get:function(){return u(this._rectangle)||(this._rectangle=oue(this._center,this._semiMajorAxis,this._semiMinorAxis,this._rotation,this._granularity,this._ellipsoid)),this._rectangle}},textureCoordinateRotationPoints:{get:function(){return u(this._textureCoordinateRotationPoints)||(this._textureCoordinateRotationPoints=Oqe(this)),this._textureCoordinateRotationPoints}}});var Wc=fm;var cue=new h,Sb=new h;function Rqe(e){let t=e.center;Sb=h.multiplyByScalar(e.ellipsoid.geodeticSurfaceNormal(t,Sb),e.height,Sb),Sb=h.add(t,Sb,Sb);let n=new se(Sb,e.semiMajorAxis),i=Ml.computeEllipsePositions(e,!1,!0).outerPositions,o=new fn({position:new we({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:Ml.raisePositionsToHeight(i,e,!1)})}),r=i.length/3,s=Fe.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 _V=new se,gV=new se;function Mqe(e){let t=e.center,n=e.ellipsoid,i=e.semiMajorAxis,o=h.multiplyByScalar(n.geodeticSurfaceNormal(t,cue),e.height,cue);_V.center=h.add(t,o,_V.center),_V.radius=i,o=h.multiplyByScalar(n.geodeticSurfaceNormal(t,o),e.extrudedHeight,o),gV.center=h.add(t,o,gV.center),gV.radius=i;let r=Ml.computeEllipsePositions(e,!1,!0).outerPositions,s=new fn({position:new we({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:Ml.raisePositionsToHeight(r,e,!0)})});r=s.position.values;let a=se.union(_V,gV),c=r.length/3;if(u(e.offsetAttribute)){let m=new Uint8Array(c);if(e.offsetAttribute===tn.TOP)m=m.fill(1,0,c/2);else{let x=e.offsetAttribute===tn.NONE?0:1;m=m.fill(x)}s.applyOffset=new we({componentDatatype:X.UNSIGNED_BYTE,componentsPerAttribute:1,values:m})}let l=y(e.numberOfVerticalLines,16);l=P.clamp(l,0,c/2);let f=Fe.createTypedArray(c,c*2+l*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(l>0){let m=Math.min(l,c);g=Math.round(c/m);let x=Math.min(g*l,c);for(p=0;p<x;p+=g)f[d++]=p,f[d++]=p+c}return{boundingSphere:a,attributes:s,indices:f}}function tE(e){e=y(e,y.EMPTY_OBJECT);let t=e.center,n=y(e.ellipsoid,ie.WGS84),i=e.semiMajorAxis,o=e.semiMinorAxis,r=y(e.granularity,P.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=ie.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"}tE.packedLength=h.packedLength+ie.packedLength+8;tE.pack=function(e,t,n){return n=y(n,0),h.pack(e._center,t,n),n+=h.packedLength,ie.pack(e._ellipsoid,t,n),n+=ie.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 lue=new h,uue=new ie,T_={center:lue,ellipsoid:uue,semiMajorAxis:void 0,semiMinorAxis:void 0,rotation:void 0,height:void 0,granularity:void 0,extrudedHeight:void 0,numberOfVerticalLines:void 0,offsetAttribute:void 0};tE.unpack=function(e,t,n){t=y(t,0);let i=h.unpack(e,t,lue);t+=h.packedLength;let o=ie.unpack(e,t,uue);t+=ie.packedLength;let r=e[t++],s=e[t++],a=e[t++],c=e[t++],l=e[t++],f=e[t++],d=e[t++],p=e[t];return u(n)?(n._center=h.clone(i,n._center),n._ellipsoid=ie.clone(o,n._ellipsoid),n._semiMajorAxis=r,n._semiMinorAxis=s,n._rotation=a,n._height=c,n._granularity=l,n._extrudedHeight=f,n._numberOfVerticalLines=d,n._offsetAttribute=p===-1?void 0:p,n):(T_.height=c,T_.extrudedHeight=f,T_.granularity=l,T_.rotation=a,T_.semiMajorAxis=r,T_.semiMinorAxis=s,T_.numberOfVerticalLines=d,T_.offsetAttribute=p===-1?void 0:p,new tE(T_))};tE.createGeometry=function(e){if(e._semiMajorAxis<=0||e._semiMinorAxis<=0)return;let t=e._height,n=e._extrudedHeight,i=!P.equalsEpsilon(t,n,0,P.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=Mqe(o);else if(r=Rqe(o),u(e._offsetAttribute)){let s=r.attributes.position.values.length,a=e._offsetAttribute===tn.NONE?0:1,c=new Uint8Array(s/3).fill(a);r.attributes.applyOffset=new we({componentDatatype:X.UNSIGNED_BYTE,componentsPerAttribute:1,values:c})}return new st({attributes:r.attributes,indices:r.indices,primitiveType:Me.LINES,boundingSphere:r.boundingSphere,offsetAttribute:e._offsetAttribute})};var xu=tE;var fue=new H,due=h.ZERO,hue=new h,mue=new ce;function Lqe(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 Qd(e,t){Yn.call(this,{entity:e,scene:t,geometryOptions:new Lqe(e),geometryPropertyName:"ellipse",observedPropertyNames:["availability","position","ellipse"]}),this._onEntityPropertyChanged(e,"ellipse",e.ellipse,void 0)}u(Object.create)&&(Qd.prototype=Object.create(Yn.prototype),Qd.prototype.constructor=Qd);Qd.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:Un.fromDistanceDisplayCondition(this._distanceDisplayConditionProperty.getValue(e)),offset:void 0,color:void 0};if(this._materialProperty instanceof Nt){let o;u(this._materialProperty.color)&&(this._materialProperty.color.isConstant||n)&&(o=this._materialProperty.color.getValue(e,fue)),u(o)||(o=H.WHITE),i.color=kt.fromColor(o)}return u(this._options.offsetAttribute)&&(i.offset=Yi.fromCartesian3(q.getValueOrDefault(this._terrainOffsetProperty,e,due,hue))),new yt({id:t,geometry:new Wc(this._options),attributes:i})};Qd.prototype.createOutlineGeometryInstance=function(e){let t=this._entity,n=t.isAvailable(e),i=q.getValueOrDefault(this._outlineColorProperty,e,H.BLACK,fue),o=this._distanceDisplayConditionProperty.getValue(e),r={show:new gn(n&&t.isShowing&&this._showProperty.getValue(e)&&this._showOutlineProperty.getValue(e)),color:kt.fromColor(i),distanceDisplayCondition:Un.fromDistanceDisplayCondition(o),offset:void 0};return u(this._options.offsetAttribute)&&(r.offset=Yi.fromCartesian3(q.getValueOrDefault(this._terrainOffsetProperty,e,due,hue))),new yt({id:t,geometry:new xu(this._options),attributes:r})};Qd.prototype._computeCenter=function(e,t){return q.getValueOrUndefined(this._entity.position,e,t)};Qd.prototype._isHidden=function(e,t){let n=e.position;return!u(n)||!u(t.semiMajorAxis)||!u(t.semiMinorAxis)||oi.prototype._isHidden.call(this,e,t)};Qd.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 Nt)};Qd.prototype._setStaticOptions=function(e,t){let n=q.getValueOrUndefined(t.height,Ve.MINIMUM_VALUE),i=q.getValueOrDefault(t.heightReference,Ve.MINIMUM_VALUE,Ge.NONE),o=q.getValueOrUndefined(t.extrudedHeight,Ve.MINIMUM_VALUE),r=q.getValueOrDefault(t.extrudedHeightReference,Ve.MINIMUM_VALUE,Ge.NONE);u(o)&&!u(n)&&(n=0);let s=this._options;s.vertexFormat=this._materialProperty instanceof Nt?nn.VERTEX_FORMAT:so.MaterialSupport.TEXTURED.vertexFormat,s.center=e.position.getValue(Ve.MINIMUM_VALUE,s.center),s.semiMajorAxis=t.semiMajorAxis.getValue(Ve.MINIMUM_VALUE,s.semiMajorAxis),s.semiMinorAxis=t.semiMinorAxis.getValue(Ve.MINIMUM_VALUE,s.semiMinorAxis),s.rotation=q.getValueOrUndefined(t.rotation,Ve.MINIMUM_VALUE),s.granularity=q.getValueOrUndefined(t.granularity,Ve.MINIMUM_VALUE),s.stRotation=q.getValueOrUndefined(t.stRotation,Ve.MINIMUM_VALUE),s.numberOfVerticalLines=q.getValueOrUndefined(t.numberOfVerticalLines,Ve.MINIMUM_VALUE),s.offsetAttribute=Yn.computeGeometryOffsetAttribute(n,i,o,r),s.height=Yn.getGeometryHeight(n,i),o=Yn.getGeometryExtrudedHeight(o,r),o===Yn.CLAMP_TO_GROUND&&(o=li.getMinimumMaximumHeights(Wc.computeRectangle(s,mue)).minimumTerrainHeight),s.extrudedHeight=o};Qd.DynamicGeometryUpdater=nE;function nE(e,t,n){ii.call(this,e,t,n)}u(Object.create)&&(nE.prototype=Object.create(ii.prototype),nE.prototype.constructor=nE);nE.prototype._isHidden=function(e,t,n){let i=this._options;return!u(i.center)||!u(i.semiMajorAxis)||!u(i.semiMinorAxis)||ii.prototype._isHidden.call(this,e,t,n)};nE.prototype._setOptions=function(e,t,n){let i=this._options,o=q.getValueOrUndefined(t.height,n),r=q.getValueOrDefault(t.heightReference,n,Ge.NONE),s=q.getValueOrUndefined(t.extrudedHeight,n),a=q.getValueOrDefault(t.extrudedHeightReference,n,Ge.NONE);u(s)&&!u(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=Yn.computeGeometryOffsetAttribute(o,r,s,a),i.height=Yn.getGeometryHeight(o,r),s=Yn.getGeometryExtrudedHeight(s,a),s===Yn.CLAMP_TO_GROUND&&(s=li.getMinimumMaximumHeights(Wc.computeRectangle(i,mue)).minimumTerrainHeight),i.extrudedHeight=s};var FM=Qd;var Nqe=new h,Fqe=new h,Bqe=new h,kqe=new h,Uqe=new h,Vqe=new h(1,1,1),pue=Math.cos,_ue=Math.sin;function A_(e){e=y(e,y.EMPTY_OBJECT);let t=y(e.radii,Vqe),n=y(e.innerRadii,t),i=y(e.minimumClock,0),o=y(e.maximumClock,P.TWO_PI),r=y(e.minimumCone,0),s=y(e.maximumCone,P.PI),a=Math.round(y(e.stackPartitions,64)),c=Math.round(y(e.slicePartitions,64)),l=y(e.vertexFormat,Pe.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=Pe.clone(l),this._offsetAttribute=e.offsetAttribute,this._workerName="createEllipsoidGeometry"}A_.packedLength=2*h.packedLength+Pe.packedLength+7;A_.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,Pe.pack(e._vertexFormat,t,n),n+=Pe.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 gue=new h,yue=new h,xue=new Pe,by={radii:gue,innerRadii:yue,vertexFormat:xue,minimumClock:void 0,maximumClock:void 0,minimumCone:void 0,maximumCone:void 0,stackPartitions:void 0,slicePartitions:void 0,offsetAttribute:void 0};A_.unpack=function(e,t,n){t=y(t,0);let i=h.unpack(e,t,gue);t+=h.packedLength;let o=h.unpack(e,t,yue);t+=h.packedLength;let r=Pe.unpack(e,t,xue);t+=Pe.packedLength;let s=e[t++],a=e[t++],c=e[t++],l=e[t++],f=e[t++],d=e[t++],p=e[t];return u(n)?(n._radii=h.clone(i,n._radii),n._innerRadii=h.clone(o,n._innerRadii),n._vertexFormat=Pe.clone(r,n._vertexFormat),n._minimumClock=s,n._maximumClock=a,n._minimumCone=c,n._maximumCone=l,n._stackPartitions=f,n._slicePartitions=d,n._offsetAttribute=p===-1?void 0:p,n):(by.minimumClock=s,by.maximumClock=a,by.minimumCone=c,by.maximumCone=l,by.stackPartitions=f,by.slicePartitions=d,by.offsetAttribute=p===-1?void 0:p,new A_(by))};A_.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,l=e._stackPartitions+1;c=Math.round(c*Math.abs(o-i)/P.TWO_PI),l=Math.round(l*Math.abs(s-r)/P.PI),c<2&&(c=2),l<2&&(l=2);let f,d,p=0,g=[r],m=[i];for(f=0;f<l;f++)g.push(r+f*(s-r)/(l-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,A=1,C=n.x!==t.x||n.y!==t.y||n.z!==t.z,S=!1,w=!1,D=!1;C&&(A=2,r>0&&(S=!0,T+=c-1),s<Math.PI&&(w=!0,T+=c-1),(o-i)%P.TWO_PI?(D=!0,T+=(l-1)*2+1):T+=1);let O=b*x*A,R=new Float64Array(O*3),L=new Array(O).fill(!1),N=new Array(O).fill(!1),_=c*l*A,E=6*(_+T+1-(c+l)*A),v=Fe.createTypedArray(_,E),I=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,V=a.st?new Float32Array(O*2):void 0,U=new Array(x),G=new Array(x);for(f=0;f<x;f++)U[f]=_ue(g[f]),G[f]=pue(g[f]);let k=new Array(b),Y=new Array(b);for(d=0;d<b;d++)Y[d]=pue(m[d]),k[d]=_ue(m[d]);for(f=0;f<x;f++)for(d=0;d<b;d++)R[p++]=t.x*U[f]*Y[d],R[p++]=t.y*U[f]*k[d],R[p++]=t.z*G[f];let j=O/2;if(C)for(f=0;f<x;f++)for(d=0;d<b;d++)R[p++]=n.x*U[f]*Y[d],R[p++]=n.y*U[f]*k[d],R[p++]=n.z*G[f],L[j]=!0,f>0&&f!==x-1&&d!==0&&d!==b-1&&(N[j]=!0),j++;p=0;let $,W;for(f=1;f<x-2;f++)for($=f*b,W=(f+1)*b,d=1;d<b-2;d++)v[p++]=W+d,v[p++]=W+d+1,v[p++]=$+d+1,v[p++]=W+d,v[p++]=$+d+1,v[p++]=$+d;if(C){let ut=x*b;for(f=1;f<x-2;f++)for($=ut+f*b,W=ut+(f+1)*b,d=1;d<b-2;d++)v[p++]=W+d,v[p++]=$+d,v[p++]=$+d+1,v[p++]=W+d,v[p++]=$+d+1,v[p++]=W+d+1}let K,Z;if(C){if(S)for(Z=x*b,f=1;f<b-2;f++)v[p++]=f,v[p++]=f+1,v[p++]=Z+f+1,v[p++]=f,v[p++]=Z+f+1,v[p++]=Z+f;if(w)for(K=x*b-b,Z=x*b*A-b,f=1;f<b-2;f++)v[p++]=K+f+1,v[p++]=K+f,v[p++]=Z+f,v[p++]=K+f+1,v[p++]=Z+f,v[p++]=Z+f+1}if(D){for(f=1;f<x-2;f++)Z=b*x+b*f,K=b*f,v[p++]=Z,v[p++]=K+b,v[p++]=K,v[p++]=Z,v[p++]=Z+b,v[p++]=K+b;for(f=1;f<x-2;f++)Z=b*x+b*(f+1)-1,K=b*(f+1)-1,v[p++]=K+b,v[p++]=Z,v[p++]=K,v[p++]=K+b,v[p++]=Z+b,v[p++]=Z}let me=new fn;a.position&&(me.position=new we({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:R}));let xe=0,re=0,ye=0,ge=0,Ae=O/2,De,Re=ie.fromCartesian3(t),ze=ie.fromCartesian3(n);if(a.st||a.normal||a.tangent||a.bitangent){for(f=0;f<O;f++){De=L[f]?ze:Re;let ut=h.fromArray(R,f*3,Nqe),Vt=De.geodeticSurfaceNormal(ut,Fqe);if(N[f]&&h.negate(Vt,Vt),a.st){let cn=z.negate(Vt,Uqe);V[xe++]=Math.atan2(cn.y,cn.x)/P.TWO_PI+.5,V[xe++]=Math.asin(Vt.z)/Math.PI+.5}if(a.normal&&(I[re++]=Vt.x,I[re++]=Vt.y,I[re++]=Vt.z),a.tangent||a.bitangent){let cn=Bqe,ft=0,_n;if(L[f]&&(ft=Ae),!S&&f>=ft&&f<ft+b*2?_n=h.UNIT_X:_n=h.UNIT_Z,h.cross(_n,Vt,cn),h.normalize(cn,cn),a.tangent&&(M[ye++]=cn.x,M[ye++]=cn.y,M[ye++]=cn.z),a.bitangent){let Mn=h.cross(Vt,cn,kqe);h.normalize(Mn,Mn),B[ge++]=Mn.x,B[ge++]=Mn.y,B[ge++]=Mn.z}}}a.st&&(me.st=new we({componentDatatype:X.FLOAT,componentsPerAttribute:2,values:V})),a.normal&&(me.normal=new we({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:I})),a.tangent&&(me.tangent=new we({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:M})),a.bitangent&&(me.bitangent=new we({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:B}))}if(u(e._offsetAttribute)){let ut=R.length,Vt=e._offsetAttribute===tn.NONE?0:1,cn=new Uint8Array(ut/3).fill(Vt);me.applyOffset=new we({componentDatatype:X.UNSIGNED_BYTE,componentsPerAttribute:1,values:cn})}return new st({attributes:me,indices:v,primitiveType:Me.TRIANGLES,boundingSphere:se.fromEllipsoid(Re),offsetAttribute:e._offsetAttribute})};var kW;A_.getUnitEllipsoid=function(){return u(kW)||(kW=A_.createGeometry(new A_({radii:new h(1,1,1),vertexFormat:Pe.POSITION_ONLY}))),kW};var Ns=A_;var zqe=new Nt(H.WHITE),UW=h.ZERO,VW=new h,Hqe=new h,Gqe=new h,zW=new H,Wqe=new h(1,1,1);function jqe(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 bu(e,t){oi.call(this,{entity:e,scene:t,geometryOptions:new jqe(e),geometryPropertyName:"ellipsoid",observedPropertyNames:["availability","position","orientation","ellipsoid"]}),this._onEntityPropertyChanged(e,"ellipsoid",e.ellipsoid,void 0)}u(Object.create)&&(bu.prototype=Object.create(oi.prototype),bu.prototype.constructor=bu);Object.defineProperties(bu.prototype,{terrainOffsetProperty:{get:function(){return this._terrainOffsetProperty}}});bu.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=Un.fromDistanceDisplayCondition(a),l={show:s,distanceDisplayCondition:c,color:void 0,offset:void 0};if(this._materialProperty instanceof Nt){let f;u(this._materialProperty.color)&&(this._materialProperty.color.isConstant||o)&&(f=this._materialProperty.color.getValue(e,zW)),u(f)||(f=H.WHITE),r=kt.fromColor(f),l.color=r}return u(this._options.offsetAttribute)&&(l.offset=Yi.fromCartesian3(q.getValueOrDefault(this._terrainOffsetProperty,e,UW,VW))),new yt({id:i,geometry:new Ns(this._options),modelMatrix:t?void 0:i.computeModelMatrixForHeightReference(e,i.ellipsoid.heightReference,this._options.radii.z*.5,this._scene.mapProjection.ellipsoid,n),attributes:l})};bu.prototype.createOutlineGeometryInstance=function(e,t,n){let i=this._entity,o=i.isAvailable(e),r=q.getValueOrDefault(this._outlineColorProperty,e,H.BLACK,zW),s=this._distanceDisplayConditionProperty.getValue(e),a={show:new gn(o&&i.isShowing&&this._showProperty.getValue(e)&&this._showOutlineProperty.getValue(e)),color:kt.fromColor(r),distanceDisplayCondition:Un.fromDistanceDisplayCondition(s),offset:void 0};return u(this._options.offsetAttribute)&&(a.offset=Yi.fromCartesian3(q.getValueOrDefault(this._terrainOffsetProperty,e,UW,VW))),new yt({id:i,geometry:new du(this._options),modelMatrix:t?void 0:i.computeModelMatrixForHeightReference(e,i.ellipsoid.heightReference,this._options.radii.z*.5,this._scene.mapProjection.ellipsoid,n),attributes:a})};bu.prototype._computeCenter=function(e,t){return q.getValueOrUndefined(this._entity.position,e,t)};bu.prototype._isHidden=function(e,t){return!u(e.position)||!u(t.radii)||oi.prototype._isHidden.call(this,e,t)};bu.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)};bu.prototype._setStaticOptions=function(e,t){let n=q.getValueOrDefault(t.heightReference,Ve.MINIMUM_VALUE,Ge.NONE),i=this._options;i.vertexFormat=this._materialProperty instanceof Nt?nn.VERTEX_FORMAT:so.MaterialSupport.TEXTURED.vertexFormat,i.radii=t.radii.getValue(Ve.MINIMUM_VALUE,i.radii),i.innerRadii=q.getValueOrUndefined(t.innerRadii,i.radii),i.minimumClock=q.getValueOrUndefined(t.minimumClock,Ve.MINIMUM_VALUE),i.maximumClock=q.getValueOrUndefined(t.maximumClock,Ve.MINIMUM_VALUE),i.minimumCone=q.getValueOrUndefined(t.minimumCone,Ve.MINIMUM_VALUE),i.maximumCone=q.getValueOrUndefined(t.maximumCone,Ve.MINIMUM_VALUE),i.stackPartitions=q.getValueOrUndefined(t.stackPartitions,Ve.MINIMUM_VALUE),i.slicePartitions=q.getValueOrUndefined(t.slicePartitions,Ve.MINIMUM_VALUE),i.subdivisions=q.getValueOrUndefined(t.subdivisions,Ve.MINIMUM_VALUE),i.offsetAttribute=n!==Ge.NONE?tn.ALL:void 0};bu.prototype._onEntityPropertyChanged=yp;bu.DynamicGeometryUpdater=BM;function BM(e,t,n){ii.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={}}u(Object.create)&&(BM.prototype=Object.create(ii.prototype),BM.prototype.constructor=BM);BM.prototype.update=function(e){let t=this._entity,n=t.ellipsoid;if(!t.isShowing||!t.isAvailable(e)||!q.getValueOrDefault(n.show,e,!0)){u(this._primitive)&&(this._primitive.show=!1),u(this._outlinePrimitive)&&(this._outlinePrimitive.show=!1);return}let i=q.getValueOrUndefined(n.radii,e,Hqe),o=u(i)?t.computeModelMatrixForHeightReference(e,n.heightReference,i.z*.5,this._scene.mapProjection.ellipsoid,this._modelMatrix):void 0;if(!u(o)||!u(i)){u(this._primitive)&&(this._primitive.show=!1),u(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,zW),c=qo.getValue(e,y(n.material,zqe),this._material),l=q.getValueOrUndefined(n.innerRadii,e,Gqe),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),A=q.getValueOrDefault(n.heightReference,e,Ge.NONE),C=A!==Ge.NONE?tn.ALL:void 0,S=this._scene.mode,w=S===te.SCENE3D&&A===Ge.NONE,D=this._options,O=this._geometryUpdater.shadowsProperty.getValue(e),L=this._geometryUpdater.distanceDisplayConditionProperty.getValue(e),N=q.getValueOrDefault(this._geometryUpdater.terrainOffsetProperty,e,UW,VW);if(!w||this._lastSceneMode!==S||!u(this._primitive)||D.stackPartitions!==m||D.slicePartitions!==x||u(l)&&!h.equals(D.innerRadii!==l)||D.minimumClock!==f||D.maximumClock!==d||D.minimumCone!==p||D.maximumCone!==g||D.subdivisions!==b||this._lastOutlineWidth!==T||D.offsetAttribute!==C){let E=this._primitives;if(E.removeAndDestroy(this._primitive),E.removeAndDestroy(this._outlinePrimitive),this._primitive=void 0,this._outlinePrimitive=void 0,this._lastSceneMode=S,this._lastOutlineWidth=T,D.stackPartitions=m,D.slicePartitions=x,D.subdivisions=b,D.offsetAttribute=C,D.radii=h.clone(w?Wqe:i,D.radii),u(l))if(w){let B=h.magnitude(i);D.innerRadii=h.fromElements(l.x/B,l.y/B,l.z/B,D.innerRadii)}else D.innerRadii=h.clone(l,D.innerRadii);else D.innerRadii=void 0;D.minimumClock=f,D.maximumClock=d,D.minimumCone=p,D.maximumCone=g;let v=new so({material:c,translucent:c.isTranslucent(),closed:!0});D.vertexFormat=v.vertexFormat;let I=this._geometryUpdater.createFillGeometryInstance(e,w,this._modelMatrix);this._primitive=E.add(new En({geometryInstances:I,appearance:v,asynchronous:!1,shadows:O}));let M=this._geometryUpdater.createOutlineGeometryInstance(e,w,this._modelMatrix);this._outlinePrimitive=E.add(new En({geometryInstances:M,appearance:new nn({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 E=this._primitive,v=this._outlinePrimitive;E.show=!0,v.show=!0,E.appearance.material=c;let I=this._attributes;u(I)||(I=E.getGeometryInstanceAttributes(t),this._attributes=I),r!==this._lastShow&&(I.show=gn.toValue(r,I.show),this._lastShow=r);let M=this._outlineAttributes;u(M)||(M=v.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=kt.toValue(a,M.color),H.clone(a,this._lastOutlineColor)),St.equals(L,this._lastDistanceDisplayCondition)||(I.distanceDisplayCondition=Un.toValue(L,I.distanceDisplayCondition),M.distanceDisplayCondition=Un.toValue(L,M.distanceDisplayCondition),St.clone(L,this._lastDistanceDisplayCondition)),h.equals(N,this._lastOffset)||(I.offset=Yi.toValue(N,I.offset),M.offset=Yi.toValue(N,I.offset),h.clone(N,this._lastOffset))}w&&(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 kM=bu;function iE(e){e=y(e,y.EMPTY_OBJECT);let t=y(e.vertexFormat,Pe.DEFAULT);this._vertexFormat=t,this._workerName="createPlaneGeometry"}iE.packedLength=Pe.packedLength;iE.pack=function(e,t,n){return n=y(n,0),Pe.pack(e._vertexFormat,t,n),t};var bue=new Pe,qqe={vertexFormat:bue};iE.unpack=function(e,t,n){t=y(t,0);let i=Pe.unpack(e,t,bue);return u(n)?(n._vertexFormat=Pe.clone(i,n._vertexFormat),n):new iE(qqe)};var yV=new h(-.5,-.5,0),xV=new h(.5,.5,0);iE.createGeometry=function(e){let t=e._vertexFormat,n=new fn,i,o;if(t.position){if(o=new Float64Array(4*3),o[0]=yV.x,o[1]=yV.y,o[2]=0,o[3]=xV.x,o[4]=yV.y,o[5]=0,o[6]=xV.x,o[7]=xV.y,o[8]=0,o[9]=yV.x,o[10]=xV.y,o[11]=0,n.position=new we({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 we({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 we({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 we({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 we({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:Me.TRIANGLES,boundingSphere:new se(h.ZERO,Math.sqrt(2))})};var UM=iE;function oE(){this._workerName="createPlaneOutlineGeometry"}oE.packedLength=0;oE.pack=function(e,t){return t};oE.unpack=function(e,t,n){return u(n)?n:new oE};var Ty=new h(-.5,-.5,0),bV=new h(.5,.5,0);oE.createGeometry=function(){let e=new fn,t=new Uint16Array(4*2),n=new Float64Array(4*3);return n[0]=Ty.x,n[1]=Ty.y,n[2]=Ty.z,n[3]=bV.x,n[4]=Ty.y,n[5]=Ty.z,n[6]=bV.x,n[7]=bV.y,n[8]=Ty.z,n[9]=Ty.x,n[10]=bV.y,n[11]=Ty.z,e.position=new we({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:Me.LINES,boundingSphere:new se(h.ZERO,Math.sqrt(2))})};var VM=oE;var Yqe=new h,Tue=new H;function Xqe(e){this.id=e,this.vertexFormat=void 0,this.plane=void 0,this.dimensions=void 0}function Pf(e,t){oi.call(this,{entity:e,scene:t,geometryOptions:new Xqe(e),geometryPropertyName:"plane",observedPropertyNames:["availability","position","orientation","plane"]}),this._onEntityPropertyChanged(e,"plane",e.plane,void 0)}u(Object.create)&&(Pf.prototype=Object.create(oi.prototype),Pf.prototype.constructor=Pf);Pf.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=Un.fromDistanceDisplayCondition(s);if(this._materialProperty instanceof Nt){let g;u(this._materialProperty.color)&&(this._materialProperty.color.isConstant||n)&&(g=this._materialProperty.color.getValue(e,Tue)),u(g)||(g=H.WHITE),o=kt.fromColor(g),i={show:r,distanceDisplayCondition:a,color:o}}else i={show:r,distanceDisplayCondition:a};let c=t.plane,l=this._options,f=t.computeModelMatrix(e),d=q.getValueOrDefault(c.plane,e,l.plane),p=q.getValueOrUndefined(c.dimensions,e,l.dimensions);return l.plane=d,l.dimensions=p,f=HW(d,p,f,f),new yt({id:t,geometry:new UM(this._options),modelMatrix:f,attributes:i})};Pf.prototype.createOutlineGeometryInstance=function(e){let t=this._entity,n=t.isAvailable(e),i=q.getValueOrDefault(this._outlineColorProperty,e,H.BLACK,Tue),o=this._distanceDisplayConditionProperty.getValue(e),r=t.plane,s=this._options,a=t.computeModelMatrix(e),c=q.getValueOrDefault(r.plane,e,s.plane),l=q.getValueOrUndefined(r.dimensions,e,s.dimensions);return s.plane=c,s.dimensions=l,a=HW(c,l,a,a),new yt({id:t,geometry:new VM,modelMatrix:a,attributes:{show:new gn(n&&t.isShowing&&this._showProperty.getValue(e)&&this._showOutlineProperty.getValue(e)),color:kt.fromColor(i),distanceDisplayCondition:Un.fromDistanceDisplayCondition(o)}})};Pf.prototype._isHidden=function(e,t){return!u(t.plane)||!u(t.dimensions)||!u(e.position)||oi.prototype._isHidden.call(this,e,t)};Pf.prototype._getIsClosed=function(e){return!1};Pf.prototype._isDynamic=function(e,t){return!e.position.isConstant||!q.isConstant(e.orientation)||!t.plane.isConstant||!t.dimensions.isConstant||!q.isConstant(t.outlineWidth)};Pf.prototype._setStaticOptions=function(e,t){let n=this._materialProperty instanceof Nt,i=this._options;i.vertexFormat=n?nn.VERTEX_FORMAT:so.MaterialSupport.TEXTURED.vertexFormat,i.plane=t.plane.getValue(Ve.MINIMUM_VALUE,i.plane),i.dimensions=t.dimensions.getValue(Ve.MINIMUM_VALUE,i.dimensions)};Pf.DynamicGeometryUpdater=rE;function rE(e,t,n){ii.call(this,e,t,n)}u(Object.create)&&(rE.prototype=Object.create(ii.prototype),rE.prototype.constructor=rE);rE.prototype._isHidden=function(e,t,n){let i=this._options,o=q.getValueOrUndefined(e.position,n,Yqe);return!u(o)||!u(i.plane)||!u(i.dimensions)||ii.prototype._isHidden.call(this,e,t,n)};rE.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 Kqe=new h,Zqe=new h,$qe=new h,Qqe=new h,Jqe=new Q,eYe=new Q,tYe=new F;function HW(e,t,n,i){let o=e.normal,r=e.distance,s=h.multiplyByScalar(o,-r,$qe),a=h.clone(h.UNIT_Z,Zqe);P.equalsEpsilon(Math.abs(h.dot(a,o)),1,P.EPSILON8)&&(a=h.clone(h.UNIT_Y,a));let c=h.cross(a,o,Kqe);a=h.cross(o,c,a),h.normalize(c,c),h.normalize(a,a);let l=Jqe;Q.setColumn(l,0,c,l),Q.setColumn(l,1,a,l),Q.setColumn(l,2,o,l);let f=h.fromElements(t.x,t.y,1,Qqe),d=Q.multiplyByScale(l,f,eYe),p=F.fromRotationTranslation(d,s,tYe);return F.multiplyTransformation(n,p,i)}Pf.createPrimitiveMatrix=HW;var zM=Pf;var nYe=new h,iYe=new We,oYe=new z,rYe=new z,sYe=new h,aYe=new h,cYe=new h,HM=new h,lYe=new h,uYe=new h,Aue=new Le,fYe=new Q,dYe=new Q,hYe=new h;function mYe(e,t,n,i,o,r,s,a,c){let l=e.positions,f=ai.triangulate(e.positions2D,e.holes);f.length<3&&(f=[0,1,2]);let d=Fe.createTypedArray(l.length,f.length);d.set(f);let p=fYe;if(i!==0){let _=Le.fromAxisAngle(s,i,Aue);if(p=Q.fromQuaternion(_,p),t.tangent||t.bitangent){_=Le.fromAxisAngle(s,-i,Aue);let E=Q.fromQuaternion(_,dYe);a=h.normalize(Q.multiplyByVector(E,a,a),a),t.bitangent&&(c=h.normalize(h.cross(s,a,c),c))}}else p=Q.clone(Q.IDENTITY,p);let g=rYe;t.st&&(g.x=n.x,g.y=n.y);let m=l.length,x=m*3,b=new Float64Array(x),T=t.normal?new Float32Array(x):void 0,A=t.tangent?new Float32Array(x):void 0,C=t.bitangent?new Float32Array(x):void 0,S=t.st?new Float32Array(m*2):void 0,w=0,D=0,O=0,R=0,L=0;for(let _=0;_<m;_++){let E=l[_];if(b[w++]=E.x,b[w++]=E.y,b[w++]=E.z,t.st)if(u(o)&&o.positions.length===m)S[L++]=o.positions[_].x,S[L++]=o.positions[_].y;else{let v=Q.multiplyByVector(p,E,nYe),I=r(v,oYe);z.subtract(I,g,I);let M=P.clamp(I.x/n.width,0,1),B=P.clamp(I.y/n.height,0,1);S[L++]=M,S[L++]=B}t.normal&&(T[D++]=s.x,T[D++]=s.y,T[D++]=s.z),t.tangent&&(A[R++]=a.x,A[R++]=a.y,A[R++]=a.z),t.bitangent&&(C[O++]=c.x,C[O++]=c.y,C[O++]=c.z)}let N=new fn;return t.position&&(N.position=new we({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:b})),t.normal&&(N.normal=new we({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:T})),t.tangent&&(N.tangent=new we({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:A})),t.bitangent&&(N.bitangent=new we({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:C})),t.st&&(N.st=new we({componentDatatype:X.FLOAT,componentsPerAttribute:2,values:S})),new st({attributes:N,indices:d,primitiveType:Me.TRIANGLES})}function wb(e){e=y(e,y.EMPTY_OBJECT);let t=e.polygonHierarchy,n=e.textureCoordinates,i=y(e.vertexFormat,Pe.DEFAULT);this._vertexFormat=Pe.clone(i),this._polygonHierarchy=t,this._stRotation=y(e.stRotation,0),this._ellipsoid=ie.clone(y(e.ellipsoid,ie.WGS84)),this._workerName="createCoplanarPolygonGeometry",this._textureCoordinates=n,this.packedLength=Hn.computeHierarchyPackedLength(t,h)+Pe.packedLength+ie.packedLength+(u(n)?Hn.computeHierarchyPackedLength(n,z):1)+2}wb.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 wb(t)};wb.pack=function(e,t,n){return n=y(n,0),n=Hn.packPolygonHierarchy(e._polygonHierarchy,t,n,h),ie.pack(e._ellipsoid,t,n),n+=ie.packedLength,Pe.pack(e._vertexFormat,t,n),n+=Pe.packedLength,t[n++]=e._stRotation,u(e._textureCoordinates)?n=Hn.packPolygonHierarchy(e._textureCoordinates,t,n,z):t[n++]=-1,t[n++]=e.packedLength,t};var pYe=ie.clone(ie.UNIT_SPHERE),_Ye=new Pe,gYe={polygonHierarchy:{}};wb.unpack=function(e,t,n){t=y(t,0);let i=Hn.unpackPolygonHierarchy(e,t,h);t=i.startingIndex,delete i.startingIndex;let o=ie.unpack(e,t,pYe);t+=ie.packedLength;let r=Pe.unpack(e,t,_Ye);t+=Pe.packedLength;let s=e[t++],a=e[t]===-1?void 0:Hn.unpackPolygonHierarchy(e,t,z);u(a)?(t=a.startingIndex,delete a.startingIndex):t++;let c=e[t++];return u(n)||(n=new wb(gYe)),n._polygonHierarchy=i,n._ellipsoid=ie.clone(o,n._ellipsoid),n._vertexFormat=Pe.clone(r,n._vertexFormat),n._stRotation=s,n._textureCoordinates=a,n.packedLength=c,n};wb.createGeometry=function(e){let t=e._vertexFormat,n=e._polygonHierarchy,i=e._stRotation,o=e._textureCoordinates,r=u(o),s=n.positions;if(s=yo(s,h.equalsEpsilon,!0),s.length<3)return;let a=sYe,c=aYe,l=cYe,f=lYe,d=uYe;if(!t_.computeProjectTo2DArguments(s,HM,f,d))return;if(a=h.cross(f,d,a),a=h.normalize(a,a),!h.equalsEpsilon(HM,h.ZERO,P.EPSILON6)){let L=e._ellipsoid.geodeticSurfaceNormal(HM,hYe);h.dot(a,L)<0&&(a=h.negate(a,a),f=h.negate(f,f))}let g=t_.createProjectPointsTo2DFunction(HM,f,d),m=t_.createProjectPointTo2DFunction(HM,f,d);t.tangent&&(c=h.clone(f,c)),t.bitangent&&(l=h.clone(d,l));let x=Hn.polygonsFromHierarchy(n,r,g,!1),b=x.hierarchy,T=x.polygons,A=function(L){return L},C=r?Hn.polygonsFromHierarchy(o,!0,A,!1).polygons:void 0;if(b.length===0)return;s=b[0].outerRing;let S=se.fromPoints(s),w=Hn.computeBoundingRectangle(a,m,s,i,iYe),D=[];for(let L=0;L<T.length;L++){let N=new yt({geometry:mYe(T[L],t,w,i,r?C[L]:void 0,m,a,c,l)});D.push(N)}let O=Nn.combineInstances(D)[0];O.attributes.position.values=new Float64Array(O.attributes.position.values),O.indices=Fe.createTypedArray(O.attributes.position.values.length/3,O.indices);let R=O.attributes;return t.position||delete R.position,new st({attributes:R,indices:O.indices,primitiveType:O.primitiveType,boundingSphere:S})};var GM=wb;function Br(e,t){this.position=e,u(this.position)||(this.position=new z),this.tangentPlane=t,u(this.tangentPlane)||(this.tangentPlane=Br.NORTH_POLE_TANGENT_PLANE)}Object.defineProperties(Br.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*(P.PI_OVER_TWO-2*Math.atan2(e,t))}},longitude:{get:function(){let e=P.PI_OVER_TWO+Math.atan2(this.y,this.x);return e>Math.PI&&(e-=P.TWO_PI),e}}});var sE=new fe,yYe=new h;Br.prototype.getLatitude=function(e){u(e)||(e=ie.WGS84),sE.latitude=this.conformalLatitude,sE.longitude=this.longitude,sE.height=0;let t=this.ellipsoid.cartographicToCartesian(sE,yYe);return e.cartesianToCartographic(t,sE),sE.latitude};var xYe=new Tn,bYe=new h,TYe=new h;Br.fromCartesian=function(e,t){let n=P.signNotZero(e.z),i=Br.NORTH_POLE_TANGENT_PLANE,o=Br.SOUTH_POLE;n<0&&(i=Br.SOUTH_POLE_TANGENT_PLANE,o=Br.NORTH_POLE);let r=xYe;r.origin=i.ellipsoid.scaleToGeocentricSurface(e,r.origin),r.direction=h.subtract(r.origin,o,bYe),h.normalize(r.direction,r.direction);let s=xi.rayPlane(r,i.plane,TYe),a=h.subtract(s,o,s),c=h.dot(i.xAxis,a),l=n*h.dot(i.yAxis,a);return u(t)?(t.position=new z(c,l),t.tangentPlane=i,t):new Br(new z(c,l),i)};Br.fromCartesianArray=function(e,t){let n=e.length;u(t)?t.length=n:t=new Array(n);for(let i=0;i<n;i++)t[i]=Br.fromCartesian(e[i],t[i]);return t};Br.clone=function(e,t){if(u(e))return u(t)?(t.position=e.position,t.tangentPlane=e.tangentPlane,t):new Br(e.position,e.tangentPlane)};Br.HALF_UNIT_SPHERE=Object.freeze(new ie(.5,.5,.5));Br.NORTH_POLE=Object.freeze(new h(0,0,.5));Br.SOUTH_POLE=Object.freeze(new h(0,0,-.5));Br.NORTH_POLE_TANGENT_PLANE=Object.freeze(new Sr(Br.NORTH_POLE,Br.HALF_UNIT_SPHERE));Br.SOUTH_POLE_TANGENT_PLANE=Object.freeze(new Sr(Br.SOUTH_POLE,Br.HALF_UNIT_SPHERE));var ac=Br;var AYe=new fe,Cue=new fe;function CYe(e,t,n,i){let r=i.cartesianToCartographic(e,AYe).height,s=i.cartesianToCartographic(t,Cue);s.height=r,i.cartographicToCartesian(s,t);let a=i.cartesianToCartographic(n,Cue);a.height=r-100,i.cartographicToCartesian(a,n)}var Eue=new We,EYe=new h,SYe=new h,wYe=new h,vYe=new h,DYe=new h,IYe=new h,TV=new h,dm=new h,aE=new h,PYe=new z,OYe=new z,RYe=new h,Sue=new Le,MYe=new Q,LYe=new Q;function GW(e){let t=e.vertexFormat,n=e.geometry,i=e.shadowVolume,o=n.attributes.position.values,r=u(n.attributes.st)?n.attributes.st.values:void 0,s=o.length,a=e.wall,c=e.top||a,l=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=PYe;b.x=f.x,b.y=f.y;let T=t.st?new Float32Array(2*(s/3)):void 0,A;t.normal&&(x&&c&&!a?A=n.attributes.normal.values:A=new Float32Array(s));let C=t.tangent?new Float32Array(s):void 0,S=t.bitangent?new Float32Array(s):void 0,w=i?new Float32Array(s):void 0,D=0,O=0,R=SYe,L=wYe,N=vYe,_=!0,E=MYe,v=LYe;if(m!==0){let B=Le.fromAxisAngle(d,m,Sue);E=Q.fromQuaternion(B,E),B=Le.fromAxisAngle(d,-m,Sue),v=Q.fromQuaternion(B,v)}else E=Q.clone(Q.IDENTITY,E),v=Q.clone(Q.IDENTITY,v);let I=0,M=0;c&&l&&(I=s/2,M=s/3,s/=2);for(let B=0;B<s;B+=3){let V=h.fromArray(o,B,RYe);if(t.st&&!u(r)){let U=Q.multiplyByVector(E,V,EYe);U=g.scaleToGeodeticSurface(U,U);let G=p(U,OYe);z.subtract(G,b,G);let k=P.clamp(G.x/f.width,0,1),Y=P.clamp(G.y/f.height,0,1);l&&(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 U=O+1,G=O+2;if(a){if(B+3<s){let k=h.fromArray(o,B+3,DYe);if(_){let Y=h.fromArray(o,B+s,IYe);x&&CYe(V,k,Y,g),h.subtract(k,V,k),h.subtract(Y,V,Y),R=h.normalize(h.cross(Y,k,R),R),_=!1}h.equalsEpsilon(k,V,P.EPSILON10)&&(_=!0)}(t.tangent||t.bitangent)&&(N=g.geodeticSurfaceNormal(V,N),t.tangent&&(L=h.normalize(h.cross(N,R,L),L)))}else R=g.geodeticSurfaceNormal(V,R),(t.tangent||t.bitangent)&&(x&&(TV=h.fromArray(A,O,TV),dm=h.cross(h.UNIT_Z,TV,dm),dm=h.normalize(Q.multiplyByVector(v,dm,dm),dm),t.bitangent&&(aE=h.normalize(h.cross(TV,dm,aE),aE))),L=h.cross(h.UNIT_Z,R,L),L=h.normalize(Q.multiplyByVector(v,L,L),L),t.bitangent&&(N=h.normalize(h.cross(R,L,N),N)));t.normal&&(e.wall?(A[O+I]=R.x,A[U+I]=R.y,A[G+I]=R.z):l&&(A[O+I]=-R.x,A[U+I]=-R.y,A[G+I]=-R.z),(c&&!x||a)&&(A[O]=R.x,A[U]=R.y,A[G]=R.z)),i&&(a&&(R=g.geodeticSurfaceNormal(V,R)),w[O+I]=-R.x,w[U+I]=-R.y,w[G+I]=-R.z),t.tangent&&(e.wall?(C[O+I]=L.x,C[U+I]=L.y,C[G+I]=L.z):l&&(C[O+I]=-L.x,C[U+I]=-L.y,C[G+I]=-L.z),c&&(x?(C[O]=dm.x,C[U]=dm.y,C[G]=dm.z):(C[O]=L.x,C[U]=L.y,C[G]=L.z))),t.bitangent&&(l&&(S[O+I]=N.x,S[U+I]=N.y,S[G+I]=N.z),c&&(x?(S[O]=aE.x,S[U]=aE.y,S[G]=aE.z):(S[O]=N.x,S[U]=N.y,S[G]=N.z))),O+=3}}t.st&&!u(r)&&(n.attributes.st=new we({componentDatatype:X.FLOAT,componentsPerAttribute:2,values:T})),t.normal&&(n.attributes.normal=new we({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:A})),t.tangent&&(n.attributes.tangent=new we({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:C})),t.bitangent&&(n.attributes.bitangent=new we({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:S})),i&&(n.attributes.extrudeDirection=new we({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:w}))}if(e.extrude&&u(e.offsetAttribute)){let f=o.length/3,d=new Uint8Array(f);if(e.offsetAttribute===tn.TOP)c&&l||a?d=d.fill(1,0,f/2):c&&(d=d.fill(1));else{let p=e.offsetAttribute===tn.NONE?0:1;d=d.fill(p)}n.attributes.applyOffset=new we({componentDatatype:X.UNSIGNED_BYTE,componentsPerAttribute:1,values:d})}return n}var NYe=new fe,FYe=new fe,Ay={westOverIDL:0,eastOverIDL:0},cE=new nf;function BYe(e,t,n,i,o){if(o=y(o,new ce),!u(e)||e.length<3)return o.west=0,o.north=0,o.south=0,o.east=0,o;if(n===qt.RHUMB)return ce.fromCartesianArray(e,t,o);cE.ellipsoid.equals(t)||(cE=new nf(void 0,void 0,t)),o.west=Number.POSITIVE_INFINITY,o.east=Number.NEGATIVE_INFINITY,o.south=Number.POSITIVE_INFINITY,o.north=Number.NEGATIVE_INFINITY,Ay.westOverIDL=Number.POSITIVE_INFINITY,Ay.eastOverIDL=Number.NEGATIVE_INFINITY;let r=1/P.chordLength(i,t.maximumRadius),s=e.length,a=t.cartesianToCartographic(e[0],FYe),c=NYe,l;for(let f=1;f<s;f++)l=c,c=a,a=t.cartesianToCartographic(e[f],l),cE.setEndPoints(c,a),wue(cE,r,o,Ay);return l=c,c=a,a=t.cartesianToCartographic(e[0],l),cE.setEndPoints(c,a),wue(cE,r,o,Ay),o.east-o.west>Ay.eastOverIDL-Ay.westOverIDL&&(o.west=Ay.westOverIDL,o.east=Ay.eastOverIDL,o.east>P.PI&&(o.east=o.east-P.TWO_PI),o.west>P.PI&&(o.west=o.west-P.TWO_PI)),o}var kYe=new fe;function wue(e,t,n,i){let o=e.surfaceDistance,r=Math.ceil(o*t),s=r>0?o/(r-1):Number.POSITIVE_INFINITY,a=0;for(let c=0;c<r;c++){let l=e.interpolateUsingSurfaceDistance(a,kYe);a+=s;let f=l.longitude,d=l.latitude;n.west=Math.min(n.west,f),n.east=Math.max(n.east,f),n.south=Math.min(n.south,d),n.north=Math.max(n.north,d);let p=f>=0?f:f+P.TWO_PI;i.westOverIDL=Math.min(i.westOverIDL,p),i.eastOverIDL=Math.max(i.eastOverIDL,p)}}var vue=[];function UYe(e,t,n,i,o,r,s,a,c,l){let f={walls:[]},d;if(s||a){let A=Hn.createGeometryFromPositions(e,t,n,i,r,c,l),C=A.attributes.position.values,S=A.indices,w,D;if(s&&a){let O=C.concat(C);w=O.length/3,D=Fe.createTypedArray(w,S.length*2),D.set(S);let R=S.length,L=w/2;for(d=0;d<R;d+=3){let N=D[d]+L,_=D[d+1]+L,E=D[d+2]+L;D[d+R]=E,D[d+1+R]=_,D[d+2+R]=N}if(A.attributes.position.values=O,r&&c.normal){let N=A.attributes.normal.values;A.attributes.normal.values=new Float32Array(O.length),A.attributes.normal.values.set(N)}if(c.st&&u(n)){let N=A.attributes.st.values;A.attributes.st.values=new Float32Array(w*2),A.attributes.st.values=N.concat(N)}A.indices=D}else if(a){for(w=C.length/3,D=Fe.createTypedArray(w,S.length),d=0;d<S.length;d+=3)D[d]=S[d+2],D[d+1]=S[d+1],D[d+2]=S[d];A.indices=D}f.topAndBottom=new yt({geometry:A})}let p=o.outerRing,g=Sr.fromPoints(p,e),m=g.projectPointsOntoPlane(p,vue),x=ai.computeWindingOrder2D(m);x===$r.CLOCKWISE&&(p=p.slice().reverse());let b=Hn.computeWallGeometry(p,n,e,i,r,l);f.walls.push(new yt({geometry:b}));let T=o.holes;for(d=0;d<T.length;d++){let A=T[d];g=Sr.fromPoints(A,e),m=g.projectPointsOntoPlane(A,vue),x=ai.computeWindingOrder2D(m),x===$r.COUNTER_CLOCKWISE&&(A=A.slice().reverse()),b=Hn.computeWallGeometry(A,n,e,i,r,l),f.walls.push(new yt({geometry:b}))}return f}function Tu(e){let t=e.polygonHierarchy,n=y(e.vertexFormat,Pe.DEFAULT),i=y(e.ellipsoid,ie.WGS84),o=y(e.granularity,P.RADIANS_PER_DEGREE),r=y(e.stRotation,0),s=e.textureCoordinates,a=y(e.perPositionHeight,!1),c=a&&u(e.extrudedHeight),l=y(e.height,0),f=y(e.extrudedHeight,l);if(!c){let d=Math.max(l,f);f=Math.min(l,f),l=d}this._vertexFormat=Pe.clone(n),this._ellipsoid=ie.clone(i),this._granularity=o,this._stRotation=r,this._height=l,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=Hn.computeHierarchyPackedLength(t,h)+ie.packedLength+Pe.packedLength+(s?Hn.computeHierarchyPackedLength(s,z):1)+12}Tu.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 Tu(t)};Tu.pack=function(e,t,n){return n=y(n,0),n=Hn.packPolygonHierarchy(e._polygonHierarchy,t,n,h),ie.pack(e._ellipsoid,t,n),n+=ie.packedLength,Pe.pack(e._vertexFormat,t,n),n+=Pe.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,u(e._textureCoordinates)?n=Hn.packPolygonHierarchy(e._textureCoordinates,t,n,z):t[n++]=-1,t[n++]=e.packedLength,t};var VYe=ie.clone(ie.UNIT_SPHERE),zYe=new Pe,HYe={polygonHierarchy:{}};Tu.unpack=function(e,t,n){t=y(t,0);let i=Hn.unpackPolygonHierarchy(e,t,h);t=i.startingIndex,delete i.startingIndex;let o=ie.unpack(e,t,VYe);t+=ie.packedLength;let r=Pe.unpack(e,t,zYe);t+=Pe.packedLength;let s=e[t++],a=e[t++],c=e[t++],l=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:Hn.unpackPolygonHierarchy(e,t,z);u(T)?(t=T.startingIndex,delete T.startingIndex):t++;let A=e[t++];return u(n)||(n=new Tu(HYe)),n._polygonHierarchy=i,n._ellipsoid=ie.clone(o,n._ellipsoid),n._vertexFormat=Pe.clone(r,n._vertexFormat),n._height=s,n._extrudedHeight=a,n._granularity=c,n._stRotation=l,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=A,n};var GYe=new z,WYe=new z,jYe=new ac;function Due(e,t,n,i,o,r){let s=e.longitude,a=s>=0?s:s+P.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),l=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,GYe),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),WYe),x=ac.clone(t,jYe);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)&&(l=b)}}let f=t.x*e.y-e.x*t.y,d=Math.sign(f);d!==0&&(d*=z.angleBetween(t.position,e.position)),l>=0&&(o.northAngle+=d),l<=0&&(o.southAngle+=d)}var Iue=new ac,qYe=new ac,Of={northAngle:0,southAngle:0,westOverIdl:0,eastOverIdl:0};Tu.computeRectangleFromPositions=function(e,t,n,i){if(u(i)||(i=new ce),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,Of.northAngle=0,Of.southAngle=0,Of.westOverIdl=Number.POSITIVE_INFINITY,Of.eastOverIdl=Number.NEGATIVE_INFINITY;let o=e.length,r=ac.fromCartesian(e[0],qYe);for(let s=1;s<o;s++){let a=ac.fromCartesian(e[s],Iue);Due(a,r,t,n,Of,i),r=ac.clone(a,r)}return Due(ac.fromCartesian(e[0],Iue),r,t,n,Of,i),i.east-i.west>Of.eastOverIdl-Of.westOverIdl&&(i.west=Of.westOverIdl,i.east=Of.eastOverIdl,i.east>P.PI&&(i.east=i.east-P.TWO_PI),i.west>P.PI&&(i.west=i.west-P.TWO_PI)),P.equalsEpsilon(Math.abs(Of.northAngle),P.TWO_PI,P.EPSILON10)&&(i.north=P.PI_OVER_TWO,i.east=P.PI,i.west=-P.PI),P.equalsEpsilon(Math.abs(Of.southAngle),P.TWO_PI,P.EPSILON10)&&(i.south=-P.PI_OVER_TWO,i.east=P.PI,i.west=-P.PI),i};Tu.computeRectangle=function(e,t){Qr("PolygonGeometry.computeRectangle","PolygonGeometry.computeRectangle was deprecated in CesiumJS 1.110. It will be removed in CesiumJS 1.112. Use PolygonGeometry.computeRectangleFromPositions instead.");let n=y(e.granularity,P.RADIANS_PER_DEGREE),i=y(e.arcType,qt.GEODESIC),o=e.polygonHierarchy,r=y(e.ellipsoid,ie.WGS84);return BYe(o.positions,r,i,n,t)};var YYe=new ac;function XYe(e,t,n){return e.height>=P.PI||e.width>=P.PI?ac.fromCartesian(t[0],YYe).tangentPlane:Sr.fromPoints(t,n)}var Pue=new fe;function KYe(e,t){return(n,i)=>{if(e.height>=P.PI||e.width>=P.PI){if(e.south<0&&e.north>0){u(i)||(i=[]);for(let r=0;r<n.length;++r){let s=t.cartesianToCartographic(n[r],Pue);i[r]=new z(s.longitude/P.PI,s.latitude/P.PI_OVER_TWO)}return i.length=n.length,i}return ac.fromCartesianArray(n,i)}return Sr.fromPoints(n,t).projectPointsOntoPlane(n,i)}}function ZYe(e,t,n){if(e.height>=P.PI||e.width>=P.PI)return(o,r)=>{if(e.south<0&&e.north>0){let s=n.cartesianToCartographic(o,Pue);return u(r)||(r=new z),r.x=s.longitude/P.PI,r.y=s.latitude/P.PI_OVER_TWO,r}return ac.fromCartesian(o,r)};let i=Sr.fromPoints(t,n);return(o,r)=>i.projectPointsOntoPlane(o,r)}function $Ye(e,t,n,i){return(o,r)=>!i&&(e.height>=P.PI_OVER_TWO||e.width>=2*P.PI_OVER_THREE)?Hn.splitPolygonsOnEquator(o,t,n,r):o}function QYe(e,t,n,i){if(t.height>=P.PI||t.width>=P.PI)return We.fromRectangle(t,void 0,Eue);let o=e,r=Sr.fromPoints(o,n);return Hn.computeBoundingRectangle(r.plane.normal,r.projectPointOntoPlane.bind(r),o,i,Eue)}Tu.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,l=e._arcType,f=e._textureCoordinates,d=u(f);if(r.positions.length<3)return;let g=e.rectangle,m=Hn.polygonsFromHierarchy(r,d,KYe(g,n),!s,n,$Ye(g,n,l,s)),x=m.hierarchy,b=m.polygons,T=function(I){return I},A=d?Hn.polygonsFromHierarchy(f,!0,T,!1,n).polygons:void 0;if(x.length===0)return;let C=x[0].outerRing,S=QYe(C,g,n,o),w=[],D=e._height,O=e._extrudedHeight,R=e._perPositionHeightExtrude||!P.equalsEpsilon(D,O,0,P.EPSILON2),L={perPositionHeight:s,vertexFormat:t,geometry:void 0,rotationAxis:XYe(g,C,n).plane.normal,projectTo2d:ZYe(g,C,n),boundingRectangle:S,ellipsoid:n,stRotation:o,textureCoordinates:void 0,bottom:!1,top:!0,wall:!1,extrude:!1,arcType:l},N;if(R)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 I=UYe(n,b[N],d?A[N]:void 0,i,x[N],s,a,c,t,l),M;a&&c?(M=I.topAndBottom,L.geometry=Hn.scaleToGeodeticHeightExtruded(M.geometry,D,O,n,s)):a?(M=I.topAndBottom,M.geometry.attributes.position.values=ai.scaleToGeodeticHeight(M.geometry.attributes.position.values,D,n,!s),L.geometry=M.geometry):c&&(M=I.topAndBottom,M.geometry.attributes.position.values=ai.scaleToGeodeticHeight(M.geometry.attributes.position.values,O,n,!0),L.geometry=M.geometry),(a||c)&&(L.wall=!1,M.geometry=GW(L),w.push(M));let B=I.walls;L.wall=!0;for(let V=0;V<B.length;V++){let U=B[V];L.geometry=Hn.scaleToGeodeticHeightExtruded(U.geometry,D,O,n,s),U.geometry=GW(L),w.push(U)}}else for(N=0;N<b.length;N++){let I=new yt({geometry:Hn.createGeometryFromPositions(n,b[N],d?A[N]:void 0,i,s,t,l)});if(I.geometry.attributes.position.values=ai.scaleToGeodeticHeight(I.geometry.attributes.position.values,D,n,!s),L.geometry=I.geometry,I.geometry=GW(L),u(e._offsetAttribute)){let M=I.geometry.attributes.position.values.length,B=e._offsetAttribute===tn.NONE?0:1,V=new Uint8Array(M/3).fill(B);I.geometry.attributes.applyOffset=new we({componentDatatype:X.UNSIGNED_BYTE,componentsPerAttribute:1,values:V})}w.push(I)}let _=Nn.combineInstances(w)[0];_.attributes.position.values=new Float64Array(_.attributes.position.values),_.indices=Fe.createTypedArray(_.attributes.position.values.length/3,_.indices);let E=_.attributes,v=se.fromVertices(E.position.values);return t.position||delete E.position,new st({attributes:E,indices:_.indices,primitiveType:_.primitiveType,boundingSphere:v,offsetAttribute:e._offsetAttribute})};Tu.createShadowVolume=function(e,t,n){let i=e._granularity,o=e._ellipsoid,r=t(i,o),s=n(i,o);return new Tu({polygonHierarchy:e._polygonHierarchy,ellipsoid:o,stRotation:e._stRotation,granularity:i,perPositionHeight:!1,extrudedHeight:r,height:s,vertexFormat:Pe.POSITION_ONLY,shadowVolume:!0,arcType:e._arcType})};function JYe(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(Tu.prototype,{rectangle:{get:function(){if(!u(this._rectangle)){let e=this._polygonHierarchy.positions;this._rectangle=Tu.computeRectangleFromPositions(e,this._ellipsoid,this._arcType)}return this._rectangle}},textureCoordinateRotationPoints:{get:function(){return u(this._textureCoordinateRotationPoints)||(this._textureCoordinateRotationPoints=JYe(this)),this._textureCoordinateRotationPoints}}});var vb=Tu;var Oue=[],AV=[];function eXe(e,t,n,i,o){let s=Sr.fromPoints(t,e).projectPointsOntoPlane(t,Oue);ai.computeWindingOrder2D(s)===$r.CLOCKWISE&&(s.reverse(),t=t.slice().reverse());let c,l,f=t.length,d=0;if(i)for(c=new Float64Array(f*2*3),l=0;l<f;l++){let m=t[l],x=t[(l+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(l=0;l<f;l++)m+=Hn.subdivideLineCount(t[l],t[(l+1)%f],n);else if(o===qt.RHUMB)for(l=0;l<f;l++)m+=Hn.subdivideRhumbLineCount(e,t[l],t[(l+1)%f],n);for(c=new Float64Array(m*3),l=0;l<f;l++){let x;o===qt.GEODESIC?x=Hn.subdivideLine(t[l],t[(l+1)%f],n,AV):o===qt.RHUMB&&(x=Hn.subdivideRhumbLine(e,t[l],t[(l+1)%f],n,AV));let b=x.length;for(let T=0;T<b;++T)c[d++]=x[T]}}f=c.length/3;let p=f*2,g=Fe.createTypedArray(f,p);for(d=0,l=0;l<f-1;l++)g[d++]=l,g[d++]=l+1;return g[d++]=f-1,g[d++]=0,new yt({geometry:new st({attributes:new fn({position:new we({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:c})}),indices:g,primitiveType:Me.LINES})})}function tXe(e,t,n,i,o){let s=Sr.fromPoints(t,e).projectPointsOntoPlane(t,Oue);ai.computeWindingOrder2D(s)===$r.CLOCKWISE&&(s.reverse(),t=t.slice().reverse());let c,l,f=t.length,d=new Array(f),p=0;if(i)for(c=new Float64Array(f*2*3*2),l=0;l<f;++l){d[l]=p/3;let b=t[l],T=t[(l+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(l=0;l<f;l++)b+=Hn.subdivideLineCount(t[l],t[(l+1)%f],n);else if(o===qt.RHUMB)for(l=0;l<f;l++)b+=Hn.subdivideRhumbLineCount(e,t[l],t[(l+1)%f],n);for(c=new Float64Array(b*3*2),l=0;l<f;++l){d[l]=p/3;let T;o===qt.GEODESIC?T=Hn.subdivideLine(t[l],t[(l+1)%f],n,AV):o===qt.RHUMB&&(T=Hn.subdivideRhumbLine(e,t[l],t[(l+1)%f],n,AV));let A=T.length;for(let C=0;C<A;++C)c[p++]=T[C]}}f=c.length/(3*2);let g=d.length,m=(f*2+g)*2,x=Fe.createTypedArray(f+g,m);for(p=0,l=0;l<f;++l)x[p++]=l,x[p++]=(l+1)%f,x[p++]=l+f,x[p++]=(l+1)%f+f;for(l=0;l<g;l++){let b=d[l];x[p++]=b,x[p++]=b+f}return new yt({geometry:new st({attributes:new fn({position:new we({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:c})}),indices:x,primitiveType:Me.LINES})})}function Db(e){let t=e.polygonHierarchy,n=y(e.ellipsoid,ie.WGS84),i=y(e.granularity,P.RADIANS_PER_DEGREE),o=y(e.perPositionHeight,!1),r=o&&u(e.extrudedHeight),s=y(e.arcType,qt.GEODESIC),a=y(e.height,0),c=y(e.extrudedHeight,a);if(!r){let l=Math.max(a,c);c=Math.min(a,c),a=l}this._ellipsoid=ie.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=Hn.computeHierarchyPackedLength(t,h)+ie.packedLength+8}Db.pack=function(e,t,n){return n=y(n,0),n=Hn.packPolygonHierarchy(e._polygonHierarchy,t,n,h),ie.pack(e._ellipsoid,t,n),n+=ie.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 nXe=ie.clone(ie.UNIT_SPHERE),iXe={polygonHierarchy:{}};Db.unpack=function(e,t,n){t=y(t,0);let i=Hn.unpackPolygonHierarchy(e,t,h);t=i.startingIndex,delete i.startingIndex;let o=ie.unpack(e,t,nXe);t+=ie.packedLength;let r=e[t++],s=e[t++],a=e[t++],c=e[t++]===1,l=e[t++]===1,f=e[t++],d=e[t++],p=e[t];return u(n)||(n=new Db(iXe)),n._polygonHierarchy=i,n._ellipsoid=ie.clone(o,n._ellipsoid),n._height=r,n._extrudedHeight=s,n._granularity=a,n._perPositionHeight=l,n._perPositionHeightExtrude=c,n._arcType=f,n._offsetAttribute=d===-1?void 0:d,n.packedLength=p,n};Db.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 Db(t)};Db.createGeometry=function(e){let t=e._ellipsoid,n=e._granularity,i=e._polygonHierarchy,o=e._perPositionHeight,r=e._arcType,s=Hn.polygonOutlinesFromHierarchy(i,!o,t);if(s.length===0)return;let a,c=[],l=P.chordLength(n,t.maximumRadius),f=e._height,d=e._extrudedHeight,p=e._perPositionHeightExtrude||!P.equalsEpsilon(f,d,0,P.EPSILON2),g,m;if(p)for(m=0;m<s.length;m++){if(a=tXe(t,s[m],l,o,r),a.geometry=Hn.scaleToGeodeticHeightExtruded(a.geometry,f,d,t,o),u(e._offsetAttribute)){let T=a.geometry.attributes.position.values.length/3,A=new Uint8Array(T);e._offsetAttribute===tn.TOP?A=A.fill(1,0,T/2):(g=e._offsetAttribute===tn.NONE?0:1,A=A.fill(g)),a.geometry.attributes.applyOffset=new we({componentDatatype:X.UNSIGNED_BYTE,componentsPerAttribute:1,values:A})}c.push(a)}else for(m=0;m<s.length;m++){if(a=eXe(t,s[m],l,o,r),a.geometry.attributes.position.values=ai.scaleToGeodeticHeight(a.geometry.attributes.position.values,f,t,!o),u(e._offsetAttribute)){let T=a.geometry.attributes.position.values.length;g=e._offsetAttribute===tn.NONE?0:1;let A=new Uint8Array(T/3).fill(g);a.geometry.attributes.applyOffset=new we({componentDatatype:X.UNSIGNED_BYTE,componentsPerAttribute:1,values:A})}c.push(a)}let x=Nn.combineInstances(c)[0],b=se.fromVertices(x.attributes.position.values);return new st({attributes:x.attributes,indices:x.indices,primitiveType:x.primitiveType,boundingSphere:b,offsetAttribute:e._offsetAttribute})};var WM=Db;var Rue="Entity polygons cannot have both height and perPositionHeight. height will be ignored",Mue="heightReference is not supported for entity polygons with perPositionHeight. heightReference will be ignored",Lue=new H,Nue=h.ZERO,Fue=new h,Bue=new ce,oXe=[],rXe=new z;function sXe(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 Au(e,t){Yn.call(this,{entity:e,scene:t,geometryOptions:new sXe(e),geometryPropertyName:"polygon",observedPropertyNames:["availability","polygon"]}),this._onEntityPropertyChanged(e,"polygon",e.polygon,void 0)}u(Object.create)&&(Au.prototype=Object.create(Yn.prototype),Au.prototype.constructor=Au);Au.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:Un.fromDistanceDisplayCondition(this._distanceDisplayConditionProperty.getValue(e)),offset:void 0,color:void 0};if(this._materialProperty instanceof Nt){let s;u(this._materialProperty.color)&&(this._materialProperty.color.isConstant||n)&&(s=this._materialProperty.color.getValue(e,Lue)),u(s)||(s=H.WHITE),o.color=kt.fromColor(s)}u(i.offsetAttribute)&&(o.offset=Yi.fromCartesian3(q.getValueOrDefault(this._terrainOffsetProperty,e,Nue,Fue)));let r;return i.perPositionHeight&&!u(i.extrudedHeight)?r=new GM(i):r=new vb(i),new yt({id:t,geometry:r,attributes:o})};Au.prototype.createOutlineGeometryInstance=function(e){let t=this._entity,n=t.isAvailable(e),i=this._options,o=q.getValueOrDefault(this._outlineColorProperty,e,H.BLACK,Lue),r=this._distanceDisplayConditionProperty.getValue(e),s={show:new gn(n&&t.isShowing&&this._showProperty.getValue(e)&&this._showOutlineProperty.getValue(e)),color:kt.fromColor(o),distanceDisplayCondition:Un.fromDistanceDisplayCondition(r),offset:void 0};u(i.offsetAttribute)&&(s.offset=Yi.fromCartesian3(q.getValueOrDefault(this._terrainOffsetProperty,e,Nue,Fue)));let a;return i.perPositionHeight&&!u(i.extrudedHeight)?a=new Tf(i):a=new WM(i),new yt({id:t,geometry:a,attributes:s})};Au.prototype._computeCenter=function(e,t){let n=q.getValueOrUndefined(this._entity.polygon.hierarchy,e);if(!u(n))return;let i=n.positions;if(i.length===0)return;let o=this._scene.mapProjection.ellipsoid,r=Sr.fromPoints(i,o),s=r.projectPointsOntoPlane(i,oXe),a=s.length,c=0,l=a-1,f=new z;for(let p=0;p<a;l=p++){let g=s[p],m=s[l],x=g.x*m.y-m.x*g.y,b=z.add(g,m,rXe);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)};Au.prototype._isHidden=function(e,t){return!u(t.hierarchy)||oi.prototype._isHidden.call(this,e,t)};Au.prototype._isOnTerrain=function(e,t){let n=Yn.prototype._isOnTerrain.call(this,e,t),i=t.perPositionHeight,o=u(i)&&(i.isConstant?i.getValue(Ve.MINIMUM_VALUE):!0);return n&&!o};Au.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 Nt)};Au.prototype._setStaticOptions=function(e,t){let n=this._materialProperty instanceof Nt,i=this._options;i.vertexFormat=n?nn.VERTEX_FORMAT:so.MaterialSupport.TEXTURED.vertexFormat;let o=t.hierarchy.getValue(Ve.MINIMUM_VALUE),r=q.getValueOrUndefined(t.height,Ve.MINIMUM_VALUE),s=q.getValueOrDefault(t.heightReference,Ve.MINIMUM_VALUE,Ge.NONE),a=q.getValueOrUndefined(t.extrudedHeight,Ve.MINIMUM_VALUE),c=q.getValueOrDefault(t.extrudedHeightReference,Ve.MINIMUM_VALUE,Ge.NONE),l=q.getValueOrDefault(t.perPositionHeight,Ve.MINIMUM_VALUE,!1);r=Yn.getGeometryHeight(r,s);let f;l?(u(r)&&(r=void 0,Dt(Rue)),s!==Ge.NONE&&l&&(r=void 0,Dt(Mue))):(u(a)&&!u(r)&&(r=0),f=Yn.computeGeometryOffsetAttribute(r,s,a,c)),i.polygonHierarchy=o,i.granularity=q.getValueOrUndefined(t.granularity,Ve.MINIMUM_VALUE),i.stRotation=q.getValueOrUndefined(t.stRotation,Ve.MINIMUM_VALUE),i.perPositionHeight=l,i.closeTop=q.getValueOrDefault(t.closeTop,Ve.MINIMUM_VALUE,!0),i.closeBottom=q.getValueOrDefault(t.closeBottom,Ve.MINIMUM_VALUE,!0),i.offsetAttribute=f,i.height=r,i.arcType=q.getValueOrDefault(t.arcType,Ve.MINIMUM_VALUE,qt.GEODESIC),i.textureCoordinates=q.getValueOrUndefined(t.textureCoordinates,Ve.MINIMUM_VALUE),a=Yn.getGeometryExtrudedHeight(a,c),a===Yn.CLAMP_TO_GROUND&&(a=li.getMinimumMaximumHeights(vb.computeRectangle(i,Bue)).minimumTerrainHeight),i.extrudedHeight=a};Au.prototype._getIsClosed=function(e){let t=e.height,n=e.extrudedHeight,i=u(n)&&n!==t;return!e.perPositionHeight&&(!i&&t===0||i&&e.closeTop&&e.closeBottom)};Au.DynamicGeometryUpdater=lE;function lE(e,t,n){ii.call(this,e,t,n)}u(Object.create)&&(lE.prototype=Object.create(ii.prototype),lE.prototype.constructor=lE);lE.prototype._isHidden=function(e,t,n){return!u(this._options.polygonHierarchy)||ii.prototype._isHidden.call(this,e,t,n)};lE.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,Ge.NONE),s=q.getValueOrDefault(t.extrudedHeightReference,n,Ge.NONE),a=q.getValueOrUndefined(t.extrudedHeight,n),c=q.getValueOrUndefined(t.perPositionHeight,n);o=Yn.getGeometryHeight(o,s);let l;c?(u(o)&&(o=void 0,Dt(Rue)),r!==Ge.NONE&&c&&(o=void 0,Dt(Mue))):(u(a)&&!u(o)&&(o=0),l=Yn.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=l,i.height=o,i.arcType=q.getValueOrDefault(t.arcType,n,qt.GEODESIC),a=Yn.getGeometryExtrudedHeight(a,s),a===Yn.CLAMP_TO_GROUND&&(a=li.getMinimumMaximumHeights(vb.computeRectangle(i,Bue)).minimumTerrainHeight),i.extrudedHeight=a};var jM=Au;function aXe(e,t,n,i){let o=new fn;i.position&&(o.position=new we({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:e}));let r=t.length,s=e.length/3,a=(s-r*2)/(r*2),c=ai.triangulate(t),l=(a-1)*r*6+c.length*2,f=Fe.createTypedArray(s,l),d,p,g,m,x,b,T=r*2,A=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[A++]=m,f[A++]=g,f[A++]=x,f[A++]=x,f[A++]=g,f[A++]=b;g=r*2-2+d*r*2,m=g+1,x=m+T,b=g+T,f[A++]=m,f[A++]=g,f[A++]=x,f[A++]=x,f[A++]=g,f[A++]=b}if(i.st||i.tangent||i.bitangent){let w=new Float32Array(s*2),D=1/(a-1),O=1/n.height,R=n.height/2,L,N,_=0;for(d=0;d<a;d++){for(L=d*D,N=O*(t[0].y+R),w[_++]=L,w[_++]=N,p=1;p<r;p++)N=O*(t[p].y+R),w[_++]=L,w[_++]=N,w[_++]=L,w[_++]=N;N=O*(t[0].y+R),w[_++]=L,w[_++]=N}for(p=0;p<r;p++)L=0,N=O*(t[p].y+R),w[_++]=L,w[_++]=N;for(p=0;p<r;p++)L=(a-1)*D,N=O*(t[p].y+R),w[_++]=L,w[_++]=N;o.st=new we({componentDatatype:X.FLOAT,componentsPerAttribute:2,values:new Float32Array(w)})}let C=s-r*2;for(d=0;d<c.length;d+=3){let w=c[d]+C,D=c[d+1]+C,O=c[d+2]+C;f[A++]=w,f[A++]=D,f[A++]=O,f[A++]=O+r,f[A++]=D+r,f[A++]=w+r}let S=new st({attributes:o,indices:f,boundingSphere:se.fromVertices(e),primitiveType:Me.TRIANGLES});if(i.normal&&(S=Nn.computeNormal(S)),i.tangent||i.bitangent){try{S=Nn.computeTangentAndBitangent(S)}catch{Dt("polyline-volume-tangent-bitangent","Unable to compute tangents and bitangents for polyline volume geometry")}i.tangent||(S.attributes.tangent=void 0),i.bitangent||(S.attributes.bitangent=void 0),i.st||(S.attributes.st=void 0)}return S}function YM(e){e=y(e,y.EMPTY_OBJECT);let t=e.polylinePositions,n=e.shapePositions;this._positions=t,this._shape=n,this._ellipsoid=ie.clone(y(e.ellipsoid,ie.WGS84)),this._cornerType=y(e.cornerType,Pi.ROUNDED),this._vertexFormat=Pe.clone(y(e.vertexFormat,Pe.DEFAULT)),this._granularity=y(e.granularity,P.RADIANS_PER_DEGREE),this._workerName="createPolylineVolumeGeometry";let i=1+t.length*h.packedLength;i+=1+n.length*z.packedLength,this.packedLength=i+ie.packedLength+Pe.packedLength+2}YM.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 ie.pack(e._ellipsoid,t,n),n+=ie.packedLength,Pe.pack(e._vertexFormat,t,n),n+=Pe.packedLength,t[n++]=e._cornerType,t[n]=e._granularity,t};var kue=ie.clone(ie.UNIT_SPHERE),Uue=new Pe,qM={polylinePositions:void 0,shapePositions:void 0,ellipsoid:kue,vertexFormat:Uue,cornerType:void 0,granularity:void 0};YM.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=ie.unpack(e,t,kue);t+=ie.packedLength;let c=Pe.unpack(e,t,Uue);t+=Pe.packedLength;let l=e[t++],f=e[t];return u(n)?(n._positions=r,n._shape=s,n._ellipsoid=ie.clone(a,n._ellipsoid),n._vertexFormat=Pe.clone(c,n._vertexFormat),n._cornerType=l,n._granularity=f,n):(qM.polylinePositions=r,qM.shapePositions=s,qM.cornerType=l,qM.granularity=f,new YM(qM))};var cXe=new We;YM.createGeometry=function(e){let t=e._positions,n=yo(t,h.equalsEpsilon),i=e._shape;if(i=Wd.removeDuplicatesFromShape(i),n.length<2||i.length<3)return;ai.computeWindingOrder2D(i)===$r.CLOCKWISE&&i.reverse();let o=We.fromPoints(i,cXe),r=Wd.computePositions(n,i,o,e,!0);return aXe(r,i,o,e._vertexFormat)};var XM=YM;function lXe(e,t){let n=new fn;n.position=new we({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:e});let i=t.length,o=n.position.values.length/3,s=e.length/3/i,a=Fe.createTypedArray(o,2*i*(s+1)),c,l,f=0;c=0;let d=c*i;for(l=0;l<i-1;l++)a[f++]=l+d,a[f++]=l+d+1;for(a[f++]=i-1+d,a[f++]=d,c=s-1,d=c*i,l=0;l<i-1;l++)a[f++]=l+d,a[f++]=l+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(l=0;l<i;l++)a[f++]=l+g,a[f++]=l+m}return new st({attributes:n,indices:Fe.createTypedArray(o,a),boundingSphere:se.fromVertices(e),primitiveType:Me.LINES})}function ZM(e){e=y(e,y.EMPTY_OBJECT);let t=e.polylinePositions,n=e.shapePositions;this._positions=t,this._shape=n,this._ellipsoid=ie.clone(y(e.ellipsoid,ie.WGS84)),this._cornerType=y(e.cornerType,Pi.ROUNDED),this._granularity=y(e.granularity,P.RADIANS_PER_DEGREE),this._workerName="createPolylineVolumeOutlineGeometry";let i=1+t.length*h.packedLength;i+=1+n.length*z.packedLength,this.packedLength=i+ie.packedLength+2}ZM.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 ie.pack(e._ellipsoid,t,n),n+=ie.packedLength,t[n++]=e._cornerType,t[n]=e._granularity,t};var Vue=ie.clone(ie.UNIT_SPHERE),KM={polylinePositions:void 0,shapePositions:void 0,ellipsoid:Vue,height:void 0,cornerType:void 0,granularity:void 0};ZM.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=ie.unpack(e,t,Vue);t+=ie.packedLength;let c=e[t++],l=e[t];return u(n)?(n._positions=r,n._shape=s,n._ellipsoid=ie.clone(a,n._ellipsoid),n._cornerType=c,n._granularity=l,n):(KM.polylinePositions=r,KM.shapePositions=s,KM.cornerType=c,KM.granularity=l,new ZM(KM))};var uXe=new We;ZM.createGeometry=function(e){let t=e._positions,n=yo(t,h.equalsEpsilon),i=e._shape;if(i=Wd.removeDuplicatesFromShape(i),n.length<2||i.length<3)return;ai.computeWindingOrder2D(i)===$r.CLOCKWISE&&i.reverse();let o=We.fromPoints(i,uXe),r=Wd.computePositions(n,i,o,e,!1);return lXe(r,i)};var $M=ZM;var zue=new H;function fXe(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 hm(e,t){oi.call(this,{entity:e,scene:t,geometryOptions:new fXe(e),geometryPropertyName:"polylineVolume",observedPropertyNames:["availability","polylineVolume"]}),this._onEntityPropertyChanged(e,"polylineVolume",e.polylineVolume,void 0)}u(Object.create)&&(hm.prototype=Object.create(oi.prototype),hm.prototype.constructor=hm);hm.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=Un.fromDistanceDisplayCondition(s);if(this._materialProperty instanceof Nt){let c;u(this._materialProperty.color)&&(this._materialProperty.color.isConstant||n)&&(c=this._materialProperty.color.getValue(e,zue)),u(c)||(c=H.WHITE),o=kt.fromColor(c),i={show:r,distanceDisplayCondition:a,color:o}}else i={show:r,distanceDisplayCondition:a};return new yt({id:t,geometry:new XM(this._options),attributes:i})};hm.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);return new yt({id:t,geometry:new $M(this._options),attributes:{show:new gn(n&&t.isShowing&&this._showProperty.getValue(e)&&this._showOutlineProperty.getValue(e)),color:kt.fromColor(i),distanceDisplayCondition:Un.fromDistanceDisplayCondition(o)}})};hm.prototype._isHidden=function(e,t){return!u(t.positions)||!u(t.shape)||oi.prototype._isHidden.call(this,e,t)};hm.prototype._isDynamic=function(e,t){return!t.positions.isConstant||!t.shape.isConstant||!q.isConstant(t.granularity)||!q.isConstant(t.outlineWidth)||!q.isConstant(t.cornerType)};hm.prototype._setStaticOptions=function(e,t){let n=t.granularity,i=t.cornerType,o=this._options,r=this._materialProperty instanceof Nt;o.vertexFormat=r?nn.VERTEX_FORMAT:so.MaterialSupport.TEXTURED.vertexFormat,o.polylinePositions=t.positions.getValue(Ve.MINIMUM_VALUE,o.polylinePositions),o.shapePositions=t.shape.getValue(Ve.MINIMUM_VALUE,o.shape),o.granularity=u(n)?n.getValue(Ve.MINIMUM_VALUE):void 0,o.cornerType=u(i)?i.getValue(Ve.MINIMUM_VALUE):void 0};hm.DynamicGeometryUpdater=uE;function uE(e,t,n){ii.call(this,e,t,n)}u(Object.create)&&(uE.prototype=Object.create(ii.prototype),uE.prototype.constructor=uE);uE.prototype._isHidden=function(e,t,n){let i=this._options;return!u(i.polylinePositions)||!u(i.shapePositions)||ii.prototype._isHidden.call(this,e,t,n)};uE.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 QM=hm;var WW=new h,Wue=new h,jue=new h,que=new h,Yue=new ce,dXe=new z,hXe=new se,mXe=new se;function Xue(e,t){let n=new st({attributes:new fn,primitiveType:Me.TRIANGLES});return n.attributes.position=new we({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:t.positions}),e.normal&&(n.attributes.normal=new we({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:t.normals})),e.tangent&&(n.attributes.tangent=new we({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:t.tangents})),e.bitangent&&(n.attributes.bitangent=new we({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:t.bitangents})),n}function pXe(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,l=que,f=jue,d=Wue;if(t.normal||t.tangent||t.bitangent)for(let p=0;p<o;p+=3){let g=h.fromArray(e,p,WW),m=c+1,x=c+2;d=n.geodeticSurfaceNormal(g,d),(t.tangent||t.bitangent)&&(h.cross(h.UNIT_Z,d,f),Q.multiplyByVector(i,f,f),h.normalize(f,f),t.bitangent&&h.normalize(h.cross(d,f,l),l)),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]=l.x,a[m]=l.y,a[x]=l.z),c+=3}return Xue(t,{positions:e,normals:r,tangents:s,bitangents:a})}var jW=new h,Kue=new h;function _Xe(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,l=0,f=!0,d=que,p=jue,g=Wue;if(t.normal||t.tangent||t.bitangent)for(let m=0;m<i;m+=6){let x=h.fromArray(e,m,WW),b=h.fromArray(e,(m+6)%i,jW);if(f){let T=h.fromArray(e,(m+3)%i,Kue);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,P.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[l++]=d.x,s[l++]=d.y,s[l++]=d.z,s[l++]=d.x,s[l++]=d.y,s[l++]=d.z)}return Xue(t,{positions:e,normals:o,tangents:r,bitangents:s})}function Zue(e,t){let n=e._vertexFormat,i=e._ellipsoid,o=t.height,r=t.width,s=t.northCap,a=t.southCap,c=0,l=o,f=o,d=0;s&&(c=1,f-=1,d+=1),a&&(l-=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=WW,T=dXe,A=Number.MAX_VALUE,C=Number.MAX_VALUE,S=-Number.MAX_VALUE,w=-Number.MAX_VALUE;for(let E=c;E<l;++E)for(let v=0;v<r;++v)fs.computePosition(t,i,n.st,E,v,b,T),p[m++]=b.x,p[m++]=b.y,p[m++]=b.z,n.st&&(g[x++]=T.x,g[x++]=T.y,A=Math.min(A,T.x),C=Math.min(C,T.y),S=Math.max(S,T.x),w=Math.max(w,T.y));if(s&&(fs.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,A=T.x,C=T.y,S=T.x,w=T.y)),a&&(fs.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,A=Math.min(A,T.x),C=Math.min(C,T.y),S=Math.max(S,T.x),w=Math.max(w,T.y))),n.st&&(A<0||C<0||S>1||w>1))for(let E=0;E<g.length;E+=2)g[E]=(g[E]-A)/(S-A),g[E+1]=(g[E+1]-C)/(w-C);let D=pXe(p,n,i,t.tangentRotationMatrix),O=6*(r-1)*(f-1);s&&(O+=3*(r-1)),a&&(O+=3*(r-1));let R=Fe.createTypedArray(d,O),L=0,N=0,_;for(_=0;_<f-1;++_){for(let E=0;E<r-1;++E){let v=L,I=v+r,M=I+1,B=v+1;R[N++]=v,R[N++]=I,R[N++]=B,R[N++]=B,R[N++]=I,R[N++]=M,++L}++L}if(s||a){let E=d-1,v=d-1;s&&a&&(E=d-2);let I,M;if(L=0,s)for(_=0;_<r-1;_++)I=L,M=I+1,R[N++]=E,R[N++]=I,R[N++]=M,++L;if(a)for(L=(f-1)*r,_=0;_<r-1;_++)I=L,M=I+1,R[N++]=I,R[N++]=v,R[N++]=M,++L}return D.indices=R,n.st&&(D.attributes.st=new we({componentDatatype:X.FLOAT,componentsPerAttribute:2,values:g})),D}function fE(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 dE(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 qW=new Pe;function gXe(e,t){let n=e._shadowVolume,i=e._offsetAttribute,o=e._vertexFormat,r=e._extrudedHeight,s=e._surfaceHeight,a=e._ellipsoid,c=t.height,l=t.width,f;if(n){let ft=Pe.clone(o,qW);ft.normal=!0,e._vertexFormat=ft}let d=Zue(e,t);n&&(e._vertexFormat=o);let p=ai.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=ai.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,A=o.tangent?new Float32Array(m):void 0,C=o.bitangent?new Float32Array(m):void 0,S=o.st?new Float32Array(m/3*2):void 0,w,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 ft=new Float32Array(m);for(f=0;f<g;f++)D[f]=-D[f];ft.set(D,g),d.attributes.extrudeDirection=new we({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:ft})}let O,R=u(i);if(R){let ft=g/3*2,_n=new Uint8Array(ft);i===tn.TOP?_n=_n.fill(1,0,ft/2):(O=i===tn.NONE?0:1,_n=_n.fill(O)),d.attributes.applyOffset=new we({componentDatatype:X.UNSIGNED_BYTE,componentsPerAttribute:1,values:_n})}if(o.tangent){let ft=d.attributes.tangent.values;for(A.set(ft),f=0;f<g;f++)ft[f]=-ft[f];A.set(ft,g),d.attributes.tangent.values=A}if(o.bitangent){let ft=d.attributes.bitangent.values;C.set(ft),C.set(ft,g),d.attributes.bitangent.values=C}o.st&&(w=d.attributes.st.values,S.set(w),S.set(w,g/3*2),d.attributes.st.values=S);let L=d.indices,N=L.length,_=g/3,E=Fe.createTypedArray(m/3,N*2);for(E.set(L),f=0;f<N;f+=3)E[f+N]=L[f+2]+_,E[f+1+N]=L[f+1]+_,E[f+2+N]=L[f]+_;d.indices=E;let v=t.northCap,I=t.southCap,M=c,B=2,V=0,U=4,G=4;v&&(B-=1,M-=1,V+=1,U-=2,G-=1),I&&(B-=1,M-=1,V+=1,U-=2,G-=1),V+=B*l+2*M-U;let k=(V+G)*2,Y=new Float64Array(k*3),j=n?new Float32Array(k*3):void 0,$=R?new Uint8Array(k):void 0,W=o.st?new Float32Array(k*2):void 0,K=i===tn.TOP;R&&!K&&(O=i===tn.ALL?1:0,$=$.fill(O));let Z=0,me=0,xe=0,re=0,ye=l*M,ge;for(f=0;f<ye;f+=l)ge=f*3,Y=fE(Y,Z,ge,p,b),Z+=6,o.st&&(W=dE(W,me,f*2,w),me+=4),n&&(xe+=3,j[xe++]=D[ge],j[xe++]=D[ge+1],j[xe++]=D[ge+2]),K&&($[re++]=1,re+=1);if(I){let ft=v?ye+1:ye;for(ge=ft*3,f=0;f<2;f++)Y=fE(Y,Z,ge,p,b),Z+=6,o.st&&(W=dE(W,me,ft*2,w),me+=4),n&&(xe+=3,j[xe++]=D[ge],j[xe++]=D[ge+1],j[xe++]=D[ge+2]),K&&($[re++]=1,re+=1)}else for(f=ye-l;f<ye;f++)ge=f*3,Y=fE(Y,Z,ge,p,b),Z+=6,o.st&&(W=dE(W,me,f*2,w),me+=4),n&&(xe+=3,j[xe++]=D[ge],j[xe++]=D[ge+1],j[xe++]=D[ge+2]),K&&($[re++]=1,re+=1);for(f=ye-1;f>0;f-=l)ge=f*3,Y=fE(Y,Z,ge,p,b),Z+=6,o.st&&(W=dE(W,me,f*2,w),me+=4),n&&(xe+=3,j[xe++]=D[ge],j[xe++]=D[ge+1],j[xe++]=D[ge+2]),K&&($[re++]=1,re+=1);if(v){let ft=ye;for(ge=ft*3,f=0;f<2;f++)Y=fE(Y,Z,ge,p,b),Z+=6,o.st&&(W=dE(W,me,ft*2,w),me+=4),n&&(xe+=3,j[xe++]=D[ge],j[xe++]=D[ge+1],j[xe++]=D[ge+2]),K&&($[re++]=1,re+=1)}else for(f=l-1;f>=0;f--)ge=f*3,Y=fE(Y,Z,ge,p,b),Z+=6,o.st&&(W=dE(W,me,f*2,w),me+=4),n&&(xe+=3,j[xe++]=D[ge],j[xe++]=D[ge+1],j[xe++]=D[ge+2]),K&&($[re++]=1,re+=1);let Ae=_Xe(Y,o,a);o.st&&(Ae.attributes.st=new we({componentDatatype:X.FLOAT,componentsPerAttribute:2,values:W})),n&&(Ae.attributes.extrudeDirection=new we({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:j})),R&&(Ae.attributes.applyOffset=new we({componentDatatype:X.UNSIGNED_BYTE,componentsPerAttribute:1,values:$}));let De=Fe.createTypedArray(k,V*6),Re,ze,ut,Vt;g=Y.length/3;let cn=0;for(f=0;f<g-1;f+=2){Re=f,Vt=(Re+2)%g;let ft=h.fromArray(Y,Re*3,jW),_n=h.fromArray(Y,Vt*3,Kue);h.equalsEpsilon(ft,_n,P.EPSILON10)||(ze=(Re+1)%g,ut=(ze+2)%g,De[cn++]=Re,De[cn++]=ze,De[cn++]=Vt,De[cn++]=Vt,De[cn++]=ze,De[cn++]=ut)}return Ae.indices=De,Ae=Nn.combineInstances([new yt({geometry:d}),new yt({geometry:Ae})]),Ae[0]}var yXe=[new h,new h,new h,new h],$ue=new fe,xXe=new fe;function YW(e,t,n,i,o){if(n===0)return ce.clone(e,o);let r=fs.computeOptions(e,t,n,0,Yue,$ue),s=r.height,a=r.width,c=yXe;return fs.computePosition(r,i,!1,0,0,c[0]),fs.computePosition(r,i,!1,0,a-1,c[1]),fs.computePosition(r,i,!1,s-1,0,c[2]),fs.computePosition(r,i,!1,s-1,a-1,c[3]),ce.fromCartesianArray(c,i,o)}function mm(e){e=y(e,y.EMPTY_OBJECT);let t=e.rectangle,n=y(e.height,0),i=y(e.extrudedHeight,n);this._rectangle=ce.clone(t),this._granularity=y(e.granularity,P.RADIANS_PER_DEGREE),this._ellipsoid=ie.clone(y(e.ellipsoid,ie.WGS84)),this._surfaceHeight=Math.max(n,i),this._rotation=y(e.rotation,0),this._stRotation=y(e.stRotation,0),this._vertexFormat=Pe.clone(y(e.vertexFormat,Pe.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}mm.packedLength=ce.packedLength+ie.packedLength+Pe.packedLength+7;mm.pack=function(e,t,n){return n=y(n,0),ce.pack(e._rectangle,t,n),n+=ce.packedLength,ie.pack(e._ellipsoid,t,n),n+=ie.packedLength,Pe.pack(e._vertexFormat,t,n),n+=Pe.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 Que=new ce,Jue=ie.clone(ie.UNIT_SPHERE),Cy={rectangle:Que,ellipsoid:Jue,vertexFormat:qW,granularity:void 0,height:void 0,rotation:void 0,stRotation:void 0,extrudedHeight:void 0,shadowVolume:void 0,offsetAttribute:void 0};mm.unpack=function(e,t,n){t=y(t,0);let i=ce.unpack(e,t,Que);t+=ce.packedLength;let o=ie.unpack(e,t,Jue);t+=ie.packedLength;let r=Pe.unpack(e,t,qW);t+=Pe.packedLength;let s=e[t++],a=e[t++],c=e[t++],l=e[t++],f=e[t++],d=e[t++]===1,p=e[t];return u(n)?(n._rectangle=ce.clone(i,n._rectangle),n._ellipsoid=ie.clone(o,n._ellipsoid),n._vertexFormat=Pe.clone(r,n._vertexFormat),n._granularity=s,n._surfaceHeight=a,n._rotation=c,n._stRotation=l,n._extrudedHeight=f,n._shadowVolume=d,n._offsetAttribute=p===-1?void 0:p,n):(Cy.granularity=s,Cy.height=a,Cy.rotation=c,Cy.stRotation=l,Cy.extrudedHeight=f,Cy.shadowVolume=d,Cy.offsetAttribute=p===-1?void 0:p,new mm(Cy))};mm.computeRectangle=function(e,t){e=y(e,y.EMPTY_OBJECT);let n=e.rectangle,i=y(e.granularity,P.RADIANS_PER_DEGREE),o=y(e.ellipsoid,ie.WGS84),r=y(e.rotation,0);return YW(n,i,r,o,t)};var bXe=new Q,Hue=new Le,TXe=new fe;mm.createGeometry=function(e){if(P.equalsEpsilon(e._rectangle.north,e._rectangle.south,P.EPSILON10)||P.equalsEpsilon(e._rectangle.east,e._rectangle.west,P.EPSILON10))return;let t=e._rectangle,n=e._ellipsoid,i=e._rotation,o=e._stRotation,r=e._vertexFormat,s=fs.computeOptions(t,e._granularity,i,o,Yue,$ue,xXe),a=bXe;if(o!==0||i!==0){let g=ce.center(t,TXe),m=n.geodeticSurfaceNormalCartographic(g,jW);Le.fromAxisAngle(m,-o,Hue),Q.fromQuaternion(Hue,a)}else Q.clone(Q.IDENTITY,a);let c=e._surfaceHeight,l=e._extrudedHeight,f=!P.equalsEpsilon(c,l,0,P.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=gXe(e,s);let g=se.fromRectangle3D(t,n,c,mXe),m=se.fromRectangle3D(t,n,l,hXe);p=se.union(g,m)}else{if(d=Zue(e,s),d.attributes.position.values=ai.scaleToGeodeticHeight(d.attributes.position.values,c,n,!1),u(e._offsetAttribute)){let g=d.attributes.position.values.length,m=e._offsetAttribute===tn.NONE?0:1,x=new Uint8Array(g/3).fill(m);d.attributes.applyOffset=new we({componentDatatype:X.UNSIGNED_BYTE,componentsPerAttribute:1,values:x})}p=se.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})};mm.createShadowVolume=function(e,t,n){let i=e._granularity,o=e._ellipsoid,r=t(i,o),s=n(i,o);return new mm({rectangle:e._rectangle,rotation:e._rotation,ellipsoid:o,stRotation:e._stRotation,granularity:i,extrudedHeight:s,height:r,vertexFormat:Pe.POSITION_ONLY,shadowVolume:!0})};var Gue=new ce,AXe=[new z,new z,new z],CXe=new Qi,EXe=new fe;function SXe(e){if(e._stRotation===0)return[0,0,0,1,1,0];let t=ce.clone(e._rectangle,Gue),n=e._granularity,i=e._ellipsoid,o=e._rotation-e._stRotation,r=YW(t,n,o,i,Gue),s=AXe;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,CXe),l=ce.center(a,EXe);for(let m=0;m<3;++m){let x=s[m];x.x-=l.longitude,x.y-=l.latitude,Qi.multiplyByVector(c,x,x),x.x+=l.longitude,x.y+=l.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(mm.prototype,{rectangle:{get:function(){return u(this._rotatedRectangle)||(this._rotatedRectangle=YW(this._rectangle,this._granularity,this._rotation,this._ellipsoid)),this._rotatedRectangle}},textureCoordinateRotationPoints:{get:function(){return u(this._textureCoordinateRotationPoints)||(this._textureCoordinateRotationPoints=SXe(this)),this._textureCoordinateRotationPoints}}});var Ib=mm;var efe=new H,tfe=h.ZERO,nfe=new h,ife=new ce,wXe=new ce,vXe=new fe;function DXe(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 Jd(e,t){Yn.call(this,{entity:e,scene:t,geometryOptions:new DXe(e),geometryPropertyName:"rectangle",observedPropertyNames:["availability","rectangle"]}),this._onEntityPropertyChanged(e,"rectangle",e.rectangle,void 0)}u(Object.create)&&(Jd.prototype=Object.create(Yn.prototype),Jd.prototype.constructor=Jd);Jd.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:Un.fromDistanceDisplayCondition(this._distanceDisplayConditionProperty.getValue(e)),offset:void 0,color:void 0};if(this._materialProperty instanceof Nt){let o;u(this._materialProperty.color)&&(this._materialProperty.color.isConstant||n)&&(o=this._materialProperty.color.getValue(e,efe)),u(o)||(o=H.WHITE),i.color=kt.fromColor(o)}return u(this._options.offsetAttribute)&&(i.offset=Yi.fromCartesian3(q.getValueOrDefault(this._terrainOffsetProperty,e,tfe,nfe))),new yt({id:t,geometry:new Ib(this._options),attributes:i})};Jd.prototype.createOutlineGeometryInstance=function(e){let t=this._entity,n=t.isAvailable(e),i=q.getValueOrDefault(this._outlineColorProperty,e,H.BLACK,efe),o=this._distanceDisplayConditionProperty.getValue(e),r={show:new gn(n&&t.isShowing&&this._showProperty.getValue(e)&&this._showOutlineProperty.getValue(e)),color:kt.fromColor(i),distanceDisplayCondition:Un.fromDistanceDisplayCondition(o),offset:void 0};return u(this._options.offsetAttribute)&&(r.offset=Yi.fromCartesian3(q.getValueOrDefault(this._terrainOffsetProperty,e,tfe,nfe))),new yt({id:t,geometry:new eb(this._options),attributes:r})};Jd.prototype._computeCenter=function(e,t){let n=q.getValueOrUndefined(this._entity.rectangle.coordinates,e,wXe);if(!u(n))return;let i=ce.center(n,vXe);return fe.toCartesian(i,ie.WGS84,t)};Jd.prototype._isHidden=function(e,t){return!u(t.coordinates)||oi.prototype._isHidden.call(this,e,t)};Jd.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 Nt)};Jd.prototype._setStaticOptions=function(e,t){let n=this._materialProperty instanceof Nt,i=q.getValueOrUndefined(t.height,Ve.MINIMUM_VALUE),o=q.getValueOrDefault(t.heightReference,Ve.MINIMUM_VALUE,Ge.NONE),r=q.getValueOrUndefined(t.extrudedHeight,Ve.MINIMUM_VALUE),s=q.getValueOrDefault(t.extrudedHeightReference,Ve.MINIMUM_VALUE,Ge.NONE);u(r)&&!u(i)&&(i=0);let a=this._options;a.vertexFormat=n?nn.VERTEX_FORMAT:so.MaterialSupport.TEXTURED.vertexFormat,a.rectangle=t.coordinates.getValue(Ve.MINIMUM_VALUE,a.rectangle),a.granularity=q.getValueOrUndefined(t.granularity,Ve.MINIMUM_VALUE),a.stRotation=q.getValueOrUndefined(t.stRotation,Ve.MINIMUM_VALUE),a.rotation=q.getValueOrUndefined(t.rotation,Ve.MINIMUM_VALUE),a.offsetAttribute=Yn.computeGeometryOffsetAttribute(i,o,r,s),a.height=Yn.getGeometryHeight(i,o),r=Yn.getGeometryExtrudedHeight(r,s),r===Yn.CLAMP_TO_GROUND&&(r=li.getMinimumMaximumHeights(Ib.computeRectangle(a,ife)).minimumTerrainHeight),a.extrudedHeight=r};Jd.DynamicGeometryUpdater=hE;function hE(e,t,n){ii.call(this,e,t,n)}u(Object.create)&&(hE.prototype=Object.create(ii.prototype),hE.prototype.constructor=hE);hE.prototype._isHidden=function(e,t,n){return!u(this._options.rectangle)||ii.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,Ge.NONE),s=q.getValueOrUndefined(t.extrudedHeight,n),a=q.getValueOrDefault(t.extrudedHeightReference,n,Ge.NONE);u(s)&&!u(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=Yn.computeGeometryOffsetAttribute(o,r,s,a),i.height=Yn.getGeometryHeight(o,r),s=Yn.getGeometryExtrudedHeight(s,a),s===Yn.CLAMP_TO_GROUND&&(s=li.getMinimumMaximumHeights(Ib.computeRectangle(i,ife)).minimumTerrainHeight),i.extrudedHeight=s};var JM=Jd;var ofe=new H,IXe=new St,PXe=new St,OXe=h.ZERO,RXe=new h;function eh(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 xt,this.updaters=new xt,this.updatersWithAttributes=new xt,this.attributes=new xt,this.subscriptions=new xt,this.showsUpdated=new xt,this.itemsToRemove=[],this.invalidated=!1;let a;u(o)&&(a=o.definitionChanged.addEventListener(eh.prototype.onMaterialChanged,this)),this.removeMaterialSubscription=a}eh.prototype.onMaterialChanged=function(){this.invalidated=!0};eh.prototype.isMaterial=function(e){let t=this.depthFailMaterialProperty,n=e.depthFailMaterialProperty;return n===t?!0:u(t)?t.equals(n):!1};eh.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)}))}};eh.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 u(n)&&(n(),this.subscriptions.remove(t),this.showsUpdated.remove(t)),!0}return!1};eh.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){u(i)&&(u(this.oldPrimitive)?o.remove(i):this.oldPrimitive=i);let c;u(this.depthFailAppearanceType)&&(u(this.depthFailMaterialProperty)&&(this.depthFailMaterial=qo.getValue(e,this.depthFailMaterialProperty,this.depthFailMaterial)),c=new this.depthFailAppearanceType({material:this.depthFailMaterial,translucent:this.translucent,closed:this.closed})),i=new En({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{u(i)&&(o.remove(i),i=void 0);let c=this.oldPrimitive;u(c)&&(o.remove(c),this.oldPrimitive=void 0)}this.attributes.removeAll(),this.primitive=i,this.createPrimitive=!1,this.waitingOnCreate=!0}else if(u(i)&&i.ready){i.show=!0,u(this.oldPrimitive)&&(o.remove(this.oldPrimitive),this.oldPrimitive=void 0),u(this.depthFailAppearanceType)&&!(this.depthFailMaterialProperty instanceof Nt)&&(this.depthFailMaterial=qo.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 l=s[r],f=this.geometry.get(l.id),d=this.attributes.get(f.id.id);if(u(d)||(d=i.getGeometryInstanceAttributes(f.id),this.attributes.set(f.id.id,d)),!l.fillMaterialProperty.isConstant||c){let b=l.fillMaterialProperty.color,T=q.getValueOrDefault(b,e,H.WHITE,ofe);H.equals(d._lastColor,T)||(d._lastColor=H.clone(T,d._lastColor),d.color=kt.toValue(T,d.color),(this.translucent&&d.color[3]===255||!this.translucent&&d.color[3]!==255)&&(this.itemsToRemove[n++]=l))}if(u(this.depthFailAppearanceType)&&l.depthFailMaterialProperty instanceof Nt&&(!l.depthFailMaterialProperty.isConstant||c)){let b=l.depthFailMaterialProperty.color,T=q.getValueOrDefault(b,e,H.WHITE,ofe);H.equals(d._lastDepthFailColor,T)||(d._lastDepthFailColor=H.clone(T,d._lastDepthFailColor),d.depthFailColor=kt.toValue(T,d.depthFailColor))}let p=l.entity.isShowing&&(l.hasConstantFill||l.isFilled(e)),g=d.show[0]===1;p!==g&&(d.show=gn.toValue(p,d.show));let m=l.distanceDisplayConditionProperty;if(!q.isConstant(m)){let b=q.getValueOrDefault(m,e,PXe,IXe);St.equals(b,d._lastDistanceDisplayCondition)||(d._lastDistanceDisplayCondition=St.clone(b,d._lastDistanceDisplayCondition),d.distanceDisplayCondition=Un.toValue(b,d.distanceDisplayCondition))}let x=l.terrainOffsetProperty;if(!q.isConstant(x)){let b=q.getValueOrDefault(x,e,OXe,RXe);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 u(i)&&!i.ready&&(t=!1);return this.itemsToRemove.length=n,t};eh.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);u(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()};eh.prototype.contains=function(e){return this.updaters.contains(e.id)};eh.prototype.getBoundingSphere=function(e,t){let n=this.primitive;if(!n.ready)return ot.PENDING;let i=n.getGeometryInstanceAttributes(e.entity);return!u(i)||!u(i.boundingSphere)||u(i.show)&&i.show[0]===0?ot.FAILED:(i.boundingSphere.clone(t),ot.DONE)};eh.prototype.destroy=function(){let e=this.primitive,t=this.primitives;u(e)&&t.remove(e);let n=this.oldPrimitive;u(n)&&t.remove(n),u(this.removeMaterialSubscription)&&this.removeMaterialSubscription()};function mE(e,t,n,i,o){this._solidItems=[],this._translucentItems=[],this._primitives=e,this._appearanceType=t,this._depthFailAppearanceType=n,this._closed=i,this._shadows=o}mE.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 eh(this._primitives,i,this._appearanceType,this._depthFailAppearanceType,t.depthFailMaterialProperty,this._closed,this._shadows);s.add(t,o),n.push(s)};function rfe(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}mE.prototype.remove=function(e){rfe(this._solidItems,e)||rfe(this._translucentItems,e)};function sfe(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 l=a[r];s.remove(l),e.add(n,l),i=!0}}return i}function CV(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 l=0;l<c;l++)e.add(n,a[l]);s.destroy()}}for(o=t.length,r=0;r<o;++r)i=t[r].update(n)&&i;return i}mE.prototype.update=function(e){let t=CV(this,this._solidItems,e,!0);t=CV(this,this._translucentItems,e,t)&&t;let n=sfe(this,this._solidItems,e),i=sfe(this,this._translucentItems,e);return(n||i)&&(t=CV(this,this._solidItems,e,t)&&t,t=CV(this,this._translucentItems,e,t)&&t),t};function afe(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 ot.FAILED}mE.prototype.getBoundingSphere=function(e,t){let n=afe(this._solidItems,e,t);return n===ot.FAILED?afe(this._translucentItems,e,t):n};function cfe(e){let t=e.length;for(let n=0;n<t;n++)e[n].destroy();e.length=0}mE.prototype.removeAllPrimitives=function(){cfe(this._solidItems),cfe(this._translucentItems)};var Rf=mE;var MXe=new St,LXe=new St,NXe=h.ZERO,FXe=new h;function th(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 xt,this.createPrimitive=!0,this.primitive=void 0,this.oldPrimitive=void 0,this.geometry=new xt,this.material=void 0,this.depthFailMaterial=void 0,this.updatersWithAttributes=new xt,this.attributes=new xt,this.invalidated=!1,this.removeMaterialSubscription=n.definitionChanged.addEventListener(th.prototype.onMaterialChanged,this),this.subscriptions=new xt,this.showsUpdated=new xt}th.prototype.onMaterialChanged=function(){this.invalidated=!0};th.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=u(t)&&t.equals(n);return r=(!u(i)&&!u(o)||u(i)&&i.equals(o))&&r,r};th.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};th.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 u(n)&&(n(),this.subscriptions.remove(t),this.showsUpdated.remove(t)),!0}return!1};var BXe=new H;th.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){u(n)&&(u(this.oldPrimitive)?i.remove(n):this.oldPrimitive=n),this.material=qo.getValue(e,this.materialProperty,this.material);let a;u(this.depthFailMaterialProperty)&&(this.depthFailMaterial=qo.getValue(e,this.depthFailMaterialProperty,this.depthFailMaterial),a=new this.depthFailAppearanceType({material:this.depthFailMaterial,translucent:this.depthFailMaterial.isTranslucent(),closed:this.closed})),n=new En({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{u(n)&&(i.remove(n),n=void 0);let a=this.oldPrimitive;u(a)&&(i.remove(a),this.oldPrimitive=void 0)}this.attributes.removeAll(),this.primitive=n,this.createPrimitive=!1}else if(u(n)&&n.ready){n.show=!0,u(this.oldPrimitive)&&(i.remove(this.oldPrimitive),this.oldPrimitive=void 0),this.material=qo.getValue(e,this.materialProperty,this.material),this.primitive.appearance.material=this.material,u(this.depthFailAppearanceType)&&!(this.depthFailMaterialProperty instanceof Nt)&&(this.depthFailMaterial=qo.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],l=c.entity,f=this.geometry.get(c.id),d=this.attributes.get(f.id.id);if(u(d)||(d=n.getGeometryInstanceAttributes(f.id),this.attributes.set(f.id.id,d)),u(this.depthFailAppearanceType)&&this.depthFailMaterialProperty instanceof Nt&&!c.depthFailMaterialProperty.isConstant){let b=c.depthFailMaterialProperty.color,T=q.getValueOrDefault(b,e,H.WHITE,BXe);H.equals(d._lastDepthFailColor,T)||(d._lastDepthFailColor=H.clone(T,d._lastDepthFailColor),d.depthFailColor=kt.toValue(T,d.depthFailColor))}let p=l.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,LXe,MXe);St.equals(b,d._lastDistanceDisplayCondition)||(d._lastDistanceDisplayCondition=St.clone(b,d._lastDistanceDisplayCondition),d.distanceDisplayCondition=Un.toValue(b,d.distanceDisplayCondition))}let x=c.terrainOffsetProperty;if(!q.isConstant(x)){let b=q.getValueOrDefault(x,e,NXe,FXe);h.equals(b,d._lastOffset)||(d._lastOffset=h.clone(b,d._lastOffset),d.offset=Yi.toValue(b,d.offset))}}this.updateShows(n)}else u(n)&&!n.ready&&(t=!1);return t};th.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);u(a)||(a=e.getGeometryInstanceAttributes(s.id),this.attributes.set(s.id.id,a));let c=r.isShowing,l=a.show[0]===1;c!==l&&(a.show=gn.toValue(c,a.show),s.attributes.show.value[0]=a.show[0])}this.showsUpdated.removeAll()};th.prototype.contains=function(e){return this.updaters.contains(e.id)};th.prototype.getBoundingSphere=function(e,t){let n=this.primitive;if(!n.ready)return ot.PENDING;let i=n.getGeometryInstanceAttributes(e.entity);return!u(i)||!u(i.boundingSphere)||u(i.show)&&i.show[0]===0?ot.FAILED:(i.boundingSphere.clone(t),ot.DONE)};th.prototype.destroy=function(){let e=this.primitive,t=this.primitives;u(e)&&t.remove(e);let n=this.oldPrimitive;u(n)&&t.remove(n),this.removeMaterialSubscription()};function pE(e,t,n,i,o){this._items=[],this._primitives=e,this._appearanceType=t,this._depthFailAppearanceType=n,this._closed=i,this._shadows=o}pE.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 th(this._primitives,this._appearanceType,t.fillMaterialProperty,this._depthFailAppearanceType,t.depthFailMaterialProperty,this._closed,this._shadows);o.add(e,t),n.push(o)};pE.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}}};pE.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};pE.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 ot.FAILED};pE.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 Mf=pE;var ufe=ro(lfe(),1);function EV(){this._tree=new ufe.default}function Pb(){this.minX=0,this.minY=0,this.maxX=0,this.maxY=0,this.id=""}Pb.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};EV.prototype.insert=function(e,t){let n=Pb.fromRectangleAndId(e,t,new Pb);this._tree.insert(n)};function kXe(e,t){return e.id===t.id}var UXe=new Pb;EV.prototype.remove=function(e,t){let n=Pb.fromRectangleAndId(e,t,UXe);this._tree.remove(n,kXe)};var VXe=new Pb;EV.prototype.collides=function(e){let t=Pb.fromRectangleAndId("",e,VXe);return this._tree.collides(t)};var Ob=EV;var zXe=new H,HXe=new St,GXe=new St;function C_(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 xt,this.updaters=new xt,this.updatersWithAttributes=new xt,this.attributes=new xt,this.subscriptions=new xt,this.showsUpdated=new xt,this.itemsToRemove=[],this.isDirty=!1,this.rectangleCollisionCheck=new Ob}C_.prototype.overlapping=function(e){return this.rectangleCollisionCheck.collides(e)};C_.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)}))}};C_.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 u(i)&&(i(),this.subscriptions.remove(t),this.showsUpdated.remove(t)),!0}return!1};C_.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)u(i)&&(u(this.oldPrimitive)?o.remove(i):this.oldPrimitive=i),i=new Ic({show:!1,asynchronous:!0,geometryInstances:s.slice(),classificationType:this.classificationType}),o.add(i,this.zIndex),t=!1;else{u(i)&&(o.remove(i),i=void 0);let c=this.oldPrimitive;u(c)&&(o.remove(c),this.oldPrimitive=void 0)}this.attributes.removeAll(),this.primitive=i,this.createPrimitive=!1,this.waitingOnCreate=!0}else if(u(i)&&i.ready){i.show=!0,u(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 l=s[r],f=this.geometry.get(l.id),d=this.attributes.get(f.id.id);if(u(d)||(d=i.getGeometryInstanceAttributes(f.id),this.attributes.set(f.id.id,d)),!l.fillMaterialProperty.isConstant||c){let x=l.fillMaterialProperty.color,b=q.getValueOrDefault(x,e,H.WHITE,zXe);H.equals(d._lastColor,b)||(d._lastColor=H.clone(b,d._lastColor),d.color=kt.toValue(b,d.color))}let p=l.entity.isShowing&&(l.hasConstantFill||l.isFilled(e)),g=d.show[0]===1;p!==g&&(d.show=gn.toValue(p,d.show));let m=l.distanceDisplayConditionProperty;if(!q.isConstant(m)){let x=q.getValueOrDefault(m,e,GXe,HXe);St.equals(x,d._lastDistanceDisplayCondition)||(d._lastDistanceDisplayCondition=St.clone(x,d._lastDistanceDisplayCondition),d.distanceDisplayCondition=Un.toValue(x,d.distanceDisplayCondition))}}this.updateShows(i),this.waitingOnCreate=!1}else u(i)&&!i.ready&&(t=!1);return this.itemsToRemove.length=n,t};C_.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);u(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()};C_.prototype.contains=function(e){return this.updaters.contains(e.id)};C_.prototype.getBoundingSphere=function(e,t){let n=this.primitive;if(!n.ready)return ot.PENDING;let i=n.getBoundingSphere(e.entity);return u(i)?(i.clone(t),ot.DONE):ot.FAILED};C_.prototype.removeAllPrimitives=function(){let e=this.primitives,t=this.primitive;u(t)&&(e.remove(t),this.primitive=void 0,this.geometry.removeAll(),this.updaters.removeAll());let n=this.oldPrimitive;u(n)&&(e.remove(n),this.oldPrimitive=void 0)};function _E(e,t){this._batches=[],this._primitives=e,this._classificationType=t}_E.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 u(r)||(r=new C_(this._primitives,this._classificationType,n.attributes.color.value,o),i.push(r)),r.add(t,n),r};_E.prototype.remove=function(e){let t=this._batches,n=t.length;for(let i=0;i<n;++i)if(t[i].remove(e))return};_E.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 l=0;l<c;l++){n=a[l],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};_E.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 ot.FAILED};_E.prototype.removeAllPrimitives=function(){let e=this._batches,t=e.length;for(let n=0;n<t;++n)e[n].removeAllPrimitives()};var gE=_E;var WXe=new St,jXe=new St;function Lf(e,t,n,i,o,r){this.primitives=e,this.classificationType=t,this.appearanceType=n,this.materialProperty=i,this.updaters=new xt,this.createPrimitive=!0,this.primitive=void 0,this.oldPrimitive=void 0,this.geometry=new xt,this.material=void 0,this.updatersWithAttributes=new xt,this.attributes=new xt,this.invalidated=!1,this.removeMaterialSubscription=i.definitionChanged.addEventListener(Lf.prototype.onMaterialChanged,this),this.subscriptions=new xt,this.showsUpdated=new xt,this.usingSphericalTextureCoordinates=o,this.zIndex=r,this.rectangleCollisionCheck=new Ob}Lf.prototype.onMaterialChanged=function(){this.invalidated=!0};Lf.prototype.overlapping=function(e){return this.rectangleCollisionCheck.collides(e)};Lf.prototype.isMaterial=function(e){let t=this.materialProperty,n=e.fillMaterialProperty;return n===t||n instanceof Nt&&t instanceof Nt?!0:u(t)&&t.equals(n)};Lf.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};Lf.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 u(i)&&(i(),this.subscriptions.remove(t)),!0}return!1};Lf.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)u(n)&&(u(this.oldPrimitive)?i.remove(n):this.oldPrimitive=n),this.material=qo.getValue(e,this.materialProperty,this.material),n=new Ic({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{u(n)&&(i.remove(n),n=void 0);let a=this.oldPrimitive;u(a)&&(i.remove(a),this.oldPrimitive=void 0)}this.attributes.removeAll(),this.primitive=n,this.createPrimitive=!1}else if(u(n)&&n.ready){n.show=!0,u(this.oldPrimitive)&&(i.remove(this.oldPrimitive),this.oldPrimitive=void 0),this.material=qo.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],l=c.entity,f=this.geometry.get(c.id),d=this.attributes.get(f.id.id);u(d)||(d=n.getGeometryInstanceAttributes(f.id),this.attributes.set(f.id.id,d));let p=l.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,jXe,WXe);St.equals(x,d._lastDistanceDisplayCondition)||(d._lastDistanceDisplayCondition=St.clone(x,d._lastDistanceDisplayCondition),d.distanceDisplayCondition=Un.toValue(x,d.distanceDisplayCondition))}}this.updateShows(n)}else u(n)&&!n.ready&&(t=!1);return t};Lf.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);u(a)||(a=e.getGeometryInstanceAttributes(s.id),this.attributes.set(s.id.id,a));let c=r.isShowing,l=a.show[0]===1;c!==l&&(a.show=gn.toValue(c,a.show),s.attributes.show.value[0]=a.show[0])}this.showsUpdated.removeAll()};Lf.prototype.contains=function(e){return this.updaters.contains(e.id)};Lf.prototype.getBoundingSphere=function(e,t){let n=this.primitive;if(!n.ready)return ot.PENDING;let i=n.getGeometryInstanceAttributes(e.entity);return!u(i)||!u(i.boundingSphere)||u(i.show)&&i.show[0]===0?ot.FAILED:(i.boundingSphere.clone(t),ot.DONE)};Lf.prototype.destroy=function(){let e=this.primitive,t=this.primitives;u(e)&&t.remove(e);let n=this.oldPrimitive;u(n)&&t.remove(n),this.removeMaterialSubscription()};function yE(e,t,n){this._items=[],this._primitives=e,this._classificationType=t,this._appearanceType=n}yE.prototype.add=function(e,t){let n=this._items,i=n.length,o=t.createFillGeometryInstance(e),r=tu.shouldUseSphericalCoordinates(o.geometry.rectangle),s=q.getValueOrDefault(t.zIndex,0);for(let c=0;c<i;++c){let l=n[c];if(l.isMaterial(t)&&l.usingSphericalTextureCoordinates===r&&l.zIndex===s&&!l.overlapping(o.geometry.rectangle)){l.add(e,t,o);return}}let a=new Lf(this._primitives,this._classificationType,this._appearanceType,t.fillMaterialProperty,r,s);a.add(e,t,o),n.push(a)};yE.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}}};yE.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};yE.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 ot.FAILED};yE.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 eL=yE;var qXe=new H,YXe=new St,XXe=new St,KXe=h.ZERO,ZXe=new h;function E_(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 xt,this.updaters=new xt,this.updatersWithAttributes=new xt,this.attributes=new xt,this.itemsToRemove=[],this.subscriptions=new xt,this.showsUpdated=new xt}E_.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)}))}};E_.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 u(n)&&(n(),this.subscriptions.remove(t),this.showsUpdated.remove(t)),!0}return!1};E_.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)u(i)&&(u(this.oldPrimitive)?o.remove(i):this.oldPrimitive=i),i=new En({show:!1,asynchronous:!0,geometryInstances:s.slice(),appearance:new nn({flat:!0,translucent:this.translucent,renderState:{lineWidth:this.width}}),shadows:this.shadows}),o.add(i),t=!1;else{u(i)&&(o.remove(i),i=void 0);let c=this.oldPrimitive;u(c)&&(o.remove(c),this.oldPrimitive=void 0)}this.attributes.removeAll(),this.primitive=i,this.createPrimitive=!1,this.waitingOnCreate=!0}else if(u(i)&&i.ready){i.show=!0,u(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 l=s[r],f=this.geometry.get(l.id),d=this.attributes.get(f.id.id);if(u(d)||(d=i.getGeometryInstanceAttributes(f.id),this.attributes.set(f.id.id,d)),!l.outlineColorProperty.isConstant||c){let b=l.outlineColorProperty,T=q.getValueOrDefault(b,e,H.WHITE,qXe);H.equals(d._lastColor,T)||(d._lastColor=H.clone(T,d._lastColor),d.color=kt.toValue(T,d.color),(this.translucent&&d.color[3]===255||!this.translucent&&d.color[3]!==255)&&(this.itemsToRemove[n++]=l))}let p=l.entity.isShowing&&(l.hasConstantOutline||l.isOutlineVisible(e)),g=d.show[0]===1;p!==g&&(d.show=gn.toValue(p,d.show));let m=l.distanceDisplayConditionProperty;if(!q.isConstant(m)){let b=q.getValueOrDefault(m,e,XXe,YXe);St.equals(b,d._lastDistanceDisplayCondition)||(d._lastDistanceDisplayCondition=St.clone(b,d._lastDistanceDisplayCondition),d.distanceDisplayCondition=Un.toValue(b,d.distanceDisplayCondition))}let x=l.terrainOffsetProperty;if(!q.isConstant(x)){let b=q.getValueOrDefault(x,e,KXe,ZXe);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 u(i)&&!i.ready&&(t=!1);return this.itemsToRemove.length=n,t};E_.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);u(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()};E_.prototype.contains=function(e){return this.updaters.contains(e.id)};E_.prototype.getBoundingSphere=function(e,t){let n=this.primitive;if(!n.ready)return ot.PENDING;let i=n.getGeometryInstanceAttributes(e.entity);return!u(i)||!u(i.boundingSphere)||u(i.show)&&i.show[0]===0?ot.FAILED:(i.boundingSphere.clone(t),ot.DONE)};E_.prototype.removeAllPrimitives=function(){let e=this.primitives,t=this.primitive;u(t)&&(e.remove(t),this.primitive=void 0,this.geometry.removeAll(),this.updaters.removeAll());let n=this.oldPrimitive;u(n)&&(e.remove(n),this.oldPrimitive=void 0)};function xE(e,t,n){this._primitives=e,this._scene=t,this._shadows=n,this._solidBatches=new xt,this._translucentBatches=new xt}xE.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),u(r)||(r=new E_(this._primitives,!1,i,this._shadows),o.set(i,r)),r.add(t,n)):(o=this._translucentBatches,r=o.get(i),u(r)||(r=new E_(this._primitives,!0,i,this._shadows),o.set(i,r)),r.add(t,n))};xE.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};xE.prototype.update=function(e){let t,n,i,o,r=this._solidBatches.values,s=r.length,a=this._translucentBatches.values,c=a.length,l,f=!0,d=!1;do{for(d=!1,n=0;n<s;n++){o=r[n],f=o.update(e),l=o.itemsToRemove;let p=l.length;if(p>0)for(d=!0,t=0;t<p;t++)i=l[t],o.remove(i),this.add(e,i)}for(n=0;n<c;n++){o=a[n],f=o.update(e),l=o.itemsToRemove;let p=l.length;if(p>0)for(d=!0,t=0;t<p;t++)i=l[t],o.remove(i),this.add(e,i)}}while(d);return f};xE.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 ot.FAILED};xE.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 bE=xE;var ffe={};function $Xe(e,t){return P.equalsEpsilon(e.latitude,t.latitude,P.EPSILON10)&&P.equalsEpsilon(e.longitude,t.longitude,P.EPSILON10)}var QXe=new fe,JXe=new fe;function eKe(e,t,n,i){t=yo(t,h.equalsEpsilon);let o=t.length;if(o<2)return;let r=u(i),s=u(n),a=new Array(o),c=new Array(o),l=new Array(o),f=t[0];a[0]=f;let d=e.cartesianToCartographic(f,QXe);s&&(d.height=n[0]),c[0]=d.height,r?l[0]=i[0]:l[0]=0;let p=c[0],g=l[0],m=p===g,x=1;for(let b=1;b<o;++b){let T=t[b],A=e.cartesianToCartographic(T,JXe);s&&(A.height=n[b]),m=m&&A.height===0,$Xe(d,A)?d.height<A.height&&(c[x-1]=A.height):(a[x]=T,c[x]=A.height,r?l[x]=i[b]:l[x]=0,m=m&&c[x]===l[x],fe.clone(A,d),++x)}if(!(m||x<2))return a.length=x,c.length=x,l.length=x,{positions:a,topHeights:c,bottomHeights:l}}var tKe=new Array(2),nKe=new Array(2),iKe={positions:void 0,height:void 0,granularity:void 0,ellipsoid:void 0};ffe.computePositions=function(e,t,n,i,o,r){let s=eKe(e,t,n,i);if(!u(s))return;t=s.positions,n=s.topHeights,i=s.bottomHeights;let a=t.length,c=a-2,l,f,d=P.chordLength(o,e.maximumRadius),p=iKe;if(p.minDistance=d,p.ellipsoid=e,r){let g=0,m;for(m=0;m<a-1;m++)g+=Ii.numberOfPoints(t[m],t[m+1],d)+1;l=new Float64Array(g*3),f=new Float64Array(g*3);let x=tKe,b=nKe;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 A=Ii.generateArc(p);l.set(A,T),b[0]=i[m],b[1]=i[m+1],f.set(Ii.generateArc(p),T),T+=A.length}}else p.positions=t,p.height=n,l=new Float64Array(Ii.generateArc(p)),p.height=i,f=new Float64Array(Ii.generateArc(p));return{bottomPositions:f,topPositions:l,numCorners:c}};var Rb=ffe;var ZW=new h,SV=new h,oKe=new h,dfe=new h,rKe=new h,sKe=new h,aKe=new h;function Mb(e){e=y(e,y.EMPTY_OBJECT);let t=e.positions,n=e.maximumHeights,i=e.minimumHeights,o=y(e.vertexFormat,Pe.DEFAULT),r=y(e.granularity,P.RADIANS_PER_DEGREE),s=y(e.ellipsoid,ie.WGS84);this._positions=t,this._minimumHeights=i,this._maximumHeights=n,this._vertexFormat=Pe.clone(o),this._granularity=r,this._ellipsoid=ie.clone(s),this._workerName="createWallGeometry";let a=1+t.length*h.packedLength+2;u(i)&&(a+=i.length),u(n)&&(a+=n.length),this.packedLength=a+ie.packedLength+Pe.packedLength+1}Mb.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=u(s)?s.length:0,t[n++]=r,u(s))for(i=0;i<r;++i)t[n++]=s[i];let a=e._maximumHeights;if(r=u(a)?a.length:0,t[n++]=r,u(a))for(i=0;i<r;++i)t[n++]=a[i];return ie.pack(e._ellipsoid,t,n),n+=ie.packedLength,Pe.pack(e._vertexFormat,t,n),n+=Pe.packedLength,t[n]=e._granularity,t};var hfe=ie.clone(ie.UNIT_SPHERE),mfe=new Pe,tL={positions:void 0,minimumHeights:void 0,maximumHeights:void 0,ellipsoid:hfe,vertexFormat:mfe,granularity:void 0};Mb.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=ie.unpack(e,t,hfe);t+=ie.packedLength;let l=Pe.unpack(e,t,mfe);t+=Pe.packedLength;let f=e[t];return u(n)?(n._positions=r,n._minimumHeights=s,n._maximumHeights=a,n._ellipsoid=ie.clone(c,n._ellipsoid),n._vertexFormat=Pe.clone(l,n._vertexFormat),n._granularity=f,n):(tL.positions=r,tL.minimumHeights=s,tL.maximumHeights=a,tL.granularity=f,new Mb(tL))};Mb.fromConstantHeights=function(e){e=y(e,y.EMPTY_OBJECT);let t=e.positions,n,i,o=e.minimumHeight,r=e.maximumHeight,s=u(o),a=u(r);if(s||a){let l=t.length;n=s?new Array(l):void 0,i=a?new Array(l):void 0;for(let f=0;f<l;++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 Mb(c)};Mb.createGeometry=function(e){let t=e._positions,n=e._minimumHeights,i=e._maximumHeights,o=e._vertexFormat,r=e._granularity,s=e._ellipsoid,a=Rb.computePositions(s,t,i,n,r,!0);if(!u(a))return;let c=a.bottomPositions,l=a.topPositions,f=a.numCorners,d=l.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,A=0,C=0,S=0,w=0,D=0,O=aKe,R=sKe,L=rKe,N=!0;d/=3;let _,E=0,v=1/(d-f-1);for(_=0;_<d;++_){let U=_*3,G=h.fromArray(l,U,ZW),k=h.fromArray(c,U,SV);if(o.position&&(g[A++]=k.x,g[A++]=k.y,g[A++]=k.z,g[A++]=G.x,g[A++]=G.y,g[A++]=G.z),o.st&&(T[D++]=E,T[D++]=0,T[D++]=E,T[D++]=1),o.normal||o.tangent||o.bitangent){let Y=h.clone(h.ZERO,dfe),j=h.subtract(G,s.geodeticSurfaceNormal(G,SV),SV);if(_+1<d&&(Y=h.fromArray(l,U+3,dfe)),N){let $=h.subtract(Y,G,oKe),W=h.subtract(j,G,ZW);O=h.normalize(h.cross(W,$,O),O),N=!1}h.equalsEpsilon(G,Y,P.EPSILON10)?N=!0:(E+=v,o.tangent&&(R=h.normalize(h.subtract(Y,G,R),R)),o.bitangent&&(L=h.normalize(h.cross(O,R,L),L))),o.normal&&(m[C++]=O.x,m[C++]=O.y,m[C++]=O.z,m[C++]=O.x,m[C++]=O.y,m[C++]=O.z),o.tangent&&(x[w++]=R.x,x[w++]=R.y,x[w++]=R.z,x[w++]=R.x,x[w++]=R.y,x[w++]=R.z),o.bitangent&&(b[S++]=L.x,b[S++]=L.y,b[S++]=L.z,b[S++]=L.x,b[S++]=L.y,b[S++]=L.z)}}let I=new fn;o.position&&(I.position=new we({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:g})),o.normal&&(I.normal=new we({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:m})),o.tangent&&(I.tangent=new we({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:x})),o.bitangent&&(I.bitangent=new we({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:b})),o.st&&(I.st=new we({componentDatatype:X.FLOAT,componentsPerAttribute:2,values:T}));let M=p/3;p-=6*(f+1);let B=Fe.createTypedArray(M,p),V=0;for(_=0;_<M-2;_+=2){let U=_,G=_+2,k=h.fromArray(g,U*3,ZW),Y=h.fromArray(g,G*3,SV);if(h.equalsEpsilon(k,Y,P.EPSILON10))continue;let j=_+1,$=_+3;B[V++]=j,B[V++]=U,B[V++]=$,B[V++]=$,B[V++]=U,B[V++]=G}return new st({attributes:I,indices:B,primitiveType:Me.TRIANGLES,boundingSphere:new se.fromVertices(g)})};var nL=Mb;var pfe=new h,_fe=new h;function Lb(e){e=y(e,y.EMPTY_OBJECT);let t=e.positions,n=e.maximumHeights,i=e.minimumHeights,o=y(e.granularity,P.RADIANS_PER_DEGREE),r=y(e.ellipsoid,ie.WGS84);this._positions=t,this._minimumHeights=i,this._maximumHeights=n,this._granularity=o,this._ellipsoid=ie.clone(r),this._workerName="createWallOutlineGeometry";let s=1+t.length*h.packedLength+2;u(i)&&(s+=i.length),u(n)&&(s+=n.length),this.packedLength=s+ie.packedLength+1}Lb.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=u(s)?s.length:0,t[n++]=r,u(s))for(i=0;i<r;++i)t[n++]=s[i];let a=e._maximumHeights;if(r=u(a)?a.length:0,t[n++]=r,u(a))for(i=0;i<r;++i)t[n++]=a[i];return ie.pack(e._ellipsoid,t,n),n+=ie.packedLength,t[n]=e._granularity,t};var gfe=ie.clone(ie.UNIT_SPHERE),iL={positions:void 0,minimumHeights:void 0,maximumHeights:void 0,ellipsoid:gfe,granularity:void 0};Lb.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=ie.unpack(e,t,gfe);t+=ie.packedLength;let l=e[t];return u(n)?(n._positions=r,n._minimumHeights=s,n._maximumHeights=a,n._ellipsoid=ie.clone(c,n._ellipsoid),n._granularity=l,n):(iL.positions=r,iL.minimumHeights=s,iL.maximumHeights=a,iL.granularity=l,new Lb(iL))};Lb.fromConstantHeights=function(e){e=y(e,y.EMPTY_OBJECT);let t=e.positions,n,i,o=e.minimumHeight,r=e.maximumHeight,s=u(o),a=u(r);if(s||a){let l=t.length;n=s?new Array(l):void 0,i=a?new Array(l):void 0;for(let f=0;f<l;++f)s&&(n[f]=o),a&&(i[f]=r)}let c={positions:t,maximumHeights:i,minimumHeights:n,ellipsoid:e.ellipsoid};return new Lb(c)};Lb.createGeometry=function(e){let t=e._positions,n=e._minimumHeights,i=e._maximumHeights,o=e._granularity,r=e._ellipsoid,s=Rb.computePositions(r,t,i,n,o,!1);if(!u(s))return;let a=s.bottomPositions,c=s.topPositions,l=c.length,f=l*2,d=new Float64Array(f),p=0;l/=3;let g;for(g=0;g<l;++g){let A=g*3,C=h.fromArray(c,A,pfe),S=h.fromArray(a,A,_fe);d[p++]=S.x,d[p++]=S.y,d[p++]=S.z,d[p++]=C.x,d[p++]=C.y,d[p++]=C.z}let m=new fn({position:new we({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:d})}),x=f/3;f=2*x-4+x;let b=Fe.createTypedArray(x,f),T=0;for(g=0;g<x-2;g+=2){let A=g,C=g+2,S=h.fromArray(d,A*3,pfe),w=h.fromArray(d,C*3,_fe);if(h.equalsEpsilon(S,w,P.EPSILON10))continue;let D=g+1,O=g+3;b[T++]=D,b[T++]=A,b[T++]=D,b[T++]=O,b[T++]=A,b[T++]=C}return b[T++]=x-2,b[T++]=x-1,new st({attributes:m,indices:b,primitiveType:Me.LINES,boundingSphere:new se.fromVertices(d)})};var oL=Lb;var yfe=new H;function cKe(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 nh(e,t){oi.call(this,{entity:e,scene:t,geometryOptions:new cKe(e),geometryPropertyName:"wall",observedPropertyNames:["availability","wall"]}),this._onEntityPropertyChanged(e,"wall",e.wall,void 0)}u(Object.create)&&(nh.prototype=Object.create(oi.prototype),nh.prototype.constructor=nh);nh.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=Un.fromDistanceDisplayCondition(s);if(this._materialProperty instanceof Nt){let c;u(this._materialProperty.color)&&(this._materialProperty.color.isConstant||n)&&(c=this._materialProperty.color.getValue(e,yfe)),u(c)||(c=H.WHITE),o=kt.fromColor(c),i={show:r,distanceDisplayCondition:a,color:o}}else i={show:r,distanceDisplayCondition:a};return new yt({id:t,geometry:new nL(this._options),attributes:i})};nh.prototype.createOutlineGeometryInstance=function(e){let t=this._entity,n=t.isAvailable(e),i=q.getValueOrDefault(this._outlineColorProperty,e,H.BLACK,yfe),o=this._distanceDisplayConditionProperty.getValue(e);return new yt({id:t,geometry:new oL(this._options),attributes:{show:new gn(n&&t.isShowing&&this._showProperty.getValue(e)&&this._showOutlineProperty.getValue(e)),color:kt.fromColor(i),distanceDisplayCondition:Un.fromDistanceDisplayCondition(o)}})};nh.prototype._isHidden=function(e,t){return!u(t.positions)||oi.prototype._isHidden.call(this,e,t)};nh.prototype._getIsClosed=function(e){return!1};nh.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)};nh.prototype._setStaticOptions=function(e,t){let n=t.minimumHeights,i=t.maximumHeights,o=t.granularity,r=this._materialProperty instanceof Nt,s=this._options;s.vertexFormat=r?nn.VERTEX_FORMAT:so.MaterialSupport.TEXTURED.vertexFormat,s.positions=t.positions.getValue(Ve.MINIMUM_VALUE,s.positions),s.minimumHeights=u(n)?n.getValue(Ve.MINIMUM_VALUE,s.minimumHeights):void 0,s.maximumHeights=u(i)?i.getValue(Ve.MINIMUM_VALUE,s.maximumHeights):void 0,s.granularity=u(o)?o.getValue(Ve.MINIMUM_VALUE):void 0};nh.DynamicGeometryUpdater=TE;function TE(e,t,n){ii.call(this,e,t,n)}u(Object.create)&&(TE.prototype=Object.create(ii.prototype),TE.prototype.constructor=TE);TE.prototype._isHidden=function(e,t,n){return!u(this._options.positions)||ii.prototype._isHidden.call(this,e,t,n)};TE.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 rL=nh;var lKe=[],xfe=[SP,CM,mM,FM,kM,zM,jM,QM,JM,rL];function sL(e,t){this.entity=e,this.scene=t;let n=new Array(xfe.length),i=new pe;function o(s){i.raiseEvent(s)}let r=new Or;for(let s=0;s<n.length;s++){let a=new xfe[s](e,t);r.add(a.geometryChanged,o),n[s]=a}this.updaters=n,this.geometryChanged=i,this.eventHelper=r,this._removeEntitySubscription=e.definitionChanged.addEventListener(sL.prototype._onEntityPropertyChanged,this)}sL.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)};sL.prototype.forEach=function(e){let t=this.updaters;for(let n=0;n<t.length;n++)e(t[n])};sL.prototype.destroy=function(){this.eventHelper.removeAll();let e=this.updaters;for(let t=0;t<e.length;t++)e[t].destroy();this._removeEntitySubscription(),le(this)};function Nf(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 xt,this._removedObjects=new xt,this._changedObjects=new xt;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=Yo.supportsMaterialsforEntitiesOnTerrain(e);this._supportsMaterialsforEntitiesOnTerrain=r;let s;for(s=0;s<o;++s)this._outlineBatches[s]=new bE(n,e,s,!1),this._outlineBatches[o+s]=new bE(n,e,s,!0),this._closedColorBatches[s]=new Rf(n,nn,void 0,!0,s,!0),this._closedColorBatches[o+s]=new Rf(n,nn,void 0,!0,s,!1),this._closedMaterialBatches[s]=new Mf(n,so,void 0,!0,s,!0),this._closedMaterialBatches[o+s]=new Mf(n,so,void 0,!0,s,!1),this._openColorBatches[s]=new Rf(n,nn,void 0,!1,s,!0),this._openColorBatches[o+s]=new Rf(n,nn,void 0,!1,s,!1),this._openMaterialBatches[s]=new Mf(n,so,void 0,!1,s,!0),this._openMaterialBatches[o+s]=new Mf(n,so,void 0,!1,s,!1);let a=Vn.NUMBER_OF_CLASSIFICATION_TYPES,c=new Array(a),l=[];if(r)for(s=0;s<a;++s)l.push(new eL(i,s,so)),c[s]=new gE(i,s);else for(s=0;s<a;++s)c[s]=new gE(i,s);this._groundColorBatches=c,this._groundMaterialBatches=l,this._dynamicBatch=new Cb(n,i),this._batches=this._outlineBatches.concat(this._closedColorBatches,this._closedMaterialBatches,this._openColorBatches,this._openMaterialBatches,this._groundColorBatches,this._groundMaterialBatches,this._dynamicBatch),this._subscriptions=new xt,this._updaterSets=new xt,this._entityCollection=t,t.collectionChanged.addEventListener(Nf.prototype._onCollectionChanged,this),this._onCollectionChanged(t,t.values,lKe)}Nf.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,l,f,d=this;for(a=s.length-1;a>-1;a--)c=s[a],l=c.id,f=this._updaterSets.get(l),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],l=c.id,f=this._updaterSets.get(l),f.forEach(this._removeUpdater.bind(this)),f.destroy(),this._updaterSets.remove(l),this._subscriptions.get(l)(),this._subscriptions.remove(l);for(a=n.length-1;a>-1;a--)c=n[a],l=c.id,f=new sL(c,this._scene),this._updaterSets.set(l,f),f.forEach(function(x){d._insertUpdaterIntoBatch(e,x)}),this._subscriptions.set(l,f.geometryChanged.addEventListener(Nf._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 uKe=[],fKe=new se;Nf.prototype.getBoundingSphere=function(e,t){let n=uKe,i=fKe,o=0,r=ot.DONE,s=this._batches,a=s.length,c=e.id,l=this._updaterSets.get(c).updaters;for(let f=0;f<l.length;f++){let d=l[f];for(let p=0;p<a;p++){if(r=s[p].getBoundingSphere(d,i),r===ot.PENDING)return ot.PENDING;r===ot.DONE&&(n[o]=se.clone(i,n[o]),o++)}}return o===0?ot.FAILED:(n.length=o,se.fromBoundingSpheres(n,t),ot.DONE)};Nf.prototype.isDestroyed=function(){return!1};Nf.prototype.destroy=function(){this._entityCollection.collectionChanged.removeEventListener(Nf.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(),le(this)};Nf.prototype._removeUpdater=function(e){let t=this._batches,n=t.length;for(let i=0;i<n;i++)t[i].remove(e)};Nf.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&&(u(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 Nt?this._groundColorBatches[o].add(e,t):this._groundMaterialBatches[o].add(e,t)}else t.isClosed?t.fillMaterialProperty instanceof Nt?u(t.terrainOffsetProperty)?this._closedColorBatches[i+n].add(e,t):this._closedColorBatches[n].add(e,t):u(t.terrainOffsetProperty)?this._closedMaterialBatches[i+n].add(e,t):this._closedMaterialBatches[n].add(e,t):t.fillMaterialProperty instanceof Nt?u(t.terrainOffsetProperty)?this._openColorBatches[i+n].add(e,t):this._openColorBatches[n].add(e,t):u(t.terrainOffsetProperty)?this._openMaterialBatches[i+n].add(e,t):this._openMaterialBatches[n].add(e,t)};Nf._onGeometryChanged=function(e){let t=this._removedObjects,n=this._changedObjects,i=e.entity,o=i.id;!u(t.get(o))&&!u(n.get(o))&&n.set(o,i)};Nf.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 aL=Nf;var dKe=1,hKe="30px sans-serif",mKe=Vo.FILL,pKe=H.WHITE,_Ke=H.BLACK,gKe=1,yKe=!1,xKe=new H(.165,.165,.165,.8),bKe=new z(7,5),TKe=z.ZERO,AKe=h.ZERO,CKe=Ge.NONE,EKe=mi.CENTER,SKe=Dn.CENTER,wKe=new h,vKe=new H,DKe=new H,IKe=new H,PKe=new z,OKe=new h,RKe=new z,MKe=new Pt,LKe=new Pt,NKe=new Pt,FKe=new St;function bfe(e){this.entity=e,this.label=void 0,this.index=void 0}function Ey(e,t){t.collectionChanged.addEventListener(Ey.prototype._onCollectionChanged,this),this._cluster=e,this._entityCollection=t,this._items=new xt,this._onCollectionChanged(t,t.values,[],[])}Ey.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,l=r.label,f=s.isShowing&&s.isAvailable(e)&&q.getValueOrDefault(a._show,e,!0),d;if(f&&(d=q.getValueOrUndefined(s._position,e,wKe),c=q.getValueOrUndefined(a._text,e),f=u(d)&&u(c)),!f){$W(r,s,n);continue}q.isConstant(s._position)||(n._clusterDirty=!0);let p=!1,g=q.getValueOrDefault(a._heightReference,e,CKe);u(l)||(l=n.getLabel(s),l.id=s,r.label=l,p=h.equals(l.position,d)&&l.heightReference===g),l.show=!0,l.position=d,l.text=c,l.scale=q.getValueOrDefault(a._scale,e,dKe),l.font=q.getValueOrDefault(a._font,e,hKe),l.style=q.getValueOrDefault(a._style,e,mKe),l.fillColor=q.getValueOrDefault(a._fillColor,e,pKe,vKe),l.outlineColor=q.getValueOrDefault(a._outlineColor,e,_Ke,DKe),l.outlineWidth=q.getValueOrDefault(a._outlineWidth,e,gKe),l.showBackground=q.getValueOrDefault(a._showBackground,e,yKe),l.backgroundColor=q.getValueOrDefault(a._backgroundColor,e,xKe,IKe),l.backgroundPadding=q.getValueOrDefault(a._backgroundPadding,e,bKe,PKe),l.pixelOffset=q.getValueOrDefault(a._pixelOffset,e,TKe,RKe),l.eyeOffset=q.getValueOrDefault(a._eyeOffset,e,AKe,OKe),l.heightReference=g,l.horizontalOrigin=q.getValueOrDefault(a._horizontalOrigin,e,EKe),l.verticalOrigin=q.getValueOrDefault(a._verticalOrigin,e,SKe),l.translucencyByDistance=q.getValueOrUndefined(a._translucencyByDistance,e,MKe),l.pixelOffsetScaleByDistance=q.getValueOrUndefined(a._pixelOffsetScaleByDistance,e,LKe),l.scaleByDistance=q.getValueOrUndefined(a._scaleByDistance,e,NKe),l.distanceDisplayCondition=q.getValueOrUndefined(a._distanceDisplayCondition,e,FKe),l.disableDepthTestDistance=q.getValueOrUndefined(a._disableDepthTestDistance,e),p&&l._updateClamping()}return!0};Ey.prototype.getBoundingSphere=function(e,t){let n=this._items.get(e.id);if(!u(n)||!u(n.label))return ot.FAILED;let i=n.label;return t.center=h.clone(y(i._clampedPosition,i.position),t.center),t.radius=0,ot.DONE};Ey.prototype.isDestroyed=function(){return!1};Ey.prototype.destroy=function(){this._entityCollection.collectionChanged.removeEventListener(Ey.prototype._onCollectionChanged,this);let e=this._entityCollection.values;for(let t=0;t<e.length;t++)this._cluster.removeLabel(e[t]);return le(this)};Ey.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],u(r._label)&&u(r._position)&&s.set(r.id,new bfe(r));for(o=i.length-1;o>-1;o--)r=i[o],u(r._label)&&u(r._position)?s.contains(r.id)||s.set(r.id,new bfe(r)):($W(s.get(r.id),r,a),s.remove(r.id));for(o=n.length-1;o>-1;o--)r=n[o],$W(s.get(r.id),r,a),s.remove(r.id)};function $W(e,t,n){u(e)&&(e.label=void 0,n.removeLabel(t))}var cL=Ey;async function BKe(e,t,n,i){return u(i)||(i=!1),VKe(e,t,n,i)}function kKe(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(Afe(i)):r=o.then(Afe(i)).catch(zKe(i)),e.shift(),t.push(r),!0}function UKe(e){return new Promise(function(t){setTimeout(t,e)})}function QW(e,t,n){return e.length?kKe(e,t,n)?QW(e,t):UKe(100).then(()=>QW(e,t)):Promise.resolve()}function VKe(e,t,n,i){let o=e.tilingScheme,r,s=[],a={};for(r=0;r<n.length;++r){let l=o.positionToTileXY(n[r],t);if(!u(l))continue;let f=l.toString();if(!a.hasOwnProperty(f)){let d={x:l.x,y:l.y,level:t,tilingScheme:o,terrainProvider:e,positions:[]};a[f]=d,s.push(d)}a[f].positions.push(n[r])}let c=[];return QW(s,c,i).then(function(){return Promise.all(c).then(function(){return n})})}function Tfe(e,t,n){let i=t.interpolateHeight(n,e.longitude,e.latitude);return i===void 0?!1:(e.height=i,!0)}function Afe(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(!Tfe(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];Tfe(s,i,n)}}):Promise.resolve()}}function zKe(e){let t=e.positions;return function(){for(let n=0;n<t.length;++n){let i=t[n];i.height=void 0}}}var lL=BKe;var JW=new z;async function Cfe(e,t,n){u(n)||(n=!1);let i=[],o=[],r=e.availability,s=[];for(let c=0;c<t.length;++c){let l=t[c],f=r.computeMaximumLevelAtPosition(l);if(o[c]=f,f===0){e.tilingScheme.positionToTileXY(l,1,JW);let p=e.loadTileDataAvailability(JW.x,JW.y,1);u(p)&&s.push(p)}let d=i[f];u(d)||(i[f]=d=[]),d.push(l)}await Promise.all(s),await Promise.all(i.map(function(c,l){if(u(c))return lL(e,l,c,n)}));let a=[];for(let c=0;c<t.length;++c){let l=t[c];r.computeMaximumLevelAtPosition(l)!==o[c]&&a.push(l)}return a.length>0&&await Cfe(e,a,n),t}var S_=Cfe;var HKe=1,GKe=0,WKe=!0,jKe=!0,qKe=yn.ENABLED,YKe=Ge.NONE,XKe=H.RED,KKe=0,ZKe=H.WHITE,$Ke=$a.HIGHLIGHT,QKe=.5,JKe=new z(1,1),eZe=new F,tZe=new F,Efe=new H,Sfe=new Array(4),nZe=new h;function pm(e,t){t.collectionChanged.addEventListener(pm.prototype._onCollectionChanged,this),this._scene=e,this._primitives=e.primitives,this._entityCollection=t,this._modelHash={},this._entitiesToVisualize=new xt,this._onCollectionChanged(t,t.values,[],[])}async function iZe(e,t,n,i){let o=e._primitives,r=e._modelHash;try{let s=await Fd.fromGltfAsync({url:n,incrementallyLoadTextures:i,scene:e._scene});if(e.isDestroyed()||!u(r[t.id]))return;s.id=t,o.add(s),r[t.id].modelPrimitive=s,s.errorEvent.addEventListener(a=>{u(r[t.id])&&(console.log(a),a.name!=="TextureError"&&s.incrementallyLoadTextures&&(r[t.id].loadFailed=!0))})}catch(s){if(e.isDestroyed()||!u(r[t.id]))return;console.log(s),r[t.id].loadFailed=!0}}pm.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,l=n[s.id],f=s.isShowing&&s.isAvailable(e)&&q.getValueOrDefault(a._show,e,!0),d;if(f&&(d=s.computeModelMatrix(e,eZe),c=ve.createIfNeeded(q.getValueOrUndefined(a._uri,e)),f=u(d)&&u(c)),!f){u(l)&&l.modelPrimitive&&(l.modelPrimitive.show=!1);continue}if(!u(l)||c.url!==l.url){u(l?.modelPrimitive)&&(i.removeAndDestroy(l.modelPrimitive),delete n[s.id]),l={modelPrimitive:void 0,url:c.url,animationsRunning:!1,nodeTransformationsScratch:{},articulationsScratch:{},loadFailed:!1,modelUpdated:!1,awaitingSampleTerrain:!1,clampedBoundingSphere:void 0,sampleTerrainFailed:!1},n[s.id]=l;let m=q.getValueOrDefault(a._incrementallyLoadTextures,e,WKe);iZe(this,s,c,m)}let p=l.modelPrimitive;if(!u(p))continue;p.show=!0,p.scale=q.getValueOrDefault(a._scale,e,HKe),p.minimumPixelSize=q.getValueOrDefault(a._minimumPixelSize,e,GKe),p.maximumScale=q.getValueOrUndefined(a._maximumScale,e),p.modelMatrix=F.clone(d,p.modelMatrix),p.shadows=q.getValueOrDefault(a._shadows,e,qKe),p.heightReference=q.getValueOrDefault(a._heightReference,e,YKe),p.distanceDisplayCondition=q.getValueOrUndefined(a._distanceDisplayCondition,e),p.silhouetteColor=q.getValueOrDefault(a._silhouetteColor,e,XKe,Efe),p.silhouetteSize=q.getValueOrDefault(a._silhouetteSize,e,KKe),p.color=q.getValueOrDefault(a._color,e,ZKe,Efe),p.colorBlendMode=q.getValueOrDefault(a._colorBlendMode,e,$Ke),p.colorBlendAmount=q.getValueOrDefault(a._colorBlendAmount,e,QKe),p.clippingPlanes=q.getValueOrUndefined(a._clippingPlanes,e),p.clampAnimations=q.getValueOrDefault(a._clampAnimations,e,jKe),p.imageBasedLighting.imageBasedLightingFactor=q.getValueOrDefault(a._imageBasedLightingFactor,e,JKe);let g=q.getValueOrUndefined(a._lightColor,e);if(u(g)&&(H.pack(g,Sfe,0),g=h.unpack(Sfe,0,nZe)),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);l.animationsRunning!==m&&(m?p.activeAnimations.addAll({loop:wl.REPEAT}):p.activeAnimations.removeAll(),l.animationsRunning=m);let x=q.getValueOrUndefined(a._nodeTransformations,e,l.nodeTransformationsScratch);if(u(x)){let A=Object.keys(x);for(let C=0,S=A.length;C<S;++C){let w=A[C],D=x[w];if(!u(D))continue;let O=p.getNode(w);if(!u(O))continue;let R=F.fromTranslationRotationScale(D,tZe);O.matrix=F.multiply(O.originalMatrix,R,R)}}let b=!1,T=q.getValueOrUndefined(a._articulations,e,l.articulationsScratch);if(u(T)){let A=Object.keys(T);for(let C=0,S=A.length;C<S;++C){let w=A[C],D=T[w];u(D)&&(b=!0,p.setArticulationStage(w,D))}}b&&p.applyArticulations()}}return!0};pm.prototype.isDestroyed=function(){return!1};pm.prototype.destroy=function(){this._entityCollection.collectionChanged.removeEventListener(pm.prototype._onCollectionChanged,this);let e=this._entitiesToVisualize.values,t=this._modelHash,n=this._primitives;for(let i=e.length-1;i>-1;i--)ej(this,e[i],t,n);return le(this)};pm._sampleTerrainMostDetailed=S_;var AE=new h,wfe=new fe;pm.prototype.getBoundingSphere=function(e,t){let n=this._modelHash[e.id];if(!u(n))return ot.FAILED;if(n.loadFailed)return ot.FAILED;let i=n.modelPrimitive;if(!u(i)||!i.show)return ot.PENDING;if(!i.ready||!n.modelUpdated)return ot.PENDING;let r=this._scene.globe,s=u(r)?r.terrainProvider:void 0,a=i.heightReference!==Ge.NONE;if(u(r)&&a){let c=r.ellipsoid,l=i.modelMatrix;AE.x=l[12],AE.y=l[13],AE.z=l[14];let f=c.cartesianToCartographic(AE);if(!u(s.availability)){i.heightReference===Ge.CLAMP_TO_GROUND&&(f.height=0);let g=c.cartographicToCartesian(f);return se.clone(i.boundingSphere,t),t.center=g,ot.DONE}let d=this._modelHash[e.id].clampedBoundingSphere;return this._modelHash[e.id].sampleTerrainFailed?(this._modelHash[e.id].sampleTerrainFailed=!1,ot.FAILED):u(d)?(se.clone(d,t),this._modelHash[e.id].clampedBoundingSphere=void 0,ot.DONE):(d=new se,this._modelHash[e.id].awaitingSampleTerrain||(fe.clone(f,wfe),this._modelHash[e.id].awaitingSampleTerrain=!0,pm._sampleTerrainMostDetailed(s,[wfe]).then(m=>{if(this.isDestroyed())return;this._modelHash[e.id].awaitingSampleTerrain=!1;let x=m[0];i.heightReference===Ge.RELATIVE_TO_GROUND&&(x.height+=f.height),c.cartographicToCartesian(x,AE),se.clone(i.boundingSphere,d),d.center=AE,this._modelHash[e.id].clampedBoundingSphere=se.clone(d)}).catch(m=>{this.isDestroyed()||(this._modelHash[e.id].sampleTerrainFailed=!0,this._modelHash[e.id].awaitingSampleTerrain=!1)})),ot.PENDING)}return se.clone(i.boundingSphere,t),ot.DONE};pm.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],u(r._model)&&u(r._position)&&s.set(r.id,r);for(o=i.length-1;o>-1;o--)r=i[o],u(r._model)&&u(r._position)?(oZe(r,a),s.set(r.id,r)):(ej(this,r,a,c),s.remove(r.id));for(o=n.length-1;o>-1;o--)r=n[o],ej(this,r,a,c),s.remove(r.id)};function ej(e,t,n,i){let o=n[t.id];u(o)&&(i.removeAndDestroy(o.modelPrimitive),delete n[t.id])}function oZe(e,t){let n=t[e.id];u(n)&&(n.nodeTransformationsScratch={},n.articulationsScratch={})}var uL=pm;function Sy(e){this._definitionChanged=new pe,this._value=void 0,this._removeSubscription=void 0,this.setValue(e)}Object.defineProperties(Sy.prototype,{isConstant:{get:function(){return q.isConstant(this._value)}},definitionChanged:{get:function(){return this._definitionChanged}},referenceFrame:{get:function(){return u(this._value)?this._value.referenceFrame:no.FIXED}}});Sy.prototype.getValue=function(e,t){return this.getValueInReferenceFrame(e,no.FIXED,t)};Sy.prototype.setValue=function(e){this._value!==e&&(this._value=e,u(this._removeSubscription)&&(this._removeSubscription(),this._removeSubscription=void 0),u(e)&&(this._removeSubscription=e.definitionChanged.addEventListener(this._raiseDefinitionChanged,this)),this._definitionChanged.raiseEvent(this))};Sy.prototype.getValueInReferenceFrame=function(e,t,n){if(u(this._value))return n=this._value.getValueInReferenceFrame(e,t,n),u(n)?ie.WGS84.scaleToGeodeticSurface(n,n):void 0};Sy.prototype.equals=function(e){return this===e||e instanceof Sy&&this._value===e._value};Sy.prototype._raiseDefinitionChanged=function(){this._definitionChanged.raiseEvent(this)};var _m=Sy;var rZe=60,sZe=1,Ife=new bn,tj=new bn,nj=new bn;function vfe(e){this.entity=e,this.polyline=void 0,this.index=void 0,this.updater=void 0}function aZe(e,t,n,i,o,r,s,a,c){let l=a,f;f=e.getValueInReferenceFrame(t,r,c[l]),u(f)&&(c[l++]=f);let d=!u(o)||J.lessThanOrEquals(o,t)||J.greaterThanOrEquals(o,n),p=0,g=i.length,m=i[p],x=n,b=!1,T,A,C;for(;p<g;){if(!d&&J.greaterThanOrEquals(m,o)&&(f=e.getValueInReferenceFrame(o,r,c[l]),u(f)&&(c[l++]=f),d=!0),J.greaterThan(m,t)&&J.lessThan(m,x)&&!m.equals(o)&&(f=e.getValueInReferenceFrame(m,r,c[l]),u(f)&&(c[l++]=f)),p<g-1){if(s>0&&!b){let S=i[p+1],w=J.secondsDifference(S,m);b=w>s,b&&(T=Math.ceil(w/s),A=0,C=w/Math.max(T,2),T=Math.max(T-1,1))}if(b&&A<T){m=J.addSeconds(m,C,new J),A++;continue}}b=!1,p++,m=i[p]}return f=e.getValueInReferenceFrame(n,r,c[l]),u(f)&&(c[l++]=f),l}function cZe(e,t,n,i,o,r,s,a){let c,l=0,f=s,d=t,p=Math.max(r,60),g=!u(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]),u(c)&&(a[f]=c,f++)),c=e.getValueInReferenceFrame(d,o,a[f]),u(c)&&(a[f]=c,f++),l++,d=J.addSeconds(t,p*l,new J);return c=e.getValueInReferenceFrame(n,o,a[f]),u(c)&&(a[f]=c,f++),f}function lZe(e,t,n,i,o,r,s,a){nj.start=t,nj.stop=n;let c=s,l=e.intervals;for(let f=0;f<l.length;f++){let d=l.get(f);if(!bn.intersect(d,nj,Ife).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]);u(g)&&(a[c]=g,c++)}}return c}function uZe(e,t,n,i,o,r,s,a){let c=e.getValueInReferenceFrame(t,o,a[s]);return u(c)&&(a[s++]=c),s}function fZe(e,t,n,i,o,r,s,a){tj.start=t,tj.stop=n;let c=s,l=e.intervals;for(let f=0;f<l.length;f++){let d=l.get(f);if(!bn.intersect(d,tj,Ife).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=Pfe(d.data,m,x,i,o,r,c,a)}}return c}function Pfe(e,t,n,i,o,r,s,a){for(;e instanceof y_;)e=e.resolvedProperty;if(e instanceof Js){let c=e._property._times;s=aZe(e,t,n,c,i,o,r,s,a)}else e instanceof $s?s=fZe(e,t,n,i,o,r,s,a):e instanceof x_?s=lZe(e,t,n,i,o,r,s,a):e instanceof Oc||e instanceof _m&&q.isConstant(e)?s=uZe(e,t,n,i,o,r,s,a):s=cZe(e,t,n,i,o,r,s,a);return s}function Ofe(e,t,n,i,o,r,s){u(s)||(s=[]);let a=Pfe(e,t,n,i,o,r,0,s);return s.length=a,s}var Dfe=new Q;function fL(e,t){this._unusedIndexes=[],this._polylineCollection=new Ud,this._scene=e,this._referenceFrame=t,e.primitives.add(this._polylineCollection)}fL.prototype.update=function(e){if(this._referenceFrame===no.INERTIAL){let t=Rt.computeIcrfToFixedMatrix(e,Dfe);u(t)||(t=Rt.computeTemeToPseudoFixedMatrix(e,Dfe)),F.fromRotationTranslation(t,h.ZERO,this._polylineCollection.modelMatrix)}};fL.prototype.updateObject=function(e,t){let n=t.entity,i=n._path,o=n._position,r,s,a=i._show,c=t.polyline,l=n.isShowing&&n.isAvailable(e)&&(!u(a)||a.getValue(e));if(l){let d=q.getValueOrUndefined(i._leadTime,e),p=q.getValueOrUndefined(i._trailTime,e),g=n._availability,m=u(g),x=u(d),b=u(p);if(l=m||x&&b,l){if(b&&(r=J.addSeconds(e,-p,new J)),x&&(s=J.addSeconds(e,d,new J)),m){let T=g.start,A=g.stop;(!b||J.greaterThan(T,r))&&(r=T),(!x||J.lessThan(A,s))&&(s=A)}l=J.lessThan(r,s)}}if(!l){u(c)&&(this._unusedIndexes.push(t.index),t.polyline=void 0,c.show=!1,t.index=void 0);return}if(!u(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,rZe);c.show=!0,c.positions=Ofe(o,r,s,e,this._referenceFrame,f,c.positions.slice()),c.material=qo.getValue(e,i._material,c.material),c.width=q.getValueOrDefault(i._width,e,sZe),c.distanceDisplayCondition=q.getValueOrUndefined(i._distanceDisplayCondition,e,c.distanceDisplayCondition)};fL.prototype.removeObject=function(e){let t=e.polyline;u(t)&&(this._unusedIndexes.push(e.index),e.polyline=void 0,t.show=!1,t.id=void 0,e.index=void 0)};fL.prototype.destroy=function(){return this._scene.primitives.remove(this._polylineCollection),le(this)};function wy(e,t){t.collectionChanged.addEventListener(wy.prototype._onCollectionChanged,this),this._scene=e,this._updaters={},this._entityCollection=t,this._items=new xt,this._onCollectionChanged(t,t.values,[],[])}wy.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&&u(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,l=no.FIXED;this._scene.mode===te.SCENE3D&&(l=a.referenceFrame);let f=this._updaters[l];if(c===f&&u(f)){f.updateObject(e,r);continue}u(c)&&c.removeObject(r),u(f)||(f=new fL(this._scene,l),f.update(e),this._updaters[l]=f),r.updater=f,u(f)&&f.updateObject(e,r)}return!0};wy.prototype.isDestroyed=function(){return!1};wy.prototype.destroy=function(){this._entityCollection.collectionChanged.removeEventListener(wy.prototype._onCollectionChanged,this);let e=this._updaters;for(let t in e)e.hasOwnProperty(t)&&e[t].destroy();return le(this)};wy.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],u(r._path)&&u(r._position)&&a.set(r.id,new vfe(r));for(o=i.length-1;o>-1;o--)r=i[o],u(r._path)&&u(r._position)?a.contains(r.id)||a.set(r.id,new vfe(r)):(s=a.get(r.id),u(s)&&(u(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),u(s)&&(u(s.updater)&&s.updater.removeObject(s),a.remove(r.id))};wy._subSample=Ofe;var dL=wy;var Rfe=H.WHITE,Mfe=H.BLACK,Lfe=0,Nfe=1,Ffe=0,Bfe=new H,dZe=new h,kfe=new H,Ufe=new Pt,Vfe=new Pt,zfe=new St;function Hfe(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 vy(e,t){t.collectionChanged.addEventListener(vy.prototype._onCollectionChanged,this),this._cluster=e,this._entityCollection=t,this._items=new xt,this._onCollectionChanged(t,t.values,[],[])}vy.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,l=r.billboard,f=q.getValueOrDefault(a._heightReference,e,Ge.NONE),d=s.isShowing&&s.isAvailable(e)&&q.getValueOrDefault(a._show,e,!0),p;if(d&&(p=q.getValueOrUndefined(s._position,e,dZe),d=u(p)),!d){hL(r,s,n);continue}q.isConstant(s._position)||(n._clusterDirty=!0);let g=!1,m=!1;if(f!==Ge.NONE&&!u(l)?(u(c)&&(hL(r,s,n),c=void 0),l=n.getBillboard(s),l.id=s,l.image=void 0,r.billboard=l,g=!0,m=h.equals(l.position,p)&&l.heightReference===f):f===Ge.NONE&&!u(c)&&(u(l)&&(hL(r,s,n),l=void 0),c=n.getPoint(s),c.id=s,r.pointPrimitive=c),u(c))c.show=!0,c.position=p,c.scaleByDistance=q.getValueOrUndefined(a._scaleByDistance,e,Ufe),c.translucencyByDistance=q.getValueOrUndefined(a._translucencyByDistance,e,Vfe),c.color=q.getValueOrDefault(a._color,e,Rfe,Bfe),c.outlineColor=q.getValueOrDefault(a._outlineColor,e,Mfe,kfe),c.outlineWidth=q.getValueOrDefault(a._outlineWidth,e,Lfe),c.pixelSize=q.getValueOrDefault(a._pixelSize,e,Nfe),c.distanceDisplayCondition=q.getValueOrUndefined(a._distanceDisplayCondition,e,zfe),c.disableDepthTestDistance=q.getValueOrDefault(a._disableDepthTestDistance,e,Ffe);else if(u(l)){l.show=!0,l.position=p,l.scaleByDistance=q.getValueOrUndefined(a._scaleByDistance,e,Ufe),l.translucencyByDistance=q.getValueOrUndefined(a._translucencyByDistance,e,Vfe),l.distanceDisplayCondition=q.getValueOrUndefined(a._distanceDisplayCondition,e,zfe),l.disableDepthTestDistance=q.getValueOrDefault(a._disableDepthTestDistance,e,Ffe),l.heightReference=f;let x=q.getValueOrDefault(a._color,e,Rfe,Bfe),b=q.getValueOrDefault(a._outlineColor,e,Mfe,kfe),T=Math.round(q.getValueOrDefault(a._outlineWidth,e,Lfe)),A=Math.max(1,Math.round(q.getValueOrDefault(a._pixelSize,e,Nfe)));if(T>0?(l.scale=1,g=g||T!==r.outlineWidth||A!==r.pixelSize||!H.equals(x,r.color)||!H.equals(b,r.outlineColor)):(l.scale=A/50,A=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=A,r.outlineWidth=T;let C=x.alpha,S=x.toCssColorString(),w=b.toCssColorString(),D=JSON.stringify([S,A,w,T]);l.setImage(D,jx(C,S,w,T,A))}m&&l._updateClamping()}}return!0};vy.prototype.getBoundingSphere=function(e,t){let n=this._items.get(e.id);if(!u(n)||!(u(n.pointPrimitive)||u(n.billboard)))return ot.FAILED;if(u(n.pointPrimitive))t.center=h.clone(n.pointPrimitive.position,t.center);else{let i=n.billboard;if(!u(i._clampedPosition))return ot.PENDING;t.center=h.clone(i._clampedPosition,t.center)}return t.radius=0,ot.DONE};vy.prototype.isDestroyed=function(){return!1};vy.prototype.destroy=function(){this._entityCollection.collectionChanged.removeEventListener(vy.prototype._onCollectionChanged,this);let e=this._entityCollection.values;for(let t=0;t<e.length;t++)this._cluster.removePoint(e[t]);return le(this)};vy.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],u(r._point)&&u(r._position)&&s.set(r.id,new Hfe(r));for(o=i.length-1;o>-1;o--)r=i[o],u(r._point)&&u(r._position)?s.contains(r.id)||s.set(r.id,new Hfe(r)):(hL(s.get(r.id),r,a),s.remove(r.id));for(o=n.length-1;o>-1;o--)r=n[o],hL(s.get(r.id),r,a),s.remove(r.id)};function hL(e,t,n){if(u(e)){let i=e.pointPrimitive;if(u(i)){e.pointPrimitive=void 0,n.removePoint(t);return}let o=e.billboard;u(o)&&(e.billboard=void 0,n.removeBillboard(t))}}var mL=vy;var Yfe=[];function hZe(e,t,n,i,o){let r=Yfe;r.length=o;let s,a=n.red,c=n.green,l=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-l)/o,A=(m-f)/o;for(s=0;s<o;s++)r[s]=new H(a+s*x,c+s*b,l+s*T,f+s*A);return r}function pL(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=Pe.clone(y(e.vertexFormat,Pe.DEFAULT)),this._arcType=y(e.arcType,qt.GEODESIC),this._granularity=y(e.granularity,P.RADIANS_PER_DEGREE),this._ellipsoid=ie.clone(y(e.ellipsoid,ie.WGS84)),this._workerName="createPolylineGeometry";let r=1+t.length*h.packedLength;r+=u(n)?1+n.length*H.packedLength:1,this.packedLength=r+ie.packedLength+Pe.packedLength+4}pL.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=u(s)?s.length:0,t[n++]=r,i=0;i<r;++i,n+=H.packedLength)H.pack(s[i],t,n);return ie.pack(e._ellipsoid,t,n),n+=ie.packedLength,Pe.pack(e._vertexFormat,t,n),n+=Pe.packedLength,t[n++]=e._width,t[n++]=e._colorsPerVertex?1:0,t[n++]=e._arcType,t[n]=e._granularity,t};var Xfe=ie.clone(ie.UNIT_SPHERE),Kfe=new Pe,Nb={positions:void 0,colors:void 0,ellipsoid:Xfe,vertexFormat:Kfe,width:void 0,colorsPerVertex:void 0,arcType:void 0,granularity:void 0};pL.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=ie.unpack(e,t,Xfe);t+=ie.packedLength;let c=Pe.unpack(e,t,Kfe);t+=Pe.packedLength;let l=e[t++],f=e[t++]===1,d=e[t++],p=e[t];return u(n)?(n._positions=r,n._colors=s,n._ellipsoid=ie.clone(a,n._ellipsoid),n._vertexFormat=Pe.clone(c,n._vertexFormat),n._width=l,n._colorsPerVertex=f,n._arcType=d,n._granularity=p,n):(Nb.positions=r,Nb.colors=s,Nb.width=l,Nb.colorsPerVertex=f,Nb.arcType=d,Nb.granularity=p,new pL(Nb))};var Gfe=new h,Wfe=new h,jfe=new h,qfe=new h;pL.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,l,f,d=[],p=yo(e._positions,h.equalsEpsilon,!1,d);if(u(i)&&d.length>0){let M=0,B=d[0];i=i.filter(function(V,U){let G=!1;return o?G=U===B||U===0&&B===1:G=U+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=P.chordLength(s,a.maximumRadius),B=Ii.numberOfPoints):(M=s,B=Ii.numberOfPointsRhumbLine);let V=Ii.extractHeights(p,a);if(u(i)){let U=1;for(c=0;c<g-1;++c)U+=B(p[c],p[c+1],M);let G=new Array(U),k=0;for(c=0;c<g-1;++c){let Y=p[c],j=p[c+1],$=i[c],W=B(Y,j,M);if(o&&c<U){let K=i[c+1],Z=hZe(Y,j,$,K,W),me=Z.length;for(l=0;l<me;++l)G[k++]=Z[l]}else for(l=0;l<W;++l)G[k++]=H.clone($)}G[k]=H.clone(i[i.length-1]),i=G,Yfe.length=0}r===qt.GEODESIC?p=Ii.generateCartesianArc({positions:p,minDistance:M,ellipsoid:a,height:V}):p=Ii.generateCartesianRhumbArc({positions:p,granularity:M,ellipsoid:a,height:V})}g=p.length;let m=g*4-4,x=new Float64Array(m*3),b=new Float64Array(m*3),T=new Float64Array(m*3),A=new Float32Array(m*2),C=n.st?new Float32Array(m*2):void 0,S=u(i)?new Uint8Array(m*4):void 0,w=0,D=0,O=0,R=0,L;for(l=0;l<g;++l){l===0?(L=Gfe,h.subtract(p[0],p[1],L),h.add(p[0],L,L)):L=p[l-1],h.clone(L,jfe),h.clone(p[l],Wfe),l===g-1?(L=Gfe,h.subtract(p[g-1],p[g-2],L),h.add(p[g-1],L,L)):L=p[l+1],h.clone(L,qfe);let M,B;u(S)&&(l!==0&&!o?M=i[l-1]:M=i[l],l!==g-1&&(B=i[l]));let V=l===0?2:0,U=l===g-1?2:4;for(f=V;f<U;++f){h.pack(Wfe,x,w),h.pack(jfe,b,w),h.pack(qfe,T,w),w+=3;let G=f-2<0?-1:1;if(A[D++]=2*(f%2)-1,A[D++]=G*t,n.st&&(C[O++]=l/(g-1),C[O++]=Math.max(A[D-2],0)),u(S)){let k=f<2?M:B;S[R++]=H.floatToByte(k.red),S[R++]=H.floatToByte(k.green),S[R++]=H.floatToByte(k.blue),S[R++]=H.floatToByte(k.alpha)}}}let N=new fn;N.position=new we({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:x}),N.prevPosition=new we({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:b}),N.nextPosition=new we({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:T}),N.expandAndWidth=new we({componentDatatype:X.FLOAT,componentsPerAttribute:2,values:A}),n.st&&(N.st=new we({componentDatatype:X.FLOAT,componentsPerAttribute:2,values:C})),u(S)&&(N.color=new we({componentDatatype:X.UNSIGNED_BYTE,componentsPerAttribute:4,values:S,normalize:!0}));let _=Fe.createTypedArray(m,g*6-6),E=0,v=0,I=g-1;for(l=0;l<I;++l)_[v++]=E,_[v++]=E+2,_[v++]=E+1,_[v++]=E+1,_[v++]=E+2,_[v++]=E+3,E+=4;return new st({attributes:N,indices:_,primitiveType:Me.TRIANGLES,boundingSphere:se.fromPoints(p),geometryType:Ku.POLYLINES})};var w_=pL;var mZe=new Qn(0),wV={},Zfe=new H,pZe=new Nt(H.WHITE),_Ze=new Qn(!0),gZe=new Qn(yn.DISABLED),yZe=new Qn(new St),xZe=new Qn(Vn.BOTH);function bZe(){this.vertexFormat=void 0,this.positions=void 0,this.width=void 0,this.arcType=void 0,this.granularity=void 0}function TZe(){this.positions=void 0,this.width=void 0,this.arcType=void 0,this.granularity=void 0}function ih(e,t){this._entity=e,this._scene=t,this._entitySubscription=e.definitionChanged.addEventListener(ih.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 bZe,this._groundGeometryOptions=new TZe,this._id=`polyline-${e.id}`,this._clampToGround=!1,this._supportsPolylinesOnTerrain=Yo.supportsPolylinesOnTerrain(t),this._zIndex=0,this._onEntityPropertyChanged(e,"polyline",e.polyline,void 0)}Object.defineProperties(ih.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||!u(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}}});ih.prototype.isOutlineVisible=function(e){return!1};ih.prototype.isFilled=function(e){let t=this._entity,n=this._fillEnabled&&t.isAvailable(e)&&this._showProperty.getValue(e);return y(n,!1)};ih.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=Un.fromDistanceDisplayCondition(o),s={show:i,distanceDisplayCondition:r},a;return this._materialProperty instanceof Nt&&(u(this._materialProperty.color)&&(this._materialProperty.color.isConstant||n)&&(a=this._materialProperty.color.getValue(e,Zfe)),u(a)||(a=H.WHITE),s.color=kt.fromColor(a)),this.clampToGround?new yt({id:t,geometry:new Q0(this._groundGeometryOptions),attributes:s}):(u(this._depthFailMaterialProperty)&&this._depthFailMaterialProperty instanceof Nt&&(u(this._depthFailMaterialProperty.color)&&(this._depthFailMaterialProperty.color.isConstant||n)&&(a=this._depthFailMaterialProperty.color.getValue(e,Zfe)),u(a)||(a=H.WHITE),s.depthFailColor=kt.fromColor(a)),new yt({id:t,geometry:new w_(this._geometryOptions),attributes:s}))};ih.prototype.createOutlineGeometryInstance=function(e){};ih.prototype.isDestroyed=function(){return!1};ih.prototype.destroy=function(){this._entitySubscription(),le(this)};ih.prototype._onEntityPropertyChanged=function(e,t,n,i){if(!(t==="availability"||t==="polyline"))return;let o=this._entity.polyline;if(!u(o)){this._fillEnabled&&(this._fillEnabled=!1,this._geometryChanged.raiseEvent(this));return}let r=o.positions,s=o.show;if(u(s)&&s.isConstant&&!s.getValue(Ve.MINIMUM_VALUE)||!u(r)){this._fillEnabled&&(this._fillEnabled=!1,this._geometryChanged.raiseEvent(this));return}let a=o.zIndex,c=y(o.material,pZe),l=c instanceof Nt;this._materialProperty=c,this._depthFailMaterialProperty=o.depthFailMaterial,this._showProperty=y(s,_Ze),this._shadowsProperty=y(o.shadows,gZe),this._distanceDisplayConditionProperty=y(o.distanceDisplayCondition,yZe),this._classificationTypeProperty=y(o.classificationType,xZe),this._fillEnabled=!0,this._zIndex=y(a,mZe);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(Ve.MINIMUM_VALUE,m.positions);if(!u(x)||x.length<2){this._fillEnabled&&(this._fillEnabled=!1,this._geometryChanged.raiseEvent(this));return}let b;l&&(!u(this._depthFailMaterialProperty)||this._depthFailMaterialProperty instanceof Nt)?b=zr.VERTEX_FORMAT:b=Ws.VERTEX_FORMAT,m.vertexFormat=b,m.positions=x,m.width=u(f)?f.getValue(Ve.MINIMUM_VALUE):void 0,m.arcType=u(d)?d.getValue(Ve.MINIMUM_VALUE):void 0,m.granularity=u(g)?g.getValue(Ve.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=u(p)?p.getValue(Ve.MINIMUM_VALUE):!1,!this._clampToGround&&u(a)&&Dt("Entity polylines must have clampToGround: true when using zIndex. zIndex will be ignored."),this._dynamic=!1,this._geometryChanged.raiseEvent(this)}};ih.prototype.createDynamicUpdater=function(e,t){return new _L(e,t,this)};var CE={positions:void 0,granularity:void 0,height:void 0,ellipsoid:void 0};function _L(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 $fe(e){if(u(e._line))return e._line;let t=e._geometryUpdater._scene.id,n=wV[t],i=e._primitives;!u(n)||n.isDestroyed()?(n=new Ud,wV[t]=n,i.add(n)):i.contains(n)||i.add(n);let o=n.add();return o.id=e._geometryUpdater._entity,e._line=o,o}_L.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(u(this._groundPolylinePrimitive)&&(s.remove(this._groundPolylinePrimitive),this._groundPolylinePrimitive=void 0),t.clampToGround){if(!n.isShowing||!n.isAvailable(e)||!q.getValueOrDefault(i._show,e,!0)||!u(r)||r.length<2)return;let f=t.fillMaterialProperty,d;if(f instanceof Nt)d=new zr;else{let p=qo.getValue(e,f,this._material);d=new Ws({material:p,translucent:p.isTranslucent()}),this._material=p}this._groundPolylinePrimitive=s.add(new pd({geometryInstances:t.createFillGeometryInstance(e),appearance:d,classificationType:t.classificationTypeProperty.getValue(e),asynchronous:!1}),q.getValueOrUndefined(t.zIndex,e)),u(this._line)&&(this._line.show=!1);return}let a=$fe(this);if(!n.isShowing||!n.isAvailable(e)||!q.getValueOrDefault(i._show,e,!0)){a.show=!1;return}if(!u(r)||r.length<2){a.show=!1;return}let c=qt.GEODESIC;c=q.getValueOrDefault(i._arcType,e,c);let l=t._scene.globe;c!==qt.NONE&&u(l)&&(CE.ellipsoid=l.ellipsoid,CE.positions=r,CE.granularity=q.getValueOrUndefined(i._granularity,e),CE.height=Ii.extractHeights(r,l.ellipsoid),c===qt.GEODESIC?r=Ii.generateCartesianArc(CE):r=Ii.generateCartesianRhumbArc(CE)),a.show=!0,a.positions=r.slice(),a.material=qo.getValue(e,t.fillMaterialProperty,a.material),a.width=q.getValueOrDefault(i._width,e,1),a.distanceDisplayCondition=q.getValueOrUndefined(i._distanceDisplayCondition,e,a.distanceDisplayCondition)};_L.prototype.getBoundingSphere=function(e){if(this._geometryUpdater.clampToGround){let t=this._groundPolylinePrimitive;if(u(t)&&t.show&&t.ready){let n=t.getGeometryInstanceAttributes(this._geometryUpdater._entity);if(u(n)&&u(n.boundingSphere))return se.clone(n.boundingSphere,e),ot.DONE}return u(t)&&!t.ready?ot.PENDING:ot.DONE}else{let t=$fe(this);if(t.show&&t.positions.length>0)return se.fromPoints(t.positions,e),ot.DONE}return ot.FAILED};_L.prototype.isDestroyed=function(){return!1};_L.prototype.destroy=function(){let t=this._geometryUpdater._scene.id,n=wV[t];u(n)&&(n.remove(this._line),n.length===0&&(this._primitives.removeAndDestroy(n),delete wV[t])),u(this._groundPolylinePrimitive)&&this._groundPrimitives.remove(this._groundPolylinePrimitive),le(this)};var gL=ih;var AZe=new H,CZe=new St,EZe=new St;function oh(e,t,n,i,o){let r;n instanceof Nt?r=zr:r=Ws,this.orderedGroundPrimitives=e,this.classificationType=t,this.appearanceType=r,this.materialProperty=n,this.updaters=new xt,this.createPrimitive=!0,this.primitive=void 0,this.oldPrimitive=void 0,this.geometry=new xt,this.material=void 0,this.updatersWithAttributes=new xt,this.attributes=new xt,this.invalidated=!1,this.removeMaterialSubscription=n.definitionChanged.addEventListener(oh.prototype.onMaterialChanged,this),this.subscriptions=new xt,this.showsUpdated=new xt,this.zIndex=i,this._asynchronous=o}oh.prototype.onMaterialChanged=function(){this.invalidated=!0};oh.prototype.isMaterial=function(e){let t=this.materialProperty,n=e.fillMaterialProperty;return n===t||n instanceof Nt&&t instanceof Nt?!0:u(t)&&t.equals(n)};oh.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};oh.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 u(n)&&(n(),this.subscriptions.remove(t)),!0}return!1};oh.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)u(n)&&(u(this.oldPrimitive)?i.remove(n):this.oldPrimitive=n),n=new pd({show:!1,asynchronous:this._asynchronous,geometryInstances:o.slice(),appearance:new this.appearanceType,classificationType:this.classificationType}),this.appearanceType===Ws&&(this.material=qo.getValue(e,this.materialProperty,this.material),n.appearance.material=this.material),i.add(n,this.zIndex),t=!1;else{u(n)&&(i.remove(n),n=void 0);let a=this.oldPrimitive;u(a)&&(i.remove(a),this.oldPrimitive=void 0)}this.attributes.removeAll(),this.primitive=n,this.createPrimitive=!1}else if(u(n)&&n.ready){n.show=!0,u(this.oldPrimitive)&&(i.remove(this.oldPrimitive),this.oldPrimitive=void 0),this.appearanceType===Ws&&(this.material=qo.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],l=c.entity,f=this.geometry.get(c.id),d=this.attributes.get(f.id.id);if(u(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,AZe);H.equals(d._lastColor,b)||(d._lastColor=H.clone(b,d._lastColor),d.color=kt.toValue(b,d.color))}let p=l.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,EZe,CZe);St.equals(x,d._lastDistanceDisplayCondition)||(d._lastDistanceDisplayCondition=St.clone(x,d._lastDistanceDisplayCondition),d.distanceDisplayCondition=Un.toValue(x,d.distanceDisplayCondition))}}this.updateShows(n)}else u(n)&&!n.ready&&(t=!1);return t};oh.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);u(a)||(a=e.getGeometryInstanceAttributes(s.id),this.attributes.set(s.id.id,a));let c=r.isShowing,l=a.show[0]===1;c!==l&&(a.show=gn.toValue(c,a.show),s.attributes.show.value[0]=a.show[0])}this.showsUpdated.removeAll()};oh.prototype.contains=function(e){return this.updaters.contains(e.id)};oh.prototype.getBoundingSphere=function(e,t){let n=this.primitive;if(!n.ready)return ot.PENDING;let i=n.getGeometryInstanceAttributes(e.entity);return!u(i)||!u(i.boundingSphere)||u(i.show)&&i.show[0]===0?ot.FAILED:(i.boundingSphere.clone(t),ot.DONE)};oh.prototype.destroy=function(){let e=this.primitive,t=this.orderedGroundPrimitives;u(e)&&t.remove(e);let n=this.oldPrimitive;u(n)&&t.remove(n),this.removeMaterialSubscription()};function EE(e,t,n){this._items=[],this._orderedGroundPrimitives=e,this._classificationType=t,this._asynchronous=y(n,!0)}EE.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 oh(this._orderedGroundPrimitives,this._classificationType,t.fillMaterialProperty,r,this._asynchronous);s.add(e,t,o),n.push(s)};EE.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}}};EE.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};EE.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 ot.FAILED};EE.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 yL=EE;var SZe=[];function Qfe(e,t){let n=e._batches,i=n.length;for(let o=0;o<i;o++)n[o].remove(t)}function Jfe(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;u(n.depthFailMaterialProperty)&&(o=n.depthFailMaterialProperty instanceof Nt?1:2);let r;u(i)&&(r=i+o*yn.NUMBER_OF_SHADOW_MODES),n.fillEnabled&&(n.fillMaterialProperty instanceof Nt?e._colorBatches[r].add(t,n):e._materialBatches[r].add(t,n))}function gm(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 xt,this._removedObjects=new xt,this._changedObjects=new xt;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 Rf(n,zr,void 0,!1,o),this._materialBatches[o]=new Mf(n,Ws,void 0,!1,o),this._colorBatches[o+r]=new Rf(n,zr,zr,!1,o),this._materialBatches[o+r]=new Mf(n,Ws,zr,!1,o),this._colorBatches[o+r*2]=new Rf(n,zr,Ws,!1,o),this._materialBatches[o+r*2]=new Mf(n,Ws,Ws,!1,o);this._dynamicBatch=new Cb(n,i);let s=Vn.NUMBER_OF_CLASSIFICATION_TYPES;for(this._groundBatches=new Array(s),o=0;o<s;++o)this._groundBatches[o]=new yL(i,o);this._batches=this._colorBatches.concat(this._materialBatches,this._dynamicBatch,this._groundBatches),this._subscriptions=new xt,this._updaters=new xt,this._entityCollection=t,t.collectionChanged.addEventListener(gm.prototype._onCollectionChanged,this),this._onCollectionChanged(t,t.values,SZe)}gm.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,l,f;for(a=s.length-1;a>-1;a--)c=s[a],l=c.id,f=this._updaters.get(l),f.entity===c?(Qfe(this,f),Jfe(this,e,f)):(o.push(c),n.push(c));for(a=o.length-1;a>-1;a--)c=o[a],l=c.id,f=this._updaters.get(l),Qfe(this,f),f.destroy(),this._updaters.remove(l),this._subscriptions.get(l)(),this._subscriptions.remove(l);for(a=n.length-1;a>-1;a--)c=n[a],l=c.id,f=new gL(c,this._scene),this._updaters.set(l,f),Jfe(this,e,f),this._subscriptions.set(l,f.geometryChanged.addEventListener(gm._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 wZe=[],vZe=new se;gm.prototype.getBoundingSphere=function(e,t){let n=wZe,i=vZe,o=0,r=ot.DONE,s=this._batches,a=s.length,c=this._updaters.get(e.id);for(let l=0;l<a;l++){if(r=s[l].getBoundingSphere(c,i),r===ot.PENDING)return ot.PENDING;r===ot.DONE&&(n[o]=se.clone(i,n[o]),o++)}return o===0?ot.FAILED:(n.length=o,se.fromBoundingSpheres(n,t),ot.DONE)};gm.prototype.isDestroyed=function(){return!1};gm.prototype.destroy=function(){this._entityCollection.collectionChanged.removeEventListener(gm.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(),le(this)};gm._onGeometryChanged=function(e){let t=this._removedObjects,n=this._changedObjects,i=e.entity,o=i.id;!u(t.get(o))&&!u(n.get(o))&&n.set(o,i)};gm.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 xL=gm;function Ff(e){Ic.initializeTerrainHeights(),pd.initializeTerrainHeights();let t=e.scene,n=e.dataSourceCollection;this._eventHelper=new Or,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,Ff.defaultVisualizersCallback);let i=!1,o=new Rl,r=new Rl;n.length>0&&(t.primitives.add(o),t.groundPrimitives.add(r),i=!0),this._primitives=o,this._groundPrimitives=r;for(let l=0,f=n.length;l<f;l++)this._onDataSourceAdded(n,n.get(l));let s=new bM;this._onDataSourceAdded(void 0,s),this._defaultDataSource=s;let a,c;if(!i){let l=this,f=function(){t.primitives.add(o),t.groundPrimitives.add(r),a(),c(),l._removeDefaultDataSourceListener=void 0,l._removeDataSourceCollectionListener=void 0};a=s.entities.collectionChanged.addEventListener(f),c=n.dataSourceAdded.addEventListener(f)}this._removeDefaultDataSourceListener=a,this._removeDataSourceCollectionListener=c,this._ready=!1}Ff.defaultVisualizersCallback=function(e,t,n){let i=n.entities;return[new cI(t,i),new aL(e,i,n._primitives,n._groundPrimitives),new cL(t,i),new uL(e,i),new rM(e,i),new mL(t,i),new dL(e,i),new xL(e,i,n._primitives,n._groundPrimitives)]};Object.defineProperties(Ff.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}}});Ff.prototype.isDestroyed=function(){return!1};Ff.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),u(this._removeDefaultDataSourceListener)?(this._removeDefaultDataSourceListener(),this._removeDataSourceCollectionListener()):(this._scene.primitives.remove(this._primitives),this._scene.groundPrimitives.remove(this._groundPrimitives)),le(this)};Ff.prototype.update=function(e){if(!li.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(u(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,t};Ff.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;u(r)&&e.creditDisplay.addCreditToNextFrame(r);let s=o._resourceCredits;if(u(s)){let a=s.length;for(let c=0;c<a;c++)e.creditDisplay.addCreditToNextFrame(s[c])}}};var DZe=[],IZe=new se;Ff.prototype.getBoundingSphere=function(e,t,n){if(!this._ready)return ot.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(!u(r))return ot.FAILED;let s=DZe,a=IZe,c=0,l=ot.DONE,f=r._visualizers,d=f.length;for(i=0;i<d;i++){let p=f[i];if(u(p.getBoundingSphere)){if(l=f[i].getBoundingSphere(e,a),!t&&l===ot.PENDING)return ot.PENDING;l===ot.DONE&&(s[c]=se.clone(a,s[c]),c++)}}return c===0?ot.FAILED:(s.length=c,se.fromBoundingSpheres(s,n),ot.DONE)};Ff.prototype._onDataSourceAdded=function(e,t){let n=this._scene,i=this._primitives,o=this._groundPrimitives,r=i.add(new Rl),s=o.add(new NM);t._primitives=r,t._groundPrimitives=s;let a=t.clustering;a._initialize(n),r.add(a),t._visualizers=this._visualizersCallback(n,a,t)};Ff.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 l=0;l<c;l++)a[l].destroy();n.remove(o),i.remove(r),t._visualizers=void 0};Ff.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 bL=Ff;function ij(e,t,n){this.heading=y(e,0),this.pitch=y(t,0),this.range=y(n,0)}ij.clone=function(e,t){if(u(e))return u(t)||(t=new ij),t.heading=e.heading,t.pitch=e.pitch,t.range=e.range,t};var Bf=ij;var ede=new Q,tde=new Q,nde=new Q,PZe=new F,vV=new h,ide=new h,oj=new h,rj=new h,ode=new h,rde=new h,SE=new J,OZe=1.25;function RZe(e,t,n,i,o,r,s){let a=e.scene.mode,c=o.getValue(r,e._lastCartesian);if(u(c)){let l=!1,f=!1,d,p,g;if(a===te.SCENE3D){J.addSeconds(r,.001,SE);let A=o.getValue(SE,vV);if(u(A)||(J.addSeconds(r,-.001,SE),A=o.getValue(SE,vV),f=!0),u(A)){let C=Rt.computeFixedToIcrfMatrix(r,ede),S=Rt.computeFixedToIcrfMatrix(SE,tde),w;!u(C)||!u(S)?(w=Rt.computeTemeToPseudoFixedMatrix(r,nde),C=Q.transpose(w,ede),S=Rt.computeTemeToPseudoFixedMatrix(SE,tde),Q.transpose(S,S)):w=Q.transpose(C,nde);let D=Q.multiplyByVector(C,c,ode),O=Q.multiplyByVector(S,A,rde);h.subtract(D,O,rj);let R=h.magnitude(rj)*1e3,L=P.GRAVITATIONALPARAMETER,N=-L/(R*R-2*L/h.magnitude(D));N<0||N>OZe*s.maximumRadius?(d=ide,h.normalize(c,d),h.negate(d,d),g=h.clone(h.UNIT_Z,oj),p=h.cross(g,d,vV),h.magnitude(p)>P.EPSILON7&&(h.normalize(d,d),h.normalize(p,p),g=h.cross(d,p,oj),h.normalize(g,g),l=!0)):h.equalsEpsilon(c,A,P.EPSILON7)||(g=ide,h.normalize(D,g),h.normalize(O,O),p=h.cross(g,O,oj),f&&(p=h.multiplyByScalar(p,-1,p)),h.equalsEpsilon(p,h.ZERO,P.EPSILON7)||(d=h.cross(p,g,vV),Q.multiplyByVector(w,d,d),Q.multiplyByVector(w,p,p),Q.multiplyByVector(w,g,g),h.normalize(d,d),h.normalize(p,p),h.normalize(g,g),l=!0))}}u(e.boundingSphere)&&(c=e.boundingSphere.center);let m,x,b;i&&(m=h.clone(t.position,rj),x=h.clone(t.direction,ode),b=h.clone(t.up,rde));let T=PZe;l?(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):Rt.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 l=a===te.SCENE2D||h.equals(e._offset3D,h.ZERO)?void 0:e._offset3D;t.lookAtTransform(t.transform,l)}}function TL(e,t,n){this.entity=e,this.scene=t,this.ellipsoid=y(n,ie.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(TL,{defaultOffset3D:{get:function(){return this._defaultOffset3D},set:function(e){this._defaultOffset3D=h.clone(e,new h)}}});TL.defaultOffset3D=new h(-14e3,3500,3500);var DV=new Bf,MZe=new h;TL.prototype.update=function(e,t){let n=this.scene,i=this.ellipsoid,o=n.mode;if(o===te.MORPHING)return;let r=this.entity,s=r.position;if(!u(s))return;let a=r!==this._lastEntity,c=o!==this._mode,l=n.camera,f=a||c,d=!0;if(a){let p=r.viewFrom,g=u(p);if(!g&&u(t)){DV.pitch=-P.PI_OVER_FOUR,DV.range=0;let m=s.getValue(e,MZe);if(u(m)){let x=2-1/Math.max(1,h.magnitude(m)/i.maximumRadius);DV.pitch*=x}l.viewBoundingSphere(t,DV),this.boundingSphere=t,f=!1,d=!1}else(!g||!u(p.getValue(e,this._offset3D)))&&h.clone(TL._defaultOffset3D,this._offset3D)}else!c&&this._mode!==te.SCENE2D&&h.clone(l.position,this._offset3D);this._lastEntity=r,this._mode=o,RZe(this,l,f,d,s,e,i)};var AL=TL;function EL(){this._cache={}}EL.prototype.fromColor=function(e,t){return IV(void 0,void 0,e,t,this._cache)};EL.prototype.fromUrl=function(e,t,n){return IV(e,void 0,t,n,this._cache)};EL.prototype.fromMakiIconId=function(e,t,n){return IV(Zt(`Assets/Textures/maki/${encodeURIComponent(e)}.png`),void 0,t,n,this._cache)};EL.prototype.fromText=function(e,t,n){return IV(void 0,e,t,n,this._cache)};var LZe=new H;function NZe(e,t,n){e.save(),e.scale(n/24,n/24),e.fillStyle=t.toCssColorString(),e.strokeStyle=t.brighten(.6,LZe).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 sde(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 CL=new Array(4);function IV(e,t,n,i,o){CL[0]=e,CL[1]=t,CL[2]=n,CL[3]=i;let r=JSON.stringify(CL),s=o[r];if(u(s))return s;let a=document.createElement("canvas");a.width=i,a.height=i;let c=a.getContext("2d");if(NZe(c,n,i),u(e)){let f=ve.createIfNeeded(e).fetchImage().then(function(d){return sde(c,d,i),o[r]=a,a});return o[r]=f,f}else if(u(t)){let l=Yx(t,{font:`bold ${i}px sans-serif`});sde(c,l,i)}return o[r]=a,a}var v_=EL;var lde=ro(cde(),1);function OV(e){return h.fromDegrees(e[0],e[1],e[2])}var sj={"urn:ogc:def:crs:OGC:1.3:CRS84":OV,"EPSG:4326":OV,"urn:ogc:def:crs:EPSG::4326":OV},ude={},fde={},aj=48,cj,lj=H.ROYALBLUE,uj=H.YELLOW,fj=2,dj=H.fromBytes(255,255,0,100),hj=!1,FZe={small:24,medium:48,large:64},BZe=["title","description","marker-size","marker-symbol","marker-color","stroke","stroke-opacity","stroke-width","fill","fill-opacity"];function dde(e,t){let n="";for(let i in e)if(e.hasOwnProperty(i)){if(i===t||BZe.indexOf(i)!==-1)continue;let o=e[i];u(o)&&(typeof o=="object"?n+=`<tr><th>${i}</th><td>${dde(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 kZe(e,t,n){let i;return function(o,r){return u(i)||(i=e(t,n)),i}}function UZe(e,t){return new xd(kZe(dde,e,t),!0)}function RV(e,t,n){let i=e.id;if(!u(i)||e.type!=="Feature")i=Wn();else{let s=2,a=i;for(;u(t.getById(a));)a=`${i}_${s}`,s++;i=a}let o=t.getOrCreateEntity(i),r=e.properties;if(u(r)){o.properties=r;let s,a=r.title;if(u(a))o.name=a,s="title";else{let l=Number.MAX_VALUE;for(let f in r)if(r.hasOwnProperty(f)&&r[f]){let d=f.toLowerCase();if(l>1&&d==="title"){l=1,s=f;break}else l>2&&d==="name"?(l=2,s=f):l>3&&/title/i.test(f)?(l=3,s=f):l>4&&/name/i.test(f)&&(l=4,s=f)}u(s)&&(o.name=r[s])}let c=r.description;c!==null&&(o.description=u(c)?new Qn(c):n(r,s))}return o}function mj(e,t){let n=new Array(e.length);for(let i=0;i<e.length;i++)n[i]=t(e[i]);return n}var hde={Feature:pde,FeatureCollection:VZe,GeometryCollection:_de,LineString:Tde,MultiLineString:Ade,MultiPoint:xde,MultiPolygon:Sde,Point:yde,Polygon:Ede,Topology:wde},mde={GeometryCollection:_de,LineString:Tde,MultiLineString:Ade,MultiPoint:xde,MultiPolygon:Sde,Point:yde,Polygon:Ede,Topology:wde};function pde(e,t,n,i,o){if(t.geometry===null){RV(t,e._entityCollection,o.describe);return}if(!u(t.geometry))throw new ue("feature.geometry is required.");let r=t.geometry.type,s=mde[r];if(!u(s))throw new ue(`Unknown geometry type: ${r}`);s(e,t,t.geometry,i,o)}function VZe(e,t,n,i,o){let r=t.features;for(let s=0,a=r.length;s<a;s++)pde(e,r[s],void 0,i,o)}function _de(e,t,n,i,o){let r=n.geometries;for(let s=0,a=r.length;s<a;s++){let c=r[s],l=c.type,f=mde[l];if(!u(f))throw new ue(`Unknown geometry type: ${l}`);f(e,t,c,i,o)}}function gde(e,t,n,i,o){let r=o.markerSymbol,s=o.markerColor,a=o.markerSize,c=t.properties;if(u(c)){let g=c["marker-color"];u(g)&&(s=H.fromCssColorString(g)),a=y(FZe[c["marker-size"]],a);let m=c["marker-symbol"];u(m)&&(r=m)}let l;u(r)?r.length===1?l=e._pinBuilder.fromText(r.toUpperCase(),s,a):l=e._pinBuilder.fromMakiIconId(r,s,a):l=e._pinBuilder.fromColor(s,a);let f=new Wa;f.verticalOrigin=new Qn(Dn.BOTTOM),i.length===2&&o.clampToGround&&(f.heightReference=Ge.CLAMP_TO_GROUND);let d=RV(t,e._entityCollection,o.describe);d.billboard=f,d.position=new Oc(n(i));let p=Promise.resolve(l).then(function(g){f.image=new Qn(g)}).catch(function(){f.image=new Qn(e._pinBuilder.fromColor(s,a))});e._promises.push(p)}function yde(e,t,n,i,o){gde(e,t,i,n.coordinates,o)}function xde(e,t,n,i,o){let r=n.coordinates;for(let s=0;s<r.length;s++)gde(e,t,i,r[s],o)}function bde(e,t,n,i,o){let r=o.strokeMaterialProperty,s=o.strokeWidthProperty,a=t.properties;if(u(a)){let f=a["stroke-width"];u(f)&&(s=new Qn(f));let d,p=a.stroke;u(p)&&(d=H.fromCssColorString(p));let g=a["stroke-opacity"];u(g)&&g!==1&&(u(d)||(d=r.color.getValue().clone()),d.alpha=g),u(d)&&(r=new Nt(d))}let c=RV(t,e._entityCollection,o.describe),l=new Ya;c.polyline=l,l.clampToGround=o.clampToGround,l.material=r,l.width=s,l.positions=new Qn(mj(i,n)),l.arcType=qt.RHUMB}function Tde(e,t,n,i,o){bde(e,t,i,n.coordinates,o)}function Ade(e,t,n,i,o){let r=n.coordinates;for(let s=0;s<r.length;s++)bde(e,t,i,r[s],o)}function Cde(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(u(c)){let g=c["stroke-width"];u(g)&&(a=new Qn(g));let m,x=c.stroke;u(x)&&(m=H.fromCssColorString(x));let b=c["stroke-opacity"];u(b)&&b!==1&&(u(m)||(m=r.getValue().clone()),m.alpha=b),u(m)&&(r=new Qn(m));let T,A=c.fill,C=s.color.getValue();u(A)&&(T=H.fromCssColorString(A),T.alpha=C.alpha),b=c["fill-opacity"],u(b)&&b!==C.alpha&&(u(T)||(T=C.clone()),T.alpha=b),u(T)&&(s=new Nt(T))}let l=new gd;l.outline=new Qn(!0),l.outlineColor=r,l.outlineWidth=a,l.material=s,l.arcType=qt.RHUMB;let f=[];for(let g=1,m=i.length;g<m;g++)f.push(new ga(mj(i[g],n)));let d=i[0];l.hierarchy=new Qn(new ga(mj(d,n),f)),d[0].length>2?l.perPositionHeight=new Qn(!0):o.clampToGround||(l.height=0);let p=RV(t,e._entityCollection,o.describe);p.polygon=l}function Ede(e,t,n,i,o){Cde(e,t,i,n.coordinates,o)}function Sde(e,t,n,i,o){let r=n.coordinates;for(let s=0;s<r.length;s++)Cde(e,t,i,r[s],o)}function wde(e,t,n,i,o){for(let r in n.objects)if(n.objects.hasOwnProperty(r)){let s=lde.feature(n,n.objects[r]),a=hde[s.type];a(e,s,s,i,o)}}function Dy(e){this._name=e,this._changed=new pe,this._error=new pe,this._isLoading=!1,this._loading=new pe,this._entityCollection=new Ms(this),this._promises=[],this._pinBuilder=new v_,this._entityCluster=new hu,this._credit=void 0,this._resourceCredits=[]}Dy.load=function(e,t){return new Dy().load(e,t)};Object.defineProperties(Dy,{markerSize:{get:function(){return aj},set:function(e){aj=e}},markerSymbol:{get:function(){return cj},set:function(e){cj=e}},markerColor:{get:function(){return lj},set:function(e){lj=e}},stroke:{get:function(){return uj},set:function(e){uj=e}},strokeWidth:{get:function(){return fj},set:function(e){fj=e}},fill:{get:function(){return dj},set:function(e){dj=e}},clampToGround:{get:function(){return hj},set:function(e){hj=e}},crsNames:{get:function(){return sj}},crsLinkHrefs:{get:function(){return ude}},crsLinkTypes:{get:function(){return fde}}});Object.defineProperties(Dy.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}}});Dy.prototype.load=function(e,t){return vde(this,e,t,!0)};Dy.prototype.process=function(e,t){return vde(this,e,t,!1)};function vde(e,t,n,i){Lr.setLoading(e,!0),n=y(n,y.EMPTY_OBJECT);let o=n.credit;typeof o=="string"&&(o=new bt(o)),e._credit=o;let r=t,s=n.sourceUri;if(typeof t=="string"||t instanceof ve){t=ve.createIfNeeded(t),r=t.fetchJson(),s=y(s,t.getUrlComponent());let a=e._resourceCredits,c=t.credits;if(u(c)){let l=c.length;for(let f=0;f<l;f++)a.push(c[f])}}return n={describe:y(n.describe,UZe),markerSize:y(n.markerSize,aj),markerSymbol:y(n.markerSymbol,cj),markerColor:y(n.markerColor,lj),strokeWidthProperty:new Qn(y(n.strokeWidth,fj)),strokeMaterialProperty:new Nt(y(n.stroke,uj)),fillMaterialProperty:new Nt(y(n.fill,dj)),clampToGround:y(n.clampToGround,hj)},Promise.resolve(r).then(function(a){return zZe(e,a,n,s,i)}).catch(function(a){throw Lr.setLoading(e,!1),e._error.raiseEvent(e,a),a})}Dy.prototype.update=function(e){return!0};function zZe(e,t,n,i,o){let r;u(i)&&(r=p_(i)),u(r)&&e._name!==r&&(e._name=r,e._changed.raiseEvent(e));let s=hde[t.type];if(!u(s))throw new ue(`Unsupported GeoJSON object type: ${t.type}`);let a=t.crs,c=a!==null?OV:null;if(u(a)){if(!u(a.properties))throw new ue("crs.properties is undefined.");let l=a.properties;if(a.type==="name"){if(c=sj[l.name],!u(c))throw new ue(`Unknown crs name: ${l.name}`)}else if(a.type==="link"){let f=ude[l.href];if(u(f)||(f=fde[l.type]),!u(f))throw new ue(`Unable to resolve crs link: ${JSON.stringify(l)}`);c=f(l)}else if(a.type==="EPSG"){if(c=sj[`EPSG:${l.code}`],!u(c))throw new ue(`Unknown crs EPSG code: ${l.code}`)}else throw new ue(`Unknown crs type: ${a.type}`)}return Promise.resolve(c).then(function(l){return o&&e._entityCollection.removeAll(),l!==null&&s(e,t,t,l,n),Promise.all(e._promises).then(function(){return e._promises.length=0,Lr.setLoading(e,!1),e})})}var SL=Dy;var She=ro(Mj(),1);var whe;typeof DOMParser<"u"&&(whe=new DOMParser);var UQe=new She.default({stripPrefix:!1,email:!1,replaceFn:function(e,t){return t.urlMatchType==="scheme"||t.urlMatchType==="www"}}),JV=32,ghe=2414016,yhe=1,xhe=16093e3,bhe=.1,VQe=[null,void 0,"http://www.topografix.com/GPX/1/1"],So={gpx:VQe};function zQe(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 Lj(e,t){let n=DL(e,"id");return n=u(n)?n:Wn(),t.getOrCreateEntity(n)}function Nj(e){let t=The(e,"lon"),n=The(e,"lat"),i=wL(e,"ele",So.gpx);return h.fromDegrees(t,n,i)}function The(e,t){if(!u(e))return;let n=e.getAttribute(t);if(n!==null){let i=parseFloat(n);return isNaN(i)?void 0:i}}function DL(e,t){if(!u(e))return;let n=e.getAttribute(t);return n!==null?n:void 0}function Ry(e,t,n){if(!u(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 Fj(e,t,n){if(!u(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 wL(e,t,n){let i=Ry(e,t,n);if(u(i)){let o=parseFloat(i.textContent);return isNaN(o)?void 0:o}}function Ll(e,t,n){let i=Ry(e,t,n);if(u(i))return i.textContent.trim()}function vhe(e){let t=new Wa;return t.width=JV,t.height=JV,t.scaleByDistance=new Pt(ghe,yhe,xhe,bhe),t.pixelOffsetScaleByDistance=new Pt(ghe,yhe,xhe,bhe),t.verticalOrigin=new Qn(Dn.BOTTOM),t.image=e,t}function HQe(){let e=new _d;return e.translucencyByDistance=new Pt(3e6,1,5e6,0),e.pixelOffset=new z(17,0),e.horizontalOrigin=mi.LEFT,e.font="16px sans-serif",e.style=Vo.FILL_AND_OUTLINE,e}function Dhe(e){let t=new Ya;return t.width=4,t.material=new _y,t.material.color=u(e)?e:H.RED,t.material.outlineWidth=2,t.material.outlineColor=H.BLACK,t}var Ahe={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"}},vL;typeof document<"u"&&(vL=document.createElement("div"));function Bj(e,t){let n,i="",o=Object.keys(Ahe),r=o.length;for(n=0;n<r;n++){let f=o[n],d=Ahe[f];d.value=y(Ll(e,d.tag,So.gpx),""),u(d.value)&&d.value!==""&&(i=`${i}<p>${d.text}: ${d.value}</p>`)}if(!u(i)||i==="")return;i=UQe.link(i),vL.innerHTML=i;let s=vL.querySelectorAll("a");for(n=0;n<s.length;n++)s[n].setAttribute("target","_blank");let a=H.WHITE,c=H.BLACK,l='<div class="cesium-infoBox-description-lighter" style="';return l+="overflow:auto;",l+="word-wrap:break-word;",l+=`background-color:${a.toCssColorString()};`,l+=`color:${c.toCssColorString()};`,l+='">',l+=`${vL.innerHTML}</div>`,vL.innerHTML="",l}function Ihe(e,t,n,i){let o=Nj(t),r=Lj(t,n);r.position=o;let s=u(i.waypointImage)?i.waypointImage:e._pinBuilder.fromMakiIconId("marker",H.RED,JV);r.billboard=vhe(s);let a=Ll(t,"name",So.gpx);r.name=a,r.label=HQe(),r.label.text=a,r.description=Bj(t,r),i.clampToGround&&(r.billboard.heightReference=Ge.CLAMP_TO_GROUND,r.label.heightReference=Ge.CLAMP_TO_GROUND)}function GQe(e,t,n,i){let o=Lj(t,n);o.description=Bj(t,o);let r=Fj(t,"rtept",So.gpx),s=new Array(r.length);for(let a=0;a<r.length;a++)Ihe(e,r[a],n,i),s[a]=Nj(r[a]);o.polyline=Dhe(i.routeColor),i.clampToGround&&(o.polyline.clampToGround=!0),o.polyline.positions=s}function WQe(e,t,n,i){let o=Lj(t,n);o.description=Bj(t,o);let r=Fj(t,"trkseg",So.gpx),s=[],a=[],c,l=!0,f=new Js;for(let d=0;d<r.length;d++)c=jQe(r[d]),s=s.concat(c.positions),c.times.length>0?(a=a.concat(c.times),f.addSamples(a,s),l=l&&!0):l=!1;if(l){let d=u(i.waypointImage)?i.waypointImage:e._pinBuilder.fromMakiIconId("marker",H.RED,JV);o.billboard=vhe(d),o.position=f,i.clampToGround&&(o.billboard.heightReference=Ge.CLAMP_TO_GROUND),o.availability=new Mr,o.availability.addInterval(new bn({start:a[0],stop:a[a.length-1]}))}o.polyline=Dhe(i.trackColor),o.polyline.positions=s,i.clampToGround&&(o.polyline.clampToGround=!0)}function jQe(e){let t={positions:[],times:[]},n=Fj(e,"trkpt",So.gpx),i;for(let o=0;o<n.length;o++){let r=Nj(n[o]);t.positions.push(r),i=Ll(n[o],"time",So.gpx),u(i)&&t.times.push(J.fromIso8601(i))}return t}function qQe(e){let t=Ry(e,"metadata",So.gpx);if(u(t)){let n={name:Ll(t,"name",So.gpx),desc:Ll(t,"desc",So.gpx),author:YQe(t),copyright:KQe(t),link:Phe(t),time:Ll(t,"time",So.gpx),keywords:Ll(t,"keywords",So.gpx),bounds:ZQe(t)};if(u(n.name)||u(n.desc)||u(n.author)||u(n.copyright)||u(n.link)||u(n.time)||u(n.keywords)||u(n.bounds))return n}}function YQe(e){let t=Ry(e,"author",So.gpx);if(u(t)){let n={name:Ll(t,"name",So.gpx),email:XQe(t),link:Phe(t)};if(u(n.name)||u(n.email)||u(n.link))return n}}function XQe(e){let t=Ry(e,"email",So.gpx);if(u(t)){let n=Ll(t,"id",So.gpx),i=Ll(t,"domain",So.gpx);return`${n}@${i}`}}function Phe(e){let t=Ry(e,"link",So.gpx);if(u(t)){let n={href:DL(t,"href"),text:Ll(t,"text",So.gpx),mimeType:Ll(t,"type",So.gpx)};if(u(n.href)||u(n.text)||u(n.mimeType))return n}}function KQe(e){let t=Ry(e,"copyright",So.gpx);if(u(t)){let n={author:DL(t,"author"),year:Ll(t,"year",So.gpx),license:Ll(t,"license",So.gpx)};if(u(n.author)||u(n.year)||u(n.license))return n}}function ZQe(e){let t=Ry(e,"bounds",So.gpx);if(u(t)){let n={minLat:wL(t,"minlat",So.gpx),maxLat:wL(t,"maxlat",So.gpx),minLon:wL(t,"minlon",So.gpx),maxLon:wL(t,"maxlon",So.gpx)};if(u(n.minLat)||u(n.maxLat)||u(n.minLon)||u(n.maxLon))return n}}var Che={wpt:Ihe,rte:GQe,trk:WQe};function $Qe(e,t,n,i){let o=Object.keys(Che),r=o.length;for(let s=0;s<r;s++){let a=o[s],c=Che[a],l=t.childNodes,f=l.length;for(let d=0;d<f;d++){let p=l[d];p.localName===a&&So.gpx.indexOf(p.namespaceURI)!==-1&&c(e,p,n,i)}}}function Ehe(e,t,n){let i=e._entityCollection;i.removeAll();let o=t.documentElement,r=DL(o,"version"),s=DL(o,"creator"),a,c=qQe(o);u(c)&&(a=c.name),o.localName==="gpx"?$Qe(e,o,i,n):console.log(`GPX - Unsupported node: ${o.localName}`);let l,f=i.computeAvailability(),d=f.start,p=f.stop,g=J.equals(d,Ve.MINIMUM_VALUE),m=J.equals(p,Ve.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)),l=new Kd,l.startTime=d,l.stopTime=p,l.currentTime=J.clone(d),l.clockRange=Fr.LOOP_STOP,l.clockStep=ho.SYSTEM_CLOCK_MULTIPLIER,l.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),QQe(e._metadata,c)&&(e._metadata=c,x=!0),e._version!==r&&(e._version=r,x=!0),l!==e._clock&&(x=!0,e._clock=l),x&&e._changed.raiseEvent(e),Lr.setLoading(e,!1),e}function QQe(e,t){return!u(e)&&!u(t)?!1:u(e)&&u(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 JQe(e,t,n,i){i=y(i,y.EMPTY_OBJECT);let o=n;if(typeof n=="string"||n instanceof ve){n=ve.createIfNeeded(n),o=n.fetchBlob();let r=e._resourceCredits,s=n.credits;if(u(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?zQe(r).then(function(s){let a,c;try{a=whe.parseFromString(s,"application/xml")}catch(l){c=l.toString()}if(u(c)||a.body||a.documentElement.tagName==="parsererror"){let l=u(c)?c:a.documentElement.firstChild.nodeValue;throw l||(l=a.body.innerText),new ue(l)}return Ehe(e,a,i)}):Ehe(e,r,i)}).catch(function(r){return e._error.raiseEvent(e,r),console.log(r),Promise.reject(r)})}function RE(){this._changed=new pe,this._error=new pe,this._loading=new pe,this._clock=void 0,this._entityCollection=new Ms(this),this._entityCluster=new hu,this._name=void 0,this._version=void 0,this._creator=void 0,this._metadata=void 0,this._isLoading=!1,this._pinBuilder=new v_}RE.load=function(e,t){return new RE().load(e,t)};Object.defineProperties(RE.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}}});RE.prototype.update=function(e){return!0};RE.prototype.load=function(e,t){if(!u(e))throw new de("data is required.");t=y(t,y.EMPTY_OBJECT),Lr.setLoading(this,!0);let n=this._name,i=this;return JQe(this,this._entityCollection,e,t).then(function(){let o,r=i._entityCollection.computeAvailability(),s=r.start,a=r.stop,c=J.equals(s,Ve.MINIMUM_VALUE),l=J.equals(a,Ve.MAXIMUM_VALUE);if(!c||!l){let d;c&&(d=new Date,d.setHours(0,0,0,0),s=J.fromDate(d)),l&&(d=new Date,d.setHours(24,0,0,0),a=J.fromDate(d)),o=new Kd,o.startTime=s,o.stopTime=a,o.currentTime=J.clone(s),o.clockRange=Fr.LOOP_STOP,o.clockStep=ho.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),Lr.setLoading(i,!1),i}).catch(function(o){return Lr.setLoading(i,!1),i._error.raiseEvent(i,o),console.log(o),Promise.reject(o)})};var IL=RE;function eJe(e,t){this.position=e,this.headingPitchRoll=t}var PL=eJe;var ope=ro(Mj(),1),WL=ro(Yl(),1);function sz(e){return az(e.map(([t,n])=>new Array(t).fill(n,0,t)))}function az(e){return e.reduce((t,n)=>t.concat(Array.isArray(n)?az(n):n),[])}var Ohe=[0,1,2,3].concat(...sz([[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 cr(){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,l=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>l&&(g=l,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=l-1;o.bl_count[g]===0;)g--;o.bl_count[g]--,o.bl_count[g+1]+=2,o.bl_count[l]--,b-=2}while(b>0);for(g=l;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,l,f,d;for(l=1;l<=15;l++)a[l]=c=c+s[l-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,l,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),l=o.heap[1],o.heap[--o.heap_max]=c,o.heap[--o.heap_max]=l,r[d*2]=r[c*2]+r[l*2],o.depth[d]=Math.max(o.depth[c],o.depth[l])+1,r[c*2+1]=r[l*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)}}cr._length_code=[0,1,2,3,4,5,6,7].concat(...sz([[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]]));cr.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];cr.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];cr.d_code=function(e){return e<256?Ohe[e]:Ohe[256+(e>>>7)]};cr.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];cr.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];cr.extra_blbits=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7];cr.bl_order=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15];function Ea(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 tJe=[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],nJe=sz([[144,8],[112,9],[24,7],[8,8]]);Ea.static_ltree=az(tJe.map((e,t)=>[e,nJe[t]]));var iJe=[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],oJe=sz([[30,5]]);Ea.static_dtree=az(iJe.map((e,t)=>[e,oJe[t]]));Ea.static_l_desc=new Ea(Ea.static_ltree,cr.extra_lbits,256+1,286,15);Ea.static_d_desc=new Ea(Ea.static_dtree,cr.extra_dbits,0,30,15);Ea.static_bl_desc=new Ea(null,cr.extra_blbits,0,19,7);var rJe=9,sJe=8;function Am(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 Mhe=0,oz=1,zb=2,sh=[new Am(0,0,0,0,Mhe),new Am(4,4,8,4,oz),new Am(4,5,16,8,oz),new Am(4,6,32,32,oz),new Am(4,4,16,16,zb),new Am(8,16,32,32,zb),new Am(8,16,128,128,zb),new Am(8,32,128,256,zb),new Am(32,128,258,1024,zb),new Am(32,258,258,4096,zb)],ez=["need dictionary","stream end","","","stream error","data error","","buffer error","",""],kf=0,tz=1,OL=2,nz=3,aJe=32,kj=42,iz=113,RL=666,Uj=8,cJe=0,Vj=1,lJe=2,xr=3,rz=258,Cu=rz+xr+1;function Rhe(e,t,n,i){let o=e[t*2],r=e[n*2];return o<r||o==r&&i[t]<=i[n]}function uJe(){let e=this,t,n,i,o,r,s,a,c,l,f,d,p,g,m,x,b,T,A,C,S,w,D,O,R,L,N,_,E,v,I,M,B,V,U=new cr,G=new cr,k=new cr;e.depth=[];let Y,j,$,W,K,Z;e.bl_count=[],e.heap=[],M=[],B=[],V=[];function me(){l=2*r,d[g-1]=0;for(let Be=0;Be<g-1;Be++)d[Be]=0;N=sh[_].max_lazy,v=sh[_].good_length,I=sh[_].nice_length,L=sh[_].max_chain,w=0,T=0,O=0,A=R=xr-1,S=0,p=0}function xe(){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++)V[Be*2]=0;M[256*2]=1,e.opt_len=e.static_len=0,j=$=0}function re(){U.dyn_tree=M,U.stat_desc=Ea.static_l_desc,G.dyn_tree=B,G.stat_desc=Ea.static_d_desc,k.dyn_tree=V,k.stat_desc=Ea.static_bl_desc,K=0,Z=0,W=8,xe()}e.pqdownheap=function(Be,Ke){let qe=e.heap,Xe=qe[Ke],ht=Ke<<1;for(;ht<=e.heap_len&&(ht<e.heap_len&&Rhe(Be,qe[ht+1],qe[ht],e.depth)&&ht++,!Rhe(Be,Xe,qe[ht],e.depth));)qe[Ke]=qe[ht],Ke=ht,ht<<=1;qe[Ke]=Xe};function ye(Be,Ke){let qe=-1,Xe,ht=Be[0*2+1],mt=0,hn=7,lo=4;ht===0&&(hn=138,lo=3),Be[(Ke+1)*2+1]=65535;for(let bo=0;bo<=Ke;bo++)Xe=ht,ht=Be[(bo+1)*2+1],!(++mt<hn&&Xe==ht)&&(mt<lo?V[Xe*2]+=mt:Xe!==0?(Xe!=qe&&V[Xe*2]++,V[16*2]++):mt<=10?V[17*2]++:V[18*2]++,mt=0,qe=Xe,ht===0?(hn=138,lo=3):Xe==ht?(hn=6,lo=3):(hn=7,lo=4))}function ge(){let Be;for(ye(M,U.max_code),ye(B,G.max_code),k.build_tree(e),Be=19-1;Be>=3&&V[cr.bl_order[Be]*2+1]===0;Be--);return e.opt_len+=3*(Be+1)+5+5+4,Be}function Ae(Be){e.pending_buf[e.pending++]=Be}function De(Be){Ae(Be&255),Ae(Be>>>8&255)}function Re(Be){Ae(Be>>8&255),Ae(Be&255&255)}function ze(Be,Ke){let qe,Xe=Ke;Z>16-Xe?(qe=Be,K|=qe<<Z&65535,De(K),K=qe>>>16-Z,Z+=Xe-16):(K|=Be<<Z&65535,Z+=Xe)}function ut(Be,Ke){let qe=Be*2;ze(Ke[qe]&65535,Ke[qe+1]&65535)}function Vt(Be,Ke){let qe,Xe=-1,ht,mt=Be[0*2+1],hn=0,lo=7,bo=4;for(mt===0&&(lo=138,bo=3),qe=0;qe<=Ke;qe++)if(ht=mt,mt=Be[(qe+1)*2+1],!(++hn<lo&&ht==mt)){if(hn<bo)do ut(ht,V);while(--hn!==0);else ht!==0?(ht!=Xe&&(ut(ht,V),hn--),ut(16,V),ze(hn-3,2)):hn<=10?(ut(17,V),ze(hn-3,3)):(ut(18,V),ze(hn-11,7));hn=0,Xe=ht,mt===0?(lo=138,bo=3):ht==mt?(lo=6,bo=3):(lo=7,bo=4)}}function cn(Be,Ke,qe){let Xe;for(ze(Be-257,5),ze(Ke-1,5),ze(qe-4,4),Xe=0;Xe<qe;Xe++)ze(V[cr.bl_order[Xe]*2+1],3);Vt(M,Be-1),Vt(B,Ke-1)}function ft(){Z==16?(De(K),K=0,Z=0):Z>=8&&(Ae(K&255),K>>>=8,Z-=8)}function _n(){ze(Vj<<1,3),ut(256,Ea.static_ltree),ft(),1+W+10-Z<9&&(ze(Vj<<1,3),ut(256,Ea.static_ltree),ft()),W=7}function Mn(Be,Ke){let qe,Xe,ht;if(e.dist_buf[j]=Be,e.lc_buf[j]=Ke&255,j++,Be===0?M[Ke*2]++:($++,Be--,M[(cr._length_code[Ke]+256+1)*2]++,B[cr.d_code(Be)*2]++),!(j&8191)&&_>2){for(qe=j*8,Xe=w-T,ht=0;ht<30;ht++)qe+=B[ht*2]*(5+cr.extra_dbits[ht]);if(qe>>>=3,$<Math.floor(j/2)&&qe<Math.floor(Xe/2))return!0}return j==Y-1}function Ft(Be,Ke){let qe,Xe,ht=0,mt,hn;if(j!==0)do qe=e.dist_buf[ht],Xe=e.lc_buf[ht],ht++,qe===0?ut(Xe,Be):(mt=cr._length_code[Xe],ut(mt+256+1,Be),hn=cr.extra_lbits[mt],hn!==0&&(Xe-=cr.base_length[mt],ze(Xe,hn)),qe--,mt=cr.d_code(qe),ut(mt,Ke),hn=cr.extra_dbits[mt],hn!==0&&(qe-=cr.base_dist[mt],ze(qe,hn)));while(ht<j);ut(256,Be),W=Be[256*2+1]}function Ot(){Z>8?De(K):Z>0&&Ae(K&255),K=0,Z=0}function he(Be,Ke,qe){Ot(),W=8,qe&&(De(Ke),De(~Ke)),e.pending_buf.set(c.subarray(Be,Be+Ke),e.pending),e.pending+=Ke}function be(Be,Ke,qe){ze((cJe<<1)+(qe?1:0),3),he(Be,Ke,!0)}function Gt(Be,Ke,qe){let Xe,ht,mt=0;_>0?(U.build_tree(e),G.build_tree(e),mt=ge(),Xe=e.opt_len+3+7>>>3,ht=e.static_len+3+7>>>3,ht<=Xe&&(Xe=ht)):Xe=ht=Ke+5,Ke+4<=Xe&&Be!=-1?be(Be,Ke,qe):ht==Xe?(ze((Vj<<1)+(qe?1:0),3),Ft(Ea.static_ltree,Ea.static_dtree)):(ze((lJe<<1)+(qe?1:0),3),cn(U.max_code+1,G.max_code+1,mt+1),Ft(M,B)),xe(),qe&&Ot()}function rt(Be){Gt(T>=0?T:-1,w-T,Be),T=w,t.flush_pending()}function Si(){let Be,Ke,qe,Xe;do{if(Xe=l-O-w,Xe===0&&w===0&&O===0)Xe=r;else if(Xe==-1)Xe--;else if(w>=r+r-Cu){c.set(c.subarray(r,r+r),0),D-=r,w-=r,T-=r,Be=g,qe=Be;do Ke=d[--qe]&65535,d[qe]=Ke>=r?Ke-r:0;while(--Be!==0);Be=r,qe=Be;do Ke=f[--qe]&65535,f[qe]=Ke>=r?Ke-r:0;while(--Be!==0);Xe+=r}if(t.avail_in===0)return;Be=t.read_buf(c,w+O,Xe),O+=Be,O>=xr&&(p=c[w]&255,p=(p<<b^c[w+1]&255)&x)}while(O<Cu&&t.avail_in!==0)}function Zi(Be){let Ke=65535,qe;for(Ke>i-5&&(Ke=i-5);;){if(O<=1){if(Si(),O===0&&Be==0)return kf;if(O===0)break}if(w+=O,O=0,qe=T+Ke,(w===0||w>=qe)&&(O=w-qe,w=qe,rt(!1),t.avail_out===0)||w-T>=r-Cu&&(rt(!1),t.avail_out===0))return kf}return rt(Be==4),t.avail_out===0?Be==4?OL:kf:Be==4?nz:tz}function Us(Be){let Ke=L,qe=w,Xe,ht,mt=R,hn=w>r-Cu?w-(r-Cu):0,lo=I,bo=a,os=w+rz,xs=c[qe+mt-1],No=c[qe+mt];R>=v&&(Ke>>=2),lo>O&&(lo=O);do if(Xe=Be,!(c[Xe+mt]!=No||c[Xe+mt-1]!=xs||c[Xe]!=c[qe]||c[++Xe]!=c[qe+1])){qe+=2,Xe++;do;while(c[++qe]==c[++Xe]&&c[++qe]==c[++Xe]&&c[++qe]==c[++Xe]&&c[++qe]==c[++Xe]&&c[++qe]==c[++Xe]&&c[++qe]==c[++Xe]&&c[++qe]==c[++Xe]&&c[++qe]==c[++Xe]&&qe<os);if(ht=rz-(os-qe),qe=os-rz,ht>mt){if(D=Be,mt=ht,ht>=lo)break;xs=c[qe+mt-1],No=c[qe+mt]}}while((Be=f[Be&bo]&65535)>hn&&--Ke!==0);return mt<=O?mt:O}function Lo(Be){let Ke=0,qe;for(;;){if(O<Cu){if(Si(),O<Cu&&Be==0)return kf;if(O===0)break}if(O>=xr&&(p=(p<<b^c[w+(xr-1)]&255)&x,Ke=d[p]&65535,f[w&a]=d[p],d[p]=w),Ke!==0&&(w-Ke&65535)<=r-Cu&&E!=2&&(A=Us(Ke)),A>=xr)if(qe=Mn(w-D,A-xr),O-=A,A<=N&&O>=xr){A--;do w++,p=(p<<b^c[w+(xr-1)]&255)&x,Ke=d[p]&65535,f[w&a]=d[p],d[p]=w;while(--A!==0);w++}else w+=A,A=0,p=c[w]&255,p=(p<<b^c[w+1]&255)&x;else qe=Mn(0,c[w]&255),O--,w++;if(qe&&(rt(!1),t.avail_out===0))return kf}return rt(Be==4),t.avail_out===0?Be==4?OL:kf:Be==4?nz:tz}function fr(Be){let Ke=0,qe,Xe;for(;;){if(O<Cu){if(Si(),O<Cu&&Be==0)return kf;if(O===0)break}if(O>=xr&&(p=(p<<b^c[w+(xr-1)]&255)&x,Ke=d[p]&65535,f[w&a]=d[p],d[p]=w),R=A,C=D,A=xr-1,Ke!==0&&R<N&&(w-Ke&65535)<=r-Cu&&(E!=2&&(A=Us(Ke)),A<=5&&(E==1||A==xr&&w-D>4096)&&(A=xr-1)),R>=xr&&A<=R){Xe=w+O-xr,qe=Mn(w-1-C,R-xr),O-=R-1,R-=2;do++w<=Xe&&(p=(p<<b^c[w+(xr-1)]&255)&x,Ke=d[p]&65535,f[w&a]=d[p],d[p]=w);while(--R!==0);if(S=0,A=xr-1,w++,qe&&(rt(!1),t.avail_out===0))return kf}else if(S!==0){if(qe=Mn(0,c[w-1]&255),qe&&rt(!1),w++,O--,t.avail_out===0)return kf}else S=1,w++,O--}return S!==0&&(qe=Mn(0,c[w-1]&255),S=0),rt(Be==4),t.avail_out===0?Be==4?OL:kf:Be==4?nz:tz}function is(Be){return Be.total_in=Be.total_out=0,Be.msg=null,e.pending=0,e.pending_out=0,n=iz,o=0,re(),me(),0}e.deflateInit=function(Be,Ke,qe,Xe,ht,mt){return Xe||(Xe=Uj),ht||(ht=sJe),mt||(mt=0),Be.msg=null,Ke==-1&&(Ke=6),ht<1||ht>rJe||Xe!=Uj||qe<9||qe>15||Ke<0||Ke>9||mt<0||mt>2?-2:(Be.dstate=e,s=qe,r=1<<s,a=r-1,m=ht+7,g=1<<m,x=g-1,b=Math.floor((m+xr-1)/xr),c=new Uint8Array(r*2),f=[],d=[],Y=1<<ht+6,e.pending_buf=new Uint8Array(Y*4),i=Y*4,e.dist_buf=new Uint16Array(Y),e.lc_buf=new Uint8Array(Y),_=Ke,E=mt,is(Be))},e.deflateEnd=function(){return n!=kj&&n!=iz&&n!=RL?-2:(e.lc_buf=null,e.dist_buf=null,e.pending_buf=null,d=null,f=null,c=null,e.dstate=null,n==iz?-3:0)},e.deflateParams=function(Be,Ke,qe){let Xe=0;return Ke==-1&&(Ke=6),Ke<0||Ke>9||qe<0||qe>2?-2:(sh[_].func!=sh[Ke].func&&Be.total_in!==0&&(Xe=Be.deflate(1)),_!=Ke&&(_=Ke,N=sh[_].max_lazy,v=sh[_].good_length,I=sh[_].nice_length,L=sh[_].max_chain),E=qe,Xe)},e.deflateSetDictionary=function(Be,Ke,qe){let Xe=qe,ht,mt=0;if(!Ke||n!=kj)return-2;if(Xe<xr)return 0;for(Xe>r-Cu&&(Xe=r-Cu,mt=qe-Xe),c.set(Ke.subarray(mt,mt+Xe),0),w=Xe,T=Xe,p=c[0]&255,p=(p<<b^c[1]&255)&x,ht=0;ht<=Xe-xr;ht++)p=(p<<b^c[ht+(xr-1)]&255)&x,f[ht&a]=d[p],d[p]=ht;return 0},e.deflate=function(Be,Ke){let qe,Xe,ht,mt,hn;if(Ke>4||Ke<0)return-2;if(!Be.next_out||!Be.next_in&&Be.avail_in!==0||n==RL&&Ke!=4)return Be.msg=ez[2- -2],-2;if(Be.avail_out===0)return Be.msg=ez[2- -5],-5;if(t=Be,mt=o,o=Ke,n==kj&&(Xe=Uj+(s-8<<4)<<8,ht=(_-1&255)>>1,ht>3&&(ht=3),Xe|=ht<<6,w!==0&&(Xe|=aJe),Xe+=31-Xe%31,n=iz,Re(Xe)),e.pending!==0){if(t.flush_pending(),t.avail_out===0)return o=-1,0}else if(t.avail_in===0&&Ke<=mt&&Ke!=4)return t.msg=ez[2- -5],-5;if(n==RL&&t.avail_in!==0)return Be.msg=ez[2- -5],-5;if(t.avail_in!==0||O!==0||Ke!=0&&n!=RL){switch(hn=-1,sh[_].func){case Mhe:hn=Zi(Ke);break;case oz:hn=Lo(Ke);break;case zb:hn=fr(Ke);break;default:}if((hn==OL||hn==nz)&&(n=RL),hn==kf||hn==OL)return t.avail_out===0&&(o=-1),0;if(hn==tz){if(Ke==1)_n();else if(be(0,0,!1),Ke==3)for(qe=0;qe<g;qe++)d[qe]=0;if(t.flush_pending(),t.avail_out===0)return o=-1,0}}return Ke!=4?0:1}}function Lhe(){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}Lhe.prototype={deflateInit:function(e,t){let n=this;return n.dstate=new uJe,t||(t=15),n.dstate.deflateInit(n,e,t)},deflate:function(e){let t=this;return t.dstate?t.dstate.deflate(t,e):-2},deflateEnd:function(){let e=this;if(!e.dstate)return-2;let t=e.dstate.deflateEnd();return e.dstate=null,t},deflateParams:function(e,t){let n=this;return n.dstate?n.dstate.deflateParams(n,e,t):-2},deflateSetDictionary:function(e,t){let n=this;return n.dstate?n.dstate.deflateSetDictionary(n,e,t):-2},read_buf:function(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:function(){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 fJe(e){let t=this,n=new Lhe,i=dJe(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 l,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,l=n.deflate(o),l!=0)throw new Error("deflating: "+n.msg);n.next_out_index&&(n.next_out_index==i?m.push(new Uint8Array(r)):m.push(r.slice(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(0),f}},t.flush=function(){let a,c,l=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,l),l+=p.length}),c}}function dJe(e){return e+5*(Math.floor(e/16383)+1)}var Nhe=fJe;var Eu=[0,1,3,7,15,31,63,127,255,511,1023,2047,4095,8191,16383,32767,65535],tme=1440,hJe=0,mJe=4,pJe=9,_Je=5,gJe=[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],yJe=[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],xJe=[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],bJe=[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],TJe=[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],AJe=[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],My=15;function Wj(){let e=this,t,n,i,o,r,s;function a(l,f,d,p,g,m,x,b,T,A,C){let S,w,D,O,R,L,N,_,E,v,I,M,B,V,U;v=0,R=d;do i[l[f+v]]++,v++,R--;while(R!==0);if(i[0]==d)return x[0]=-1,b[0]=0,0;for(_=b[0],L=1;L<=My&&i[L]===0;L++);for(N=L,_<L&&(_=L),R=My;R!==0&&i[R]===0;R--);for(D=R,_>R&&(_=R),b[0]=_,V=1<<L;L<R;L++,V<<=1)if((V-=i[L])<0)return-3;if((V-=i[R])<0)return-3;for(i[R]+=V,s[1]=L=0,v=1,B=2;--R!==0;)s[B]=L+=i[v],B++,v++;R=0,v=0;do(L=l[f+v])!==0&&(C[s[L]++]=R),v++;while(++R<d);for(d=s[D],s[0]=R=0,v=0,O=-1,M=-_,r[0]=0,I=0,U=0;N<=D;N++)for(S=i[N];S--!==0;){for(;N>M+_;){if(O++,M+=_,U=D-M,U=U>_?_:U,(w=1<<(L=N-M))>S+1&&(w-=S+1,B=N,L<U))for(;++L<U&&!((w<<=1)<=i[++B]);)w-=i[B];if(U=1<<L,A[0]+U>tme)return-3;r[O]=I=A[0],A[0]+=U,O!==0?(s[O]=R,o[0]=L,o[1]=_,L=R>>>M-_,o[2]=I-r[O-1]-L,T.set(o,(r[O-1]+L)*3)):x[0]=I}for(o[1]=N-M,v>=d?o[0]=128+64:C[v]<p?(o[0]=C[v]<256?0:32+64,o[2]=C[v++]):(o[0]=m[C[v]-p]+16+64,o[2]=g[C[v++]-p]),w=1<<N-M,L=R>>>M;L<U;L+=w)T.set(o,(I+L)*3);for(L=1<<N-1;R&L;L>>>=1)R^=L;for(R^=L,E=(1<<M)-1;(R&E)!=s[O];)O--,M-=_,E=(1<<M)-1}return V!==0&&D!=1?-5:0}function c(l){let f;for(t||(t=[],n=[],i=new Int32Array(My+1),o=[],r=new Int32Array(My),s=new Int32Array(My+1)),n.length<l&&(n=[]),f=0;f<l;f++)n[f]=0;for(f=0;f<My+1;f++)i[f]=0;for(f=0;f<3;f++)o[f]=0;r.set(i.subarray(0,My),0),s.set(i.subarray(0,My+1),0)}e.inflate_trees_bits=function(l,f,d,p,g){let m;return c(19),t[0]=0,m=a(l,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(l,f,d,p,g,m,x,b,T){let A;return c(288),t[0]=0,A=a(d,0,l,257,xJe,bJe,m,p,b,t,n),A!=0||p[0]===0?(A==-3?T.msg="oversubscribed literal/length tree":A!=-4&&(T.msg="incomplete literal/length tree",A=-3),A):(c(288),A=a(d,l,f,0,TJe,AJe,x,g,b,t,n),A!=0||g[0]===0&&l>257?(A==-3?T.msg="oversubscribed distance tree":A==-5?(T.msg="incomplete distance tree",A=-3):A!=-4&&(T.msg="empty distance tree with lengths",A=-3),A):0)}}Wj.inflate_trees_fixed=function(e,t,n,i){return e[0]=pJe,t[0]=_Je,n[0]=gJe,i[0]=yJe,0};var cz=0,Fhe=1,Bhe=2,khe=3,Uhe=4,Vhe=5,zhe=6,zj=7,Hhe=8,lz=9;function CJe(){let e=this,t,n=0,i,o=0,r=0,s=0,a=0,c=0,l=0,f=0,d,p=0,g,m=0;function x(b,T,A,C,S,w,D,O){let R,L,N,_,E,v,I,M,B,V,U,G,k,Y,j,$;I=O.next_in_index,M=O.avail_in,E=D.bitb,v=D.bitk,B=D.write,V=B<D.read?D.read-B-1:D.end-B,U=Eu[b],G=Eu[T];do{for(;v<20;)M--,E|=(O.read_byte(I++)&255)<<v,v+=8;if(R=E&U,L=A,N=C,$=(N+R)*3,(_=L[$])===0){E>>=L[$+1],v-=L[$+1],D.win[B++]=L[$+2],V--;continue}do{if(E>>=L[$+1],v-=L[$+1],_&16){for(_&=15,k=L[$+2]+(E&Eu[_]),E>>=_,v-=_;v<15;)M--,E|=(O.read_byte(I++)&255)<<v,v+=8;R=E&G,L=S,N=w,$=(N+R)*3,_=L[$];do if(E>>=L[$+1],v-=L[$+1],_&16){for(_&=15;v<_;)M--,E|=(O.read_byte(I++)&255)<<v,v+=8;if(Y=L[$+2]+(E&Eu[_]),E>>=_,v-=_,V-=k,B>=Y)j=B-Y,B-j>0&&2>B-j?(D.win[B++]=D.win[j++],D.win[B++]=D.win[j++],k-=2):(D.win.set(D.win.subarray(j,j+2),B),B+=2,j+=2,k-=2);else{j=B-Y;do j+=D.end;while(j<0);if(_=D.end-j,k>_){if(k-=_,B-j>0&&_>B-j)do D.win[B++]=D.win[j++];while(--_!==0);else D.win.set(D.win.subarray(j,j+_),B),B+=_,j+=_,_=0;j=0}}if(B-j>0&&k>B-j)do D.win[B++]=D.win[j++];while(--k!==0);else D.win.set(D.win.subarray(j,j+k),B),B+=k,j+=k,k=0;break}else if(!(_&64))R+=L[$+2],R+=E&Eu[_],$=(N+R)*3,_=L[$];else return O.msg="invalid distance code",k=O.avail_in-M,k=v>>3<k?v>>3:k,M+=k,I-=k,v-=k<<3,D.bitb=E,D.bitk=v,O.avail_in=M,O.total_in+=I-O.next_in_index,O.next_in_index=I,D.write=B,-3;while(!0);break}if(_&64)return _&32?(k=O.avail_in-M,k=v>>3<k?v>>3:k,M+=k,I-=k,v-=k<<3,D.bitb=E,D.bitk=v,O.avail_in=M,O.total_in+=I-O.next_in_index,O.next_in_index=I,D.write=B,1):(O.msg="invalid literal/length code",k=O.avail_in-M,k=v>>3<k?v>>3:k,M+=k,I-=k,v-=k<<3,D.bitb=E,D.bitk=v,O.avail_in=M,O.total_in+=I-O.next_in_index,O.next_in_index=I,D.write=B,-3);if(R+=L[$+2],R+=E&Eu[_],$=(N+R)*3,(_=L[$])===0){E>>=L[$+1],v-=L[$+1],D.win[B++]=L[$+2],V--;break}}while(!0)}while(V>=258&&M>=10);return k=O.avail_in-M,k=v>>3<k?v>>3:k,M+=k,I-=k,v-=k<<3,D.bitb=E,D.bitk=v,O.avail_in=M,O.total_in+=I-O.next_in_index,O.next_in_index=I,D.write=B,0}e.init=function(b,T,A,C,S,w){t=cz,l=b,f=T,d=A,p=C,g=S,m=w,i=null},e.proc=function(b,T,A){let C,S,w,D=0,O=0,R=0,L,N,_,E;for(R=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 cz:if(_>=258&&L>=10&&(b.bitb=D,b.bitk=O,T.avail_in=L,T.total_in+=R-T.next_in_index,T.next_in_index=R,b.write=N,A=x(l,f,d,p,g,m,b,T),R=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,A!=0)){t=A==1?zj:lz;break}r=l,i=d,o=p,t=Fhe;case Fhe:for(C=r;O<C;){if(L!==0)A=0;else return b.bitb=D,b.bitk=O,T.avail_in=L,T.total_in+=R-T.next_in_index,T.next_in_index=R,b.write=N,b.inflate_flush(T,A);L--,D|=(T.read_byte(R++)&255)<<O,O+=8}if(S=(o+(D&Eu[C]))*3,D>>>=i[S+1],O-=i[S+1],w=i[S],w===0){s=i[S+2],t=zhe;break}if(w&16){a=w&15,n=i[S+2],t=Bhe;break}if(!(w&64)){r=w,o=S/3+i[S+2];break}if(w&32){t=zj;break}return t=lz,T.msg="invalid literal/length code",A=-3,b.bitb=D,b.bitk=O,T.avail_in=L,T.total_in+=R-T.next_in_index,T.next_in_index=R,b.write=N,b.inflate_flush(T,A);case Bhe:for(C=a;O<C;){if(L!==0)A=0;else return b.bitb=D,b.bitk=O,T.avail_in=L,T.total_in+=R-T.next_in_index,T.next_in_index=R,b.write=N,b.inflate_flush(T,A);L--,D|=(T.read_byte(R++)&255)<<O,O+=8}n+=D&Eu[C],D>>=C,O-=C,r=f,i=g,o=m,t=khe;case khe:for(C=r;O<C;){if(L!==0)A=0;else return b.bitb=D,b.bitk=O,T.avail_in=L,T.total_in+=R-T.next_in_index,T.next_in_index=R,b.write=N,b.inflate_flush(T,A);L--,D|=(T.read_byte(R++)&255)<<O,O+=8}if(S=(o+(D&Eu[C]))*3,D>>=i[S+1],O-=i[S+1],w=i[S],w&16){a=w&15,c=i[S+2],t=Uhe;break}if(!(w&64)){r=w,o=S/3+i[S+2];break}return t=lz,T.msg="invalid distance code",A=-3,b.bitb=D,b.bitk=O,T.avail_in=L,T.total_in+=R-T.next_in_index,T.next_in_index=R,b.write=N,b.inflate_flush(T,A);case Uhe:for(C=a;O<C;){if(L!==0)A=0;else return b.bitb=D,b.bitk=O,T.avail_in=L,T.total_in+=R-T.next_in_index,T.next_in_index=R,b.write=N,b.inflate_flush(T,A);L--,D|=(T.read_byte(R++)&255)<<O,O+=8}c+=D&Eu[C],D>>=C,O-=C,t=Vhe;case Vhe:for(E=N-c;E<0;)E+=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,A=b.inflate_flush(T,A),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+=R-T.next_in_index,T.next_in_index=R,b.write=N,b.inflate_flush(T,A);b.win[N++]=b.win[E++],_--,E==b.end&&(E=0),n--}t=cz;break;case zhe:if(_===0&&(N==b.end&&b.read!==0&&(N=0,_=N<b.read?b.read-N-1:b.end-N),_===0&&(b.write=N,A=b.inflate_flush(T,A),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+=R-T.next_in_index,T.next_in_index=R,b.write=N,b.inflate_flush(T,A);A=0,b.win[N++]=s,_--,t=cz;break;case zj:if(O>7&&(O-=8,L++,R--),b.write=N,A=b.inflate_flush(T,A),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+=R-T.next_in_index,T.next_in_index=R,b.write=N,b.inflate_flush(T,A);t=Hhe;case Hhe:return A=1,b.bitb=D,b.bitk=O,T.avail_in=L,T.total_in+=R-T.next_in_index,T.next_in_index=R,b.write=N,b.inflate_flush(T,A);case lz:return A=-3,b.bitb=D,b.bitk=O,T.avail_in=L,T.total_in+=R-T.next_in_index,T.next_in_index=R,b.write=N,b.inflate_flush(T,A);default:return A=-2,b.bitb=D,b.bitk=O,T.avail_in=L,T.total_in+=R-T.next_in_index,T.next_in_index=R,b.write=N,b.inflate_flush(T,A)}},e.free=function(){}}var Ghe=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],ME=0,Hj=1,Whe=2,jhe=3,qhe=4,Yhe=5,uz=6,fz=7,Xhe=8,Hb=9;function EJe(e,t){let n=this,i=ME,o=0,r=0,s=0,a,c=[0],l=[0],f=new CJe,d=0,p=new Int32Array(tme*3),g=0,m=new Wj;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==uz&&f.free(x),i=ME,n.bitk=0,n.bitb=0,n.read=n.write=0},n.reset(e,null),n.inflate_flush=function(x,b){let T,A,C;return A=x.next_out_index,C=n.read,T=(C<=n.write?n.write:n.end)-C,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(C,C+T),A),A+=T,C+=T,C==n.end&&(C=0,n.write==n.end&&(n.write=0),T=n.write-C,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(C,C+T),A),A+=T,C+=T),x.next_out_index=A,n.read=C,b},n.proc=function(x,b){let T,A,C,S,w,D,O,R;for(S=x.next_in_index,w=x.avail_in,A=n.bitb,C=n.bitk,D=n.write,O=D<n.read?n.read-D-1:n.end-D;;){let L,N,_,E,v,I,M,B;switch(i){case ME:for(;C<3;){if(w!==0)b=0;else return n.bitb=A,n.bitk=C,x.avail_in=w,x.total_in+=S-x.next_in_index,x.next_in_index=S,n.write=D,n.inflate_flush(x,b);w--,A|=(x.read_byte(S++)&255)<<C,C+=8}switch(T=A&7,d=T&1,T>>>1){case 0:A>>>=3,C-=3,T=C&7,A>>>=T,C-=T,i=Hj;break;case 1:L=[],N=[],_=[[]],E=[[]],Wj.inflate_trees_fixed(L,N,_,E),f.init(L[0],N[0],_[0],0,E[0],0),A>>>=3,C-=3,i=uz;break;case 2:A>>>=3,C-=3,i=jhe;break;case 3:return A>>>=3,C-=3,i=Hb,x.msg="invalid block type",b=-3,n.bitb=A,n.bitk=C,x.avail_in=w,x.total_in+=S-x.next_in_index,x.next_in_index=S,n.write=D,n.inflate_flush(x,b)}break;case Hj:for(;C<32;){if(w!==0)b=0;else return n.bitb=A,n.bitk=C,x.avail_in=w,x.total_in+=S-x.next_in_index,x.next_in_index=S,n.write=D,n.inflate_flush(x,b);w--,A|=(x.read_byte(S++)&255)<<C,C+=8}if((~A>>>16&65535)!=(A&65535))return i=Hb,x.msg="invalid stored block lengths",b=-3,n.bitb=A,n.bitk=C,x.avail_in=w,x.total_in+=S-x.next_in_index,x.next_in_index=S,n.write=D,n.inflate_flush(x,b);o=A&65535,A=C=0,i=o!==0?Whe:d!==0?fz:ME;break;case Whe:if(w===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=A,n.bitk=C,x.avail_in=w,x.total_in+=S-x.next_in_index,x.next_in_index=S,n.write=D,n.inflate_flush(x,b);if(b=0,T=o,T>w&&(T=w),T>O&&(T=O),n.win.set(x.read_buf(S,T),D),S+=T,w-=T,D+=T,O-=T,(o-=T)!==0)break;i=d!==0?fz:ME;break;case jhe:for(;C<14;){if(w!==0)b=0;else return n.bitb=A,n.bitk=C,x.avail_in=w,x.total_in+=S-x.next_in_index,x.next_in_index=S,n.write=D,n.inflate_flush(x,b);w--,A|=(x.read_byte(S++)&255)<<C,C+=8}if(r=T=A&16383,(T&31)>29||(T>>5&31)>29)return i=Hb,x.msg="too many length or distance symbols",b=-3,n.bitb=A,n.bitk=C,x.avail_in=w,x.total_in+=S-x.next_in_index,x.next_in_index=S,n.write=D,n.inflate_flush(x,b);if(T=258+(T&31)+(T>>5&31),!a||a.length<T)a=[];else for(R=0;R<T;R++)a[R]=0;A>>>=14,C-=14,s=0,i=qhe;case qhe:for(;s<4+(r>>>10);){for(;C<3;){if(w!==0)b=0;else return n.bitb=A,n.bitk=C,x.avail_in=w,x.total_in+=S-x.next_in_index,x.next_in_index=S,n.write=D,n.inflate_flush(x,b);w--,A|=(x.read_byte(S++)&255)<<C,C+=8}a[Ghe[s++]]=A&7,A>>>=3,C-=3}for(;s<19;)a[Ghe[s++]]=0;if(c[0]=7,T=m.inflate_trees_bits(a,c,l,p,x),T!=0)return b=T,b==-3&&(a=null,i=Hb),n.bitb=A,n.bitk=C,x.avail_in=w,x.total_in+=S-x.next_in_index,x.next_in_index=S,n.write=D,n.inflate_flush(x,b);s=0,i=Yhe;case Yhe:for(;T=r,!(s>=258+(T&31)+(T>>5&31));){let V,U;for(T=c[0];C<T;){if(w!==0)b=0;else return n.bitb=A,n.bitk=C,x.avail_in=w,x.total_in+=S-x.next_in_index,x.next_in_index=S,n.write=D,n.inflate_flush(x,b);w--,A|=(x.read_byte(S++)&255)<<C,C+=8}if(T=p[(l[0]+(A&Eu[T]))*3+1],U=p[(l[0]+(A&Eu[T]))*3+2],U<16)A>>>=T,C-=T,a[s++]=U;else{for(R=U==18?7:U-14,V=U==18?11:3;C<T+R;){if(w!==0)b=0;else return n.bitb=A,n.bitk=C,x.avail_in=w,x.total_in+=S-x.next_in_index,x.next_in_index=S,n.write=D,n.inflate_flush(x,b);w--,A|=(x.read_byte(S++)&255)<<C,C+=8}if(A>>>=T,C-=T,V+=A&Eu[R],A>>>=R,C-=R,R=s,T=r,R+V>258+(T&31)+(T>>5&31)||U==16&&R<1)return a=null,i=Hb,x.msg="invalid bit length repeat",b=-3,n.bitb=A,n.bitk=C,x.avail_in=w,x.total_in+=S-x.next_in_index,x.next_in_index=S,n.write=D,n.inflate_flush(x,b);U=U==16?a[R-1]:0;do a[R++]=U;while(--V!==0);s=R}}if(l[0]=-1,v=[],I=[],M=[],B=[],v[0]=9,I[0]=6,T=r,T=m.inflate_trees_dynamic(257+(T&31),1+(T>>5&31),a,v,I,M,B,p,x),T!=0)return T==-3&&(a=null,i=Hb),b=T,n.bitb=A,n.bitk=C,x.avail_in=w,x.total_in+=S-x.next_in_index,x.next_in_index=S,n.write=D,n.inflate_flush(x,b);f.init(v[0],I[0],p,M[0],p,B[0]),i=uz;case uz:if(n.bitb=A,n.bitk=C,x.avail_in=w,x.total_in+=S-x.next_in_index,x.next_in_index=S,n.write=D,(b=f.proc(n,x,b))!=1)return n.inflate_flush(x,b);if(b=0,f.free(x),S=x.next_in_index,w=x.avail_in,A=n.bitb,C=n.bitk,D=n.write,O=D<n.read?n.read-D-1:n.end-D,d===0){i=ME;break}i=fz;case fz: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=A,n.bitk=C,x.avail_in=w,x.total_in+=S-x.next_in_index,x.next_in_index=S,n.write=D,n.inflate_flush(x,b);i=Xhe;case Xhe:return b=1,n.bitb=A,n.bitk=C,x.avail_in=w,x.total_in+=S-x.next_in_index,x.next_in_index=S,n.write=D,n.inflate_flush(x,b);case Hb:return b=-3,n.bitb=A,n.bitk=C,x.avail_in=w,x.total_in+=S-x.next_in_index,x.next_in_index=S,n.write=D,n.inflate_flush(x,b);default:return b=-2,n.bitb=A,n.bitk=C,x.avail_in=w,x.total_in+=S-x.next_in_index,x.next_in_index=S,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==Hj?1:0}}var SJe=32,wJe=8,vJe=0,Khe=1,Zhe=2,$he=3,Qhe=4,Jhe=5,Gj=6,ML=7,eme=12,Ly=13,DJe=[0,0,255,255];function IJe(){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=ML,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 EJe(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==mJe?-5:0,o=-5;;)switch(s.mode){case vJe: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)!=wJe){s.mode=Ly,n.msg="unknown compression method",s.marker=5;break}if((s.method>>4)+8>s.wbits){s.mode=Ly,n.msg="invalid win size",s.marker=5;break}s.mode=Khe;case Khe: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=Ly,n.msg="incorrect header check",s.marker=5;break}if(!(r&SJe)){s.mode=ML;break}s.mode=Zhe;case Zhe: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=$he;case $he: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=Qhe;case Qhe: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=Jhe;case Jhe: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=Gj,2);case Gj:return s.mode=Ly,n.msg="need dictionary",s.marker=0,-2;case ML:if(o=s.blocks.proc(n,o),o==-3){s.mode=Ly,s.marker=0;break}if(o==0&&(o=i),o!=1)return o;o=i,s.blocks.reset(n,s.was),s.mode=eme;case eme:return n.avail_in=0,1;case Ly:return-3;default:return-2}},e.inflateSetDictionary=function(n,i,o){let r=0,s=o;if(!n||!n.istate||n.istate.mode!=Gj)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=ML,0},e.inflateSync=function(n){let i,o,r,s,a;if(!n||!n.istate)return-2;let c=n.istate;if(c.mode!=Ly&&(c.mode=Ly,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)==DJe[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=ML,0)},e.inflateSyncPoint=function(n){return!n||!n.istate||!n.istate.blocks?-2:n.istate.blocks.sync_point()}}function nme(){}nme.prototype={inflateInit:function(e){let t=this;return t.istate=new IJe,e||(e=15),t.istate.inflateInit(t,e)},inflate:function(e){let t=this;return t.istate?t.istate.inflate(t,e):-2},inflateEnd:function(){let e=this;if(!e.istate)return-2;let t=e.istate.inflateEnd(e);return e.istate=null,t},inflateSync:function(){let e=this;return e.istate?e.istate.inflateSync(e):-2},inflateSetDictionary:function(e,t){let n=this;return n.istate?n.istate.inflateSetDictionary(n,e,t):-2},read_byte:function(e){return this.next_in[e]},read_buf:function(e,t){return this.next_in.subarray(e,e+t)}};function PJe(e){let t=this,n=new nme,i=e&&e.chunkSize?Math.floor(e.chunkSize*2):128*1024,o=hJe,r=new Uint8Array(i),s=!1;n.inflateInit(),n.next_out=r,t.append=function(a,c){let l=[],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?l.push(new Uint8Array(r)):l.push(r.slice(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 l.length>1?(d=new Uint8Array(m),l.forEach(function(x){d.set(x,g),g+=x.length})):d=l[0]||new Uint8Array(0),d}},t.flush=function(){n.inflateEnd()}}var ime=PJe;var OJe={chunkSize:524288,maxWorkers:typeof navigator<"u"&&navigator.hardwareConcurrency||2,terminateWorkerTimeout:5e3,useWebWorkers:!0,workerScripts:void 0},Nl=Object.assign({},OJe);function dz(){return Nl}function LE(e){if(e.baseURL!==void 0&&(Nl.baseURL=e.baseURL),e.chunkSize!==void 0&&(Nl.chunkSize=e.chunkSize),e.maxWorkers!==void 0&&(Nl.maxWorkers=e.maxWorkers),e.terminateWorkerTimeout!==void 0&&(Nl.terminateWorkerTimeout=e.terminateWorkerTimeout),e.useWebWorkers!==void 0&&(Nl.useWebWorkers=e.useWebWorkers),e.Deflate!==void 0&&(Nl.Deflate=e.Deflate),e.Inflate!==void 0&&(Nl.Inflate=e.Inflate),e.workerScripts!==void 0){if(e.workerScripts.deflate){if(!Array.isArray(e.workerScripts.deflate))throw new Error("workerScripts.deflate must be an array");Nl.workerScripts||(Nl.workerScripts={}),Nl.workerScripts.deflate=e.workerScripts.deflate}if(e.workerScripts.inflate){if(!Array.isArray(e.workerScripts.inflate))throw new Error("workerScripts.inflate must be an array");Nl.workerScripts||(Nl.workerScripts={}),Nl.workerScripts.inflate=e.workerScripts.inflate}}}var ome=[];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;ome[e]=t}var jj=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^ome[(n^t[i])&255];this.crc=n}get(){return~this.crc}},Ny=jj;var LL=RJe;function RJe(e){if(typeof TextEncoder>"u"){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 qc={concat(e,t){if(e.length===0||t.length===0)return e.concat(t);let n=e[e.length-1],i=qc.getPartial(n);return i===32?e.concat(t):qc._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+qc.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]=qc.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=qc.getPartial(o);return i.push(qc.partial(t+r&31,t+r>32?n:i.pop(),1)),i}},NL={bytes:{fromBits(e){let n=qc.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(qc.partial(8*(n&3),i)),t}}},qj={};qj.sha1=function(e){e?(this._h=e._h.slice(0),this._buffer=e._buffer.slice(0),this._length=e._length):this.reset()};qj.sha1.prototype={blockSize:512,reset:function(){let e=this;return e._h=this._init.slice(0),e._buffer=[],e._length=0,e},update:function(e){let t=this;typeof e=="string"&&(e=NL.utf8String.toBits(e));let n=t._buffer=qc.concat(t._buffer,e),i=t._length,o=t._length=i+qc.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:function(){let e=this,t=e._buffer,n=e._h;t=qc.concat(t,[qc.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},_init:[1732584193,4023233417,2562383102,271733878,3285377520],_key:[1518500249,1859775393,2400959708,3395469782],_f:function(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:function(e,t){return t<<e|t>>>32-e},_block:function(e){let t=this,n=t._h,i=Array(80);for(let l=0;l<16;l++)i[l]=e[l];let o=n[0],r=n[1],s=n[2],a=n[3],c=n[4];for(let l=0;l<=79;l++){l>=16&&(i[l]=t._S(1,i[l-3]^i[l-8]^i[l-14]^i[l-16]));let f=t._S(5,o)+t._f(l,r,s,a)+c+i[l]+t._key[Math.floor(l/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 Yj={};Yj.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 l=s[r-1];(r%o===0||o===8&&r%o===4)&&(l=n[l>>>24]<<24^n[l>>16&255]<<16^n[l>>8&255]<<8^n[l&255],r%o===0&&(l=l<<8^l>>>24^c<<24,c=c<<1^(c>>7)*283)),s[r]=s[r-o]^l}for(let l=0;r;l++,r--){let f=s[l&3?r:r-4];r<=4||l<4?a[l]=f:a[l]=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,l;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,l=o[c=o[a=o[f]]];let p=l*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],l=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,A;for(let C=0;C<i;C++)b=s[d>>>24]^a[p>>16&255]^c[g>>8&255]^l[m&255]^n[x],T=s[p>>>24]^a[g>>16&255]^c[m>>8&255]^l[d&255]^n[x+1],A=s[g>>>24]^a[m>>16&255]^c[d>>8&255]^l[p&255]^n[x+2],m=s[m>>>24]^a[d>>16&255]^c[p>>8&255]^l[g&255]^n[x+3],x+=4,d=b,p=T,g=A;for(let C=0;C<4;C++)o[t?3&-C:C]=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 rme={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}},Xj={};Xj.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=qc.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 qc.clamp(t,o)}};var NE={importKey(e){return new NE.hmacSha1(NL.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,l,f=new ArrayBuffer(o),d=new DataView(f),p=0,g=qc;for(t=NL.bytes.toBits(t),l=1;p<(o||1);l++){for(r=s=e.encrypt(g.concat(t,[l])),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)}};NE.hmacSha1=class{constructor(e){let t=this,n=t._hash=qj.sha1,i=[[],[]],o=n.prototype.blockSize/32;t._baseHash=[new n,new n],e.length>o&&(e=n.hash(e));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 BE="Invalid pasword",FE=16,MJe="raw",sme={name:"PBKDF2"},LJe={name:"HMAC"},NJe="SHA-1",FJe=Object.assign({hash:LJe},sme),ame=Object.assign({iterations:1e3,hash:{name:NJe}},sme),BJe=["deriveBits"],BL=[8,12,16],FL=[16,24,32],Fy=10,cme=[0,0,0,0],pz=typeof crypto<"u",lme=pz&&typeof crypto.subtle<"u",Cm=NL.bytes,ume=Yj.aes,fme=Xj.ctrGladman,dme=NE.hmacSha1,hz=class{constructor(t,n,i){Object.assign(this,{password:t,signed:n,strength:i-1,pendingInput:new Uint8Array(0)})}async append(t){let n=this;if(n.password){let o=Su(t,0,BL[n.strength]+2);await kJe(n,o,n.password),n.password=null,n.aesCtrGladman=new fme(new ume(n.keys.key),Array.from(cme)),n.hmac=new dme(n.keys.authentication),t=Su(t,BL[n.strength]+2)}let i=new Uint8Array(t.length-Fy-(t.length-Fy)%FE);return hme(n,t,i,0,Fy,!0)}flush(){let t=this,n=t.pendingInput,i=Su(n,0,n.length-Fy),o=Su(n,n.length-Fy),r=new Uint8Array(0);if(i.length){let a=Cm.toBits(i);t.hmac.update(a);let c=t.aesCtrGladman.update(a);r=Cm.fromBits(c)}let s=!0;if(t.signed){let a=Su(Cm.fromBits(t.hmac.digest()),0,Fy);for(let c=0;c<Fy;c++)a[c]!=o[c]&&(s=!1)}return{valid:s,data:r}}},mz=class{constructor(t,n){Object.assign(this,{password:t,strength:n-1,pendingInput:new Uint8Array(0)})}async append(t){let n=this,i=new Uint8Array(0);n.password&&(i=await UJe(n,n.password),n.password=null,n.aesCtrGladman=new fme(new ume(n.keys.key),Array.from(cme)),n.hmac=new dme(n.keys.authentication));let o=new Uint8Array(i.length+t.length-t.length%FE);return o.set(i,0),hme(n,t,o,i.length,0)}flush(){let t=this,n=new Uint8Array(0);if(t.pendingInput.length){let o=t.aesCtrGladman.update(Cm.toBits(t.pendingInput));t.hmac.update(o),n=Cm.fromBits(o)}let i=Su(Cm.fromBits(t.hmac.digest()),0,Fy);return{data:Kj(n,i),signature:i}}};function hme(e,t,n,i,o,r){let s=t.length-o;e.pendingInput.length&&(t=Kj(e.pendingInput,t),n=GJe(n,s-s%FE));let a;for(a=0;a<=s-FE;a+=FE){let c=Cm.toBits(Su(t,a,a+FE));r&&e.hmac.update(c);let l=e.aesCtrGladman.update(c);r||e.hmac.update(l),n.set(Cm.fromBits(l),a+i)}return e.pendingInput=Su(t,a),n}async function kJe(e,t,n){await mme(e,n,Su(t,0,BL[e.strength]));let i=Su(t,BL[e.strength]),o=e.keys.passwordVerification;if(o[0]!=i[0]||o[1]!=i[1])throw new Error(BE)}async function UJe(e,t){let n=VJe(new Uint8Array(BL[e.strength]));return await mme(e,t,n),Kj(n,e.keys.passwordVerification)}async function mme(e,t,n){let i=LL(t),o=await zJe(MJe,i,FJe,!1,BJe),r=await HJe(Object.assign({salt:n},ame),o,8*(FL[e.strength]*2+2)),s=new Uint8Array(r);e.keys={key:Cm.toBits(Su(s,0,FL[e.strength])),authentication:Cm.toBits(Su(s,FL[e.strength],FL[e.strength]*2)),passwordVerification:Su(s,FL[e.strength]*2)}}function VJe(e){return pz&&typeof crypto.getRandomValues=="function"?crypto.getRandomValues(e):rme.getRandomValues(e)}function zJe(e,t,n,i,o){return pz&&lme&&typeof crypto.subtle.importKey=="function"?crypto.subtle.importKey(e,t,n,i,o):NE.importKey(t)}async function HJe(e,t,n){return pz&&lme&&typeof crypto.subtle.deriveBits=="function"?await crypto.subtle.deriveBits(e,t,n):NE.pbkdf2(t,e.salt,ame.iterations,n)}function Kj(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 GJe(e,t){if(t&&t>e.length){let n=e;e=new Uint8Array(t),e.set(n,0)}return e}function Su(e,t,n){return e.subarray(t,n)}var kE=12,_z=class{constructor(t,n){let i=this;Object.assign(i,{password:t,passwordVerification:n}),yme(i,t)}append(t){let n=this;if(n.password){let i=pme(n,t.subarray(0,kE));if(n.password=null,i[kE-1]!=n.passwordVerification)throw new Error(BE);t=t.subarray(kE)}return pme(n,t)}flush(){return{valid:!0,data:new Uint8Array(0)}}},gz=class{constructor(t,n){let i=this;Object.assign(i,{password:t,passwordVerification:n}),yme(i,t)}append(t){let n=this,i,o;if(n.password){n.password=null;let r=crypto.getRandomValues(new Uint8Array(kE));r[kE-1]=n.passwordVerification,i=new Uint8Array(t.length+r.length),i.set(_me(n,r),0),o=kE}else i=new Uint8Array(t.length),o=0;return i.set(_me(n,t),o),i}flush(){return{data:new Uint8Array(0)}}};function pme(e,t){let n=new Uint8Array(t.length);for(let i=0;i<t.length;i++)n[i]=xme(e)^t[i],Zj(e,n[i]);return n}function _me(e,t){let n=new Uint8Array(t.length);for(let i=0;i<t.length;i++)n[i]=xme(e)^t[i],Zj(e,t[i]);return n}function yme(e,t){e.keys=[305419896,591751049,878082192],e.crcKey0=new Ny(e.keys[0]),e.crcKey2=new Ny(e.keys[2]);for(let n=0;n<t.length;n++)Zj(e,t.charCodeAt(n))}function Zj(e,t){e.crcKey0.append([t]),e.keys[0]=~e.crcKey0.get(),e.keys[1]=gme(e.keys[1]+bme(e.keys[0])),e.keys[1]=gme(Math.imul(e.keys[1],134775813)+1),e.crcKey2.append([e.keys[1]>>>24]),e.keys[2]=~e.crcKey2.get()}function xme(e){let t=e.keys[2]|2;return bme(Math.imul(t,t^1)>>>8)}function bme(e){return e&255}function gme(e){return e&4294967295}var xz="deflate",bz="inflate",yz="Invalid signature",$j=class{constructor(t,{signature:n,password:i,signed:o,compressed:r,zipCrypto:s,passwordVerification:a,encryptionStrength:c},{chunkSize:l}){let f=!!i;Object.assign(this,{signature:n,encrypted:f,signed:o,compressed:r,inflate:r&&new t({chunkSize:l}),crc32:o&&new Ny,zipCrypto:s,decrypt:f&&s?new _z(i,a):new hz(i,o,c)})}async append(t){let n=this;return n.encrypted&&t.length&&(t=await n.decrypt.append(t)),n.compressed&&t.length&&(t=await n.inflate.append(t)),(!n.encrypted||n.zipCrypto)&&n.signed&&t.length&&n.crc32.append(t),t}async flush(){let t=this,n,i=new Uint8Array(0);if(t.encrypted){let o=t.decrypt.flush();if(!o.valid)throw new Error(yz);i=o.data}if((!t.encrypted||t.zipCrypto)&&t.signed){let o=new DataView(new Uint8Array(4).buffer);if(n=t.crc32.get(),o.setUint32(0,n),t.signature!=o.getUint32(0,!1))throw new Error(yz)}return t.compressed&&(i=await t.inflate.append(i)||new Uint8Array(0),await t.inflate.flush()),{data:i,signature:n}}},Qj=class{constructor(t,{encrypted:n,signed:i,compressed:o,level:r,zipCrypto:s,password:a,passwordVerification:c,encryptionStrength:l},{chunkSize:f}){Object.assign(this,{encrypted:n,signed:i,compressed:o,deflate:o&&new t({level:r||5,chunkSize:f}),crc32:i&&new Ny,zipCrypto:s,encrypt:n&&s?new gz(a,c):new mz(a,l)})}async append(t){let n=this,i=t;return n.compressed&&t.length&&(i=await n.deflate.append(t)),n.encrypted&&i.length&&(i=await n.encrypt.append(i)),(!n.encrypted||n.zipCrypto)&&n.signed&&t.length&&n.crc32.append(t),i}async flush(){let t=this,n,i=new Uint8Array(0);if(t.compressed&&(i=await t.deflate.flush()||new Uint8Array(0)),t.encrypted){i=await t.encrypt.append(i);let o=t.encrypt.flush();n=o.signature;let r=new Uint8Array(i.length+o.data.length);r.set(i,0),r.set(o.data,i.length),i=r}return(!t.encrypted||t.zipCrypto)&&t.signed&&(n=t.crc32.get()),{data:i,signature:n}}};function Tme(e,t,n){if(t.codecType.startsWith(xz))return new Qj(e,t,n);if(t.codecType.startsWith(bz))return new $j(e,t,n)}var Ame="init",Cme="append",Jj="flush",WJe="message",Eme=!0,Tz=(e,t,n,i,o,r,s)=>(Object.assign(e,{busy:!0,codecConstructor:t,options:Object.assign({},n),scripts:s,terminate(){e.worker&&!e.busy&&(e.worker.terminate(),e.interface=null)},onTaskFinished(){e.busy=!1,o(e)}}),r?qJe(e,i):jJe(e,i));function jJe(e,t){let n=Tme(e.codecConstructor,e.options,t);return{async append(i){try{return await n.append(i)}catch(o){throw e.onTaskFinished(),o}},async flush(){try{return await n.flush()}finally{e.onTaskFinished()}},abort(){e.onTaskFinished()}}}function qJe(e,t){let n,i={type:"module"};if(!e.interface){if(!Eme)e.worker=o(i,t.baseURL);else try{e.worker=o({},t.baseURL)}catch{Eme=!1,e.worker=o(i,t.baseURL)}e.worker.addEventListener(WJe,a,!1),e.interface={append(c){return r({type:Cme,data:c})},flush(){return r({type:Jj})},abort(){e.onTaskFinished()}}}return e.interface;function o(c,l){let f,d;f=e.scripts[0],typeof f=="function"&&(f=f());try{d=new URL(f,l)}catch{d=f}return new Worker(d,c)}async function r(c){if(!n){let l=e.options,f=e.scripts.slice(1);await s({scripts:f,type:Ame,options:l,config:{chunkSize:t.chunkSize}})}return s(c)}function s(c){let l=e.worker,f=new Promise((d,p)=>n={resolve:d,reject:p});try{if(c.data)try{c.data=c.data.buffer,l.postMessage(c,[c.data])}catch{l.postMessage(c)}else l.postMessage(c)}catch(d){n.reject(d),n=null,e.onTaskFinished()}return f}function a(c){let l=c.data;if(n){let f=l.error,d=l.type;if(f){let p=new Error(f.message);p.stack=f.stack,n.reject(p),n=null,e.onTaskFinished()}else if(d==Ame||d==Jj||d==Cme){let p=l.data;d==Jj?(n.resolve({data:new Uint8Array(p),signature:l.signature}),n=null,e.onTaskFinished()):n.resolve(p&&new Uint8Array(p))}}}}var Gb=[],e7=[];function Az(e,t,n){let o=!(!t.compressed&&!t.signed&&!t.encrypted)&&(t.useWebWorkers||t.useWebWorkers===void 0&&n.useWebWorkers),r=o&&n.workerScripts?n.workerScripts[t.codecType]:[];if(Gb.length<n.maxWorkers){let a={};return Gb.push(a),Tz(a,e,t,n,s,o,r)}else{let a=Gb.find(c=>!c.busy);return a?(Sme(a),Tz(a,e,t,n,s,o,r)):new Promise(c=>e7.push({resolve:c,codecConstructor:e,options:t,webWorker:o,scripts:r}))}function s(a){if(e7.length){let[{resolve:c,codecConstructor:l,options:f,webWorker:d,scripts:p}]=e7.splice(0,1);c(Tz(a,l,f,n,s,d,p))}else a.worker?(Sme(a),Number.isFinite(n.terminateWorkerTimeout)&&n.terminateWorkerTimeout>=0&&(a.terminateTimeout=setTimeout(()=>{Gb=Gb.filter(c=>c!=a),a.terminate()},n.terminateWorkerTimeout))):Gb=Gb.filter(c=>c!=a)}}function Sme(e){e.terminateTimeout&&(clearTimeout(e.terminateTimeout),e.terminateTimeout=null)}var vme="Abort error";async function Cz(e,t,n,i,o,r,s){let a=Math.max(r.chunkSize,64);return c();async function c(l=0,f=0){let d=s.signal,p=o();if(l<p){t7(d,e);let g=await t.readUint8Array(l+i,Math.min(a,p-l)),m=g.length;t7(d,e);let x=await e.append(g);if(t7(d,e),f+=await wme(n,x),s.onprogress)try{s.onprogress(l+m,p)}catch{}return c(l+a,f)}else{let g=await e.flush();return f+=await wme(n,g.data),{signature:g.signature,length:f}}}}function t7(e,t){if(e&&e.aborted)throw t.abort(),new Error(vme)}async function wme(e,t){return t.length&&await e.writeUint8Array(t),t.length}var n7="text/plain";var Ez=class{constructor(){this.size=0}init(){this.initialized=!0}},Sz=class extends Ez{},kL=class extends Ez{writeUint8Array(t){this.size+=t.length}},wz=class extends Sz{constructor(t){super(),this.blobReader=new Wb(new Blob([t],{type:n7}))}init(){super.init(),this.blobReader.init(),this.size=this.blobReader.size}readUint8Array(t,n){return this.blobReader.readUint8Array(t,n)}},vz=class extends kL{constructor(t){super(),this.encoding=t,this.blob=new Blob([],{type:n7})}writeUint8Array(t){super.writeUint8Array(t),this.blob=new Blob([this.blob,t.buffer],{type:n7})}getData(){if(this.blob.text)return this.blob.text();{let t=new FileReader;return new Promise((n,i)=>{t.onload=o=>n(o.target.result),t.onerror=()=>i(t.error),t.readAsText(this.blob,this.encoding)})}}};var Dz=class extends kL{constructor(t){super(),this.data="data:"+(t||"")+";base64,",this.pending=[]}writeUint8Array(t){super.writeUint8Array(t);let n=0,i=this.pending,o=this.pending.length;for(this.pending="",n=0;n<Math.floor((o+t.length)/3)*3-o;n++)i+=String.fromCharCode(t[n]);for(;n<t.length;n++)this.pending+=String.fromCharCode(t[n]);i.length>2?this.data+=btoa(i):this.pending=i}getData(){return this.data+btoa(this.pending)}},Wb=class extends Sz{constructor(t){super(),this.blob=t,this.size=t.size}async readUint8Array(t,n){if(this.blob.arrayBuffer)return new Uint8Array(await this.blob.slice(t,t+n).arrayBuffer());{let i=new FileReader;return new Promise((o,r)=>{i.onload=s=>o(new Uint8Array(s.target.result)),i.onerror=()=>r(i.error),i.readAsArrayBuffer(this.blob.slice(t,t+n))})}}},UE=class extends kL{constructor(t){super(),this.contentType=t,this.arrayBuffersMaxlength=8,Dme(this)}writeUint8Array(t){super.writeUint8Array(t),this.arrayBuffers.length==this.arrayBuffersMaxlength&&Ime(this),this.arrayBuffers.push(t.buffer)}getData(){return this.blob||(this.arrayBuffers.length&&Ime(this),this.blob=this.pendingBlob,Dme(this)),this.blob}};function Dme(e){e.pendingBlob=new Blob([],{type:e.contentType}),e.arrayBuffers=[]}function Ime(e){e.pendingBlob=new Blob([e.pendingBlob,...e.arrayBuffers],{type:e.contentType}),e.arrayBuffers=[]}var VE="/",i7=new Date(2107,11,31),o7=new Date(1980,0,1);var YJe="\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(""),Pme=e=>{let t="";for(let n=0;n<e.length;n++)t+=YJe[e[n]];return t};var Iz=XJe;function XJe(e,t){if(t&&t.trim().toLowerCase()=="cp437")return Pme(e);if(typeof TextDecoder>"u"){let n=new FileReader;return new Promise((i,o)=>{n.onload=r=>i(r.target.result),n.onerror=()=>o(n.error),n.readAsText(new Blob([e]))})}else return new TextDecoder(t).decode(e)}var KJe=["filename","rawFilename","directory","encrypted","compressedSize","uncompressedSize","lastModDate","rawLastModDate","comment","rawComment","signature","extraField","rawExtraField","bitFlag","extraFieldZip64","extraFieldUnicodePath","extraFieldUnicodeComment","extraFieldAES","filenameUTF8","commentUTF8","offset","zip64","compressionMethod","extraFieldNTFS","lastAccessDate","creationDate","extraFieldExtendedTimestamp","version","versionMadeBy","msDosCompatible","internalFileAttribute","externalFileAttribute"],I_=class{constructor(t){KJe.forEach(n=>this[n]=t[n])}};var a7="File format is not recognized",JJe="End of central directory not found",eet="End of Zip64 central directory not found",tet="End of Zip64 central directory locator not found",net="Central directory header not found",iet="Local file header not found",oet="Zip64 extra field not found",ret="File contains encrypted entry",set="Encryption method not supported",Ome="Compression method not supported",Rme="utf-8",Mme="cp437",Lme=["uncompressedSize","compressedSize","offset"],kz=class{constructor(t,n={}){Object.assign(this,{reader:t,options:n,config:dz()})}async*getEntriesGenerator(t={}){let n=this,i=n.reader;if(i.initialized||await i.init(),i.size<22)throw new Error(a7);let o=await det(i,101010256,i.size,22,65535*16);if(!o)throw new Error(JJe);let r=uc(o),s=ta(r,12),a=ta(r,16),c=wu(r,8),l=0;if(a==4294967295||s==4294967295||c==65535){let g=await By(i,o.offset-20,20),m=uc(g);if(ta(m,0)!=117853008)throw new Error(eet);a=Pz(m,8);let x=await By(i,a,56),b=uc(x),T=o.offset-20-56;if(ta(b,0)!=101075792&&a!=T){let A=a;a=T,l=a-A,x=await By(i,a,56),b=uc(x)}if(ta(b,0)!=101075792)throw new Error(tet);c=Pz(b,32),s=Pz(b,40),a-=s}if(a<0||a>=i.size)throw new Error(a7);let f=0,d=await By(i,a,s),p=uc(d);if(s){let g=o.offset-s;if(ta(p,f)!=33639248&&a!=g){let m=a;a=g,l=a-m,d=await By(i,a,s),p=uc(d)}}if(a<0||a>=i.size)throw new Error(a7);for(let g=0;g<c;g++){let m=new l7(i,n.config,n.options);if(ta(p,f)!=33639248)throw new Error(net);Fme(m,p,f+6);let x=!!m.bitFlag.languageEncodingFlag,b=f+46,T=b+m.filenameLength,A=T+m.extraFieldLength,C=wu(p,f+4),S=(C&0)==0;Object.assign(m,{versionMadeBy:C,msDosCompatible:S,compressedSize:0,uncompressedSize:0,commentLength:wu(p,f+32),directory:S&&(HE(p,f+38)&16)==16,offset:ta(p,f+42)+l,internalFileAttribute:ta(p,f+34),externalFileAttribute:ta(p,f+38),rawFilename:d.subarray(b,T),filenameUTF8:x,commentUTF8:x,rawExtraField:d.subarray(T,A)});let w=A+m.commentLength;m.rawComment=d.subarray(A,w);let D=zE(n,t,"filenameEncoding"),O=zE(n,t,"commentEncoding"),[R,L]=await Promise.all([Iz(m.rawFilename,m.filenameUTF8?Rme:D||Mme),Iz(m.rawComment,m.commentUTF8?Rme:O||Mme)]);m.filename=R,m.comment=L,!m.directory&&m.filename.endsWith(VE)&&(m.directory=!0),await Bme(m,m,p,f+6);let N=new I_(m);if(N.getData=(_,E)=>m.getData(_,N,E),f=w,t.onprogress)try{t.onprogress(g+1,c,new I_(m))}catch{}yield N}return!0}async getEntries(t={}){let n=[],i=this.getEntriesGenerator(t),o=i.next();for(;!(await o).done;)n.push((await o).value),o=i.next();return n}async close(){}};var l7=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,extraFieldAES:a,compressionMethod:c,config:l,bitFlag:f,signature:d,rawLastModDate:p,compressedSize:g}=o,m=o.localDirectory={};r.initialized||await r.init();let x=await By(r,s,30),b=uc(x),T=zE(o,i,"password");if(T=T&&T.length&&T,a&&a.originalCompressionMethod!=99)throw new Error(Ome);if(c!=0&&c!=8)throw new Error(Ome);if(ta(b,0)!=67324752)throw new Error(iet);Fme(m,b,4),x=await By(r,s,30+m.filenameLength+m.extraFieldLength),m.rawExtraField=x.subarray(30+m.filenameLength),await Bme(o,m,b,4),n.lastAccessDate=m.lastAccessDate,n.creationDate=m.creationDate;let A=o.encrypted&&m.encrypted,C=A&&!a;if(A){if(!C&&a.strength===void 0)throw new Error(set);if(!T)throw new Error(ret)}let S=await Az(l.Inflate,{codecType:bz,password:T,zipCrypto:C,encryptionStrength:a&&a.strength,signed:zE(o,i,"checkSignature"),passwordVerification:C&&(f.dataDescriptor?p>>>8&255:d>>>24&255),signature:d,compressed:c!=0,encrypted:A,useWebWorkers:zE(o,i,"useWebWorkers")},l);t.initialized||await t.init();let w=zE(o,i,"signal"),D=s+30+m.filenameLength+m.extraFieldLength;return await Cz(S,r,t,D,()=>g,l,{onprogress:i.onprogress,signal:w}),t.getData()}};function Fme(e,t,n){let i=e.rawBitFlag=wu(t,n+2),o=(i&1)==1,r=ta(t,n+6);Object.assign(e,{encrypted:o,version:wu(t,n),bitFlag:{level:(i&6)>>1,dataDescriptor:(i&8)==8,languageEncodingFlag:(i&2048)==2048},rawLastModDate:r,lastModDate:het(r),filenameLength:wu(t,n+22),extraFieldLength:wu(t,n+24)})}async function Bme(e,t,n,i){let o=t.rawExtraField,r=t.extraField=new Map,s=uc(new Uint8Array(o)),a=0;try{for(;a<o.length;){let x=wu(s,a),b=wu(s,a+2);r.set(x,{type:x,data:o.slice(a+4,a+4+b)}),a+=4+b}}catch{}let c=wu(n,i+4);t.signature=ta(n,i+10),t.uncompressedSize=ta(n,i+18),t.compressedSize=ta(n,i+14);let l=r.get(1);l&&(aet(l,t),t.extraFieldZip64=l);let f=r.get(28789);f&&(await Nme(f,"filename","rawFilename",t,e),t.extraFieldUnicodePath=f);let d=r.get(25461);d&&(await Nme(d,"comment","rawComment",t,e),t.extraFieldUnicodeComment=d);let p=r.get(39169);p?(cet(p,t,c),t.extraFieldAES=p):t.compressionMethod=c;let g=r.get(10);g&&(uet(g,t),t.extraFieldNTFS=g);let m=r.get(21589);m&&(fet(m,t),t.extraFieldExtendedTimestamp=m)}function aet(e,t){t.zip64=!0;let n=uc(e.data);e.values=[];for(let o=0;o<Math.floor(e.data.length/8);o++)e.values.push(Pz(n,0+o*8));let i=Lme.filter(o=>t[o]==4294967295);for(let o=0;o<i.length;o++)e[i[o]]=e.values[o];Lme.forEach(o=>{if(t[o]==4294967295)if(e[o]!==void 0)t[o]=e[o];else throw new Error(oet)})}async function Nme(e,t,n,i,o){let r=uc(e.data);e.version=HE(r,0),e.signature=ta(r,1);let s=new Ny;s.append(o[n]);let a=uc(new Uint8Array(4));a.setUint32(0,s.get(),!0),e[t]=await Iz(e.data.subarray(5)),e.valid=!o.bitFlag.languageEncodingFlag&&e.signature==ta(a,0),e.valid&&(i[t]=e[t],i[t+"UTF8"]=!0)}function cet(e,t,n){let i=uc(e.data);e.vendorVersion=HE(i,0),e.vendorId=HE(i,2);let o=HE(i,4);e.strength=o,e.originalCompressionMethod=n,t.compressionMethod=e.compressionMethod=wu(i,5)}function uet(e,t){let n=uc(e.data),i=4,o;try{for(;i<e.data.length&&!o;){let r=wu(n,i),s=wu(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=uc(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 l=c7(s),f=c7(a),d=c7(c),p={lastModDate:l,lastAccessDate:f,creationDate:d};Object.assign(e,p),Object.assign(t,p)}}catch{}}function fet(e,t){let n=uc(e.data),i=HE(n,0),o=[],r=[];(i&1)==1&&(o.push("lastModDate"),r.push("rawLastModDate")),(i&2)==2&&(o.push("lastAccessDate"),r.push("rawLastAccessDate")),(i&4)==4&&(o.push("creationDate"),r.push("rawCreationDate"));let s=1;o.forEach((a,c)=>{if(e.data.length>=s+4){let l=ta(n,s);t[a]=e[a]=new Date(l*1e3);let f=r[c];e[f]=l}s+=4})}async function det(e,t,n,i,o){let r=new Uint8Array(4),s=uc(r);met(s,0,t);let a=i+o;return await c(i)||await c(Math.min(a,n));async function c(l){let f=n-l,d=await By(e,f,l);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 zE(e,t,n){return t[n]===void 0?e.options[n]:t[n]}function het(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 c7(e){return new Date(Number(e/BigInt(1e4)-BigInt(116444736e5)))}function HE(e,t){return e.getUint8(t)}function wu(e,t){return e.getUint16(t,!0)}function ta(e,t){return e.getUint32(t,!0)}function Pz(e,t){return Number(e.getBigUint64(t,!0))}function met(e,t,n){e.setUint32(t,n,!0)}function uc(e){return new DataView(e.buffer)}function By(e,t,n){return e.readUint8Array(t,n)}var xet="File already exists",bet="Zip file comment exceeds 64KB",Tet="File entry comment exceeds 64KB",Aet="File entry name exceeds 64KB",Vme="Version exceeds 65535",Cet="The strength must equal 1, 2, or 3",Eet="Extra field type exceeds 65535",wet="Extra field data exceeds 64KB",T7="Zip64 is not supported",zme=new Uint8Array([7,0,2,0,65,69,3,0,0]),Hme=24,x7=0,zz=class{constructor(t,n={}){Object.assign(this,{writer:t,options:n,config:dz(),files:new Map,offset:t.size,pendingCompressedSize:0,pendingEntries:[],pendingAddFileCalls:new Set})}async add(t="",n,i={}){let o=this;if(x7<o.config.maxWorkers){x7++;let r;try{return r=vet(o,t,n,i),this.pendingAddFileCalls.add(r),await r}finally{this.pendingAddFileCalls.delete(r),x7--;let s=o.pendingEntries.shift();s&&o.add(s.name,s.reader,s.options).then(s.resolve).catch(s.reject)}}else return new Promise((r,s)=>o.pendingEntries.push({name:t,reader:n,options:i,resolve:r,reject:s}))}async close(t=new Uint8Array(0),n={}){for(;this.pendingAddFileCalls.size;)await Promise.all(Array.from(this.pendingAddFileCalls));return await Pet(this,t,n),this.writer.getData()}};async function vet(e,t,n,i){if(t=t.trim(),i.directory&&!t.endsWith(VE)?t+=VE:i.directory=t.endsWith(VE),e.files.has(t))throw new Error(xet);let o=LL(t);if(o.length>65535)throw new Error(Aet);let r=i.comment||"",s=LL(r);if(s.length>65535)throw new Error(Tet);let a=e.options.version||i.version||0;if(a>65535)throw new Error(Vme);let c=e.options.versionMadeBy||i.versionMadeBy||20;if(c>65535)throw new Error(Vme);let l=Sa(e,i,"lastModDate")||new Date,f=Sa(e,i,"lastAccessDate"),d=Sa(e,i,"creationDate"),p=Sa(e,i,"password"),g=Sa(e,i,"encryptionStrength")||3,m=Sa(e,i,"zipCrypto");if(p!==void 0&&g!==void 0&&(g<1||g>3))throw new Error(Cet);let x=new Uint8Array(0),b=i.extraField;if(b){let B=0,V=0;b.forEach(U=>B+=4+U.length),x=new Uint8Array(B),b.forEach((U,G)=>{if(G>65535)throw new Error(Eet);if(U.length>65535)throw new Error(wet);ia(x,new Uint16Array([G]),V),ia(x,new Uint16Array([U.length]),V+2),ia(x,U,V+4),V+=4+U.length})}let T=Sa(e,i,"extendedTimestamp");T===void 0&&(T=!0);let A=0,C=Sa(e,i,"keepOrder");C===void 0&&(C=!0);let S=0,w=Sa(e,i,"msDosCompatible");w===void 0&&(w=!0);let D=Sa(e,i,"internalFileAttribute")||0,O=Sa(e,i,"externalFileAttribute")||0;n&&(n.initialized||await n.init(),S=n.size,A=Ret(S));let R=i.zip64||e.options.zip64||!1;if(e.offset+e.pendingCompressedSize>=4294967295||S>=4294967295||A>=4294967295){if(i.zip64===!1||e.options.zip64===!1||!C)throw new Error(T7);R=!0}e.pendingCompressedSize+=A,await Promise.resolve();let L=Sa(e,i,"level"),N=Sa(e,i,"useWebWorkers"),_=Sa(e,i,"bufferedWrite"),E=Sa(e,i,"dataDescriptor"),v=Sa(e,i,"dataDescriptorSignature"),I=Sa(e,i,"signal");E===void 0&&(E=!0),E&&v===void 0&&(v=!1);let M=await Det(e,t,n,Object.assign({},i,{rawFilename:o,rawComment:s,version:a,versionMadeBy:c,lastModDate:l,lastAccessDate:f,creationDate:d,rawExtraField:x,zip64:R,password:p,level:L,useWebWorkers:N,encryptionStrength:g,extendedTimestamp:T,zipCrypto:m,bufferedWrite:_,keepOrder:C,dataDescriptor:E,dataDescriptorSignature:v,signal:I,msDosCompatible:w,internalFileAttribute:D,externalFileAttribute:O}));return A&&(e.pendingCompressedSize-=A),Object.assign(M,{name:t,comment:r,extraField:b}),new I_(M)}async function Det(e,t,n,i){let o=e.files,r=e.writer,s=Array.from(o.values()).pop(),a={},c,l,f;o.set(t,a);try{let d,p,g;if(i.keepOrder&&(d=s&&s.lock),a.lock=g=new Promise(m=>f=m),i.bufferedWrite||e.lockWrite||!i.dataDescriptor?(p=new UE,p.init(),c=!0):(e.lockWrite=new Promise(m=>l=m),r.initialized||await r.init(),p=r),a=await Iet(n,p,e.config,i),a.lock=g,o.set(t,a),a.filename=t,c){let m=0,x=p.getData();await Promise.all([e.lockWrite,d]);let b;do b=Array.from(o.values()).find(T=>T.writingBufferedData),b&&await b.lock;while(b&&b.lock);if(a.writingBufferedData=!0,!i.dataDescriptor){let A=await Gme(x,0,26),C=new DataView(A);(!a.encrypted||i.zipCrypto)&&mo(C,14,a.signature),a.zip64?(mo(C,18,4294967295),mo(C,22,4294967295)):(mo(C,18,a.compressedSize),mo(C,22,a.uncompressedSize)),await r.writeUint8Array(new Uint8Array(A)),m=26}await Oet(r,x,m),delete a.writingBufferedData}if(a.offset=e.offset,a.zip64){let m=ah(a.rawExtraFieldZip64);Fl(m,20,BigInt(a.offset))}else if(a.offset>=4294967295)throw new Error(T7);return e.offset+=a.length,a}catch(d){throw(c&&a.writingBufferedData||!c&&a.dataWritten)&&(d.corruptedEntry=e.hasCorruptedEntries=!0,a.uncompressedSize&&(e.offset+=a.uncompressedSize)),o.delete(t),d}finally{f(),l&&l()}}async function Iet(e,t,n,i){let{rawFilename:o,lastAccessDate:r,creationDate:s,password:a,level:c,zip64:l,zipCrypto:f,dataDescriptor:d,dataDescriptorSignature:p,directory:g,version:m,versionMadeBy:x,rawComment:b,rawExtraField:T,useWebWorkers:A,onprogress:C,signal:S,encryptionStrength:w,extendedTimestamp:D,msDosCompatible:O,internalFileAttribute:R,externalFileAttribute:L}=i,N=!!(a&&a.length),_=c!==0&&!g,E;if(N&&!f){E=new Uint8Array(zme.length+2);let Re=ah(E);$o(Re,0,39169),ia(E,zme,2),Hz(Re,8,w)}else E=new Uint8Array(0);let v,I;if(D){I=new Uint8Array(9+(r?4:0)+(s?4:0));let Re=ah(I);$o(Re,0,21589),$o(Re,2,I.length-4);let ze=1+(r?2:0)+(s?4:0);Hz(Re,4,ze),mo(Re,5,Math.floor(i.lastModDate.getTime()/1e3)),r&&mo(Re,9,Math.floor(r.getTime()/1e3)),s&&mo(Re,13,Math.floor(s.getTime()/1e3));try{v=new Uint8Array(36);let ut=ah(v),Vt=b7(i.lastModDate);$o(ut,0,10),$o(ut,2,32),$o(ut,8,1),$o(ut,10,24),Fl(ut,12,Vt),Fl(ut,20,b7(r)||Vt),Fl(ut,28,b7(s)||Vt)}catch{v=new Uint8Array(0)}}else v=I=new Uint8Array(0);let M={version:m||20,versionMadeBy:x,zip64:l,directory:!!g,filenameUTF8:!0,rawFilename:o,commentUTF8:!0,rawComment:b,rawExtraFieldZip64:l?new Uint8Array(Hme+4):new Uint8Array(0),rawExtraFieldExtendedTimestamp:I,rawExtraFieldNTFS:v,rawExtraFieldAES:E,rawExtraField:T,extendedTimestamp:D,msDosCompatible:O,internalFileAttribute:R,externalFileAttribute:L},B=M.uncompressedSize=0,V=2048;d&&(V=V|8);let U=0;_&&(U=8),l&&(M.version=M.version>45?M.version:45),N&&(V=V|1,f||(M.version=M.version>51?M.version:51,U=99,_&&(M.rawExtraFieldAES[9]=8))),M.compressionMethod=U;let G=M.headerArray=new Uint8Array(26),k=ah(G);$o(k,0,M.version),$o(k,2,V),$o(k,4,U);let Y=new Uint32Array(1),j=ah(Y),$;i.lastModDate<o7?$=o7:i.lastModDate>i7?$=i7:$=i.lastModDate,$o(j,0,($.getHours()<<6|$.getMinutes())<<5|$.getSeconds()/2),$o(j,2,($.getFullYear()-1980<<4|$.getMonth()+1)<<5|$.getDate());let W=Y[0];mo(k,6,W),$o(k,22,o.length);let K=E.length+I.length+v.length+M.rawExtraField.length;$o(k,24,K);let Z=new Uint8Array(30+o.length+K),me=ah(Z);mo(me,0,67324752),ia(Z,G,4),ia(Z,o,30),ia(Z,E,30+o.length),ia(Z,I,30+o.length+E.length),ia(Z,v,30+o.length+E.length+I.length),ia(Z,M.rawExtraField,30+o.length+E.length+I.length+v.length);let xe,re=0;if(e){let Re=await Az(n.Deflate,{codecType:xz,level:c,password:a,encryptionStrength:w,zipCrypto:N&&f,passwordVerification:N&&f&&W>>8&255,signed:!0,compressed:_,encrypted:N,useWebWorkers:A},n);await t.writeUint8Array(Z),M.dataWritten=!0,xe=await Cz(Re,e,t,0,()=>e.size,n,{onprogress:C,signal:S}),B=M.uncompressedSize=e.size,re=xe.length}else await t.writeUint8Array(Z),M.dataWritten=!0;let ye=new Uint8Array(0),ge,Ae=0;if(d&&(ye=new Uint8Array(l?p?24:20:p?16:12),ge=ah(ye),p&&(Ae=4,mo(ge,0,134695760))),e){let Re=xe.signature;if((!N||f)&&Re!==void 0&&(mo(k,10,Re),M.signature=Re,d&&mo(ge,Ae,Re)),l){let ze=ah(M.rawExtraFieldZip64);$o(ze,0,1),$o(ze,2,Hme),mo(k,14,4294967295),Fl(ze,12,BigInt(re)),mo(k,18,4294967295),Fl(ze,4,BigInt(B)),d&&(Fl(ge,Ae+4,BigInt(re)),Fl(ge,Ae+12,BigInt(B)))}else mo(k,14,re),mo(k,18,B),d&&(mo(ge,Ae+4,re),mo(ge,Ae+8,B))}d&&await t.writeUint8Array(ye);let De=Z.length+re+ye.length;return Object.assign(M,{compressedSize:re,lastModDate:$,rawLastModDate:W,creationDate:s,lastAccessDate:r,encrypted:N,length:De}),M}async function Pet(e,t,n){let i=e.writer,o=e.files,r=0,s=0,a=e.offset,c=o.size;for(let[,p]of o)s+=46+p.rawFilename.length+p.rawComment.length+p.rawExtraFieldZip64.length+p.rawExtraFieldAES.length+p.rawExtraFieldExtendedTimestamp.length+p.rawExtraFieldNTFS.length+p.rawExtraField.length;let l=n.zip64||e.options.zip64||!1;if(a>=4294967295||s>=4294967295||c>=65535){if(n.zip64===!1||e.options.zip64===!1)throw new Error(T7);l=!0}let f=new Uint8Array(s+(l?98:22)),d=ah(f);if(t&&t.length)if(t.length<=65535)$o(d,r+20,t.length);else throw new Error(bet);for(let[p,g]of Array.from(o.values()).entries()){let{rawFilename:m,rawExtraFieldZip64:x,rawExtraFieldAES:b,rawExtraField:T,rawComment:A,versionMadeBy:C,headerArray:S,directory:w,zip64:D,msDosCompatible:O,internalFileAttribute:R,externalFileAttribute:L}=g,N,_;if(g.extendedTimestamp){_=g.rawExtraFieldNTFS,N=new Uint8Array(9);let v=ah(N);$o(v,0,21589),$o(v,2,N.length-4),Hz(v,4,1),mo(v,5,Math.floor(g.lastModDate.getTime()/1e3))}else _=N=new Uint8Array(0);let E=x.length+b.length+N.length+_.length+T.length;if(mo(d,r,33639248),$o(d,r+4,C),ia(f,S,r+6),$o(d,r+30,E),$o(d,r+32,A.length),mo(d,r+34,R),L?mo(d,r+38,L):w&&O&&Hz(d,r+38,16),D?mo(d,r+42,4294967295):mo(d,r+42,g.offset),ia(f,m,r+46),ia(f,x,r+46+m.length),ia(f,b,r+46+m.length+x.length),ia(f,N,r+46+m.length+x.length+b.length),ia(f,_,r+46+m.length+x.length+b.length+N.length),ia(f,T,r+46+m.length+x.length+b.length+N.length+_.length),ia(f,A,r+46+m.length+E),r+=46+m.length+E+A.length,n.onprogress)try{n.onprogress(p+1,o.size,new I_(g))}catch{}}l&&(mo(d,r,101075792),Fl(d,r+4,BigInt(44)),$o(d,r+12,45),$o(d,r+14,45),Fl(d,r+24,BigInt(c)),Fl(d,r+32,BigInt(c)),Fl(d,r+40,BigInt(s)),Fl(d,r+48,BigInt(a)),mo(d,r+56,117853008),Fl(d,r+64,BigInt(a)+BigInt(s)),mo(d,r+72,1),c=65535,a=4294967295,s=4294967295,r+=76),mo(d,r,101010256),$o(d,r+8,c),$o(d,r+10,c),mo(d,r+12,s),mo(d,r+16,a),await i.writeUint8Array(f),t&&t.length&&await i.writeUint8Array(t)}function Gme(e,t,n){if(e.arrayBuffer)return t||n?e.slice(t,n).arrayBuffer():e.arrayBuffer();{let i=new FileReader;return new Promise((o,r)=>{i.onload=s=>o(s.target.result),i.onerror=()=>r(i.error),i.readAsArrayBuffer(t||n?e.slice(t,n):e)})}}async function Oet(e,t,n=0){await o();async function o(){if(n<t.size){let r=await Gme(t,n,n+536870912);await e.writeUint8Array(new Uint8Array(r)),n+=536870912,await o()}}}function b7(e){if(e)return(BigInt(e.getTime())+BigInt(116444736e5))*BigInt(1e4)}function Sa(e,t,n){return t[n]===void 0?e.options[n]:t[n]}function Ret(e){return e+5*(Math.floor(e/16383)+1)}function Hz(e,t,n){e.setUint8(t,n)}function $o(e,t,n){e.setUint16(t,n,!0)}function mo(e,t,n){e.setUint32(t,n,!0)}function Fl(e,t,n){e.setBigUint64(t,n,!0)}function ia(e,t,n){e.set(t,n)}function ah(e){return new DataView(e.buffer)}LE({Deflate:Nhe,Inflate:ime});function Met(e){return typeof e=="string"&&(e=document.getElementById(e)),e}var wn=Met;function Let(e,t){this.position=e,this.headingPitchRange=t}var UL=Let;function Gz(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=[]}Gz.prototype.addPlaylistEntry=function(e){this.playlist.push(e)};Gz.prototype.play=function(e,t){this.tourStart.raiseEvent();let n=this;qme.call(this,e,t,function(i){n.playlistIndex=0,i||jme(n._activeEntries),n.tourEnd.raiseEvent(i)})};Gz.prototype.stop=function(){jme(this._activeEntries)};function jme(e){for(let t=e.pop();t!==void 0;t=e.pop())t.stop()}function qme(e,t,n){let i=this.playlist[this.playlistIndex];if(i){let o=Net.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 u(n)&&n(!1)}function Net(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++,qme.call(this,e,t,n)}}var VL=Gz;var Oi=Object.freeze({Linear:Object.freeze({None:function(e){return e},In:function(e){return this.None(e)},Out:function(e){return this.None(e)},InOut:function(e){return this.None(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-Oi.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?Oi.Bounce.In(e*2)*.5:Oi.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}}}}),zL=function(){return performance.now()},Fet=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=zL()),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}(),GE={Linear:function(e,t){var n=e.length-1,i=n*t,o=Math.floor(i),r=GE.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=GE.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=GE.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=GE.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}}},Yme=function(){function e(){}return e.nextId=function(){return e._nextId++},e._nextId=0,e}(),A7=new Fet,Xme=function(){function e(t,n){n===void 0&&(n=A7),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=Oi.Linear.None,this._interpolationFunction=GE.Linear,this._chainedTweens=[],this._onStartCallbackFired=!1,this._onEveryStartCallbackFired=!1,this._id=Yme.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.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,this},e.prototype.duration=function(t){return t===void 0&&(t=1e3),this._duration=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=zL()),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),l=c?"array":typeof a,f=!c&&Array.isArray(i[s]);if(!(l==="undefined"||l==="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((l==="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 A={};for(var T in d)A[T]=d[T];i[s]=d=A}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=zL()),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=zL()),!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=A7),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=Oi.Linear.None),this._easingFunction=t,this},e.prototype.interpolation=function(t){return t===void 0&&(t=GE.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){if(t===void 0&&(t=zL()),n===void 0&&(n=!0),this._isPaused)return!0;var i,o,r=this._startTime+this._duration;if(!this._goToEnd&&!this._isPlaying){if(t>r)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),o=(t-this._startTime)/this._duration,o=this._duration===0||o>1?1:o;var s=this._easingFunction(o);if(this._updateProperties(this._object,this._valuesStart,this._valuesEnd,s),this._onUpdateCallback&&this._onUpdateCallback(this._object,o),o===1)if(this._repeat>0){isFinite(this._repeat)&&this._repeat--;for(i in this._valuesStartRepeat)!this._yoyo&&typeof this._valuesEnd[i]=="string"&&(this._valuesStartRepeat[i]=this._valuesStartRepeat[i]+parseFloat(this._valuesEnd[i])),this._yoyo&&this._swapEndStartRepeatValues(i),this._valuesStart[i]=this._valuesStartRepeat[i];return this._yoyo&&(this._reversed=!this._reversed),this._repeatDelayTime!==void 0?this._startTime=t+this._repeatDelayTime:this._startTime=t+this._delayTime,this._onRepeatCallback&&this._onRepeatCallback(this._object),this._onEveryStartCallbackFired=!1,!0}else{this._onCompleteCallback&&this._onCompleteCallback(this._object);for(var a=0,c=this._chainedTweens.length;a<c;a++)this._chainedTweens[a].start(this._startTime+this._duration,!1);return this._isPlaying=!1,!1}return!0},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]),l=Array.isArray(a),f=!c&&l;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 Rjn=Yme.nextId,Em=A7,Mjn=Em.getAll.bind(Em),Ljn=Em.removeAll.bind(Em),Njn=Em.add.bind(Em),Fjn=Em.remove.bind(Em),Bjn=Em.update.bind(Em);var Bet={LINEAR_NONE:Oi.Linear.None,QUADRATIC_IN:Oi.Quadratic.In,QUADRATIC_OUT:Oi.Quadratic.Out,QUADRATIC_IN_OUT:Oi.Quadratic.InOut,CUBIC_IN:Oi.Cubic.In,CUBIC_OUT:Oi.Cubic.Out,CUBIC_IN_OUT:Oi.Cubic.InOut,QUARTIC_IN:Oi.Quartic.In,QUARTIC_OUT:Oi.Quartic.Out,QUARTIC_IN_OUT:Oi.Quartic.InOut,QUINTIC_IN:Oi.Quintic.In,QUINTIC_OUT:Oi.Quintic.Out,QUINTIC_IN_OUT:Oi.Quintic.InOut,SINUSOIDAL_IN:Oi.Sinusoidal.In,SINUSOIDAL_OUT:Oi.Sinusoidal.Out,SINUSOIDAL_IN_OUT:Oi.Sinusoidal.InOut,EXPONENTIAL_IN:Oi.Exponential.In,EXPONENTIAL_OUT:Oi.Exponential.Out,EXPONENTIAL_IN_OUT:Oi.Exponential.InOut,CIRCULAR_IN:Oi.Circular.In,CIRCULAR_OUT:Oi.Circular.Out,CIRCULAR_IN_OUT:Oi.Circular.InOut,ELASTIC_IN:Oi.Elastic.In,ELASTIC_OUT:Oi.Elastic.Out,ELASTIC_IN_OUT:Oi.Elastic.InOut,BACK_IN:Oi.Back.In,BACK_OUT:Oi.Back.Out,BACK_IN_OUT:Oi.Back.InOut,BOUNCE_IN:Oi.Bounce.In,BOUNCE_OUT:Oi.Bounce.Out,BOUNCE_IN_OUT:Oi.Bounce.InOut},kr=Object.freeze(Bet);function Wz(e,t,n){this.type="KmlTourFlyTo",this.blocking=!0,this.activeCamera=null,this.activeCallback=null,this.duration=e,this.view=n,this.flyToMode=t}Wz.prototype.play=function(e,t,n){if(this.activeCamera=t,u(e)&&e!==null){let o=this;this.activeCallback=function(r){delete o.activeCallback,delete o.activeCamera,e(u(r)?!1:r)}}let i=this.getCameraOptions(n);if(this.view.headingPitchRoll)t.flyTo(i);else if(this.view.headingPitchRange){let o=new se(this.view.position);t.flyToBoundingSphere(o,i)}};Wz.prototype.stop=function(){u(this.activeCamera)&&this.activeCamera.cancelFlight(),u(this.activeCallback)&&this.activeCallback(!0)};Wz.prototype.getCameraOptions=function(e){let t={duration:this.duration};return u(this.activeCallback)&&(t.complete=this.activeCallback),this.flyToMode==="smooth"&&(t.easingFunction=kr.LINEAR_NONE),this.view.headingPitchRoll?(t.destination=this.view.position,t.orientation=this.view.headingPitchRoll):this.view.headingPitchRange&&(t.offset=this.view.headingPitchRange),u(e)&&(t=gt(t,e)),t};var HL=Wz;function C7(e){this.type="KmlTourWait",this.blocking=!0,this.duration=e,this.timeout=null}C7.prototype.play=function(e){let t=this;this.activeCallback=e,this.timeout=setTimeout(function(){delete t.activeCallback,e(!1)},this.duration*1e3)};C7.prototype.stop=function(){clearTimeout(this.timeout),u(this.activeCallback)&&this.activeCallback(!0)};var GL=C7;var rpe={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=E0(t),rpe[t]}},P7;typeof DOMParser<"u"&&(P7=new DOMParser);var ket=new ope.default({stripPrefix:!1,email:!1,replaceFn:function(e){return e.urlMatchType==="scheme"||e.urlMatchType==="www"}}),ky=32,Kme=2414016,Zme=1,$me=16093e3,Qme=.1,Jme=[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"],epe=["http://www.google.com/kml/ext/2.2"],Uet=["http://www.w3.org/2005/Atom"],Oe={kml:Jme,gx:epe,atom:Uet,kmlgx:Jme.concat(epe)},O7={Document:ppe,Folder:ott,Placemark:rtt,NetworkLink:mtt,GroundOverlay:ftt,PhotoOverlay:ype,ScreenOverlay:utt,Tour:att};function Sm(e){this._dataSource=e,this._deferred=cl(),this._stack=[],this._promises=[],this._timeoutSet=!1,this._used=!1,this._started=0,this._timeThreshold=1e3}Object.defineProperties(Sm.prototype,{dataSource:{get:function(){return this._dataSource}}});Sm.prototype.addNodes=function(e,t){this._stack.push({nodes:e,index:0,processingData:t}),this._used=!0};Sm.prototype.addPromise=function(e){this._promises.push(e)};Sm.prototype.wait=function(){let e=this._deferred;return this._used||e.resolve(),Promise.all([e.promise,Promise.all(this._promises)])};Sm.prototype.process=function(){let e=this._stack.length===1;return e&&(this._started=Iu._getTimestamp()),this._process(e)};Sm.prototype._giveUpTime=function(){if(this._timeoutSet)return;this._timeoutSet=!0,this._timeThreshold=50;let e=this;setTimeout(function(){e._timeoutSet=!1,e._started=Iu._getTimestamp(),e._process(!0)},0)};Sm.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]};Sm.prototype._pop=function(){let e=this._stack;return e.pop(),e.length===0?(this._deferred.resolve(),!1):!0};Sm.prototype._process=function(e){let t=this.dataSource,n=this._stack[this._stack.length-1].processingData,i=this._nextNode();for(;u(i);){let o=O7[i.localName];if(u(o)&&(Oe.kml.indexOf(i.namespaceURI)!==-1||Oe.gx.indexOf(i.namespaceURI)!==-1)&&(o(t,i,n,this),this._timeoutSet||Iu._getTimestamp()>this._started+this._timeThreshold)){this._giveUpTime();return}i=this._nextNode()}this._pop()&&e&&this._process(!0)};function Vet(e){let t=e.slice(0,Math.min(4,e.size)),n=cl(),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 zet(e){let t=cl(),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 spe(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&&(u(n)||(n=e.substr(0,e.indexOf("<kml")+4),i=e.substr(n.length)),n+=` ${r}"${t[s]}"`));return u(n)&&(e=n+i),e}function ape(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 Het(e,t){return Promise.resolve(e.getData(new vz)).then(function(n){n=spe(n),n=ape(n),t.kml=P7.parseFromString(n,"application/xml")})}function E7(e,t){let n=y(rpe.detectFromFilename(e.filename),"application/octet-stream");return Promise.resolve(e.getData(new Dz(n))).then(function(i){t[e.filename]=i})}function vu(e,t,n,i){let o=i.keys,r=new WL.default("."),s=e.querySelectorAll(t);for(let a=0;a<s.length;a++){let c=s[a],l=c.getAttribute(n);if(u(l)){let d=new WL.default(l).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 Du(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=R7(a,i);u(c)&&s.setAttribute(n,c.url)}}function cpe(e,t,n){let i=ms(e,"id");i=u(i)&&i.length!==0?i:Wn(),u(n)&&(i=n+i);let o=t.getById(i);return u(o)&&(i=Wn(),u(n)&&(i=n+i)),o=t.add(new Yo({id:i})),u(o.kml)||(o.addProperty("kml"),o.kml=new ytt),o}function jL(e,t){return e==="absolute"||e==="relativeToGround"||t==="relativeToSeaFloor"}function Xz(e,t){if(!u(e))return h.fromDegrees(0,0,0,t);let n=e.match(/[^\s,\n]+/g);if(!u(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 jz(e,t){if(!u(e))return;let n=e.textContent.match(/[^\s\n]+/g);if(!u(n))return;let i=n.length,o=new Array(i),r=0;for(let s=0;s<i;s++)o[r++]=Xz(n[s],t);return o}function Uy(e,t){if(!u(e))return;let n=e.getAttribute(t);if(n!==null){let i=parseFloat(n);return isNaN(i)?void 0:i}}function ms(e,t){if(!u(e))return;let n=e.getAttribute(t);return n!==null?n:void 0}function Ri(e,t,n){if(!u(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 tpe(e,t,n){if(!u(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 ch(e,t,n){if(!u(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 ei(e,t,n){let i=Ri(e,t,n);if(u(i)){let o=parseFloat(i.textContent);return isNaN(o)?void 0:o}}function vn(e,t,n){let i=Ri(e,t,n);if(u(i))return i.textContent.trim()}function lh(e,t,n){let i=Ri(e,t,n);if(u(i)){let o=i.textContent.trim();return o==="1"||/^true$/i.test(o)}}function R7(e,t,n){if(!u(e))return;let i;if(u(n)){e=e.replace(/\\/g,"/");let o=n[e];if(u(o))i=new ve({url:o});else{let r=new WL.default(t.getUrlComponent()),s=new WL.default(e);o=n[s.absoluteTo(r)],u(o)&&(i=new ve({url:o}))}}return u(i)||(i=t.getDerivedResource({url:e})),i}var Bl={maximumRed:void 0,red:void 0,maximumGreen:void 0,green:void 0,maximumBlue:void 0,blue:void 0};function D7(e,t){if(!u(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?(Bl.maximumRed=r,Bl.red=void 0):(Bl.maximumRed=void 0,Bl.red=0),o>0?(Bl.maximumGreen=o,Bl.green=void 0):(Bl.maximumGreen=void 0,Bl.green=0),i>0?(Bl.maximumBlue=i,Bl.blue=void 0):(Bl.maximumBlue=void 0,Bl.blue=0),Bl.alpha=n,H.fromRandom(Bl)):new H(r,o,i,n)}function jb(e,t,n){let i=vn(e,t,n);if(u(i))return D7(i,vn(e,"colorMode",n)==="random")}function Get(e){let t=Ri(e,"TimeStamp",Oe.kmlgx),n=vn(t,"when",Oe.kmlgx);if(!u(t)||!u(n)||n.length===0)return;let i=J.fromIso8601(n),o=new Mr;return o.addInterval(new bn({start:i,stop:Ve.MAXIMUM_VALUE})),o}function Wet(e){let t=Ri(e,"TimeSpan",Oe.kmlgx);if(!u(t))return;let n,i=Ri(t,"begin",Oe.kmlgx),o=u(i)?J.fromIso8601(i.textContent):void 0,r=Ri(t,"end",Oe.kmlgx),s=u(r)?J.fromIso8601(r.textContent):void 0;if(u(o)&&u(s)){if(J.lessThan(s,o)){let a=o;o=s,s=a}n=new Mr,n.addInterval(new bn({start:o,stop:s}))}else u(o)?(n=new Mr,n.addInterval(new bn({start:o,stop:Ve.MAXIMUM_VALUE}))):u(s)&&(n=new Mr,n.addInterval(new bn({start:Ve.MINIMUM_VALUE,stop:s})));return n}function lpe(){let e=new Wa;return e.width=ky,e.height=ky,e.scaleByDistance=new Pt(Kme,Zme,$me,Qme),e.pixelOffsetScaleByDistance=new Pt(Kme,Zme,$me,Qme),e}function M7(){let e=new gd;return e.outline=!0,e.outlineColor=H.WHITE,e}function upe(){let e=new _d;return e.translucencyByDistance=new Pt(3e6,1,5e6,0),e.pixelOffset=new z(17,0),e.horizontalOrigin=mi.LEFT,e.font="16px sans-serif",e.style=Vo.FILL_AND_OUTLINE,e}function L7(e,t,n,i,o){let r=vn(e,"href",Oe.kml);if(!u(r)||r.length===0)return;if(r.indexOf("root://icons/palette-")===0){let a=r.charAt(21),c=y(ei(e,"x",Oe.gx),0),l=y(ei(e,"y",Oe.gx),0);c=Math.min(c/32,7),l=7-Math.min(l/32,7);let f=8*l+c;r=`https://maps.google.com/mapfiles/kml/pal${a}/icon${f}.png`}let s=R7(r,n,i);if(o){let a=vn(e,"refreshMode",Oe.kml),c=vn(e,"viewRefreshMode",Oe.kml);a==="onInterval"||a==="onExpire"?Dt(`kml-refreshMode-${a}`,`KML - Unsupported Icon refreshMode: ${a}`):(c==="onStop"||c==="onRegion")&&Dt(`kml-refreshMode-${c}`,`KML - Unsupported Icon viewRefreshMode: ${c}`);let l=y(vn(e,"viewBoundScale",Oe.kml),1),f=c==="onStop"?"BBOX=[bboxWest],[bboxSouth],[bboxEast],[bboxNorth]":"",d=y(vn(e,"viewFormat",Oe.kml),f),p=vn(e,"httpQuery",Oe.kml);u(d)&&s.setQueryParameters(Xl(Yz(d))),u(p)&&s.setQueryParameters(Xl(Yz(p)));let g=t._ellipsoid;return F7(s,t.camera,t.canvas,l,t._lastCameraView.bbox,g),s}return s}function jet(e,t,n,i,o){let r=ei(t,"scale",Oe.kml),s=ei(t,"heading",Oe.kml),a=jb(t,"color",Oe.kml),c=Ri(t,"Icon",Oe.kml),l=L7(c,e,i,o,!1);u(c)&&!u(l)&&(l=!1);let f=ei(c,"x",Oe.gx),d=ei(c,"y",Oe.gx),p=ei(c,"w",Oe.gx),g=ei(c,"h",Oe.gx),m=Ri(t,"hotSpot",Oe.kml),x=Uy(m,"x"),b=Uy(m,"y"),T=ms(m,"xunits"),A=ms(m,"yunits"),C=n.billboard;u(C)||(C=lpe(),n.billboard=C),C.image=l,C.scale=r,C.color=a,(u(f)||u(d)||u(p)||u(g))&&(C.imageSubRegion=new We(f,d,p,g)),u(s)&&s!==0&&(C.rotation=P.toRadians(-s),C.alignedAxis=h.UNIT_Z),r=y(r,1);let S,w;u(x)&&(T==="pixels"?S=-x*r:T==="insetPixels"?S=(x-ky)*r:T==="fraction"&&(S=-x*ky*r),S+=ky*.5*r),u(b)&&(A==="pixels"?w=b*r:A==="insetPixels"?w=(-b+ky)*r:A==="fraction"&&(w=b*ky*r),w-=ky*.5*r),(u(S)||u(w))&&(C.pixelOffset=new z(S,w))}function qz(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")jet(e,a,n,i,o);else if(a.localName==="LabelStyle"){let c=n.label;u(c)||(c=upe(),n.label=c),c.scale=y(ei(a,"scale",Oe.kml),c.scale),c.fillColor=y(jb(a,"color",Oe.kml),c.fillColor),c.text=n.name}else if(a.localName==="LineStyle"){let c=n.polyline;u(c)||(c=new Ya,n.polyline=c),c.width=ei(a,"width",Oe.kml),c.material=jb(a,"color",Oe.kml),u(jb(a,"outerColor",Oe.gx))&&Dt("kml-gx:outerColor","KML - gx:outerColor is not supported in a LineStyle"),u(ei(a,"outerWidth",Oe.gx))&&Dt("kml-gx:outerWidth","KML - gx:outerWidth is not supported in a LineStyle"),u(ei(a,"physicalWidth",Oe.gx))&&Dt("kml-gx:physicalWidth","KML - gx:physicalWidth is not supported in a LineStyle"),u(lh(a,"labelVisibility",Oe.gx))&&Dt("kml-gx:labelVisibility","KML - gx:labelVisibility is not supported in a LineStyle")}else if(a.localName==="PolyStyle"){let c=n.polygon;u(c)||(c=M7(),n.polygon=c),c.material=y(jb(a,"color",Oe.kml),c.material),c.fill=y(lh(a,"fill",Oe.kml),c.fill),c.outline=y(lh(a,"outline",Oe.kml),c.outline)}else if(a.localName==="BalloonStyle"){let c=y(D7(vn(a,"bgColor",Oe.kml)),H.WHITE),l=y(D7(vn(a,"textColor",Oe.kml)),H.BLACK),f=vn(a,"text",Oe.kml);n.addProperty("balloonStyle"),n.balloonStyle={bgColor:c,textColor:l,text:f}}else if(a.localName==="ListStyle"){let c=vn(a,"listItemType",Oe.kml);(c==="radioFolder"||c==="checkOffOnly")&&Dt(`kml-listStyle-${c}`,`KML - Unsupported ListStyle with listItemType: ${c}`)}}}function qet(e,t,n,i,o){let r=new Yo,s,a=-1,c=t.childNodes,l=c.length;for(let d=0;d<l;d++){let p=c[d];(p.localName==="Style"||p.localName==="StyleMap")&&(a=d)}if(a!==-1){let d=c[a];if(d.localName==="Style")qz(e,d,r,i,o);else{let p=ch(d,"Pair",Oe.kml);for(let g=0;g<p.length;g++){let m=p[g],x=vn(m,"key",Oe.kml);if(x==="normal"){let b=vn(m,"styleUrl",Oe.kml);if(u(b))s=n.getById(b),u(s)||(s=n.getById(`#${b}`)),u(s)&&r.merge(s);else{let T=Ri(m,"Style",Oe.kml);qz(e,T,r,i,o)}}else Dt(`kml-styleMap-${x}`,`KML - Unsupported StyleMap key: ${x}`)}}}let f=vn(t,"styleUrl",Oe.kml);if(u(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),u(s)||(s=n.getById(`#${d}`)),u(s)&&r.merge(s)}return r}function Yet(e,t,n){return t.fetchXML().then(function(i){return fpe(e,i,n,t,!0)})}function fpe(e,t,n,i,o,r){let s,a,c,l,f=tpe(t,"Style",Oe.kml);if(u(f)){let x=f.length;for(s=0;s<x;s++)l=f[s],a=ms(l,"id"),u(a)&&(a=`#${a}`,o&&u(i)&&(a=i.getUrlComponent()+a),u(n.getById(a))||(c=new Yo({id:a}),n.add(c),qz(e,l,c,i,r)))}let d=tpe(t,"StyleMap",Oe.kml);if(u(d)){let x=d.length;for(s=0;s<x;s++){let b=d[s];if(a=ms(b,"id"),u(a)){let T=ch(b,"Pair",Oe.kml);for(let A=0;A<T.length;A++){let C=T[A],S=vn(C,"key",Oe.kml);if(S==="normal"){if(a=`#${a}`,o&&u(i)&&(a=i.getUrlComponent()+a),!u(n.getById(a))){c=n.getOrCreateEntity(a);let w=vn(C,"styleUrl",Oe.kml);if(u(w)){w[0]!=="#"&&(w=`#${w}`),o&&u(i)&&(w=i.getUrlComponent()+w);let D=n.getById(w);u(D)&&c.merge(D)}else l=Ri(C,"Style",Oe.kml),qz(e,l,c,i,r)}}else Dt(`kml-styleMap-${S}`,`KML - Unsupported StyleMap key: ${S}`)}}}}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],A=i.getDerivedResource({url:T});p.push(Yet(e,A,n))}}}return p}function N7(e,t,n){let i=new y_(e,t.id,["position"]),o=new _m(t.position);t.polyline=u(n.polyline)?n.polyline.clone():new Ya,t.polyline.positions=new g_([i,o])}function dpe(e,t){return!u(e)&&!u(t)||e==="clampToGround"?Ge.CLAMP_TO_GROUND:e==="relativeToGround"?Ge.RELATIVE_TO_GROUND:e==="absolute"?Ge.NONE:t==="clampToSeaFloor"?(Dt("kml-gx:altitudeMode-clampToSeaFloor","KML - <gx:altitudeMode>:clampToSeaFloor is currently not supported, using <kml:altitudeMode>:clampToGround."),Ge.CLAMP_TO_GROUND):t==="relativeToSeaFloor"?(Dt("kml-gx:altitudeMode-relativeToSeaFloor","KML - <gx:altitudeMode>:relativeToSeaFloor is currently not supported, using <kml:altitudeMode>:relativeToGround."),Ge.RELATIVE_TO_GROUND):(u(e)?Dt("kml-altitudeMode-unknown",`KML - Unknown <kml:altitudeMode>:${e}, using <kml:altitudeMode>:CLAMP_TO_GROUND.`):Dt("kml-gx:altitudeMode-unknown",`KML - Unknown <gx:altitudeMode>:${t}, using <kml:altitudeMode>:CLAMP_TO_GROUND.`),Ge.CLAMP_TO_GROUND)}function Xet(e,t,n){return n==="relativeToSeaFloor"||t==="absolute"||t==="relativeToGround"?e:((u(t)&&t!=="clampToGround"||u(n)&&n!=="clampToSeaFloor")&&Dt("kml-altitudeMode-unknown",`KML - Unknown altitudeMode: ${y(t,n)}`),new _m(e))}function Ket(e,t,n,i){if(!u(e))return;if(n==="relativeToSeaFloor"||t==="absolute"||t==="relativeToGround")return e;(u(t)&&t!=="clampToGround"||u(n)&&n!=="clampToSeaFloor")&&Dt("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 Kz(e,t,n,i){let o=t.label;u(o)||(o=u(n.label)?n.label.clone():upe(),t.label=o),o.text=t.name;let r=t.billboard;u(r)||(r=u(n.billboard)?n.billboard.clone():lpe(),t.billboard=r),u(r.image)?r.image.getValue()||(r.image=void 0):r.image=e._pinBuilder.fromColor(H.YELLOW,64);let s=1;u(r.scale)&&(s=r.scale.getValue(),s!==0?o.pixelOffset=new z(s*16+1,0):(o.pixelOffset=void 0,o.horizontalOrigin=void 0)),u(i)&&e._clampToGround&&(r.heightReference=i,o.heightReference=i)}function hpe(e,t){let n=e.path;u(n)||(n=new _p,n.leadTime=0,e.path=n);let i=t.polyline;u(i)&&(n.material=i.material,n.width=i.width)}function Zet(e,t,n,i,o){let r=vn(n,"coordinates",Oe.kml),s=vn(n,"altitudeMode",Oe.kml),a=vn(n,"altitudeMode",Oe.gx),c=lh(n,"extrude",Oe.kml),l=e._ellipsoid,f=Xz(r,l);return i.position=f,Kz(e,i,o,dpe(s,a)),c&&jL(s,a)&&N7(t,i,o),!0}function npe(e,t,n,i,o){let r=Ri(n,"coordinates",Oe.kml),s=vn(n,"altitudeMode",Oe.kml),a=vn(n,"altitudeMode",Oe.gx),c=lh(n,"extrude",Oe.kml),l=lh(n,"tessellate",Oe.kml),f=jL(s,a),d=ei(n,"drawOrder",Oe.gx),p=e._ellipsoid,g=jz(r,p),m=o.polyline;if(f&&c){let x=new gp;i.wall=x,x.positions=g;let b=o.polygon;u(b)&&(x.fill=b.fill,x.material=b.material),x.outline=!0,u(m)?(x.outlineColor=u(m.material)?m.material.color:H.WHITE,x.outlineWidth=m.width):u(b)&&(x.outlineColor=u(b.material)?b.material.color:H.WHITE)}else if(e._clampToGround&&!f&&l){let x=new Ya;x.clampToGround=!0,i.polyline=x,x.positions=g,u(m)?(x.material=u(m.material)?m.material.color.getValue(Ve.MINIMUM_VALUE):H.WHITE,x.width=y(m.width,1)):(x.material=H.WHITE,x.width=1),x.zIndex=d}else u(d)&&Dt("kml-gx:drawOrder","KML - gx:drawOrder is not supported in LineStrings when clampToGround is false"),e._clampToGround&&!l&&Dt("kml-line-tesselate","Ignoring clampToGround for KML lines without the tessellate flag."),m=u(m)?m.clone():new Ya,i.polyline=m,m.positions=Ket(g,s,a,p),(!l||f)&&(m.arcType=qt.NONE);return!0}function $et(e,t,n,i,o){let r=Ri(n,"outerBoundaryIs",Oe.kml),s=Ri(r,"LinearRing",Oe.kml),a=Ri(s,"coordinates",Oe.kml),c=e._ellipsoid,l=jz(a,c),f=lh(n,"extrude",Oe.kml),d=vn(n,"altitudeMode",Oe.kml),p=vn(n,"altitudeMode",Oe.gx),g=jL(d,p),m=u(o.polygon)?o.polygon.clone():M7(),x=o.polyline;if(u(x)&&(m.outlineColor=u(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),u(l)){let b=new ga(l),T=ch(n,"innerBoundaryIs",Oe.kml);for(let A=0;A<T.length;A++){s=ch(T[A],"LinearRing",Oe.kml);for(let C=0;C<s.length;C++)a=Ri(s[C],"coordinates",Oe.kml),l=jz(a,c),u(l)&&b.holes.push(new ga(l))}m.hierarchy=b}return!0}function Qet(e,t,n,i,o){let r=vn(n,"altitudeMode",Oe.kml),s=vn(n,"altitudeMode",Oe.gx),a=ch(n,"coord",Oe.gx),c=ch(n,"angles",Oe.gx),l=ch(n,"when",Oe.kml),f=lh(n,"extrude",Oe.kml),d=jL(r,s),p=e._ellipsoid;c.length>0&&Dt("kml-gx:angles","KML - gx:angles are not supported in gx:Tracks");let g=Math.min(a.length,l.length),m=[],x=[];for(let T=0;T<g;T++){let A=Xz(a[T].textContent,p);m.push(A),x.push(J.fromIso8601(l[T].textContent))}let b=new Js;return b.addSamples(x,m),i.position=b,Kz(e,i,o,dpe(r,s)),hpe(i,o),i.availability=new Mr,l.length>0&&i.availability.addInterval(new bn({start:x[0],stop:x[x.length-1]})),d&&f&&N7(t,i,o),!0}function ipe(e,t,n,i,o,r,s,a,c){let l=e[0],f=e[e.length-1],d=new Js;d.addSamples(e,t),n.intervals.addInterval(new bn({start:l,stop:f,isStartIncluded:c,isStopIncluded:c,data:Xet(d,s,a)})),i.addInterval(new bn({start:l,stop:f,isStartIncluded:c,isStopIncluded:c})),o.intervals.addInterval(new bn({start:l,stop:f,isStartIncluded:c,isStopIncluded:c,data:r}))}function Jet(e,t,n,i,o){let r=lh(n,"interpolate",Oe.gx),s=ch(n,"Track",Oe.gx),a,c,l,f=!1,d=new b_,p=new Mr,g=new $s,m=e._ellipsoid;for(let x=0,b=s.length;x<b;x++){let T=s[x],A=ch(T,"when",Oe.kml),C=ch(T,"coord",Oe.gx),S=vn(T,"altitudeMode",Oe.kml),w=vn(T,"altitudeMode",Oe.gx),D=jL(S,w),O=lh(T,"extrude",Oe.kml),R=Math.min(C.length,A.length),L=[];a=[];for(let N=0;N<R;N++){let _=Xz(C[N].textContent,m);L.push(_),a.push(J.fromIso8601(A[N].textContent))}r&&(u(c)&&ipe([c,a[0]],[l,L[0]],g,p,d,!1,"absolute",void 0,!1),c=a[R-1],l=L[L.length-1]),ipe(a,L,g,p,d,D&&O,S,w,!0),f=f||D&&O}return i.availability=p,i.position=g,Kz(e,i,o),hpe(i,o),f&&(N7(t,i,o),i.polyline.show=d),!0}var mpe={Point:Zet,LineString:npe,LinearRing:npe,Polygon:$et,Track:Qet,MultiTrack:Jet,MultiGeometry:ett,Model:ttt};function ett(e,t,n,i,o,r){let s=n.childNodes,a=!1;for(let c=0,l=s.length;c<l;c++){let f=s.item(c),d=mpe[f.localName];if(u(d)){let p=cpe(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 ttt(e,t,n,i,o){return Dt("kml-unsupportedGeometry",`KML - Unsupported geometry: ${n.localName}`),!1}function ntt(e,t){let n=Ri(e,"ExtendedData",Oe.kml);if(!u(n))return;u(Ri(n,"SchemaData",Oe.kml))&&Dt("kml-schemaData","KML - SchemaData is unsupported"),u(ms(n,"xmlns:prefix"))&&Dt("kml-extendedData","KML - ExtendedData with xmlns:prefix is unsupported");let i={},o=ch(n,"Data",Oe.kml);if(u(o)){let r=o.length;for(let s=0;s<r;s++){let a=o[s],c=ms(a,"name");u(c)&&(i[c]={displayName:vn(a,"displayName",Oe.kml),value:vn(a,"value",Oe.kml)})}}t.kml.extendedData=i}var po;typeof document<"u"&&(po=document.createElement("div"));function itt(e,t,n,i,o){let r,s,a,c=t.kml,l=c.extendedData,f=vn(e,"description",Oe.kml),d=y(t.balloonStyle,n.balloonStyle),p=H.WHITE,g=H.BLACK,m=f;u(d)&&(p=y(d.bgColor,H.WHITE),g=y(d.textColor,H.BLACK),m=y(d.text,f));let x;if(u(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]",""),u(l)){let A=m.match(/\$\[.+?\]/g);if(A!==null)for(r=0;r<A.length;r++){let C=A[r],S=C.substr(2,C.length-3),w=/\/displayName$/.test(S);S=S.replace(/\/displayName$/,""),x=l[S],u(x)&&(x=w?x.displayName:x.value),u(x)&&(m=m.replace(C,y(x,"")))}}}else if(u(l)&&(a=Object.keys(l),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=l[s],m+=`<tr><th>${y(x.displayName,s)}</th><td>${y(x.value,"")}</td></tr>`;m+="</tbody></table>"}if(!u(m))return;m=ket.link(m),po.innerHTML=m;let b=po.querySelectorAll("a");for(r=0;r<b.length;r++)b[r].setAttribute("target","_blank");u(i)&&i.keys.length>1&&(vu(po,"a","href",i),vu(po,"link","href",i),vu(po,"area","href",i),vu(po,"img","src",i),vu(po,"iframe","src",i),vu(po,"video","src",i),vu(po,"audio","src",i),vu(po,"source","src",i),vu(po,"track","src",i),vu(po,"input","src",i),vu(po,"embed","src",i),vu(po,"script","src",i),vu(po,"video","poster",i)),Du(po,"a","href",o),Du(po,"link","href",o),Du(po,"area","href",o),Du(po,"img","src",o),Du(po,"iframe","src",o),Du(po,"video","src",o),Du(po,"audio","src",o),Du(po,"source","src",o),Du(po,"track","src",o),Du(po,"input","src",o),Du(po,"embed","src",o),Du(po,"script","src",o),Du(po,"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+=`${po.innerHTML}</div>`,po.innerHTML="",t.description=T}function Zz(e,t,n){let i=n.entityCollection,o=n.parentEntity,r=n.sourceResource,s=n.uriResolver,a=cpe(t,i,n.context),c=a.kml,l=qet(e,t,n.styleCollection,r,s),f=vn(t,"name",Oe.kml);a.name=f,a.parent=o;let d=Wet(t);u(d)||(d=Get(t)),a.availability=d,k7(a);function p(C){return C?C.show&&p(C.parent):!0}let g=lh(t,"visibility",Oe.kml);a.show=p(o)&&y(g,!0);let m=Ri(t,"author",Oe.atom),x=c.author;x.name=vn(m,"name",Oe.atom),x.uri=vn(m,"uri",Oe.atom),x.email=vn(m,"email",Oe.atom);let b=Ri(t,"link",Oe.atom),T=c.link;T.href=ms(b,"href"),T.hreflang=ms(b,"hreflang"),T.rel=ms(b,"rel"),T.type=ms(b,"type"),T.title=ms(b,"title"),T.length=ms(b,"length"),c.address=vn(t,"address",Oe.kml),c.phoneNumber=vn(t,"phoneNumber",Oe.kml),c.snippet=vn(t,"Snippet",Oe.kml),ntt(t,a),itt(t,a,l,s,r);let A=e._ellipsoid;return gpe(t,a,A),_pe(t,a,A),u(Ri(t,"Region",Oe.kml))&&Dt("kml-region","KML - Placemark Regions are unsupported"),{entity:a,styleEntity:l}}function ppe(e,t,n,i){i.addNodes(t.childNodes,n),i.process()}function ott(e,t,n,i){let o=Zz(e,t,n),r=He(n);r.parentEntity=o.entity,ppe(e,t,r,i)}function rtt(e,t,n,i){let o=Zz(e,t,n),r=o.entity,s=o.styleEntity,a=!1,c=t.childNodes;for(let l=0,f=c.length;l<f&&!a;l++){let d=c.item(l),p=mpe[d.localName];u(p)&&(p(e,n.entityCollection,d,r,s,r.id),a=!0)}a||(r.merge(s),Kz(e,r,s))}var stt={FlyTo:ltt,Wait:ctt,SoundCue:S7,AnimatedUpdate:S7,TourControl:S7};function att(e,t,n,i){let o=vn(t,"name",Oe.kml),r=ms(t,"id"),s=new VL(o,r),a=Ri(t,"Playlist",Oe.gx);if(a){let c=e._ellipsoid,l=a.childNodes;for(let f=0;f<l.length;f++){let d=l[f];if(d.localName){let p=stt[d.localName];p?p(s,d,c):console.log(`Unknown KML Tour playlist entry type ${d.localName}`)}}}e._kmlTours.push(s)}function S7(e,t){Dt(`KML Tour unsupported node ${t.localName}`)}function ctt(e,t){let n=ei(t,"duration",Oe.gx);e.addPlaylistEntry(new GL(n))}function ltt(e,t,n){let i=ei(t,"duration",Oe.gx),o=vn(t,"flyToMode",Oe.gx),r={kml:{}};gpe(t,r,n),_pe(t,r,n);let s=r.kml.lookAt||r.kml.camera,a=new HL(i,o,s);e.addPlaylistEntry(a)}function _pe(e,t,n){let i=Ri(e,"Camera",Oe.kml);if(u(i)){let o=y(ei(i,"longitude",Oe.kml),0),r=y(ei(i,"latitude",Oe.kml),0),s=y(ei(i,"altitude",Oe.kml),0),a=y(ei(i,"heading",Oe.kml),0),c=y(ei(i,"tilt",Oe.kml),0),l=y(ei(i,"roll",Oe.kml),0),f=h.fromDegrees(o,r,s,n),d=za.fromDegrees(a,c-90,l);t.kml.camera=new PL(f,d)}}function gpe(e,t,n){let i=Ri(e,"LookAt",Oe.kml);if(u(i)){let o=y(ei(i,"longitude",Oe.kml),0),r=y(ei(i,"latitude",Oe.kml),0),s=y(ei(i,"altitude",Oe.kml),0),a=ei(i,"heading",Oe.kml),c=ei(i,"tilt",Oe.kml),l=y(ei(i,"range",Oe.kml),0);c=P.toRadians(y(c,0)),a=P.toRadians(y(a,0));let f=new Bf(a,c-P.PI_OVER_TWO,l),d=h.fromDegrees(o,r,s,n);t.kml.lookAt=new UL(d,f)}}function utt(e,t,n,i){let o=n.screenOverlayContainer;if(!u(o))return;let r=n.sourceResource,s=n.uriResolver,a=Ri(t,"Icon",Oe.kml),c=L7(a,e,r,s,!1);if(!u(c))return;let l=document.createElement("img");e._screenOverlays.push(l),l.src=c.url,l.onload=function(){let f=["position: absolute"],d=Ri(t,"screenXY",Oe.kml),p=Ri(t,"overlayXY",Oe.kml),g=Ri(t,"size",Oe.kml),m,x,b,T,A,C;u(g)&&(m=Uy(g,"x"),x=Uy(g,"y"),b=ms(g,"xunits"),T=ms(g,"yunits"),u(m)&&m!==-1&&m!==0&&(b==="fraction"?A=`width: ${Math.floor(m*100)}%`:b==="pixels"&&(A=`width: ${m}px`),f.push(A)),u(x)&&x!==-1&&x!==0&&(T==="fraction"?C=`height: ${Math.floor(x*100)}%`:T==="pixels"&&(C=`height: ${x}px`),f.push(C))),l.style=f.join(";");let S=0,w=l.height;u(p)&&(m=Uy(p,"x"),x=Uy(p,"y"),b=ms(p,"xunits"),T=ms(p,"yunits"),u(m)&&(b==="fraction"?S=m*l.width:(b==="pixels"||b==="insetPixels")&&(S=m)),u(x)&&(T==="fraction"?w=x*l.height:(T==="pixels"||T==="insetPixels")&&(w=x))),u(d)&&(m=Uy(d,"x"),x=Uy(d,"y"),b=ms(d,"xunits"),T=ms(d,"yunits"),u(m)&&(b==="fraction"?A=`left: calc(${Math.floor(m*100)}% - ${S}px)`:b==="pixels"?A=`left: ${m-S}px`:b==="insetPixels"&&(A=`right: ${m-S}px`),f.push(A)),u(x)&&(T==="fraction"?C=`bottom: calc(${Math.floor(x*100)}% - ${w}px)`:T==="pixels"?C=`bottom: ${x-w}px`:T==="insetPixels"&&(C=`top: ${x-w}px`),f.push(C))),l.style=f.join(";")},o.appendChild(l)}function ftt(e,t,n,i){let r=Zz(e,t,n).entity,s,a=!1,c=e._ellipsoid,l=jz(Ri(t,"LatLonQuad",Oe.gx),c),f=ei(t,"drawOrder",Oe.kml);if(u(l))s=M7(),s.hierarchy=new ga(l),s.zIndex=f,r.polygon=s,a=!0;else{s=new yd,s.zIndex=f,r.rectangle=s;let m=Ri(t,"LatLonBox",Oe.kml);if(u(m)){let x=ei(m,"west",Oe.kml),b=ei(m,"south",Oe.kml),T=ei(m,"east",Oe.kml),A=ei(m,"north",Oe.kml);u(x)&&(x=P.negativePiToPi(P.toRadians(x))),u(b)&&(b=P.clampToLatitudeRange(P.toRadians(b))),u(T)&&(T=P.negativePiToPi(P.toRadians(T))),u(A)&&(A=P.clampToLatitudeRange(P.toRadians(A))),s.coordinates=new ce(x,b,T,A);let C=ei(m,"rotation",Oe.kml);if(u(C)){let S=P.toRadians(C);s.rotation=S,s.stRotation=S}}}let d=Ri(t,"Icon",Oe.kml),p=L7(d,e,n.sourceResource,n.uriResolver,!0);if(u(p)){a&&Dt("kml-gx:LatLonQuad","KML - gx:LatLonQuad Icon does not support texture projection.");let m=ei(d,"x",Oe.gx),x=ei(d,"y",Oe.gx),b=ei(d,"w",Oe.gx),T=ei(d,"h",Oe.gx);(u(m)||u(x)||u(b)||u(T))&&Dt("kml-groundOverlay-xywh","KML - gx:x, gx:y, gx:w, gx:h aren't supported for GroundOverlays"),s.material=p,s.material.color=jb(t,"color",Oe.kml),s.material.transparent=!0}else s.material=jb(t,"color",Oe.kml);let g=vn(t,"altitudeMode",Oe.kml);u(g)?g==="absolute"?(s.height=ei(t,"altitude",Oe.kml),s.zIndex=void 0):g!=="clampToGround"&&Dt("kml-altitudeMode-unknown",`KML - Unknown altitudeMode: ${g}`):(g=vn(t,"altitudeMode",Oe.gx),g==="relativeToSeaFloor"?(Dt("kml-altitudeMode-relativeToSeaFloor","KML - altitudeMode relativeToSeaFloor is currently not supported, treating as absolute."),s.height=ei(t,"altitude",Oe.kml),s.zIndex=void 0):g==="clampToSeaFloor"?Dt("kml-altitudeMode-clampToSeaFloor","KML - altitudeMode clampToSeaFloor is currently not supported, treating as clampToGround."):u(g)&&Dt("kml-altitudeMode-unknown",`KML - Unknown altitudeMode: ${g}`))}function ype(e,t,n,i){e._unsupportedNode.raiseEvent(e,n.parentEntity,t,n.entityCollection,n.styleCollection,n.sourceResource,n.uriResolver),Dt(`kml-unsupportedFeature-${t.nodeName}`,`KML - Unsupported feature: ${t.nodeName}`)}var Vy={INTERVAL:0,EXPIRE:1,STOP:2};function Yz(e){if(!u(e)||e.length===0)return"";let t=e[0];return(t==="&"||t==="?")&&(e=e.substring(1)),e}var dtt=new ce,WE=new fe,w7=new z,htt=new h;function F7(e,t,n,i,o,r){function s(l){return l<-P.PI_OVER_TWO?-P.PI_OVER_TWO:l>P.PI_OVER_TWO?P.PI_OVER_TWO:l}function a(l){return l>P.PI?l-P.TWO_PI:l<-P.PI?l+P.TWO_PI:l}let c=D0(e.queryParameters);if(c=c.replace(/%5B/g,"[").replace(/%5D/g,"]"),u(t)&&t._mode!==te.MORPHING){let l,f;if(o=y(o,dtt),u(n)&&(w7.x=n.clientWidth*.5,w7.y=n.clientHeight*.5,l=t.pickEllipsoid(w7,r,htt)),u(l)?f=r.cartesianToCartographic(l,WE):(f=ce.center(o,WE),l=r.cartographicToCartesian(f)),u(i)&&!P.equalsEpsilon(i,1,P.EPSILON9)){let T=o.width*i*.5,A=o.height*i*.5;o=new ce(a(f.longitude-T),s(f.latitude-A),a(f.longitude+T),s(f.latitude+A))}c=c.replace("[bboxWest]",P.toDegrees(o.west).toString()),c=c.replace("[bboxSouth]",P.toDegrees(o.south).toString()),c=c.replace("[bboxEast]",P.toDegrees(o.east).toString()),c=c.replace("[bboxNorth]",P.toDegrees(o.north).toString());let d=P.toDegrees(f.longitude).toString(),p=P.toDegrees(f.latitude).toString();c=c.replace("[lookatLon]",d),c=c.replace("[lookatLat]",p),c=c.replace("[lookatTilt]",P.toDegrees(t.pitch).toString()),c=c.replace("[lookatHeading]",P.toDegrees(t.heading).toString()),c=c.replace("[lookatRange]",h.distance(t.positionWC,l)),c=c.replace("[lookatTerrainLon]",d),c=c.replace("[lookatTerrainLat]",p),c=c.replace("[lookatTerrainAlt]",f.height.toString()),r.cartesianToCartographic(t.positionWC,WE),c=c.replace("[cameraLon]",P.toDegrees(WE.longitude).toString()),c=c.replace("[cameraLat]",P.toDegrees(WE.latitude).toString()),c=c.replace("[cameraAlt]",P.toDegrees(WE.height).toString());let g=t.frustum,m=g.aspectRatio,x="",b="";if(u(m)){let T=P.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]","");u(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(Xl(c))}function mtt(e,t,n,i){let r=Zz(e,t,n).entity,s=n.sourceResource,a=n.uriResolver,c=Ri(t,"Link",Oe.kml);if(u(c)||(c=Ri(t,"Url",Oe.kml)),u(c)){let l=vn(c,"href",Oe.kml),f,d;if(u(l)){let p=l;if(l=R7(l,s,n.uriResolver),/^data:/.test(l.getUrlComponent()))/\.kmz/i.test(s.getUrlComponent())||(p=s.getDerivedResource({url:p}));else{if(p=l.clone(),f=vn(c,"viewRefreshMode",Oe.kml),f==="onRegion"){Dt("kml-refrehMode-onRegion","KML - Unsupported viewRefreshMode: onRegion");return}d=y(vn(c,"viewBoundScale",Oe.kml),1);let b=f==="onStop"?"BBOX=[bboxWest],[bboxSouth],[bboxEast],[bboxNorth]":"",T=y(vn(c,"viewFormat",Oe.kml),b),A=vn(c,"httpQuery",Oe.kml);u(T)&&l.setQueryParameters(Xl(Yz(T))),u(A)&&l.setQueryParameters(Xl(Yz(A)));let C=e._ellipsoid;F7(l,e.camera,e.canvas,d,e._lastCameraView.bbox,C)}let g={sourceUri:p,uriResolver:a,context:r.id,screenOverlayContainer:n.screenOverlayContainer},m=new Ms,x=B7(e,m,l,g).then(function(b){let T=e._entityCollection,A=m.values;T.suspendEvents();for(let w=0;w<A.length;w++){let D=A[w];u(D.parent)||(D.parent=r,k7(D)),T.add(D)}T.resumeEvents();let C=vn(c,"refreshMode",Oe.kml),S=y(ei(c,"refreshInterval",Oe.kml),0);if(C==="onInterval"&&S>0||C==="onExpire"||f==="onStop"){let w=Ri(b,"NetworkLinkControl",Oe.kml),D=u(w),O=J.now(),R={id:Wn(),href:l,cookie:{},lastUpdated:O,updating:!1,entity:r,viewBoundScale:d,needsUpdate:!1,cameraUpdateTime:O},L=0;if(D&&(R.cookie=Xl(y(vn(w,"cookie",Oe.kml),"")),L=y(ei(w,"minRefreshPeriod",Oe.kml),0)),C==="onInterval")D&&(S=Math.max(L,S)),R.refreshMode=Vy.INTERVAL,R.time=S;else if(C==="onExpire"){let N;if(D&&(N=vn(w,"expires",Oe.kml)),u(N))try{let _=J.fromIso8601(N),E=J.secondsDifference(_,O);E>0&&E<L&&J.addSeconds(O,L,_),R.refreshMode=Vy.EXPIRE,R.time=_}catch{Dt("kml-refreshMode-onInterval-onExpire","KML - NetworkLinkControl expires is not a valid date")}else Dt("kml-refreshMode-onExpire","KML - refreshMode of onExpire requires the NetworkLinkControl to have an expires element")}else u(e.camera)?(R.refreshMode=Vy.STOP,R.time=y(ei(c,"viewRefreshTime",Oe.kml),0)):Dt("kml-refrehMode-onStop-noCamera","A NetworkLink with viewRefreshMode=onStop requires the `camera` property to be defined.");u(R.refreshMode)&&e._networkLinks.set(R.id,R)}}).catch(function(b){Dt(`An error occured during loading ${l.url}`),e._error.raiseEvent(e,b)});i.addPromise(x)}}}function ptt(e,t,n,i){let o=O7[t.localName];return u(o)?o(e,t,n,i):ype(e,t,n,i)}function I7(e,t,n,i,o,r,s){t.removeAll();let a=n.documentElement,c=a.localName==="Document"?a:Ri(a,"Document",Oe.kml),l=vn(c,"name",Oe.kml);u(l)||(l=p_(i.getUrlComponent())),u(e._name)||(e._name=l);let f=new Iu._DeferredLoading(e),d=new Ms(e);return Promise.all(fpe(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(u(O7[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(),ptt(e,p,g,f),t.resumeEvents(),f.wait().then(function(){return n.documentElement})})}function _tt(e,t,n,i,o){let r=Zt("ThirdParty/Workers/z-worker-pako.js");LE({workerScripts:{deflate:[r,"./pako_deflate.min.js"],inflate:[r,"./pako_inflate.min.js"]}});let s=new kz(new Wb(n));return Promise.resolve(s.getEntries()).then(function(a){let c=[],l={},f;for(let d=0;d<a.length;d++){let p=a[d];p.directory||(/\.kml$/i.test(p.filename)&&(!u(f)||!/\//i.test(p.filename))?(u(f)&&c.push(E7(f,l)),f=p):c.push(E7(p,l)))}return u(f)&&c.push(Het(f,l)),Promise.all(c).then(function(){if(s.close(),!u(l.kml))throw new ue("KMZ file does not contain a KML document.");return l.keys=Object.keys(l),I7(e,t,l.kml,i,l,o)})})}function B7(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 ve){n=ve.createIfNeeded(n),c=n.fetchBlob(),o=y(o,n.clone());let l=e._resourceCredits,f=n.credits;if(u(f)){let d=f.length;for(let p=0;p<d;p++)l.push(f[p])}}else o=y(o,ve.DEFAULT.clone());return o=ve.createIfNeeded(o),u(a)&&(a=wn(a)),Promise.resolve(c).then(function(l){return l instanceof Blob?Vet(l).then(function(f){return f?_tt(e,t,l,o,a):zet(l).then(function(d){d=spe(d),d=ape(d);let p,g;try{p=P7.parseFromString(d,"application/xml")}catch(m){g=m.toString()}if(u(g)||p.body||p.documentElement.tagName==="parsererror"){let m=u(g)?g:p.documentElement.firstChild.nodeValue;throw m||(m=p.body.innerText),new ue(m)}return I7(e,t,p,o,r,a,s)})}):I7(e,t,l,o,r,a,s)}).catch(function(l){return e._error.raiseEvent(e,l),console.log(l),Promise.reject(l)})}function Iu(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 Ms(this),this._name=void 0,this._isLoading=!1,this._pinBuilder=new v_,this._networkLinks=new xt,this._entityCluster=new hu,this.canvas=n,this.camera=t,this._lastCameraView={position:u(t)?h.clone(t.positionWC):void 0,direction:u(t)?h.clone(t.directionWC):void 0,up:u(t)?h.clone(t.upWC):void 0,bbox:u(t)?t.computeViewRectangle():ce.clone(ce.MAX_VALUE)},this._ellipsoid=y(e.ellipsoid,ie.WGS84);let i=e.credit;typeof i=="string"&&(i=new bt(i)),this._credit=i,this._resourceCredits=[],this._kmlTours=[],this._screenOverlays=[]}Iu.load=function(e,t){return t=y(t,y.EMPTY_OBJECT),new Iu(t).load(e,t)};Object.defineProperties(Iu.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}}});Iu.prototype.load=function(e,t){t=y(t,y.EMPTY_OBJECT),Lr.setLoading(this,!0);let n=this._name;this._name=void 0,this._clampToGround=y(t.clampToGround,!1);let i=this;return B7(this,this._entityCollection,e,t).then(function(){let o,r=i._entityCollection.computeAvailability(),s=r.start,a=r.stop,c=J.equals(s,Ve.MINIMUM_VALUE),l=J.equals(a,Ve.MAXIMUM_VALUE);if(!c||!l){let d;c&&(d=new Date,d.setHours(0,0,0,0),s=J.fromDate(d)),l&&(d=new Date,d.setHours(24,0,0,0),a=J.fromDate(d)),o=new Kd,o.startTime=s,o.stopTime=a,o.currentTime=J.clone(s),o.clockRange=Fr.LOOP_STOP,o.clockStep=ho.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),Lr.setLoading(i,!1),i}).catch(function(o){return Lr.setLoading(i,!1),i._error.raiseEvent(i,o),console.log(o),Promise.reject(o)})};Iu.prototype.destroy=function(){for(;this._screenOverlays.length>0;)this._screenOverlays.pop().remove()};function k7(e){let t=e.parent;if(u(t)){let n=t.availability;if(u(n)){let i=e.availability;u(i)?i.intersect(n):e.availability=n}}}function gtt(e,t,n,i,o){return function(r){if(!i.contains(t.id))return;let s=!1,a=Ri(r,"NetworkLinkControl",Oe.kml),c=u(a),l=0;if(c){if(u(Ri(a,"Update",Oe.kml))){Dt("kml-networkLinkControl-update","KML - NetworkLinkControl updates aren't supported."),t.updating=!1,i.remove(t.id);return}t.cookie=Xl(y(vn(a,"cookie",Oe.kml),"")),l=y(ei(a,"minRefreshPeriod",Oe.kml),0)}let f=J.now(),d=t.refreshMode;if(d===Vy.INTERVAL)u(a)&&(t.time=Math.max(l,t.time));else if(d===Vy.EXPIRE){let O;if(u(a)&&(O=vn(a,"expires",Oe.kml)),u(O))try{let R=J.fromIso8601(O),L=J.secondsDifference(R,f);L>0&&L<l&&J.addSeconds(f,l,R),t.time=R}catch{Dt("kml-networkLinkControl-expires","KML - NetworkLinkControl expires is not a valid date"),s=!0}else Dt("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 R=O._children,L=R.length;for(let N=0;N<L;++N)x(R[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];u(O.parent)||(O.parent=p,k7(O)),g.add(O)}g.resumeEvents(),s?i.remove(t.id):t.lastUpdated=f;let A=g.computeAvailability(),C=A.start,S=A.stop,w=J.equals(C,Ve.MINIMUM_VALUE),D=J.equals(S,Ve.MAXIMUM_VALUE);if(!w||!D){let O=e._clock;(O.startTime!==C||O.stopTime!==S)&&(O.startTime=C,O.stopTime=S,e._changed.raiseEvent(e))}t.updating=!1,t.needsUpdate=!1,e._refresh.raiseEvent(e,o.getUrlComponent(!0))}}var v7=new xt;Iu.prototype.update=function(e){let t=this._networkLinks;if(t.length===0)return!0;let n=J.now(),i=this;v7.removeAll();function o(f){let d=f._children,p=d.length;for(let g=0;g<p;++g){let m=d[g];v7.set(m.id,m),o(m)}}let r=!1,s=this._lastCameraView,a=this.camera;u(a)&&!(a.positionWC.equalsEpsilon(s.position,P.EPSILON7)&&a.directionWC.equalsEpsilon(s.direction,P.EPSILON7)&&a.upWC.equalsEpsilon(s.up,P.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 xt,l=!1;return t.values.forEach(function(f){let d=f.entity;if(!v7.contains(d.id)){if(!f.updating){let p=!1;if(f.refreshMode===Vy.INTERVAL?J.secondsDifference(n,f.lastUpdated)>f.time&&(p=!0):f.refreshMode===Vy.EXPIRE?J.greaterThan(n,f.time)&&(p=!0):f.refreshMode===Vy.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 Ms,m=f.href.clone();m.setQueryParameters(f.cookie);let x=y(i._ellipsoid,ie.WGS84);F7(m,i.camera,i.canvas,f.viewBoundScale,s.bbox,x),B7(i,g,m,{context:d.id}).then(gtt(i,f,g,c,m)).catch(function(b){let T=`NetworkLink ${f.href} refresh failed: ${b}`;console.log(T),i._error.raiseEvent(i,T)}),l=!0}}c.set(f.id,f)}}),l&&(this._networkLinks=c,this._changed.raiseEvent(this)),!0};function ytt(){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}Iu._DeferredLoading=Sm;Iu._getTimestamp=_i;var qL=Iu;function YL(){de.throwInstantiationError()}YL.prototype.update=de.throwInstantiationError;YL.prototype.getBoundingSphere=de.throwInstantiationError;YL.prototype.isDestroyed=de.throwInstantiationError;YL.prototype.destroy=de.throwInstantiationError;var U7=YL;var V7=32,xtt="http://www.opengis.net/kml/2.2",fh="http://www.google.com/kml/ext/2.2",btt="http://www.w3.org/2000/xmlns/";function $z(e){this._files={},this._promises=[],this._count=0,this._modelCallback=e}var Ttt=/^data:image\/([^,;]+)/;$z.prototype.texture=function(e){let t=this,n;if(typeof e=="string"||e instanceof ve){if(e=ve.createIfNeeded(e),!e.isDataUri)return e.url;let i=e.url.match(Ttt);n=`texture_${++this._count}`,u(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 Att(e,t){return function(n){e._files[t]=n}}$z.prototype.model=function(e,t){let n=this._modelCallback;if(!u(n))throw new ue("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(Att(this,r))}return o};Object.defineProperties($z.prototype,{promise:{get:function(){return Promise.all(this._promises)}},files:{get:function(){return this._files}}});function Qz(e){this._time=e}Qz.prototype.get=function(e,t,n){let i;return u(e)&&(i=u(e.getValue)?e.getValue(this._time,n):e),y(i,t)};Qz.prototype.getColor=function(e,t){let n=this.get(e,t);if(u(n))return Yb(n)};Qz.prototype.getMaterialType=function(e){if(u(e))return e.getType(this._time)};function z7(){this._ids={},this._styles={},this._count=0}z7.prototype.get=function(e){let t=this._ids,n=e.innerHTML;if(u(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};z7.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 Tpe(){this._ids={}}Tpe.prototype.get=function(e){if(!u(e))return this.get(Wn());let t=this._ids;return u(t[e])?`${e.toString()}-${++t[e]}`:(t[e]=0,e)};function H7(e){e=y(e,y.EMPTY_OBJECT);let t=e.entities,n=y(e.kmz,!1),i=H7._createState(e),o=t.values.filter(function(l){return!u(l.parent)}),r=i.kmlDoc,s=r.documentElement;s.setAttributeNS(btt,"xmlns:gx",fh);let a=r.createElement("Document");s.appendChild(a),Cpe(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?Ctt(f,c.files):{kml:f,externalFiles:c.files}})}function Ctt(e,t){let n=Zt("ThirdParty/Workers/z-worker-pako.js");LE({workerScripts:{deflate:[n,"./pako_deflate.min.js"],inflate:[n,"./pako_inflate.min.js"]}});let i=new UE,o=new zz(i);return o.add("doc.kml",new wz(e)).then(function(){let r=Object.keys(t);return Ape(o,r,t,0)}).then(function(){return o.close()}).then(function(r){return{kmz:r}})}function Ape(e,t,n,i){if(t.length===i)return;let o=t[i];return e.add(o,new Wb(n[o])).then(function(){return Ape(e,t,n,i+1)})}H7._createState=function(e){let t=e.entities,n=new z7,i=t.computeAvailability(),o=u(e.time)?e.time:i.start,r=y(e.defaultAvailability,i),s=y(e.sampleDuration,60);r.start===Ve.MINIMUM_VALUE?r.stop===Ve.MAXIMUM_VALUE?r=new bn:J.addSeconds(r.stop,-10*s,r.start):r.stop===Ve.MAXIMUM_VALUE&&J.addSeconds(r.start,10*s,r.stop);let a=new $z(e.modelCallback);return{kmlDoc:document.implementation.createDocument(xtt,"kml"),ellipsoid:y(e.ellipsoid,ie.WGS84),idManager:new Tpe,styleCache:n,externalFileHandler:a,time:o,valueGetter:new Qz(o),sampleDuration:s,defaultAvailability:new Mr([r])}};function Cpe(e,t,n){let i=e.kmlDoc,o=e.styleCache,r=e.valueGetter,s=e.idManager,a=n.length,c,l,f;for(let d=0;d<a;++d){let p=n[d];c=[],l=[],f=[],Ett(e,p,l,f),Stt(e,p.polyline,l,f),bpe(e,p.rectangle,l,f,c),bpe(e,p.polygon,l,f,c),Itt(e,p,p.model,l,f);let g,m=p.availability;u(m)&&(g=i.createElement("TimeSpan"),J.equals(m.start,Ve.MINIMUM_VALUE)||g.appendChild(dn(i,"begin",J.toIso8601(m.start))),J.equals(m.stop,Ve.MAXIMUM_VALUE)||g.appendChild(dn(i,"end",J.toIso8601(m.stop))));for(let T=0;T<c.length;++T){let A=c[T];A.setAttribute("id",s.get(p.id)),A.appendChild(dn(i,"name",p.name)),A.appendChild(dn(i,"visibility",p.show)),A.appendChild(dn(i,"description",p.description)),u(g)&&A.appendChild(g),t.appendChild(A)}let x=l.length;if(x>0){let T=i.createElement("Placemark");T.setAttribute("id",s.get(p.id));let A=p.name,C=p.label;if(u(C)){let w=i.createElement("LabelStyle"),D=r.get(C.text);A=u(D)&&D.length>0?D:A;let O=r.getColor(C.fillColor);u(O)&&(w.appendChild(dn(i,"color",O)),w.appendChild(dn(i,"colorMode","normal")));let R=r.get(C.scale);u(R)&&w.appendChild(dn(i,"scale",R)),f.push(w)}T.appendChild(dn(i,"name",A)),T.appendChild(dn(i,"visibility",p.show)),T.appendChild(dn(i,"description",p.description)),u(g)&&T.appendChild(g),t.appendChild(T);let S=f.length;if(S>0){let w=i.createElement("Style");for(let D=0;D<S;++D)w.appendChild(f[D]);T.appendChild(dn(i,"styleUrl",o.get(w)))}if(l.length===1)T.appendChild(l[0]);else if(l.length>1){let w=i.createElement("MultiGeometry");for(let D=0;D<x;++D)w.appendChild(l[D]);T.appendChild(w)}}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),Cpe(e,T,b)}}}var kl=new h,Yc=new fe,uh=new J;function Ett(e,t,n,i){let o=e.kmlDoc,r=e.ellipsoid,s=e.valueGetter,a=y(t.billboard,t.point);if(!u(a)&&!u(t.path))return;let c=t.position;if(!c.isConstant){Epe(e,t,a,n,i);return}s.get(c,void 0,kl);let l=dn(o,"coordinates",qb(kl,r)),f=o.createElement("Point"),d=o.createElement("altitudeMode");d.appendChild(Xb(e,a.heightReference)),f.appendChild(d),f.appendChild(l),n.push(f);let p=a instanceof Wa?wpe(e,a):Spe(e,a);i.push(p)}function Epe(e,t,n,i,o){let r=e.kmlDoc,s=e.ellipsoid,a=e.valueGetter,c,l=t.position,f=!0;l instanceof $s?(c=l.intervals,f=!1):c=y(t.availability,e.defaultAvailability);let d=n instanceof pp,p,g,m,x=[];for(p=0;p<c.length;++p){let T=c.get(p),A=f?l:T.data,C=r.createElement("altitudeMode");A instanceof _m?(A=A._value,C.appendChild(Xb(e,Ge.CLAMP_TO_GROUND))):u(n)?C.appendChild(Xb(e,n.heightReference)):C.appendChild(Xb(e,Ge.NONE));let S=[],w=[];if(A.isConstant){a.get(A,void 0,kl);let O=dn(r,"coordinates",qb(kl,s));S.push(J.toIso8601(T.start)),w.push(O),S.push(J.toIso8601(T.stop)),w.push(O)}else if(A instanceof Js)for(m=A._property._times,g=0;g<m.length;++g)S.push(J.toIso8601(m[g])),A.getValueInReferenceFrame(m[g],no.FIXED,kl),w.push(qb(kl,s));else if(A instanceof gu){m=A._times;let O=A._values;for(g=0;g<m.length;++g)S.push(J.toIso8601(m[g])),h.fromArray(O,g*3,kl),w.push(qb(kl,s))}else{let O=e.sampleDuration;T.start.clone(uh),T.isStartIncluded||J.addSeconds(uh,O,uh);let R=T.stop;for(;J.lessThan(uh,R);)A.getValue(uh,kl),S.push(J.toIso8601(uh)),w.push(qb(kl,s)),J.addSeconds(uh,O,uh);T.isStopIncluded&&J.equals(uh,R)&&(A.getValue(uh,kl),S.push(J.toIso8601(uh)),w.push(qb(kl,s)))}let D=r.createElementNS(fh,"Track");D.appendChild(C);for(let O=0;O<S.length;++O){let R=dn(r,"when",S[O]),L=dn(r,"coord",w[O],fh);D.appendChild(R),D.appendChild(L)}d&&D.appendChild(vpe(e,n)),x.push(D)}if(x.length===1)i.push(x[0]);else if(x.length>1){let T=r.createElementNS(fh,"MultiTrack");for(p=0;p<x.length;++p)T.appendChild(x[p]);i.push(T)}if(u(n)&&!d){let T=n instanceof Wa?wpe(e,n):Spe(e,n);o.push(T)}let b=t.path;if(u(b)){let T=a.get(b.width),A=b.material;if(u(A)||u(T)){let C=r.createElement("LineStyle");u(T)&&C.appendChild(dn(r,"width",T)),G7(e,A,C),o.push(C)}}}function Spe(e,t){let n=e.kmlDoc,i=e.valueGetter,o=n.createElement("IconStyle"),r=i.getColor(t.color);u(r)&&(o.appendChild(dn(n,"color",r)),o.appendChild(dn(n,"colorMode","normal")));let s=i.get(t.pixelSize);return u(s)&&o.appendChild(dn(n,"scale",s/V7)),o}function wpe(e,t){let n=e.kmlDoc,i=e.valueGetter,o=e.externalFileHandler,r=n.createElement("IconStyle"),s=i.get(t.image);if(u(s)){s=o.texture(s);let p=n.createElement("Icon");p.appendChild(dn(n,"href",s));let g=i.get(t.imageSubRegion);u(g)&&(p.appendChild(dn(n,"x",g.x,fh)),p.appendChild(dn(n,"y",g.y,fh)),p.appendChild(dn(n,"w",g.width,fh)),p.appendChild(dn(n,"h",g.height,fh))),r.appendChild(p)}let a=i.getColor(t.color);u(a)&&(r.appendChild(dn(n,"color",a)),r.appendChild(dn(n,"colorMode","normal")));let c=i.get(t.scale);u(c)&&r.appendChild(dn(n,"scale",c));let l=i.get(t.pixelOffset);if(u(l)){c=y(c,1),z.divideByScalar(l,c,l);let p=i.get(t.width,V7),g=i.get(t.height,V7),m=i.get(t.horizontalOrigin,mi.CENTER);m===mi.CENTER?l.x-=p*.5:m===mi.RIGHT&&(l.x-=p);let x=i.get(t.verticalOrigin,Dn.CENTER);x===Dn.TOP?l.y+=g:x===Dn.CENTER&&(l.y+=g*.5);let b=n.createElement("hotSpot");b.setAttribute("x",-l.x),b.setAttribute("y",l.y),b.setAttribute("xunits","pixels"),b.setAttribute("yunits","pixels"),r.appendChild(b)}let f=i.get(t.rotation),d=i.get(t.alignedAxis);return u(f)&&h.equals(h.UNIT_Z,d)&&(f=P.toDegrees(-f),f===0&&(f=360),r.appendChild(dn(n,"heading",f))),r}function Stt(e,t,n,i){let o=e.kmlDoc,r=e.ellipsoid,s=e.valueGetter;if(!u(t))return;let a=o.createElement("LineString"),c=o.createElement("altitudeMode"),l=s.get(t.clampToGround,!1),f;l?(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",qb(p,r));a.appendChild(g);let m=s.get(t.zIndex);l&&u(m)&&a.appendChild(dn(o,"drawOrder",m,fh)),n.push(a);let x=o.createElement("LineStyle"),b=s.get(t.width);u(b)&&x.appendChild(dn(o,"width",b)),G7(e,t.material,x),i.push(x)}function wtt(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=[],l=[ce.northeast,ce.southeast,ce.southwest,ce.northwest];for(let g=0;g<4;++g)l[g](a,Yc),c.push(`${P.toDegrees(Yc.longitude)},${P.toDegrees(Yc.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 xpe(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,Yc),s.push(`${P.toDegrees(Yc.longitude)},${P.toDegrees(Yc.latitude)},${i?Yc.height:n}`);let c=dn(o,"coordinates",s.join(" ")),l=o.createElement("LinearRing");return l.appendChild(c),l}function vtt(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,l=o.get(c),f=Array.isArray(l)?l:l.positions,d=i.createElement("outerBoundaryIs");d.appendChild(xpe(e,f,r,s)),a.push(d);let p=l.holes;if(u(p)){let g=p.length;for(let m=0;m<g;++m){let x=i.createElement("innerBoundaryIs");x.appendChild(xpe(e,p[m].positions,r,s)),a.push(x)}}return a}function bpe(e,t,n,i,o){let r=e.kmlDoc,s=e.valueGetter;if(!u(t))return;let a=t instanceof yd;if(a&&s.getMaterialType(t.material)==="Image"){Dtt(e,t,o);return}let c=r.createElement("Polygon"),l=s.get(t.extrudedHeight,0);l>0&&c.appendChild(dn(r,"extrude",!0));let f=a?wtt(e,t,l):vtt(e,t,l),d=f.length;for(let b=0;b<d;++b)c.appendChild(f[b]);let p=r.createElement("altitudeMode");p.appendChild(Xb(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)),G7(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 A=s.getColor(t.outlineColor,H.BLACK);b.appendChild(dn(r,"color",A)),b.appendChild(dn(r,"colorMode","normal")),i.push(b)}i.push(g)}function Dtt(e,t,n){let i=e.kmlDoc,o=e.valueGetter,r=e.externalFileHandler,s=i.createElement("GroundOverlay"),a=i.createElement("altitudeMode");a.appendChild(Xb(e,t.heightReference)),s.appendChild(a);let c=o.get(t.height);u(c)&&s.appendChild(dn(i,"altitude",c));let l=o.get(t.coordinates),f=i.createElement("LatLonBox");f.appendChild(dn(i,"north",P.toDegrees(l.north))),f.appendChild(dn(i,"south",P.toDegrees(l.south))),f.appendChild(dn(i,"east",P.toDegrees(l.east))),f.appendChild(dn(i,"west",P.toDegrees(l.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;u(m)&&s.appendChild(dn(i,"color",Yb(d.color))),n.push(s)}function vpe(e,t){let n=e.kmlDoc,i=e.valueGetter,o=e.externalFileHandler,r=n.createElement("Model"),s=i.get(t.scale);if(u(s)){let l=n.createElement("scale");l.appendChild(dn(n,"x",s)),l.appendChild(dn(n,"y",s)),l.appendChild(dn(n,"z",s)),r.appendChild(l)}let a=n.createElement("Link"),c=o.model(t,e.time);return a.appendChild(dn(n,"href",c)),r.appendChild(a),r}function Itt(e,t,n,i,o){let r=e.kmlDoc,s=e.ellipsoid,a=e.valueGetter;if(!u(n))return;let c=t.position;if(!c.isConstant){Epe(e,t,n,i,o);return}let l=vpe(e,n),f=r.createElement("altitudeMode");f.appendChild(Xb(e,n.heightReference)),l.appendChild(f),a.get(c,void 0,kl),fe.fromCartesian(kl,s,Yc);let d=r.createElement("Location");d.appendChild(dn(r,"longitude",P.toDegrees(Yc.longitude))),d.appendChild(dn(r,"latitude",P.toDegrees(Yc.latitude))),d.appendChild(dn(r,"altitude",Yc.height)),l.appendChild(d),i.push(l)}function G7(e,t,n){let i=e.kmlDoc,o=e.valueGetter;if(!u(t))return;let r=o.get(t);if(!u(r))return;let s,a=o.getMaterialType(t),c,l;switch(a){case"Image":s=Yb(H.WHITE);break;case"Color":case"Grid":case"PolylineGlow":case"PolylineArrow":case"PolylineDash":s=Yb(r.color);break;case"PolylineOutline":s=Yb(r.color),c=Yb(r.outlineColor),l=r.outlineWidth,n.appendChild(dn(i,"outerColor",c,fh)),n.appendChild(dn(i,"outerWidth",l,fh));break;case"Stripe":s=Yb(r.oddColor);break}u(s)&&(n.appendChild(dn(i,"color",s)),n.appendChild(dn(i,"colorMode","normal")))}function Xb(e,t){let n=e.kmlDoc,o=e.valueGetter.get(t,Ge.NONE),r;switch(o){case Ge.NONE:r=n.createTextNode("absolute");break;case Ge.CLAMP_TO_GROUND:r=n.createTextNode("clampToGround");break;case Ge.RELATIVE_TO_GROUND:r=n.createTextNode("relativeToGround");break}return r}function qb(e,t){Array.isArray(e)||(e=[e]);let n=e.length,i=[];for(let o=0;o<n;++o)fe.fromCartesian(e[o],t,Yc),i.push(`${P.toDegrees(Yc.longitude)},${P.toDegrees(Yc.latitude)},${Yc.height}`);return i.join(" ")}function dn(e,t,n,i){n=y(n,""),typeof n=="boolean"&&(n=n?"1":"0");let o=u(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 Yb(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 W7=H7;function Ptt(e){let t,n=e.name,i=e.message;u(n)&&u(i)?t=`${n}: ${i}`:t=e.toString();let o=e.stack;return u(o)&&(t+=`
  7421. ${o}`),t}var wm=Ptt;var Ott={NONE:0,LERC:1},Vf=Object.freeze(Ott);var Rtt={NONE:0,BITS12:1},Fs=Object.freeze(Rtt);var Kb=new h,Mtt=new h,zf=new z,Jz=new F,Ltt=new F,Ntt=Math.pow(2,12);function fc(e,t,n,i,o,r,s,a,c,l){let f=Fs.NONE,d,p;if(u(t)&&u(n)&&u(i)&&u(o)){let g=t.minimum,m=t.maximum,x=h.subtract(m,g,Mtt),b=i-n;Math.max(h.maximumComponent(x),b)<Ntt-1?f=Fs.BITS12:f=Fs.NONE,d=F.inverseTransformation(o,new F);let A=h.negate(g,Kb);F.multiply(F.fromTranslation(A,Jz),d,d);let C=Kb;C.x=1/x.x,C.y=1/x.y,C.z=1/x.z,F.multiply(F.fromScale(C,Jz),d,d),p=F.clone(o),F.setTranslation(p,h.ZERO,p),o=F.clone(o,new F);let S=F.fromTranslation(g,Jz),w=F.fromScale(x,Ltt),D=F.multiply(S,w,Jz);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(l,0),this.stride=0,this._offsetGeodeticSurfaceNormal=0,this._offsetVertexNormal=0,this._calculateStrideAndOffsets()}fc.prototype.encode=function(e,t,n,i,o,r,s,a){let c=i.x,l=i.y;if(this.quantization===Fs.BITS12){n=F.multiplyByPoint(this.toScaledENU,n,Kb),n.x=P.clamp(n.x,0,1),n.y=P.clamp(n.y,0,1),n.z=P.clamp(n.z,0,1);let f=this.maximumHeight-this.minimumHeight,d=P.clamp((o-this.minimumHeight)/f,0,1);z.fromElements(n.x,n.y,zf);let p=qn.compressTextureCoordinates(zf);z.fromElements(n.z,d,zf);let g=qn.compressTextureCoordinates(zf);z.fromElements(c,l,zf);let m=qn.compressTextureCoordinates(zf);if(e[t++]=p,e[t++]=g,e[t++]=m,this.hasWebMercatorT){z.fromElements(s,0,zf);let x=qn.compressTextureCoordinates(zf);e[t++]=x}}else h.subtract(n,this.center,Kb),e[t++]=Kb.x,e[t++]=Kb.y,e[t++]=Kb.z,e[t++]=o,e[t++]=c,e[t++]=l,this.hasWebMercatorT&&(e[t++]=s);return this.hasVertexNormals&&(e[t++]=qn.octPackFloat(r)),this.hasGeodeticSurfaceNormals&&(e[t++]=a.x,e[t++]=a.y,e[t++]=a.z),t};var Ftt=new h,Dpe=new h;fc.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,Ftt),c=n.geodeticSurfaceNormal(a,Dpe),l=s*r+this._offsetGeodeticSurfaceNormal;t[l]=c.x,t[l+1]=c.y,t[l+2]=c.z}};fc.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]}};fc.prototype.decodePosition=function(e,t,n){if(u(n)||(n=new h),t*=this.stride,this.quantization===Fs.BITS12){let i=qn.decompressTextureCoordinates(e[t],zf);n.x=i.x,n.y=i.y;let o=qn.decompressTextureCoordinates(e[t+1],zf);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)};fc.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,Dpe),a=this.decodeHeight(e,t),c=vc.getHeight(a,i,o)-a;n.x+=s.x*c,n.y+=s.y*c,n.z+=s.z*c}return n};fc.prototype.decodeTextureCoordinates=function(e,t,n){return u(n)||(n=new z),t*=this.stride,this.quantization===Fs.BITS12?qn.decompressTextureCoordinates(e[t+2],n):z.fromElements(e[t+4],e[t+5],n)};fc.prototype.decodeHeight=function(e,t){return t*=this.stride,this.quantization===Fs.BITS12?qn.decompressTextureCoordinates(e[t+1],zf).y*(this.maximumHeight-this.minimumHeight)+this.minimumHeight:e[t+3]};fc.prototype.decodeWebMercatorT=function(e,t){return t*=this.stride,this.quantization===Fs.BITS12?qn.decompressTextureCoordinates(e[t+3],zf).x:e[t+6]};fc.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)};fc.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};fc.prototype._calculateStrideAndOffsets=function(){let e=0;switch(this.quantization){case Fs.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 e4={position3DAndHeight:0,textureCoordAndEncodedNormals:1,geodeticSurfaceNormal:2},t4={compressed0:0,compressed1:1,geodeticSurfaceNormal:2};fc.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===Fs.NONE){s(e4.position3DAndHeight,4);let a=2;a+=this.hasWebMercatorT?1:0,a+=this.hasVertexNormals?1:0,s(e4.textureCoordAndEncodedNormals,a),this.hasGeodeticSurfaceNormals&&s(e4.geodeticSurfaceNormal,3)}else{let a=this.hasWebMercatorT||this.hasVertexNormals,c=this.hasWebMercatorT&&this.hasVertexNormals;s(t4.compressed0,a?4:3),c&&s(t4.compressed1,1),this.hasGeodeticSurfaceNormals&&s(t4.geodeticSurfaceNormal,3)}return r};fc.prototype.getAttributeLocations=function(){return this.quantization===Fs.NONE?e4:t4};fc.clone=function(e,t){if(u(e))return u(t)||(t=new fc),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 dc=fc;var vm={};vm.DEFAULT_STRUCTURE=Object.freeze({heightScale:1,heightOffset:0,elementsPerHeight:1,stride:1,elementMultiplier:256,isBigEndian:!1});var j7=new h,Btt=new F,ktt=new h,Utt=new h;vm.computeVertices=function(e){let t=Math.cos,n=Math.sin,i=Math.sqrt,o=Math.atan,r=Math.exp,s=P.PI_OVER_TWO,a=P.toRadians,c=e.heightmap,l=e.width,f=e.height,d=e.skirtHeight,p=d>0,g=y(e.isGeographic,!0),m=y(e.ellipsoid,ie.WGS84),x=1/m.maximumRadius,b=ce.clone(e.nativeRectangle),T=ce.clone(e.rectangle),A,C,S,w;u(T)?(A=T.west,C=T.south,S=T.east,w=T.north):g?(A=a(b.west),C=a(b.south),S=a(b.east),w=a(b.north)):(A=b.west*x,C=s-2*o(r(-b.south*x)),S=b.east*x,w=s-2*o(r(-b.north*x)));let D=e.relativeToCenter,O=u(D);D=O?D:h.ZERO;let R=y(e.includeWebMercatorT,!1),L=y(e.exaggeration,1),N=y(e.exaggerationRelativeHeight,0),E=L!==1,v=y(e.structure,vm.DEFAULT_STRUCTURE),I=y(v.heightScale,vm.DEFAULT_STRUCTURE.heightScale),M=y(v.heightOffset,vm.DEFAULT_STRUCTURE.heightOffset),B=y(v.elementsPerHeight,vm.DEFAULT_STRUCTURE.elementsPerHeight),V=y(v.stride,vm.DEFAULT_STRUCTURE.stride),U=y(v.elementMultiplier,vm.DEFAULT_STRUCTURE.elementMultiplier),G=y(v.isBigEndian,vm.DEFAULT_STRUCTURE.isBigEndian),k=ce.computeWidth(b),Y=ce.computeHeight(b),j=k/(l-1),$=Y/(f-1);g||(k*=x,Y*=x);let W=m.radiiSquared,K=W.x,Z=W.y,me=W.z,xe=65536,re=-65536,ye=Rt.eastNorthUpToFixedFrame(D,m),ge=F.inverseTransformation(ye,Btt),Ae,De;R&&(Ae=Di.geodeticLatitudeToMercatorAngle(C),De=1/(Di.geodeticLatitudeToMercatorAngle(w)-Ae));let Re=ktt;Re.x=Number.POSITIVE_INFINITY,Re.y=Number.POSITIVE_INFINITY,Re.z=Number.POSITIVE_INFINITY;let ze=Utt;ze.x=Number.NEGATIVE_INFINITY,ze.y=Number.NEGATIVE_INFINITY,ze.z=Number.NEGATIVE_INFINITY;let ut=Number.POSITIVE_INFINITY,Vt=l*f,cn=d>0?l*2+f*2:0,ft=Vt+cn,_n=new Array(ft),Mn=new Array(ft),Ft=new Array(ft),Ot=R?new Array(ft):[],he=E?new Array(ft):[],be=0,Gt=f,rt=0,Si=l;p&&(--be,++Gt,--rt,++Si);let Zi=1e-5;for(let Xe=be;Xe<Gt;++Xe){let ht=Xe;ht<0&&(ht=0),ht>=f&&(ht=f-1);let mt=b.north-$*ht;g?mt=a(mt):mt=s-2*o(r(-mt*x));let hn=(mt-C)/(w-C);hn=P.clamp(hn,0,1);let lo=Xe===be,bo=Xe===Gt-1;d>0&&(lo?mt+=Zi*Y:bo&&(mt-=Zi*Y));let os=t(mt),xs=n(mt),No=me*xs,ji;R&&(ji=(Di.geodeticLatitudeToMercatorAngle(mt)-Ae)*De);for(let br=rt;br<Si;++br){let Gn=br;Gn<0&&(Gn=0),Gn>=l&&(Gn=l-1);let Ln=ht*(l*V)+Gn*V,On;if(B===1)On=c[Ln];else{On=0;let at;if(G)for(at=0;at<B;++at)On=On*U+c[Ln+at];else for(at=B-1;at>=0;--at)On=On*U+c[Ln+at]}On=On*I+M,re=Math.max(re,On),xe=Math.min(xe,On);let di=b.west+j*Gn;g?di=a(di):di=di*x;let dr=(di-A)/(S-A);dr=P.clamp(dr,0,1);let Vs=ht*l+Gn;if(d>0){let at=br===rt,an=br===Si-1,vo=lo||bo||at||an;if((lo||bo)&&(at||an))continue;vo&&(On-=d,at?(Vs=Vt+(f-ht-1),di-=Zi*k):bo?Vs=Vt+f+(l-Gn-1):an?(Vs=Vt+f+l+ht,di+=Zi*k):lo&&(Vs=Vt+f+l+f+Gn))}let bs=os*t(di),Ts=os*n(di),Ra=K*bs,hr=Z*Ts,il=1/i(Ra*bs+hr*Ts+No*xs),g0=Ra*il,Ma=hr*il,sn=No*il,Se=new h;Se.x=g0+bs*On,Se.y=Ma+Ts*On,Se.z=sn+xs*On,F.multiplyByPoint(ge,Se,j7),h.minimumByComponent(j7,Re,Re),h.maximumByComponent(j7,ze,ze),ut=Math.min(ut,On),_n[Vs]=Se,Ft[Vs]=new z(dr,hn),Mn[Vs]=On,R&&(Ot[Vs]=ji),E&&(he[Vs]=m.geodeticSurfaceNormal(Se))}}let Us=se.fromPoints(_n),Lo;u(T)&&(Lo=In.fromRectangle(T,xe,re,m));let fr;O&&(fr=new h_(m).computeHorizonCullingPointPossiblyUnderEllipsoid(D,_n,xe));let is=new hg(Re,ze,D),Be=new dc(D,is,ut,re,ye,!1,R,E,L,N),Ke=new Float32Array(ft*Be.stride),qe=0;for(let Xe=0;Xe<ft;++Xe)qe=Be.encode(Ke,qe,_n[Xe],Ft[Xe],Mn[Xe],void 0,Ot[Xe],he[Xe]);return{vertices:Ke,maximumHeight:re,minimumHeight:xe,encoding:Be,boundingSphere3D:Us,orientedBoundingBox:Lo,occludeePointInScaledSpace:fr}};var jE=vm;function zy(){de.throwInstantiationError()}Object.defineProperties(zy.prototype,{credits:{get:de.throwInstantiationError},waterMask:{get:de.throwInstantiationError}});zy.prototype.interpolateHeight=de.throwInstantiationError;zy.prototype.isChildAvailable=de.throwInstantiationError;zy.prototype.createMesh=de.throwInstantiationError;zy.prototype.upsample=de.throwInstantiationError;zy.prototype.wasCreatedByUpsampling=de.throwInstantiationError;zy.maximumAsynchronousTasks=5;var dh=zy;function Vtt(e,t,n,i,o,r,s,a,c,l,f,d,p,g,m,x){this.center=e,this.vertices=t,this.stride=y(l,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 Hf=Vtt;function Xc(){de.throwInstantiationError()}Object.defineProperties(Xc.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 Ipe=[];Xc.getRegularGridIndices=function(e,t){let n=Ipe[e];u(n)||(Ipe[e]=n=[]);let i=n[t];return u(i)||(e*t<P.SIXTY_FOUR_KILOBYTES?i=n[t]=new Uint16Array((e-1)*(t-1)*6):i=n[t]=new Uint32Array((e-1)*(t-1)*6),Mpe(e,t,i,0)),i};var Ppe=[];Xc.getRegularGridIndicesAndEdgeIndices=function(e,t){let n=Ppe[e];u(n)||(Ppe[e]=n=[]);let i=n[t];if(!u(i)){let o=Xc.getRegularGridIndices(e,t),r=Rpe(e,t),s=r.westIndicesSouthToNorth,a=r.southIndicesEastToWest,c=r.eastIndicesNorthToSouth,l=r.northIndicesWestToEast;i=n[t]={indices:o,westIndicesSouthToNorth:s,southIndicesEastToWest:a,eastIndicesNorthToSouth:c,northIndicesWestToEast:l}}return i};var Ope=[];Xc.getRegularGridAndSkirtIndicesAndEdgeIndices=function(e,t){let n=Ope[e];u(n)||(Ope[e]=n=[]);let i=n[t];if(!u(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,l=r+a,f=Rpe(e,t),d=f.westIndicesSouthToNorth,p=f.southIndicesEastToWest,g=f.eastIndicesNorthToSouth,m=f.northIndicesWestToEast,x=Fe.createTypedArray(c,l);Mpe(e,t,x,0),Xc.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};Xc.addSkirtIndices=function(e,t,n,i,o,r,s){let a=o;s=n4(e,a,r,s),a+=e.length,s=n4(t,a,r,s),a+=t.length,s=n4(n,a,r,s),a+=n.length,n4(i,a,r,s)};function Rpe(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 Mpe(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,l=c+1,f=a+1;n[i++]=a,n[i++]=c,n[i++]=f,n[i++]=f,n[i++]=c,n[i++]=l,++o}++o}}function n4(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}Xc.heightmapTerrainQuality=.25;Xc.getEstimatedLevelZeroGeometricErrorForAHeightmap=function(e,t,n){return e.maximumRadius*2*Math.PI*Xc.heightmapTerrainQuality/(t*n)};Xc.prototype.requestTileGeometry=de.throwInstantiationError;Xc.prototype.getLevelMaximumGeometricError=de.throwInstantiationError;Xc.prototype.getTileDataAvailable=de.throwInstantiationError;Xc.prototype.loadTileDataAvailability=de.throwInstantiationError;var jr=Xc;function P_(e){this._buffer=e.buffer,this._width=e.width,this._height=e.height,this._childTileMask=y(e.childTileMask,15),this._encoding=y(e.encoding,Vf.NONE);let t=jE.DEFAULT_STRUCTURE,n=e.structure;u(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===Vf.LERC?Float32Array:this._buffer.constructor,this._mesh=void 0}Object.defineProperties(P_.prototype,{credits:{get:function(){}},waterMask:{get:function(){return this._waterMask}},childTileMask:{get:function(){return this._childTileMask}}});var Lpe="createVerticesFromHeightmap",ztt=new hi(Lpe),Htt=new hi(Lpe,dh.maximumAsynchronousTasks);P_.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,l=t.tileXYToNativeRectangle(n,i,o),f=t.tileXYToRectangle(n,i,o),d=c.cartographicToCartesian(ce.center(f)),p=this._structure,m=jr.getEstimatedLevelZeroGeometricErrorForAHeightmap(c,this._width,t.getNumberOfXTilesAtLevel(0))/(1<<o);this._skirtHeight=Math.min(m*4,1e3);let b=(a?Htt:ztt).scheduleTask({heightmap:this._buffer,structure:p,includeWebMercatorT:!0,width:this._width,height:this._height,nativeRectangle:l,rectangle:f,relativeToCenter:d,ellipsoid:c,skirtHeight:this._skirtHeight,isGeographic:t.projection instanceof wi,exaggeration:r,exaggerationRelativeHeight:s,encoding:this._encoding});if(!u(b))return;let T=this;return Promise.resolve(b).then(function(A){let C;T._skirtHeight>0?C=jr.getRegularGridAndSkirtIndicesAndEdgeIndices(A.gridWidth,A.gridHeight):C=jr.getRegularGridIndicesAndEdgeIndices(A.gridWidth,A.gridHeight);let S=A.gridWidth*A.gridHeight;return T._mesh=new Hf(d,new Float32Array(A.vertices),C.indices,C.indexCountWithoutSkirts,S,A.minimumHeight,A.maximumHeight,se.clone(A.boundingSphere3D),h.clone(A.occludeePointInScaledSpace),A.numberOfAttributes,In.clone(A.orientedBoundingBox),dc.clone(A.encoding),C.westIndicesSouthToNorth,C.southIndicesEastToWest,C.eastIndicesNorthToSouth,C.northIndicesWestToEast),T._buffer=void 0,T._mesh})};P_.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),l=t.tileXYToRectangle(n,i,o),f=a.cartographicToCartesian(ce.center(l)),d=this._structure,g=jr.getEstimatedLevelZeroGeometricErrorForAHeightmap(a,this._width,t.getNumberOfXTilesAtLevel(0))/(1<<o);this._skirtHeight=Math.min(g*4,1e3);let m=jE.computeVertices({heightmap:this._buffer,structure:d,includeWebMercatorT:!0,width:this._width,height:this._height,nativeRectangle:c,rectangle:l,relativeToCenter:f,ellipsoid:a,skirtHeight:this._skirtHeight,isGeographic:t.projection instanceof wi,exaggeration:r,exaggerationRelativeHeight:s});this._buffer=void 0;let x;this._skirtHeight>0?x=jr.getRegularGridAndSkirtIndicesAndEdgeIndices(this._width,this._height):x=jr.getRegularGridIndicesAndEdgeIndices(this._width,this._height);let b=m.gridWidth*m.gridHeight;return this._mesh=new Hf(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};P_.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,l=r.isBigEndian,f=r.heightOffset,d=r.heightScale,p=u(this._mesh),g=this._encoding===Vf.LERC;if(!p&&g)return;let x;if(p){let b=this._mesh.vertices,T=this._mesh.encoding;x=Npe(b,T,f,d,e,i,o,t,n)}else x=Gtt(this._buffer,a,c,s,l,e,i,o,t,n),x=x*d+f;return x};P_.prototype.upsample=function(e,t,n,i,o,r,s){let a=this._mesh;if(!u(a))return;let c=this._width,l=this._height,f=this._structure,d=f.stride,p=new this._bufferType(c*l*d),g=a.vertices,m=a.encoding,x=e.tileXYToRectangle(t,n,i),b=e.tileXYToRectangle(o,r,s),T=f.heightOffset,A=f.heightScale,C=f.elementsPerHeight,S=f.elementMultiplier,w=f.isBigEndian,D=Math.pow(S,C-1);for(let O=0;O<l;++O){let R=P.lerp(b.north,b.south,O/(l-1));for(let L=0;L<c;++L){let N=P.lerp(b.west,b.east,L/(c-1)),_=Npe(g,m,T,A,x,c,l,N,R);_=_<f.lowestEncodedHeight?f.lowestEncodedHeight:_,_=_>f.highestEncodedHeight?f.highestEncodedHeight:_,Wtt(p,C,S,D,d,w,O*c+L,_)}}return Promise.resolve(new P_({buffer:p,width:c,height:l,childTileMask:0,structure:this._structure,createdByUpsampling:!0}))};P_.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};P_.prototype.wasCreatedByUpsampling=function(){return this._createdByUpsampling};function Gtt(e,t,n,i,o,r,s,a,c,l){let f=(c-r.west)*(s-1)/(r.east-r.west),d=(l-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 A=i4(e,t,n,i,o,m*s+p),C=i4(e,t,n,i,o,m*s+g),S=i4(e,t,n,i,o,x*s+p),w=i4(e,t,n,i,o,x*s+g);return Fpe(b,T,A,C,S,w)}function Npe(e,t,n,i,o,r,s,a,c){let l=(a-o.west)*(r-1)/(o.east-o.west),f=(c-o.south)*(s-1)/(o.north-o.south),d=l|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=l-d,b=f-g;g=s-1-g,m=s-1-m;let T=(t.decodeHeight(e,g*r+d)-n)/i,A=(t.decodeHeight(e,g*r+p)-n)/i,C=(t.decodeHeight(e,m*r+d)-n)/i,S=(t.decodeHeight(e,m*r+p)-n)/i;return Fpe(x,b,T,A,C,S)}function Fpe(e,t,n,i,o,r){return t<e?n+e*(i-n)+t*(r-i):n+e*(r-o)+t*(o-n)}function i4(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 Wtt(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 wa=P_;function qE(e){e=y(e,y.EMPTY_OBJECT),this._tilingScheme=e.tilingScheme,u(this._tilingScheme)||(this._tilingScheme=new zi({ellipsoid:y(e.ellipsoid,ie.WGS84)})),this._levelZeroMaximumGeometricError=jr.getEstimatedLevelZeroGeometricErrorForAHeightmap(this._tilingScheme.ellipsoid,64,this._tilingScheme.getNumberOfXTilesAtLevel(0)),this._errorEvent=new pe}Object.defineProperties(qE.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(){}}});qE.prototype.requestTileGeometry=function(e,t,n,i){return Promise.resolve(new wa({buffer:new Uint8Array(16*16),width:16,height:16}))};qE.prototype.getLevelMaximumGeometricError=function(e){return this._levelZeroMaximumGeometricError/(1<<e)};qE.prototype.getTileDataAvailable=function(e,t,n){};qE.prototype.loadTileDataAvailability=function(e,t,n){};var Dm=qE;var XL=`uniform vec4 u_initialColor;
  7422. #if TEXTURE_UNITS > 0
  7423. uniform sampler2D u_dayTextures[TEXTURE_UNITS];
  7424. uniform vec4 u_dayTextureTranslationAndScale[TEXTURE_UNITS];
  7425. uniform bool u_dayTextureUseWebMercatorT[TEXTURE_UNITS];
  7426. #ifdef APPLY_ALPHA
  7427. uniform float u_dayTextureAlpha[TEXTURE_UNITS];
  7428. #endif
  7429. #ifdef APPLY_DAY_NIGHT_ALPHA
  7430. uniform float u_dayTextureNightAlpha[TEXTURE_UNITS];
  7431. uniform float u_dayTextureDayAlpha[TEXTURE_UNITS];
  7432. #endif
  7433. #ifdef APPLY_SPLIT
  7434. uniform float u_dayTextureSplit[TEXTURE_UNITS];
  7435. #endif
  7436. #ifdef APPLY_BRIGHTNESS
  7437. uniform float u_dayTextureBrightness[TEXTURE_UNITS];
  7438. #endif
  7439. #ifdef APPLY_CONTRAST
  7440. uniform float u_dayTextureContrast[TEXTURE_UNITS];
  7441. #endif
  7442. #ifdef APPLY_HUE
  7443. uniform float u_dayTextureHue[TEXTURE_UNITS];
  7444. #endif
  7445. #ifdef APPLY_SATURATION
  7446. uniform float u_dayTextureSaturation[TEXTURE_UNITS];
  7447. #endif
  7448. #ifdef APPLY_GAMMA
  7449. uniform float u_dayTextureOneOverGamma[TEXTURE_UNITS];
  7450. #endif
  7451. #ifdef APPLY_IMAGERY_CUTOUT
  7452. uniform vec4 u_dayTextureCutoutRectangles[TEXTURE_UNITS];
  7453. #endif
  7454. #ifdef APPLY_COLOR_TO_ALPHA
  7455. uniform vec4 u_colorsToAlpha[TEXTURE_UNITS];
  7456. #endif
  7457. uniform vec4 u_dayTextureTexCoordsRectangle[TEXTURE_UNITS];
  7458. #endif
  7459. #ifdef SHOW_REFLECTIVE_OCEAN
  7460. uniform sampler2D u_waterMask;
  7461. uniform vec4 u_waterMaskTranslationAndScale;
  7462. uniform float u_zoomedOutOceanSpecularIntensity;
  7463. #endif
  7464. #ifdef SHOW_OCEAN_WAVES
  7465. uniform sampler2D u_oceanNormalMap;
  7466. #endif
  7467. #if defined(ENABLE_DAYNIGHT_SHADING) || defined(GROUND_ATMOSPHERE)
  7468. uniform vec2 u_lightingFadeDistance;
  7469. #endif
  7470. #ifdef TILE_LIMIT_RECTANGLE
  7471. uniform vec4 u_cartographicLimitRectangle;
  7472. #endif
  7473. #ifdef GROUND_ATMOSPHERE
  7474. uniform vec2 u_nightFadeDistance;
  7475. #endif
  7476. #ifdef ENABLE_CLIPPING_PLANES
  7477. uniform highp sampler2D u_clippingPlanes;
  7478. uniform mat4 u_clippingPlanesMatrix;
  7479. uniform vec4 u_clippingPlanesEdgeStyle;
  7480. #endif
  7481. #if defined(GROUND_ATMOSPHERE) || defined(FOG) && defined(DYNAMIC_ATMOSPHERE_LIGHTING) && (defined(ENABLE_VERTEX_LIGHTING) || defined(ENABLE_DAYNIGHT_SHADING))
  7482. uniform float u_minimumBrightness;
  7483. #endif
  7484. #ifdef COLOR_CORRECT
  7485. uniform vec3 u_hsbShift; // Hue, saturation, brightness
  7486. #endif
  7487. #ifdef HIGHLIGHT_FILL_TILE
  7488. uniform vec4 u_fillHighlightColor;
  7489. #endif
  7490. #ifdef TRANSLUCENT
  7491. uniform vec4 u_frontFaceAlphaByDistance;
  7492. uniform vec4 u_backFaceAlphaByDistance;
  7493. uniform vec4 u_translucencyRectangle;
  7494. #endif
  7495. #ifdef UNDERGROUND_COLOR
  7496. uniform vec4 u_undergroundColor;
  7497. uniform vec4 u_undergroundColorAlphaByDistance;
  7498. #endif
  7499. #ifdef ENABLE_VERTEX_LIGHTING
  7500. uniform float u_lambertDiffuseMultiplier;
  7501. uniform float u_vertexShadowDarkness;
  7502. #endif
  7503. in vec3 v_positionMC;
  7504. in vec3 v_positionEC;
  7505. in vec3 v_textureCoordinates;
  7506. in vec3 v_normalMC;
  7507. in vec3 v_normalEC;
  7508. #ifdef APPLY_MATERIAL
  7509. in float v_height;
  7510. in float v_slope;
  7511. in float v_aspect;
  7512. #endif
  7513. #if defined(FOG) || defined(GROUND_ATMOSPHERE) || defined(UNDERGROUND_COLOR) || defined(TRANSLUCENT)
  7514. in float v_distance;
  7515. #endif
  7516. #if defined(GROUND_ATMOSPHERE) || defined(FOG)
  7517. in vec3 v_atmosphereRayleighColor;
  7518. in vec3 v_atmosphereMieColor;
  7519. in float v_atmosphereOpacity;
  7520. #endif
  7521. #if defined(UNDERGROUND_COLOR) || defined(TRANSLUCENT)
  7522. float interpolateByDistance(vec4 nearFarScalar, float distance)
  7523. {
  7524. float startDistance = nearFarScalar.x;
  7525. float startValue = nearFarScalar.y;
  7526. float endDistance = nearFarScalar.z;
  7527. float endValue = nearFarScalar.w;
  7528. float t = clamp((distance - startDistance) / (endDistance - startDistance), 0.0, 1.0);
  7529. return mix(startValue, endValue, t);
  7530. }
  7531. #endif
  7532. #if defined(UNDERGROUND_COLOR) || defined(TRANSLUCENT) || defined(APPLY_MATERIAL)
  7533. vec4 alphaBlend(vec4 sourceColor, vec4 destinationColor)
  7534. {
  7535. return sourceColor * vec4(sourceColor.aaa, 1.0) + destinationColor * (1.0 - sourceColor.a);
  7536. }
  7537. #endif
  7538. #ifdef TRANSLUCENT
  7539. bool inTranslucencyRectangle()
  7540. {
  7541. return
  7542. v_textureCoordinates.x > u_translucencyRectangle.x &&
  7543. v_textureCoordinates.x < u_translucencyRectangle.z &&
  7544. v_textureCoordinates.y > u_translucencyRectangle.y &&
  7545. v_textureCoordinates.y < u_translucencyRectangle.w;
  7546. }
  7547. #endif
  7548. vec4 sampleAndBlend(
  7549. vec4 previousColor,
  7550. sampler2D textureToSample,
  7551. vec2 tileTextureCoordinates,
  7552. vec4 textureCoordinateRectangle,
  7553. vec4 textureCoordinateTranslationAndScale,
  7554. float textureAlpha,
  7555. float textureNightAlpha,
  7556. float textureDayAlpha,
  7557. float textureBrightness,
  7558. float textureContrast,
  7559. float textureHue,
  7560. float textureSaturation,
  7561. float textureOneOverGamma,
  7562. float split,
  7563. vec4 colorToAlpha,
  7564. float nightBlend)
  7565. {
  7566. // This crazy step stuff sets the alpha to 0.0 if this following condition is true:
  7567. // tileTextureCoordinates.s < textureCoordinateRectangle.s ||
  7568. // tileTextureCoordinates.s > textureCoordinateRectangle.p ||
  7569. // tileTextureCoordinates.t < textureCoordinateRectangle.t ||
  7570. // tileTextureCoordinates.t > textureCoordinateRectangle.q
  7571. // In other words, the alpha is zero if the fragment is outside the rectangle
  7572. // covered by this texture. Would an actual 'if' yield better performance?
  7573. vec2 alphaMultiplier = step(textureCoordinateRectangle.st, tileTextureCoordinates);
  7574. textureAlpha = textureAlpha * alphaMultiplier.x * alphaMultiplier.y;
  7575. alphaMultiplier = step(vec2(0.0), textureCoordinateRectangle.pq - tileTextureCoordinates);
  7576. textureAlpha = textureAlpha * alphaMultiplier.x * alphaMultiplier.y;
  7577. #if defined(APPLY_DAY_NIGHT_ALPHA) && defined(ENABLE_DAYNIGHT_SHADING)
  7578. textureAlpha *= mix(textureDayAlpha, textureNightAlpha, nightBlend);
  7579. #endif
  7580. vec2 translation = textureCoordinateTranslationAndScale.xy;
  7581. vec2 scale = textureCoordinateTranslationAndScale.zw;
  7582. vec2 textureCoordinates = tileTextureCoordinates * scale + translation;
  7583. vec4 value = texture(textureToSample, textureCoordinates);
  7584. vec3 color = value.rgb;
  7585. float alpha = value.a;
  7586. #ifdef APPLY_COLOR_TO_ALPHA
  7587. vec3 colorDiff = abs(color.rgb - colorToAlpha.rgb);
  7588. colorDiff.r = max(max(colorDiff.r, colorDiff.g), colorDiff.b);
  7589. alpha = czm_branchFreeTernary(colorDiff.r < colorToAlpha.a, 0.0, alpha);
  7590. #endif
  7591. #if !defined(APPLY_GAMMA)
  7592. vec4 tempColor = czm_gammaCorrect(vec4(color, alpha));
  7593. color = tempColor.rgb;
  7594. alpha = tempColor.a;
  7595. #else
  7596. color = pow(color, vec3(textureOneOverGamma));
  7597. #endif
  7598. #ifdef APPLY_SPLIT
  7599. float splitPosition = czm_splitPosition;
  7600. // Split to the left
  7601. if (split < 0.0 && gl_FragCoord.x > splitPosition) {
  7602. alpha = 0.0;
  7603. }
  7604. // Split to the right
  7605. else if (split > 0.0 && gl_FragCoord.x < splitPosition) {
  7606. alpha = 0.0;
  7607. }
  7608. #endif
  7609. #ifdef APPLY_BRIGHTNESS
  7610. color = mix(vec3(0.0), color, textureBrightness);
  7611. #endif
  7612. #ifdef APPLY_CONTRAST
  7613. color = mix(vec3(0.5), color, textureContrast);
  7614. #endif
  7615. #ifdef APPLY_HUE
  7616. color = czm_hue(color, textureHue);
  7617. #endif
  7618. #ifdef APPLY_SATURATION
  7619. color = czm_saturation(color, textureSaturation);
  7620. #endif
  7621. float sourceAlpha = alpha * textureAlpha;
  7622. float outAlpha = mix(previousColor.a, 1.0, sourceAlpha);
  7623. outAlpha += sign(outAlpha) - 1.0;
  7624. vec3 outColor = mix(previousColor.rgb * previousColor.a, color, sourceAlpha) / outAlpha;
  7625. // When rendering imagery for a tile in multiple passes,
  7626. // some GPU/WebGL implementation combinations will not blend fragments in
  7627. // additional passes correctly if their computation includes an unmasked
  7628. // divide-by-zero operation,
  7629. // even if it's not in the output or if the output has alpha zero.
  7630. //
  7631. // For example, without sanitization for outAlpha,
  7632. // this renders without artifacts:
  7633. // if (outAlpha == 0.0) { outColor = vec3(0.0); }
  7634. //
  7635. // but using czm_branchFreeTernary will cause portions of the tile that are
  7636. // alpha-zero in the additional pass to render as black instead of blending
  7637. // with the previous pass:
  7638. // outColor = czm_branchFreeTernary(outAlpha == 0.0, vec3(0.0), outColor);
  7639. //
  7640. // So instead, sanitize against divide-by-zero,
  7641. // store this state on the sign of outAlpha, and correct on return.
  7642. return vec4(outColor, max(outAlpha, 0.0));
  7643. }
  7644. vec3 colorCorrect(vec3 rgb) {
  7645. #ifdef COLOR_CORRECT
  7646. // Convert rgb color to hsb
  7647. vec3 hsb = czm_RGBToHSB(rgb);
  7648. // Perform hsb shift
  7649. hsb.x += u_hsbShift.x; // hue
  7650. hsb.y = clamp(hsb.y + u_hsbShift.y, 0.0, 1.0); // saturation
  7651. hsb.z = hsb.z > czm_epsilon7 ? hsb.z + u_hsbShift.z : 0.0; // brightness
  7652. // Convert shifted hsb back to rgb
  7653. rgb = czm_HSBToRGB(hsb);
  7654. #endif
  7655. return rgb;
  7656. }
  7657. vec4 computeDayColor(vec4 initialColor, vec3 textureCoordinates, float nightBlend);
  7658. vec4 computeWaterColor(vec3 positionEyeCoordinates, vec2 textureCoordinates, mat3 enuToEye, vec4 imageryColor, float specularMapValue, float fade);
  7659. const float fExposure = 2.0;
  7660. vec3 computeEllipsoidPosition()
  7661. {
  7662. float mpp = czm_metersPerPixel(vec4(0.0, 0.0, -czm_currentFrustum.x, 1.0), 1.0);
  7663. vec2 xy = gl_FragCoord.xy / czm_viewport.zw * 2.0 - vec2(1.0);
  7664. xy *= czm_viewport.zw * mpp * 0.5;
  7665. vec3 direction = normalize(vec3(xy, -czm_currentFrustum.x));
  7666. czm_ray ray = czm_ray(vec3(0.0), direction);
  7667. vec3 ellipsoid_center = czm_view[3].xyz;
  7668. czm_raySegment intersection = czm_rayEllipsoidIntersectionInterval(ray, ellipsoid_center, czm_ellipsoidInverseRadii);
  7669. vec3 ellipsoidPosition = czm_pointAlongRay(ray, intersection.start);
  7670. return (czm_inverseView * vec4(ellipsoidPosition, 1.0)).xyz;
  7671. }
  7672. void main()
  7673. {
  7674. #ifdef TILE_LIMIT_RECTANGLE
  7675. if (v_textureCoordinates.x < u_cartographicLimitRectangle.x || u_cartographicLimitRectangle.z < v_textureCoordinates.x ||
  7676. v_textureCoordinates.y < u_cartographicLimitRectangle.y || u_cartographicLimitRectangle.w < v_textureCoordinates.y)
  7677. {
  7678. discard;
  7679. }
  7680. #endif
  7681. #ifdef ENABLE_CLIPPING_PLANES
  7682. float clipDistance = clip(gl_FragCoord, u_clippingPlanes, u_clippingPlanesMatrix);
  7683. #endif
  7684. #if defined(SHOW_REFLECTIVE_OCEAN) || defined(ENABLE_DAYNIGHT_SHADING) || defined(HDR)
  7685. vec3 normalMC = czm_geodeticSurfaceNormal(v_positionMC, vec3(0.0), vec3(1.0)); // normalized surface normal in model coordinates
  7686. vec3 normalEC = czm_normal3D * normalMC; // normalized surface normal in eye coordinates
  7687. #endif
  7688. #if defined(APPLY_DAY_NIGHT_ALPHA) && defined(ENABLE_DAYNIGHT_SHADING)
  7689. float nightBlend = 1.0 - clamp(czm_getLambertDiffuse(czm_lightDirectionEC, normalEC) * 5.0, 0.0, 1.0);
  7690. #else
  7691. float nightBlend = 0.0;
  7692. #endif
  7693. // The clamp below works around an apparent bug in Chrome Canary v23.0.1241.0
  7694. // where the fragment shader sees textures coordinates < 0.0 and > 1.0 for the
  7695. // fragments on the edges of tiles even though the vertex shader is outputting
  7696. // coordinates strictly in the 0-1 range.
  7697. vec4 color = computeDayColor(u_initialColor, clamp(v_textureCoordinates, 0.0, 1.0), nightBlend);
  7698. #ifdef SHOW_TILE_BOUNDARIES
  7699. if (v_textureCoordinates.x < (1.0/256.0) || v_textureCoordinates.x > (255.0/256.0) ||
  7700. v_textureCoordinates.y < (1.0/256.0) || v_textureCoordinates.y > (255.0/256.0))
  7701. {
  7702. color = vec4(1.0, 0.0, 0.0, 1.0);
  7703. }
  7704. #endif
  7705. #if defined(ENABLE_DAYNIGHT_SHADING) || defined(GROUND_ATMOSPHERE)
  7706. float cameraDist;
  7707. if (czm_sceneMode == czm_sceneMode2D)
  7708. {
  7709. cameraDist = max(czm_frustumPlanes.x - czm_frustumPlanes.y, czm_frustumPlanes.w - czm_frustumPlanes.z) * 0.5;
  7710. }
  7711. else if (czm_sceneMode == czm_sceneModeColumbusView)
  7712. {
  7713. cameraDist = -czm_view[3].z;
  7714. }
  7715. else
  7716. {
  7717. cameraDist = length(czm_view[3]);
  7718. }
  7719. float fadeOutDist = u_lightingFadeDistance.x;
  7720. float fadeInDist = u_lightingFadeDistance.y;
  7721. if (czm_sceneMode != czm_sceneMode3D) {
  7722. vec3 radii = czm_ellipsoidRadii;
  7723. float maxRadii = max(radii.x, max(radii.y, radii.z));
  7724. fadeOutDist -= maxRadii;
  7725. fadeInDist -= maxRadii;
  7726. }
  7727. float fade = clamp((cameraDist - fadeOutDist) / (fadeInDist - fadeOutDist), 0.0, 1.0);
  7728. #else
  7729. float fade = 0.0;
  7730. #endif
  7731. #ifdef SHOW_REFLECTIVE_OCEAN
  7732. vec2 waterMaskTranslation = u_waterMaskTranslationAndScale.xy;
  7733. vec2 waterMaskScale = u_waterMaskTranslationAndScale.zw;
  7734. vec2 waterMaskTextureCoordinates = v_textureCoordinates.xy * waterMaskScale + waterMaskTranslation;
  7735. waterMaskTextureCoordinates.y = 1.0 - waterMaskTextureCoordinates.y;
  7736. float mask = texture(u_waterMask, waterMaskTextureCoordinates).r;
  7737. if (mask > 0.0)
  7738. {
  7739. mat3 enuToEye = czm_eastNorthUpToEyeCoordinates(v_positionMC, normalEC);
  7740. vec2 ellipsoidTextureCoordinates = czm_ellipsoidWgs84TextureCoordinates(normalMC);
  7741. vec2 ellipsoidFlippedTextureCoordinates = czm_ellipsoidWgs84TextureCoordinates(normalMC.zyx);
  7742. vec2 textureCoordinates = mix(ellipsoidTextureCoordinates, ellipsoidFlippedTextureCoordinates, czm_morphTime * smoothstep(0.9, 0.95, normalMC.z));
  7743. color = computeWaterColor(v_positionEC, textureCoordinates, enuToEye, color, mask, fade);
  7744. }
  7745. #endif
  7746. #ifdef APPLY_MATERIAL
  7747. czm_materialInput materialInput;
  7748. materialInput.st = v_textureCoordinates.st;
  7749. materialInput.normalEC = normalize(v_normalEC);
  7750. materialInput.positionToEyeEC = -v_positionEC;
  7751. materialInput.tangentToEyeMatrix = czm_eastNorthUpToEyeCoordinates(v_positionMC, normalize(v_normalEC));
  7752. materialInput.slope = v_slope;
  7753. materialInput.height = v_height;
  7754. materialInput.aspect = v_aspect;
  7755. czm_material material = czm_getMaterial(materialInput);
  7756. vec4 materialColor = vec4(material.diffuse, material.alpha);
  7757. color = alphaBlend(materialColor, color);
  7758. #endif
  7759. #ifdef ENABLE_VERTEX_LIGHTING
  7760. float diffuseIntensity = clamp(czm_getLambertDiffuse(czm_lightDirectionEC, normalize(v_normalEC)) * u_lambertDiffuseMultiplier + u_vertexShadowDarkness, 0.0, 1.0);
  7761. vec4 finalColor = vec4(color.rgb * czm_lightColor * diffuseIntensity, color.a);
  7762. #elif defined(ENABLE_DAYNIGHT_SHADING)
  7763. float diffuseIntensity = clamp(czm_getLambertDiffuse(czm_lightDirectionEC, normalEC) * 5.0 + 0.3, 0.0, 1.0);
  7764. diffuseIntensity = mix(1.0, diffuseIntensity, fade);
  7765. vec4 finalColor = vec4(color.rgb * czm_lightColor * diffuseIntensity, color.a);
  7766. #else
  7767. vec4 finalColor = color;
  7768. #endif
  7769. #ifdef ENABLE_CLIPPING_PLANES
  7770. vec4 clippingPlanesEdgeColor = vec4(1.0);
  7771. clippingPlanesEdgeColor.rgb = u_clippingPlanesEdgeStyle.rgb;
  7772. float clippingPlanesEdgeWidth = u_clippingPlanesEdgeStyle.a;
  7773. if (clipDistance < clippingPlanesEdgeWidth)
  7774. {
  7775. finalColor = clippingPlanesEdgeColor;
  7776. }
  7777. #endif
  7778. #ifdef HIGHLIGHT_FILL_TILE
  7779. finalColor = vec4(mix(finalColor.rgb, u_fillHighlightColor.rgb, u_fillHighlightColor.a), finalColor.a);
  7780. #endif
  7781. #if defined(DYNAMIC_ATMOSPHERE_LIGHTING_FROM_SUN)
  7782. vec3 atmosphereLightDirection = czm_sunDirectionWC;
  7783. #else
  7784. vec3 atmosphereLightDirection = czm_lightDirectionWC;
  7785. #endif
  7786. #if defined(GROUND_ATMOSPHERE) || defined(FOG)
  7787. if (!czm_backFacing())
  7788. {
  7789. bool dynamicLighting = false;
  7790. #if defined(DYNAMIC_ATMOSPHERE_LIGHTING) && (defined(ENABLE_DAYNIGHT_SHADING) || defined(ENABLE_VERTEX_LIGHTING))
  7791. dynamicLighting = true;
  7792. #endif
  7793. vec3 rayleighColor;
  7794. vec3 mieColor;
  7795. float opacity;
  7796. vec3 positionWC;
  7797. vec3 lightDirection;
  7798. // When the camera is far away (camera distance > nightFadeOutDistance), the scattering is computed in the fragment shader.
  7799. // Otherwise, the scattering is computed in the vertex shader.
  7800. #ifdef PER_FRAGMENT_GROUND_ATMOSPHERE
  7801. positionWC = computeEllipsoidPosition();
  7802. lightDirection = czm_branchFreeTernary(dynamicLighting, atmosphereLightDirection, normalize(positionWC));
  7803. computeAtmosphereScattering(
  7804. positionWC,
  7805. lightDirection,
  7806. rayleighColor,
  7807. mieColor,
  7808. opacity
  7809. );
  7810. #else
  7811. positionWC = v_positionMC;
  7812. lightDirection = czm_branchFreeTernary(dynamicLighting, atmosphereLightDirection, normalize(positionWC));
  7813. rayleighColor = v_atmosphereRayleighColor;
  7814. mieColor = v_atmosphereMieColor;
  7815. opacity = v_atmosphereOpacity;
  7816. #endif
  7817. rayleighColor = colorCorrect(rayleighColor);
  7818. mieColor = colorCorrect(mieColor);
  7819. vec4 groundAtmosphereColor = computeAtmosphereColor(positionWC, lightDirection, rayleighColor, mieColor, opacity);
  7820. // Fog is applied to tiles selected for fog, close to the Earth.
  7821. #ifdef FOG
  7822. vec3 fogColor = groundAtmosphereColor.rgb;
  7823. // If there is lighting, apply that to the fog.
  7824. #if defined(DYNAMIC_ATMOSPHERE_LIGHTING) && (defined(ENABLE_VERTEX_LIGHTING) || defined(ENABLE_DAYNIGHT_SHADING))
  7825. float darken = clamp(dot(normalize(czm_viewerPositionWC), atmosphereLightDirection), u_minimumBrightness, 1.0);
  7826. fogColor *= darken;
  7827. #endif
  7828. #ifndef HDR
  7829. fogColor.rgb = czm_acesTonemapping(fogColor.rgb);
  7830. fogColor.rgb = czm_inverseGamma(fogColor.rgb);
  7831. #endif
  7832. const float modifier = 0.15;
  7833. finalColor = vec4(czm_fog(v_distance, finalColor.rgb, fogColor.rgb, modifier), finalColor.a);
  7834. #else
  7835. // The transmittance is based on optical depth i.e. the length of segment of the ray inside the atmosphere.
  7836. // This value is larger near the "circumference", as it is further away from the camera. We use it to
  7837. // brighten up that area of the ground atmosphere.
  7838. const float transmittanceModifier = 0.5;
  7839. float transmittance = transmittanceModifier + clamp(1.0 - groundAtmosphereColor.a, 0.0, 1.0);
  7840. vec3 finalAtmosphereColor = finalColor.rgb + groundAtmosphereColor.rgb * transmittance;
  7841. #if defined(DYNAMIC_ATMOSPHERE_LIGHTING) && (defined(ENABLE_VERTEX_LIGHTING) || defined(ENABLE_DAYNIGHT_SHADING))
  7842. float fadeInDist = u_nightFadeDistance.x;
  7843. float fadeOutDist = u_nightFadeDistance.y;
  7844. float sunlitAtmosphereIntensity = clamp((cameraDist - fadeOutDist) / (fadeInDist - fadeOutDist), 0.05, 1.0);
  7845. float darken = clamp(dot(normalize(positionWC), atmosphereLightDirection), 0.0, 1.0);
  7846. vec3 darkenendGroundAtmosphereColor = mix(groundAtmosphereColor.rgb, finalAtmosphereColor.rgb, darken);
  7847. finalAtmosphereColor = mix(darkenendGroundAtmosphereColor, finalAtmosphereColor, sunlitAtmosphereIntensity);
  7848. #endif
  7849. #ifndef HDR
  7850. finalAtmosphereColor.rgb = vec3(1.0) - exp(-fExposure * finalAtmosphereColor.rgb);
  7851. #else
  7852. finalAtmosphereColor.rgb = czm_saturation(finalAtmosphereColor.rgb, 1.6);
  7853. #endif
  7854. finalColor.rgb = mix(finalColor.rgb, finalAtmosphereColor.rgb, fade);
  7855. #endif
  7856. }
  7857. #endif
  7858. #ifdef UNDERGROUND_COLOR
  7859. if (czm_backFacing())
  7860. {
  7861. float distanceFromEllipsoid = max(czm_eyeHeight, 0.0);
  7862. float distance = max(v_distance - distanceFromEllipsoid, 0.0);
  7863. float blendAmount = interpolateByDistance(u_undergroundColorAlphaByDistance, distance);
  7864. vec4 undergroundColor = vec4(u_undergroundColor.rgb, u_undergroundColor.a * blendAmount);
  7865. finalColor = alphaBlend(undergroundColor, finalColor);
  7866. }
  7867. #endif
  7868. #ifdef TRANSLUCENT
  7869. if (inTranslucencyRectangle())
  7870. {
  7871. vec4 alphaByDistance = gl_FrontFacing ? u_frontFaceAlphaByDistance : u_backFaceAlphaByDistance;
  7872. finalColor.a *= interpolateByDistance(alphaByDistance, v_distance);
  7873. }
  7874. #endif
  7875. out_FragColor = finalColor;
  7876. }
  7877. #ifdef SHOW_REFLECTIVE_OCEAN
  7878. float waveFade(float edge0, float edge1, float x)
  7879. {
  7880. float y = clamp((x - edge0) / (edge1 - edge0), 0.0, 1.0);
  7881. return pow(1.0 - y, 5.0);
  7882. }
  7883. float linearFade(float edge0, float edge1, float x)
  7884. {
  7885. return clamp((x - edge0) / (edge1 - edge0), 0.0, 1.0);
  7886. }
  7887. // Based on water rendering by Jonas Wagner:
  7888. // http://29a.ch/2012/7/19/webgl-terrain-rendering-water-fog
  7889. // low altitude wave settings
  7890. const float oceanFrequencyLowAltitude = 825000.0;
  7891. const float oceanAnimationSpeedLowAltitude = 0.004;
  7892. const float oceanOneOverAmplitudeLowAltitude = 1.0 / 2.0;
  7893. const float oceanSpecularIntensity = 0.5;
  7894. // high altitude wave settings
  7895. const float oceanFrequencyHighAltitude = 125000.0;
  7896. const float oceanAnimationSpeedHighAltitude = 0.008;
  7897. const float oceanOneOverAmplitudeHighAltitude = 1.0 / 2.0;
  7898. vec4 computeWaterColor(vec3 positionEyeCoordinates, vec2 textureCoordinates, mat3 enuToEye, vec4 imageryColor, float maskValue, float fade)
  7899. {
  7900. vec3 positionToEyeEC = -positionEyeCoordinates;
  7901. float positionToEyeECLength = length(positionToEyeEC);
  7902. // The double normalize below works around a bug in Firefox on Android devices.
  7903. vec3 normalizedPositionToEyeEC = normalize(normalize(positionToEyeEC));
  7904. // Fade out the waves as the camera moves far from the surface.
  7905. float waveIntensity = waveFade(70000.0, 1000000.0, positionToEyeECLength);
  7906. #ifdef SHOW_OCEAN_WAVES
  7907. // high altitude waves
  7908. float time = czm_frameNumber * oceanAnimationSpeedHighAltitude;
  7909. vec4 noise = czm_getWaterNoise(u_oceanNormalMap, textureCoordinates * oceanFrequencyHighAltitude, time, 0.0);
  7910. vec3 normalTangentSpaceHighAltitude = vec3(noise.xy, noise.z * oceanOneOverAmplitudeHighAltitude);
  7911. // low altitude waves
  7912. time = czm_frameNumber * oceanAnimationSpeedLowAltitude;
  7913. noise = czm_getWaterNoise(u_oceanNormalMap, textureCoordinates * oceanFrequencyLowAltitude, time, 0.0);
  7914. vec3 normalTangentSpaceLowAltitude = vec3(noise.xy, noise.z * oceanOneOverAmplitudeLowAltitude);
  7915. // blend the 2 wave layers based on distance to surface
  7916. float highAltitudeFade = linearFade(0.0, 60000.0, positionToEyeECLength);
  7917. float lowAltitudeFade = 1.0 - linearFade(20000.0, 60000.0, positionToEyeECLength);
  7918. vec3 normalTangentSpace =
  7919. (highAltitudeFade * normalTangentSpaceHighAltitude) +
  7920. (lowAltitudeFade * normalTangentSpaceLowAltitude);
  7921. normalTangentSpace = normalize(normalTangentSpace);
  7922. // fade out the normal perturbation as we move farther from the water surface
  7923. normalTangentSpace.xy *= waveIntensity;
  7924. normalTangentSpace = normalize(normalTangentSpace);
  7925. #else
  7926. vec3 normalTangentSpace = vec3(0.0, 0.0, 1.0);
  7927. #endif
  7928. vec3 normalEC = enuToEye * normalTangentSpace;
  7929. const vec3 waveHighlightColor = vec3(0.3, 0.45, 0.6);
  7930. // Use diffuse light to highlight the waves
  7931. float diffuseIntensity = czm_getLambertDiffuse(czm_lightDirectionEC, normalEC) * maskValue;
  7932. vec3 diffuseHighlight = waveHighlightColor * diffuseIntensity * (1.0 - fade);
  7933. #ifdef SHOW_OCEAN_WAVES
  7934. // Where diffuse light is low or non-existent, use wave highlights based solely on
  7935. // the wave bumpiness and no particular light direction.
  7936. float tsPerturbationRatio = normalTangentSpace.z;
  7937. vec3 nonDiffuseHighlight = mix(waveHighlightColor * 5.0 * (1.0 - tsPerturbationRatio), vec3(0.0), diffuseIntensity);
  7938. #else
  7939. vec3 nonDiffuseHighlight = vec3(0.0);
  7940. #endif
  7941. // Add specular highlights in 3D, and in all modes when zoomed in.
  7942. float specularIntensity = czm_getSpecular(czm_lightDirectionEC, normalizedPositionToEyeEC, normalEC, 10.0);
  7943. float surfaceReflectance = mix(0.0, mix(u_zoomedOutOceanSpecularIntensity, oceanSpecularIntensity, waveIntensity), maskValue);
  7944. float specular = specularIntensity * surfaceReflectance;
  7945. #ifdef HDR
  7946. specular *= 1.4;
  7947. float e = 0.2;
  7948. float d = 3.3;
  7949. float c = 1.7;
  7950. vec3 color = imageryColor.rgb + (c * (vec3(e) + imageryColor.rgb * d) * (diffuseHighlight + nonDiffuseHighlight + specular));
  7951. #else
  7952. vec3 color = imageryColor.rgb + diffuseHighlight + nonDiffuseHighlight + specular;
  7953. #endif
  7954. return vec4(color, imageryColor.a);
  7955. }
  7956. #endif // #ifdef SHOW_REFLECTIVE_OCEAN
  7957. `;var KL=`#ifdef QUANTIZATION_BITS12
  7958. in vec4 compressed0;
  7959. in float compressed1;
  7960. #else
  7961. in vec4 position3DAndHeight;
  7962. in vec4 textureCoordAndEncodedNormals;
  7963. #endif
  7964. #ifdef GEODETIC_SURFACE_NORMALS
  7965. in vec3 geodeticSurfaceNormal;
  7966. #endif
  7967. #ifdef EXAGGERATION
  7968. uniform vec2 u_terrainExaggerationAndRelativeHeight;
  7969. #endif
  7970. uniform vec3 u_center3D;
  7971. uniform mat4 u_modifiedModelView;
  7972. uniform mat4 u_modifiedModelViewProjection;
  7973. uniform vec4 u_tileRectangle;
  7974. // Uniforms for 2D Mercator projection
  7975. uniform vec2 u_southAndNorthLatitude;
  7976. uniform vec2 u_southMercatorYAndOneOverHeight;
  7977. out vec3 v_positionMC;
  7978. out vec3 v_positionEC;
  7979. out vec3 v_textureCoordinates;
  7980. out vec3 v_normalMC;
  7981. out vec3 v_normalEC;
  7982. #ifdef APPLY_MATERIAL
  7983. out float v_slope;
  7984. out float v_aspect;
  7985. out float v_height;
  7986. #endif
  7987. #if defined(FOG) || defined(GROUND_ATMOSPHERE) || defined(UNDERGROUND_COLOR) || defined(TRANSLUCENT)
  7988. out float v_distance;
  7989. #endif
  7990. #if defined(FOG) || defined(GROUND_ATMOSPHERE)
  7991. out vec3 v_atmosphereRayleighColor;
  7992. out vec3 v_atmosphereMieColor;
  7993. out float v_atmosphereOpacity;
  7994. #endif
  7995. // These functions are generated at runtime.
  7996. vec4 getPosition(vec3 position, float height, vec2 textureCoordinates);
  7997. float get2DYPositionFraction(vec2 textureCoordinates);
  7998. vec4 getPosition3DMode(vec3 position, float height, vec2 textureCoordinates)
  7999. {
  8000. return u_modifiedModelViewProjection * vec4(position, 1.0);
  8001. }
  8002. float get2DMercatorYPositionFraction(vec2 textureCoordinates)
  8003. {
  8004. // The width of a tile at level 11, in radians and assuming a single root tile, is
  8005. // 2.0 * czm_pi / pow(2.0, 11.0)
  8006. // We want to just linearly interpolate the 2D position from the texture coordinates
  8007. // when we're at this level or higher. The constant below is the expression
  8008. // above evaluated and then rounded up at the 4th significant digit.
  8009. const float maxTileWidth = 0.003068;
  8010. float positionFraction = textureCoordinates.y;
  8011. float southLatitude = u_southAndNorthLatitude.x;
  8012. float northLatitude = u_southAndNorthLatitude.y;
  8013. if (northLatitude - southLatitude > maxTileWidth)
  8014. {
  8015. float southMercatorY = u_southMercatorYAndOneOverHeight.x;
  8016. float oneOverMercatorHeight = u_southMercatorYAndOneOverHeight.y;
  8017. float currentLatitude = mix(southLatitude, northLatitude, textureCoordinates.y);
  8018. currentLatitude = clamp(currentLatitude, -czm_webMercatorMaxLatitude, czm_webMercatorMaxLatitude);
  8019. positionFraction = czm_latitudeToWebMercatorFraction(currentLatitude, southMercatorY, oneOverMercatorHeight);
  8020. }
  8021. return positionFraction;
  8022. }
  8023. float get2DGeographicYPositionFraction(vec2 textureCoordinates)
  8024. {
  8025. return textureCoordinates.y;
  8026. }
  8027. vec4 getPositionPlanarEarth(vec3 position, float height, vec2 textureCoordinates)
  8028. {
  8029. float yPositionFraction = get2DYPositionFraction(textureCoordinates);
  8030. vec4 rtcPosition2D = vec4(height, mix(u_tileRectangle.st, u_tileRectangle.pq, vec2(textureCoordinates.x, yPositionFraction)), 1.0);
  8031. return u_modifiedModelViewProjection * rtcPosition2D;
  8032. }
  8033. vec4 getPosition2DMode(vec3 position, float height, vec2 textureCoordinates)
  8034. {
  8035. return getPositionPlanarEarth(position, 0.0, textureCoordinates);
  8036. }
  8037. vec4 getPositionColumbusViewMode(vec3 position, float height, vec2 textureCoordinates)
  8038. {
  8039. return getPositionPlanarEarth(position, height, textureCoordinates);
  8040. }
  8041. vec4 getPositionMorphingMode(vec3 position, float height, vec2 textureCoordinates)
  8042. {
  8043. // We do not do RTC while morphing, so there is potential for jitter.
  8044. // This is unlikely to be noticeable, though.
  8045. vec3 position3DWC = position + u_center3D;
  8046. float yPositionFraction = get2DYPositionFraction(textureCoordinates);
  8047. vec4 position2DWC = vec4(height, mix(u_tileRectangle.st, u_tileRectangle.pq, vec2(textureCoordinates.x, yPositionFraction)), 1.0);
  8048. vec4 morphPosition = czm_columbusViewMorph(position2DWC, vec4(position3DWC, 1.0), czm_morphTime);
  8049. return czm_modelViewProjection * morphPosition;
  8050. }
  8051. #ifdef QUANTIZATION_BITS12
  8052. uniform vec2 u_minMaxHeight;
  8053. uniform mat4 u_scaleAndBias;
  8054. #endif
  8055. void main()
  8056. {
  8057. #ifdef QUANTIZATION_BITS12
  8058. vec2 xy = czm_decompressTextureCoordinates(compressed0.x);
  8059. vec2 zh = czm_decompressTextureCoordinates(compressed0.y);
  8060. vec3 position = vec3(xy, zh.x);
  8061. float height = zh.y;
  8062. vec2 textureCoordinates = czm_decompressTextureCoordinates(compressed0.z);
  8063. height = height * (u_minMaxHeight.y - u_minMaxHeight.x) + u_minMaxHeight.x;
  8064. position = (u_scaleAndBias * vec4(position, 1.0)).xyz;
  8065. #if (defined(ENABLE_VERTEX_LIGHTING) || defined(GENERATE_POSITION_AND_NORMAL)) && defined(INCLUDE_WEB_MERCATOR_Y)
  8066. float webMercatorT = czm_decompressTextureCoordinates(compressed0.w).x;
  8067. float encodedNormal = compressed1;
  8068. #elif defined(INCLUDE_WEB_MERCATOR_Y)
  8069. float webMercatorT = czm_decompressTextureCoordinates(compressed0.w).x;
  8070. float encodedNormal = 0.0;
  8071. #elif defined(ENABLE_VERTEX_LIGHTING) || defined(GENERATE_POSITION_AND_NORMAL)
  8072. float webMercatorT = textureCoordinates.y;
  8073. float encodedNormal = compressed0.w;
  8074. #else
  8075. float webMercatorT = textureCoordinates.y;
  8076. float encodedNormal = 0.0;
  8077. #endif
  8078. #else
  8079. // A single float per element
  8080. vec3 position = position3DAndHeight.xyz;
  8081. float height = position3DAndHeight.w;
  8082. vec2 textureCoordinates = textureCoordAndEncodedNormals.xy;
  8083. #if (defined(ENABLE_VERTEX_LIGHTING) || defined(GENERATE_POSITION_AND_NORMAL) || defined(APPLY_MATERIAL)) && defined(INCLUDE_WEB_MERCATOR_Y)
  8084. float webMercatorT = textureCoordAndEncodedNormals.z;
  8085. float encodedNormal = textureCoordAndEncodedNormals.w;
  8086. #elif defined(ENABLE_VERTEX_LIGHTING) || defined(GENERATE_POSITION_AND_NORMAL) || defined(APPLY_MATERIAL)
  8087. float webMercatorT = textureCoordinates.y;
  8088. float encodedNormal = textureCoordAndEncodedNormals.z;
  8089. #elif defined(INCLUDE_WEB_MERCATOR_Y)
  8090. float webMercatorT = textureCoordAndEncodedNormals.z;
  8091. float encodedNormal = 0.0;
  8092. #else
  8093. float webMercatorT = textureCoordinates.y;
  8094. float encodedNormal = 0.0;
  8095. #endif
  8096. #endif
  8097. vec3 position3DWC = position + u_center3D;
  8098. #ifdef GEODETIC_SURFACE_NORMALS
  8099. vec3 ellipsoidNormal = geodeticSurfaceNormal;
  8100. #else
  8101. vec3 ellipsoidNormal = normalize(position3DWC);
  8102. #endif
  8103. #if defined(EXAGGERATION) && defined(GEODETIC_SURFACE_NORMALS)
  8104. float exaggeration = u_terrainExaggerationAndRelativeHeight.x;
  8105. float relativeHeight = u_terrainExaggerationAndRelativeHeight.y;
  8106. float newHeight = (height - relativeHeight) * exaggeration + relativeHeight;
  8107. // stop from going through center of earth
  8108. float minRadius = min(min(czm_ellipsoidRadii.x, czm_ellipsoidRadii.y), czm_ellipsoidRadii.z);
  8109. newHeight = max(newHeight, -minRadius);
  8110. vec3 offset = ellipsoidNormal * (newHeight - height);
  8111. position += offset;
  8112. position3DWC += offset;
  8113. height = newHeight;
  8114. #endif
  8115. gl_Position = getPosition(position, height, textureCoordinates);
  8116. v_positionEC = (u_modifiedModelView * vec4(position, 1.0)).xyz;
  8117. v_positionMC = position3DWC; // position in model coordinates
  8118. v_textureCoordinates = vec3(textureCoordinates, webMercatorT);
  8119. #if defined(ENABLE_VERTEX_LIGHTING) || defined(GENERATE_POSITION_AND_NORMAL) || defined(APPLY_MATERIAL)
  8120. vec3 normalMC = czm_octDecode(encodedNormal);
  8121. #if defined(EXAGGERATION) && defined(GEODETIC_SURFACE_NORMALS)
  8122. vec3 projection = dot(normalMC, ellipsoidNormal) * ellipsoidNormal;
  8123. vec3 rejection = normalMC - projection;
  8124. normalMC = normalize(projection + rejection * exaggeration);
  8125. #endif
  8126. v_normalMC = normalMC;
  8127. v_normalEC = czm_normal3D * v_normalMC;
  8128. #endif
  8129. #if defined(FOG) || (defined(GROUND_ATMOSPHERE) && !defined(PER_FRAGMENT_GROUND_ATMOSPHERE))
  8130. bool dynamicLighting = false;
  8131. #if defined(DYNAMIC_ATMOSPHERE_LIGHTING) && (defined(ENABLE_DAYNIGHT_SHADING) || defined(ENABLE_VERTEX_LIGHTING))
  8132. dynamicLighting = true;
  8133. #endif
  8134. #if defined(DYNAMIC_ATMOSPHERE_LIGHTING_FROM_SUN)
  8135. vec3 atmosphereLightDirection = czm_sunDirectionWC;
  8136. #else
  8137. vec3 atmosphereLightDirection = czm_lightDirectionWC;
  8138. #endif
  8139. vec3 lightDirection = czm_branchFreeTernary(dynamicLighting, atmosphereLightDirection, normalize(position3DWC));
  8140. computeAtmosphereScattering(
  8141. position3DWC,
  8142. lightDirection,
  8143. v_atmosphereRayleighColor,
  8144. v_atmosphereMieColor,
  8145. v_atmosphereOpacity
  8146. );
  8147. #endif
  8148. #if defined(FOG) || defined(GROUND_ATMOSPHERE) || defined(UNDERGROUND_COLOR) || defined(TRANSLUCENT)
  8149. v_distance = length((czm_modelView3D * vec4(position3DWC, 1.0)).xyz);
  8150. #endif
  8151. #ifdef APPLY_MATERIAL
  8152. float northPoleZ = czm_ellipsoidRadii.z;
  8153. vec3 northPolePositionMC = vec3(0.0, 0.0, northPoleZ);
  8154. vec3 vectorEastMC = normalize(cross(northPolePositionMC - v_positionMC, ellipsoidNormal));
  8155. float dotProd = abs(dot(ellipsoidNormal, v_normalMC));
  8156. v_slope = acos(dotProd);
  8157. vec3 normalRejected = ellipsoidNormal * dotProd;
  8158. vec3 normalProjected = v_normalMC - normalRejected;
  8159. vec3 aspectVector = normalize(normalProjected);
  8160. v_aspect = acos(dot(aspectVector, vectorEastMC));
  8161. float determ = dot(cross(vectorEastMC, aspectVector), ellipsoidNormal);
  8162. v_aspect = czm_branchFreeTernary(determ < 0.0, 2.0 * czm_pi - v_aspect, v_aspect);
  8163. v_height = height;
  8164. #endif
  8165. }
  8166. `;var O_=`uniform vec3 u_radiiAndDynamicAtmosphereColor;
  8167. uniform float u_atmosphereLightIntensity;
  8168. uniform float u_atmosphereRayleighScaleHeight;
  8169. uniform float u_atmosphereMieScaleHeight;
  8170. uniform float u_atmosphereMieAnisotropy;
  8171. uniform vec3 u_atmosphereRayleighCoefficient;
  8172. uniform vec3 u_atmosphereMieCoefficient;
  8173. const float ATMOSPHERE_THICKNESS = 111e3; // The thickness of the atmosphere in meters.
  8174. const int PRIMARY_STEPS_MAX = 16; // Maximum number of times the ray from the camera to the world position (primary ray) is sampled.
  8175. 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.
  8176. /**
  8177. * Rational approximation to tanh(x)
  8178. */
  8179. float approximateTanh(float x) {
  8180. float x2 = x * x;
  8181. return max(-1.0, min(+1.0, x * (27.0 + x2) / (27.0 + 9.0 * x2)));
  8182. }
  8183. /**
  8184. * This function computes the colors contributed by Rayliegh and Mie scattering on a given ray, as well as
  8185. * the transmittance value for the ray.
  8186. *
  8187. * @param {czm_ray} primaryRay The ray from the camera to the position.
  8188. * @param {float} primaryRayLength The length of the primary ray.
  8189. * @param {vec3} lightDirection The direction of the light to calculate the scattering from.
  8190. * @param {vec3} rayleighColor The variable the Rayleigh scattering will be written to.
  8191. * @param {vec3} mieColor The variable the Mie scattering will be written to.
  8192. * @param {float} opacity The variable the transmittance will be written to.
  8193. * @glslFunction
  8194. */
  8195. void computeScattering(
  8196. czm_ray primaryRay,
  8197. float primaryRayLength,
  8198. vec3 lightDirection,
  8199. float atmosphereInnerRadius,
  8200. out vec3 rayleighColor,
  8201. out vec3 mieColor,
  8202. out float opacity
  8203. ) {
  8204. // Initialize the default scattering amounts to 0.
  8205. rayleighColor = vec3(0.0);
  8206. mieColor = vec3(0.0);
  8207. opacity = 0.0;
  8208. float atmosphereOuterRadius = atmosphereInnerRadius + ATMOSPHERE_THICKNESS;
  8209. vec3 origin = vec3(0.0);
  8210. // Calculate intersection from the camera to the outer ring of the atmosphere.
  8211. czm_raySegment primaryRayAtmosphereIntersect = czm_raySphereIntersectionInterval(primaryRay, origin, atmosphereOuterRadius);
  8212. // Return empty colors if no intersection with the atmosphere geometry.
  8213. if (primaryRayAtmosphereIntersect == czm_emptyRaySegment) {
  8214. return;
  8215. }
  8216. // To deal with smaller values of PRIMARY_STEPS (e.g. 4)
  8217. // we implement a split strategy: sky or horizon.
  8218. // For performance reasons, instead of a if/else branch
  8219. // a soft choice is implemented through a weight 0.0 <= w_stop_gt_lprl <= 1.0
  8220. float x = 1e-7 * primaryRayAtmosphereIntersect.stop / length(primaryRayLength);
  8221. // Value close to 0.0: close to the horizon
  8222. // Value close to 1.0: above in the sky
  8223. float w_stop_gt_lprl = 0.5 * (1.0 + approximateTanh(x));
  8224. // The ray should start from the first intersection with the outer atmopshere, or from the camera position, if it is inside the atmosphere.
  8225. float start_0 = primaryRayAtmosphereIntersect.start;
  8226. primaryRayAtmosphereIntersect.start = max(primaryRayAtmosphereIntersect.start, 0.0);
  8227. // The ray should end at the exit from the atmosphere or at the distance to the vertex, whichever is smaller.
  8228. primaryRayAtmosphereIntersect.stop = min(primaryRayAtmosphereIntersect.stop, length(primaryRayLength));
  8229. // For the number of ray steps, distinguish inside or outside atmosphere (outer space)
  8230. // (1) from outer space we have to use more ray steps to get a realistic rendering
  8231. // (2) within atmosphere we need fewer steps for faster rendering
  8232. 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
  8233. float w_inside_atmosphere = 1.0 - 0.5 * (1.0 + approximateTanh(x_o_a));
  8234. 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.
  8235. 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.
  8236. // Setup for sampling positions along the ray - starting from the intersection with the outer ring of the atmosphere.
  8237. float rayPositionLength = primaryRayAtmosphereIntersect.start;
  8238. // (1) Outside the atmosphere: constant rayStepLength
  8239. // (2) Inside atmosphere: variable rayStepLength to compensate the rough rendering of the smaller number of ray steps
  8240. float totalRayLength = primaryRayAtmosphereIntersect.stop - rayPositionLength;
  8241. float rayStepLengthIncrease = w_inside_atmosphere * ((1.0 - w_stop_gt_lprl) * totalRayLength / (float(PRIMARY_STEPS * (PRIMARY_STEPS + 1)) / 2.0));
  8242. float rayStepLength = max(1.0 - w_inside_atmosphere, w_stop_gt_lprl) * totalRayLength / max(7.0 * w_inside_atmosphere, float(PRIMARY_STEPS));
  8243. vec3 rayleighAccumulation = vec3(0.0);
  8244. vec3 mieAccumulation = vec3(0.0);
  8245. vec2 opticalDepth = vec2(0.0);
  8246. vec2 heightScale = vec2(u_atmosphereRayleighScaleHeight, u_atmosphereMieScaleHeight);
  8247. // Sample positions on the primary ray.
  8248. for (int i = 0; i < PRIMARY_STEPS_MAX; ++i) {
  8249. // The loop should be: for (int i = 0; i < PRIMARY_STEPS; ++i) {...} but WebGL1 cannot
  8250. // loop with non-constant condition, so it has to break early instead
  8251. if (i >= PRIMARY_STEPS) {
  8252. break;
  8253. }
  8254. // Calculate sample position along viewpoint ray.
  8255. vec3 samplePosition = primaryRay.origin + primaryRay.direction * (rayPositionLength + rayStepLength);
  8256. // Calculate height of sample position above ellipsoid.
  8257. float sampleHeight = length(samplePosition) - atmosphereInnerRadius;
  8258. // Calculate and accumulate density of particles at the sample position.
  8259. vec2 sampleDensity = exp(-sampleHeight / heightScale) * rayStepLength;
  8260. opticalDepth += sampleDensity;
  8261. // Generate ray from the sample position segment to the light source, up to the outer ring of the atmosphere.
  8262. czm_ray lightRay = czm_ray(samplePosition, lightDirection);
  8263. czm_raySegment lightRayAtmosphereIntersect = czm_raySphereIntersectionInterval(lightRay, origin, atmosphereOuterRadius);
  8264. float lightStepLength = lightRayAtmosphereIntersect.stop / float(LIGHT_STEPS);
  8265. float lightPositionLength = 0.0;
  8266. vec2 lightOpticalDepth = vec2(0.0);
  8267. // Sample positions along the light ray, to accumulate incidence of light on the latest sample segment.
  8268. for (int j = 0; j < LIGHT_STEPS_MAX; ++j) {
  8269. // The loop should be: for (int j = 0; i < LIGHT_STEPS; ++j) {...} but WebGL1 cannot
  8270. // loop with non-constant condition, so it has to break early instead
  8271. if (j >= LIGHT_STEPS) {
  8272. break;
  8273. }
  8274. // Calculate sample position along light ray.
  8275. vec3 lightPosition = samplePosition + lightDirection * (lightPositionLength + lightStepLength * 0.5);
  8276. // Calculate height of the light sample position above ellipsoid.
  8277. float lightHeight = length(lightPosition) - atmosphereInnerRadius;
  8278. // Calculate density of photons at the light sample position.
  8279. lightOpticalDepth += exp(-lightHeight / heightScale) * lightStepLength;
  8280. // Increment distance on light ray.
  8281. lightPositionLength += lightStepLength;
  8282. }
  8283. // Compute attenuation via the primary ray and the light ray.
  8284. vec3 attenuation = exp(-((u_atmosphereMieCoefficient * (opticalDepth.y + lightOpticalDepth.y)) + (u_atmosphereRayleighCoefficient * (opticalDepth.x + lightOpticalDepth.x))));
  8285. // Accumulate the scattering.
  8286. rayleighAccumulation += sampleDensity.x * attenuation;
  8287. mieAccumulation += sampleDensity.y * attenuation;
  8288. // Increment distance on primary ray.
  8289. rayPositionLength += (rayStepLength += rayStepLengthIncrease);
  8290. }
  8291. // Compute the scattering amount.
  8292. rayleighColor = u_atmosphereRayleighCoefficient * rayleighAccumulation;
  8293. mieColor = u_atmosphereMieCoefficient * mieAccumulation;
  8294. // Compute the transmittance i.e. how much light is passing through the atmosphere.
  8295. opacity = length(exp(-((u_atmosphereMieCoefficient * opticalDepth.y) + (u_atmosphereRayleighCoefficient * opticalDepth.x))));
  8296. }
  8297. vec4 computeAtmosphereColor(
  8298. vec3 positionWC,
  8299. vec3 lightDirection,
  8300. vec3 rayleighColor,
  8301. vec3 mieColor,
  8302. float opacity
  8303. ) {
  8304. // Setup the primary ray: from the camera position to the vertex position.
  8305. vec3 cameraToPositionWC = positionWC - czm_viewerPositionWC;
  8306. vec3 cameraToPositionWCDirection = normalize(cameraToPositionWC);
  8307. float cosAngle = dot(cameraToPositionWCDirection, lightDirection);
  8308. float cosAngleSq = cosAngle * cosAngle;
  8309. float G = u_atmosphereMieAnisotropy;
  8310. float GSq = G * G;
  8311. // The Rayleigh phase function.
  8312. float rayleighPhase = 3.0 / (50.2654824574) * (1.0 + cosAngleSq);
  8313. // The Mie phase function.
  8314. 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));
  8315. // The final color is generated by combining the effects of the Rayleigh and Mie scattering.
  8316. vec3 rayleigh = rayleighPhase * rayleighColor;
  8317. vec3 mie = miePhase * mieColor;
  8318. vec3 color = (rayleigh + mie) * u_atmosphereLightIntensity;
  8319. return vec4(color, opacity);
  8320. }
  8321. `;var YE=`void computeAtmosphereScattering(vec3 positionWC, vec3 lightDirection, out vec3 rayleighColor, out vec3 mieColor, out float opacity) {
  8322. vec3 cameraToPositionWC = positionWC - czm_viewerPositionWC;
  8323. vec3 cameraToPositionWCDirection = normalize(cameraToPositionWC);
  8324. czm_ray primaryRay = czm_ray(czm_viewerPositionWC, cameraToPositionWCDirection);
  8325. float atmosphereInnerRadius = length(positionWC);
  8326. computeScattering(
  8327. primaryRay,
  8328. length(cameraToPositionWC),
  8329. lightDirection,
  8330. atmosphereInnerRadius,
  8331. rayleighColor,
  8332. mieColor,
  8333. opacity
  8334. );
  8335. }
  8336. `;var jtt=new z;function qtt(e,t){let n=e.unionClippingRegions,i=e.length,o=cs.useFloatTexture(t),r=cs.getTextureResolution(e,t,jtt),s=r.x,a=r.y,c=o?Ktt(s,a):Ztt(s,a);return c+=`
  8337. `,c+=n?Ytt(i):Xtt(i),c}function Ytt(e){return`float clip(vec4 fragCoord, sampler2D clippingPlanes, mat4 clippingPlanesMatrix)
  8338. {
  8339. vec4 position = czm_windowToEyeCoordinates(fragCoord);
  8340. vec3 clipNormal = vec3(0.0);
  8341. vec3 clipPosition = vec3(0.0);
  8342. float clipAmount;
  8343. float pixelWidth = czm_metersPerPixel(position);
  8344. bool breakAndDiscard = false;
  8345. for (int i = 0; i < ${e}; ++i)
  8346. {
  8347. vec4 clippingPlane = getClippingPlane(clippingPlanes, i, clippingPlanesMatrix);
  8348. clipNormal = clippingPlane.xyz;
  8349. clipPosition = -clippingPlane.w * clipNormal;
  8350. float amount = dot(clipNormal, (position.xyz - clipPosition)) / pixelWidth;
  8351. clipAmount = czm_branchFreeTernary(i == 0, amount, min(amount, clipAmount));
  8352. if (amount <= 0.0)
  8353. {
  8354. breakAndDiscard = true;
  8355. break;
  8356. }
  8357. }
  8358. if (breakAndDiscard) {
  8359. discard;
  8360. }
  8361. return clipAmount;
  8362. }
  8363. `}function Xtt(e){return`float clip(vec4 fragCoord, sampler2D clippingPlanes, mat4 clippingPlanesMatrix)
  8364. {
  8365. bool clipped = true;
  8366. vec4 position = czm_windowToEyeCoordinates(fragCoord);
  8367. vec3 clipNormal = vec3(0.0);
  8368. vec3 clipPosition = vec3(0.0);
  8369. float clipAmount = 0.0;
  8370. float pixelWidth = czm_metersPerPixel(position);
  8371. for (int i = 0; i < ${e}; ++i)
  8372. {
  8373. vec4 clippingPlane = getClippingPlane(clippingPlanes, i, clippingPlanesMatrix);
  8374. clipNormal = clippingPlane.xyz;
  8375. clipPosition = -clippingPlane.w * clipNormal;
  8376. float amount = dot(clipNormal, (position.xyz - clipPosition)) / pixelWidth;
  8377. clipAmount = max(amount, clipAmount);
  8378. clipped = clipped && (amount <= 0.0);
  8379. }
  8380. if (clipped)
  8381. {
  8382. discard;
  8383. }
  8384. return clipAmount;
  8385. }
  8386. `}function Ktt(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)
  8387. {
  8388. int pixY = clippingPlaneNumber / ${e};
  8389. int pixX = clippingPlaneNumber - (pixY * ${e});
  8390. float u = (float(pixX) + 0.5) * ${o};
  8391. float v = (float(pixY) + 0.5) * ${r};
  8392. vec4 plane = texture(packedClippingPlanes, vec2(u, v));
  8393. return czm_transformPlane(plane, transform);
  8394. }
  8395. `}function Ztt(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)
  8396. {
  8397. int clippingPlaneStartIndex = clippingPlaneNumber * 2;
  8398. int pixY = clippingPlaneStartIndex / ${e};
  8399. int pixX = clippingPlaneStartIndex - (pixY * ${e});
  8400. float u = (float(pixX) + 0.5) * ${o};
  8401. float v = (float(pixY) + 0.5) * ${r};
  8402. vec4 oct32 = texture(packedClippingPlanes, vec2(u, v)) * 255.0;
  8403. vec2 oct = vec2(oct32.x * 256.0 + oct32.y, oct32.z * 256.0 + oct32.w);
  8404. vec4 plane;
  8405. plane.xyz = czm_octDecode(oct, 65535.0);
  8406. plane.w = czm_unpackFloat(texture(packedClippingPlanes, vec2(u + ${o}, v)));
  8407. return czm_transformPlane(plane, transform);
  8408. }
  8409. `}var R_=qtt;function $tt(e,t,n,i,o){this.numberOfDayTextures=e,this.flags=t,this.material=n,this.shaderProgram=i,this.clippingShaderState=o}function q7(){this.baseVertexShaderSource=void 0,this.baseFragmentShaderSource=void 0,this._shadersByTexturesFlags=[],this.material=void 0}function Qtt(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 te.SCENE3D:o=t;break;case te.SCENE2D:case te.COLUMBUS_VIEW:o=n;break;case te.MORPHING:o=i;break}return o}function Jtt(e){return e?"float get2DYPositionFraction(vec2 textureCoordinates) { return get2DMercatorYPositionFraction(textureCoordinates); }":"float get2DYPositionFraction(vec2 textureCoordinates) { return get2DGeographicYPositionFraction(textureCoordinates); }"}q7.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,l=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,A=e.perFragmentGroundAtmosphere,C=e.hasVertexNormals,S=e.useWebMercatorProjection,w=e.enableFog,D=e.enableClippingPlanes,O=e.clippingPlanes,R=e.clippedByBoundaries,L=e.hasImageryLayerCutout,N=e.colorCorrect,_=e.highlightFillTile,E=e.colorToAlpha,v=e.hasGeodeticSurfaceNormals,I=e.hasExaggeration,M=e.showUndergroundColor,B=e.translucent,V=0,U="",k=n.renderedMesh.encoding;k.quantization===Fs.BITS12&&(V=1,U="QUANTIZATION_BITS12");let j=0,$="";R&&(j=1,$="TILE_LIMIT_RECTANGLE");let W=0,K="";L&&(W=1,K="APPLY_IMAGERY_CUTOUT");let Z=t.mode,me=Z|o<<2|r<<3|s<<4|a<<5|c<<6|l<<7|p<<8|g<<9|m<<10|x<<11|b<<12|T<<13|A<<14|C<<15|S<<16|w<<17|V<<18|d<<19|D<<20|j<<21|W<<22|N<<23|_<<24|E<<25|v<<26|I<<27|M<<28|B<<29|f<<30,xe=0;u(O)&&O.length>0&&(xe=D?O.clippingPlanesState:0);let re=n.surfaceShader;if(u(re)&&re.numberOfDayTextures===i&&re.flags===me&&re.material===this.material&&re.clippingShaderState===xe)return re.shaderProgram;let ye=this._shadersByTexturesFlags[i];if(u(ye)||(ye=this._shadersByTexturesFlags[i]=[]),re=ye[me],!u(re)||re.material!==this.material||re.clippingShaderState!==xe){let ge=this.baseVertexShaderSource.clone(),Ae=this.baseFragmentShaderSource.clone();xe!==0&&Ae.sources.unshift(R_(O,t.context)),ge.defines.push(U),Ae.defines.push(`TEXTURE_UNITS ${i}`,$,K),o&&Ae.defines.push("APPLY_BRIGHTNESS"),r&&Ae.defines.push("APPLY_CONTRAST"),s&&Ae.defines.push("APPLY_HUE"),a&&Ae.defines.push("APPLY_SATURATION"),c&&Ae.defines.push("APPLY_GAMMA"),l&&Ae.defines.push("APPLY_ALPHA"),f&&Ae.defines.push("APPLY_DAY_NIGHT_ALPHA"),p&&(Ae.defines.push("SHOW_REFLECTIVE_OCEAN"),ge.defines.push("SHOW_REFLECTIVE_OCEAN")),g&&Ae.defines.push("SHOW_OCEAN_WAVES"),E&&Ae.defines.push("APPLY_COLOR_TO_ALPHA"),M&&(ge.defines.push("UNDERGROUND_COLOR"),Ae.defines.push("UNDERGROUND_COLOR")),B&&(ge.defines.push("TRANSLUCENT"),Ae.defines.push("TRANSLUCENT")),m&&(C?(ge.defines.push("ENABLE_VERTEX_LIGHTING"),Ae.defines.push("ENABLE_VERTEX_LIGHTING")):(ge.defines.push("ENABLE_DAYNIGHT_SHADING"),Ae.defines.push("ENABLE_DAYNIGHT_SHADING"))),x&&(ge.defines.push("DYNAMIC_ATMOSPHERE_LIGHTING"),Ae.defines.push("DYNAMIC_ATMOSPHERE_LIGHTING"),b&&(ge.defines.push("DYNAMIC_ATMOSPHERE_LIGHTING_FROM_SUN"),Ae.defines.push("DYNAMIC_ATMOSPHERE_LIGHTING_FROM_SUN"))),T&&(ge.defines.push("GROUND_ATMOSPHERE"),Ae.defines.push("GROUND_ATMOSPHERE"),A&&(ge.defines.push("PER_FRAGMENT_GROUND_ATMOSPHERE"),Ae.defines.push("PER_FRAGMENT_GROUND_ATMOSPHERE"))),ge.defines.push("INCLUDE_WEB_MERCATOR_Y"),Ae.defines.push("INCLUDE_WEB_MERCATOR_Y"),w&&(ge.defines.push("FOG"),Ae.defines.push("FOG")),d&&Ae.defines.push("APPLY_SPLIT"),D&&Ae.defines.push("ENABLE_CLIPPING_PLANES"),N&&Ae.defines.push("COLOR_CORRECT"),_&&Ae.defines.push("HIGHLIGHT_FILL_TILE"),v&&ge.defines.push("GEODETIC_SURFACE_NORMALS"),I&&ge.defines.push("EXAGGERATION");let De=` vec4 computeDayColor(vec4 initialColor, vec3 textureCoordinates, float nightBlend)
  8410. {
  8411. vec4 color = initialColor;
  8412. `;L&&(De+=` vec4 cutoutAndColorResult;
  8413. bool texelUnclipped;
  8414. `);for(let ze=0;ze<i;++ze)L?De+=` cutoutAndColorResult = u_dayTextureCutoutRectangles[${ze}];
  8415. texelUnclipped = v_textureCoordinates.x < cutoutAndColorResult.x || cutoutAndColorResult.z < v_textureCoordinates.x || v_textureCoordinates.y < cutoutAndColorResult.y || cutoutAndColorResult.w < v_textureCoordinates.y;
  8416. cutoutAndColorResult = sampleAndBlend(
  8417. `:De+=` color = sampleAndBlend(
  8418. `,De+=` color,
  8419. u_dayTextures[${ze}],
  8420. u_dayTextureUseWebMercatorT[${ze}] ? textureCoordinates.xz : textureCoordinates.xy,
  8421. u_dayTextureTexCoordsRectangle[${ze}],
  8422. u_dayTextureTranslationAndScale[${ze}],
  8423. ${l?`u_dayTextureAlpha[${ze}]`:"1.0"},
  8424. ${f?`u_dayTextureNightAlpha[${ze}]`:"1.0"},
  8425. ${f?`u_dayTextureDayAlpha[${ze}]`:"1.0"},
  8426. ${o?`u_dayTextureBrightness[${ze}]`:"0.0"},
  8427. ${r?`u_dayTextureContrast[${ze}]`:"0.0"},
  8428. ${s?`u_dayTextureHue[${ze}]`:"0.0"},
  8429. ${a?`u_dayTextureSaturation[${ze}]`:"0.0"},
  8430. ${c?`u_dayTextureOneOverGamma[${ze}]`:"0.0"},
  8431. ${d?`u_dayTextureSplit[${ze}]`:"0.0"},
  8432. ${E?`u_colorsToAlpha[${ze}]`:"vec4(0.0)"},
  8433. nightBlend );
  8434. `,L&&(De+=` color = czm_branchFreeTernary(texelUnclipped, cutoutAndColorResult, color);
  8435. `);De+=` return color;
  8436. }`,Ae.sources.push(De),ge.sources.push(Qtt(Z)),ge.sources.push(Jtt(S));let Re=Yt.fromCache({context:t.context,vertexShaderSource:ge,fragmentShaderSource:Ae,attributeLocations:k.getAttributeLocations()});re=ye[me]=new $tt(i,me,this.material,Re,xe)}return n.surfaceShader=re,re.shaderProgram};q7.prototype.destroy=function(){let e,t,n=this._shadersByTexturesFlags;for(let i in n)if(n.hasOwnProperty(i)){let o=n[i];if(!u(o))continue;for(e in o)o.hasOwnProperty(e)&&(t=o[e],u(t)&&t.shaderProgram.destroy())}return le(this)};var ZL=q7;var ent={NONE:-1,PARTIAL:0,FULL:1},lr=Object.freeze(ent);function o4(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}o4.reportError=function(e,t,n,i,o,r,s,a){let c=e;return u(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 o4(t,i,o,r,s,0,a),u(n)&&n.numberOfListeners>0?n.raiseEvent(c):u(t)&&console.log(`An error occurred in "${t.constructor.name}": ${wm(i)}`),c};o4.reportSuccess=function(e){u(e)&&(e.timesRetried=-1)};var wo=o4;var tnt={UNLOADED:0,TRANSITIONING:1,RECEIVED:2,TEXTURE_LOADED:3,READY:4,FAILED:5,INVALID:6,PLACEHOLDER:7},ci=Object.freeze(tnt);var nnt={START:0,LOADING:1,DONE:2,FAILED:3},Bs=Object.freeze(nnt);var int={FAILED:0,UNLOADED:1,RECEIVING:2,RECEIVED:3,TRANSFORMING:4,TRANSFORMED:5,READY:6},ao=Object.freeze(int);function Qo(){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=ao.UNLOADED,this.mesh=void 0,this.fill=void 0,this.pickBoundingSphere=new se,this.surfaceShader=void 0,this.isClipped=!0,this.clippedByBoundaries=!1}Object.defineProperties(Qo.prototype,{eligibleForUnloading:{get:function(){let e=this.terrainState,n=!(e===ao.RECEIVING||e===ao.TRANSFORMING),i=this.imagery;for(let o=0,r=i.length;n&&o<r;++o){let s=i[o];n=!u(s.loadingImagery)||s.loadingImagery.state!==ci.TRANSITIONING}return n}},renderedMesh:{get:function(){if(u(this.vertexArray))return this.mesh;if(u(this.fill))return this.fill.mesh}}});var ont=new fe;function Y7(e,t,n,i,o,r){let s=e.getExaggeratedPosition(i,o,r);if(u(t)&&t!==te.SCENE3D){let c=n.ellipsoid.cartesianToCartographic(s,ont);s=n.project(c,r),s=h.fromElements(s.z,s.x,s.y,r)}return s}var rnt=new h,snt=new h,ant=new h;Qo.prototype.pick=function(e,t,n,i,o){let r=this.renderedMesh;if(!u(r))return;let s=r.vertices,a=r.indices,c=r.encoding,l=a.length,f=Number.MAX_VALUE;for(let d=0;d<l;d+=3){let p=a[d],g=a[d+1],m=a[d+2],x=Y7(c,t,n,s,p,rnt),b=Y7(c,t,n,s,g,snt),T=Y7(c,t,n,s,m,ant),A=xi.rayTriangleParametric(e,x,b,T,i);u(A)&&A<f&&A>=0&&(f=A)}return f!==Number.MAX_VALUE?Tn.getPoint(e,f,o):void 0};Qo.prototype.freeResources=function(){u(this.waterMaskTexture)&&(--this.waterMaskTexture.referenceCount,this.waterMaskTexture.referenceCount===0&&this.waterMaskTexture.destroy(),this.waterMaskTexture=void 0),this.terrainData=void 0,this.terrainState=ao.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()};Qo.prototype.freeVertexArray=function(){Qo._freeVertexArray(this.vertexArray),this.vertexArray=void 0,Qo._freeVertexArray(this.wireframeVertexArray),this.wireframeVertexArray=void 0};Qo.initialize=function(e,t,n){let i=e.data;u(i)||(i=e.data=new Qo),e.state===Bs.START&&(cnt(e,t,n),e.state=Bs.LOADING)};Qo.processStateMachine=function(e,t,n,i,o,r,s){Qo.initialize(e,n,i);let a=e.data;if(e.state===Bs.LOADING&&lnt(e,t,n,i,o,r),s)return;let c=e.renderable;e.renderable=u(a.vertexArray);let l=a.terrainState===ao.READY;e.upsampledFromParent=u(a.terrainData)&&a.terrainData.wasCreatedByUpsampling();let f=a.processImagery(e,n,t);if(l&&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=Bs.DONE}c&&(e.renderable=!0)};Qo.prototype.processImagery=function(e,t,n,i){let o=e.data,r=e.upsampledFromParent,s=!1,a=!0,c=o.imagery,l,f;for(l=0,f=c.length;l<f;++l){let d=c[l];if(!u(d.loadingImagery)){r=!1;continue}if(d.loadingImagery.state===ci.PLACEHOLDER){let g=d.loadingImagery.imageryLayer;if(g.ready){d.freeResources(),c.splice(l,1),g._createTileImagerySkeletons(e,t,l),--l,f=c.length;continue}else r=!1}let p=d.processStateMachine(e,n,i);a=a&&p,s=s||p||u(d.readyImagery),r=r&&u(d.loadingImagery)&&(d.loadingImagery.state===ci.FAILED||d.loadingImagery.state===ci.INVALID)}return e.upsampledFromParent=r,e.renderable=e.renderable&&(s||a),a};function Bpe(e,t,n,i){let o=e.renderedMesh,r=o.vertices,s=o.encoding,a=r.length/s.stride,c=dc.clone(s);c.hasGeodeticSurfaceNormals=t,c=dc.clone(c);let l=c.stride,f=new Float32Array(a*l);t?s.addGeodeticSurfaceNormals(r,f,n):s.removeGeodeticSurfaceNormals(r,f),o.vertices=f,o.stride=l,o!==e.mesh?(Qo._freeVertexArray(e.fill.vertexArray),e.fill.vertexArray=Qo._createVertexArrayForMesh(i.context,o)):(Qo._freeVertexArray(e.vertexArray),e.vertexArray=Qo._createVertexArrayForMesh(i.context,o)),Qo._freeVertexArray(e.wireframeVertexArray),e.wireframeVertexArray=void 0}Qo.prototype.addGeodeticSurfaceNormals=function(e,t){Bpe(this,!0,e,t)};Qo.prototype.removeGeodeticSurfaceNormals=function(e){Bpe(this,!1,void 0,e)};Qo.prototype.updateExaggeration=function(e,t,n){let i=this,o=i.renderedMesh;if(o===void 0)return;let r=t.terrainExaggeration,s=t.terrainExaggerationRelativeHeight,a=r!==1,c=o.encoding,l=c.exaggeration!==r,f=c.exaggerationRelativeHeight!==s;if(l||f){if(l)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 cnt(e,t,n){let i=t.getTileDataAvailable(e.x,e.y,e.level);if(!u(i)&&u(e.parent)){let o=e.parent,r=o.data;u(r)&&u(r.terrainData)&&(i=r.terrainData.isChildAvailable(o.x,o.y,e.x,e.y))}i===!1&&(e.data.terrainState=ao.FAILED);for(let o=0,r=n.length;o<r;++o){let s=n.get(o);s.show&&s._createTileImagerySkeletons(e,t)}}function lnt(e,t,n,i,o,r){let s=e.data,a=e.parent;if(s.terrainState===ao.FAILED&&a!==void 0&&(a.data!==void 0&&a.data.terrainData!==void 0&&a.data.terrainData.canUpsample!==!1||Qo.processStateMachine(a,t,n,i,o,r,!0)),s.terrainState===ao.FAILED&&unt(s,e,t,n,e.x,e.y,e.level),s.terrainState===ao.UNLOADED&&fnt(s,n,e.x,e.y,e.level),s.terrainState===ao.RECEIVED&&hnt(s,t,n,e.x,e.y,e.level),s.terrainState===ao.TRANSFORMED&&(mnt(s,t.context,n,e.x,e.y,e.level,r),s.updateExaggeration(e,t,o)),s.terrainState>=ao.RECEIVED&&s.waterMaskTexture===void 0&&n.hasWaterMask)if(s.terrainData.waterMask!==void 0)_nt(t.context,s);else{let l=s._findAncestorTileWithTerrainData(e);u(l)&&u(l.data.waterMaskTexture)&&(s.waterMaskTexture=l.data.waterMaskTexture,++s.waterMaskTexture.referenceCount,s._computeWaterMaskTranslationAndScale(e,l,s.waterMaskTranslationAndScale))}}function unt(e,t,n,i,o,r,s){let a=t.parent;if(!a){t.state=Bs.FAILED;return}let c=a.data.terrainData,l=a.x,f=a.y,d=a.level;if(!u(c))return;let p=c.upsample(i.tilingScheme,l,f,d,o,r,s);u(p)&&(e.terrainState=ao.RECEIVING,Promise.resolve(p).then(function(g){u(g)&&(e.terrainData=g,e.terrainState=ao.RECEIVED)}).catch(function(){e.terrainState=ao.FAILED}))}function fnt(e,t,n,i,o){function r(c){if(!u(c)){e.terrainState=ao.UNLOADED,e.request=void 0;return}e.terrainData=c,e.terrainState=ao.RECEIVED,e.request=void 0}function s(c){if(e.request.state===Jn.CANCELLED){e.terrainData=void 0,e.terrainState=ao.UNLOADED,e.request=void 0;return}e.terrainState=ao.FAILED,e.request=void 0;let l=`Failed to obtain terrain tile X: ${n} Y: ${i} Level: ${o}. Error message: "${c}"`;t._requestError=wo.reportError(t._requestError,t,t.errorEvent,l,n,i,o),t._requestError.retry&&a()}function a(){let c=new Go({throttle:!1,throttleByServer:!0,type:Jr.TERRAIN});e.request=c;let l=t.requestTileGeometry(n,i,o,c);u(l)?(e.terrainState=ao.RECEIVING,Promise.resolve(l).then(function(f){r(f)}).catch(function(f){s(f)})):(e.terrainState=ao.UNLOADED,e.request=void 0)}a()}var dnt={tilingScheme:void 0,x:0,y:0,level:0,exaggeration:1,exaggerationRelativeHeight:0,throttle:!0};function hnt(e,t,n,i,o,r){let s=n.tilingScheme,a=dnt;a.tilingScheme=s,a.x=i,a.y=o,a.level=r,a.exaggeration=t.terrainExaggeration,a.exaggerationRelativeHeight=t.terrainExaggerationRelativeHeight,a.throttle=!0;let l=e.terrainData.createMesh(a);u(l)&&(e.terrainState=ao.TRANSFORMING,Promise.resolve(l).then(function(f){e.mesh=f,e.terrainState=ao.TRANSFORMED}).catch(function(){e.terrainState=ao.FAILED}))}Qo._createVertexArrayForMesh=function(e,t){let n=t.vertices,i=ct.createVertexBuffer({context:e,typedArray:n,usage:Ne.STATIC_DRAW}),o=t.encoding.getAttributes(i),r=t.indices.indexBuffers||{},s=r[e.id];if(!u(s)||s.isDestroyed()){let a=t.indices;s=ct.createIndexBuffer({context:e,typedArray:a,usage:Ne.STATIC_DRAW,indexDatatype:Fe.fromSizeInBytes(a.BYTES_PER_ELEMENT)}),s.vertexArrayDestroyable=!1,s.referenceCount=1,r[e.id]=s,t.indices.indexBuffers=r}else++s.referenceCount;return new ni({context:e,attributes:o,indexBuffer:s})};Qo._freeVertexArray=function(e){if(u(e)){let t=e.indexBuffer;e.isDestroyed()||e.destroy(),u(t)&&!t.isDestroyed()&&u(t.referenceCount)&&(--t.referenceCount,t.referenceCount===0&&t.destroy())}};function mnt(e,t,n,i,o,r,s){e.vertexArray=Qo._createVertexArrayForMesh(t,e.mesh),e.terrainState=ao.READY,e.fill=e.fill&&e.fill.destroy(s)}function pnt(e){let t=e.cache.tile_waterMaskData;if(!u(t)){let n=It.create({context:e,pixelFormat:nt.LUMINANCE,pixelDatatype:Ye.UNSIGNED_BYTE,source:{arrayBufferView:new Uint8Array([255]),width:1,height:1}});n.referenceCount=1;let i=new ln({wrapS:Sn.CLAMP_TO_EDGE,wrapT:Sn.CLAMP_TO_EDGE,minificationFilter:rn.LINEAR,magnificationFilter:yi.LINEAR});t={allWaterTexture:n,sampler:i,destroy:function(){this.allWaterTexture.destroy()}},e.cache.tile_waterMaskData=t}return t}function _nt(e,t){let n=t.terrainData.waterMask,i=pnt(e),o,r=n.length;if(r===1)if(n[0]!==0)o=i.allWaterTexture;else return;else{let s=Math.sqrt(r);o=It.create({context:e,pixelFormat:nt.LUMINANCE,pixelDatatype:Ye.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)}Qo.prototype._findAncestorTileWithTerrainData=function(e){let t=e.parent;for(;u(t)&&(!u(t.data)||!u(t.data.terrainData)||t.data.terrainData.wasCreatedByUpsampling());)t=t.parent;return t};Qo.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 Gf=Qo;function Hy(e){if(e=y(e,y.EMPTY_OBJECT),this._ellipsoid=y(e.ellipsoid,ie.WGS84),this._numberOfLevelZeroTilesX=y(e.numberOfLevelZeroTilesX,1),this._numberOfLevelZeroTilesY=y(e.numberOfLevelZeroTilesY,1),this._projection=new Di(this._ellipsoid),u(e.rectangleSouthwestInMeters)&&u(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 ce(t.longitude,t.latitude,n.longitude,n.latitude)}Object.defineProperties(Hy.prototype,{ellipsoid:{get:function(){return this._ellipsoid}},rectangle:{get:function(){return this._rectangle}},projection:{get:function(){return this._projection}}});Hy.prototype.getNumberOfXTilesAtLevel=function(e){return this._numberOfLevelZeroTilesX<<e};Hy.prototype.getNumberOfYTilesAtLevel=function(e){return this._numberOfLevelZeroTilesY<<e};Hy.prototype.rectangleToNativeRectangle=function(e,t){let n=this._projection,i=n.project(ce.southwest(e)),o=n.project(ce.northeast(e));return u(t)?(t.west=i.x,t.south=i.y,t.east=o.x,t.north=o.y,t):new ce(i.x,i.y,o.x,o.y)};Hy.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,l=(this._rectangleNortheastInMeters.y-this._rectangleSouthwestInMeters.y)/r,f=this._rectangleNortheastInMeters.y-t*l,d=this._rectangleNortheastInMeters.y-(t+1)*l;return u(i)?(i.west=a,i.south=d,i.east=c,i.north=f,i):new ce(a,d,c,f)};Hy.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};Hy.prototype.positionToTileXY=function(e,t,n){let i=this._rectangle;if(!ce.contains(i,e))return;let o=this.getNumberOfXTilesAtLevel(t),r=this.getNumberOfYTilesAtLevel(t),a=(this._rectangleNortheastInMeters.x-this._rectangleSouthwestInMeters.x)/o,l=(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/l|0;return x>=r&&(x=r-1),u(n)?(n.x=m,n.y=x,n):new z(m,x)};var qr=Hy;var X7,kpe="AAPK4db83df15a06415e9b7d45d826eec992u0REAmuLmykhOFOk_4e61HgsO_e3C_qGUgiWNGElpjpiMfO9_Qg5ZRyy8POvB5EF",XE={};XE.defaultAccessToken=kpe;XE.defaultWorldImageryServer=new ve({url:"https://ibasemaps-api.arcgis.com/arcgis/rest/services/World_Imagery/MapServer"});XE.defaultWorldHillshadeServer=new ve({url:"https://ibasemaps-api.arcgis.com/arcgis/rest/services/Elevation/World_Hillshade/MapServer"});XE.defaultWorldOceanServer=new ve({url:"https://ibasemaps-api.arcgis.com/arcgis/rest/services/Ocean/World_Ocean_Base/MapServer"});XE.getDefaultTokenCredit=function(e){if(e===kpe){if(!u(X7)){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>';X7=new bt(t,!0)}return X7}};var Pu=XE;function K7(e){e=y(e,y.EMPTY_OBJECT),this._pixelsToCheck=e.pixelsToCheck,this._missingImagePixels=void 0,this._missingImageByteLength=void 0,this._isReady=!1;let t=ve.createIfNeeded(e.missingImageUrl),n=this;function i(r){u(r.blob)&&(n._missingImageByteLength=r.blob.size);let s=ad(r);if(e.disableCheckIfAllPixelsAreTransparent){let a=!0,c=r.width,l=e.pixelsToCheck;for(let f=0,d=l.length;a&&f<d;++f){let p=l[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)}K7.prototype.isReady=function(){return this._isReady};K7.prototype.shouldDiscardImage=function(e){let t=this._pixelsToCheck,n=this._missingImagePixels;if(!u(n)||u(e.blob)&&e.blob.size!==this._missingImageByteLength)return!1;let i=ad(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 l=0;l<4;++l){let f=c+l;if(i[f]!==n[f])return!1}}return!0};var $L=K7;function Z7(){this.name=void 0,this.description=void 0,this.position=void 0,this.data=void 0,this.imageryLayer=void 0}Z7.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)}u(n)&&(this.name=e[n])};Z7.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];u(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 hh=Z7;function KE(){de.throwInstantiationError()}Object.defineProperties(KE.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}});KE.prototype.getTileCredits=function(e,t,n){de.throwInstantiationError()};KE.prototype.requestImage=function(e,t,n,i){de.throwInstantiationError()};KE.prototype.pickFeatures=function(e,t,n,i,o){de.throwInstantiationError()};var gnt=/\.ktx2$/i;KE.loadImage=function(e,t){let n=ve.createIfNeeded(t);return gnt.test(n.url)?ul(n):u(e)&&u(e.tileDiscardPolicy)?n.fetchImage({preferBlob:!0,preferImageBitmap:!0,flipY:!0}):n.fetchImage({preferImageBitmap:!0,flipY:!0})};var Kc=KE;var ynt={SATELLITE:1,OCEANS:2,HILLSHADE:3},mh=Object.freeze(ynt);function Upe(e){this.useTiles=y(e.usePreCachedTilesIfAvailable,!0);let t=e.ellipsoid;this.tilingScheme=y(e.tilingScheme,new zi({ellipsoid:t})),this.rectangle=y(e.rectangle,this.tilingScheme.rectangle),this.ellipsoid=t;let n=e.credit;typeof n=="string"&&(n=new bt(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}Upe.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&&!u(this.tileDiscardPolicy)&&(e._tileDiscardPolicy=new $L({missingImageUrl:Vpe(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 xnt(e,t){let n=e.tileInfo;if(!u(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 qr({ellipsoid:t.ellipsoid});else if(e.tileInfo.spatialReference.wkid===4326)t.tilingScheme=new zi({ellipsoid:t.ellipsoid});else{let i=`Tile spatial reference WKID ${e.tileInfo.spatialReference.wkid} is not supported.`;throw new ue(i)}if(t.maximumLevel=e.tileInfo.lods.length-1,u(e.fullExtent)){if(u(e.fullExtent.spatialReference)&&u(e.fullExtent.spatialReference.wkid))if(e.fullExtent.spatialReference.wkid===102100||e.fullExtent.spatialReference.wkid===102113){let i=new Di,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 ce(r.longitude,r.latitude,s.longitude,s.latitude)}else if(e.fullExtent.spatialReference.wkid===4326)t.rectangle=ce.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 ue(i)}}else t.rectangle=t.tilingScheme.rectangle;t.useTiles=!0}u(e.copyrightText)&&e.copyrightText.length>0&&(u(t.credit)?t.tileCredits=[new bt(e.copyrightText)]:t.credit=new bt(e.copyrightText))}function bnt(e,t){let n=`An error occurred while accessing ${e.url}`;throw u(t)&&u(t.message)&&(n+=`: ${t.message}`),new ue(n)}async function Tnt(e,t){let n=e.getDerivedResource({queryParameters:{f:"json"}});try{let i=await n.fetchJson();xnt(i,t)}catch(i){bnt(e,i)}}function Im(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 zi({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 bt(t)),this.enablePickFeatures=y(e.enablePickFeatures,!0),this._errorEvent=new pe}Im.fromBasemapType=async function(e,t){t=y(t,y.EMPTY_OBJECT);let n,i,o;switch(e){case mh.SATELLITE:{n=y(t.token,Pu.defaultAccessToken),i=ve.createIfNeeded(Pu.defaultWorldImageryServer),i.appendForwardSlash();let r=Pu.getDefaultTokenCredit(n);u(r)&&(o=bt.clone(r))}break;case mh.OCEANS:{n=y(t.token,Pu.defaultAccessToken),i=ve.createIfNeeded(Pu.defaultWorldOceanServer),i.appendForwardSlash();let r=Pu.getDefaultTokenCredit(n);u(r)&&(o=bt.clone(r))}break;case mh.HILLSHADE:{n=y(t.token,Pu.defaultAccessToken),i=ve.createIfNeeded(Pu.defaultWorldHillshadeServer),i.appendForwardSlash();let r=Pu.getDefaultTokenCredit(n);u(r)&&(o=bt.clone(r))}break;default:}return Im.fromUrl(i,{...t,token:n,credit:o,usePreCachedTilesIfAvailable:!0})};function Vpe(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 wi?(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(Im.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}}});Im.fromUrl=async function(e,t){t=y(t,y.EMPTY_OBJECT);let n=ve.createIfNeeded(e);n.appendForwardSlash(),u(t.token)&&n.setQueryParameters({token:t.token});let i=new Im(t);i._resource=n;let o=new Upe(t);return y(t.usePreCachedTilesIfAvailable,!0)&&await Tnt(n,o),o.build(i),i};Im.prototype.getTileCredits=function(e,t,n){return this._tileCredits};Im.prototype.requestImage=function(e,t,n,i){return Kc.loadImage(this,Vpe(this,e,t,n,i))};Im.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 wi)s=P.toDegrees(i),a=P.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 l="visible";u(this._layers)&&(l+=`:${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:l};return this._resource.getDerivedResource({url:"identify",queryParameters:f}).fetchJson().then(function(p){let g=[],m=p.results;if(!u(m))return g;for(let x=0;x<m.length;++x){let b=m[x],T=new hh;if(T.data=b,T.name=b.value,T.properties=b.attributes,T.configureDescriptionFromProperties(b.attributes),b.geometryType==="esriGeometryPoint"&&b.geometry){let A=b.geometry.spatialReference&&b.geometry.spatialReference.wkid?b.geometry.spatialReference.wkid:4326;if(A===4326||A===4283)T.position=fe.fromDegrees(b.geometry.x,b.geometry.y,b.geometry.z);else if(A===102100||A===900913||A===3857){let C=new Di;T.position=C.unproject(new h(b.geometry.x,b.geometry.y,b.geometry.z))}}g.push(T)}return g})};Im._metadataCache={};var M_=Im;var Ant={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"},ZE=Object.freeze(Ant);function QL(e){}QL.prototype.isReady=function(){return!0};QL.prototype.shouldDiscardImage=function(e){return QL.EMPTY_IMAGE===e};var r4;Object.defineProperties(QL,{EMPTY_IMAGE:{get:function(){return u(r4)||(r4=new Image,r4.src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII="),r4}}});var $E=QL;function zpe(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}zpe.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 bt)break;o.credit=new bt(o.attribution);let r=o.coverageAreas;for(let s=0,a=o.coverageAreas.length;s<a;++s){let c=r[s],l=c.bbox;c.bbox=new ce(P.toRadians(l[1]),P.toRadians(l[0]),P.toRadians(l[3]),P.toRadians(l[2]))}}};function Cnt(e,t){if(e.resourceSets.length!==1)throw new ue("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 Ent(e,t,n){let i=`An error occurred while accessing ${e.url}`;throw u(t)&&u(t.message)&&(i+=`: ${t.message}`),wo.reportError(void 0,n,u(n)?n._errorEvent:void 0,i,void 0,void 0,void 0,t),new ue(i)}async function Snt(e,t,n){let i=e.url,o=ps._metadataCache[i];u(o)||(o=e.fetchJsonp("jsonp"),ps._metadataCache[i]=o);try{let r=await o;return Cnt(r,t)}catch(r){Ent(e,r,n)}}function ps(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,ZE.AERIAL),this._culture=y(e.culture,""),this._key=e.key,this._tileDiscardPolicy=e.tileDiscardPolicy,u(this._tileDiscardPolicy)||(this._tileDiscardPolicy=new $E),this._proxy=e.proxy,this._credit=new bt(`<a href="https://www.microsoft.com/en-us/maps/product/enduserterms"><img src="${ps.logoUrl}" title="Bing Imagery"/></a>`),this._tilingScheme=new qr({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(ps.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}},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!1}}});ps.fromUrl=async function(e,t){t=y(t,y.EMPTY_OBJECT);let n=t.tileProtocol;u(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,ZE.AERIAL),o=ve.createIfNeeded(e);o.appendForwardSlash();let r=o.getDerivedResource({url:`REST/v1/Imagery/Metadata/${i}`,queryParameters:{incl:"ImageryProviders",key:t.key,uriScheme:n}}),s=new ps(t);s._resource=o;let a=new zpe(t);return await Snt(r,a),a.build(s),s};var wnt=new ce;ps.prototype.getTileCredits=function(e,t,n){let i=this._tilingScheme.tileXYToRectangle(e,t,n,wnt);return Int(this._attributionList,n,i)};ps.prototype.requestImage=function(e,t,n,i){let o=Kc.loadImage(this,vnt(this,e,t,n,i));if(u(o))return o.catch(function(r){return u(r.blob)&&r.blob.size===0?$E.EMPTY_IMAGE:Promise.reject(r)})};ps.prototype.pickFeatures=function(e,t,n,i,o){};ps.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};ps.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}};ps._logoUrl=void 0;Object.defineProperties(ps,{logoUrl:{get:function(){return u(ps._logoUrl)||(ps._logoUrl=Zt("Assets/Images/bing_maps_credit.png")),ps._logoUrl},set:function(e){ps._logoUrl=e}}});function vnt(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:ps.tileXYToQuadKey(t,n,i),subdomain:s[a],culture:e._culture},queryParameters:{n:"z"}})}var Dnt=new ce;function Int(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 l=0,f=s.coverageAreas.length;!c&&l<f;++l){let d=a[l];if(t>=d.zoomMin&&t<=d.zoomMax){let p=ce.intersection(n,d.bbox,Dnt);u(p)&&(c=!0)}}c&&i.push(s.credit)}return i}ps._metadataCache={};var JL=ps;var Hpe=/{[^}]+}/g,Gpe={x:Mnt,y:Nnt,z:knt,s:Unt,reverseX:Lnt,reverseY:Fnt,reverseZ:Bnt,westDegrees:Vnt,southDegrees:znt,eastDegrees:Hnt,northDegrees:Gnt,westProjected:Wnt,southProjected:jnt,eastProjected:qnt,northProjected:Ynt,width:Xnt,height:Knt},Pnt=gt(Gpe,{i:Znt,j:$nt,reverseI:Qnt,reverseJ:Jnt,longitudeDegrees:tit,latitudeDegrees:nit,longitudeProjected:iit,latitudeProjected:oit,format:sit});function eN(e){e=y(e,y.EMPTY_OBJECT),this._errorEvent=new pe;let t=ve.createIfNeeded(e.url),n=ve.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():u(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 qr({ellipsoid:e.ellipsoid})),this._rectangle=y(e.rectangle,this._tilingScheme.rectangle),this._rectangle=ce.intersection(this._rectangle,this._tilingScheme.rectangle),this._tileDiscardPolicy=e.tileDiscardPolicy;let o=e.credit;typeof o=="string"&&(o=new bt(o)),this._credit=o,this._hasAlphaChannel=y(e.hasAlphaChannel,!0);let r=e.customTags,s=gt(Gpe,r),a=gt(Pnt,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(eN.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}}});eN.prototype.getTileCredits=function(e,t,n){};eN.prototype.requestImage=function(e,t,n,i){return Kc.loadImage(this,Ont(this,e,t,n,i))};eN.prototype.pickFeatures=function(e,t,n,i,o){if(!this.enablePickFeatures||!u(this._pickFeaturesResource)||this._getFeatureInfoFormats.length===0)return;let r=0,s=this;function a(l,f){return l.callback(f)}function c(){if(r>=s._getFeatureInfoFormats.length)return Promise.resolve([]);let l=s._getFeatureInfoFormats[r],f=Rnt(s,e,t,n,i,o,l.format);return++r,l.type==="json"?f.fetchJson().then(l.callback).catch(c):l.type==="xml"?f.fetchXML().then(l.callback).catch(c):l.type==="text"||l.type==="html"?f.fetchText().then(l.callback).catch(c):f.fetch({responseType:l.format}).then(a.bind(void 0,l)).catch(c)}return c()};var s4=!1,Ou=new ce,a4=!1,tN=new ce;function Ont(e,t,n,i,o){s4=!1,a4=!1;let r=e._resource,s=r.getUrlComponent(!0),a=e._tags,c={},l=s.match(Hpe);return u(l)&&l.forEach(function(f){let d=f.substring(1,f.length-1);u(a[d])&&(c[d]=a[d](e,t,n,i))}),r.getDerivedResource({request:o,templateValues:c})}var $7=!1,JE=new z,Q7=!1;function Rnt(e,t,n,i,o,r,s){s4=!1,a4=!1,$7=!1,Q7=!1;let a=e._pickFeaturesResource,c=a.getUrlComponent(!0),l=e._pickFeaturesTags,f={},d=c.match(Hpe);return u(d)&&d.forEach(function(p){let g=p.substring(1,p.length-1);u(l[g])&&(f[g]=l[g](e,t,n,i,o,r,s))}),a.getDerivedResource({templateValues:f})}function eS(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 Mnt(e,t,n,i){return eS(e,"{x}",t)}function Lnt(e,t,n,i){let o=e.tilingScheme.getNumberOfXTilesAtLevel(i)-t-1;return eS(e,"{reverseX}",o)}function Nnt(e,t,n,i){return eS(e,"{y}",n)}function Fnt(e,t,n,i){let o=e.tilingScheme.getNumberOfYTilesAtLevel(i)-n-1;return eS(e,"{reverseY}",o)}function Bnt(e,t,n,i){let o=e.maximumLevel,r=u(o)&&i<o?o-i-1:i;return eS(e,"{reverseZ}",r)}function knt(e,t,n,i){return eS(e,"{z}",i)}function Unt(e,t,n,i){let o=(t+n+i)%e._subdomains.length;return e._subdomains[o]}function c4(e,t,n,i){s4||(e.tilingScheme.tileXYToRectangle(t,n,i,Ou),Ou.west=P.toDegrees(Ou.west),Ou.south=P.toDegrees(Ou.south),Ou.east=P.toDegrees(Ou.east),Ou.north=P.toDegrees(Ou.north),s4=!0)}function Vnt(e,t,n,i){return c4(e,t,n,i),Ou.west}function znt(e,t,n,i){return c4(e,t,n,i),Ou.south}function Hnt(e,t,n,i){return c4(e,t,n,i),Ou.east}function Gnt(e,t,n,i){return c4(e,t,n,i),Ou.north}function l4(e,t,n,i){a4||(e.tilingScheme.tileXYToNativeRectangle(t,n,i,tN),a4=!0)}function Wnt(e,t,n,i){return l4(e,t,n,i),tN.west}function jnt(e,t,n,i){return l4(e,t,n,i),tN.south}function qnt(e,t,n,i){return l4(e,t,n,i),tN.east}function Ynt(e,t,n,i){return l4(e,t,n,i),tN.north}function Xnt(e,t,n,i){return e.tileWidth}function Knt(e,t,n,i){return e.tileHeight}function Znt(e,t,n,i,o,r,s){return u4(e,t,n,i,o,r),JE.x}function $nt(e,t,n,i,o,r,s){return u4(e,t,n,i,o,r),JE.y}function Qnt(e,t,n,i,o,r,s){return u4(e,t,n,i,o,r),e.tileWidth-JE.x-1}function Jnt(e,t,n,i,o,r,s){return u4(e,t,n,i,o,r),e.tileHeight-JE.y-1}var eit=new ce,QE=new h;function u4(e,t,n,i,o,r,s){if($7)return;J7(e,t,n,i,o,r);let a=QE,c=e.tilingScheme.tileXYToNativeRectangle(t,n,i,eit);JE.x=e.tileWidth*(a.x-c.west)/c.width|0,JE.y=e.tileHeight*(c.north-a.y)/c.height|0,$7=!0}function tit(e,t,n,i,o,r,s){return P.toDegrees(o)}function nit(e,t,n,i,o,r,s){return P.toDegrees(r)}function iit(e,t,n,i,o,r,s){return J7(e,t,n,i,o,r),QE.x}function oit(e,t,n,i,o,r,s){return J7(e,t,n,i,o,r),QE.y}var rit=new fe;function J7(e,t,n,i,o,r,s){if(!Q7){if(e.tilingScheme.projection instanceof wi)QE.x=P.toDegrees(o),QE.y=P.toDegrees(r);else{let a=rit;a.longitude=o,a.latitude=r,e.tilingScheme.projection.project(a,QE)}Q7=!0}}function sit(e,t,n,i,o,r,s){return s}var va=eN;function Wf(e){va.call(this,e)}Wf._requestMetadata=async function(e,t,n,i){try{let o=await n.fetchXML();return Wf._metadataSuccess(o,e,t,n,i)}catch(o){if(o instanceof Lh)return Wf._metadataFailure(e,t);throw o}};Wf.fromUrl=async function(e,t){let n=ve.createIfNeeded(e);n.appendForwardSlash();let i=n,o=n.getDerivedResource({url:"tilemapresource.xml"});t=y(t,y.EMPTY_OBJECT);let r=await Wf._requestMetadata(t,i,o);return new Wf(r)};u(Object.create)&&(Wf.prototype=Object.create(va.prototype),Wf.prototype.constructor=Wf);function Wpe(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 jpe(e,t,n){let i=e.positionToTileXY(ce.southwest(t),n),o=e.positionToTileXY(ce.northeast(t),n);return(Math.abs(o.x-i.x)+1)*(Math.abs(o.y-i.y)+1)>4?0:n}Wf._metadataSuccess=function(e,t,n,i,o){let r=/tileformat/i,s=/tileset/i,a=/tilesets/i,c=/boundingbox/i,l,f,d,p=[],g=e.childNodes[0].childNodes;for(let R=0;R<g.length;R++)if(r.test(g.item(R).nodeName))l=g.item(R);else if(a.test(g.item(R).nodeName)){d=g.item(R);let L=g.item(R).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(R).nodeName)&&(f=g.item(R));let m;if(!u(d)||!u(f))throw m=`Unable to find expected tilesets or bbox attributes in ${i.url}.`,u(o)&&wo.reportError(void 0,o,o.errorEvent,m),new ue(m);let x=y(t.fileExtension,l.getAttribute("extension")),b=y(t.tileWidth,parseInt(l.getAttribute("width"),10)),T=y(t.tileHeight,parseInt(l.getAttribute("height"),10)),A=y(t.minimumLevel,parseInt(p[0].getAttribute("order"),10)),C=y(t.maximumLevel,parseInt(p[p.length-1].getAttribute("order"),10)),S=d.getAttribute("profile"),w=t.tilingScheme;if(!u(w))if(S==="geodetic"||S==="global-geodetic")w=new zi({ellipsoid:t.ellipsoid});else if(S==="mercator"||S==="global-mercator")w=new qr({ellipsoid:t.ellipsoid});else throw m=`${i.url} specifies an unsupported profile attribute, ${S}.`,u(o)&&wo.reportError(void 0,o,o.errorEvent,m),new ue(m);let D=ce.clone(t.rectangle);if(!u(D)){let R,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 v=S==="geodetic"||S==="mercator";if(w.projection instanceof wi||v)R=fe.fromDegrees(N.x,N.y),L=fe.fromDegrees(_.x,_.y);else{let I=w.projection;R=I.unproject(N),L=I.unproject(_)}D=new ce(R.longitude,R.latitude,L.longitude,L.latitude)}return D=Wpe(D,w),A=jpe(w,D,A),{url:n.getDerivedResource({url:`{z}/{x}/{reverseY}.${x}`}),tilingScheme:w,rectangle:D,tileWidth:b,tileHeight:T,minimumLevel:A,maximumLevel:C,tileDiscardPolicy:t.tileDiscardPolicy,credit:t.credit}};Wf._metadataFailure=function(e,t){let n=y(e.fileExtension,"png"),i=y(e.tileWidth,256),o=y(e.tileHeight,256),r=e.maximumLevel,s=u(e.tilingScheme)?e.tilingScheme:new qr({ellipsoid:e.ellipsoid}),a=y(e.rectangle,s.rectangle);a=Wpe(a,s);let c=jpe(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 Gy=Wf;function qpe(e){this.channel=e.channel,this.ellipsoid=e.ellipsoid,this.tilingScheme=void 0,this.version=void 0}qpe.prototype.build=function(e){e._channel=this.channel,e._version=this.version,e._tilingScheme=this.tilingScheme};function ait(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(!u(i)){let o=`Could not find layer with channel (id) of ${t.channel}.`;throw new ue(o)}if(!u(i.version)){let o=`Could not find a version in channel (id) ${t.channel}.`;throw new ue(o)}if(t.version=i.version,u(n.projection)&&n.projection==="flat")t.tilingScheme=new zi({numberOfLevelZeroTilesX:2,numberOfLevelZeroTilesY:2,rectangle:new ce(-Math.PI,-Math.PI,Math.PI,Math.PI),ellipsoid:t.ellipsoid});else if(!u(n.projection)||n.projection==="mercator")t.tilingScheme=new qr({numberOfLevelZeroTilesX:2,numberOfLevelZeroTilesY:2,ellipsoid:t.ellipsoid});else{let o=`Unsupported projection ${n.projection}.`;throw new ue(o)}return!0}function cit(e,t,n){let i=`An error occurred while accessing ${t.url}.`;throw u(e)&&u(e.message)&&(i+=`: ${e.message}`),wo.reportError(void 0,n,u(n)?n._errorEvent:void 0,i),new ue(i)}async function lit(e,t,n){try{let i=await e.fetchText();ait(i,t)}catch(i){cit(i,e,n)}}function Ul(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 bt(`<a href="http://www.google.com/enterprise/mapsearth/products/earthenterprise.html"><img src="${Ul.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(Ul.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}}});Ul.fromUrl=async function(e,t,n){n=y(n,{});let i=y(n.path,"/default_map"),o=ve.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 qpe(n);s.channel=t,await lit(r,s);let a=new Ul(n);return s.build(a),a._resource=o,a._url=e,a._path=i,a};Ul.prototype.getTileCredits=function(e,t,n){};Ul.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 Kc.loadImage(this,o)};Ul.prototype.pickFeatures=function(e,t,n,i,o){};Ul._logoUrl=void 0;Object.defineProperties(Ul,{logoUrl:{get:function(){return u(Ul._logoUrl)||(Ul._logoUrl=Zt("Assets/Images/google_earth_credit.png")),Ul._logoUrl},set:function(e){Ul._logoUrl=e}}});var nN=Ul;var uit=/\/$/,Ype=new bt('&copy; <a href="https://www.mapbox.com/about/maps/">Mapbox</a> &copy; <a href="http://www.openstreetmap.org/copyright">OpenStreetMap</a> <strong><a href="https://www.mapbox.com/map-feedback/">Improve this map</a></strong>');function tS(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=ve.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();uit.test(r)||(r+="/"),r+=`${t}/{z}/{x}/{y}${this._format}`,i.url=r,i.setQueryParameters({access_token:n});let s;u(e.credit)?(s=e.credit,typeof s=="string"&&(s=new bt(s))):s=Ype,this._resource=i,this._imageryProvider=new va({url:i,credit:s,ellipsoid:e.ellipsoid,minimumLevel:e.minimumLevel,maximumLevel:e.maximumLevel,rectangle:e.rectangle})}Object.defineProperties(tS.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}}});tS.prototype.getTileCredits=function(e,t,n){};tS.prototype.requestImage=function(e,t,n,i){return this._imageryProvider.requestImage(e,t,n,i)};tS.prototype.pickFeatures=function(e,t,n,i,o){return this._imageryProvider.pickFeatures(e,t,n,i,o)};tS._defaultCredit=Ype;var iN=tS;function Zb(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,ce.MAX_VALUE),n=new zi({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 bt(i)),this._credit=i;let o=ve.createIfNeeded(e.url);this._resource=o,this._tileWidth=e.tileWidth,this._tileHeight=e.tileHeight}Object.defineProperties(Zb.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 fit(e,t,n,i){let o=`Failed to load image ${e.url}`;u(t)&&u(t.message)&&(o+=`: ${t.message}`);let r=wo.reportError(i,n,u(n)?n._errorEvent:void 0,o,0,0,0,t);if(r.retry)return eq(e,n,r);throw u(n)&&(n._hasError=!0),new ue(o)}async function eq(e,t,n){try{return await Kc.loadImage(null,e)}catch(i){return fit(e,i,t,n)}}Zb.fromUrl=async function(e,t){let n=ve.createIfNeeded(e),i=await eq(n);t=y(t,y.EMPTY_OBJECT);let o=new Zb({...t,url:e,tileWidth:i.width,tileHeight:i.height});return o._image=i,o};Zb.prototype.getTileCredits=function(e,t,n){};Zb.prototype.requestImage=async function(e,t,n,i){if(!this._hasError&&!u(this._image)){let o=await eq(this._resource,this);return this._image=o,wo.reportSuccess(this._errorEvent),o}return this._image};Zb.prototype.pickFeatures=function(e,t,n,i,o){};var oN=Zb;function dit(e,t,n){this.type=e,u(t)||(e==="json"?t="application/json":e==="xml"?t="text/xml":e==="html"?t="text/html":e==="text"&&(t="text/plain")),this.format=t,u(n)||(e==="json"?n=hit:e==="xml"?n=git:(e==="html"||e==="text")&&(n=Xpe)),this.callback=n}function hit(e){let t=[],n=e.features;for(let i=0;i<n.length;++i){let o=n[i],r=new hh;if(r.data=o,r.properties=o.properties,r.configureNameFromProperties(o.properties),r.configureDescriptionFromProperties(o.properties),u(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 tq="http://www.mapinfo.com/mxp",mit="http://www.esri.com/wms",pit="http://www.opengis.net/wfs",_it="http://www.opengis.net/gml";function git(e){let t=e.documentElement;if(t.localName==="MultiFeatureCollection"&&t.namespaceURI===tq)return yit(e);if(t.localName==="FeatureInfoResponse"&&t.namespaceURI===mit)return xit(e);if(t.localName==="FeatureCollection"&&t.namespaceURI===pit)return bit(e);if(t.localName==="ServiceExceptionReport")throw new ue(new XMLSerializer().serializeToString(t));return t.localName==="msGMLOutput"?Tit(e):Ait(e)}function yit(e){let t=[],i=e.documentElement.getElementsByTagNameNS(tq,"Feature");for(let o=0;o<i.length;++o){let r=i[o],s={},a=r.getElementsByTagNameNS(tq,"Val");for(let l=0;l<a.length;++l){let f=a[l];if(f.hasAttribute("ref")){let d=f.getAttribute("ref"),p=f.textContent.trim();s[d]=p}}let c=new hh;c.data=r,c.properties=s,c.configureNameFromProperties(s),c.configureDescriptionFromProperties(s),t.push(c)}return t}function xit(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 l=a[c];i[l.name]=l.value}n.push(f4(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 l=0;l<c.length;++l){let f=c[l];f.nodeType===Node.ELEMENT_NODE&&(i[f.localName]=f.textContent)}n.push(f4(a,i))}}return n}function bit(e){let t=[],i=e.documentElement.getElementsByTagNameNS(_it,"featureMember");for(let o=0;o<i.length;++o){let r=i[o],s={};nq(r,s),t.push(f4(r,s))}return t}function Tit(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(!u(n))throw new ue("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={};nq(s,a),t.push(f4(s,a))}}return t}function nq(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()&&nq(o,t)&&(t[o.localName]=o.textContent)}return n}function f4(e,t){let n=new hh;return n.data=e,n.properties=t,n.configureNameFromProperties(t),n.configureDescriptionFromProperties(t),n}function Ait(e){let t=new XMLSerializer().serializeToString(e),n=document.createElement("div"),i=document.createElement("pre");i.textContent=t,n.appendChild(i);let o=new hh;return o.data=e,o.description=n.innerHTML,[o]}var Cit=/<body>\s*<\/body>/im,Eit=/<ServiceExceptionReport([\s\S]*)<\/ServiceExceptionReport>/im,Sit=/<title>([\s\S]*)<\/title>/im;function Xpe(e){if(Cit.test(e)||Eit.test(e))return;let t,n=Sit.exec(e);n&&n.length>1&&(t=n[1]);let i=new hh;return i.name=t,i.description=e,i.data=e,[i]}var $b=dit;function rN(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(rN.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)}}});rN.prototype.getFromCache=function(e,t,n,i){let o=Kpe(e,t,n),r,s=this._tileCache[this._currentIntervalIndex];if(u(s)&&u(s[o])){let a=s[o];r=a.promise.catch(function(c){throw i.state=a.request.state,c}),delete s[o]}return r};rN.prototype.checkApproachingInterval=function(e,t,n,i){let o=Kpe(e,t,n),r=this._tilesRequestedForInterval,s=Zpe(this),a={key:o,priorityFunction:i.priorityFunction};(!u(s)||!$pe(this,a,s))&&r.push(a),r.length>=512&&r.splice(0,256)};rN.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=Zpe(this);if(u(r)){let s=this._tilesRequestedForInterval,a=!0;for(;a&&s.length!==0;){let c=s.pop();a=$pe(this,c,r),a||s.push(c)}}};function Kpe(e,t,n){return`${e}-${t}-${n}`}function wit(e){let t=e.split("-");if(t.length===3)return{x:Number(t[0]),y:Number(t[1]),level:Number(t[2])}}function Zpe(e){let t=e._times;if(!u(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 $pe(e,t,n){let i=e._times.indexOf(n.start),o=e._tileCache,r=o[i];u(r)||(r=o[i]={});let s=t.key;if(u(r[s]))return!0;let a=wit(s),c=new Go({throttle:!1,throttleByServer:!0,type:Jr.IMAGERY,priorityFunction:t.priorityFunction}),l=e._requestImageFunction(a.x,a.y,a.level,c,n);return u(l)?(r[s]={promise:l,request:c},!0):!1}var Qb=rN;var vit=[3034,3035,3042,3043,3044],Dit=[4471,4559];function ph(e){if(e=y(e,y.EMPTY_OBJECT),u(e.times)&&!u(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=ve.createIfNeeded(e.url),n=ve.createIfNeeded(this._getFeatureInfoUrl);t.setQueryParameters(ph.DefaultParameters,!0),n.setQueryParameters(ph.GetFeatureInfoDefaultParameters,!0),u(e.parameters)&&t.setQueryParameters(Qpe(e.parameters)),u(e.getFeatureInfoParameters)&&n.setQueryParameters(Qpe(e.getFeatureInfoParameters));let i=this;this._reload=void 0,u(e.times)&&(this._timeDynamicImagery=new Qb({clock:e.clock,times:e.times,requestImageFunction:function(s,a,c,l,f){return Jpe(i,s,a,c,l,f)},reloadFunction:function(){u(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 Di?"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&&!Dit.includes(a)||vit.includes(a))&&(o.bbox="{southProjected},{westProjected},{northProjected},{eastProjected}")}}else o.srs=y(e.srs,e.tilingScheme&&e.tilingScheme.projection instanceof Di?"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 va({url:t,pickFeaturesUrl:n,tilingScheme:y(e.tilingScheme,new zi({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,ph.DefaultGetFeatureInfoFormats),enablePickFeatures:e.enablePickFeatures})}function Jpe(e,t,n,i,o,r){let s=u(r)?r.data:void 0,a=e._tileProvider;return u(s)&&a._resource.setQueryParameters(s),a.requestImage(t,n,i,o)}function Iit(e,t,n,i,o,r,s){let a=u(s)?s.data:void 0,c=e._tileProvider;return u(a)&&c._pickFeaturesResource.setQueryParameters(a),c.pickFeatures(t,n,i,o,r)}Object.defineProperties(ph.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}}});ph.prototype.getTileCredits=function(e,t,n){return this._tileProvider.getTileCredits(e,t,n)};ph.prototype.requestImage=function(e,t,n,i){let o,r=this._timeDynamicImagery,s;return u(r)&&(s=r.currentInterval,o=r.getFromCache(e,t,n,i)),u(o)||(o=Jpe(this,e,t,n,i,s)),u(o)&&u(r)&&r.checkApproachingInterval(e,t,n,i),o};ph.prototype.pickFeatures=function(e,t,n,i,o){let r=this._timeDynamicImagery,s=u(r)?r.currentInterval:void 0;return Iit(this,e,t,n,i,o,s)};ph.DefaultParameters=Object.freeze({service:"WMS",version:"1.1.1",request:"GetMap",styles:"",format:"image/jpeg"});ph.GetFeatureInfoDefaultParameters=Object.freeze({service:"WMS",version:"1.1.1",request:"GetFeatureInfo"});ph.DefaultGetFeatureInfoFormats=Object.freeze([Object.freeze(new $b("json","application/json")),Object.freeze(new $b("xml","text/xml")),Object.freeze(new $b("text","text/html"))]);function Qpe(e){let t={};for(let n in e)e.hasOwnProperty(n)&&(t[n.toLowerCase()]=e[n]);return t}var sN=ph;var Pit=Object.freeze({service:"WMTS",version:"1.0.0",request:"GetTile"});function aN(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=ve.createIfNeeded(e.url),n=e.style,i=e.tileMatrixSetID,o=t.url,r=o.match(/{/g);if(!u(r)||r.length===1&&/{s}/.test(o))t.setQueryParameters(Pit),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=u(e.tilingScheme)?e.tilingScheme:new qr({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,u(e.times)&&(this._timeDynamicImagery=new Qb({clock:e.clock,times:e.times,requestImageFunction:function(d,p,g,m,x){return e_e(s,d,p,g,m,x)},reloadFunction:function(){u(s._reload)&&s._reload()}}));let a=this._tilingScheme.positionToTileXY(ce.southwest(this._rectangle),this._minimumLevel),c=this._tilingScheme.positionToTileXY(ce.northeast(this._rectangle),this._minimumLevel),l=(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 bt(f):f,this._subdomains=e.subdomains,Array.isArray(this._subdomains)?this._subdomains=this._subdomains.slice():u(this._subdomains)&&this._subdomains.length>0?this._subdomains=this._subdomains.split(""):this._subdomains=["a","b","c"]}function e_e(e,t,n,i,o,r){let s=e._tileMatrixLabels,a=u(s)?s[i]:i.toString(),c=e._subdomains,l=e._dimensions,f=u(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),u(l)&&d.setTemplateValues(l),u(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,u(l)&&(g=gt(g,l)),u(f)&&(g=gt(g,f)),p={s:c[(t+n+i)%c.length]},d=e._resource.getDerivedResource({queryParameters:g,request:o}),d.setTemplateValues(p)}return Kc.loadImage(e,d)}Object.defineProperties(aN.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,u(this._reload)&&this._reload())}}});aN.prototype.getTileCredits=function(e,t,n){};aN.prototype.requestImage=function(e,t,n,i){let o,r=this._timeDynamicImagery,s;return u(r)&&(s=r.currentInterval,o=r.getFromCache(e,t,n,i)),u(o)||(o=e_e(this,e,t,n,i,s)),u(o)&&u(r)&&r.checkApproachingInterval(e,t,n,i),o};aN.prototype.pickFeatures=function(e,t,n,i,o){};var cN=aN;var Oit={ARCGIS_MAPSERVER:M_.fromUrl,BING:async(e,t)=>JL.fromUrl(e,t),GOOGLE_EARTH:async(e,t)=>{let n=t.channel;return delete t.channel,nN.fromUrl(e,n,t)},MAPBOX:(e,t)=>new iN({url:e,...t}),SINGLE_TILE:oN.fromUrl,TMS:Gy.fromUrl,URL_TEMPLATE:(e,t)=>new va({url:e,...t}),WMS:(e,t)=>new sN({url:e,...t}),WMTS:(e,t)=>new cN({url:e,...t})};function Pm(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(Pm.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(){}}});Pm.fromAssetId=async function(e,t){t=y(t,y.EMPTY_OBJECT);let n=ru._createEndpointResource(e,t),i=e.toString()+t.accessToken+t.server,o=Pm._endpointCache[i];u(o)||(o=n.fetchJson(),Pm._endpointCache[i]=o);let r=await o;if(r.type!=="IMAGERY")throw new ue(`Cesium ion asset ${e} is not an imagery asset.`);let s,a=r.externalType;if(!u(a))s=await Gy.fromUrl(new ru(r,n));else{let l=Oit[a];if(!u(l))throw new ue(`Unrecognized Cesium ion imagery type: ${a}`);let f={...r.options},d=f.url;delete f.url,s=await l(d,f)}let c=new Pm(t);return s.errorEvent.addEventListener(function(l){l.provider=c,c._errorEvent.raiseEvent(l)}),c._tileCredits=ru.getCreditsFromEndpoint(r,n),c._imageryProvider=s,c};Pm.prototype.getTileCredits=function(e,t,n){let i=this._imageryProvider.getTileCredits(e,t,n);return u(i)?this._tileCredits.concat(i):this._tileCredits};Pm.prototype.requestImage=function(e,t,n,i){return this._imageryProvider.requestImage(e,t,n,i)};Pm.prototype.pickFeatures=function(e,t,n,i,o){return this._imageryProvider.pickFeatures(e,t,n,i,o)};Pm._endpointCache={};var L_=Pm;var Rit={AERIAL:2,AERIAL_WITH_LABELS:3,ROAD:4},N_=Object.freeze(Rit);function Mit(e){e=y(e,y.EMPTY_OBJECT);let t=y(e.style,N_.AERIAL);return L_.fromAssetId(t)}var F_=Mit;var lN=`uniform sampler2D u_texture;
  8437. in vec2 v_textureCoordinates;
  8438. void main()
  8439. {
  8440. out_FragColor = texture(u_texture, v_textureCoordinates);
  8441. }
  8442. `;var uN=`in vec4 position;
  8443. in float webMercatorT;
  8444. uniform vec2 u_textureDimensions;
  8445. out vec2 v_textureCoordinates;
  8446. void main()
  8447. {
  8448. v_textureCoordinates = vec2(position.x, webMercatorT);
  8449. gl_Position = czm_viewportOrthographic * (position * vec4(u_textureDimensions, 1.0, 1.0));
  8450. }
  8451. `;function nS(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=ci.UNLOADED,this.imageUrl=void 0,this.image=void 0,this.texture=void 0,this.textureWebMercator=void 0,this.credits=void 0,this.referenceCount=0,!u(o)&&e.ready&&(o=e.imageryProvider.tilingScheme.tileXYToRectangle(t,n,i)),this.rectangle=o}nS.createPlaceholder=function(e){let t=new nS(e,0,0,0);return t.addReference(),t.state=ci.PLACEHOLDER,t};nS.prototype.addReference=function(){++this.referenceCount};nS.prototype.releaseReference=function(){return--this.referenceCount,this.referenceCount===0?(this.imageryLayer.removeImageryFromCache(this),u(this.parent)&&this.parent.releaseReference(),u(this.image)&&u(this.image.destroy)&&this.image.destroy(),u(this.texture)&&this.texture.destroy(),u(this.textureWebMercator)&&this.texture!==this.textureWebMercator&&this.textureWebMercator.destroy(),le(this),0):this.referenceCount};nS.prototype.processStateMachine=function(e,t,n){this.state===ci.UNLOADED&&!n&&(this.state=ci.TRANSITIONING,this.imageryLayer._requestImagery(this)),this.state===ci.RECEIVED&&(this.state=ci.TRANSITIONING,this.imageryLayer._createTexture(e.context,this));let i=this.state===ci.READY&&t&&!this.texture;(this.state===ci.TEXTURE_LOADED||i)&&(this.state=ci.TRANSITIONING,this.imageryLayer._reprojectTexture(e,this,t))};var iS=nS;function iq(e,t,n){this.readyImagery=void 0,this.loadingImagery=e,this.textureCoordinateRectangle=t,this.textureTranslationAndScale=void 0,this.useWebMercatorT=n}iq.prototype.freeResources=function(){u(this.readyImagery)&&this.readyImagery.releaseReference(),u(this.loadingImagery)&&this.loadingImagery.releaseReference()};iq.prototype.processStateMachine=function(e,t,n){let i=this.loadingImagery,o=i.imageryLayer;if(i.processStateMachine(t,!this.useWebMercatorT,n),i.state===ci.READY)return u(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(;u(r)&&(r.state!==ci.READY||!this.useWebMercatorT&&!u(r.texture));)r.state!==ci.FAILED&&r.state!==ci.INVALID&&(s=s||r),r=r.parent;return this.readyImagery!==r&&(u(this.readyImagery)&&this.readyImagery.releaseReference(),this.readyImagery=r,u(r)&&(r.addReference(),this.textureTranslationAndScale=o._calculateTextureTranslationAndScale(e,this))),i.state===ci.FAILED||i.state===ci.INVALID?u(s)?(s.processStateMachine(t,!this.useWebMercatorT,n),!1):!0:!1};var oS=iq;function gi(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,gi.DEFAULT_BRIGHTNESS)),this.contrast=y(t.contrast,y(e._defaultContrast,gi.DEFAULT_CONTRAST)),this.hue=y(t.hue,y(e._defaultHue,gi.DEFAULT_HUE)),this.saturation=y(t.saturation,y(e._defaultSaturation,gi.DEFAULT_SATURATION)),this.gamma=y(t.gamma,y(e._defaultGamma,gi.DEFAULT_GAMMA)),this.splitDirection=y(t.splitDirection,gi.DEFAULT_SPLIT),this.minificationFilter=y(t.minificationFilter,y(e._defaultMinificationFilter,gi.DEFAULT_MINIFICATION_FILTER)),this.magnificationFilter=y(t.magnificationFilter,y(e._defaultMagnificationFilter,gi.DEFAULT_MAGNIFICATION_FILTER)),this.show=y(t.show,!0),this._minimumTerrainLevel=t.minimumTerrainLevel,this._maximumTerrainLevel=t.maximumTerrainLevel,this._rectangle=y(t.rectangle,ce.MAX_VALUE),this._maximumAnisotropy=t.maximumAnisotropy,this._imageryCache={},this._skeletonPlaceholder=new oS(iS.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,gi.DEFAULT_APPLY_COLOR_TO_ALPHA_THRESHOLD)}Object.defineProperties(gi.prototype,{imageryProvider:{get:function(){return this._imageryProvider}},ready:{get:function(){return u(this._imageryProvider)}},errorEvent:{get:function(){return this._errorEvent}},readyEvent:{get:function(){return this._readyEvent}},rectangle:{get:function(){return this._rectangle}}});gi.DEFAULT_BRIGHTNESS=1;gi.DEFAULT_CONTRAST=1;gi.DEFAULT_HUE=0;gi.DEFAULT_SATURATION=1;gi.DEFAULT_GAMMA=1;gi.DEFAULT_SPLIT=kc.NONE;gi.DEFAULT_MINIFICATION_FILTER=rn.LINEAR;gi.DEFAULT_MAGNIFICATION_FILTER=yi.LINEAR;gi.DEFAULT_APPLY_COLOR_TO_ALPHA_THRESHOLD=.004;gi.fromProviderAsync=function(e,t){let n=new gi(void 0,t);return kit(n,Promise.resolve(e)),n};gi.fromWorldImagery=function(e){return e=y(e,y.EMPTY_OBJECT),gi.fromProviderAsync(F_({style:e.style}),e)};gi.prototype.isBaseLayer=function(){return this._isBaseLayer};gi.prototype.isDestroyed=function(){return!1};gi.prototype.destroy=function(){return le(this)};var i_e=new ce,t_e=new ce,oq=new ce,o_e=new ce;gi.prototype.getImageryRectangle=function(){let e=this._imageryProvider,t=this._rectangle;return ce.intersection(e.rectangle,t)};gi.prototype._createTileImagerySkeletons=function(e,t,n){let i=e.data;if(!u(t)||u(this._minimumTerrainLevel)&&e.level<this._minimumTerrainLevel||u(this._maximumTerrainLevel)&&e.level>this._maximumTerrainLevel)return!1;u(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 Di&&e.rectangle.north<Di.MaximumLatitude&&e.rectangle.south>-Di.MaximumLatitude,s=ce.intersection(o.rectangle,this._rectangle,i_e),a=ce.intersection(e.rectangle,s,t_e);if(!u(a)){if(!this.isBaseLayer())return!1;let v=s,I=e.rectangle;a=t_e,I.south>=v.north?a.north=a.south=v.north:I.north<=v.south?a.north=a.south=v.south:(a.south=Math.max(I.south,v.south),a.north=Math.min(I.north,v.north)),I.west>=v.east?a.west=a.east=v.east:I.east<=v.west?a.west=a.east=v.west:(a.west=Math.max(I.west,v.west),a.east=Math.min(I.east,v.east))}let c=0;a.south>0?c=a.south:a.north<0&&(c=a.north);let f=1*t.getLevelMaximumGeometricError(e.level),d=Fit(this,f,c);d=Math.max(0,d);let p=o.maximumLevel;if(d>p&&(d=p),u(o.minimumLevel)){let v=o.minimumLevel;d<v&&(d=v)}let g=o.tilingScheme,m=g.positionToTileXY(ce.northwest(a),d),x=g.positionToTileXY(ce.southeast(a),d),b=e.rectangle.width/512,T=e.rectangle.height/512,A=g.tileXYToRectangle(m.x,m.y,d);Math.abs(A.south-e.rectangle.north)<T&&m.y<x.y&&++m.y,Math.abs(A.east-e.rectangle.west)<b&&m.x<x.x&&++m.x;let C=g.tileXYToRectangle(x.x,x.y,d);Math.abs(C.north-e.rectangle.south)<T&&x.y>m.y&&--x.y,Math.abs(C.west-e.rectangle.east)<b&&x.x>m.x&&--x.x;let S=ce.clone(e.rectangle,o_e),w=g.tileXYToRectangle(m.x,m.y,d),D=ce.intersection(w,s,oq),O;r?(g.rectangleToNativeRectangle(S,S),g.rectangleToNativeRectangle(w,w),g.rectangleToNativeRectangle(D,D),g.rectangleToNativeRectangle(s,s),O=g.tileXYToNativeRectangle.bind(g),b=S.width/512,T=S.height/512):O=g.tileXYToRectangle.bind(g);let R,L=0,N=1,_;!this.isBaseLayer()&&Math.abs(D.west-S.west)>=b&&(L=Math.min(1,(D.west-S.west)/S.width)),!this.isBaseLayer()&&Math.abs(D.north-S.north)>=T&&(N=Math.max(0,(D.north-S.south)/S.height));let E=N;for(let v=m.x;v<=x.x;v++)if(R=L,w=O(v,m.y,d),D=ce.simpleIntersection(w,s,oq),!!u(D)){L=Math.min(1,(D.east-S.west)/S.width),v===x.x&&(this.isBaseLayer()||Math.abs(D.east-S.east)<b)&&(L=1),N=E;for(let I=m.y;I<=x.y;I++){if(_=N,w=O(v,I,d),D=ce.simpleIntersection(w,s,oq),!u(D))continue;N=Math.max(0,(D.south-S.south)/S.height),I===x.y&&(this.isBaseLayer()||Math.abs(D.south-S.south)<T)&&(N=0);let M=new oe(R,N,L,_),B=this.getImageryFromCache(v,I,d);i.imagery.splice(n,0,new oS(B,M,r)),++n}}return!0};gi.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,i_e),i=c.rectangleToNativeRectangle(i,o_e)}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)};gi.prototype._requestImagery=function(e){let t=this._imageryProvider,n=this;function i(s){if(!u(s))return o();e.image=s,e.state=ci.RECEIVED,e.request=void 0,wo.reportSuccess(n._requestImageError)}function o(s){if(e.request.state===Jn.CANCELLED){e.state=ci.UNLOADED,e.request=void 0;return}e.state=ci.FAILED,e.request=void 0;let a=`Failed to obtain image tile X: ${e.x} Y: ${e.y} Level: ${e.level}.`;n._requestImageError=wo.reportError(n._requestImageError,t,t.errorEvent,a,e.x,e.y,e.level,s),n._requestImageError.retry&&r()}function r(){let s=new Go({throttle:!1,throttleByServer:!0,type:Jr.IMAGERY});e.request=s,e.state=ci.TRANSITIONING;let a=t.requestImage(e.x,e.y,e.level,s);if(!u(a)){e.state=ci.UNLOADED,e.request=void 0;return}u(t.getTileCredits)&&(e.credits=t.getTileCredits(e.x,e.y,e.level)),a.then(function(c){i(c)}).catch(function(c){o(c)})}r()};gi.prototype._createTextureWebGL=function(e,t){let n=new ln({minificationFilter:this.minificationFilter,magnificationFilter:this.magnificationFilter}),i=t.image;return u(i.internalFormat)?new It({context:e,pixelFormat:i.internalFormat,width:i.width,height:i.height,source:{arrayBufferView:i.bufferView},sampler:n}):new It({context:e,source:i,pixelFormat:this._imageryProvider.hasAlphaChannel?nt.RGBA:nt.RGB,sampler:n})};gi.prototype._createTexture=function(e,t){let n=this._imageryProvider,i=t.image;if(u(n.tileDiscardPolicy)){let r=n.tileDiscardPolicy;if(u(r)){if(!r.isReady()){t.state=ci.RECEIVED;return}if(r.shouldDiscardImage(i)){t.state=ci.INVALID;return}}}let o=this._createTextureWebGL(e,t);n.tilingScheme.projection instanceof Di?t.textureWebMercator=o:t.texture=o,t.image=void 0,t.state=ci.TEXTURE_LOADED};function n_e(e,t,n){return`${e}:${t}:${n}`}gi.prototype._finalizeReprojectTexture=function(e,t){let n=this.minificationFilter,i=this.magnificationFilter;if(n===rn.LINEAR&&i===yi.LINEAR&&!nt.isCompressedFormat(t.pixelFormat)&&P.isPowerOfTwo(t.width)&&P.isPowerOfTwo(t.height)){n=rn.LINEAR_MIPMAP_LINEAR;let r=Ut.maximumTextureFilterAnisotropy,s=Math.min(r,y(this._maximumAnisotropy,r)),a=n_e(n,i,s),c=e.cache.imageryLayerMipmapSamplers;u(c)||(c={},e.cache.imageryLayerMipmapSamplers=c);let l=c[a];u(l)||(l=c[a]=new ln({wrapS:Sn.CLAMP_TO_EDGE,wrapT:Sn.CLAMP_TO_EDGE,minificationFilter:n,magnificationFilter:i,maximumAnisotropy:s})),t.generateMipmap(kh.NICEST),t.sampler=l}else{let r=n_e(n,i,0),s=e.cache.imageryLayerNonMipmapSamplers;u(s)||(s={},e.cache.imageryLayerNonMipmapSamplers=s);let a=s[r];u(a)||(a=s[r]=new ln({wrapS:Sn.CLAMP_TO_EDGE,wrapT:Sn.CLAMP_TO_EDGE,minificationFilter:n,magnificationFilter:i})),t.sampler=a}};gi.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 wi)&&o.width/i.width>1e-5){let s=this;t.addReference();let a=new Xu({persists:!0,owner:this,preExecute:function(c){Nit(c,r,i,t.rectangle)},postExecute:function(c){t.texture=c,s._finalizeReprojectTexture(r,c),t.state=ci.READY,t.releaseReference()},canceled:function(){t.state=ci.TEXTURE_LOADED,t.releaseReference()}});this._reprojectComputeCommands.push(a)}else n&&(t.texture=i),this._finalizeReprojectTexture(r,i),t.state=ci.READY};gi.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};gi.prototype.cancelReprojections=function(){this._reprojectComputeCommands.forEach(function(e){u(e.canceled)&&e.canceled()}),this._reprojectComputeCommands.length=0};gi.prototype.getImageryFromCache=function(e,t,n,i){let o=r_e(e,t,n),r=this._imageryCache[o];return u(r)||(r=new iS(this,e,t,n,i),this._imageryCache[o]=r),r.addReference(),r};gi.prototype.removeImageryFromCache=function(e){let t=r_e(e.x,e.y,e.level);delete this._imageryCache[t]};function r_e(e,t,n){return JSON.stringify([e,t,n])}var d4={u_textureDimensions:function(){return this.textureDimensions},u_texture:function(){return this.texture},textureDimensions:new z,texture:void 0},Lit=Bt.supportsTypedArrays()?new Float32Array(2*64):void 0;function Nit(e,t,n,i){let o=t.cache.imageryLayer_reproject;if(!u(o)){o=t.cache.imageryLayer_reproject={vertexArray:void 0,shaderProgram:void 0,sampler:void 0,destroy:function(){u(this.framebuffer)&&this.framebuffer.destroy(),u(this.vertexArray)&&this.vertexArray.destroy(),u(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 A={position:0,webMercatorT:1},C=jr.getRegularGridIndices(2,64),S=ct.createIndexBuffer({context:t,typedArray:C,usage:Ne.STATIC_DRAW,indexDatatype:Fe.UNSIGNED_SHORT});o.vertexArray=new ni({context:t,attributes:[{index:A.position,vertexBuffer:ct.createVertexBuffer({context:t,typedArray:b,usage:Ne.STATIC_DRAW}),componentsPerAttribute:2},{index:A.webMercatorT,vertexBuffer:ct.createVertexBuffer({context:t,sizeInBytes:64*2*4,usage:Ne.STREAM_DRAW}),componentsPerAttribute:1}],indexBuffer:S});let w=new Ue({sources:[uN]});o.shaderProgram=Yt.fromCache({context:t,vertexShaderSource:w,fragmentShaderSource:lN,attributeLocations:A}),o.sampler=new ln({wrapS:Sn.CLAMP_TO_EDGE,wrapT:Sn.CLAMP_TO_EDGE,minificationFilter:rn.LINEAR,magnificationFilter:yi.LINEAR})}n.sampler=o.sampler;let r=n.width,s=n.height;d4.textureDimensions.x=r,d4.textureDimensions.y=s,d4.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 It({context:t,width:r,height:s,pixelFormat:n.pixelFormat,pixelDatatype:n.pixelDatatype,preMultiplyAlpha:n.preMultiplyAlpha});P.isPowerOfTwo(r)&&P.isPowerOfTwo(s)&&d.generateMipmap(kh.NICEST);let p=i.south,g=i.north,m=Lit,x=0;for(let b=0;b<64;++b){let T=b/63,A=P.lerp(p,g,T);a=Math.sin(A);let S=(.5*Math.log((1+a)/(1-a))-c)*f;m[x++]=S,m[x++]=S}o.vertexArray.getAttribute(1).vertexBuffer.copyFromArrayView(m),e.shaderProgram=o.shaderProgram,e.outputTexture=d,e.uniformMap=d4,e.vertexArray=o.vertexArray}function Fit(e,t,n){let i=e._imageryProvider,o=i.tilingScheme,r=o.ellipsoid,s=e._imageryProvider.tilingScheme.projection instanceof wi?1:Math.cos(n),a=o.rectangle,l=r.maximumRadius*a.width*s/(i.tileWidth*o.getNumberOfXTilesAtLevel(0))/t,f=Math.log(l)/Math.log(2);return Math.round(f)|0}function Bit(e,t){e.numberOfListeners>0?e.raiseEvent(t):console.error(t)}async function kit(e,t){let n;try{if(n=await Promise.resolve(t),e.isDestroyed())return;e._imageryProvider=n,e._readyEvent.raiseEvent(n)}catch(i){Bit(e._errorEvent,i)}}var oa=gi;var Uit={WEST:0,NORTH:1,EAST:2,SOUTH:3,NORTHWEST:4,NORTHEAST:5,SOUTHWEST:6,SOUTHEAST:7},pn=Uit;var s_e={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>=s_e.RENDERED_AND_KICKED},originalResult:function(e){return e&3},kick:function(e){return e|4}},$n=s_e;function sS(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}sS.prototype.update=function(e,t,n){this.changedThisFrame&&(h_e(e,t,this.tile,n),this.changedThisFrame=!1)};sS.prototype.destroy=function(e){this._destroyVertexArray(e),u(this.waterMaskTexture)&&(--this.waterMaskTexture.referenceCount,this.waterMaskTexture.referenceCount===0&&this.waterMaskTexture.destroy(),this.waterMaskTexture=void 0)};sS.prototype._destroyVertexArray=function(e){u(this.vertexArray)&&(u(e)?e.push(this.vertexArray):Gf._freeVertexArray(this.vertexArray),this.vertexArray=void 0)};var Vit=new oy;sS.updateFillTiles=function(e,t,n,i){let o=e._quadtree,r=o._levelZeroTiles,s=o._lastSelectionFrameNumber,a=Vit;a.clear();for(let l=0;l<t.length;++l){let f=t[l];u(f.data.vertexArray)&&a.enqueue(t[l])}let c=a.dequeue();for(;c!==void 0;){let l=c.findTileToWest(r),f=c.findTileToSouth(r),d=c.findTileToEast(r),p=c.findTileToNorth(r);_s(e,n,c,l,s,pn.EAST,!1,a,i),_s(e,n,c,f,s,pn.NORTH,!1,a,i),_s(e,n,c,d,s,pn.WEST,!1,a,i),_s(e,n,c,p,s,pn.SOUTH,!1,a,i);let g=l.findTileToNorth(r),m=l.findTileToSouth(r),x=d.findTileToNorth(r),b=d.findTileToSouth(r);_s(e,n,c,g,s,pn.SOUTHEAST,!1,a,i),_s(e,n,c,x,s,pn.SOUTHWEST,!1,a,i),_s(e,n,c,m,s,pn.NORTHEAST,!1,a,i),_s(e,n,c,b,s,pn.NORTHWEST,!1,a,i),c=a.dequeue()}};function _s(e,t,n,i,o,r,s,a,c){if(i===void 0)return;let l=i;for(;l&&(l._lastSelectionResultFrame!==o||$n.wasKicked(l._lastSelectionResult)||$n.originalResult(l._lastSelectionResult)===$n.CULLED);){if(s)return;let f=l.parent;if(r>=pn.NORTHWEST&&f!==void 0)switch(r){case pn.NORTHWEST:l=l===f.northwestChild?f:void 0;break;case pn.NORTHEAST:l=l===f.northeastChild?f:void 0;break;case pn.SOUTHWEST:l=l===f.southwestChild?f:void 0;break;case pn.SOUTHEAST:l=l===f.southeastChild?f:void 0;break}else l=f}if(l!==void 0){if(l._lastSelectionResult===$n.RENDERED){if(u(l.data.vertexArray))return;zit(e,t,n,l,r,o,a,c);return}if($n.originalResult(i._lastSelectionResult)!==$n.CULLED)switch(r){case pn.WEST:_s(e,t,n,i.northwestChild,o,r,!0,a,c),_s(e,t,n,i.southwestChild,o,r,!0,a,c);break;case pn.EAST:_s(e,t,n,i.southeastChild,o,r,!0,a,c),_s(e,t,n,i.northeastChild,o,r,!0,a,c);break;case pn.SOUTH:_s(e,t,n,i.southwestChild,o,r,!0,a,c),_s(e,t,n,i.southeastChild,o,r,!0,a,c);break;case pn.NORTH:_s(e,t,n,i.northeastChild,o,r,!0,a,c),_s(e,t,n,i.northwestChild,o,r,!0,a,c);break;case pn.NORTHWEST:_s(e,t,n,i.northwestChild,o,r,!0,a,c);break;case pn.NORTHEAST:_s(e,t,n,i.northeastChild,o,r,!0,a,c);break;case pn.SOUTHWEST:_s(e,t,n,i.southwestChild,o,r,!0,a,c);break;case pn.SOUTHEAST:_s(e,t,n,i.southeastChild,o,r,!0,a,c);break;default:throw new de("Invalid edge")}}}function zit(e,t,n,i,o,r,s,a){let c=i.data;if(c.fill===void 0)c.fill=new sS(i);else if(c.fill.visitedFrame===r)return;c.fill.enqueuedFrame!==r&&(c.fill.enqueuedFrame=r,c.fill.changedThisFrame=!1,s.enqueue(i)),Hit(e,t,n,i,o,a)}function Hit(e,t,n,i,o,r){let s=i.data.fill,a,c=n.data.fill;u(c)?(c.visitedFrame=t.frameNumber,c.changedThisFrame&&(h_e(e,t,n,r),c.changedThisFrame=!1),a=n.data.fill.mesh):a=n.data.mesh;let l,f;switch(o){case pn.WEST:l=s.westMeshes,f=s.westTiles;break;case pn.SOUTH:l=s.southMeshes,f=s.southTiles;break;case pn.EAST:l=s.eastMeshes,f=s.eastTiles;break;case pn.NORTH:l=s.northMeshes,f=s.northTiles;break;case pn.NORTHWEST:s.changedThisFrame=s.changedThisFrame||s.northwestMesh!==a,s.northwestMesh=a,s.northwestTile=n;return;case pn.NORTHEAST:s.changedThisFrame=s.changedThisFrame||s.northeastMesh!==a,s.northeastMesh=a,s.northeastTile=n;return;case pn.SOUTHWEST:s.changedThisFrame=s.changedThisFrame||s.southwestMesh!==a,s.southwestMesh=a,s.southwestTile=n;return;case pn.SOUTHEAST:s.changedThisFrame=s.changedThisFrame||s.southeastMesh!==a,s.southeastMesh=a,s.southeastTile=n;return}if(n.level<=i.level){s.changedThisFrame=s.changedThisFrame||l[0]!==a||l.length!==1,l[0]=a,f[0]=n,l.length=1,f.length=1;return}let d,p,g,m,x=n.rectangle,b,T=i.rectangle;switch(o){case pn.WEST:for(b=(T.north-T.south)*P.EPSILON5,d=0;d<f.length&&(g=f[d],m=g.rectangle,!P.greaterThan(x.north,m.south,b));++d);for(p=d;p<f.length&&(g=f[p],m=g.rectangle,!P.greaterThanOrEquals(x.south,m.north,b));++p);break;case pn.SOUTH:for(b=(T.east-T.west)*P.EPSILON5,d=0;d<f.length&&(g=f[d],m=g.rectangle,!P.lessThan(x.west,m.east,b));++d);for(p=d;p<f.length&&(g=f[p],m=g.rectangle,!P.lessThanOrEquals(x.east,m.west,b));++p);break;case pn.EAST:for(b=(T.north-T.south)*P.EPSILON5,d=0;d<f.length&&(g=f[d],m=g.rectangle,!P.lessThan(x.south,m.north,b));++d);for(p=d;p<f.length&&(g=f[p],m=g.rectangle,!P.lessThanOrEquals(x.north,m.south,b));++p);break;case pn.NORTH:for(b=(T.east-T.west)*P.EPSILON5,d=0;d<f.length&&(g=f[d],m=g.rectangle,!P.greaterThan(x.east,m.west,b));++d);for(p=d;p<f.length&&(g=f[p],m=g.rectangle,!P.greaterThanOrEquals(x.west,m.east,b));++p);break}p-d===1?(s.changedThisFrame=s.changedThisFrame||l[d]!==a,l[d]=a,f[d]=n):(s.changedThisFrame=!0,l.splice(d,p-d,a),f.splice(d,p-d,n))}var Jb=new fe,Git=new fe,rS=new h,cq=new h,rq=new z,sq=new z,Ru=new z;function x4(){this.height=0,this.encodedNormal=new z}function h4(e,t,n,i,o,r,s,a,c){if(u(o))return o;let l;if(u(r)&&u(s))l=(r.height+s.height)*.5;else if(u(r))l=r.height;else if(u(s))l=s.height;else if(u(a))l=a.height;else{let d=e.tile.data.tileBoundingRegion,p=0,g=0;u(d)&&(p=d.minimumHeight,g=d.maximumHeight),l=(p+g)*.5}return m_e(e,t,n,i,l,c),c}var Wit={minimumHeight:0,maximumHeight:0},jit=new h,a_e=new x4,c_e=new x4,l_e=new x4,u_e=new x4,qit=typeof Uint8Array<"u"?new Uint8Array(9*9):void 0,Yit={tilingScheme:void 0,x:0,y:0,level:0,exaggeration:1,exaggerationRelativeHeight:0};function h_e(e,t,n,i){Gf.initialize(n,e.terrainProvider,e._imageryLayers);let o=n.data,r=o.fill,s=n.rectangle,a=t.terrainExaggeration,c=t.terrainExaggerationRelativeHeight,l=a!==1,f=n.tilingScheme.ellipsoid,d=p4(r,f,0,1,r.northwestTile,r.northwestMesh,r.northTiles,r.northMeshes,r.westTiles,r.westMeshes,l_e),p=p4(r,f,0,0,r.southwestTile,r.southwestMesh,r.westTiles,r.westMeshes,r.southTiles,r.southMeshes,a_e),g=p4(r,f,1,0,r.southeastTile,r.southeastMesh,r.southTiles,r.southMeshes,r.eastTiles,r.eastMeshes,c_e),m=p4(r,f,1,1,r.northeastTile,r.northeastMesh,r.eastTiles,r.eastMeshes,r.northTiles,r.northMeshes,u_e);d=h4(r,f,0,1,d,p,m,g,l_e),p=h4(r,f,0,0,p,d,g,m,a_e),g=h4(r,f,1,1,g,p,m,d,c_e),m=h4(r,f,1,1,m,g,d,p,u_e);let x=p.height,b=g.height,T=d.height,A=m.height,C=Math.min(x,b,T,A),S=Math.max(x,b,T,A),w=(C+S)*.5,D,O,R=e.getLevelMaximumGeometricError(n.level),L=f.maximumRadius-R,N=Math.acos(L/f.maximumRadius)*4;if(N*=1.5,s.width>N&&S-C<=R){let v=new wa({width:9,height:9,buffer:qit,structure:{heightOffset:S}}),I=Yit;I.tilingScheme=n.tilingScheme,I.x=n.x,I.y=n.y,I.level=n.level,I.exaggeration=a,I.exaggerationRelativeHeight=c,r.mesh=v._createMeshSync(I)}else{let v=l,I=ce.center(s,Git);I.height=w;let M=f.cartographicToCartesian(I,jit),B=new dc(M,void 0,void 0,void 0,void 0,!0,!0,v,a,c),V=5,U;for(U=r.westMeshes,D=0,O=U.length;D<O;++D)V+=U[D].eastIndicesNorthToSouth.length;for(U=r.southMeshes,D=0,O=U.length;D<O;++D)V+=U[D].northIndicesWestToEast.length;for(U=r.eastMeshes,D=0,O=U.length;D<O;++D)V+=U[D].westIndicesSouthToNorth.length;for(U=r.northMeshes,D=0,O=U.length;D<O;++D)V+=U[D].southIndicesEastToWest.length;let G=Wit;G.minimumHeight=C,G.maximumHeight=S;let k=B.stride,Y=new Float32Array(V*k),j=0,$=j;j=m4(f,s,B,Y,j,0,1,d.height,d.encodedNormal,1,G),j=g4(r,f,B,Y,j,r.westTiles,r.westMeshes,pn.EAST,G);let W=j;j=m4(f,s,B,Y,j,0,0,p.height,p.encodedNormal,0,G),j=g4(r,f,B,Y,j,r.southTiles,r.southMeshes,pn.NORTH,G);let K=j;j=m4(f,s,B,Y,j,1,0,g.height,g.encodedNormal,0,G),j=g4(r,f,B,Y,j,r.eastTiles,r.eastMeshes,pn.WEST,G);let Z=j;j=m4(f,s,B,Y,j,1,1,m.height,m.encodedNormal,1,G),j=g4(r,f,B,Y,j,r.northTiles,r.northMeshes,pn.SOUTH,G),C=G.minimumHeight,S=G.maximumHeight;let me=In.fromRectangle(s,C,S,n.tilingScheme.ellipsoid),xe=Di.geodeticLatitudeToMercatorAngle(s.south),re=1/(Di.geodeticLatitudeToMercatorAngle(s.north)-xe),ye=(Di.geodeticLatitudeToMercatorAngle(I.latitude)-xe)*re,ge=f.geodeticSurfaceNormalCartographic(Jb,cq),Ae=qn.octEncode(ge,rq),De=j;B.encode(Y,j*k,me.center,z.fromElements(.5,.5,Ru),w,Ae,ye,ge),++j;let Re=j,ze=Re<256?1:2,ut=(Re-1)*3,Vt=ut*ze,cn=(Y.length-Re*k)*Float32Array.BYTES_PER_ELEMENT,ft;if(cn>=Vt){let be=Re*k*Float32Array.BYTES_PER_ELEMENT;ft=Re<256?new Uint8Array(Y.buffer,be,ut):new Uint16Array(Y.buffer,be,ut)}else ft=Re<256?new Uint8Array(ut):new Uint16Array(ut);Y=new Float32Array(Y.buffer,0,Re*k);let _n=0;for(D=0;D<Re-2;++D)ft[_n++]=De,ft[_n++]=D,ft[_n++]=D+1;ft[_n++]=De,ft[_n++]=D,ft[_n++]=0;let Mn=[];for(D=W;D>=$;--D)Mn.push(D);let Ft=[];for(D=K;D>=W;--D)Ft.push(D);let Ot=[];for(D=Z;D>=K;--D)Ot.push(D);let he=[];for(he.push(0),D=De-1;D>=Z;--D)he.push(D);r.mesh=new Hf(B.center,Y,ft,ut,Re,C,S,se.fromOrientedBoundingBox(me),eot(e,me.center,s,C,S),B.stride,me,B,Mn,Ft,Ot,he)}let _=t.context;r._destroyVertexArray(i),r.vertexArray=Gf._createVertexArrayForMesh(_,r.mesh),o.processImagery(n,e.terrainProvider,t,!0);let E=r.waterMaskTexture;if(r.waterMaskTexture=void 0,e.terrainProvider.hasWaterMask){let v=o._findAncestorTileWithTerrainData(n);u(v)&&u(v.data.waterMaskTexture)&&(r.waterMaskTexture=v.data.waterMaskTexture,++r.waterMaskTexture.referenceCount,o._computeWaterMaskTranslationAndScale(n,v,r.waterMaskTranslationAndScale))}u(E)&&(--E.referenceCount,E.referenceCount===0&&E.destroy())}function m4(e,t,n,i,o,r,s,a,c,l,f){let d=Jb;d.longitude=P.lerp(t.west,t.east,r),d.latitude=P.lerp(t.south,t.north,s),d.height=a;let p=e.cartographicToCartesian(d,rS),g;n.hasGeodeticSurfaceNormals&&(g=e.geodeticSurfaceNormal(p,cq));let m=sq;return m.x=r,m.y=s,n.encode(i,o*n.stride,p,m,a,c,l,g),f.minimumHeight=Math.min(f.minimumHeight,a),f.maximumHeight=Math.max(f.maximumHeight,a),o+1}var y4=new ce;function fN(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=ce.clone(e.rectangle,y4),o.west-=P.TWO_PI,o.east-=P.TWO_PI):e.x===0&&n.x===0&&t.x===t.tilingScheme.getNumberOfXTilesAtLevel(t.level)-1&&(o=ce.clone(e.rectangle,y4),o.west+=P.TWO_PI,o.east+=P.TWO_PI);let s=o.east-o.west,a=(r.west-o.west)/s,c=(r.east-o.west)/s,l=o.north-o.south,f=(r.south-o.south)/l,d=(r.north-o.south)/l,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 Xit=new z;function aq(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 Kit=new z,Zit=new h;function $it(e,t,n,i,o,r,s,a,c,l){let f=i.encoding,d=i.vertices,p=fN(t,n,f.decodeTextureCoordinates(d,o,Ru),Ru),g=fN(t,n,f.decodeTextureCoordinates(d,r,sq),sq),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;Jb.longitude=P.lerp(T.west,T.east,s),Jb.latitude=P.lerp(T.south,T.north,a),l.height=Jb.height=P.lerp(x,b,m);let A;if(f.hasVertexNormals){let C=f.getOctEncodedNormal(d,o,Xit),S=f.getOctEncodedNormal(d,r,Kit),w=qn.octDecode(C.x,C.y,rS),D=qn.octDecode(S.x,S.y,Zit);A=h.lerp(w,D,m,rS),h.normalize(A,A),qn.octEncode(A,l.encodedNormal)}else A=e.geodeticSurfaceNormalCartographic(Jb,rS),qn.octEncode(A,l.encodedNormal)}function m_e(e,t,n,i,o,r){r.height=o;let s=t.geodeticSurfaceNormalCartographic(Jb,rS);qn.octEncode(s,r.encodedNormal)}function p4(e,t,n,i,o,r,s,a,c,l,f){if(d_e(e,t,a,s,!1,n,i,f)||d_e(e,t,l,c,!0,n,i,f))return f;let p;if(lq(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],aq(r,p,n,i,f),f;let g;if(n===0?i===0?g=_4(e.westMeshes,e.westTiles,pn.EAST,e.southMeshes,e.southTiles,pn.NORTH,n,i):g=_4(e.northMeshes,e.northTiles,pn.SOUTH,e.westMeshes,e.westTiles,pn.EAST,n,i):i===0?g=_4(e.southMeshes,e.southTiles,pn.NORTH,e.eastMeshes,e.eastTiles,pn.WEST,n,i):g=_4(e.eastMeshes,e.eastTiles,pn.WEST,e.northMeshes,e.northTiles,pn.SOUTH,n,i),u(g))return m_e(e,t,n,i,g,f),f}function _4(e,t,n,i,o,r,s,a){let c=f_e(e,t,!1,n,s,a),l=f_e(i,o,!0,r,s,a);return u(c)&&u(l)?(c+l)*.5:u(c)?c:l}function g4(e,t,n,i,o,r,s,a,c){for(let l=0;l<r.length;++l)o=Qit(e,t,n,i,o,r[l],s[l],a,c);return o}function Qit(e,t,n,i,o,r,s,a,c){let l=r.rectangle;a===pn.EAST&&e.tile.x===0?(l=ce.clone(r.rectangle,y4),l.west-=P.TWO_PI,l.east-=P.TWO_PI):a===pn.WEST&&r.x===0&&(l=ce.clone(r.rectangle,y4),l.west+=P.TWO_PI,l.east+=P.TWO_PI);let f=e.tile.rectangle,d,p;o>0&&(n.decodeTextureCoordinates(i,o-1,Ru),d=Ru.x,p=Ru.y);let g,m;switch(a){case pn.WEST:g=s.westIndicesSouthToNorth,m=!1;break;case pn.NORTH:g=s.northIndicesWestToEast,m=!0;break;case pn.EAST:g=s.eastIndicesNorthToSouth,m=!1;break;case pn.SOUTH:g=s.southIndicesEastToWest,m=!0;break}let x=r,b=e.tile,T=s.encoding,A=s.vertices,C=n.stride,S,w;T.hasWebMercatorT&&(S=Di.geodeticLatitudeToMercatorAngle(f.south),w=1/(Di.geodeticLatitudeToMercatorAngle(f.north)-S));for(let D=0;D<g.length;++D){let O=g[D],R=T.decodeTextureCoordinates(A,O,Ru);fN(x,b,R,R);let L=R.x,N=R.y,_=m?L:N;if(_<0||_>1||Math.abs(L-d)<P.EPSILON5&&Math.abs(N-p)<P.EPSILON5)continue;let E=Math.abs(L)<P.EPSILON5||Math.abs(L-1)<P.EPSILON5,v=Math.abs(N)<P.EPSILON5||Math.abs(N-1)<P.EPSILON5;if(E&&v)continue;let I=T.decodePosition(A,O,rS),M=T.decodeHeight(A,O),B;T.hasVertexNormals?B=T.getOctEncodedNormal(A,O,rq):(B=rq,B.x=0,B.y=0);let V=N;if(T.hasWebMercatorT){let G=P.lerp(f.south,f.north,N);V=(Di.geodeticLatitudeToMercatorAngle(G)-S)*w}let U;n.hasGeodeticSurfaceNormals&&(U=t.geodeticSurfaceNormal(I,cq)),n.encode(i,o*C,I,R,M,B,V,U),c.minimumHeight=Math.min(c.minimumHeight,M),c.maximumHeight=Math.max(c.maximumHeight,M),++o}return o}function f_e(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 l=s;l!==a;l+=c){let f=e[l],d=t[l];if(!lq(d,f))continue;let p;switch(i){case pn.WEST:p=f.westIndicesSouthToNorth;break;case pn.SOUTH:p=f.southIndicesEastToWest;break;case pn.EAST:p=f.eastIndicesNorthToSouth;break;case pn.NORTH:p=f.northIndicesWestToEast;break}let g=p[n?0:p.length-1];if(u(g))return f.encoding.decodeHeight(f.vertices,g)}}function lq(e,t){return u(t)&&(!u(e.data.fill)||!e.data.fill.changedThisFrame)}function d_e(e,t,n,i,o,r,s,a){let c,l,f,d,p,g=i[o?0:n.length-1],m=n[o?0:n.length-1];if(lq(g,m)&&(r===0?s===0?(c=o?m.northIndicesWestToEast:m.eastIndicesNorthToSouth,l=o,f=o):(c=o?m.eastIndicesNorthToSouth:m.southIndicesEastToWest,l=!o,f=!1):s===0?(c=o?m.westIndicesSouthToNorth:m.northIndicesWestToEast,l=!o,f=!0):(c=o?m.southIndicesEastToWest:m.westIndicesSouthToNorth,l=o,f=!o),c.length>0)){d=o?0:c.length-1,p=c[d],m.encoding.decodeTextureCoordinates(m.vertices,p,Ru);let x=fN(g,e.tile,Ru,Ru);if(x.x===r&&x.y===s)return aq(m,p,r,s,a),!0;if(d=Do(c,l?r:s,function(b,T){m.encoding.decodeTextureCoordinates(m.vertices,b,Ru);let A=fN(g,e.tile,Ru,Ru);return f?l?A.x-r:A.y-s:l?r-A.x:s-A.y}),d<0){if(d=~d,d>0&&d<c.length)return $it(t,g,e.tile,m,c[d-1],c[d],r,s,l,a),!0}else return aq(m,c[d],r,s,a),!0}return!1}var Jit=[new h,new h,new h,new h];function eot(e,t,n,i,o,r){let s=e.quadtree._occluders.ellipsoid,a=s.ellipsoid,c=Jit;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 aS=sS;function Jo(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(Jo.prototype._onLayerAdded,this),this._removeLayerRemovedListener=this._imageryLayers.layerRemoved.addEventListener(Jo.prototype._onLayerRemoved,this),this._removeLayerMovedListener=this._imageryLayers.layerMoved.addEventListener(Jo.prototype._onLayerMoved,this),this._removeLayerShownListener=this._imageryLayers.layerShownOrHidden.addEventListener(Jo.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.cartographicLimitRectangle=ce.clone(ce.MAX_VALUE),this._hasLoadedTilesThisFrame=!1,this._hasFillTilesThisFrame=!1,this._oldTerrainExaggeration=void 0,this._oldTerrainExaggerationRelativeHeight=void 0}Object.defineProperties(Jo.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(u(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,u(this._quadtree)&&this._quadtree.invalidateAllTiles())}},clippingPlanes:{get:function(){return this._clippingPlanes},set:function(e){cs.setOwner(e,this,"_clippingPlanes")}}});function tot(e,t){let n=e.loadingImagery;u(n)||(n=e.readyImagery);let i=t.loadingImagery;return u(i)||(i=t.readyImagery),n.imageryLayer._layerIndex-i.imageryLayer._layerIndex}Jo.prototype.update=function(e){this._imageryLayers._update()};function not(e,t){let n=t.creditDisplay,i=e._terrainProvider;u(i)&&u(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&&u(a.imageryProvider.credit)&&n.addCreditToNextFrame(a.imageryProvider.credit)}}Jo.prototype.initialize=function(e){this._imageryLayers.queueReprojectionCommands(e),this._layerOrderChanged&&(this._layerOrderChanged=!1,this._quadtree.forEachLoadedTile(function(i){i.data.imagery.sort(tot)})),not(this,e);let t=this._vertexArraysToDestroy,n=t.length;for(let i=0;i<n;++i)Gf._freeVertexArray(t[i]);t.length=0};Jo.prototype.beginUpdate=function(e){let t=this._tilesToRenderByTextureCount;for(let i=0,o=t.length;i<o;++i){let r=t[i];u(r)&&(r.length=0)}let n=this._clippingPlanes;u(n)&&n.enabled&&n.update(e),this._usedDrawCommands=0,this._hasLoadedTilesThisFrame=!1,this._hasFillTilesThisFrame=!1};Jo.prototype.endUpdate=function(e){if(!u(this._renderState)){this._renderState=ke.fromCache({cull:{enabled:!0},depthTest:{enabled:!0,func:ja.LESS}}),this._blendRenderState=ke.fromCache({cull:{enabled:!0},depthTest:{enabled:!0,func:ja.LESS_OR_EQUAL},blending:un.ALPHA_BLEND});let s=He(this._renderState,!0);s.cull.enabled=!1,this._disableCullingRenderState=ke.fromCache(s),s=He(this._blendRenderState,!0),s.cull.enabled=!1,this._disableCullingBlendRenderState=ke.fromCache(s)}this._hasFillTilesThisFrame&&this._hasLoadedTilesThisFrame&&aS.updateFillTiles(this,this._quadtree._tilesToRender,e,this._vertexArraysToDestroy);let t=this.quadtree,n=e.terrainExaggeration,i=e.terrainExaggerationRelativeHeight,o=this._oldTerrainExaggeration!==n||this._oldTerrainExaggerationRelativeHeight!==i;this._oldTerrainExaggeration=n,this._oldTerrainExaggerationRelativeHeight=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(u(c))for(let l=0,f=c.length;l<f;++l){let d=c[l],p=d.data.tileBoundingRegion;wot(this,d,e),e.minimumTerrainHeight=Math.min(e.minimumTerrainHeight,p.minimumHeight)}}};function x_e(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)}Jo.prototype.updateForPick=function(e){let t=this._drawCommands;for(let n=0,i=this._usedDrawCommands;n<i;++n)x_e(t[n],e)};Jo.prototype.cancelReprojections=function(){this._imageryLayers.cancelReprojections()};Jo.prototype.getLevelMaximumGeometricError=function(e){return u(this._terrainProvider)?this._terrainProvider.getLevelMaximumGeometricError(e):0};Jo.prototype.loadTile=function(e,t){let n=t.data,i=!0,o;u(n)&&(i=n.boundingVolumeSourceTile!==t||t._lastSelectionResult===$n.CULLED_BUT_NEEDED,o=n.terrainState),Gf.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)!==lr.NONE&&n.boundingVolumeSourceTile===t&&(i=!1,Gf.processStateMachine(t,e,this.terrainProvider,this._imageryLayers,this.quadtree,this._vertexArraysToDestroy,i))};var iot=new se,b_e=new ce,oot=new ce,rot=new fe;function T4(e,t){if(t.west<t.east)return t;let n=ce.clone(t,oot);return ce.center(e,rot).longitude>0?n.east=P.PI:n.west=-P.PI,n}function T_e(e,t){if(t.cameraUnderground||t.globeTranslucencyState.translucent)return!0;if(e.backFaceCulling)return!1;let n=e._clippingPlanes;return!!(u(n)&&n.enabled||!ce.equals(e.cartographicLimitRectangle,ce.MAX_VALUE))}Jo.prototype.computeTileVisibility=function(e,t,n){let i=this.computeDistanceToTile(e,t);e._distance=i;let o=T_e(this,t);if(t.fog.enabled&&!o&&P.fog(i,t.fog.density)>=1)return lr.NONE;let r=e.data,s=r.tileBoundingRegion;if(r.boundingVolumeSourceTile===void 0)return lr.PARTIAL;let a=t.cullingVolume,c=s.boundingVolume;u(c)||(c=s.boundingSphere),r.clippedByBoundaries=!1;let l=T4(e.rectangle,this.cartographicLimitRectangle),f=ce.simpleIntersection(l,e.rectangle,b_e);if(!u(f))return lr.NONE;if(ce.equals(f,e.rectangle)||(r.clippedByBoundaries=!0),t.mode!==te.SCENE3D&&(c=iot,se.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===te.MORPHING&&u(r.renderedMesh)&&(c=se.union(s.boundingSphere,c,c))),!u(c))return lr.PARTIAL;let d=this._clippingPlanes;if(u(d)&&d.enabled){let x=d.computeIntersectionWithBoundingVolume(c);if(e.isClipped=x!==Kt.INSIDE,x===Kt.OUTSIDE)return lr.NONE}let p,g=a.computeVisibility(c);if(g===Kt.OUTSIDE?p=lr.NONE:g===Kt.INTERSECTING?p=lr.PARTIAL:g===Kt.INSIDE&&(p=lr.FULL),p===lr.NONE)return p;let m=t.mode===te.SCENE3D&&t.camera.frustum instanceof $t;if(t.mode===te.SCENE3D&&!m&&u(n)&&!o){let x=r.occludeePointInScaledSpace;return!u(x)||n.ellipsoid.isScaledSpacePointVisiblePossiblyUnderEllipsoid(x,s.minimumHeight)?p:lr.NONE}return p};Jo.prototype.canRefine=function(e){return u(e.data.terrainData)?!0:this.terrainProvider.getTileDataAvailable(e.x*2,e.y*2,e.level+1)!==void 0};var sot=[],aot=[];Jo.prototype.canRenderWithoutLosingDetail=function(e,t){let n=e.data,i=sot;i.length=this._imageryLayers.length;let o=!1,r=!1,s;u(n)&&(o=n.terrainState===ao.READY,r=!0,s=n.imagery);let a,c;for(a=0,c=i.length;a<c;++a)i[a]=r;if(u(s))for(a=0,c=s.length;a<c;++a){let d=s[a],p=d.loadingImagery,g=!u(p)||p.state===ci.FAILED||p.state===ci.INVALID,m=(d.loadingImagery||d.readyImagery).imageryLayer._layerIndex;i[m]=g&&i[m]}let l=this.quadtree._lastSelectionFrameNumber,f=aot;for(f.length=0,f.push(e.southwestChild,e.southeastChild,e.northwestChild,e.northeastChild);f.length>0;){let d=f.pop(),p=d._lastSelectionResultFrame===l?d._lastSelectionResult:$n.NONE;if(p===$n.RENDERED){let g=d.data;if(!u(g))continue;if(!o&&d.data.terrainState===ao.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=!u(b)||b.state===ci.FAILED||b.state===ci.INVALID,A=(x.loadingImagery||x.readyImagery).imageryLayer._layerIndex;if(T&&!i[A])return!1}}else p===$n.REFINED&&f.push(d.southwestChild,d.southeastChild,d.northwestChild,d.northeastChild)}return!0};var cot=new h;Jo.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,cot),a=h.magnitude(s);return a<P.EPSILON5?0:(h.divideByScalar(s,a,s),(1-h.dot(s,r))*e._distance)};var p_e=new F,b4=new F,lot=new oe,uot=new oe,fot=new oe,dot=new h,__e=new h,hot=new h,mot=new h;Jo.prototype.showTileThisFrame=function(e,t){let n=0,i=e.data.imagery;for(let a=0,c=i.length;a<c;++a){let l=i[a];u(l.readyImagery)&&l.readyImagery.imageryLayer.alpha!==0&&++n}let o=this._tilesToRenderByTextureCount[n];u(o)||(o=[],this._tilesToRenderByTextureCount[n]=o),o.push(e);let r=e.data;u(r.vertexArray)?this._hasLoadedTilesThisFrame=!0:this._hasFillTilesThisFrame=!0;let s=this._debug;++s.tilesRendered,s.texturesRendered+=n};var pot=[new h,new h,new h,new h];function g_e(e,t,n,i,o,r){let s=e.quadtree._occluders.ellipsoid,a=s.ellipsoid,c=pot;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)}Jo.prototype.computeDistanceToTile=function(e,t){_ot(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,l=Math.abs(c-r),f=Math.abs(c-s);l>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 _ot(e,t,n){let i=e.data;i===void 0&&(i=e.data=new Gf);let o=e.tilingScheme.ellipsoid;i.tileBoundingRegion===void 0&&(i.tileBoundingRegion=new bf({computeBoundingVolumes:!1,rectangle:e.rectangle,ellipsoid:o,minimumHeight:0,maximumHeight:0}));let r=i.tileBoundingRegion,s=r.minimumHeight,a=r.maximumHeight,c=!1,l=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}l=p}if(l!==void 0){let p=n.terrainExaggeration,g=n.terrainExaggerationRelativeHeight;if(p!==1&&(c=!1,r.minimumHeight=vc.getHeight(r.minimumHeight,p,g),r.maximumHeight=vc.getHeight(r.maximumHeight,p,g)),c)i.boundingVolumeIsFromMesh||(r._orientedBoundingBox=In.clone(f.orientedBoundingBox,r._orientedBoundingBox),r._boundingSphere=se.clone(f.boundingSphere3D,r._boundingSphere),i.occludeePointInScaledSpace=h.clone(f.occludeePointInScaledSpace,i.occludeePointInScaledSpace),u(i.occludeePointInScaledSpace)||(i.occludeePointInScaledSpace=g_e(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=g_e(t,r._orientedBoundingBox.center,e.rectangle,r.minimumHeight,r.maximumHeight,i.occludeePointInScaledSpace))}i.boundingVolumeSourceTile=l,i.boundingVolumeIsFromMesh=c}else i.boundingVolumeSourceTile=void 0,i.boundingVolumeIsFromMesh=!1}Jo.prototype.isDestroyed=function(){return!1};Jo.prototype.destroy=function(){return this._tileProvider=this._tileProvider&&this._tileProvider.destroy(),this._clippingPlanes=this._clippingPlanes&&this._clippingPlanes.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(),le(this)};function got(e,t,n){return function(i){let o,r,s=-1,a=i.data.imagery,c=a.length,l;for(l=0;l<c;++l)if(o=a[l],r=y(o.readyImagery,o.loadingImagery),r.imageryLayer===t){s=l;break}if(s!==-1){let f=s+e;if(o=a[f],r=u(o)?y(o.readyImagery,o.loadingImagery):void 0,!u(r)||r.imageryLayer!==t)return!t._createTileImagerySkeletons(i,n,f);for(l=s;l<f;++l)a[l].freeResources();a.splice(s,e)}return!0}}Jo.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(u(s._loadedCallbacks[e._layerIndex]))return;let a,c=s.data.imagery,l=c.length,f=-1,d=0;for(a=0;a<l;++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]=got(d,e,n),s.state=Bs.LOADING)})};if(e.ready){let s=e.imageryProvider;s._reload=r}this._quadtree.forEachLoadedTile(function(s){e._createTileImagerySkeletons(s,n)&&(s.state=Bs.LOADING,s.level!==0&&(s._lastSelectionResultFrame!==i.quadtree._lastSelectionFrameNumber||s._lastSelectionResult!==$n.RENDERED)&&(s.renderable=!1))}),this._layerOrderChanged=!0,o.raiseEvent()}};Jo.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],l=c.loadingImagery;if(u(l)||(l=c.readyImagery),l.imageryLayer===e)o===-1&&(o=s),c.freeResources(),++r;else if(o!==-1)break}o!==-1&&i.splice(o,r)}),u(e.imageryProvider)&&(e.imageryProvider._reload=void 0),this._imageryLayersUpdatedEvent.raiseEvent()};Jo.prototype._onLayerMoved=function(e,t,n){this._layerOrderChanged=!0,this._imageryLayersUpdatedEvent.raiseEvent()};Jo.prototype._onLayerShownOrHidden=function(e,t,n){n?this._onLayerAdded(e,t):this._onLayerRemoved(e,t)};var yot=new F,xot=new F;function y_e(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_terrainExaggerationAndRelativeHeight:function(){return this.properties.terrainExaggerationAndRelativeHeight},u_tileRectangle:function(){return this.properties.tileRectangle},u_modifiedModelView:function(){let i=e.context.uniformState.view,o=F.multiplyByPoint(i,this.properties.rtc,__e);return F.setTranslation(i,o,p_e),p_e},u_modifiedModelViewProjection:function(){let i=e.context.uniformState.view,o=e.context.uniformState.projection,r=F.multiplyByPoint(i,this.properties.rtc,__e);return F.setTranslation(i,r,b4),F.multiply(o,b4,b4),b4},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 u(i)&&u(i.texture)?i.texture:e.context.defaultTexture},u_cartographicLimitRectangle:function(){return this.properties.localizedCartographicLimitRectangle},u_clippingPlanesMatrix:function(){let i=t._clippingPlanes,o=u(i)?F.multiply(e.context.uniformState.view,i.modelMatrix,yot):F.IDENTITY;return F.inverseTranspose(o,xot)},u_clippingPlanesEdgeStyle:function(){let i=this.properties.clippingPlanesEdgeColor;return i.alpha=this.properties.clippingPlanesEdgeWidth,i},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,terrainExaggerationAndRelativeHeight: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 u(t.materialUniformMap)?gt(n,t.materialUniformMap):n}function bot(e,t,n){let i=n.data,o,r;if(u(i.vertexArray)?(o=i.mesh,r=i.vertexArray):u(i.fill)&&u(i.fill.vertexArray)&&(o=i.fill.mesh,r=i.fill.vertexArray),!(!u(o)||!u(r))){if(u(i.wireframeVertexArray)){if(i.wireframeVertexArray.mesh===o)return;i.wireframeVertexArray.destroy(),i.wireframeVertexArray=void 0}i.wireframeVertexArray=Tot(e,r,o),i.wireframeVertexArray.mesh=o}}function Tot(e,t,n){let o={indices:n.indices,primitiveType:Me.TRIANGLES};Nn.toWireframe(o);let r=o.indices,s=ct.createIndexBuffer({context:e,typedArray:r,usage:Ne.STATIC_DRAW,indexDatatype:Fe.fromSizeInBytes(r.BYTES_PER_ELEMENT)});return new ni({context:e,attributes:t._attributes,indexBuffer:s})}var A_e,C_e,A4;(function(){let e=new yt({geometry:fd.fromDimensions({dimensions:new h(2,2,2)})}),t=new yt({geometry:new i_({radius:1})}),n=new F,i,o;function r(s){return new En({geometryInstances:s,appearance:new nn({translucent:!1,flat:!0}),asynchronous:!1})}A_e=function(s,a){return s===i||(A4(),i=s,n=F.fromRotationTranslation(s.halfAxes,s.center,n),e.modelMatrix=n,e.attributes.color=kt.fromColor(a),o=r(e)),o},C_e=function(s,a){return s===i||(A4(),i=s,n=F.fromTranslation(s.center,n),n=F.multiplyByUniformScale(n,s.radius,n),t.modelMatrix=n,t.attributes.color=kt.fromColor(a),o=r(t)),o},A4=function(){u(o)&&(o.destroy(),o=void 0,i=void 0)}})();var Aot=new oe(0,0,0,0),Cot={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,clippedByBoundaries:void 0,hasImageryLayerCutout:void 0,colorCorrect:void 0,colorToAlpha:void 0,hasGeodeticSurfaceNormals:void 0,hasExaggeration:void 0},Eot=H.TRANSPARENT,Sot=new Pt;function wot(e,t,n){let i=t.data;u(i.vertexArray)||(i.fill===void 0&&(i.fill=new aS(t)),i.fill.update(e,n));let o=n.creditDisplay,r=i.terrainData;if(u(r)&&u(r.credits)){let he=r.credits;for(let be=0,Gt=he.length;be<Gt;++be)o.addCreditToNextFrame(he[be])}let s=Ut.maximumTextureImageUnits,a=i.waterMaskTexture,c=i.waterMaskTranslationAndScale;!u(a)&&u(i.fill)&&(a=i.fill.waterMaskTexture,c=i.fill.waterMaskTranslationAndScale);let l=n.cameraUnderground,f=n.globeTranslucencyState,d=f.translucent,p=f.frontFaceAlphaByDistance,g=f.backFaceAlphaByDistance,m=f.rectangle,x=y(e.undergroundColor,Eot),b=y(e.undergroundColorAlphaByDistance,Sot),T=T_e(e,n)&&n.mode===te.SCENE3D&&x.alpha>0&&(b.nearValue>0||b.farValue>0),A=e.lambertDiffuseMultiplier,C=e.vertexShadowDarkness,S=e.hasWaterMask&&u(a),w=e.oceanNormalMap,D=S&&u(w),O=e.terrainProvider,R=u(O)&&e.terrainProvider.hasVertexNormals,L=n.fog.enabled&&n.fog.renderable&&!l,N=e.showGroundAtmosphere&&n.mode===te.SCENE3D,_=yn.castShadows(e.shadows)&&!d,E=yn.receiveShadows(e.shadows)&&!d,v=e.hueShift,I=e.saturationShift,M=e.brightnessShift,B=!(P.equalsEpsilon(v,0,P.EPSILON7)&&P.equalsEpsilon(I,0,P.EPSILON7)&&P.equalsEpsilon(M,0,P.EPSILON7)),V=!1;if(N){let he=h.magnitude(n.camera.positionWC),be=e.nightFadeOutDistance;V=he>be}S&&--s,D&&--s,u(n.shadowState)&&n.shadowState.shadowsEnabled&&--s,u(e.clippingPlanes)&&e.clippingPlanes.enabled&&--s,s-=f.numberOfTextureUniforms;let U=i.renderedMesh,G=U.center,k=U.encoding,Y=i.tileBoundingRegion,j=n.terrainExaggeration,$=n.terrainExaggerationRelativeHeight,W=j!==1,K=k.hasGeodeticSurfaceNormals,Z=lot,me=0,xe=0,re=0,ye=0,ge=!1;if(n.mode!==te.SCENE3D){let he=n.mapProjection,be=he.project(ce.southwest(t.rectangle),hot),Gt=he.project(ce.northeast(t.rectangle),mot);if(Z.x=be.x,Z.y=be.y,Z.z=Gt.x,Z.w=Gt.y,n.mode!==te.MORPHING&&(G=dot,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===te.SCENE2D&&k.quantization===Fs.BITS12){let rt=1/(Math.pow(2,12)-1)*.5,Si=(Z.z-Z.x)*rt,Zi=(Z.w-Z.y)*rt;Z.x-=Si,Z.y-=Zi,Z.z+=Si,Z.w+=Zi}he instanceof Di&&(me=t.rectangle.south,xe=t.rectangle.north,re=Di.geodeticLatitudeToMercatorAngle(me),ye=1/(Di.geodeticLatitudeToMercatorAngle(xe)-re),ge=!0)}let Ae=Cot;Ae.frameState=n,Ae.surfaceTile=i,Ae.showReflectiveOcean=S,Ae.showOceanWaves=D,Ae.enableLighting=e.enableLighting,Ae.dynamicAtmosphereLighting=e.dynamicAtmosphereLighting,Ae.dynamicAtmosphereLightingFromSun=e.dynamicAtmosphereLightingFromSun,Ae.showGroundAtmosphere=N,Ae.atmosphereLightIntensity=e.atmosphereLightIntensity,Ae.atmosphereRayleighCoefficient=e.atmosphereRayleighCoefficient,Ae.atmosphereMieCoefficient=e.atmosphereMieCoefficient,Ae.atmosphereRayleighScaleHeight=e.atmosphereRayleighScaleHeight,Ae.atmosphereMieScaleHeight=e.atmosphereMieScaleHeight,Ae.atmosphereMieAnisotropy=e.atmosphereMieAnisotropy,Ae.perFragmentGroundAtmosphere=V,Ae.hasVertexNormals=R,Ae.useWebMercatorProjection=ge,Ae.clippedByBoundaries=i.clippedByBoundaries,Ae.hasGeodeticSurfaceNormals=K,Ae.hasExaggeration=W;let De=i.imagery,Re=0,ze=De.length,ut=e.showSkirts&&!l&&!d,Vt=e.backFaceCulling&&!l&&!d,cn=Vt?e._renderState:e._disableCullingRenderState,ft=Vt?e._blendRenderState:e._disableCullingBlendRenderState,_n=cn,Mn=e._firstPassInitialColor,Ft=n.context;if(u(e._debug.boundingSphereTile)||A4(),e._materialUniformMap!==e.materialUniformMap){e._materialUniformMap=e.materialUniformMap;let he=e._drawCommands.length;for(let be=0;be<he;++be)e._uniformMaps[be]=y_e(n,e)}do{let he=0,be,Gt;if(e._drawCommands.length<=e._usedDrawCommands?(be=new Je,be.owner=t,be.cull=!1,be.boundingVolume=new se,be.orientedBoundingBox=void 0,Gt=y_e(n,e),e._drawCommands.push(be),e._uniformMaps.push(Gt)):(be=e._drawCommands[e._usedDrawCommands],Gt=e._uniformMaps[e._usedDrawCommands]),be.owner=t,++e._usedDrawCommands,t===e._debug.boundingSphereTile){let bs=Y.boundingVolume,Ts=Y.boundingSphere;u(bs)?A_e(bs,H.RED).update(n):u(Ts)&&C_e(Ts,H.RED).update(n)}let rt=Gt.properties;oe.clone(Mn,rt.initialColor),rt.oceanNormalMap=w,rt.lightingFadeDistance.x=e.lightingFadeOutDistance,rt.lightingFadeDistance.y=e.lightingFadeInDistance,rt.nightFadeDistance.x=e.nightFadeOutDistance,rt.nightFadeDistance.y=e.nightFadeInDistance,rt.atmosphereLightIntensity=e.atmosphereLightIntensity,rt.atmosphereRayleighCoefficient=e.atmosphereRayleighCoefficient,rt.atmosphereMieCoefficient=e.atmosphereMieCoefficient,rt.atmosphereRayleighScaleHeight=e.atmosphereRayleighScaleHeight,rt.atmosphereMieScaleHeight=e.atmosphereMieScaleHeight,rt.atmosphereMieAnisotropy=e.atmosphereMieAnisotropy,rt.zoomedOutOceanSpecularIntensity=e.zoomedOutOceanSpecularIntensity;let Si=l?g:p,Zi=l?p:g;u(Si)&&(oe.fromElements(Si.near,Si.nearValue,Si.far,Si.farValue,rt.frontFaceAlphaByDistance),oe.fromElements(Zi.near,Zi.nearValue,Zi.far,Zi.farValue,rt.backFaceAlphaByDistance)),oe.fromElements(b.near,b.nearValue,b.far,b.farValue,rt.undergroundColorAlphaByDistance),H.clone(x,rt.undergroundColor),rt.lambertDiffuseMultiplier=A,rt.vertexShadowDarkness=C;let Us=!u(i.vertexArray)&&u(e.fillHighlightColor)&&e.fillHighlightColor.alpha>0;Us&&H.clone(e.fillHighlightColor,rt.fillHighlightColor),rt.terrainExaggerationAndRelativeHeight.x=j,rt.terrainExaggerationAndRelativeHeight.y=$,rt.center3D=U.center,h.clone(G,rt.rtc),oe.clone(Z,rt.tileRectangle),rt.southAndNorthLatitude.x=me,rt.southAndNorthLatitude.y=xe,rt.southMercatorYAndOneOverHeight.x=re,rt.southMercatorYAndOneOverHeight.y=ye;let Lo=uot,fr=T4(t.rectangle,e.cartographicLimitRectangle),is=fot,Be=T4(t.rectangle,m);h.fromElements(v,I,M,rt.hsbShift);let Ke=t.rectangle,qe=1/Ke.width,Xe=1/Ke.height;Lo.x=(fr.west-Ke.west)*qe,Lo.y=(fr.south-Ke.south)*Xe,Lo.z=(fr.east-Ke.west)*qe,Lo.w=(fr.north-Ke.south)*Xe,oe.clone(Lo,rt.localizedCartographicLimitRectangle),is.x=(Be.west-Ke.west)*qe,is.y=(Be.south-Ke.south)*Xe,is.z=(Be.east-Ke.west)*qe,is.w=(Be.north-Ke.south)*Xe,oe.clone(is,rt.localizedTranslucencyRectangle);let ht=L&&P.fog(t._distance,n.fog.density)>P.EPSILON3;B=B&&(ht||N);let mt=!1,hn=!1,lo=!1,bo=!1,os=!1,xs=!1,No=!1,ji=!1,br=!1,Gn=!1;for(;he<s&&Re<ze;){let bs=De[Re],Ts=bs.readyImagery;if(++Re,!u(Ts)||Ts.imageryLayer.alpha===0)continue;let Ra=bs.useWebMercatorT?Ts.textureWebMercator:Ts.texture,hr=Ts.imageryLayer;u(bs.textureTranslationAndScale)||(bs.textureTranslationAndScale=hr._calculateTextureTranslationAndScale(t,bs)),rt.dayTextures[he]=Ra,rt.dayTextureTranslationAndScale[he]=bs.textureTranslationAndScale,rt.dayTextureTexCoordsRectangle[he]=bs.textureCoordinateRectangle,rt.dayTextureUseWebMercatorT[he]=bs.useWebMercatorT,rt.dayTextureAlpha[he]=hr.alpha,xs=xs||rt.dayTextureAlpha[he]!==1,rt.dayTextureNightAlpha[he]=hr.nightAlpha,No=No||rt.dayTextureNightAlpha[he]!==1,rt.dayTextureDayAlpha[he]=hr.dayAlpha,No=No||rt.dayTextureDayAlpha[he]!==1,rt.dayTextureBrightness[he]=hr.brightness,mt=mt||rt.dayTextureBrightness[he]!==oa.DEFAULT_BRIGHTNESS,rt.dayTextureContrast[he]=hr.contrast,hn=hn||rt.dayTextureContrast[he]!==oa.DEFAULT_CONTRAST,rt.dayTextureHue[he]=hr.hue,lo=lo||rt.dayTextureHue[he]!==oa.DEFAULT_HUE,rt.dayTextureSaturation[he]=hr.saturation,bo=bo||rt.dayTextureSaturation[he]!==oa.DEFAULT_SATURATION,rt.dayTextureOneOverGamma[he]=1/hr.gamma,os=os||rt.dayTextureOneOverGamma[he]!==1/oa.DEFAULT_GAMMA,rt.dayTextureSplit[he]=hr.splitDirection,ji=ji||rt.dayTextureSplit[he]!==0;let od=rt.dayTextureCutoutRectangles[he];if(u(od)||(od=rt.dayTextureCutoutRectangles[he]=new oe),oe.clone(oe.ZERO,od),u(hr.cutoutRectangle)){let Ma=T4(Ke,hr.cutoutRectangle),sn=ce.simpleIntersection(Ma,Ke,b_e);br=u(sn)||br,od.x=(Ma.west-Ke.west)*qe,od.y=(Ma.south-Ke.south)*Xe,od.z=(Ma.east-Ke.west)*qe,od.w=(Ma.north-Ke.south)*Xe}let il=rt.colorsToAlpha[he];u(il)||(il=rt.colorsToAlpha[he]=new oe);let g0=u(hr.colorToAlpha)&&hr.colorToAlphaThreshold>0;if(Gn=Gn||g0,g0){let Ma=hr.colorToAlpha;il.x=Ma.red,il.y=Ma.green,il.z=Ma.blue,il.w=hr.colorToAlphaThreshold}else il.w=-1;if(u(Ts.credits)){let Ma=Ts.credits;for(let sn=0,Se=Ma.length;sn<Se;++sn)o.addCreditToNextFrame(Ma[sn])}++he}rt.dayTextures.length=he,rt.waterMask=a,oe.clone(c,rt.waterMaskTranslationAndScale),rt.minMaxHeight.x=k.minimumHeight,rt.minMaxHeight.y=k.maximumHeight,F.clone(k.matrix,rt.scaleAndBias);let Ln=e._clippingPlanes,On=u(Ln)&&Ln.enabled&&t.isClipped;On&&(rt.clippingPlanesEdgeColor=H.clone(Ln.edgeColor,rt.clippingPlanesEdgeColor),rt.clippingPlanesEdgeWidth=Ln.edgeWidth),Ae.numberOfDayTextures=he,Ae.applyBrightness=mt,Ae.applyContrast=hn,Ae.applyHue=lo,Ae.applySaturation=bo,Ae.applyGamma=os,Ae.applyAlpha=xs,Ae.applyDayNightAlpha=No,Ae.applySplit=ji,Ae.enableFog=ht,Ae.enableClippingPlanes=On,Ae.clippingPlanes=Ln,Ae.hasImageryLayerCutout=br,Ae.colorCorrect=B,Ae.highlightFillTile=Us,Ae.colorToAlpha=Gn,Ae.showUndergroundColor=T,Ae.translucent=d;let di=i.renderedMesh.indices.length;ut||(di=i.renderedMesh.indexCountWithoutSkirts),be.shaderProgram=e._surfaceShaderSet.getShaderProgram(Ae),be.castShadows=_,be.receiveShadows=E,be.renderState=_n,be.primitiveType=Me.TRIANGLES,be.vertexArray=i.vertexArray||i.fill.vertexArray,be.count=di,be.uniformMap=Gt,be.pass=Ee.GLOBE,e._debug.wireframe&&(bot(Ft,e,t),u(i.wireframeVertexArray)&&(be.vertexArray=i.wireframeVertexArray,be.primitiveType=Me.LINES,be.count=di*2));let dr=be.boundingVolume,Vs=be.orientedBoundingBox;n.mode!==te.SCENE3D?(se.fromRectangleWithHeights2D(t.rectangle,n.mapProjection,Y.minimumHeight,Y.maximumHeight,dr),h.fromElements(dr.center.z,dr.center.x,dr.center.y,dr.center),n.mode===te.MORPHING&&(dr=se.union(Y.boundingSphere,dr,dr))):(be.boundingVolume=se.clone(Y.boundingSphere,dr),be.orientedBoundingBox=In.clone(Y.boundingVolume,Vs)),be.dirty=!0,d&&f.updateDerivedCommands(be,n),x_e(be,n),_n=ft,Mn=Aot}while(Re<ze)}var dN=Jo;function E_e(){this._enabled=!1,this._frontFaceAlpha=1,this._frontFaceAlphaByDistance=void 0,this._backFaceAlpha=1,this._backFaceAlphaByDistance=void 0,this._rectangle=ce.clone(ce.MAX_VALUE)}Object.defineProperties(E_e.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=Pt.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=Pt.clone(e,this._backFaceAlphaByDistance)}},rectangle:{get:function(){return this._rectangle},set:function(e){u(e)||(e=ce.clone(ce.MAX_VALUE)),ce.clone(e,this._rectangle)}}});var hN=E_e;function gs(){this._layers=[],this.layerAdded=new pe,this.layerRemoved=new pe,this.layerMoved=new pe,this.layerShownOrHidden=new pe}Object.defineProperties(gs.prototype,{length:{get:function(){return this._layers.length}}});gs.prototype.add=function(e,t){u(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()})};gs.prototype.addImageryProvider=function(e,t){let n=new oa(e);return this.add(n,t),n};gs.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};gs.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=[]};gs.prototype.contains=function(e){return this.indexOf(e)!==-1};gs.prototype.indexOf=function(e){return this._layers.indexOf(e)};gs.prototype.get=function(e){return this._layers[e]};function C4(e,t){return e.indexOf(t)}function S_e(e,t,n){let i=e._layers;if(t=P.clamp(t,0,i.length-1),n=P.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)}gs.prototype.raise=function(e){let t=C4(this._layers,e);S_e(this,t,t+1)};gs.prototype.lower=function(e){let t=C4(this._layers,e);S_e(this,t,t-1)};gs.prototype.raiseToTop=function(e){let t=C4(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))};gs.prototype.lowerToBottom=function(e){let t=C4(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 vot=new ce;function w_e(e,t,n,i){let o=e.globe._surface._tilesToRender,r;for(let a=0;!u(r)&&a<o.length;++a){let c=o[a];ce.contains(c.rectangle,t)&&(r=c)}if(!u(r))return;let s=r.data.imagery;for(let a=s.length-1;a>=0;--a){let c=s[a],l=c.readyImagery;if(!u(l)||!l.imageryLayer.ready)continue;let f=l.imageryLayer.imageryProvider;if(n&&!u(f.pickFeatures)||!ce.contains(l.rectangle,t))continue;let d=vot,p=1/1024;d.west=P.lerp(r.rectangle.west,r.rectangle.east,c.textureCoordinateRectangle.x-p),d.east=P.lerp(r.rectangle.west,r.rectangle.east,c.textureCoordinateRectangle.z+p),d.south=P.lerp(r.rectangle.south,r.rectangle.north,c.textureCoordinateRectangle.y-p),d.north=P.lerp(r.rectangle.south,r.rectangle.north,c.textureCoordinateRectangle.w+p),ce.contains(d,t)&&i(l)}}gs.prototype.pickImageryLayers=function(e,t){let n=t.globe.pick(e,t);if(!u(n))return;let i=t.globe.ellipsoid.cartesianToCartographic(n),o=[];if(w_e(t,i,!1,function(r){o.push(r.imageryLayer)}),o.length!==0)return o};gs.prototype.pickImageryLayerFeatures=function(e,t){let n=t.globe.pick(e,t);if(!u(n))return;let i=t.globe.ellipsoid.cartesianToCartographic(n),o=[],r=[];if(w_e(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);u(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 l=s[c],f=r[c];if(u(l)&&l.length>0)for(let d=0;d<l.length;++d){let p=l[d];p.imageryLayer=f,u(p.position)||(p.position=i),a.push(p)}}return a})};gs.prototype.queueReprojectionCommands=function(e){let t=this._layers;for(let n=0,i=t.length;n<i;++n)t[n].queueReprojectionCommands(e)};gs.prototype.cancelReprojections=function(){let e=this._layers;for(let t=0,n=e.length;t<n;++t)e[t].cancelReprojections()};gs.prototype.isDestroyed=function(){return!1};gs.prototype.destroy=function(){return this.removeAll(!0),le(this)};gs.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&&(u(i._show)&&(u(n)||(n=[]),n.push(i)),i._show=i.show);if(u(n))for(o=0,r=n.length;o<r;++o)i=n[o],this.layerShownOrHidden.raiseEvent(i,i._layerIndex,i.show)};var mN=gs;function v_e(e){this._ellipsoid=new h_(e.ellipsoid,h.ZERO)}Object.defineProperties(v_e.prototype,{ellipsoid:{get:function(){return this._ellipsoid}}});var pN=v_e;function Zc(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=$n.NONE,this._lastSelectionResultFrame=void 0,this._loadedCallbacks={},this.state=Bs.START,this.renderable=!1,this.upsampledFromParent=!1,this.data=void 0}Zc.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 Zc({tilingScheme:e,x:s,y:r,level:0});return i};Zc.prototype._updateCustomData=function(e,t,n){let i=this.customData,o,r,s;if(u(t)&&u(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],ce.contains(s,r.positionCartographic)&&i.push(r);this._frameUpdated=e}else{let a=this._parent;if(u(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],ce.contains(s,r.positionCartographic)&&i.push(r);this._frameUpdated=a._frameUpdated}}};Object.defineProperties(Zc.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 u(this._southwestChild)||(this._southwestChild=new Zc({tilingScheme:this.tilingScheme,x:this.x*2,y:this.y*2+1,level:this.level+1,parent:this})),this._southwestChild}},southeastChild:{get:function(){return u(this._southeastChild)||(this._southeastChild=new Zc({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 u(this._northwestChild)||(this._northwestChild=new Zc({tilingScheme:this.tilingScheme,x:this.x*2,y:this.y*2,level:this.level+1,parent:this})),this._northwestChild}},northeastChild:{get:function(){return u(this._northeastChild)||(this._northeastChild=new Zc({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<Bs.DONE}},eligibleForUnloading:{get:function(){let e=!0;return u(this.data)&&(e=this.data.eligibleForUnloading,u(e)||(e=!0)),e}}});Zc.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]};Zc.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};Zc.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};Zc.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};Zc.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};Zc.prototype.freeResources=function(){this.state=Bs.START,this.renderable=!1,this.upsampledFromParent=!1,u(this.data)&&u(this.data.freeResources)&&this.data.freeResources(),E4(this._southwestChild),this._southwestChild=void 0,E4(this._southeastChild),this._southeastChild=void 0,E4(this._northwestChild),this._northwestChild=void 0,E4(this._northeastChild),this._northeastChild=void 0};function E4(e){u(e)&&e.freeResources()}var _N=Zc;function S4(){this.head=void 0,this.tail=void 0,this.count=0,this._lastBeforeStartOfFrame=void 0}S4.prototype.markStartOfRenderFrame=function(){this._lastBeforeStartOfFrame=this.head};S4.prototype.trimTiles=function(e){let t=this.tail,n=!0;for(;n&&u(this._lastBeforeStartOfFrame)&&this.count>e&&u(t);){n=t!==this._lastBeforeStartOfFrame;let i=t.replacementPrevious;t.eligibleForUnloading&&(t.freeResources(),D_e(this,t)),t=i}};function D_e(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}S4.prototype.markTileRendered=function(e){let t=this.head;if(t===e){e===this._lastBeforeStartOfFrame&&(this._lastBeforeStartOfFrame=e.replacementNext);return}if(++this.count,!u(t)){e.replacementPrevious=void 0,e.replacementNext=void 0,this.head=e,this.tail=e;return}(u(e.replacementPrevious)||u(e.replacementNext))&&D_e(this,e),e.replacementPrevious=void 0,e.replacementNext=t,t.replacementPrevious=e,this.head=e};var gN=S4;function jf(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 gN,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 pN({ellipsoid:n}),this._tileLoadProgressEvent=new pe,this._lastTileLoadQueueLength=0,this._lastSelectionFrameNumber=void 0}Object.defineProperties(jf.prototype,{tileProvider:{get:function(){return this._tileProvider}},tileLoadProgressEvent:{get:function(){return this._tileLoadProgressEvent}},occluders:{get:function(){return this._occluders}}});jf.prototype.invalidateAllTiles=function(){this._tilesInvalidated=!0};function Dot(e){let t=e._tileReplacementQueue;t.head=void 0,t.tail=void 0,t.count=0,P_e(e);let n=e._levelZeroTiles;if(u(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()}jf.prototype.forEachLoadedTile=function(e){let t=this._tileReplacementQueue.head;for(;u(t);)t.state!==Bs.START&&e(t),t=t.replacementNext};jf.prototype.forEachRenderedTile=function(e){let t=this._tilesToRender;for(let n=0,i=t.length;n<i;++n)e(t[n])};jf.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};jf.prototype.update=function(e){u(this._tileProvider.update)&&this._tileProvider.update(e)};function P_e(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}jf.prototype.beginFrame=function(e){e.passes.render&&(this._tilesInvalidated&&(Dot(this),this._tilesInvalidated=!1),this._tileProvider.initialize(e),P_e(this),!this._debug.suspendLodUpdate&&this._tileReplacementQueue.markStartOfRenderFrame())};jf.prototype.render=function(e){let t=e.passes,n=this._tileProvider;t.render&&(n.beginUpdate(e),Rot(this,e),Hot(this,e),n.endUpdate(e)),t.pick&&this._tilesToRender.length>0&&n.updateForPick(e)};function Iot(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))}jf.prototype.endFrame=function(e){!e.passes.render||e.mode===te.MORPHING||(kot(this,e),zot(this,e),Iot(this,e))};jf.prototype.isDestroyed=function(){return!1};jf.prototype.destroy=function(){this._tileProvider=this._tileProvider&&this._tileProvider.destroy()};var xN,I_e=new fe;function Pot(e,t){let n=ce.center(e.rectangle,I_e),i=n.longitude-xN.longitude,o=n.latitude-xN.latitude;n=ce.center(t.rectangle,I_e);let r=n.longitude-xN.longitude,s=n.latitude-xN.latitude;return i*i+o*o-(r*r+s*s)}var Oot=new h,yN=[];function Rot(e,t){let n=e._debug;if(n.suspendLodUpdate)return;let i=e._tilesToRender;i.length=0;let o,r=e._tileProvider;if(!u(e._levelZeroTiles)){let x=r.tilingScheme;if(u(x)){let b=r.tilingScheme;e._levelZeroTiles=_N.createLevelZeroTiles(b);let T=e._levelZeroTiles.length;if(yN.length<T)for(yN=new Array(T),o=0;o<T;++o)yN[o]===void 0&&(yN[o]=new bN)}else return}e._occluders.ellipsoid.cameraPosition=t.camera.positionWC;let s,a=e._levelZeroTiles,c=a.length>1?e._occluders:void 0;xN=t.camera.positionCartographic,a.sort(Pot);let l=e._addHeightCallbacks,f=e._removeHeightCallbacks,d=t.frameNumber,p;if(l.length>0||f.length>0){for(o=0,p=a.length;o<p;++o)s=a[o],s._updateCustomData(d,l,f);l.length=0,f.length=0}let g=t.camera;e._cameraPositionCartographic=g.positionCartographic;let m=F.getTranslation(g.transform,Oot);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?Da(e,s,r,t,c,!1,yN[o]):(B_(e,e._tileLoadQueueHigh,s,t),++n.tilesWaitingForChildren);e._lastSelectionFrameNumber=d}function B_(e,t,n,i){n.needsLoading&&(e.tileProvider.computeTileLoadPriority!==void 0&&(n._loadPriority=e.tileProvider.computeTileLoadPriority(n,i)),t.push(n))}function bN(){this.allAreRenderable=!0,this.anyWereRenderedLastFrame=!1,this.notYetRenderableCount=0}function O_e(){this.southwest=new bN,this.southeast=new bN,this.northwest=new bN,this.northeast=new bN}O_e.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 dq=new Array(31);for(let e=0;e<dq.length;++e)dq[e]=new O_e;function Mot(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=Fot(e,t,n)<e.maximumScreenSpaceError,a=n.southwestChild,c=n.southeastChild,l=n.northwestChild,f=n.northeastChild,d=e._lastSelectionFrameNumber,p=n._lastSelectionResultFrame===d?n._lastSelectionResult:$n.NONE,g=e.tileProvider;if(s||i){let m=$n.originalResult(p)===$n.RENDERED,x=$n.originalResult(p)===$n.CULLED||p===$n.NONE,b=n.state===Bs.DONE,T=m||x||b;if(T||u(g.canRenderWithoutLosingDetail)&&(T=g.canRenderWithoutLosingDetail(n)),T){s&&B_(e,e._tileLoadQueueMedium,n,t),w4(e,n),o.allAreRenderable=n.renderable,o.anyWereRenderedLastFrame=p===$n.RENDERED,o.notYetRenderableCount=n.renderable?0:1,n._lastSelectionResultFrame=t.frameNumber,n._lastSelectionResult=$n.RENDERED,o.anyWereRenderedLastFrame||e._tileToUpdateHeights.push(n);return}i=!0,s&&B_(e,e._tileLoadQueueHigh,n,t)}if(g.canRefine(n)){if(a.upsampledFromParent&&c.upsampledFromParent&&l.upsampledFromParent&&f.upsampledFromParent){w4(e,n),B_(e,e._tileLoadQueueMedium,n,t),e._tileReplacementQueue.markTileRendered(a),e._tileReplacementQueue.markTileRendered(c),e._tileReplacementQueue.markTileRendered(l),e._tileReplacementQueue.markTileRendered(f),o.allAreRenderable=n.renderable,o.anyWereRenderedLastFrame=p===$n.RENDERED,o.notYetRenderableCount=n.renderable?0:1,n._lastSelectionResultFrame=t.frameNumber,n._lastSelectionResult=$n.RENDERED,o.anyWereRenderedLastFrame||e._tileToUpdateHeights.push(n);return}n._lastSelectionResultFrame=t.frameNumber,n._lastSelectionResult=$n.REFINED;let x=e._tilesToRender.length,b=e._tileLoadQueueLow.length,T=e._tileLoadQueueMedium.length,A=e._tileLoadQueueHigh.length,C=e._tileToUpdateHeights.length;if(Lot(e,a,c,l,f,t,i,o),x!==e._tilesToRender.length){let S=o.allAreRenderable,w=o.anyWereRenderedLastFrame,D=o.notYetRenderableCount,O=!1;if(!S&&!w){let R=e._tilesToRender;for(let N=x;N<R.length;++N){let _=R[N];for(;_!==void 0&&_._lastSelectionResult!==$n.KICKED&&_!==n;)_._lastSelectionResult=$n.kick(_._lastSelectionResult),_=_.parent}e._tilesToRender.length=x,e._tileToUpdateHeights.length=C,w4(e,n),n._lastSelectionResult=$n.RENDERED;let L=p===$n.RENDERED;!L&&D>e.loadingDescendantLimit&&(e._tileLoadQueueLow.length=b,e._tileLoadQueueMedium.length=T,e._tileLoadQueueHigh.length=A,B_(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&&B_(e,e._tileLoadQueueLow,n,t)}return}n._lastSelectionResultFrame=t.frameNumber,n._lastSelectionResult=$n.RENDERED,w4(e,n),B_(e,e._tileLoadQueueHigh,n,t),o.allAreRenderable=n.renderable,o.anyWereRenderedLastFrame=p===$n.RENDERED,o.notYetRenderableCount=n.renderable?0:1}function Lot(e,t,n,i,o,r,s,a){let c=r.camera.positionCartographic,l=e._tileProvider,f=e._occluders,d=dq[t.level],p=d.southwest,g=d.southeast,m=d.northwest,x=d.northeast;c.longitude<t.rectangle.east?c.latitude<t.rectangle.north?(Da(e,t,l,r,f,s,p),Da(e,n,l,r,f,s,g),Da(e,i,l,r,f,s,m),Da(e,o,l,r,f,s,x)):(Da(e,i,l,r,f,s,m),Da(e,t,l,r,f,s,p),Da(e,o,l,r,f,s,x),Da(e,n,l,r,f,s,g)):c.latitude<t.rectangle.north?(Da(e,n,l,r,f,s,g),Da(e,t,l,r,f,s,p),Da(e,o,l,r,f,s,x),Da(e,i,l,r,f,s,m)):(Da(e,o,l,r,f,s,x),Da(e,i,l,r,f,s,m),Da(e,n,l,r,f,s,g),Da(e,t,l,r,f,s,p)),d.combine(a)}function Not(e,t){let n=t.rectangle;return u(e._cameraPositionCartographic)&&ce.contains(n,e._cameraPositionCartographic)||u(e._cameraReferenceFrameOriginCartographic)&&ce.contains(n,e._cameraReferenceFrameOriginCartographic)}function Da(e,t,n,i,o,r,s){if(n.computeTileVisibility(t,i,o)!==lr.NONE)return Mot(e,i,t,r,s);if(++e._debug.tilesCulled,e._tileReplacementQueue.markTileRendered(t),s.allAreRenderable=!0,s.anyWereRenderedLastFrame=!1,s.notYetRenderableCount=0,Not(e,t)){(!u(t.data)||!u(t.data.vertexArray))&&B_(e,e._tileLoadQueueMedium,t,i);let a=e._lastSelectionFrameNumber,c=t._lastSelectionResultFrame===a?t._lastSelectionResult:$n.NONE;c!==$n.CULLED_BUT_NEEDED&&c!==$n.RENDERED&&e._tileToUpdateHeights.push(t),t._lastSelectionResult=$n.CULLED_BUT_NEEDED}else e.preloadSiblings||t.level===0?(B_(e,e._tileLoadQueueLow,t,i),t._lastSelectionResult=$n.CULLED):t._lastSelectionResult=$n.CULLED;t._lastSelectionResultFrame=i.frameNumber}function Fot(e,t,n){if(t.mode===te.SCENE2D||t.camera.frustum instanceof $t||t.camera.frustum instanceof Cr)return Bot(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-=P.fog(o,t.fog.density)*t.fog.sse),a/=t.pixelRatio,a}function Bot(e,t,n){let o=t.camera.frustum,r=o.offCenterFrustum;u(r)&&(o=r);let s=t.context,a=s.drawingBufferWidth,c=s.drawingBufferHeight,l=e._tileProvider.getLevelMaximumGeometricError(n.level),f=Math.max(o.top-o.bottom,o.right-o.left)/Math.max(a,c),d=l/f;return t.fog.enabled&&t.mode!==te.SCENE2D&&(d-=P.fog(n._distance,t.fog.density)*t.fog.sse),d/=t.pixelRatio,d}function w4(e,t){e._tilesToRender.push(t)}function kot(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=_i()+e._loadQueueTimeSlice,s=e._tileProvider,a=uq(e,t,s,r,n,!1);a=uq(e,t,s,r,i,a),uq(e,t,s,r,o,a)}function Uot(e,t){return e._loadPriority-t._loadPriority}function uq(e,t,n,i,o,r){n.computeTileLoadPriority!==void 0&&o.sort(Uot);for(let s=0,a=o.length;s<a&&(_i()<i||!r);++s){let c=o[s];e._tileReplacementQueue.markTileRendered(c),n.loadTile(t,c),r=!0}return r}var cS=new Tn,fq=new fe,Wy=new h,Vot=[];function zot(e,t){if(!u(e.tileProvider.tilingScheme))return;let n=Vot;n.length=0;let i=e._tileToUpdateHeights,o=_i(),r=e._updateHeightsTimeSlice,s=o+r,a=t.mode,c=t.mapProjection,l=e.tileProvider.tilingScheme.ellipsoid,f;for(;i.length>0;){let d=i[0];if(!u(d.data)||!u(d.data.mesh)){let x=d._lastSelectionResultFrame===e._lastSelectionFrameNumber?d._lastSelectionResult:$n.NONE;(x===$n.RENDERED||x===$n.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=u(b)&&b.wasCreatedByUpsampling();if(d.level>x.level&&!T){if(u(x.positionOnEllipsoidSurface)||(x.positionOnEllipsoidSurface=h.fromRadians(x.positionCartographic.longitude,x.positionCartographic.latitude,0,l)),a===te.SCENE3D){let C=l.geodeticSurfaceNormal(x.positionOnEllipsoidSurface,cS.direction),S=l.getSurfaceNormalIntersectionWithZAxis(x.positionOnEllipsoidSurface,11500,cS.origin);if(!u(S)){let w=0;u(d.data.tileBoundingRegion)&&(w=d.data.tileBoundingRegion.minimumHeight);let D=Math.min(w,-11500),O=h.multiplyByScalar(C,Math.abs(D)+1,Wy);h.subtract(x.positionOnEllipsoidSurface,O,cS.origin)}}else fe.clone(x.positionCartographic,fq),fq.height=-11500,c.project(fq,Wy),h.fromElements(Wy.z,Wy.x,Wy.y,Wy),h.clone(Wy,cS.origin),h.clone(h.UNIT_X,cS.direction);let A=d.data.pick(cS,a,c,!1,Wy);u(A)&&(u(x.callback)&&x.callback(A),x.level=d.level)}if(_i()>=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 Hot(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 TN=jf;function _h(e){e=y(e,ie.WGS84);let t=new Dm({ellipsoid:e}),n=new mN;this._ellipsoid=e,this._imageryLayerCollection=n,this._surfaceShaderSet=new ZL,this._material=void 0,this._surface=new TN({tileProvider:new dN({terrainProvider:t,imageryLayers:n,surfaceShaderSet:this._surfaceShaderSet})}),this._terrainProvider=t,this._terrainProviderChanged=new pe,this._undergroundColor=H.clone(H.BLACK),this._undergroundColorAlphaByDistance=new Pt(e.maximumRadius/1e3,0,e.maximumRadius/5,1),this._translucency=new hN,mq(this),this.show=!0,this._oceanNormalMapResourceDirty=!0,this._oceanNormalMapResource=new ve({url:Zt("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.terrainExaggeration=1,this.terrainExaggerationRelativeHeight=0,this.showSkirts=!0,this.backFaceCulling=!0,this._oceanNormalMap=void 0,this._zoomedOutOceanSpecularIntensity=void 0,this.vertexShadowDarkness=.3}Object.defineProperties(_h.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 u(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}},cartographicLimitRectangle:{get:function(){return this._surface.tileProvider.cartographicLimitRectangle},set:function(e){u(e)||(e=ce.clone(ce.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),u(this._material)&&mq(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,mq(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=Pt.clone(e,this._undergroundColorAlphaByDistance)}},translucency:{get:function(){return this._translucency}}});function mq(e){let t=[],n=u(e._material)&&(e._material.shaderSource.match(/slope/)||e._material.shaderSource.match("normalEC")),i=[O_,YE];u(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(XL),e._surfaceShaderSet.baseVertexShaderSource=new Ue({sources:[O_,YE,KL],defines:t}),e._surfaceShaderSet.baseFragmentShaderSource=new Ue({sources:i,defines:t}),e._surfaceShaderSet.material=e._material}function Got(e){return function(t,n){let i=se.distanceSquaredTo(t.pickBoundingSphere,e),o=se.distanceSquaredTo(n.pickBoundingSphere,e);return i-o}}var Wot=[],jot={start:0,stop:0};_h.prototype.pickWorldCoordinates=function(e,t,n,i){n=y(n,!0);let o=t.mode,r=t.mapProjection,s=Wot;s.length=0;let a=this._surface._tilesToRender,c=a.length,l,f;for(f=0;f<c;++f){l=a[f];let p=l.data;if(!u(p))continue;let g=p.pickBoundingSphere;if(o!==te.SCENE3D)p.pickBoundingSphere=g=se.fromRectangleWithHeights2D(l.rectangle,r,p.tileBoundingRegion.minimumHeight,p.tileBoundingRegion.maximumHeight,g),h.fromElements(g.center.z,g.center.x,g.center.y,g.center);else if(u(p.renderedMesh))se.clone(p.tileBoundingRegion.boundingSphere,g);else continue;let m=xi.raySphere(e,g,jot);u(m)&&s.push(p)}s.sort(Got(e.origin));let d;for(c=s.length,f=0;f<c&&(d=s[f].pick(e,t.mode,t.mapProjection,n,i),!u(d));++f);return d};var qot=new fe;_h.prototype.pick=function(e,t,n){if(n=this.pickWorldCoordinates(e,t,!0,n),u(n)&&t.mode!==te.SCENE3D){n=h.fromElements(n.y,n.z,n.x,n);let i=t.mapProjection.unproject(n,qot);n=t.globe.ellipsoid.cartographicToCartesian(i,n)}return n};var Yot=new h,R_e=new h,Xot=new fe,Kot=new Tn;function hq(e,t){return u(e)&&ce.contains(e.rectangle,t)?e:void 0}_h.prototype.getHeight=function(e){let t=this._surface._levelZeroTiles;if(!u(t))return;let n,i,o=t.length;for(i=0;i<o&&(n=t[i],!ce.contains(n.rectangle,e));++i);if(i>=o)return;let r=n;for(;u(n);)n=hq(n._southwestChild,e)||hq(n._southeastChild,e)||hq(n._northwestChild,e)||n._northeastChild,u(n)&&u(n.data)&&u(n.data.renderedMesh)&&(r=n);if(n=r,!u(n)||!u(n.data)||!u(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,Yot),l=Kot,f=a.geodeticSurfaceNormal(c,l.direction),d=a.getSurfaceNormalIntersectionWithZAxis(c,11500,l.origin);if(!u(d)){let g;u(n.data.tileBoundingRegion)&&(g=n.data.tileBoundingRegion.minimumHeight);let m=Math.min(y(g,0),-11500),x=h.multiplyByScalar(f,Math.abs(m)+1,R_e);h.subtract(c,x,l.origin)}let p=n.data.pick(l,void 0,s,!1,R_e);if(u(p))return a.cartesianToCartographic(p,Xot).height};_h.prototype.update=function(e){this.show&&e.passes.render&&this._surface.update(e)};_h.prototype.beginFrame=function(e){let t=this._surface,n=t.tileProvider,i=this.terrainProvider,o=this.showWaterEffect&&u(i)&&i.hasWaterMask&&i.hasWaterMask;if(o&&this._oceanNormalMapResourceDirty){this._oceanNormalMapResourceDirty=!1;let a=this._oceanNormalMapResource,c=a.url;if(u(c)){let l=this;a.fetchImage().then(function(f){c===l._oceanNormalMapResource.url&&(l._oceanNormalMap=l._oceanNormalMap&&l._oceanNormalMap.destroy(),l._oceanNormalMap=new It({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===te.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))};_h.prototype.render=function(e){this.show&&(u(this._material)&&this._material.update(e.context),this._surface.render(e))};_h.prototype.endFrame=function(e){this.show&&e.passes.render&&this._surface.endFrame(e)};_h.prototype.isDestroyed=function(){return!1};_h.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(),le(this)};var AN=_h;function Zot(e,t,n,i){this.rightAscension=e,this.declination=t,this.rotation=n,this.rotationRate=i}var CN=Zot;var q_e={},$ot=32.184,Qot=2451545,M_e=-.0529921,L_e=-.1059842,N_e=13.0120009,F_e=13.3407154,B_e=.9856003,k_e=26.4057084,U_e=13.064993,V_e=.3287146,z_e=1.7484877,H_e=-.1589763,G_e=.0036096,W_e=.1643573,j_e=12.9590088,pq=new J;q_e.ComputeMoon=function(e,t){u(e)||(e=J.now()),pq=J.addSeconds(e,$ot,pq);let n=J.totalDays(pq)-Qot,i=n/Zn.DAYS_PER_JULIAN_CENTURY,o=(125.045+M_e*n)*P.RADIANS_PER_DEGREE,r=(250.089+L_e*n)*P.RADIANS_PER_DEGREE,s=(260.008+N_e*n)*P.RADIANS_PER_DEGREE,a=(176.625+F_e*n)*P.RADIANS_PER_DEGREE,c=(357.529+B_e*n)*P.RADIANS_PER_DEGREE,l=(311.589+k_e*n)*P.RADIANS_PER_DEGREE,f=(134.963+U_e*n)*P.RADIANS_PER_DEGREE,d=(276.617+V_e*n)*P.RADIANS_PER_DEGREE,p=(34.226+z_e*n)*P.RADIANS_PER_DEGREE,g=(15.134+H_e*n)*P.RADIANS_PER_DEGREE,m=(119.743+G_e*n)*P.RADIANS_PER_DEGREE,x=(239.961+W_e*n)*P.RADIANS_PER_DEGREE,b=(25.053+j_e*n)*P.RADIANS_PER_DEGREE,T=Math.sin(o),A=Math.sin(r),C=Math.sin(s),S=Math.sin(a),w=Math.sin(c),D=Math.sin(l),O=Math.sin(f),R=Math.sin(d),L=Math.sin(p),N=Math.sin(g),_=Math.sin(m),E=Math.sin(x),v=Math.sin(b),I=Math.cos(o),M=Math.cos(r),B=Math.cos(s),V=Math.cos(a),U=Math.cos(c),G=Math.cos(l),k=Math.cos(f),Y=Math.cos(d),j=Math.cos(p),$=Math.cos(g),W=Math.cos(m),K=Math.cos(x),Z=Math.cos(b),me=(269.9949+.0031*i-3.8787*T-.1204*A+.07*C-.0172*S+.0072*D-.0052*N+.0043*v)*P.RADIANS_PER_DEGREE,xe=(66.5392+.013*i+1.5419*I+.0239*M-.0278*B+.0068*V-.0029*G+9e-4*k+8e-4*$-9e-4*Z)*P.RADIANS_PER_DEGREE,re=(38.3213+13.17635815*n-14e-13*n*n+3.561*T+.1208*A-.0642*C+.0158*S+.0252*w-.0066*D-.0047*O-.0046*R+.0028*L+.0052*N+.004*_+.0019*E-.0044*v)*P.RADIANS_PER_DEGREE,ye=(13.17635815-14e-13*(2*n)+3.561*I*M_e+.1208*M*L_e-.0642*B*N_e+.0158*V*F_e+.0252*U*B_e-.0066*G*k_e-.0047*k*U_e-.0046*Y*V_e+.0028*j*z_e+.0052*$*H_e+.004*W*G_e+.0019*K*W_e-.0044*Z*j_e)/86400*P.RADIANS_PER_DEGREE;return u(t)||(t=new CN),t.rightAscension=me,t.declination=xe,t.rotation=re,t.rotationRate=ye,t};var EN=q_e;function Y_e(e){(!u(e)||typeof e!="function")&&(e=EN.ComputeMoon),this._computeFunction=e}var Jot=new h,ert=new h,trt=new h;function nrt(e,t,n){let i=Jot;i.x=Math.cos(e+P.PI_OVER_TWO),i.y=Math.sin(e+P.PI_OVER_TWO),i.z=0;let o=Math.cos(t),r=trt;r.x=o*Math.cos(e),r.y=o*Math.sin(e),r.z=Math.sin(t);let s=h.cross(r,i,ert);return u(n)||(n=new Q),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 irt=new Q,ort=new Le;Y_e.prototype.evaluate=function(e,t){u(e)||(e=J.now());let n=this._computeFunction(e),i=nrt(n.rightAscension,n.declination,t),o=P.zeroToTwoPi(n.rotation),r=Le.fromAxisAngle(h.UNIT_Z,o,ort),s=Q.fromQuaternion(Le.conjugate(r,r),irt);return Q.multiply(s,i,i)};var SN=Y_e;var lS=`uniform vec3 u_radii;
  8452. uniform vec3 u_oneOverEllipsoidRadiiSquared;
  8453. in vec3 v_positionEC;
  8454. vec4 computeEllipsoidColor(czm_ray ray, float intersection, float side)
  8455. {
  8456. vec3 positionEC = czm_pointAlongRay(ray, intersection);
  8457. vec3 positionMC = (czm_inverseModelView * vec4(positionEC, 1.0)).xyz;
  8458. vec3 geodeticNormal = normalize(czm_geodeticSurfaceNormal(positionMC, vec3(0.0), u_oneOverEllipsoidRadiiSquared));
  8459. vec3 sphericalNormal = normalize(positionMC / u_radii);
  8460. vec3 normalMC = geodeticNormal * side; // normalized surface normal (always facing the viewer) in model coordinates
  8461. vec3 normalEC = normalize(czm_normal * normalMC); // normalized surface normal in eye coordinates
  8462. vec2 st = czm_ellipsoidWgs84TextureCoordinates(sphericalNormal);
  8463. vec3 positionToEyeEC = -positionEC;
  8464. czm_materialInput materialInput;
  8465. materialInput.s = st.s;
  8466. materialInput.st = st;
  8467. materialInput.str = (positionMC + u_radii) / u_radii;
  8468. materialInput.normalEC = normalEC;
  8469. materialInput.tangentToEyeMatrix = czm_eastNorthUpToEyeCoordinates(positionMC, normalEC);
  8470. materialInput.positionToEyeEC = positionToEyeEC;
  8471. czm_material material = czm_getMaterial(materialInput);
  8472. #ifdef ONLY_SUN_LIGHTING
  8473. return czm_private_phong(normalize(positionToEyeEC), material, czm_sunDirectionEC);
  8474. #else
  8475. return czm_phong(normalize(positionToEyeEC), material, czm_lightDirectionEC);
  8476. #endif
  8477. }
  8478. void main()
  8479. {
  8480. // PERFORMANCE_TODO: When dynamic branching is available, compute ratio of maximum and minimum radii
  8481. // in the vertex shader. Only when it is larger than some constant, march along the ray.
  8482. // Otherwise perform one intersection test which will be the common case.
  8483. // Test if the ray intersects a sphere with the ellipsoid's maximum radius.
  8484. // For very oblate ellipsoids, using the ellipsoid's radii for an intersection test
  8485. // may cause false negatives. This will discard fragments before marching the ray forward.
  8486. float maxRadius = max(u_radii.x, max(u_radii.y, u_radii.z)) * 1.5;
  8487. vec3 direction = normalize(v_positionEC);
  8488. vec3 ellipsoidCenter = czm_modelView[3].xyz;
  8489. float t1 = -1.0;
  8490. float t2 = -1.0;
  8491. float b = -2.0 * dot(direction, ellipsoidCenter);
  8492. float c = dot(ellipsoidCenter, ellipsoidCenter) - maxRadius * maxRadius;
  8493. float discriminant = b * b - 4.0 * c;
  8494. if (discriminant >= 0.0) {
  8495. t1 = (-b - sqrt(discriminant)) * 0.5;
  8496. t2 = (-b + sqrt(discriminant)) * 0.5;
  8497. }
  8498. if (t1 < 0.0 && t2 < 0.0) {
  8499. discard;
  8500. }
  8501. float t = min(t1, t2);
  8502. if (t < 0.0) {
  8503. t = 0.0;
  8504. }
  8505. // March ray forward to intersection with larger sphere and find
  8506. czm_ray ray = czm_ray(t * direction, direction);
  8507. vec3 ellipsoid_inverseRadii = vec3(1.0 / u_radii.x, 1.0 / u_radii.y, 1.0 / u_radii.z);
  8508. czm_raySegment intersection = czm_rayEllipsoidIntersectionInterval(ray, ellipsoidCenter, ellipsoid_inverseRadii);
  8509. if (czm_isEmpty(intersection))
  8510. {
  8511. discard;
  8512. }
  8513. // If the viewer is outside, compute outsideFaceColor, with normals facing outward.
  8514. vec4 outsideFaceColor = (intersection.start != 0.0) ? computeEllipsoidColor(ray, intersection.start, 1.0) : vec4(0.0);
  8515. // If the viewer either is inside or can see inside, compute insideFaceColor, with normals facing inward.
  8516. vec4 insideFaceColor = (outsideFaceColor.a < 1.0) ? computeEllipsoidColor(ray, intersection.stop, -1.0) : vec4(0.0);
  8517. out_FragColor = mix(insideFaceColor, outsideFaceColor, outsideFaceColor.a);
  8518. out_FragColor.a = 1.0 - (1.0 - insideFaceColor.a) * (1.0 - outsideFaceColor.a);
  8519. #if (defined(WRITE_DEPTH) && (__VERSION__ == 300 || defined(GL_EXT_frag_depth)))
  8520. t = (intersection.start != 0.0) ? intersection.start : intersection.stop;
  8521. vec3 positionEC = czm_pointAlongRay(ray, t);
  8522. vec4 positionCC = czm_projection * vec4(positionEC, 1.0);
  8523. #ifdef LOG_DEPTH
  8524. czm_writeLogDepth(1.0 + positionCC.w);
  8525. #else
  8526. float z = positionCC.z / positionCC.w;
  8527. float n = czm_depthRange.near;
  8528. float f = czm_depthRange.far;
  8529. gl_FragDepth = (z * (f - n) + f + n) * 0.5;
  8530. #endif
  8531. #endif
  8532. }
  8533. `;var uS=`in vec3 position;
  8534. uniform vec3 u_radii;
  8535. out vec3 v_positionEC;
  8536. void main()
  8537. {
  8538. // In the vertex data, the cube goes from (-1.0, -1.0, -1.0) to (1.0, 1.0, 1.0) in model coordinates.
  8539. // Scale to consider the radii. We could also do this once on the CPU when using the BoxGeometry,
  8540. // but doing it here allows us to change the radii without rewriting the vertex data, and
  8541. // allows all ellipsoids to reuse the same vertex data.
  8542. vec4 p = vec4(u_radii * position, 1.0);
  8543. v_positionEC = (czm_modelView * p).xyz; // position in eye coordinates
  8544. gl_Position = czm_modelViewProjection * p; // position in clip coordinates
  8545. // With multi-frustum, when the ellipsoid primitive is positioned on the intersection of two frustums
  8546. // and close to terrain, the terrain (writes depth) in the closest frustum can overwrite part of the
  8547. // ellipsoid (does not write depth) that was rendered in the farther frustum.
  8548. //
  8549. // Here, we clamp the depth in the vertex shader to avoid being overwritten; however, this creates
  8550. // artifacts since some fragments can be alpha blended twice. This is solved by only rendering
  8551. // the ellipsoid in the closest frustum to the viewer.
  8552. gl_Position.z = clamp(gl_Position.z, czm_depthRange.near, czm_depthRange.far);
  8553. czm_vertexLogDepth();
  8554. }
  8555. `;var _q={position:0};function v4(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 se,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 Je({owner:y(e._owner,this)}),this._pickCommand=new Je({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 rrt(e){let t=e.cache.ellipsoidPrimitive_vertexArray;if(u(t))return t;let n=hl.createGeometry(hl.fromDimensions({dimensions:new h(2,2,2),vertexFormat:Pe.POSITION_ONLY}));return t=ni.fromGeometry({context:e,geometry:n,attributeLocations:_q,bufferUsage:Ne.STATIC_DRAW,interleave:!0}),e.cache.ellipsoidPrimitive_vertexArray=t,t}v4.prototype.update=function(e){if(!this.show||e.mode!==te.SCENE3D||!u(this.center)||!u(this.radii))return;let t=e.context,n=this.material.isTranslucent(),i=this._translucent!==n;(!u(this._rs)||i)&&(this._translucent=n,this._rs=ke.fromCache({cull:{enabled:!0,face:pi.FRONT},depthTest:{enabled:this._depthTestEnabled},depthMask:!n&&t.fragmentDepth,blending:n?un.ALPHA_BLEND:void 0})),u(this._va)||(this._va=rrt(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),se.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,l=this._useLogDepth!==c;this._useLogDepth=c;let f=this._colorCommand,d,p;(s||a||i||l)&&(d=new Ue({sources:[uS]}),p=new Ue({sources:[this.material.shaderSource,lS]}),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=Yt.replaceCache({context:t,shaderProgram:this._sp,vertexShaderSource:d,fragmentShaderSource:p,attributeLocations:_q}),f.vertexArray=this._va,f.renderState=this._rs,f.shaderProgram=this._sp,f.uniformMap=gt(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;(!u(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||!u(this._pickSP)||l)&&(d=new Ue({sources:[uS]}),p=new Ue({sources:[this.material.shaderSource,lS],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=Yt.replaceCache({context:t,shaderProgram:this._pickSP,vertexShaderSource:d,fragmentShaderSource:p,attributeLocations:_q}),x.vertexArray=this._va,x.renderState=this._rs,x.shaderProgram=this._pickSP,x.uniformMap=gt(gt(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)}};v4.prototype.isDestroyed=function(){return!1};v4.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(),le(this)};var wN=v4;function vN(e){e=y(e,y.EMPTY_OBJECT);let t=e.textureUrl;u(t)||(t=Zt("Assets/Textures/moonSmall.jpg")),this.show=y(e.show,!0),this.textureUrl=t,this._ellipsoid=y(e.ellipsoid,ie.MOON),this.onlySunLighting=y(e.onlySunLighting,!0),this._ellipsoidPrimitive=new wN({radii:this.ellipsoid.radii,material:Vi.fromType(Vi.ImageType),depthTestEnabled:!1,_owner:this}),this._ellipsoidPrimitive.material.translucent=!1,this._axes=new SN}Object.defineProperties(vN.prototype,{ellipsoid:{get:function(){return this._ellipsoid}}});var D4=new Q,srt=new Q,art=new h,I4=[];vN.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;u(Rt.computeIcrfToFixedMatrix(n,D4))||Rt.computeTemeToPseudoFixedMatrix(n,D4);let i=this._axes.evaluate(n,srt);Q.transpose(i,i),Q.multiply(D4,i,i);let o=lg.computeMoonPositionInEarthInertialFrame(n,art);Q.multiplyByVector(D4,o,o),F.fromRotationTranslation(i,o,t.modelMatrix);let r=e.commandList;return e.commandList=I4,I4.length=0,t.update(e),e.commandList=r,I4.length===1?I4[0]:void 0};vN.prototype.isDestroyed=function(){return!1};vN.prototype.destroy=function(){return this._ellipsoidPrimitive=this._ellipsoidPrimitive&&this._ellipsoidPrimitive.destroy(),le(this)};var DN=vN;var gq=[],yq=[];function crt(e,t,n,i,o,r){let s=o-i+1,a=r-o,c=gq,l=yq,f,d;for(f=0;f<s;++f)c[f]=e[i+f];for(d=0;d<a;++d)l[d]=e[o+d+1];f=0,d=0;for(let p=i;p<=r;++p){let g=c[f],m=l[d];f<s&&(d>=a||t(g,m,n)<=0)?(e[p]=g,++f):d<a&&(e[p]=m,++d)}}function xq(e,t,n,i,o){if(i>=o)return;let r=Math.floor((i+o)*.5);xq(e,t,n,i,r),xq(e,t,n,r+1,o),crt(e,t,n,i,r,o)}function lrt(e,t,n){let i=e.length,o=Math.ceil(i*.5);gq.length=o,yq.length=o,xq(e,t,n,0,i-1),gq.length=0,yq.length=0}var k_=lrt;function hc(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 P4=new h;Object.defineProperties(hc.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,P4),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,P4);let a=o*o*n;s=h.add(e,h.multiplyByScalar(r,a,P4),P4)}else o=Number.MAX_VALUE;this._horizonDistance=o,this._horizonPlaneNormal=r,this._horizonPlanePosition=s,this._cameraPosition=e}}});hc.fromBoundingSphere=function(e,t,n){return u(n)?(h.clone(e.center,n._occluderPosition),n._occluderRadius=e.radius,n.cameraPosition=t,n):new hc(e,t)};var K_e=new h;hc.prototype.isPointVisible=function(e){if(this._horizonDistance!==Number.MAX_VALUE){let t=h.subtract(e,this._occluderPosition,K_e),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 urt=new h;hc.prototype.isBoundingSphereVisible=function(e){let t=h.clone(e.center,urt),n=e.radius;if(this._horizonDistance!==Number.MAX_VALUE){let i=h.subtract(t,this._occluderPosition,K_e),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 frt=new h;hc.prototype.computeVisibility=function(e){let t=h.clone(e.center),n=e.radius;if(n>this._occluderRadius)return lr.FULL;if(this._horizonDistance!==Number.MAX_VALUE){let i=h.subtract(t,this._occluderPosition,frt),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?lr.NONE:(o=this._occluderRadius+n,o=r-o*o,o>0?(o=Math.sqrt(o)+this._horizonDistance,s<o*o+n*n?lr.FULL:lr.PARTIAL):(i=h.subtract(t,this._horizonPlanePosition,i),h.dot(i,this._horizonPlaneNormal)>-n?lr.PARTIAL:lr.FULL))}}return lr.NONE};var O4=new h;hc.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,O4),O4),c=-h.dot(a,o),l=hc._anyRotationVector(o,a,c),f=hc._horizonToPlaneNormalDotProduct(e,a,c,l,n[0]);if(!f)return;let d;for(let g=1;g<s;++g){if(d=hc._horizonToPlaneNormalDotProduct(e,a,c,l,n[g]),!d)return;d<f&&(f=d)}if(f<.0017453283658983088)return;let p=r/f;return h.add(o,h.multiplyByScalar(a,p,O4),O4)};var drt=[];hc.computeOccludeePointFromRectangle=function(e,t){t=y(t,ie.WGS84);let n=ce.subsample(e,t,0,drt),i=se.fromPoints(n),o=h.ZERO;if(!h.equals(o,i.center))return hc.computeOccludeePoint(new se(o,t.minimumRadius),i.center,n)};var hrt=new h;hc._anyRotationVector=function(e,t,n){let i=h.abs(t,hrt),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 mrt=new h;hc._rotationVector=function(e,t,n,i,o){let r=h.subtract(i,e,mrt);if(r=h.normalize(r,r),h.dot(t,r)<.9999999847691291){let s=h.cross(t,r,r);if(h.magnitude(s)>P.EPSILON13)return h.normalize(s,new h)}return o};var bq=new h,prt=new h,R4=new h,X_e=new h;hc._horizonToPlaneNormalDotProduct=function(e,t,n,i,o){let r=h.clone(o,bq),s=h.clone(e.center,prt),a=e.radius,c=h.subtract(s,r,R4),l=h.magnitudeSquared(c),f=a*a;if(l<f)return!1;let d=l-f,p=Math.sqrt(d),m=1/Math.sqrt(l),b=p*m*p;c=h.normalize(c,c);let T=h.add(r,h.multiplyByScalar(c,b,X_e),X_e),A=Math.sqrt(d-b*b),C=this._rotationVector(s,t,n,r,i),S=h.fromElements(C.x*C.x*c.x+(C.x*C.y-C.z)*c.y+(C.x*C.z+C.y)*c.z,(C.x*C.y+C.z)*c.x+C.y*C.y*c.y+(C.y*C.z-C.x)*c.z,(C.x*C.z-C.y)*c.x+(C.y*C.z+C.x)*c.y+C.z*C.z*c.z,bq);S=h.normalize(S,S);let w=h.multiplyByScalar(S,A,bq);C=h.normalize(h.subtract(h.add(T,w,R4),s,R4),R4);let D=h.dot(t,C);C=h.normalize(h.subtract(h.subtract(T,w,C),s,C),C);let O=h.dot(t,C);return D<O?D:O};var IN=hc;function Om(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 es,this._perspectiveMatrix=new F,this._infinitePerspective=new F}function Tq(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(Om.prototype,{projectionMatrix:{get:function(){return Tq(this),this._perspectiveMatrix}},infiniteProjectionMatrix:{get:function(){return Tq(this),this._infinitePerspective}}});var _rt=new h,grt=new h,yrt=new h,xrt=new h;Om.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,l=this.far,f=h.cross(t,n,_rt),d=grt;h.multiplyByScalar(t,c,d),h.add(e,d,d);let p=yrt;h.multiplyByScalar(t,l,p),h.add(e,p,p);let g=xrt;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 u(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],u(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],u(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],u(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],u(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],u(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};Om.prototype.getPixelDimensions=function(e,t,n,i,o){Tq(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};Om.prototype.clone=function(e){return u(e)||(e=new Om),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};Om.prototype.equals=function(e){return u(e)&&e instanceof Om&&this.right===e.right&&this.left===e.left&&this.top===e.top&&this.bottom===e.bottom&&this.near===e.near&&this.far===e.far};Om.prototype.equalsEpsilon=function(e,t,n){return e===this||u(e)&&e instanceof Om&&P.equalsEpsilon(this.right,e.right,t,n)&&P.equalsEpsilon(this.left,e.left,t,n)&&P.equalsEpsilon(this.top,e.top,t,n)&&P.equalsEpsilon(this.bottom,e.bottom,t,n)&&P.equalsEpsilon(this.near,e.near,t,n)&&P.equalsEpsilon(this.far,e.far,t,n)};var $c=Om;function Vl(e){e=y(e,y.EMPTY_OBJECT),this._offCenterFrustum=new $c,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}Vl.packedLength=6;Vl.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};Vl.unpack=function(e,t,n){return t=y(t,0),u(n)||(n=new Vl),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 gh(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(Vl.prototype,{projectionMatrix:{get:function(){return gh(this),this._offCenterFrustum.projectionMatrix}},infiniteProjectionMatrix:{get:function(){return gh(this),this._offCenterFrustum.infiniteProjectionMatrix}},fovy:{get:function(){return gh(this),this._fovy}},sseDenominator:{get:function(){return gh(this),this._sseDenominator}},offCenterFrustum:{get:function(){return gh(this),this._offCenterFrustum}}});Vl.prototype.computeCullingVolume=function(e,t,n){return gh(this),this._offCenterFrustum.computeCullingVolume(e,t,n)};Vl.prototype.getPixelDimensions=function(e,t,n,i,o){return gh(this),this._offCenterFrustum.getPixelDimensions(e,t,n,i,o)};Vl.prototype.clone=function(e){return u(e)||(e=new Vl),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};Vl.prototype.equals=function(e){return!u(e)||!(e instanceof Vl)?!1:(gh(this),gh(e),this.fov===e.fov&&this.aspectRatio===e.aspectRatio&&this._offCenterFrustum.equals(e._offCenterFrustum))};Vl.prototype.equalsEpsilon=function(e,t,n){return!u(e)||!(e instanceof Vl)?!1:(gh(this),gh(e),P.equalsEpsilon(this.fov,e.fov,t,n)&&P.equalsEpsilon(this.aspectRatio,e.aspectRatio,t,n)&&this._offCenterFrustum.equalsEpsilon(e._offCenterFrustum,t,n))};var Ei=Vl;var PN=`in vec2 v_textureCoordinates;
  8556. const float M_PI = 3.141592653589793;
  8557. float vdcRadicalInverse(int i)
  8558. {
  8559. float r;
  8560. float base = 2.0;
  8561. float value = 0.0;
  8562. float invBase = 1.0 / base;
  8563. float invBi = invBase;
  8564. for (int x = 0; x < 100; x++)
  8565. {
  8566. if (i <= 0)
  8567. {
  8568. break;
  8569. }
  8570. r = mod(float(i), base);
  8571. value += r * invBi;
  8572. invBi *= invBase;
  8573. i = int(float(i) * invBase);
  8574. }
  8575. return value;
  8576. }
  8577. vec2 hammersley2D(int i, int N)
  8578. {
  8579. return vec2(float(i) / float(N), vdcRadicalInverse(i));
  8580. }
  8581. vec3 importanceSampleGGX(vec2 xi, float roughness, vec3 N)
  8582. {
  8583. float a = roughness * roughness;
  8584. float phi = 2.0 * M_PI * xi.x;
  8585. float cosTheta = sqrt((1.0 - xi.y) / (1.0 + (a * a - 1.0) * xi.y));
  8586. float sinTheta = sqrt(1.0 - cosTheta * cosTheta);
  8587. vec3 H = vec3(sinTheta * cos(phi), sinTheta * sin(phi), cosTheta);
  8588. vec3 upVector = abs(N.z) < 0.999 ? vec3(0.0, 0.0, 1.0) : vec3(1.0, 0.0, 0.0);
  8589. vec3 tangentX = normalize(cross(upVector, N));
  8590. vec3 tangentY = cross(N, tangentX);
  8591. return tangentX * H.x + tangentY * H.y + N * H.z;
  8592. }
  8593. float G1_Smith(float NdotV, float k)
  8594. {
  8595. return NdotV / (NdotV * (1.0 - k) + k);
  8596. }
  8597. float G_Smith(float roughness, float NdotV, float NdotL)
  8598. {
  8599. float k = roughness * roughness / 2.0;
  8600. return G1_Smith(NdotV, k) * G1_Smith(NdotL, k);
  8601. }
  8602. vec2 integrateBrdf(float roughness, float NdotV)
  8603. {
  8604. vec3 V = vec3(sqrt(1.0 - NdotV * NdotV), 0.0, NdotV);
  8605. float A = 0.0;
  8606. float B = 0.0;
  8607. const int NumSamples = 1024;
  8608. for (int i = 0; i < NumSamples; i++)
  8609. {
  8610. vec2 xi = hammersley2D(i, NumSamples);
  8611. vec3 H = importanceSampleGGX(xi, roughness, vec3(0.0, 0.0, 1.0));
  8612. vec3 L = 2.0 * dot(V, H) * H - V;
  8613. float NdotL = clamp(L.z, 0.0, 1.0);
  8614. float NdotH = clamp(H.z, 0.0, 1.0);
  8615. float VdotH = clamp(dot(V, H), 0.0, 1.0);
  8616. if (NdotL > 0.0)
  8617. {
  8618. float G = G_Smith(roughness, NdotV, NdotL);
  8619. float G_Vis = G * VdotH / (NdotH * NdotV);
  8620. float Fc = pow(1.0 - VdotH, 5.0);
  8621. A += (1.0 - Fc) * G_Vis;
  8622. B += Fc * G_Vis;
  8623. }
  8624. }
  8625. return vec2(A, B) / float(NumSamples);
  8626. }
  8627. void main()
  8628. {
  8629. out_FragColor = vec4(integrateBrdf(v_textureCoordinates.y, v_textureCoordinates.x), 0.0, 1.0);
  8630. }
  8631. `;function ON(){this._colorTexture=void 0,this._drawCommand=void 0}Object.defineProperties(ON.prototype,{colorTexture:{get:function(){return this._colorTexture}}});function brt(e,t,n){let i=t.createViewportQuadCommand(PN,{framebuffer:n,renderState:ke.fromCache({viewport:new We(0,0,256,256)})});e._drawCommand=i}ON.prototype.update=function(e){if(!u(this._colorTexture)){let t=e.context,n=new It({context:t,width:256,height:256,pixelFormat:nt.RGBA,pixelDatatype:Ye.UNSIGNED_BYTE,sampler:ln.NEAREST});this._colorTexture=n;let i=new Hs({context:t,colorTextures:[n],destroyAttachments:!1});brt(this,t,i),this._drawCommand.execute(t),i.destroy(),this._drawCommand.shaderProgram=this._drawCommand.shaderProgram&&this._drawCommand.shaderProgram.destroy()}};ON.prototype.isDestroyed=function(){return!1};ON.prototype.destroy=function(){return this._colorTexture=this._colorTexture&&this._colorTexture.destroy(),le(this)};var RN=ON;var J_e={};function Trt(e,t,n){let i,o,r;if(e instanceof Ei){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 $c)return i=e.near,o=e.top,r=e.right,Math.max(t*i/r,n*i/o);return Math.max(t,n)}var Art=new h,Z_e=new h;function ege(e,t,n,i){if(u(i)&&n(.5)>i){let o=n(0),r=n(1),s=n(.5),a=s-o,c=s-r;return function(l){let f=n(l);if(l<=.5){let p=(f-o)/a;return P.lerp(e,-P.PI_OVER_TWO,p)}let d=(f-r)/c;return P.lerp(-P.PI_OVER_TWO,t,1-d)}}return function(o){return P.lerp(e,t,o)}}function Cq(e,t,n,i,o){let r=o,s=Math.max(n,i);if(!u(r)){let a=e.position,c=t,l=e.up,f=e.right,d=e.frustum,p=h.subtract(a,c,Art),g=h.magnitude(h.multiplyByScalar(l,h.dot(p,l),Z_e)),m=h.magnitude(h.multiplyByScalar(f,h.dot(p,f),Z_e));r=Math.min(Trt(d,g,m)*.2,1e9)}if(s<r){let l=-Math.pow((r-n)*1e6,.125),f=Math.pow((r-i)*1e6,1/8);return function(d){let p=d*(f-l)+l;return-Math.pow(p,8)/1e6+r}}return function(a){return P.lerp(n,i,a)}}function MN(e,t){return P.equalsEpsilon(e,P.TWO_PI,P.EPSILON11)&&(e=0),t>e+Math.PI?e+=P.TWO_PI:t<e-Math.PI&&(e-=P.TWO_PI),e}var tge=new h;function Crt(e,t,n,i,o,r,s,a){let c=e.camera,l=h.clone(c.position,tge),f=c.pitch,d=MN(c.heading,i),p=MN(c.roll,r),g=Cq(c,n,l.z,n.z,s),m=ege(f,o,g,a);function x(b){let T=b.time/t;c.setView({orientation:{heading:P.lerp(d,i,T),pitch:m(T),roll:P.lerp(p,r,T)}}),z.lerp(l,n,T,c.position),c.position.z=g(T)}return x}function Ert(e,t){e.longitude<t.longitude?e.longitude+=P.TWO_PI:t.longitude+=P.TWO_PI}function Srt(e,t){let n=e.longitude-t.longitude;n<-P.PI?e.longitude+=P.TWO_PI:n>P.PI&&(t.longitude+=P.TWO_PI)}var wrt=new fe,vrt=new fe;function Drt(e,t,n,i,o,r,s,a,c,l){let f=e.camera,p=e.mapProjection.ellipsoid,g=fe.clone(f.positionCartographic,wrt),m=f.pitch,x=MN(f.heading,i),b=MN(f.roll,r),T=p.cartesianToCartographic(n,vrt);g.longitude=P.zeroToTwoPi(g.longitude),T.longitude=P.zeroToTwoPi(T.longitude);let A=!1;if(u(a)){let D=P.zeroToTwoPi(a),O=Math.min(g.longitude,T.longitude),R=Math.max(g.longitude,T.longitude),L=D>=O&&D<=R;if(u(c)){let N=Math.abs(g.longitude-T.longitude),_=P.TWO_PI-N;(L?N:_)<(L?_:N)*c&&!L&&(A=!0)}else L||(A=!0)}A?Ert(g,T):Srt(g,T);let C=Cq(f,n,g.height,T.height,s),S=ege(m,o,C,l);function w(){let D=g.longitude,O=T.longitude,R=g.latitude,L=T.latitude;return function(_){let E=_.time/t,v=h.fromRadians(P.lerp(D,O,E),P.lerp(R,L,E),C(E),p);f.setView({destination:v,orientation:{heading:P.lerp(x,i,E),pitch:S(E),roll:P.lerp(b,r,E)}})}}return w()}function Irt(e,t,n,i,o,r,s){let a=e.camera,c=h.clone(a.position,tge),l=MN(a.heading,i),f=a.frustum.right-a.frustum.left,d=Cq(a,n,f,n.z,s);function p(g){let m=g.time/t;a.setView({orientation:{heading:P.lerp(l,i,m)}}),z.lerp(c,n,m,a.position);let x=d(m),b=a.frustum,T=b.top/b.right,A=(x-(b.right-b.left))*.5;b.right+=A,b.left-=A,b.top=T*b.right,b.bottom=-b.top}return p}var $_e=new fe,Prt=new h;function Aq(e,t){return{startObject:{},stopObject:{},duration:0,complete:e,cancel:t}}function Q_e(e,t){function n(){typeof t=="function"&&t(),e.enableInputs=!0}return n}J_e.createTween=function(e,t){t=y(t,y.EMPTY_OBJECT);let n=t.destination,i=e.mode;if(i===te.MORPHING)return Aq();let o=y(t.convert,!0),r=e.mapProjection,s=r.ellipsoid,a=t.maximumHeight,c=t.flyOverLongitude,l=t.flyOverLongitudeWeight,f=t.pitchAdjustHeight,d=t.easingFunction;o&&i!==te.SCENE3D&&(s.cartesianToCartographic(n,$_e),n=r.project($_e,Prt));let p=e.camera,g=t.endTransform;u(g)&&p._setTransform(g);let m=t.duration;u(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,-P.PI_OVER_TWO),T=y(t.roll,0),A=e.screenSpaceCameraController;A.enableInputs=!1;let C=Q_e(A,t.complete),S=Q_e(A,t.cancel),w=p.frustum,D=e.mode===te.SCENE2D;if(D=D&&z.equalsEpsilon(p.position,n,P.EPSILON6),D=D&&P.equalsEpsilon(Math.max(w.right-w.left,w.top-w.bottom),n.z,P.EPSILON6),D=D||e.mode!==te.SCENE2D&&h.equalsEpsilon(n,p.position,P.EPSILON10),D=D&&P.equalsEpsilon(P.negativePiToPi(x),P.negativePiToPi(p.heading),P.EPSILON10)&&P.equalsEpsilon(P.negativePiToPi(b),P.negativePiToPi(p.pitch),P.EPSILON10)&&P.equalsEpsilon(P.negativePiToPi(T),P.negativePiToPi(p.roll),P.EPSILON10),D)return Aq(C,S);let O=new Array(4);if(O[te.SCENE2D]=Irt,O[te.SCENE3D]=Drt,O[te.COLUMBUS_VIEW]=Crt,m<=0)return Aq(function(){O[i](e,1,n,x,b,T,a,c,l,f)({time:1}),typeof C=="function"&&C()},S);let R=O[i](e,m,n,x,b,T,a,c,l,f);if(!u(d)){let L=p.positionCartographic.height,N=i===te.SCENE3D?s.cartesianToCartographic(n).height:n.z;L>N&&L>11500?d=kr.CUBIC_OUT:d=kr.QUINTIC_IN_OUT}return{duration:m,easingFunction:d,startObject:{time:0},stopObject:{time:m},update:R,complete:C,cancel:S}};var LN=J_e;var Ort={ROTATE:0,INFINITE_SCROLL:1},zl=Object.freeze(Ort);function Xt(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 Ei,this.frustum.aspectRatio=e.drawingBufferWidth/e.drawingBufferHeight,this.frustum.fov=P.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.percentageChanged=.5,this._viewMatrix=new F,this._invViewMatrix=new F,lge(this),this._mode=te.SCENE3D,this._modeChanged=!0;let t=e.mapProjection;this._projection=t,this._maxCoord=t.project(new fe(Math.PI,P.PI_OVER_TWO)),this._max2Dfrustum=void 0,Tge(this,Xt.DEFAULT_VIEW_RECTANGLE,this.position,!0);let n=h.magnitude(this.position);n+=n*Xt.DEFAULT_VIEW_FACTOR,h.normalize(this.position,this.position),h.multiplyByScalar(this.position,n,this.position)}Xt.TRANSFORM_2D=new F(0,0,1,0,1,0,0,0,0,1,0,0,0,0,0,1);Xt.TRANSFORM_2D_INVERSE=F.inverseTransformation(Xt.TRANSFORM_2D,new F);Xt.DEFAULT_VIEW_RECTANGLE=ce.fromDegrees(-95,-20,-70,90);Xt.DEFAULT_VIEW_FACTOR=.5;Xt.DEFAULT_OFFSET=new Bf(0,-P.PI_OVER_FOUR,0);function lge(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 Rrt(e){if(!u(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=_i()):e.timeSinceMoved=Math.max(_i()-e._lastMovedTimestamp,0)/1e3}}Xt.prototype.canPreloadFlight=function(){return u(this._currentFlight)&&this._mode!==te.SCENE2D};Xt.prototype._updateCameraChanged=function(){let e=this;if(Rrt(e),e._changed.numberOfListeners===0)return;let t=e.percentageChanged,n=e.heading;u(e._changedHeading)||(e._changedHeading=n);let i=Math.abs(e._changedHeading-n)%P.TWO_PI;i=i>P.PI?P.TWO_PI-i:i;let o=i/Math.PI;if(o>t&&(e._changed.raiseEvent(o),e._changedHeading=n),e._mode===te.SCENE2D){if(!u(e._changedFrustum)){e._changedPosition=h.clone(e.position,e._changedPosition),e._changedFrustum=e.frustum.clone();return}let l=e.position,f=e._changedPosition,d=e.frustum,p=e._changedFrustum,g=l.x+d.left,m=l.x+d.right,x=f.x+p.left,b=f.x+p.right,T=l.y+d.bottom,A=l.y+d.top,C=f.y+p.bottom,S=f.y+p.top,w=Math.max(g,x),D=Math.min(m,b),O=Math.max(T,C),R=Math.min(A,S),L;if(w>=D||O>=A)L=1;else{let N=p;g<x&&m>b&&T<C&&A>S&&(N=d),L=1-(D-w)*(R-O)/((N.right-N.left)*(N.top-N.bottom))}L>t&&(e._changed.raiseEvent(L),e._changedPosition=h.clone(e.position,e._changedPosition),e._changedFrustum=e.frustum.clone(e._changedFrustum));return}if(!u(e._changedDirection)){e._changedPosition=h.clone(e.positionWC,e._changedPosition),e._changedDirection=h.clone(e.directionWC,e._changedDirection);return}let r=P.acosClamped(h.dot(e.directionWC,e._changedDirection)),s;u(e.frustum.fovy)?s=r/(e.frustum.fovy*.5):s=r;let c=h.distance(e.positionWC,e._changedPosition)/e.positionCartographic.height;(s>t||c>t)&&(e._changed.raiseEvent(Math.max(s,c)),e._changedPosition=h.clone(e.positionWC,e._changedPosition),e._changedDirection=h.clone(e.directionWC,e._changedDirection))};function Mrt(e){Rt.basisTo2D(e._projection,e._transform,e._actualTransform)}var Lrt=new fe,Nrt=new h,M4=new h,Frt=new oe,Brt=new oe,krt=new oe,Urt=new oe,Vrt=new oe;function zrt(e){let t=e._projection,n=t.ellipsoid,i=F.getColumn(e._transform,3,Frt),o=n.cartesianToCartographic(i,Lrt),r=t.project(o,Nrt),s=Brt;s.x=r.z,s.y=r.x,s.z=r.y,s.w=1;let a=oe.clone(oe.UNIT_X,Vrt),c=oe.add(F.getColumn(e._transform,0,M4),i,M4);n.cartesianToCartographic(c,o),t.project(o,r);let l=krt;l.x=r.z,l.y=r.x,l.z=r.y,l.w=0,h.subtract(l,s,l),l.x=0;let f=Urt;if(h.magnitudeSquared(l)>P.EPSILON10)h.cross(a,l,f);else{let d=oe.add(F.getColumn(e._transform,1,M4),i,M4);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)<P.EPSILON10&&(oe.clone(oe.UNIT_Y,l),oe.clone(oe.UNIT_Z,f))}h.cross(f,a,l),h.normalize(l,l),h.cross(a,l,f),h.normalize(f,f),F.setColumn(e._actualTransform,0,l,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 Eq=new h;function pc(e){let t=e._mode,n=!1,i=0;t===te.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,l=!h.equals(c,e.up);l&&(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===te.COLUMBUS_VIEW||e._mode===te.SCENE2D?F.equals(F.IDENTITY,e._transform)?F.clone(Xt.TRANSFORM_2D,e._actualTransform):e._mode===te.COLUMBUS_VIEW?Mrt(e):zrt(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===te.SCENE3D||t===te.MORPHING)e._positionCartographic=e._projection.ellipsoid.cartesianToCartographic(e._positionWC,e._positionCartographic);else{let m=Eq;m.x=e._positionWC.y,m.y=e._positionWC.z,m.z=e._positionWC.x,t===te.SCENE2D&&(m.z=i),e._projection.unproject(m,e._positionCartographic)}if(a||l||d){let m=h.dot(s,h.cross(c,f,Eq));if(Math.abs(1-m)>P.EPSILON2){let x=1/h.magnitudeSquared(c),b=h.dot(c,s)*x,T=h.multiplyByScalar(s,b,Eq);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)),(l||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||l||d||p)&&lge(e)}function uge(e,t){let n;return P.equalsEpsilon(Math.abs(e.z),1,P.EPSILON3)?n=Math.atan2(t.y,t.x)-P.PI_OVER_TWO:n=Math.atan2(e.y,e.x)-P.PI_OVER_TWO,P.TWO_PI-P.zeroToTwoPi(n)}function fge(e){return P.PI_OVER_TWO-P.acosClamped(e.z)}function dge(e,t,n){let i=0;return P.equalsEpsilon(Math.abs(e.z),1,P.EPSILON3)||(i=Math.atan2(-n.z,t.z),i=P.zeroToTwoPi(i+P.TWO_PI)),i}var F4=new F,B4=new F;Object.defineProperties(Xt.prototype,{transform:{get:function(){return this._transform}},inverseTransform:{get:function(){return pc(this),this._invTransform}},viewMatrix:{get:function(){return pc(this),this._viewMatrix}},inverseViewMatrix:{get:function(){return pc(this),this._invViewMatrix}},positionCartographic:{get:function(){return pc(this),this._positionCartographic}},positionWC:{get:function(){return pc(this),this._positionWC}},directionWC:{get:function(){return pc(this),this._directionWC}},upWC:{get:function(){return pc(this),this._upWC}},rightWC:{get:function(){return pc(this),this._rightWC}},heading:{get:function(){if(this._mode!==te.MORPHING){let e=this._projection.ellipsoid,t=F.clone(this._transform,F4),n=Rt.eastNorthUpToFixedFrame(this.positionWC,e,B4);this._setTransform(n);let i=uge(this.direction,this.up);return this._setTransform(t),i}}},pitch:{get:function(){if(this._mode!==te.MORPHING){let e=this._projection.ellipsoid,t=F.clone(this._transform,F4),n=Rt.eastNorthUpToFixedFrame(this.positionWC,e,B4);this._setTransform(n);let i=fge(this.direction);return this._setTransform(t),i}}},roll:{get:function(){if(this._mode!==te.MORPHING){let e=this._projection.ellipsoid,t=F.clone(this._transform,F4),n=Rt.eastNorthUpToFixedFrame(this.positionWC,e,B4);this._setTransform(n);let i=dge(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}}});Xt.prototype.update=function(e){let t=!1;if(e!==this._mode&&(this._mode=e,this._modeChanged=e!==te.MORPHING,t=this._mode===te.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===te.SCENE2D&&_ge(this,this.position)};var Hrt=new h,Grt=new h,Wrt=new h;Xt.prototype._setTransform=function(e){let t=h.clone(this.positionWC,Hrt),n=h.clone(this.upWC,Grt),i=h.clone(this.directionWC,Wrt);F.clone(e,this._transform),this._transformChanged=!0,pc(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),pc(this)};var jrt=new z,qrt=new Tn,Yrt=new h,Xrt=new h;function hge(e){if(!F.equals(F.IDENTITY,e.transform))return h.magnitude(e.position);let t=e._scene,n=t.globe,i=jrt;i.x=t.drawingBufferWidth/2,i.y=t.drawingBufferHeight/2;let o;if(u(n)){let a=e.getPickRay(i,qrt);o=n.pickWorldCoordinates(a,t,!0,Yrt)}let r;t.pickPositionSupported&&(r=t.pickPositionWorldCoordinates(i,Xrt));let s;if(u(o)||u(r)){let a=u(r)?h.distance(r,e.positionWC):Number.POSITIVE_INFINITY,c=u(o)?h.distance(o,e.positionWC):Number.POSITIVE_INFINITY;s=Math.min(a,c)}else s=Math.max(e.positionCartographic.height,0);return s}Xt.prototype._adjustOrthographicFrustum=function(e){this.frustum instanceof $t&&(!e&&this._positionCartographic.height<15e4||(this.frustum.width=hge(this)))};var k4=new h,Iq=new F,Krt=new F,Pq=new Le,Oq=new Q,mge=new fe;function Zrt(e,t,n){let i=F.clone(e.transform,Iq),o=Rt.eastNorthUpToFixedFrame(t,e._projection.ellipsoid,Krt);e._setTransform(o),h.clone(h.ZERO,e.position),n.heading=n.heading-P.PI_OVER_TWO;let r=Le.fromHeadingPitchRoll(n,Pq),s=Q.fromQuaternion(r,Oq);Q.getColumn(s,0,e.direction),Q.getColumn(s,2,e.up),h.cross(e.direction,e.up,e.right),e._setTransform(i),e._adjustOrthographicFrustum(!0)}function $rt(e,t,n,i){let o=F.clone(e.transform,Iq);if(e._setTransform(F.IDENTITY),!h.equals(t,e.positionWC)){if(i){let a=e._projection,c=a.ellipsoid.cartesianToCartographic(t,mge);t=a.project(c,k4)}h.clone(t,e.position)}n.heading=n.heading-P.PI_OVER_TWO;let r=Le.fromHeadingPitchRoll(n,Pq),s=Q.fromQuaternion(r,Oq);Q.getColumn(s,0,e.direction),Q.getColumn(s,2,e.up),h.cross(e.direction,e.up,e.right),e._setTransform(o),e._adjustOrthographicFrustum(!0)}function Qrt(e,t,n,i){let o=F.clone(e.transform,Iq);if(e._setTransform(F.IDENTITY),!h.equals(t,e.positionWC)){if(i){let c=e._projection,l=c.ellipsoid.cartesianToCartographic(t,mge);t=c.project(l,k4)}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===zl.ROTATE){n.heading=n.heading-P.PI_OVER_TWO,n.pitch=-P.PI_OVER_TWO,n.roll=0;let r=Le.fromHeadingPitchRoll(n,Pq),s=Q.fromQuaternion(r,Oq);Q.getColumn(s,2,e.up),h.cross(e.direction,e.up,e.right)}e._setTransform(o)}var Jrt=new h,est=new h,tst=new h;function pge(e,t,n,i){let o=h.clone(n.direction,Jrt),r=h.clone(n.up,est);if(e._scene.mode===te.SCENE3D){let a=e._projection.ellipsoid,c=Rt.eastNorthUpToFixedFrame(t,a,F4),l=F.inverseTransformation(c,B4);F.multiplyByPointAsVector(l,o,o),F.multiplyByPointAsVector(l,r,r)}let s=h.cross(o,r,tst);return i.heading=uge(o,r),i.pitch=fge(o),i.roll=dge(o,r,s),i}var Dq={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},fS=new za;Xt.prototype.setView=function(e){e=y(e,y.EMPTY_OBJECT);let t=y(e.orientation,y.EMPTY_OBJECT),n=this._mode;if(n===te.MORPHING)return;u(e.endTransform)&&this._setTransform(e.endTransform);let i=y(e.convert,!0),o=y(e.destination,h.clone(this.positionWC,k4));u(o)&&u(o.west)&&(o=this.getRectangleCameraCoordinates(o,k4),i=!1),u(t.direction)&&(t=pge(this,o,t,Dq.orientation)),fS.heading=y(t.heading,0),fS.pitch=y(t.pitch,-P.PI_OVER_TWO),fS.roll=y(t.roll,0),n===te.SCENE3D?Zrt(this,o,fS):n===te.SCENE2D?Qrt(this,o,fS,i):$rt(this,o,fS,i)};var nst=new h;Xt.prototype.flyHome=function(e){let t=this._mode;if(t===te.MORPHING&&this._scene.completeMorph(),t===te.SCENE2D)this.flyTo({destination:Xt.DEFAULT_VIEW_RECTANGLE,duration:e,endTransform:F.IDENTITY});else if(t===te.SCENE3D){let n=this.getRectangleCameraCoordinates(Xt.DEFAULT_VIEW_RECTANGLE),i=h.magnitude(n);i+=i*Xt.DEFAULT_VIEW_FACTOR,h.normalize(n,n),h.multiplyByScalar(n,i,n),this.flyTo({destination:n,duration:e,endTransform:F.IDENTITY})}else if(t===te.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,nst).z),roll:0},endTransform:F.IDENTITY,convert:!1})}};Xt.prototype.worldToCameraCoordinates=function(e,t){return u(t)||(t=new oe),pc(this),F.multiplyByVector(this._actualInvTransform,e,t)};Xt.prototype.worldToCameraCoordinatesPoint=function(e,t){return u(t)||(t=new h),pc(this),F.multiplyByPoint(this._actualInvTransform,e,t)};Xt.prototype.worldToCameraCoordinatesVector=function(e,t){return u(t)||(t=new h),pc(this),F.multiplyByPointAsVector(this._actualInvTransform,e,t)};Xt.prototype.cameraToWorldCoordinates=function(e,t){return u(t)||(t=new oe),pc(this),F.multiplyByVector(this._actualTransform,e,t)};Xt.prototype.cameraToWorldCoordinatesPoint=function(e,t){return u(t)||(t=new h),pc(this),F.multiplyByPoint(this._actualTransform,e,t)};Xt.prototype.cameraToWorldCoordinatesVector=function(e,t){return u(t)||(t=new h),pc(this),F.multiplyByPointAsVector(this._actualTransform,e,t)};function _ge(e,t){let n=e._scene.mapMode2D===zl.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 nge=new h;Xt.prototype.move=function(e,t){let n=this.position;h.multiplyByScalar(e,t,nge),h.add(n,nge,n),this._mode===te.SCENE2D&&_ge(this,n),this._adjustOrthographicFrustum(!0)};Xt.prototype.moveForward=function(e){e=y(e,this.defaultMoveAmount),this._mode===te.SCENE2D?U4(this,e):this.move(this.direction,e)};Xt.prototype.moveBackward=function(e){e=y(e,this.defaultMoveAmount),this._mode===te.SCENE2D?U4(this,-e):this.move(this.direction,-e)};Xt.prototype.moveUp=function(e){e=y(e,this.defaultMoveAmount),this.move(this.up,e)};Xt.prototype.moveDown=function(e){e=y(e,this.defaultMoveAmount),this.move(this.up,-e)};Xt.prototype.moveRight=function(e){e=y(e,this.defaultMoveAmount),this.move(this.right,e)};Xt.prototype.moveLeft=function(e){e=y(e,this.defaultMoveAmount),this.move(this.right,-e)};Xt.prototype.lookLeft=function(e){e=y(e,this.defaultLookAmount),this._mode!==te.SCENE2D&&this.look(this.up,-e)};Xt.prototype.lookRight=function(e){e=y(e,this.defaultLookAmount),this._mode!==te.SCENE2D&&this.look(this.up,e)};Xt.prototype.lookUp=function(e){e=y(e,this.defaultLookAmount),this._mode!==te.SCENE2D&&this.look(this.right,-e)};Xt.prototype.lookDown=function(e){e=y(e,this.defaultLookAmount),this._mode!==te.SCENE2D&&this.look(this.right,e)};var ist=new Le,ost=new Q;Xt.prototype.look=function(e,t){let n=y(t,this.defaultLookAmount),i=Le.fromAxisAngle(e,-n,ist),o=Q.fromQuaternion(i,ost),r=this.direction,s=this.up,a=this.right;Q.multiplyByVector(o,r,r),Q.multiplyByVector(o,s,s),Q.multiplyByVector(o,a,a)};Xt.prototype.twistLeft=function(e){e=y(e,this.defaultLookAmount),this.look(this.direction,e)};Xt.prototype.twistRight=function(e){e=y(e,this.defaultLookAmount),this.look(this.direction,-e)};var rst=new Le,sst=new Q;Xt.prototype.rotate=function(e,t){let n=y(t,this.defaultRotateAmount),i=Le.fromAxisAngle(e,-n,rst),o=Q.fromQuaternion(i,sst);Q.multiplyByVector(o,this.position,this.position),Q.multiplyByVector(o,this.direction,this.direction),Q.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)};Xt.prototype.rotateDown=function(e){e=y(e,this.defaultRotateAmount),gge(this,e)};Xt.prototype.rotateUp=function(e){e=y(e,this.defaultRotateAmount),gge(this,-e)};var ast=new h,cst=new h,lst=new h,ige=new h;function gge(e,t){let n=e.position;if(u(e.constrainedAxis)&&!h.equalsEpsilon(e.position,h.ZERO,P.EPSILON2)){let i=h.normalize(n,ast),o=h.equalsEpsilon(i,e.constrainedAxis,P.EPSILON2),r=h.equalsEpsilon(i,h.negate(e.constrainedAxis,ige),P.EPSILON2);if(!o&&!r){let s=h.normalize(e.constrainedAxis,cst),a=h.dot(i,s),c=P.acosClamped(a);t>0&&t>c&&(t=c-P.EPSILON4),a=h.dot(i,h.negate(s,ige)),c=P.acosClamped(a),t<0&&-t>c&&(t=-c+P.EPSILON4);let l=h.cross(s,i,lst);e.rotate(l,t)}else(o&&t<0||r&&t>0)&&e.rotate(e.right,t)}else e.rotate(e.right,t)}Xt.prototype.rotateRight=function(e){e=y(e,this.defaultRotateAmount),yge(this,-e)};Xt.prototype.rotateLeft=function(e){e=y(e,this.defaultRotateAmount),yge(this,e)};function yge(e,t){u(e.constrainedAxis)?e.rotate(e.constrainedAxis,t):e.rotate(e.up,t)}function U4(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===zl.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===zl.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 xge(e,t){e.move(e.direction,t)}Xt.prototype.zoomIn=function(e){e=y(e,this.defaultZoomAmount),this._mode===te.SCENE2D?U4(this,e):xge(this,e)};Xt.prototype.zoomOut=function(e){e=y(e,this.defaultZoomAmount),this._mode===te.SCENE2D?U4(this,-e):xge(this,-e)};Xt.prototype.getMagnitude=function(){if(this._mode===te.SCENE3D)return h.magnitude(this.position);if(this._mode===te.COLUMBUS_VIEW)return Math.abs(this.position.z);if(this._mode===te.SCENE2D)return Math.max(this.frustum.right-this.frustum.left,this.frustum.top-this.frustum.bottom)};var ust=new F;Xt.prototype.lookAt=function(e,t){let n=Rt.eastNorthUpToFixedFrame(e,ie.WGS84,ust);this.lookAtTransform(n,t)};var fst=new h,dst=new Le,hst=new Le,mst=new Q;function bge(e,t,n){t=P.clamp(t,-P.PI_OVER_TWO,P.PI_OVER_TWO),e=P.zeroToTwoPi(e)-P.PI_OVER_TWO;let i=Le.fromAxisAngle(h.UNIT_Y,-t,dst),o=Le.fromAxisAngle(h.UNIT_Z,-e,hst),r=Le.multiply(o,i,o),s=Q.fromQuaternion(r,mst),a=h.clone(h.UNIT_X,fst);return Q.multiplyByVector(s,a,a),h.negate(a,a),h.multiplyByScalar(a,n,a),a}Xt.prototype.lookAtTransform=function(e,t){if(this._setTransform(e),!u(t))return;let n;if(u(t.heading)?n=bge(t.heading,t.pitch,t.range):n=t,this._mode===te.SCENE2D){z.clone(z.ZERO,this.position),h.negate(n,this.up),this.up.z=0,h.magnitudeSquared(this.up)<P.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)<P.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 NN=new fe,pst=new fe,_st=new h,gst=new h,yst=new h,xst=new h,bst=new h,Tst=new h,Ast=new h,Sq=new h,Cst={direction:new h,right:new h,up:new h},oge;function mc(e,t,n,i){return Math.abs(h.dot(t,n))/i-h.dot(e,n)}function Tge(e,t,n,i){let o=e._projection.ellipsoid,r=i?e:Cst,s=t.north,a=t.south,c=t.east,l=t.west;l>c&&(c+=P.TWO_PI);let f=(l+c)*.5,d;if(a<-P.PI_OVER_TWO+P.RADIANS_PER_DEGREE&&s>P.PI_OVER_TWO-P.RADIANS_PER_DEGREE)d=0;else{let L=NN;L.longitude=f,L.latitude=s,L.height=0;let N=pst;N.longitude=f,N.latitude=a,N.height=0;let _=oge;(!u(_)||_.ellipsoid!==o)&&(oge=_=new nf(void 0,void 0,o)),_.setEndPoints(L,N),d=_.interpolateUsingFraction(.5,NN).latitude}let p=NN;p.longitude=f,p.latitude=d,p.height=0;let g=o.cartographicToCartesian(p,Ast),m=NN;m.longitude=c,m.latitude=s;let x=o.cartographicToCartesian(m,_st);m.longitude=l;let b=o.cartographicToCartesian(m,yst);m.longitude=f;let T=o.cartographicToCartesian(m,bst);m.latitude=a;let A=o.cartographicToCartesian(m,Tst);m.longitude=c;let C=o.cartographicToCartesian(m,xst);m.longitude=l;let S=o.cartographicToCartesian(m,gst);h.subtract(b,g,b),h.subtract(C,g,C),h.subtract(x,g,x),h.subtract(S,g,S),h.subtract(T,g,T),h.subtract(A,g,A);let w=o.geodeticSurfaceNormal(g,r.direction);h.negate(w,w);let D=h.cross(w,h.UNIT_Z,r.right);h.normalize(D,D);let O=h.cross(D,w,r.up),R;if(e.frustum instanceof $t){let L=Math.max(h.distance(x,b),h.distance(C,S)),N=Math.max(h.distance(x,C),h.distance(b,S)),_,E,v=e.frustum._offCenterFrustum,I=v.right/v.top,M=N*I;L>M?(_=L,E=_/I):(E=N,_=M),R=Math.max(_,E)}else{let L=Math.tan(e.frustum.fovy*.5),N=e.frustum.aspectRatio*L;if(R=Math.max(mc(w,O,b,L),mc(w,O,C,L),mc(w,O,x,L),mc(w,O,S,L),mc(w,O,T,L),mc(w,O,A,L),mc(w,D,b,N),mc(w,D,C,N),mc(w,D,x,N),mc(w,D,S,N),mc(w,D,T,N),mc(w,D,A,N)),a<0&&s>0){let _=NN;_.longitude=l,_.latitude=0,_.height=0;let E=o.cartographicToCartesian(_,Sq);h.subtract(E,g,E),R=Math.max(R,mc(w,O,E,L),mc(w,D,E,N)),_.longitude=c,E=o.cartographicToCartesian(_,Sq),h.subtract(E,g,E),R=Math.max(R,mc(w,O,E,L),mc(w,D,E,N))}}return h.add(g,h.multiplyByScalar(w,-R,Sq),n)}var Est=new fe,Sst=new h,wst=new h;function vst(e,t,n){let i=e._projection;t.west>t.east&&(t=ce.MAX_VALUE);let o=e._actualTransform,r=e._actualInvTransform,s=Est;s.longitude=t.east,s.latitude=t.north;let a=i.project(s,Sst);F.multiplyByPoint(o,a,a),F.multiplyByPoint(r,a,a),s.longitude=t.west,s.latitude=t.south;let c=i.project(s,wst);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,u(e.frustum.fovy)){let l=Math.tan(e.frustum.fovy*.5),f=e.frustum.aspectRatio*l;n.z=Math.max((a.x-c.x)/f,(a.y-c.y)/l)*.5}else{let l=a.x-c.x,f=a.y-c.y;n.z=Math.max(l,f)}return n}var Dst=new fe,Ist=new h,Pst=new h;function Ost(e,t,n){let i=e._projection,o=t.east;t.west>t.east&&(e._scene.mapMode2D===zl.INFINITE_SCROLL?o+=P.TWO_PI:(t=ce.MAX_VALUE,o=t.east));let r=Dst;r.longitude=o,r.latitude=t.north;let s=i.project(r,Ist);r.longitude=t.west,r.latitude=t.south;let a=i.project(r,Pst),c=Math.abs(s.x-a.x)*.5,l=Math.abs(s.y-a.y)*.5,f,d,p=e.frustum.right/e.frustum.top,g=l*p;return c>g?(f=c,d=f/p):(d=l,f=g),l=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=l,n=i.project(r,n),n}Xt.prototype.getRectangleCameraCoordinates=function(e,t){let n=this._mode;if(u(t)||(t=new h),n===te.SCENE3D)return Tge(this,e,t);if(n===te.COLUMBUS_VIEW)return vst(this,e,t);if(n===te.SCENE2D)return Ost(this,e,t)};var Rst=new Tn;function Mst(e,t,n,i){n=y(n,ie.WGS84);let o=e.getPickRay(t,Rst),r=xi.rayEllipsoid(o,n);if(!r)return;let s=r.start>0?r.start:r.stop;return Tn.getPoint(o,s,i)}var Lst=new Tn;function Nst(e,t,n,i){let r=e.getPickRay(t,Lst).origin;r=h.fromElements(r.y,r.z,0,r);let s=n.unproject(r);if(!(s.latitude<-P.PI_OVER_TWO||s.latitude>P.PI_OVER_TWO))return n.ellipsoid.cartographicToCartesian(s,i)}var Fst=new Tn;function Bst(e,t,n,i){let o=e.getPickRay(t,Fst),r=-o.origin.x/o.direction.x;Tn.getPoint(o,r,i);let s=n.unproject(new h(i.y,i.z,0));if(!(s.latitude<-P.PI_OVER_TWO||s.latitude>P.PI_OVER_TWO||s.longitude<-Math.PI||s.longitude>Math.PI))return n.ellipsoid.cartographicToCartesian(s,i)}Xt.prototype.pickEllipsoid=function(e,t,n){let i=this._scene.canvas;if(!(i.clientWidth===0||i.clientHeight===0)){if(u(n)||(n=new h),t=y(t,ie.WGS84),this._mode===te.SCENE3D)n=Mst(this,e,t,n);else if(this._mode===te.SCENE2D)n=Nst(this,e,this._projection,n);else if(this._mode===te.COLUMBUS_VIEW)n=Bst(this,e,this._projection,n);else return;return n}};var kst=new h,Ust=new h,Vst=new h;function zst(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,l=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,kst);h.add(d,p,p);let g=h.multiplyByScalar(e.rightWC,l*c*a,Ust),m=h.multiplyByScalar(e.upWC,f*c*s,Vst),x=h.add(p,g,n.direction);return h.add(x,m,x),h.subtract(x,d,x),h.normalize(x,x),n}var L4=new h;function Hst(e,t,n){let i=e._scene.canvas,o=i.clientWidth,r=i.clientHeight,s=e.frustum,a=s.offCenterFrustum;u(a)&&(s=a);let c=2/o*t.x-1;c*=(s.right-s.left)*.5;let l=2/r*(r-t.y)-1;l*=(s.top-s.bottom)*.5;let f=n.origin;return h.clone(e.position,f),h.multiplyByScalar(e.right,c,L4),h.add(L4,f,f),h.multiplyByScalar(e.up,l,L4),h.add(L4,f,f),h.clone(e.directionWC,n.direction),(e._mode===te.COLUMBUS_VIEW||e._mode===te.SCENE2D)&&h.fromElements(n.origin.z,n.origin.x,n.origin.y,n.origin),n}Xt.prototype.getPickRay=function(e,t){u(t)||(t=new Tn);let n=this._scene.canvas;if(n.clientWidth<=0||n.clientHeight<=0)return;let i=this.frustum;return u(i.aspectRatio)&&u(i.fov)&&u(i.near)?zst(this,e,t):Hst(this,e,t)};var Gst=new h,Wst=new h;Xt.prototype.distanceToBoundingSphere=function(e){let t=h.subtract(this.positionWC,e.center,Gst),n=h.multiplyByScalar(this.directionWC,h.dot(t,this.directionWC),Wst);return Math.max(0,h.magnitude(n)-e.radius)};var jst=new z;Xt.prototype.getPixelSize=function(e,t,n){let i=this.distanceToBoundingSphere(e),o=this.frustum.getPixelDimensions(t,n,i,this._scene.pixelRatio,jst);return Math.max(o.x,o.y)};function qst(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 l=h.lerp(t,s,c.time,new h);e.worldToCameraCoordinatesPoint(l,e.position)}return{easingFunction:kr.EXPONENTIAL_OUT,startObject:{time:0},stopObject:{time:1},duration:r,update:a}}var Yst=new h,rge=new h,Xst=new h,Kst=new h;function Zst(e,t){let n=e.position,i=e.direction,o=e.worldToCameraCoordinatesVector(h.UNIT_X,Yst),r=-h.dot(o,n)/h.dot(o,i),s=h.add(n,h.multiplyByScalar(i,r,rge),rge);e.cameraToWorldCoordinatesPoint(s,s),n=e.cameraToWorldCoordinatesPoint(e.position,Xst);let a=Math.tan(e.frustum.fovy*.5),c=e.frustum.aspectRatio*a,l=h.magnitude(h.subtract(n,s,Kst)),f=c*l,d=a*l,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 qst(e,n,s,m,x,t)}}Xt.prototype.createCorrectPositionTween=function(e){if(this._mode===te.COLUMBUS_VIEW)return Zst(this,e)};var $st=new h,ks={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};Xt.prototype.cancelFlight=function(){u(this._currentFlight)&&(this._currentFlight.cancelTween(),this._currentFlight=void 0)};Xt.prototype.completeFlight=function(){if(u(this._currentFlight)){this._currentFlight.cancelTween();let e={destination:void 0,orientation:{heading:void 0,pitch:void 0,roll:void 0}};e.destination=ks.destination,e.orientation.heading=ks.heading,e.orientation.pitch=ks.pitch,e.orientation.roll=ks.roll,this.setView(e),u(this._currentFlight.complete)&&this._currentFlight.complete(),this._currentFlight=void 0}};Xt.prototype.flyTo=function(e){e=y(e,y.EMPTY_OBJECT);let t=e.destination;if(this._mode===te.MORPHING)return;this.cancelFlight();let i=t instanceof ce;i&&(t=this.getRectangleCameraCoordinates(t,$st));let o=y(e.orientation,y.EMPTY_OBJECT);if(u(o.direction)&&(o=pge(this,t,o,Dq.orientation)),u(e.duration)&&e.duration<=0){let f=Dq;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;ks.destination=t,ks.heading=o.heading,ks.pitch=o.pitch,ks.roll=o.roll,ks.duration=e.duration,ks.complete=function(){s===r._currentFlight&&(r._currentFlight=void 0),u(e.complete)&&e.complete()},ks.cancel=e.cancel,ks.endTransform=e.endTransform,ks.convert=i?!1:e.convert,ks.maximumHeight=e.maximumHeight,ks.pitchAdjustHeight=e.pitchAdjustHeight,ks.flyOverLongitude=e.flyOverLongitude,ks.flyOverLongitudeWeight=e.flyOverLongitudeWeight,ks.easingFunction=e.easingFunction;let a=this._scene,c=LN.createTween(a,ks);if(c.duration===0){typeof c.complete=="function"&&c.complete();return}s=a.tweens.add(c),this._currentFlight=s;let l=this._scene.preloadFlightCamera;this._mode!==te.SCENE2D&&(u(l)||(l=Xt.clone(this)),l.setView({destination:t,orientation:o}),this._scene.preloadFlightCullingVolume=l.frustum.computeCullingVolume(l.positionWC,l.directionWC,l.upWC))};function Qst(e,t){let n=e.frustum,i=Math.tan(n.fovy*.5),o=n.aspectRatio*i;return Math.max(t/o,t/i)}function Jst(e,t){let n=e.frustum,i=n.offCenterFrustum;u(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 eat=100;function Age(e,t,n){n=Bf.clone(u(n)?n:Xt.DEFAULT_OFFSET);let i=e._scene.screenSpaceCameraController.minimumZoomDistance,o=e._scene.screenSpaceCameraController.maximumZoomDistance,r=n.range;if(!u(r)||r===0){let s=t.radius;s===0?n.range=eat:e.frustum instanceof $t||e._mode===te.SCENE2D?n.range=Jst(e,s):n.range=Qst(e,s),n.range=P.clamp(n.range,i,o)}return n}Xt.prototype.viewBoundingSphere=function(e,t){t=Age(this,e,t),this.lookAt(e.center,t)};var tat=new F,nat=new h,iat=new h,oat=new h,rat=new h,sat=new oe,aat=new Le,cat=new Q;Xt.prototype.flyToBoundingSphere=function(e,t){t=y(t,y.EMPTY_OBJECT);let n=this._mode===te.SCENE2D||this._mode===te.COLUMBUS_VIEW;this._setTransform(F.IDENTITY);let i=Age(this,e,t.offset),o;n?o=h.multiplyByScalar(h.UNIT_Z,i.range,nat):o=bge(i.heading,i.pitch,i.range);let r=Rt.eastNorthUpToFixedFrame(e.center,ie.WGS84,tat);F.multiplyByPoint(r,o,o);let s,a;if(!n){if(s=h.subtract(e.center,o,iat),h.normalize(s,s),a=F.multiplyByPointAsVector(r,h.UNIT_Z,oat),1-Math.abs(h.dot(s,a))<P.EPSILON6){let l=Le.fromAxisAngle(s,i.heading,aat),f=Q.fromQuaternion(l,cat);h.fromCartesian4(F.getColumn(r,1,sat),a),Q.multiplyByVector(f,a,a)}let c=h.cross(s,a,rat);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 sge=new h,age=new h,wq=new h,cge=new h,FN=[new h,new h,new h,new h];function lat(e,t){let n=t.radii,i=e.positionWC,o=h.multiplyComponents(t.oneOverRadii,i,sge),r=h.magnitude(o),s=h.normalize(o,age),a,c;h.equalsEpsilon(s,h.UNIT_Z,P.EPSILON10)?(a=new h(0,1,0),c=new h(0,0,1)):(a=h.normalize(h.cross(h.UNIT_Z,s,wq),wq),c=h.normalize(h.cross(s,a,cge),cge));let l=Math.sqrt(h.magnitudeSquared(o)-1),f=h.multiplyByScalar(s,1/r,sge),d=l/r,p=h.multiplyByScalar(a,d,age),g=h.multiplyByScalar(c,d,wq),m=h.add(f,g,FN[0]);h.subtract(m,p,m),h.multiplyComponents(n,m,m);let x=h.subtract(f,g,FN[1]);h.subtract(x,p,x),h.multiplyComponents(n,x,x);let b=h.subtract(f,g,FN[2]);h.add(b,p,b),h.multiplyComponents(n,b,b);let T=h.add(f,g,FN[3]);return h.add(T,p,T),h.multiplyComponents(n,T,T),FN}var vq=new z,uat=new h,jy=[new fe,new fe,new fe,new fe];function N4(e,t,n,i,o,r){vq.x=e,vq.y=t;let s=i.pickEllipsoid(vq,o,uat);return u(s)?(jy[n]=o.cartesianToCartographic(s,jy[n]),1):(jy[n]=o.cartesianToCartographic(r[n],jy[n]),0)}Xt.prototype.computeViewRectangle=function(e,t){e=y(e,ie.WGS84);let n=this.frustum.computeCullingVolume(this.positionWC,this.directionWC,this.upWC),i=new se(h.ZERO,e.maximumRadius);if(n.computeVisibility(i)===Kt.OUTSIDE)return;let r=this._scene.canvas,s=r.clientWidth,a=r.clientHeight,c=0,l=lat(this,e);if(c+=N4(0,0,0,this,e,l),c+=N4(0,a,1,this,e,l),c+=N4(s,a,2,this,e,l),c+=N4(s,0,3,this,e,l),c<2)return ce.MAX_VALUE;t=ce.fromCartographicArray(jy,t);let f=0,d=jy[3].longitude;for(let p=0;p<4;++p){let g=jy[p].longitude,m=Math.abs(g-d);m>P.PI?f+=P.TWO_PI-m:f+=m,d=g}return P.equalsEpsilon(Math.abs(f),P.TWO_PI,P.EPSILON9)&&(t.west=-P.PI,t.east=P.PI,jy[0].latitude>=0?t.north=P.PI_OVER_TWO:t.south=-P.PI_OVER_TWO),t};Xt.prototype.switchToPerspectiveFrustum=function(){if(this._mode===te.SCENE2D||this.frustum instanceof Ei)return;let e=this._scene;this.frustum=new Ei,this.frustum.aspectRatio=e.drawingBufferWidth/e.drawingBufferHeight,this.frustum.fov=P.toRadians(60)};Xt.prototype.switchToOrthographicFrustum=function(){if(this._mode===te.SCENE2D||this.frustum instanceof $t)return;let e=hge(this),t=this._scene;this.frustum=new $t,this.frustum.aspectRatio=t.drawingBufferWidth/t.drawingBufferHeight,this.frustum.width=e};Xt.clone=function(e,t){return u(t)||(t=new Xt(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 co=Xt;function fat(e){this.pass=e.pass,this.commandList=e.commandList,this.camera=e.camera,this.cullingVolume=e.cullingVolume,this.ready=!1}var qf=fat;var vge=ro(Yl(),1),Cge=576,dat=100,BN="#ffffff",Rq="#48b";function Dge(e,t){this.credit=e,this.count=y(t,1)}function hat(e,t){let n=e.length;for(let i=0;i<n;i++){let o=e[i];if(bt.equals(o,t))return!0}return!1}function mat(e){let t=e._previousCesiumCredit,n=e._currentCesiumCredit;bt.equals(n,t)||(u(t)&&e._cesiumCreditContainer.removeChild(t.element),u(n)&&e._cesiumCreditContainer.appendChild(n.element),e._previousCesiumCredit=n)}var Ige="cesium-credit-delimiter";function Ege(e){let t=document.createElement("span");return t.textContent=e,t.className=Ige,t}function Sge(e,t){if(u(t)){let n=document.createElement(t);n._creditId=e._creditId,n.appendChild(e),e=n}return e}function wge(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(u(a)){if(r=s,u(n)&&(r*=2,s>0)){let l=r-1;if(o.length<=l)e.appendChild(Ege(n));else{let f=o[l];f.className!==Ige&&e.replaceChild(Ege(n),f)}}let c=a.element;if(o.length<=r)e.appendChild(Sge(c,i));else{let l=o[r];l._creditId!==a._id&&e.replaceChild(Sge(c,i),l)}}}for(++r;r<o.length;)e.removeChild(o[r])}function pat(e){let t=e._lightboxCredits,n=e.viewport.clientWidth,i=e.viewport.clientHeight;n!==e._lastViewportWidth&&(n<Cge?(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>=Cge&&i!==e._lastViewportHeight&&(t.style.marginTop=`${Math.floor((i-t.clientHeight)*.5)}px`,e._lastViewportHeight=i)}function _c(e,t){let n=`${e} {`;for(let i in t)t.hasOwnProperty(i)&&(n+=`${i}: ${t[i]}; `);return n+=` }
  8632. `,n}function _at(e){let t="";t+=_c(".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+=_c(".cesium-credit-lightbox",{"background-color":"#303336",color:BN,position:"relative","min-height":`${dat}px`,margin:"auto"}),t+=_c(".cesium-credit-lightbox > ul > li a, .cesium-credit-lightbox > ul > li a:visited",{color:BN}),t+=_c(".cesium-credit-lightbox > ul > li a:hover",{color:Rq}),t+=_c(".cesium-credit-lightbox.cesium-credit-lightbox-expanded",{border:"1px solid #444","border-radius":"5px","max-width":"370px"}),t+=_c(".cesium-credit-lightbox.cesium-credit-lightbox-mobile",{height:"100%",width:"100%"}),t+=_c(".cesium-credit-lightbox-title",{padding:"20px 20px 0 20px"}),t+=_c(".cesium-credit-lightbox-close",{"font-size":"18pt",cursor:"pointer",position:"absolute",top:"0",right:"6px",color:BN}),t+=_c(".cesium-credit-lightbox-close:hover",{color:Rq}),t+=_c(".cesium-credit-lightbox > ul",{margin:"0",padding:"12px 20px 12px 40px","font-size":"13px"}),t+=_c(".cesium-credit-lightbox > ul > li",{"padding-bottom":"6px"}),t+=_c(".cesium-credit-lightbox > ul > li *",{padding:"0",margin:"0"}),t+=_c(".cesium-credit-expand-link",{"padding-left":"5px",cursor:"pointer","text-decoration":"underline",color:BN}),t+=_c(".cesium-credit-expand-link:hover",{color:Rq}),t+=_c(".cesium-credit-text",{color:BN}),t+=_c(".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 ur(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="&times;",c.className="cesium-credit-lightbox-close",r.appendChild(c);let l=document.createElement("ul");r.appendChild(l);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),_at(e);let g=bt.clone(ur.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=l,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 xt,lightboxCredits:new xt},this._defaultCredit=void 0,this.viewport=n,this.container=e}function Pge(e,t,n,i){i=y(i,1);let o=t.get(n.id);if(u(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 Dge(n,i),r.push(o)),++e._creditDisplayElementPoolIndex,t.set(n.id,o)}}ur.prototype.addCreditToNextFrame=function(e){if(e.isIon()){u(this._defaultCredit)||(this._defaultCredit=bt.clone(Oge())),this._currentCesiumCredit=this._defaultCredit;return}let t;e.showOnScreen?t=this._currentFrameCredits.screenCredits:t=this._currentFrameCredits.lightboxCredits,Pge(this,t,e)};ur.prototype.addStaticCredit=function(e){let t=this._staticCredits;hat(t,e)||t.push(e)};ur.prototype.removeStaticCredit=function(e){let t=this._staticCredits,n=t.indexOf(e);n!==-1&&t.splice(n,1)};ur.prototype.showLightbox=function(){this._lightbox.style.display="block",this._expanded=!0};ur.prototype.hideLightbox=function(){this._lightbox.style.display="none",this._expanded=!1};ur.prototype.update=function(){this._expanded&&pat(this)};ur.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()&&bt.equals(ur.cesiumCredit,this._cesiumCredit)||Pge(this,s,r,Number.MAX_VALUE)}bt.equals(ur.cesiumCredit,this._cesiumCredit)||(this._cesiumCredit=bt.clone(ur.cesiumCredit)),this._currentCesiumCredit=this._cesiumCredit};ur.prototype.endFrame=function(){let e=this._currentFrameCredits.screenCredits.values;wge(this._screenContainer,e,this._delimiter,void 0);let t=this._currentFrameCredits.lightboxCredits.values;this._expandLink.style.display=t.length>0?"inline":"none",wge(this._creditList,t,void 0,"li"),mat(this)};ur.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),le(this)};ur.prototype.isDestroyed=function(){return!1};ur._cesiumCredit=void 0;ur._cesiumCreditInitialized=!1;var V4;function Oge(){if(!u(V4)){let e=Zt("Assets/Images/ion-credit.png");e.indexOf("http://")!==0&&e.indexOf("https://")!==0&&e.indexOf("data:")!==0&&(e=new vge.default(e).path()),V4=new bt(`<a href="https://cesium.com/" target="_blank"><img src="${e}" title="Cesium ion"/></a>`,!0)}return ur._cesiumCreditInitialized||(ur._cesiumCredit=V4,ur._cesiumCreditInitialized=!0),V4}Object.defineProperties(ur,{cesiumCredit:{get:function(){return Oge(),ur._cesiumCredit},set:function(e){ur._cesiumCredit=e,ur._cesiumCreditInitialized=!0}}});ur.CreditDisplayElement=Dge;var kN=ur;var z4=0,gat=1;function eT(e){let t=e.frustum,n=e.orientation,i=e.origin,o=y(e.vertexFormat,Pe.DEFAULT),r=y(e._drawNearPlane,!0),s,a;t instanceof Ei?(s=z4,a=Ei.packedLength):t instanceof $t&&(s=gat,a=$t.packedLength),this._frustumType=s,this._frustum=t.clone(),this._origin=h.clone(i),this._orientation=Le.clone(n),this._drawNearPlane=r,this._vertexFormat=o,this._workerName="createFrustumGeometry",this.packedLength=2+a+h.packedLength+Le.packedLength+Pe.packedLength}eT.pack=function(e,t,n){n=y(n,0);let i=e._frustumType,o=e._frustum;return t[n++]=i,i===z4?(Ei.pack(o,t,n),n+=Ei.packedLength):($t.pack(o,t,n),n+=$t.packedLength),h.pack(e._origin,t,n),n+=h.packedLength,Le.pack(e._orientation,t,n),n+=Le.packedLength,Pe.pack(e._vertexFormat,t,n),n+=Pe.packedLength,t[n]=e._drawNearPlane?1:0,t};var yat=new Ei,xat=new $t,bat=new Le,Tat=new h,Aat=new Pe;eT.unpack=function(e,t,n){t=y(t,0);let i=e[t++],o;i===z4?(o=Ei.unpack(e,t,yat),t+=Ei.packedLength):(o=$t.unpack(e,t,xat),t+=$t.packedLength);let r=h.unpack(e,t,Tat);t+=h.packedLength;let s=Le.unpack(e,t,bat);t+=Le.packedLength;let a=Pe.unpack(e,t,Aat);t+=Pe.packedLength;let c=e[t]===1;if(!u(n))return new eT({frustum:o,origin:r,orientation:s,vertexFormat:a,_drawNearPlane:c});let l=i===n._frustumType?n._frustum:void 0;return n._frustum=o.clone(l),n._frustumType=i,n._origin=h.clone(r,n._origin),n._orientation=Le.clone(s,n._orientation),n._vertexFormat=Pe.clone(a,n._vertexFormat),n._drawNearPlane=c,n};function dS(e,t,n,i,o,r,s,a){let c=e/3*2;for(let l=0;l<4;++l)u(t)&&(t[e]=r.x,t[e+1]=r.y,t[e+2]=r.z),u(n)&&(n[e]=s.x,n[e+1]=s.y,n[e+2]=s.z),u(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 Cat=new Q,Eat=new F,Mq=new F,Rge=new h,Mge=new h,Lge=new h,Sat=new h,wat=new h,vat=new h,qy=new Array(3),UN=new Array(4);UN[0]=new oe(-1,-1,1,1);UN[1]=new oe(1,-1,1,1);UN[2]=new oe(1,1,1,1);UN[3]=new oe(-1,1,1,1);var Nge=new Array(4);for(let e=0;e<4;++e)Nge[e]=new oe;eT._computeNearFarPlanes=function(e,t,n,i,o,r,s,a){let c=Q.fromQuaternion(t,Cat),l=y(r,Rge),f=y(s,Mge),d=y(a,Lge);l=Q.getColumn(c,0,l),f=Q.getColumn(c,1,f),d=Q.getColumn(c,2,d),h.normalize(l,l),h.normalize(f,f),h.normalize(d,d),h.negate(l,l);let p=F.computeView(e,d,f,l,Eat),g,m,x=i.projectionMatrix;if(n===z4){let b=F.multiply(x,p,Mq);m=F.inverse(b,Mq)}else g=F.inverseTransformation(p,Mq);u(m)?(qy[0]=i.near,qy[1]=i.far):(qy[0]=0,qy[1]=i.near,qy[2]=i.far);for(let b=0;b<2;++b)for(let T=0;T<4;++T){let A=oe.clone(UN[T],Nge[T]);if(u(m)){A=F.multiplyByVector(m,A,A);let C=1/A.w;h.multiplyByScalar(A,C,A),h.subtract(A,e,A),h.normalize(A,A);let S=h.dot(d,A);h.multiplyByScalar(A,qy[b]/S,A),h.add(A,e,A)}else{let C=i.offCenterFrustum;u(C)&&(i=C);let S=qy[b],w=qy[b+1];A.x=(A.x*(i.right-i.left)+i.left+i.right)*.5,A.y=(A.y*(i.top-i.bottom)+i.bottom+i.top)*.5,A.z=(A.z*(S-w)-S-w)*.5,A.w=1,F.multiplyByVector(g,A,A)}o[12*b+T*3]=A.x,o[12*b+T*3+1]=A.y,o[12*b+T*3+2]=A.z}};eT.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);eT._computeNearFarPlanes(i,o,t,n,c);let l=3*4*2;c[l]=c[3*4],c[l+1]=c[3*4+1],c[l+2]=c[3*4+2],c[l+3]=c[0],c[l+4]=c[1],c[l+5]=c[2],c[l+6]=c[3*3],c[l+7]=c[3*3+1],c[l+8]=c[3*3+2],c[l+9]=c[3*7],c[l+10]=c[3*7+1],c[l+11]=c[3*7+2],l+=3*4,c[l]=c[3*5],c[l+1]=c[3*5+1],c[l+2]=c[3*5+2],c[l+3]=c[3],c[l+4]=c[3+1],c[l+5]=c[3+2],c[l+6]=c[0],c[l+7]=c[1],c[l+8]=c[2],c[l+9]=c[3*4],c[l+10]=c[3*4+1],c[l+11]=c[3*4+2],l+=3*4,c[l]=c[3],c[l+1]=c[3+1],c[l+2]=c[3+2],c[l+3]=c[3*5],c[l+4]=c[3*5+1],c[l+5]=c[3*5+2],c[l+6]=c[3*6],c[l+7]=c[3*6+1],c[l+8]=c[3*6+2],c[l+9]=c[3*2],c[l+10]=c[3*2+1],c[l+11]=c[3*2+2],l+=3*4,c[l]=c[3*2],c[l+1]=c[3*2+1],c[l+2]=c[3*2+2],c[l+3]=c[3*6],c[l+4]=c[3*6+1],c[l+5]=c[3*6+2],c[l+6]=c[3*7],c[l+7]=c[3*7+1],c[l+8]=c[3*7+2],c[l+9]=c[3*3],c[l+10]=c[3*3+1],c[l+11]=c[3*3+2],r||(c=c.subarray(3*4));let f=new fn({position:new we({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:c})});if(u(s.normal)||u(s.tangent)||u(s.bitangent)||u(s.st)){let p=u(s.normal)?new Float32Array(12*a):void 0,g=u(s.tangent)?new Float32Array(3*4*a):void 0,m=u(s.bitangent)?new Float32Array(3*4*a):void 0,x=u(s.st)?new Float32Array(2*4*a):void 0,b=Rge,T=Mge,A=Lge,C=h.negate(b,Sat),S=h.negate(T,wat),w=h.negate(A,vat);l=0,r&&(dS(l,p,g,m,x,w,b,T),l+=3*4),dS(l,p,g,m,x,A,C,T),l+=3*4,dS(l,p,g,m,x,C,w,T),l+=3*4,dS(l,p,g,m,x,S,w,C),l+=3*4,dS(l,p,g,m,x,b,A,T),l+=3*4,dS(l,p,g,m,x,T,A,C),u(p)&&(f.normal=new we({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:p})),u(g)&&(f.tangent=new we({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:g})),u(m)&&(f.bitangent=new we({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:m})),u(x)&&(f.st=new we({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:Me.TRIANGLES,boundingSphere:se.fromVertices(c)})};var tT=eT;var Lq=0,Dat=1;function VN(e){let t=e.frustum,n=e.orientation,i=e.origin,o=y(e._drawNearPlane,!0),r,s;t instanceof Ei?(r=Lq,s=Ei.packedLength):t instanceof $t&&(r=Dat,s=$t.packedLength),this._frustumType=r,this._frustum=t.clone(),this._origin=h.clone(i),this._orientation=Le.clone(n),this._drawNearPlane=o,this._workerName="createFrustumOutlineGeometry",this.packedLength=2+s+h.packedLength+Le.packedLength}VN.pack=function(e,t,n){n=y(n,0);let i=e._frustumType,o=e._frustum;return t[n++]=i,i===Lq?(Ei.pack(o,t,n),n+=Ei.packedLength):($t.pack(o,t,n),n+=$t.packedLength),h.pack(e._origin,t,n),n+=h.packedLength,Le.pack(e._orientation,t,n),n+=Le.packedLength,t[n]=e._drawNearPlane?1:0,t};var Iat=new Ei,Pat=new $t,Oat=new Le,Rat=new h;VN.unpack=function(e,t,n){t=y(t,0);let i=e[t++],o;i===Lq?(o=Ei.unpack(e,t,Iat),t+=Ei.packedLength):(o=$t.unpack(e,t,Pat),t+=$t.packedLength);let r=h.unpack(e,t,Rat);t+=h.packedLength;let s=Le.unpack(e,t,Oat);t+=Le.packedLength;let a=e[t]===1;if(!u(n))return new VN({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=Le.clone(s,n._orientation),n._drawNearPlane=a,n};VN.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);tT._computeNearFarPlanes(i,o,t,n,s);let a=new fn({position:new we({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:s})}),c,l,f=r?2:1,d=new Uint16Array(8*(f+1)),p=r?0:1;for(;p<2;++p)c=r?p*8:0,l=p*4,d[c]=l,d[c+1]=l+1,d[c+2]=l+1,d[c+3]=l+2,d[c+4]=l+2,d[c+5]=l+3,d[c+6]=l+3,d[c+7]=l;for(p=0;p<2;++p)c=(f+p)*8,l=p*4,d[c]=l,d[c+1]=l+4,d[c+2]=l+1,d[c+3]=l+5,d[c+4]=l+2,d[c+5]=l+6,d[c+6]=l+3,d[c+7]=l+7;return new st({attributes:a,indices:d,primitiveType:Me.LINES,boundingSphere:se.fromVertices(s)})};var zN=VN;function H4(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 Mat=new h,Lat=new Q,Nat=new Le,Fat=new Ei,Bat=new $c,kat=new $t,Uat=new Cr,Vat=new H,zat=[1,1e5];H4.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 Ei?a=Fat:s instanceof $c?a=Bat:s instanceof $t?a=kat:a=Uat,a=s.clone(a);let c,l=this._frustumSplits;!u(l)||l.length<=1?(l=zat,l[0]=this._camera.frustum.near,l[1]=this._camera.frustum.far,c=1):c=l.length-1;let f=r.positionWC,d=r.directionWC,p=r.upWC,g=r.rightWC;g=h.negate(g,Mat);let m=Lat;Q.setColumn(m,0,g,m),Q.setColumn(m,1,p,m),Q.setColumn(m,2,d,m);let x=Le.fromRotationMatrix(m,Nat);for(t.length=n.length=c,i=0;i<c;++i)a.near=l[i],a.far=l[i+1],t[i]=new En({geometryInstances:new yt({geometry:new tT({origin:f,orientation:x,frustum:a,_drawNearPlane:i===0}),attributes:{color:kt.fromColor(H.fromAlpha(this._color,.1,Vat))},id:this.id,pickPrimitive:this}),appearance:new nn({translucent:!0,flat:!0}),asynchronous:!1}),n[i]=new En({geometryInstances:new yt({geometry:new zN({origin:f,orientation:x,frustum:a,_drawNearPlane:i===0}),attributes:{color:kt.fromColor(this._color)},id:this.id,pickPrimitive:this}),appearance:new nn({translucent:!1,flat:!0}),asynchronous:!1})}for(o=t.length,i=0;i<o;++i)n[i].update(e),t[i].update(e)};H4.prototype.isDestroyed=function(){return!1};H4.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 le(this)};var Rm=H4;var HN=`in vec4 positionEC;
  8633. void main()
  8634. {
  8635. vec3 position;
  8636. vec3 direction;
  8637. if (czm_orthographicIn3D == 1.0)
  8638. {
  8639. vec2 uv = (gl_FragCoord.xy - czm_viewport.xy) / czm_viewport.zw;
  8640. vec2 minPlane = vec2(czm_frustumPlanes.z, czm_frustumPlanes.y); // left, bottom
  8641. vec2 maxPlane = vec2(czm_frustumPlanes.w, czm_frustumPlanes.x); // right, top
  8642. position = vec3(mix(minPlane, maxPlane, uv), 0.0);
  8643. direction = vec3(0.0, 0.0, -1.0);
  8644. }
  8645. else
  8646. {
  8647. position = vec3(0.0);
  8648. direction = normalize(positionEC.xyz);
  8649. }
  8650. czm_ray ray = czm_ray(position, direction);
  8651. vec3 ellipsoid_center = czm_view[3].xyz;
  8652. czm_raySegment intersection = czm_rayEllipsoidIntersectionInterval(ray, ellipsoid_center, czm_ellipsoidInverseRadii);
  8653. if (!czm_isEmpty(intersection))
  8654. {
  8655. out_FragColor = vec4(1.0, 1.0, 0.0, 1.0);
  8656. }
  8657. else
  8658. {
  8659. discard;
  8660. }
  8661. czm_writeLogDepth();
  8662. }
  8663. `;var GN=`in vec4 position;
  8664. out vec4 positionEC;
  8665. void main()
  8666. {
  8667. positionEC = czm_modelView * position;
  8668. gl_Position = czm_projection * positionEC;
  8669. czm_vertexLogDepth();
  8670. }
  8671. `;function jN(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 WN=Bt.supportsTypedArrays()?new Float32Array(12):[],Fge=new h,Bge=new h,Nq=new h,kge=new h,G4=new h;function Hat(e,t){let n=e.radii,i=t.camera,o,r,s;if(i.frustum instanceof $t)o=h.ZERO,r=i.rightWC,s=i.upWC;else{let d=i.positionWC,p=h.multiplyComponents(e.oneOverRadii,d,Fge),g=h.normalize(p,Bge),m=h.normalize(h.cross(h.UNIT_Z,p,Nq),Nq),x=h.normalize(h.cross(g,m,kge),kge),b=h.magnitude(p),T=Math.sqrt(b*b-1);o=h.multiplyByScalar(g,1/b,Fge);let A=T/b;r=h.multiplyByScalar(m,A,Bge),s=h.multiplyByScalar(x,A,Nq)}let a=h.add(o,s,G4);h.subtract(a,r,a),h.multiplyComponents(n,a,a),h.pack(a,WN,0);let c=h.subtract(o,s,G4);h.subtract(c,r,c),h.multiplyComponents(n,c,c),h.pack(c,WN,3);let l=h.add(o,s,G4);h.add(l,r,l),h.multiplyComponents(n,l,l),h.pack(l,WN,6);let f=h.subtract(o,s,G4);return h.add(f,r,f),h.multiplyComponents(n,f,f),h.pack(f,WN,9),WN}jN.prototype.update=function(e){if(this._mode=e.mode,e.mode!==te.SCENE3D)return;let t=e.context,n=e.mapProjection.ellipsoid.radii,i=new ie(n.x+this._ellipsoidOffset,n.y+this._ellipsoidOffset,n.z+this._ellipsoidOffset),o=e.useLogDepth;if(u(this._command)||(this._rs=ke.fromCache({cull:{enabled:!0},depthTest:{enabled:!0},colorMask:{red:!1,green:!1,blue:!1,alpha:!1}}),this._command=new Je({renderState:this._rs,boundingVolume:new se(h.ZERO,i.maximumRadius),pass:Ee.OPAQUE,owner:this})),!u(this._sp)||this._useLogDepth!==o){this._useLogDepth=o;let s=new Ue({sources:[GN]}),a=new Ue({sources:[HN]});o&&(a.defines.push("LOG_DEPTH"),s.defines.push("LOG_DEPTH")),this._sp=Yt.replaceCache({shaderProgram:this._sp,context:t,vertexShaderSource:s,fragmentShaderSource:a,attributeLocations:{position:0}}),this._command.shaderProgram=this._sp}let r=Hat(i,e);if(u(this._va))this._va.getAttribute(0).vertexBuffer.copyFromArrayView(r);else{let s=new st({attributes:{position:new we({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:r})},indices:[0,1,2,2,1,3],primitiveType:Me.TRIANGLES});this._va=ni.fromGeometry({context:t,geometry:s,attributeLocations:{position:0},bufferUsage:Ne.DYNAMIC_DRAW}),this._command.vertexArray=this._va}};jN.prototype.execute=function(e,t){this._mode===te.SCENE3D&&this._command.execute(e,t)};jN.prototype.isDestroyed=function(){return!1};jN.prototype.destroy=function(){this._sp=this._sp&&this._sp.destroy(),this._va=this._va&&this._va.destroy()};var qN=jN;function YN(){}var Gat=/\bgl_FragDepth\b/,Wat=/\bdiscard\b/;function jat(e,t){let n=e.shaderCache.getDerivedShaderProgram(t,"depthOnly");if(!u(n)){let i=t._attributeLocations,o=t.fragmentShaderSource,r,s=!1,a=o.sources,c=a.length;for(r=0;r<c;++r)if(Gat.test(a[r])||Wat.test(a[r])){s=!0;break}let l=!1,f=o.defines;for(c=f.length,r=0;r<c;++r)if(f[r]==="LOG_DEPTH"){l=!0;break}let d;!s&&!l?(d=`void main()
  8672. {
  8673. out_FragColor = vec4(1.0);
  8674. }
  8675. `,o=new Ue({sources:[d]})):!s&&l&&(d=`void main()
  8676. {
  8677. out_FragColor = vec4(1.0);
  8678. czm_writeLogDepth();
  8679. }
  8680. `,o=new Ue({defines:["LOG_DEPTH"],sources:[d]})),n=e.shaderCache.createDerivedShaderProgram(t,"depthOnly",{vertexShaderSource:t.vertexShaderSource,fragmentShaderSource:o,attributeLocations:i})}return n}function qat(e,t){let n=e._depthOnlyRenderStateCache,i=n[t.id];if(!u(i)){let o=ke.getState(t);o.depthMask=!0,o.colorMask={red:!1,green:!1,blue:!1,alpha:!1},i=ke.fromCache(o),n[t.id]=i}return i}YN.createDepthOnlyDerivedCommand=function(e,t,n,i){u(i)||(i={});let o,r;return u(i.depthOnlyCommand)&&(o=i.depthOnlyCommand.shaderProgram,r=i.depthOnlyCommand.renderState),i.depthOnlyCommand=Je.shallowClone(t,i.depthOnlyCommand),!u(o)||i.shaderProgramId!==t.shaderProgram.id?(i.depthOnlyCommand.shaderProgram=jat(n,t.shaderProgram),i.depthOnlyCommand.renderState=qat(e,t.renderState),i.shaderProgramId=t.shaderProgram.id):(i.depthOnlyCommand.shaderProgram=o,i.depthOnlyCommand.renderState=r),i};var Yat=/\s+czm_writeLogDepth\(/,Xat=/\s+czm_vertexLogDepth\(/;function Kat(e,t){if(t.fragmentShaderSource.defines.indexOf("LOG_DEPTH_READ_ONLY")>=0)return t;let i=e.shaderCache.getDerivedShaderProgram(t,"logDepth");if(!u(i)){let o=t._attributeLocations,r=t.vertexShaderSource.clone(),s=t.fragmentShaderSource.clone();r.defines=u(r.defines)?r.defines.slice(0):[],r.defines.push("LOG_DEPTH"),s.defines=u(s.defines)?s.defines.slice(0):[],s.defines.push("LOG_DEPTH");let a,c,l=!1,f=r.sources,d=f.length;for(a=0;a<d;++a)if(Xat.test(f[a])){l=!0;break}if(!l){for(a=0;a<d;++a)f[a]=Ue.replaceMain(f[a],"czm_log_depth_main");c=`
  8681. void main()
  8682. {
  8683. czm_log_depth_main();
  8684. czm_vertexLogDepth();
  8685. }
  8686. `,f.push(c)}for(f=s.sources,d=f.length,l=!1,a=0;a<d;++a)Yat.test(f[a])&&(l=!0);s.defines.indexOf("LOG_DEPTH_WRITE")!==-1&&(l=!0);let p="";if(!l){for(a=0;a<d;a++)f[a]=Ue.replaceMain(f[a],"czm_log_depth_main");p+=`
  8687. void main()
  8688. {
  8689. czm_log_depth_main();
  8690. czm_writeLogDepth();
  8691. }
  8692. `}f.push(p),i=e.shaderCache.createDerivedShaderProgram(t,"logDepth",{vertexShaderSource:r,fragmentShaderSource:s,attributeLocations:o})}return i}YN.createLogDepthCommand=function(e,t,n){u(n)||(n={});let i;return u(n.command)&&(i=n.command.shaderProgram),n.command=Je.shallowClone(e,n.command),!u(i)||n.shaderProgramId!==e.shaderProgram.id?(n.command.shaderProgram=Kat(t,e.shaderProgram),n.shaderProgramId=e.shaderProgram.id):n.command.shaderProgram=i,n};function Zat(e,t,n){let i=e.shaderCache.getDerivedShaderProgram(t,"pick");if(!u(i)){let o=t._attributeLocations,r=t.fragmentShaderSource,s=r.sources,a=s.length,l=s.some(p=>p.includes("out_FragData"))?"out_FragData_0":"out_FragColor",f=`void main ()
  8693. {
  8694. czm_non_pick_main();
  8695. if (${l}.a == 0.0) {
  8696. discard;
  8697. }
  8698. ${l} = ${n};
  8699. } `,d=new Array(a+1);for(let p=0;p<a;++p)d[p]=Ue.replaceMain(s[p],"czm_non_pick_main");d[a]=f,r=new Ue({sources:d,defines:r.defines}),i=e.shaderCache.createDerivedShaderProgram(t,"pick",{vertexShaderSource:t.vertexShaderSource,fragmentShaderSource:r,attributeLocations:o})}return i}function $at(e,t){let n=e.picking.pickRenderStateCache,i=n[t.id];if(!u(i)){let o=ke.getState(t);o.blending.enabled=!1,o.depthMask=!0,i=ke.fromCache(o),n[t.id]=i}return i}YN.createPickDerivedCommand=function(e,t,n,i){u(i)||(i={});let o,r;return u(i.pickCommand)&&(o=i.pickCommand.shaderProgram,r=i.pickCommand.renderState),i.pickCommand=Je.shallowClone(t,i.pickCommand),!u(o)||i.shaderProgramId!==t.shaderProgram.id?(i.pickCommand.shaderProgram=Zat(n,t.shaderProgram,t.pickId),i.pickCommand.renderState=$at(e,t.renderState),i.shaderProgramId=t.shaderProgram.id):(i.pickCommand.shaderProgram=o,i.pickCommand.renderState=r),i};function Qat(e,t){let n=e.shaderCache.getDerivedShaderProgram(t,"HDR");if(!u(n)){let i=t._attributeLocations,o=t.vertexShaderSource.clone(),r=t.fragmentShaderSource.clone();o.defines=u(o.defines)?o.defines.slice(0):[],o.defines.push("HDR"),r.defines=u(r.defines)?r.defines.slice(0):[],r.defines.push("HDR"),n=e.shaderCache.createDerivedShaderProgram(t,"HDR",{vertexShaderSource:o,fragmentShaderSource:r,attributeLocations:i})}return n}YN.createHdrCommand=function(e,t,n){u(n)||(n={});let i;return u(n.command)&&(i=n.command.shaderProgram),n.command=Je.shallowClone(e,n.command),!u(i)||n.shaderProgramId!==e.shaderProgram.id?(n.command.shaderProgram=Qat(t,e.shaderProgram),n.shaderProgramId=e.shaderProgram.id):n.command.shaderProgram=i,n};var U_=YN;function W4(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(!u(o)){t._alpha=void 0,t._beta=void 0,t._gamma=void 0;return}t._alpha=P.toRadians(o),t._beta=P.toRadians(i.beta),t._gamma=P.toRadians(i.gamma)}window.addEventListener("deviceorientation",n,!1),this._removeListener=function(){window.removeEventListener("deviceorientation",n,!1)}}var Jat=new Le,Uge=new Le,ect=new Q;function tct(e,t,n,i){let o=e.direction,r=e.right,s=e.up,a=Le.fromAxisAngle(o,n,Uge),c=Le.fromAxisAngle(r,i,Jat),l=Le.multiply(c,a,c),f=Le.fromAxisAngle(s,t,Uge);Le.multiply(f,l,l);let d=Q.fromQuaternion(l,ect);Q.multiplyByVector(d,r,r),Q.multiplyByVector(d,s,s),Q.multiplyByVector(d,o,o)}W4.prototype.update=function(){if(!u(this._alpha))return;u(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;tct(this._scene.camera,-e,t,n),this._lastAlpha=this._alpha,this._lastBeta=this._beta,this._lastGamma=this._gamma};W4.prototype.isDestroyed=function(){return!1};W4.prototype.destroy=function(){return this._removeListener(),le(this)};var XN=W4;function Vge(){this.enabled=!0,this.renderable=!0,this.density=2e-4,this.screenSpaceErrorFactor=2,this.minimumBrightness=.03}var j4=[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],Mm=[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<Mm.length;++e)Mm[e]*=1e6;var zge=Mm[1],Fq=Mm[Mm.length-1];for(let e=0;e<Mm.length;++e)Mm[e]=(Mm[e]-Fq)/(zge-Fq);var ra=0;function nct(e){let t=j4,n=t.length;if(e<t[0])return ra=0,ra;if(e>t[n-1])return ra=n-2,ra;if(e>=t[ra]){if(ra+1<n&&e<t[ra+1])return ra;if(ra+2<n&&e<t[ra+2])return++ra,ra}else if(ra-1>=0&&e>=t[ra-1])return--ra,ra;let i;for(i=0;i<n-2&&!(e>=t[i]&&e<t[i+1]);++i);return ra=i,ra}var ict=new h;Vge.prototype.update=function(e){if(!(e.fog.enabled=this.enabled))return;e.fog.renderable=this.renderable;let n=e.camera,i=n.positionCartographic;if(!u(i)||i.height>8e5||e.mode!==te.SCENE3D){e.fog.enabled=!1;return}let o=i.height,r=nct(o),s=P.clamp((o-j4[r])/(j4[r+1]-j4[r]),0,1),a=P.lerp(Mm[r],Mm[r+1],s),c=this.density*1e6,l=c/zge*Fq;a=a*(c-l)*1e-6;let f=h.normalize(n.positionWC,ict),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 KN=Vge;function oct(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=te.SCENE3D,this.morphTime=te.getMorphTime(te.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,depth:!1,postProcess:!1,offscreen:!1},this.creditDisplay=t,this.afterRender=[],this.scene3DOnly=!1,this.fog={enabled:!1,density:void 0,sse:void 0,minimumBrightness:void 0},this.terrainExaggeration=1,this.terrainExaggerationRelativeHeight=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 ZN=oct;var sa={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},nT=sa.DERIVED_COMMANDS_MAXIMUM_LENGTH,$ge=["opaqueFrontFaceCommand","opaqueBackFaceCommand","depthOnlyFrontFaceCommand","depthOnlyBackFaceCommand","depthOnlyFrontAndBackFaceCommand","translucentFrontFaceCommand","translucentBackFaceCommand","translucentFrontFaceManualDepthTestCommand","translucentBackFaceManualDepthTestCommand","pickFrontFaceCommand","pickBackFaceCommand"];function iT(){this._frontFaceAlphaByDistance=new Pt(0,1,0,1),this._backFaceAlphaByDistance=new Pt(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=ce.clone(ce.MAX_VALUE),this._derivedCommandKey=0,this._derivedCommandsDirty=!1,this._derivedCommandPacks=void 0,this._derivedCommandTypes=new Array(nT),this._derivedBlendCommandTypes=new Array(nT),this._derivedPickCommandTypes=new Array(nT),this._derivedCommandTypesToUpdate=new Array(nT),this._derivedCommandsLength=0,this._derivedBlendCommandsLength=0,this._derivedPickCommandsLength=0,this._derivedCommandsToUpdateLength=0}Object.defineProperties(iT.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}}});iT.prototype.update=function(e){let t=e.globe;if(!u(t)||!t.show){this._frontFaceTranslucent=!1,this._backFaceTranslucent=!1,this._sunVisibleThroughGlobe=!0,this._environmentVisible=!0,this._useDepthPlane=!1;return}this._frontFaceAlphaByDistance=Hge(t.translucency.enabled,t.translucency.frontFaceAlpha,t.translucency.frontFaceAlphaByDistance,this._frontFaceAlphaByDistance),this._backFaceAlphaByDistance=Hge(t.translucency.enabled,t.translucency.backFaceAlpha,t.translucency.backFaceAlphaByDistance,this._backFaceAlphaByDistance),this._frontFaceTranslucent=Gge(t.translucency.enabled,this._frontFaceAlphaByDistance,t),this._backFaceTranslucent=Gge(t.translucency.enabled,this._backFaceAlphaByDistance,t),this._requiresManualDepthTest=cct(this,e,t),this._sunVisibleThroughGlobe=rct(this,e),this._environmentVisible=sct(this,e),this._useDepthPlane=act(this,e),this._numberOfTextureUniforms=lct(this),this._rectangle=ce.clone(t.translucency.rectangle,this._rectangle),uct(this,e)};function Hge(e,t,n,i){return e?u(n)?(Pt.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 Gge(e,t,n){return e&&(n.baseColor.alpha<1||t.nearValue<1||t.farValue<1)}function rct(e,t){let n=e._frontFaceTranslucent,i=e._backFaceTranslucent;return n&&(t.cameraUnderground||i)}function sct(e,t){return!t.cameraUnderground||e._frontFaceTranslucent}function act(e,t){return!t.cameraUnderground&&!e._frontFaceTranslucent}function cct(e,t,n){return e._frontFaceTranslucent&&!e._backFaceTranslucent&&!n.depthTestAgainstTerrain&&t.mode!==te.SCENE2D&&t.context.depthTexture}function lct(e){let t=0;return e._frontFaceTranslucent&&++t,e._requiresManualDepthTest&&++t,t}function uct(e,t){e._derivedCommandsLength=Bq(e,t,!1,!1,e._derivedCommandTypes),e._derivedBlendCommandsLength=Bq(e,t,!0,!1,e._derivedBlendCommandTypes),e._derivedPickCommandsLength=Bq(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<nT;++n)(i&1<<n)>0&&(e._derivedCommandTypesToUpdate[o++]=n);e._derivedCommandsToUpdateLength=o;let r=i!==e._derivedCommandKey;e._derivedCommandKey=i,e._derivedCommandsDirty=r,!u(e._derivedCommandPacks)&&e._frontFaceTranslucent&&(e._derivedCommandPacks=Sct())}function Bq(e,t,n,i,o){let r=0,s=e._frontFaceTranslucent,a=e._backFaceTranslucent;if(!s)return r;let c=t.cameraUnderground,l=e._requiresManualDepthTest,f=i?sa.PICK_FRONT_FACE:l?sa.TRANSLUCENT_FRONT_FACE_MANUAL_DEPTH_TEST:sa.TRANSLUCENT_FRONT_FACE,d=i?sa.PICK_BACK_FACE:l?sa.TRANSLUCENT_BACK_FACE_MANUAL_DEPTH_TEST:sa.TRANSLUCENT_BACK_FACE;return t.mode===te.SCENE2D?(o[r++]=sa.DEPTH_ONLY_FRONT_FACE,o[r++]=f,r):(a?(n||(o[r++]=sa.DEPTH_ONLY_FRONT_AND_BACK_FACE),c?(o[r++]=f,o[r++]=d):(o[r++]=d,o[r++]=f)):c?(n||(o[r++]=sa.DEPTH_ONLY_BACK_FACE),o[r++]=sa.OPAQUE_FRONT_FACE,o[r++]=d):(n||(o[r++]=sa.DEPTH_ONLY_FRONT_FACE),o[r++]=sa.OPAQUE_BACK_FACE,o[r++]=f),r)}function Yf(e,t){let n=e.indexOf(t);n>-1&&e.splice(n,1)}function Wge(e,t){return e.indexOf(t)>-1}function fct(e,t){Yf(e.defines,"TRANSLUCENT"),Yf(t.defines,"TRANSLUCENT")}function dct(e,t){Yf(e.defines,"GROUND_ATMOSPHERE"),Yf(t.defines,"GROUND_ATMOSPHERE"),Yf(e.defines,"FOG"),Yf(t.defines,"FOG"),Yf(e.defines,"TRANSLUCENT"),Yf(t.defines,"TRANSLUCENT")}function kq(e,t){if(Wge(t.defines,"TILE_LIMIT_RECTANGLE")||Wge(t.defines,"ENABLE_CLIPPING_PLANES"))return;let n=`void main()
  8700. {
  8701. out_FragColor = vec4(1.0);
  8702. }
  8703. `;t.sources=[n]}function Uq(e,t){let n=t.sources,i=n.length;for(let r=0;r<i;++r)n[r]=Ue.replaceMain(n[r],"czm_globe_translucency_main");let o=`
  8704. uniform sampler2D u_classificationTexture;
  8705. void main()
  8706. {
  8707. vec2 st = gl_FragCoord.xy / czm_viewport.zw;
  8708. #ifdef MANUAL_DEPTH_TEST
  8709. float logDepthOrDepth = czm_unpackDepth(texture(czm_globeDepthTexture, st));
  8710. if (logDepthOrDepth != 0.0)
  8711. {
  8712. vec4 eyeCoordinate = czm_windowToEyeCoordinates(gl_FragCoord.xy, logDepthOrDepth);
  8713. float depthEC = eyeCoordinate.z / eyeCoordinate.w;
  8714. if (v_positionEC.z < depthEC)
  8715. {
  8716. discard;
  8717. }
  8718. }
  8719. #endif
  8720. czm_globe_translucency_main();
  8721. vec4 classificationColor = texture(u_classificationTexture, st);
  8722. if (classificationColor.a > 0.0)
  8723. {
  8724. // Reverse premultiplication process to get the correct composited result of the classification primitives
  8725. classificationColor.rgb /= classificationColor.a;
  8726. }
  8727. out_FragColor = classificationColor * vec4(classificationColor.aaa, 1.0) + out_FragColor * (1.0 - classificationColor.a);
  8728. }
  8729. `;n.push(o)}function Qge(e,t){Uq(e,t),Yf(e.defines,"GROUND_ATMOSPHERE"),Yf(t.defines,"GROUND_ATMOSPHERE"),Yf(e.defines,"FOG"),Yf(t.defines,"FOG")}function hct(e,t){Uq(e,t),e.defines.push("GENERATE_POSITION"),t.defines.push("MANUAL_DEPTH_TEST")}function mct(e,t){Qge(e,t),e.defines.push("GENERATE_POSITION"),t.defines.push("MANUAL_DEPTH_TEST")}function jge(e,t){let n=`uniform sampler2D u_classificationTexture;
  8730. void main()
  8731. {
  8732. vec2 st = gl_FragCoord.xy / czm_viewport.zw;
  8733. vec4 pickColor = texture(u_classificationTexture, st);
  8734. if (pickColor == vec4(0.0))
  8735. {
  8736. discard;
  8737. }
  8738. out_FragColor = pickColor;
  8739. }
  8740. `;t.sources=[n]}function pct(e,t,n,i,o,r){if(!u(o))return t;if(!i&&u(n))return n;let s=e.shaderCache.getDerivedShaderProgram(t,r);if(!u(s)){let a=t._attributeLocations,c=t.vertexShaderSource.clone(),l=t.fragmentShaderSource.clone();c.defines=u(c.defines)?c.defines.slice(0):[],l.defines=u(l.defines)?l.defines.slice(0):[],o(c,l),s=e.shaderCache.createDerivedShaderProgram(t,r,{vertexShaderSource:c,fragmentShaderSource:l,attributeLocations:a})}return s}function _ct(e){e.cull.face=pi.BACK,e.cull.enabled=!0}function gct(e){e.cull.face=pi.FRONT,e.cull.enabled=!0}function yct(e){e.cull.face=pi.BACK,e.cull.enabled=!0,e.colorMask={red:!1,green:!1,blue:!1,alpha:!1}}function xct(e){e.cull.face=pi.FRONT,e.cull.enabled=!0,e.colorMask={red:!1,green:!1,blue:!1,alpha:!1}}function bct(e){e.cull.enabled=!1,e.colorMask={red:!1,green:!1,blue:!1,alpha:!1}}function qge(e){e.cull.face=pi.BACK,e.cull.enabled=!0,e.depthMask=!1,e.blending=un.ALPHA_BLEND}function Yge(e){e.cull.face=pi.FRONT,e.cull.enabled=!0,e.depthMask=!1,e.blending=un.ALPHA_BLEND}function Tct(e){e.cull.face=pi.BACK,e.cull.enabled=!0,e.blending.enabled=!1}function Act(e){e.cull.face=pi.FRONT,e.cull.enabled=!0,e.blending.enabled=!1}function Cct(e,t,n,i,o){if(!u(i))return e;if(!n&&u(t))return t;let r=o[e.id];if(!u(r)){let s=ke.getState(e);i(s),r=ke.fromCache(s),o[e.id]=r}return r}function hS(e){return{u_classificationTexture:function(){return e._globeTranslucencyFramebuffer.classificationTexture}}}function Ect(e,t,n,i,o){return u(o)?!i&&u(n)?n:gt(t,o(e),!1):t}function yh(e){this.pass=e.pass,this.pickOnly=e.pickOnly,this.getShaderProgramFunction=e.getShaderProgramFunction,this.getRenderStateFunction=e.getRenderStateFunction,this.getUniformMapFunction=e.getUniformMapFunction,this.renderStateCache={}}function Sct(){return[new yh({pass:Ee.GLOBE,pickOnly:!1,getShaderProgramFunction:fct,getRenderStateFunction:_ct,getUniformMapFunction:void 0}),new yh({pass:Ee.GLOBE,pickOnly:!1,getShaderProgramFunction:dct,getRenderStateFunction:gct,getUniformMapFunction:void 0}),new yh({pass:Ee.GLOBE,pickOnly:!1,getShaderProgramFunction:kq,getRenderStateFunction:yct,getUniformMapFunction:void 0}),new yh({pass:Ee.GLOBE,pickOnly:!1,getShaderProgramFunction:kq,getRenderStateFunction:xct,getUniformMapFunction:void 0}),new yh({pass:Ee.GLOBE,pickOnly:!1,getShaderProgramFunction:kq,getRenderStateFunction:bct,getUniformMapFunction:void 0}),new yh({pass:Ee.TRANSLUCENT,pickOnly:!1,getShaderProgramFunction:Uq,getRenderStateFunction:qge,getUniformMapFunction:hS}),new yh({pass:Ee.TRANSLUCENT,pickOnly:!1,getShaderProgramFunction:Qge,getRenderStateFunction:Yge,getUniformMapFunction:hS}),new yh({pass:Ee.TRANSLUCENT,pickOnly:!1,getShaderProgramFunction:hct,getRenderStateFunction:qge,getUniformMapFunction:hS}),new yh({pass:Ee.TRANSLUCENT,pickOnly:!1,getShaderProgramFunction:mct,getRenderStateFunction:Yge,getUniformMapFunction:hS}),new yh({pass:Ee.TRANSLUCENT,pickOnly:!0,getShaderProgramFunction:jge,getRenderStateFunction:Tct,getUniformMapFunction:hS}),new yh({pass:Ee.TRANSLUCENT,pickOnly:!0,getShaderProgramFunction:jge,getRenderStateFunction:Act,getUniformMapFunction:hS})]}var Xge=new Array(nT),Kge=new Array(nT);iT.prototype.updateDerivedCommands=function(e,t){let n=this._derivedCommandTypesToUpdate,i=this._derivedCommandsToUpdateLength;if(i!==0){for(let o=0;o<i;++o)Kge[o]=this._derivedCommandPacks[n[o]],Xge[o]=$ge[n[o]];wct(this,e,i,n,Xge,Kge,t)}};function wct(e,t,n,i,o,r,s){let a=t.derivedCommands.globeTranslucency,c=e._derivedCommandsDirty;if(t.dirty||!u(a)||c){t.dirty=!1,u(a)||(a={},t.derivedCommands.globeTranslucency=a);let l=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=l),m&&(a.shaderProgramDirtyFrame=l),x&&(a.renderStateDirtyFrame=l),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],A=i[b],C=o[b],S=a[C],w,D,O;u(S)?(w=S.uniformMap,D=S.shaderProgram,O=S.renderState):(w=void 0,D=void 0,O=void 0),S=Je.shallowClone(t,S),a[C]=S;let R=y(S.derivedCommands.uniformMapDirtyFrame,0),L=y(S.derivedCommands.shaderProgramDirtyFrame,0),N=y(S.derivedCommands.renderStateDirtyFrame,0),_=g||R<f,E=m||L<d,v=x||N<p;_&&(S.derivedCommands.uniformMapDirtyFrame=l),E&&(S.derivedCommands.shaderProgramDirtyFrame=l),v&&(S.derivedCommands.renderStateDirtyFrame=l),S.derivedCommands.type=A,S.pass=T.pass,S.pickOnly=T.pickOnly,S.uniformMap=Ect(e,t.uniformMap,w,_,T.getUniformMapFunction),S.shaderProgram=pct(s.context,t.shaderProgram,D,E,T.getShaderProgramFunction,C),S.renderState=Cct(t.renderState,O,v,T.getRenderStateFunction,T.renderStateCache)}}}iT.prototype.pushDerivedCommands=function(e,t,n){let i=n.passes.pick;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=$ge[o[a]];n.commandList.push(s[c])}};function Jge(e,t,n,i,o,r,s){for(let a=0;a<t;++a){let c=e[a],l=c.derivedCommands.type;(!u(s)||s.indexOf(l)>-1)&&n(c,i,o,r)}}function Zge(e,t,n,i,o,r){for(let s=0;s<t;++s)n(e[s],i,o,r)}var vct=[sa.OPAQUE_FRONT_FACE,sa.OPAQUE_BACK_FACE],Dct=[sa.DEPTH_ONLY_FRONT_FACE,sa.DEPTH_ONLY_BACK_FACE,sa.DEPTH_ONLY_FRONT_AND_BACK_FACE];iT.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),Jge(s,a,t,i,r,o,vct))};iT.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],l=e.indices[Ee.TERRAIN_CLASSIFICATION];if(a===0||l===0)return;let f=this._frontFaceTranslucent,d=this._backFaceTranslucent;if((!f||!d)&&Zge(c,l,t,i,r,o),!f&&!d)return;this._globeTranslucencyFramebuffer=n;let p=r.uniformState.globeDepthTexture,g=o.framebuffer;if(o.framebuffer=n.classificationFramebuffer,Jge(s,a,t,i,r,o,Dct),r.depthTexture){let m=n.packDepth(r,o);r.uniformState.globeDepthTexture=m}Zge(c,l,t,i,r,o),r.uniformState.globeDepthTexture=p,o.framebuffer=g};var $N=iT;var Hl=`uniform sampler2D colorTexture;
  8741. in vec2 v_textureCoordinates;
  8742. void main()
  8743. {
  8744. out_FragColor = texture(colorTexture, v_textureCoordinates);
  8745. }
  8746. `;function Lm(){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 ti({color:new H(0,0,0,0),owner:this}),this._clearCommand=new ti({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(Lm.prototype,{unclassifiedCommand:{get:function(){return this._unclassifiedCommand}}});Lm.isTranslucencySupported=function(e){return e.depthTexture&&e.fragmentDepth};var Ict={depthMask:!1,stencilTest:{enabled:!0,frontFunction:zn.EQUAL,frontOperation:{fail:lt.KEEP,zFail:lt.KEEP,zPass:lt.KEEP},backFunction:zn.NEVER,reference:0,mask:Lt.CLASSIFICATION_MASK},blending:un.ALPHA_BLEND},Pct={depthMask:!1,stencilTest:{enabled:!0,frontFunction:zn.NOT_EQUAL,frontOperation:{fail:lt.KEEP,zFail:lt.KEEP,zPass:lt.KEEP},backFunction:zn.NEVER,reference:0,mask:Lt.CLASSIFICATION_MASK},blending:un.ALPHA_BLEND},Oct={depthMask:!0,depthTest:{enabled:!0},stencilTest:Lt.setCesium3DTileBit(),stencilMask:Lt.CESIUM_3D_TILE_MASK,blending:un.ALPHA_BLEND},Rct=`uniform sampler2D colorTexture;
  8747. uniform sampler2D depthTexture;
  8748. uniform sampler2D classifiedTexture;
  8749. in vec2 v_textureCoordinates;
  8750. void main()
  8751. {
  8752. vec4 color = texture(colorTexture, v_textureCoordinates);
  8753. if (color.a == 0.0)
  8754. {
  8755. discard;
  8756. }
  8757. bool isClassified = all(equal(texture(classifiedTexture, v_textureCoordinates), vec4(0.0)));
  8758. #ifdef UNCLASSIFIED
  8759. vec4 highlightColor = czm_invertClassificationColor;
  8760. if (isClassified)
  8761. {
  8762. discard;
  8763. }
  8764. #else
  8765. vec4 highlightColor = vec4(1.0);
  8766. if (!isClassified)
  8767. {
  8768. discard;
  8769. }
  8770. #endif
  8771. out_FragColor = color * highlightColor;
  8772. gl_FragDepth = texture(depthTexture, v_textureCoordinates).r;
  8773. }
  8774. `,Mct=`uniform sampler2D colorTexture;
  8775. in vec2 v_textureCoordinates;
  8776. void main()
  8777. {
  8778. vec4 color = texture(colorTexture, v_textureCoordinates);
  8779. if (color.a == 0.0)
  8780. {
  8781. discard;
  8782. }
  8783. #ifdef UNCLASSIFIED
  8784. out_FragColor = color * czm_invertClassificationColor;
  8785. #else
  8786. out_FragColor = color;
  8787. #endif
  8788. }
  8789. `;Lm.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=!u(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(),u(this._previousFramebuffer)||(this._depthStencilTexture=new It({context:e,width:s,height:a,pixelFormat:nt.DEPTH_STENCIL,pixelDatatype:Ye.UNSIGNED_INT_24_8}),t>1&&(this._depthStencilRenderbuffer=new $l({context:e,width:s,height:a,format:Ac.DEPTH24_STENCIL8,numSamples:t})))),!u(this._fbo.framebuffer)||c||o||r){this._fbo.destroy(),this._fboClassified.destroy();let l,f;u(this._previousFramebuffer)?(l=n.getDepthStencilTexture(),f=n.getDepthStencilRenderbuffer()):(l=this._depthStencilTexture,f=this._depthStencilRenderbuffer),this._fbo.setDepthStencilTexture(l),u(f)&&this._fbo.setDepthStencilRenderbuffer(f),this._fbo.update(e,s,a,t),u(this._previousFramebuffer)||(this._fboClassified.setDepthStencilTexture(l),this._fboClassified.update(e,s,a))}if(u(this._rsUnclassified)||(this._rsUnclassified=ke.fromCache(Ict),this._rsClassified=ke.fromCache(Pct),this._rsDefault=ke.fromCache(Oct)),!u(this._unclassifiedCommand)||o||r){u(this._unclassifiedCommand)&&(this._unclassifiedCommand.shaderProgram=this._unclassifiedCommand.shaderProgram&&this._unclassifiedCommand.shaderProgram.destroy(),this._classifiedCommand.shaderProgram=this._classifiedCommand.shaderProgram&&this._classifiedCommand.shaderProgram.destroy());let l=u(this._previousFramebuffer)?Mct:Rct,f=new Ue({defines:["UNCLASSIFIED"],sources:[l]}),d=new Ue({sources:[l]});this._unclassifiedCommand=e.createViewportQuadCommand(f,{renderState:u(this._previousFramebuffer)?this._rsUnclassified:this._rsDefault,uniformMap:this._uniformMap,owner:this}),this._classifiedCommand=e.createViewportQuadCommand(d,{renderState:u(this._previousFramebuffer)?this._rsClassified:this._rsDefault,uniformMap:this._uniformMap,owner:this}),u(this._translucentCommand)&&(this._translucentCommand.shaderProgram=this._translucentCommand.shaderProgram&&this._translucentCommand.shaderProgram.destroy()),u(this._previousFramebuffer)||(this._translucentCommand=e.createViewportQuadCommand(Hl,{renderState:this._rsUnclassified,uniformMap:this._uniformMap,owner:this}))}};Lm.prototype.prepareTextures=function(e,t){this._fbo._numSamples>1&&this._fbo.prepareTextures(e,t)};Lm.prototype.clear=function(e,t){u(this._previousFramebuffer)?this._fbo.clear(e,this._clearColorCommand,t):(this._fbo.clear(e,this._clearCommand,t),this._fboClassified.clear(e,this._clearCommand,t))};Lm.prototype.executeClassified=function(e,t){if(!u(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)};Lm.prototype.executeUnclassified=function(e,t){this._unclassifiedCommand.execute(e,t)};Lm.prototype.isDestroyed=function(){return!1};Lm.prototype.destroy=function(){return this._fbo.destroy(),this._fboClassified.destroy(),this._depthStencilTexture=this._depthStencilTexture&&this._depthStencilTexture.destroy(),this._depthStencilRenderbuffer=this._depthStencilRenderbuffer&&this._depthStencilRenderbuffer.destroy(),u(this._unclassifiedCommand)&&(this._unclassifiedCommand.shaderProgram=this._unclassifiedCommand.shaderProgram&&this._unclassifiedCommand.shaderProgram.destroy(),this._classifiedCommand.shaderProgram=this._classifiedCommand.shaderProgram&&this._classifiedCommand.shaderProgram.destroy()),le(this)};var mS=Lm;function q4(e){this._total=e,this.usedThisFrame=0,this.stolenFromMeThisFrame=0,this.starvedThisFrame=!1,this.starvedLastFrame=!1}Object.defineProperties(q4.prototype,{total:{get:function(){return this._total}}});function Yy(e){let t=new Array(xa.NUMBER_OF_JOB_TYPES);t[xa.TEXTURE]=new q4(u(e)?e[xa.TEXTURE]:10),t[xa.PROGRAM]=new q4(u(e)?e[xa.PROGRAM]:10),t[xa.BUFFER]=new q4(u(e)?e[xa.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}Yy.getTimestamp=_i;Object.defineProperties(Yy.prototype,{totalBudget:{get:function(){return this._totalBudget}}});Yy.prototype.disableThisFrame=function(){this._totalUsedThisFrame=this._totalBudget};Yy.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};Yy.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,l;for(l=0;l<c&&(r=n[l],!(r.usedThisFrame+r.stolenFromMeThisFrame<r.total&&!r.starvedLastFrame));++l);if(l===c&&o)return!1;o&&(i.starvedThisFrame=!0)}let s=Yy.getTimestamp();e.execute();let a=Yy.getTimestamp()-s;return this._totalUsedThisFrame+=a,r?r.stolenFromMeThisFrame+=a:i.usedThisFrame+=a,this._executedThisFrame[t]=!0,!0};var QN=Yy;function Y4(e){e=y(e,y.EMPTY_OBJECT);let t=wn(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=_i(),this._lastMsSampleTime=_i(),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(Y4.prototype,{throttled:{get:function(){return this._throttled},set:function(e){this._throttled!==e&&(e?this._throttledText.nodeValue="(throttled)":this._throttledText.nodeValue="",this._throttled=e)}}});Y4.prototype.update=function(e){let t=_i(),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}};Y4.prototype.destroy=function(){return le(this)};var V_=Y4;function oT(){this._framebuffer=new ui,this._textureToCopy=void 0,this._copyDepthCommand=void 0}Object.defineProperties(oT.prototype,{framebuffer:{get:function(){return this._framebuffer.framebuffer}}});function Lct(e,t,n){let i=n.width,o=n.height;e._framebuffer.update(t,i,o)}function Nct(e,t,n){if(!u(e._copyDepthCommand)){let i=`uniform highp sampler2D u_texture;
  8790. in vec2 v_textureCoordinates;
  8791. void main()
  8792. {
  8793. out_FragColor = czm_packDepth(texture(u_texture, v_textureCoordinates).r);
  8794. }
  8795. `;e._copyDepthCommand=t.createViewportQuadCommand(i,{renderState:ke.fromCache(),uniformMap:{u_texture:function(){return e._textureToCopy}},owner:e})}e._textureToCopy=n,e._copyDepthCommand.framebuffer=e.framebuffer}oT.prototype.update=function(e,t){Lct(this,e,t),Nct(this,e,t)};var Fct=new oe,Bct=new oe(1,1/255,1/65025,1/16581375);oT.prototype.getDepth=function(e,t,n){if(!u(this.framebuffer))return;let i=e.readPixels({x:t,y:n,width:1,height:1,framebuffer:this.framebuffer}),o=oe.unpack(i,0,Fct);return oe.divideByScalar(o,255,o),oe.dot(o,Bct)};oT.prototype.executeCopyDepth=function(e,t){this._copyDepthCommand.execute(e,t)};oT.prototype.isDestroyed=function(){return!1};oT.prototype.destroy=function(){return this._framebuffer.destroy(),u(this._copyDepthCommand)&&(this._copyDepthCommand.shaderProgram=u(this._copyDepthCommand.shaderProgram)&&this._copyDepthCommand.shaderProgram.destroy()),le(this)};var JN=oT;function kct(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 e2=kct;var Xy=`uniform highp sampler2D u_depthTexture;
  8796. in vec2 v_textureCoordinates;
  8797. void main()
  8798. {
  8799. out_FragColor = czm_packDepth(texture(u_depthTexture, v_textureCoordinates).r);
  8800. }
  8801. `;function Nm(){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 We,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(Nm.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 Uct(e){e._pickColorFramebuffer.destroy(),e._outputFramebuffer.destroy(),e._copyDepthFramebuffer.destroy(),e._tempCopyDepthFramebuffer.destroy(),e._updateDepthFramebuffer.destroy()}function eye(e,t,n,i,o){e._viewport.width=n,e._viewport.height=i;let r=!We.equals(e._viewport,o.viewport),s=r!==e._useScissorTest;e._useScissorTest=r,We.equals(e._scissorRectangle,o.viewport)||(e._scissorRectangle=We.clone(o.viewport,e._scissorRectangle),s=!0),(!u(e._rs)||!We.equals(e._viewport,e._rs.viewport)||s)&&(e._rs=ke.fromCache({viewport:e._viewport,scissorTest:{enabled:e._useScissorTest,rectangle:e._scissorRectangle}}),e._rsBlend=ke.fromCache({viewport:e._viewport,scissorTest:{enabled:e._useScissorTest,rectangle:e._scissorRectangle},blending:un.ALPHA_BLEND}),e._rsUpdate=ke.fromCache({viewport:e._viewport,scissorTest:{enabled:e._useScissorTest,rectangle:e._scissorRectangle},stencilTest:{enabled:!0,frontFunction:zn.EQUAL,frontOperation:{fail:lt.KEEP,zFail:lt.KEEP,zPass:lt.KEEP},backFunction:zn.NEVER,reference:Lt.CESIUM_3D_TILE_MASK,mask:Lt.CESIUM_3D_TILE_MASK}})),u(e._copyDepthCommand)||(e._copyDepthCommand=t.createViewportQuadCommand(Xy,{uniformMap:{u_depthTexture:function(){return e.colorFramebufferManager.getDepthStencilTexture()}},owner:e})),e._copyDepthCommand.framebuffer=e._copyDepthFramebuffer.framebuffer,e._copyDepthCommand.renderState=e._rs,u(e._copyColorCommand)||(e._copyColorCommand=t.createViewportQuadCommand(Hl,{uniformMap:{colorTexture:function(){return e.colorFramebufferManager.getColorTexture()}},owner:e})),e._copyColorCommand.renderState=e._rs,u(e._tempCopyDepthCommand)||(e._tempCopyDepthCommand=t.createViewportQuadCommand(Xy,{uniformMap:{u_depthTexture:function(){return e._tempCopyDepthTexture}},owner:e})),e._tempCopyDepthCommand.framebuffer=e._tempCopyDepthFramebuffer.framebuffer,e._tempCopyDepthCommand.renderState=e._rs,u(e._updateDepthCommand)||(e._updateDepthCommand=t.createViewportQuadCommand(Hl,{uniformMap:{colorTexture:function(){return e._tempCopyDepthFramebuffer.getColorTexture()}},owner:e})),e._updateDepthCommand.framebuffer=e._updateDepthFramebuffer.framebuffer,e._updateDepthCommand.renderState=e._rsUpdate,u(e._clearGlobeColorCommand)||(e._clearGlobeColorCommand=new ti({color:new H(0,0,0,0),stencil:0,owner:e})),e._clearGlobeColorCommand.framebuffer=e.framebuffer}Nm.prototype.update=function(e,t,n,i,o,r){let s=n.width,a=n.height,c=o?e.halfFloatingPointTexture?Ye.HALF_FLOAT:Ye.FLOAT:Ye.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),eye(this,e,s,a,t),e.uniformState.globeDepthTexture=void 0,this._useHdr=o,this._clearGlobeDepth=r};Nm.prototype.prepareColorTextures=function(e,t){!this.picking&&this._numSamples>1&&this._outputFramebuffer.prepareTextures(e,t)};Nm.prototype.executeCopyDepth=function(e,t){u(this._copyDepthCommand)&&(this.prepareColorTextures(e),this._copyDepthCommand.execute(e,t),e.uniformState.globeDepthTexture=this._copyDepthFramebuffer.getColorTexture())};Nm.prototype.executeUpdateDepth=function(e,t,n,i){let o=u(i)?i:t.framebuffer.depthStencilTexture;if(n||o!==this.colorFramebufferManager.getDepthStencilTexture()){if(u(this._updateDepthCommand)){if(!u(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),eye(this,e,r,s,t)}this._tempCopyDepthTexture=o,this._tempCopyDepthCommand.execute(e,t),this._updateDepthCommand.execute(e,t)}return}u(this._copyDepthCommand)&&this._copyDepthCommand.execute(e,t)};Nm.prototype.executeCopyColor=function(e,t){u(this._copyColorCommand)&&this._copyColorCommand.execute(e,t)};Nm.prototype.clear=function(e,t,n){let i=this._clearGlobeColorCommand;u(i)&&(H.clone(n,i.color),this.colorFramebufferManager.clear(e,i,t))};Nm.prototype.isDestroyed=function(){return!1};Nm.prototype.destroy=function(){return Uct(this),u(this._copyColorCommand)&&(this._copyColorCommand.shaderProgram=this._copyColorCommand.shaderProgram.destroy()),u(this._copyDepthCommand)&&(this._copyDepthCommand.shaderProgram=this._copyDepthCommand.shaderProgram.destroy()),u(this._tempCopyDepthCommand)&&(this._tempCopyDepthCommand.shaderProgram=this._tempCopyDepthCommand.shaderProgram.destroy()),u(this._updateDepthCommand)&&(this._updateDepthCommand.shaderProgram=this._updateDepthCommand.shaderProgram.destroy()),le(this)};var t2=Nm;function rT(){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 We,this._useScissorTest=!1,this._scissorRectangle=void 0,this._useHdr=void 0}Object.defineProperties(rT.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 Vct(e){e._framebuffer.destroy(),e._packedDepthFramebuffer.destroy()}function zct(e,t,n,i,o){let r=o?t.halfFloatingPointTexture?Ye.HALF_FLOAT:Ye.FLOAT:Ye.UNSIGNED_BYTE;e._framebuffer.update(t,n,i,1,r),e._packedDepthFramebuffer.update(t,n,i)}function Hct(e,t,n,i,o){e._viewport.width=n,e._viewport.height=i;let r=!We.equals(e._viewport,o.viewport),s=r!==e._useScissorTest;e._useScissorTest=r,We.equals(e._scissorRectangle,o.viewport)||(e._scissorRectangle=We.clone(o.viewport,e._scissorRectangle),s=!0),(!u(e._renderState)||!We.equals(e._viewport,e._renderState.viewport)||s)&&(e._renderState=ke.fromCache({viewport:e._viewport,scissorTest:{enabled:e._useScissorTest,rectangle:e._scissorRectangle}})),u(e._packedDepthCommand)||(e._packedDepthCommand=t.createViewportQuadCommand(Xy,{uniformMap:{u_depthTexture:function(){return e.depthStencilTexture}},owner:e})),u(e._clearCommand)||(e._clearCommand=new ti({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}rT.prototype.updateAndClear=function(e,t,n,i){let o=t.width,r=t.height;zct(this,n,o,r,e),Hct(this,n,o,r,i),this._useHdr=e};rT.prototype.clearClassification=function(e,t){this._clearCommand.execute(e,t)};rT.prototype.packDepth=function(e,t){return this._packedDepthCommand.execute(e,t),this.packedDepthTexture};rT.prototype.isDestroyed=function(){return!1};rT.prototype.destroy=function(){return Vct(this),le(this)};var n2=rT;var pS=`#ifdef MRT
  8802. layout (location = 0) out vec4 out_FragData_0;
  8803. layout (location = 1) out vec4 out_FragData_1;
  8804. #else
  8805. layout (location = 0) out vec4 out_FragColor;
  8806. #endif
  8807. uniform vec4 u_bgColor;
  8808. uniform sampler2D u_depthTexture;
  8809. in vec2 v_textureCoordinates;
  8810. void main()
  8811. {
  8812. if (texture(u_depthTexture, v_textureCoordinates).r < 1.0)
  8813. {
  8814. #ifdef MRT
  8815. out_FragData_0 = u_bgColor;
  8816. out_FragData_1 = vec4(u_bgColor.a);
  8817. #else
  8818. out_FragColor = u_bgColor;
  8819. #endif
  8820. return;
  8821. }
  8822. discard;
  8823. }
  8824. `;var i2=`/**
  8825. * Compositing for Weighted Blended Order-Independent Transparency. See:
  8826. * - http://jcgt.org/published/0002/02/09/
  8827. * - http://casual-effects.blogspot.com/2014/03/weighted-blended-order-independent.html
  8828. */
  8829. uniform sampler2D u_opaque;
  8830. uniform sampler2D u_accumulation;
  8831. uniform sampler2D u_revealage;
  8832. in vec2 v_textureCoordinates;
  8833. void main()
  8834. {
  8835. vec4 opaque = texture(u_opaque, v_textureCoordinates);
  8836. vec4 accum = texture(u_accumulation, v_textureCoordinates);
  8837. float r = texture(u_revealage, v_textureCoordinates).r;
  8838. #ifdef MRT
  8839. vec4 transparent = vec4(accum.rgb / clamp(r, 1e-4, 5e4), accum.a);
  8840. #else
  8841. vec4 transparent = vec4(accum.rgb / clamp(accum.a, 1e-4, 5e4), r);
  8842. #endif
  8843. out_FragColor = (1.0 - transparent.a) * transparent + transparent.a * opaque;
  8844. if (opaque != czm_backgroundColor)
  8845. {
  8846. out_FragColor.a = 1.0;
  8847. }
  8848. }
  8849. `;function z_(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 ti({color:new H(0,0,0,0),owner:this}),this._translucentMRTClearCommand=new ti({color:new H(0,0,0,1),owner:this}),this._translucentMultipassClearCommand=new ti({color:new H(0,0,0,0),owner:this}),this._alphaClearCommand=new ti({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 We,this._rs=void 0,this._useScissorTest=!1,this._scissorRectangle=void 0,this._useHDR=!1}function tye(e){e._accumulationTexture=e._accumulationTexture&&!e._accumulationTexture.isDestroyed()&&e._accumulationTexture.destroy(),e._revealageTexture=e._revealageTexture&&!e._revealageTexture.isDestroyed()&&e._revealageTexture.destroy()}function Vq(e){e._translucentFBO.destroy(),e._alphaFBO.destroy(),e._adjustTranslucentFBO.destroy(),e._adjustAlphaFBO.destroy()}function nye(e){tye(e),Vq(e)}function Gct(e,t,n,i){tye(e),e._accumulationTexture=new It({context:t,width:n,height:i,pixelFormat:nt.RGBA,pixelDatatype:Ye.FLOAT});let o=new Float32Array(n*i*4);e._revealageTexture=new It({context:t,pixelFormat:nt.RGBA,pixelDatatype:Ye.FLOAT,source:{arrayBufferView:o,width:n,height:i},flipY:!1})}function Wct(e,t){Vq(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)&&(Vq(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,l=e._adjustAlphaFBO.status===n;(!s||!a||!c||!l)&&(nye(e),e._translucentMultipassSupport=!1,i=!1)}return i}z_.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=!u(a)||a.width!==r||a.height!==s||i!==this._useHDR,l=this._numSamples!==o;if((c||l)&&(this._numSamples=o,Gct(this,e,r,s)),(!u(this._translucentFBO.framebuffer)||c||l)&&!Wct(this,e))return;this._useHDR=i;let f=this,d,p;u(this._compositeCommand)||(d=new Ue({sources:[i2]}),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})),u(this._adjustTranslucentCommand)||(this._translucentMRTSupport?(d=new Ue({defines:["MRT"],sources:[pS]}),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 Ue({sources:[pS]}),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=!We.equals(this._viewport,t.viewport),m=g!==this._useScissorTest;this._useScissorTest=g,We.equals(this._scissorRectangle,t.viewport)||(this._scissorRectangle=We.clone(t.viewport,this._scissorRectangle),m=!0),(!u(this._rs)||!We.equals(this._viewport,this._rs.viewport)||m)&&(this._rs=ke.fromCache({viewport:this._viewport,scissorTest:{enabled:this._useScissorTest,rectangle:this._scissorRectangle}})),u(this._compositeCommand)&&(this._compositeCommand.renderState=this._rs),this._adjustTranslucentCommand&&(this._adjustTranslucentCommand.renderState=this._rs),u(this._adjustAlphaCommand)&&(this._adjustAlphaCommand.renderState=this._rs)};var jct={enabled:!0,color:new H(0,0,0,0),equationRgb:pa.ADD,equationAlpha:pa.ADD,functionSourceRgb:To.ONE,functionDestinationRgb:To.ONE,functionSourceAlpha:To.ZERO,functionDestinationAlpha:To.ONE_MINUS_SOURCE_ALPHA},qct={enabled:!0,color:new H(0,0,0,0),equationRgb:pa.ADD,equationAlpha:pa.ADD,functionSourceRgb:To.ONE,functionDestinationRgb:To.ONE,functionSourceAlpha:To.ONE,functionDestinationAlpha:To.ONE},Yct={enabled:!0,color:new H(0,0,0,0),equationRgb:pa.ADD,equationAlpha:pa.ADD,functionSourceRgb:To.ZERO,functionDestinationRgb:To.ONE_MINUS_SOURCE_ALPHA,functionSourceAlpha:To.ZERO,functionDestinationAlpha:To.ONE_MINUS_SOURCE_ALPHA};function zq(e,t,n,i){let o=n[i.id];if(!u(o)){let r=ke.getState(i);r.depthMask=!1,r.blending=t,o=ke.fromCache(r),n[i.id]=o}return o}function Xct(e,t,n){return zq(t,jct,e._translucentRenderStateCache,n)}function Kct(e,t,n){return zq(t,qct,e._translucentRenderStateCache,n)}function Zct(e,t,n){return zq(t,Yct,e._alphaRenderStateCache,n)}var $ct=` vec3 Ci = czm_out_FragColor.rgb * czm_out_FragColor.a;
  8850. float ai = czm_out_FragColor.a;
  8851. float wzi = czm_alphaWeight(ai);
  8852. out_FragData_0 = vec4(Ci * wzi, ai);
  8853. out_FragData_1 = vec4(ai * wzi);
  8854. `,Qct=` vec3 Ci = czm_out_FragColor.rgb * czm_out_FragColor.a;
  8855. float ai = czm_out_FragColor.a;
  8856. float wzi = czm_alphaWeight(ai);
  8857. out_FragColor = vec4(Ci, ai) * wzi;
  8858. `,Jct=` float ai = czm_out_FragColor.a;
  8859. out_FragColor = vec4(ai);
  8860. `;function Hq(e,t,n,i){let{shaderCache:o}=e,r=o.getDerivedShaderProgram(t,n);if(u(r))return r;let s=t._attributeLocations,a=t.fragmentShaderSource.clone();a.sources=a.sources.map(function(f){return Ue.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;
  8861. bool czm_discard = false;
  8862. `);let c=[...i.matchAll(/out_FragData_(\d+)/g)],l="";for(let f=0;f<c.length;f++){let d=c[f];l=`layout (location = ${d[1]}) out vec4 ${d[0]};
  8863. ${l}`}return a.sources.push(l),a.sources.push(`void main()
  8864. {
  8865. czm_translucent_main();
  8866. if (czm_discard)
  8867. {
  8868. discard;
  8869. }
  8870. ${i}}
  8871. `),o.createDerivedShaderProgram(t,n,{vertexShaderSource:t.vertexShaderSource,fragmentShaderSource:a,attributeLocations:s})}function elt(e,t){return Hq(e,t,"translucentMRT",$ct)}function tlt(e,t){return Hq(e,t,"translucentMultipass",Qct)}function nlt(e,t){return Hq(e,t,"alphaMultipass",Jct)}z_.prototype.createDerivedCommands=function(e,t,n){if(u(n)||(n={}),this._translucentMRTSupport){let a,c;return u(n.translucentCommand)&&(a=n.translucentCommand.shaderProgram,c=n.translucentCommand.renderState),n.translucentCommand=Je.shallowClone(e,n.translucentCommand),!u(a)||n.shaderProgramId!==e.shaderProgram.id?(n.translucentCommand.shaderProgram=elt(t,e.shaderProgram),n.translucentCommand.renderState=Xct(this,t,e.renderState),n.shaderProgramId=e.shaderProgram.id):(n.translucentCommand.shaderProgram=a,n.translucentCommand.renderState=c),n}let i,o,r,s;return u(n.translucentCommand)&&(i=n.translucentCommand.shaderProgram,o=n.translucentCommand.renderState,r=n.alphaCommand.shaderProgram,s=n.alphaCommand.renderState),n.translucentCommand=Je.shallowClone(e,n.translucentCommand),n.alphaCommand=Je.shallowClone(e,n.alphaCommand),!u(i)||n.shaderProgramId!==e.shaderProgram.id?(n.translucentCommand.shaderProgram=tlt(t,e.shaderProgram),n.translucentCommand.renderState=Kct(this,t,e.renderState),n.alphaCommand.shaderProgram=nlt(t,e.shaderProgram),n.alphaCommand.renderState=Zct(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 ilt(e,t,n,i,o,r){let s,a,c,{context:l,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(l,i),i.framebuffer=e._adjustAlphaFBO.framebuffer,e._adjustAlphaCommand.execute(l,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,l,i,b);for(u(r)&&(s=r.unclassifiedCommand,a=x&&s.receiveShadows?s.derivedCommands.oit.shadows.translucentCommand:s.derivedCommands.oit.translucentCommand,n(a,t,l,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,l,i,b);u(r)&&(s=r.unclassifiedCommand,a=x&&s.receiveShadows?s.derivedCommands.oit.shadows.alphaCommand:s.derivedCommands.oit.alphaCommand,n(a,t,l,i,b)),i.framebuffer=m}function olt(e,t,n,i,o,r){let{context:s,frameState:a}=t,{useLogDepth:c,shadowState:l}=a,f=t._hdr,d=i.framebuffer,p=l.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);u(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}z_.prototype.executeCommands=function(e,t,n,i,o){if(this._translucentMRTSupport){olt(this,e,t,n,i,o);return}ilt(this,e,t,n,i,o)};z_.prototype.execute=function(e,t){this._compositeCommand.execute(e,t)};z_.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};z_.prototype.isSupported=function(){return this._translucentMRTSupport||this._translucentMultipassSupport};z_.prototype.isDestroyed=function(){return!1};z_.prototype.destroy=function(){return nye(this),u(this._compositeCommand)&&(this._compositeCommand.shaderProgram=this._compositeCommand.shaderProgram&&this._compositeCommand.shaderProgram.destroy()),u(this._adjustTranslucentCommand)&&(this._adjustTranslucentCommand.shaderProgram=this._adjustTranslucentCommand.shaderProgram&&this._adjustTranslucentCommand.shaderProgram.destroy()),u(this._adjustAlphaCommand)&&(this._adjustAlphaCommand.shaderProgram=this._adjustAlphaCommand.shaderProgram&&this._adjustAlphaCommand.shaderProgram.destroy()),le(this)};var o2=z_;function r2(){this._framebuffer=new ui({color:!1,depthStencil:!0,supportsDepthTexture:!0}),this._passState=void 0}Object.defineProperties(r2.prototype,{framebuffer:{get:function(){return this._framebuffer.framebuffer}}});function rlt(e){e._framebuffer.destroy()}function slt(e,t){let n=t.drawingBufferWidth,i=t.drawingBufferHeight;e._framebuffer.update(t,n,i);let o=new Ga(t);o.blendingEnabled=!1,o.scissorTest={enabled:!0,rectangle:new We},o.viewport=new We,e._passState=o}r2.prototype.update=function(e,t,n){let i=n.width,o=n.height;this._framebuffer.isDirty(i,o)&&slt(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};r2.prototype.isDestroyed=function(){return!1};r2.prototype.destroy=function(){return rlt(this),le(this)};var s2=r2;function c2(e){let t=new Ga(e);t.blendingEnabled=!1,t.scissorTest={enabled:!0,rectangle:new We},t.viewport=new We,this._context=e,this._fb=new ui({depthStencil:!0}),this._passState=t,this._width=0,this._height=0}c2.prototype.begin=function(e,t){let n=this._context,i=t.width,o=t.height;return We.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 a2=new H;c2.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),l=0,f=0,d=0,p=-1;for(let g=0;g<s;++g){if(-a<=l&&l<=a&&-c<=f&&f<=c){let m=4*((c-f)*t+l+a);a2.red=H.byteToFloat(o[m]),a2.green=H.byteToFloat(o[m+1]),a2.blue=H.byteToFloat(o[m+2]),a2.alpha=H.byteToFloat(o[m+3]);let x=i.getObjectByPickColor(a2);if(u(x))return x}if(l===f||l<0&&-l===f||l>0&&l===1-f){let m=d;d=-p,p=m}l+=d,f+=p}};c2.prototype.isDestroyed=function(){return!1};c2.prototype.destroy=function(){return this._fb.destroy(),le(this)};var l2=c2;function H_(){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 ti({color:new H(0,0,0,0),depth:1,owner:this})}function alt(e){e._colorFramebuffer.destroy(),e._idFramebuffer.destroy()}Object.defineProperties(H_.prototype,{framebuffer:{get:function(){return this._colorFramebuffer.framebuffer}},idFramebuffer:{get:function(){return this._idFramebuffer.framebuffer}},depthStencilTexture:{get:function(){return this._colorFramebuffer.getDepthStencilTexture()}}});H_.prototype.update=function(e,t,n,i){let o=t.width,r=t.height,s=n?e.halfFloatingPointTexture?Ye.HALF_FLOAT:Ye.FLOAT:Ye.UNSIGNED_BYTE;this._numSamples=i,this._colorFramebuffer.update(e,o,r,i,s),this._idFramebuffer.update(e,o,r)};H_.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)};H_.prototype.getFramebuffer=function(){return this._colorFramebuffer.framebuffer};H_.prototype.getIdFramebuffer=function(){return this._idFramebuffer.framebuffer};H_.prototype.prepareColorTextures=function(e){this._numSamples>1&&this._colorFramebuffer.prepareTextures(e)};H_.prototype.isDestroyed=function(){return!1};H_.prototype.destroy=function(){return alt(this),le(this)};var sT=H_;function aT(){}aT.getShadowCastShaderKeyword=function(e,t,n,i){return`castShadow ${e} ${t} ${n} ${i}`};aT.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=Ue.findPositionVarying(e),s=u(r);if(t&&!s){let a=o.length;for(let l=0;l<a;++l)o[l]=Ue.replaceMain(o[l],"czm_shadow_cast_main");let c=`out vec3 v_positionEC;
  8872. void main()
  8873. {
  8874. czm_shadow_cast_main();
  8875. v_positionEC = (czm_inverseProjection * gl_Position).xyz;
  8876. }`;o.push(c)}return new Ue({defines:i,sources:o})};aT.createShadowCastFragmentShader=function(e,t,n,i){let o=e.defines.slice(0),r=e.sources.slice(0);o.push("SHADOW_MAP");let s=Ue.findPositionVarying(e),a=u(s);a||(s="v_positionEC");let c=r.length;for(let f=0;f<c;++f)r[f]=Ue.replaceMain(r[f],"czm_shadow_cast_main");let l="";return t&&(a||(l+=`in vec3 v_positionEC;
  8877. `),l+=`uniform vec4 shadowMap_lightPositionEC;
  8878. `),i?l+=`void main()
  8879. {
  8880. `:l+=`void main()
  8881. {
  8882. czm_shadow_cast_main();
  8883. if (out_FragColor.a == 0.0)
  8884. {
  8885. discard;
  8886. }
  8887. `,t?l+=` float distance = length(${s});
  8888. if (distance >= shadowMap_lightPositionEC.w)
  8889. {
  8890. discard;
  8891. }
  8892. distance /= shadowMap_lightPositionEC.w; // radius
  8893. out_FragColor = czm_packDepth(distance);
  8894. `:n?l+=` out_FragColor = vec4(1.0);
  8895. `:l+=` out_FragColor = czm_packDepth(gl_FragCoord.z);
  8896. `,l+=`}
  8897. `,r.push(l),new Ue({defines:o,sources:r})};aT.getShadowReceiveShaderKeyword=function(e,t,n,i){let o=e._usesDepthTexture,r=e._polygonOffsetSupported,s=e._isPointLight,a=e._isSpotLight,c=e._numberOfCascades>1,l=e.debugCascadeColors,f=e.softShadows;return`receiveShadow ${o}${r}${s}${a}${c}${l}${f}${t}${n}${i}`};aT.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 Ue({defines:i,sources:o})};aT.createShadowReceiveFragmentShader=function(e,t,n,i,o){let r=Ue.findNormalVarying(e),s=!i&&u(r)||i&&o,a=Ue.findPositionVarying(e),c=u(a),l=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),A=e.sources.slice(0),C=A.length;for(let D=0;D<C;++D)A[D]=Ue.replaceMain(A[D],"czm_shadow_receive_main");d?T.push("USE_CUBE_MAP_SHADOW"):l&&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 S="";d?S+=`uniform samplerCube shadowMap_textureCube;
  8898. `:S+=`uniform sampler2D shadowMap_texture;
  8899. `;let w;return c?w=` return vec4(${a}, 1.0);
  8900. `:w=`#ifndef LOG_DEPTH
  8901. return czm_windowToEyeCoordinates(gl_FragCoord);
  8902. #else
  8903. return vec4(v_logPositionEC, 1.0);
  8904. #endif
  8905. `,S+=`uniform mat4 shadowMap_matrix;
  8906. uniform vec3 shadowMap_lightDirectionEC;
  8907. uniform vec4 shadowMap_lightPositionEC;
  8908. uniform vec4 shadowMap_normalOffsetScaleDistanceMaxDistanceAndDarkness;
  8909. uniform vec4 shadowMap_texelSizeDepthBiasAndNormalShadingSmooth;
  8910. #ifdef LOG_DEPTH
  8911. in vec3 v_logPositionEC;
  8912. #endif
  8913. vec4 getPositionEC()
  8914. {
  8915. ${w}}
  8916. vec3 getNormalEC()
  8917. {
  8918. ${s?` return normalize(${r});
  8919. `:` return vec3(1.0);
  8920. `}}
  8921. void applyNormalOffset(inout vec4 positionEC, vec3 normalEC, float nDotL)
  8922. {
  8923. ${b.normalOffset&&s?` float normalOffset = shadowMap_normalOffsetScaleDistanceMaxDistanceAndDarkness.x;
  8924. float normalOffsetScale = 1.0 - nDotL;
  8925. vec3 offset = normalOffset * normalOffsetScale * normalEC;
  8926. positionEC.xyz += offset;
  8927. `:""}}
  8928. `,S+=`void main()
  8929. {
  8930. czm_shadow_receive_main();
  8931. vec4 positionEC = getPositionEC();
  8932. vec3 normalEC = getNormalEC();
  8933. float depth = -positionEC.z;
  8934. `,S+=` czm_shadowParameters shadowParameters;
  8935. shadowParameters.texelStepSize = shadowMap_texelSizeDepthBiasAndNormalShadingSmooth.xy;
  8936. shadowParameters.depthBias = shadowMap_texelSizeDepthBiasAndNormalShadingSmooth.z;
  8937. shadowParameters.normalShadingSmooth = shadowMap_texelSizeDepthBiasAndNormalShadingSmooth.w;
  8938. shadowParameters.darkness = shadowMap_normalOffsetScaleDistanceMaxDistanceAndDarkness.w;
  8939. `,i?S+=` shadowParameters.depthBias *= max(depth * 0.01, 1.0);
  8940. `:f||(S+=` shadowParameters.depthBias *= mix(1.0, 100.0, depth * 0.0015);
  8941. `),d?S+=` vec3 directionEC = positionEC.xyz - shadowMap_lightPositionEC.xyz;
  8942. float distance = length(directionEC);
  8943. directionEC = normalize(directionEC);
  8944. float radius = shadowMap_lightPositionEC.w;
  8945. // Stop early if the fragment is beyond the point light radius
  8946. if (distance > radius)
  8947. {
  8948. return;
  8949. }
  8950. vec3 directionWC = czm_inverseViewRotation * directionEC;
  8951. shadowParameters.depth = distance / radius;
  8952. shadowParameters.nDotL = clamp(dot(normalEC, -directionEC), 0.0, 1.0);
  8953. shadowParameters.texCoords = directionWC;
  8954. float visibility = czm_shadowVisibility(shadowMap_textureCube, shadowParameters);
  8955. `:p?S+=` vec3 directionEC = normalize(positionEC.xyz - shadowMap_lightPositionEC.xyz);
  8956. float nDotL = clamp(dot(normalEC, -directionEC), 0.0, 1.0);
  8957. applyNormalOffset(positionEC, normalEC, nDotL);
  8958. vec4 shadowPosition = shadowMap_matrix * positionEC;
  8959. // Spot light uses a perspective projection, so perform the perspective divide
  8960. shadowPosition /= shadowPosition.w;
  8961. // Stop early if the fragment is not in the shadow bounds
  8962. if (any(lessThan(shadowPosition.xyz, vec3(0.0))) || any(greaterThan(shadowPosition.xyz, vec3(1.0))))
  8963. {
  8964. return;
  8965. }
  8966. shadowParameters.texCoords = shadowPosition.xy;
  8967. shadowParameters.depth = shadowPosition.z;
  8968. shadowParameters.nDotL = nDotL;
  8969. float visibility = czm_shadowVisibility(shadowMap_texture, shadowParameters);
  8970. `:g?S+=` float maxDepth = shadowMap_cascadeSplits[1].w;
  8971. // Stop early if the eye depth exceeds the last cascade
  8972. if (depth > maxDepth)
  8973. {
  8974. return;
  8975. }
  8976. // Get the cascade based on the eye-space depth
  8977. vec4 weights = czm_cascadeWeights(depth);
  8978. // Apply normal offset
  8979. float nDotL = clamp(dot(normalEC, shadowMap_lightDirectionEC), 0.0, 1.0);
  8980. applyNormalOffset(positionEC, normalEC, nDotL);
  8981. // Transform position into the cascade
  8982. vec4 shadowPosition = czm_cascadeMatrix(weights) * positionEC;
  8983. // Get visibility
  8984. shadowParameters.texCoords = shadowPosition.xy;
  8985. shadowParameters.depth = shadowPosition.z;
  8986. shadowParameters.nDotL = nDotL;
  8987. float visibility = czm_shadowVisibility(shadowMap_texture, shadowParameters);
  8988. // Fade out shadows that are far away
  8989. float shadowMapMaximumDistance = shadowMap_normalOffsetScaleDistanceMaxDistanceAndDarkness.z;
  8990. float fade = max((depth - shadowMapMaximumDistance * 0.8) / (shadowMapMaximumDistance * 0.2), 0.0);
  8991. visibility = mix(visibility, 1.0, fade);
  8992. ${m?` // Draw cascade colors for debugging
  8993. out_FragColor *= czm_cascadeColor(weights);
  8994. `:""}`:S+=` float nDotL = clamp(dot(normalEC, shadowMap_lightDirectionEC), 0.0, 1.0);
  8995. applyNormalOffset(positionEC, normalEC, nDotL);
  8996. vec4 shadowPosition = shadowMap_matrix * positionEC;
  8997. // Stop early if the fragment is not in the shadow bounds
  8998. if (any(lessThan(shadowPosition.xyz, vec3(0.0))) || any(greaterThan(shadowPosition.xyz, vec3(1.0))))
  8999. {
  9000. return;
  9001. }
  9002. shadowParameters.texCoords = shadowPosition.xy;
  9003. shadowParameters.depth = shadowPosition.z;
  9004. shadowParameters.nDotL = nDotL;
  9005. float visibility = czm_shadowVisibility(shadowMap_texture, shadowParameters);
  9006. `,S+=` out_FragColor.rgb *= visibility;
  9007. }
  9008. `,A.push(S),new Ue({defines:T,sources:A})};var Fm=aT;function Bm(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;(Bt.isInternetExplorer()||Bt.isEdge()||(Bt.isChrome()||Bt.isFirefox())&&Bt.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 X4,this._shadowMapCullingVolume=void 0,this._sceneCamera=void 0,this._boundingSphere=new se,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 Cr:u(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 clt(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,Wq(this),this._clearCommand=new ti({depth:1,color:new H}),this._clearPassState=new Ga(t),this._size=y(e.size,2048),this.size=this._size}Bm.MAXIMUM_DISTANCE=2e4;function clt(e){this.camera=new X4,this.passState=new Ga(e),this.framebuffer=void 0,this.textureOffsets=void 0,this.commandList=[],this.cullingVolume=void 0}function Gq(e,t){return ke.fromCache({cull:{enabled:!0,face:pi.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 Wq(e){let t=!e._usesDepthTexture;e._primitiveRenderState=Gq(t,e._primitiveBias),e._terrainRenderState=Gq(t,e._terrainBias),e._pointRenderState=Gq(t,e._pointBias)}Bm.prototype.debugCreateRenderStates=function(){Wq(this)};Object.defineProperties(Bm.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){mlt(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 jq(e){let t=e._passes.length;for(let n=0;n<t;++n){let i=e._passes[n],o=i.framebuffer;u(o)&&!o.isDestroyed()&&o.destroy(),i.framebuffer=void 0}e._depthAttachment=e._depthAttachment&&e._depthAttachment.destroy(),e._colorAttachment=e._colorAttachment&&e._colorAttachment.destroy()}function llt(e,t){let n=new $l({context:t,width:e._textureSize.x,height:e._textureSize.y,format:Ac.DEPTH_COMPONENT16}),i=new It({context:t,width:e._textureSize.x,height:e._textureSize.y,pixelFormat:nt.RGBA,pixelDatatype:Ye.UNSIGNED_BYTE,sampler:ln.NEAREST}),o=new Hs({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 ult(e,t){let n=new It({context:t,width:e._textureSize.x,height:e._textureSize.y,pixelFormat:nt.DEPTH_STENCIL,pixelDatatype:Ye.UNSIGNED_INT_24_8,sampler:ln.NEAREST}),i=new Hs({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 flt(e,t){let n=new $l({context:t,width:e._textureSize.x,height:e._textureSize.y,format:Ac.DEPTH_COMPONENT16}),i=new Ha({context:t,width:e._textureSize.x,height:e._textureSize.y,pixelFormat:nt.RGBA,pixelDatatype:Ye.UNSIGNED_BYTE,sampler:ln.NEAREST}),o=[i.negativeX,i.negativeY,i.negativeZ,i.positiveX,i.positiveY,i.positiveZ];for(let r=0;r<6;++r){let s=new Hs({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 rye(e,t){e._isPointLight?flt(e,t):e._usesDepthTexture?ult(e,t):llt(e,t)}function dlt(e,t){e._usesDepthTexture&&e._passes[0].framebuffer.status!==ee.FRAMEBUFFER_COMPLETE&&(e._usesDepthTexture=!1,Wq(e),jq(e),rye(e,t))}function hlt(e,t){(!u(e._passes[0].framebuffer)||e._shadowMapTexture.width!==e._textureSize.x)&&(jq(e),rye(e,t),dlt(e,t),sye(e,t))}function sye(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 mlt(e,t){e._size=t;let n=e._passes,i=n.length,o=e._textureSize;if(e._isPointLight){t=Ut.maximumCubeMapSize>=t?t:Ut.maximumCubeMapSize,o.x=t,o.y=t;let r=new We(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=Ut.maximumTextureSize>=t?t:Ut.maximumTextureSize,o.x=t,o.y=t,n[0].passState.viewport=new We(0,0,t,t)):i===4&&(t=Ut.maximumTextureSize>=t*2?t:Ut.maximumTextureSize/2,o.x=t*2,o.y=t*2,n[0].passState.viewport=new We(0,0,t,t),n[1].passState.viewport=new We(t,0,t,t),n[2].passState.viewport=new We(0,t,t,t),n[3].passState.viewport=new We(t,t,t,t));e._clearPassState.viewport=new We(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,l=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,l,0,0,1,0,0,0,0,1)}}var plt=new We;function _lt(e,t){let n;e._isPointLight?n=`uniform samplerCube shadowMap_textureCube;
  9009. in vec2 v_textureCoordinates;
  9010. void main()
  9011. {
  9012. vec2 uv = v_textureCoordinates;
  9013. vec3 dir;
  9014. if (uv.y < 0.5)
  9015. {
  9016. if (uv.x < 0.333)
  9017. {
  9018. dir.x = -1.0;
  9019. dir.y = uv.x * 6.0 - 1.0;
  9020. dir.z = uv.y * 4.0 - 1.0;
  9021. }
  9022. else if (uv.x < 0.666)
  9023. {
  9024. dir.y = -1.0;
  9025. dir.x = uv.x * 6.0 - 3.0;
  9026. dir.z = uv.y * 4.0 - 1.0;
  9027. }
  9028. else
  9029. {
  9030. dir.z = -1.0;
  9031. dir.x = uv.x * 6.0 - 5.0;
  9032. dir.y = uv.y * 4.0 - 1.0;
  9033. }
  9034. }
  9035. else
  9036. {
  9037. if (uv.x < 0.333)
  9038. {
  9039. dir.x = 1.0;
  9040. dir.y = uv.x * 6.0 - 1.0;
  9041. dir.z = uv.y * 4.0 - 3.0;
  9042. }
  9043. else if (uv.x < 0.666)
  9044. {
  9045. dir.y = 1.0;
  9046. dir.x = uv.x * 6.0 - 3.0;
  9047. dir.z = uv.y * 4.0 - 3.0;
  9048. }
  9049. else
  9050. {
  9051. dir.z = 1.0;
  9052. dir.x = uv.x * 6.0 - 5.0;
  9053. dir.y = uv.y * 4.0 - 3.0;
  9054. }
  9055. }
  9056. float shadow = czm_unpackDepth(czm_textureCube(shadowMap_textureCube, dir));
  9057. out_FragColor = vec4(vec3(shadow), 1.0);
  9058. }
  9059. `:n=`uniform sampler2D shadowMap_texture;
  9060. in vec2 v_textureCoordinates;
  9061. void main()
  9062. {
  9063. ${e._usesDepthTexture?` float shadow = texture(shadowMap_texture, v_textureCoordinates).r;
  9064. `:` float shadow = czm_unpackDepth(texture(shadowMap_texture, v_textureCoordinates));
  9065. `} out_FragColor = vec4(vec3(shadow), 1.0);
  9066. }
  9067. `;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 glt(e,t){let n=t.context,i=t.context.drawingBufferWidth,o=t.context.drawingBufferHeight,r=Math.min(i,o)*.3,s=plt;s.x=i-r,s.y=0,s.width=r,s.height=r;let a=e._debugShadowViewCommand;u(a)||(a=_lt(e,n),e._debugShadowViewCommand=a),(!u(a.renderState)||!We.equals(a.renderState.viewport,s))&&(a.renderState=ke.fromCache({viewport:We.clone(s)})),t.commandList.push(e._debugShadowViewCommand)}var km=new Array(8);km[0]=new oe(-1,-1,-1,1);km[1]=new oe(1,-1,-1,1);km[2]=new oe(1,1,-1,1);km[3]=new oe(-1,1,-1,1);km[4]=new oe(-1,-1,1,1);km[5]=new oe(1,-1,1,1);km[6]=new oe(1,1,1,1);km[7]=new oe(-1,1,1,1);var Ky=new F,qq=new Array(8);for(let e=0;e<8;++e)qq[e]=new oe;function ylt(e,t){let n=new yt({geometry:new fd({minimum:new h(-.5,-.5,-.5),maximum:new h(.5,.5,.5)}),attributes:{color:kt.fromColor(t)}}),i=new yt({geometry:new i_({radius:.5}),attributes:{color:kt.fromColor(t)}});return new En({geometryInstances:[n,i],appearance:new nn({translucent:!1,flat:!0}),asynchronous:!1,modelMatrix:e})}var xlt=[H.RED,H.GREEN,H.BLUE,H.MAGENTA],blt=new h;function Tlt(e,t){glt(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 Rm({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 Rm({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 Rm({camera:e._passes[i].camera,color:xlt[i],updateOnChange:!1})),e._debugCascadeFrustums[i].update(t)}}else if(e._isPointLight){if(!u(e._debugLightFrustum)||e._needsUpdate){let i=e._shadowMapCamera.positionWC,o=Le.IDENTITY,r=e._pointLightRadius*2,s=h.fromElements(r,r,r,blt),a=F.fromTranslationQuaternionRotationScale(i,o,s,Ky);e._debugLightFrustum=e._debugLightFrustum&&e._debugLightFrustum.destroy(),e._debugLightFrustum=ylt(a,H.YELLOW)}e._debugLightFrustum.update(t)}else(!u(e._debugLightFrustum)||e._needsUpdate)&&(e._debugLightFrustum=new Rm({camera:e._shadowMapCamera,color:H.YELLOW,updateOnChange:!1})),e._debugLightFrustum.update(t)}function X4(){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}X4.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 Alt=new F(.5,0,0,.5,0,.5,0,.5,0,0,.5,.5,0,0,0,1);X4.prototype.getViewProjection=function(){let e=this.viewMatrix,t=this.frustum.projectionMatrix;return F.multiply(t,e,this.viewProjectionMatrix),F.multiply(Alt,this.viewProjectionMatrix,this.viewProjectionMatrix),this.viewProjectionMatrix};var Clt=new Array(5),Elt=new Ei,Slt=new Array(4),aye=new h,cye=new h;function wlt(e,t){let n=e._shadowMapCamera,i=e._sceneCamera,o=i.frustum.near,r=i.frustum.far,s=e._numberOfCascades,a,c=r-o,l=r/o,f=.9,d=!1;t.shadowState.closestObjectSize<200&&(d=!0,f=.9);let p=Slt,g=Clt;for(g[0]=o,g[s]=r,a=0;a<s;++a){let N=(a+1)/s,_=o*Math.pow(l,N),E=o+c*N,v=P.lerp(E,_,f);g[a+1]=v,p[a]=v-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,A=m.top,C=m.near,S=m.far,w=n.positionWC,D=n.directionWC,O=n.upWC,R=i.frustum.clone(Elt),L=n.getViewProjection();for(a=0;a<s;++a){R.near=g[a],R.far=g[a+1];let N=F.multiply(R.projectionMatrix,i.viewMatrix,Ky),_=F.inverse(N,Ky),E=F.multiply(L,_,Ky),v=h.fromElements(Number.MAX_VALUE,Number.MAX_VALUE,Number.MAX_VALUE,aye),I=h.fromElements(-Number.MAX_VALUE,-Number.MAX_VALUE,-Number.MAX_VALUE,cye);for(let G=0;G<8;++G){let k=oe.clone(km[G],qq[G]);F.multiplyByVector(E,k,k),h.divideByScalar(k,k.w,k),h.minimumByComponent(k,v,v),h.maximumByComponent(k,I,I)}v.x=Math.max(v.x,0),v.y=Math.max(v.y,0),v.z=0,I.x=Math.min(I.x,1),I.y=Math.min(I.y,1),I.z=Math.min(I.z,1);let M=e._passes[a],B=M.camera;B.clone(n);let V=B.frustum;V.left=x+v.x*(b-x),V.right=x+I.x*(b-x),V.bottom=T+v.y*(A-T),V.top=T+I.y*(A-T),V.near=C+v.z*(S-C),V.far=C+I.z*(S-C),M.cullingVolume=B.frustum.computeCullingVolume(w,D,O);let U=e._cascadeMatrices[a];F.multiply(B.getViewProjection(),i.inverseViewMatrix,U),F.multiply(M.textureOffsets,U,U)}}var vlt=new F,Dlt=new h,Ilt=new h,iye=new h;function Plt(e,t){let n=e._shadowMapCamera,i=e._sceneCamera,o=F.multiply(i.frustum.projectionMatrix,i.viewMatrix,Ky),r=F.inverse(o,Ky),s=n.directionWC,a=i.directionWC;h.equalsEpsilon(s,a,P.EPSILON10)&&(a=i.upWC);let c=h.cross(s,a,Dlt);a=h.cross(c,s,Ilt),h.normalize(a,a),h.normalize(c,c);let l=h.fromElements(0,0,0,iye),f=F.computeView(l,s,a,c,vlt),d=F.multiply(f,r,Ky),p=h.fromElements(Number.MAX_VALUE,Number.MAX_VALUE,Number.MAX_VALUE,aye),g=h.fromElements(-Number.MAX_VALUE,-Number.MAX_VALUE,-Number.MAX_VALUE,cye);for(let S=0;S<8;++S){let w=oe.clone(km[S],qq[S]);F.multiplyByVector(d,w,w),h.divideByScalar(w,w.w,w),h.minimumByComponent(w,p,p),h.maximumByComponent(w,g,g)}g.z+=1e3,p.z-=10;let m=iye;m.x=-(.5*(p.x+g.x)),m.y=-(.5*(p.y+g.y)),m.z=-g.z;let x=F.fromTranslation(m,Ky);f=F.multiply(x,f,f);let b=.5*(g.x-p.x),T=.5*(g.y-p.y),A=g.z-p.z,C=n.frustum;C.left=-b,C.right=b,C.bottom=-T,C.top=T,C.near=.01,C.far=A,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 Olt=[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)],Rlt=[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)],Mlt=[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 Llt(e,t){let n=new Ei;n.fov=P.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=Olt[i],o.upWC=Rlt[i],o.rightWC=Mlt[i],F.computeView(o.positionWC,o.directionWC,o.upWC,o.rightWC,o.viewMatrix),F.inverse(o.viewMatrix,o.inverseViewMatrix),o.frustum=n}}var Nlt=new h,Flt=new h,lye=new se,oye=lye.center;function Blt(e,t){let n=e._sceneCamera,i=e._shadowMapCamera,o=lye;if(e._cascadesEnabled){if(n.frustum.near>=e.maximumDistance){e._outOfView=!0,e._needsUpdate=!1;return}let r=t.mapProjection.ellipsoid.geodeticSurfaceNormal(n.positionWC,Nlt),s=h.negate(i.directionWC,Flt),a=h.dot(r,s);if(e.fadingEnabled){let c=P.clamp(a/.1,0,1);e._darkness=P.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)===Kt.OUTSIDE,e._needsUpdate=!e._outOfView&&!e._boundingSphere.equals(o),se.clone(o,e._boundingSphere);else{let r=i.frustum.far/2,s=h.add(i.positionWC,h.multiplyByScalar(i.directionWC,r,oye),oye);o.center=s,o.radius=r,e._outOfView=t.cullingVolume.computeVisibility(o)===Kt.OUTSIDE,e._needsUpdate=!e._outOfView&&!e._boundingSphere.equals(o),se.clone(o,e._boundingSphere)}}function klt(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=co.clone(n,o),n.frustum.clone(e._sceneCamera.frustum),e._sceneCamera.frustum.near=a,e._sceneCamera.frustum.far=c,e._distance=c-a,Blt(e,t),!e._outOfViewPrevious&&e._outOfView&&(e._needsUpdate=!0),e._outOfViewPrevious=e._outOfView}Bm.prototype.update=function(e){if(klt(this,e),this._needsUpdate)if(hlt(this,e.context),this._isPointLight&&Llt(this,e),this._cascadesEnabled&&(Plt(this,e),this._numberOfCascades>1&&wlt(this,e)),this._isPointLight)this._shadowMapCullingVolume=es.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&&Tlt(this,e)};Bm.prototype.updatePass=function(e,t){sye(this,e,t)};var Ult=new z;function uye(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=Ult;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 gt(t,o,!1)}function Vlt(e,t,n,i,o,r){let s,a,c;if(u(r)&&(s=r.shaderProgram,a=r.renderState,c=r.uniformMap),r=Je.shallowClone(n,r),r.castShadows=!0,r.receiveShadows=!1,!u(s)||o!==n.shaderProgram.id||t){let l=n.shaderProgram,f=n.pass===Ee.GLOBE,d=n.pass!==Ee.TRANSLUCENT,p=e._isPointLight,g=e._usesDepthTexture,m=Fm.getShadowCastShaderKeyword(p,f,g,d);if(s=i.shaderCache.getDerivedShaderProgram(l,m),!u(s)){let b=l.vertexShaderSource,T=l.fragmentShaderSource,A=Fm.createShadowCastVertexShader(b,p,f),C=Fm.createShadowCastFragmentShader(T,p,g,d);s=i.shaderCache.createDerivedShaderProgram(l,m,{vertexShaderSource:A,fragmentShaderSource:C,attributeLocations:l._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=ke.fromCache(a)),c=uye(e,n.uniformMap,f)}return r.shaderProgram=s,r.renderState=a,r.uniformMap=c,r}Bm.createReceiveDerivedCommand=function(e,t,n,i,o){u(o)||(o={});let r=e.length>0,s=t.shaderProgram,a=s.vertexShaderSource,c=s.fragmentShaderSource,l=t.pass===Ee.GLOBE,f=!1;if(l&&(f=t.owner.data.renderedMesh.encoding.hasVertexNormals),t.receiveShadows&&r){let d,p;u(o.receiveCommand)&&(d=o.receiveCommand.shaderProgram,p=o.receiveCommand.uniformMap),o.receiveCommand=Je.shallowClone(t,o.receiveCommand),o.castShadows=!1,o.receiveShadows=!0;let g=o.receiveShaderCastShadows!==t.castShadows,m=o.receiveShaderProgramId!==t.shaderProgram.id;if(!u(d)||m||n||g){let x=Fm.getShadowReceiveShaderKeyword(e[0],t.castShadows,l,f);if(d=i.shaderCache.getDerivedShaderProgram(s,x),!u(d)){let b=Fm.createShadowReceiveVertexShader(a,l,f),T=Fm.createShadowReceiveFragmentShader(c,e[0],t.castShadows,l,f);d=i.shaderCache.createDerivedShaderProgram(s,x,{vertexShaderSource:b,fragmentShaderSource:T,attributeLocations:s._attributeLocations})}p=uye(e[0],t.uniformMap,l)}o.receiveCommand.shaderProgram=d,o.receiveCommand.uniformMap=p,o.receiveShaderProgramId=t.shaderProgram.id,o.receiveShaderCastShadows=t.castShadows}return o};Bm.createCastDerivedCommand=function(e,t,n,i,o){if(u(o)||(o={}),t.castShadows){let r=o.castCommands;u(r)||(r=o.castCommands=[]);let s=o.castShaderProgramId,a=e.length;r.length=a;for(let c=0;c<a;++c)r[c]=Vlt(e[c],n,t,i,s,r[c]);o.castShaderProgramId=t.shaderProgram.id}return o};Bm.prototype.isDestroyed=function(){return!1};Bm.prototype.destroy=function(){jq(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 le(this)};var G_=Bm;var u2=`uniform sampler2D u_opaqueDepthTexture;
  9068. uniform sampler2D u_translucentDepthTexture;
  9069. in vec2 v_textureCoordinates;
  9070. void main()
  9071. {
  9072. float opaqueDepth = texture(u_opaqueDepthTexture, v_textureCoordinates).r;
  9073. float translucentDepth = texture(u_translucentDepthTexture, v_textureCoordinates).r;
  9074. translucentDepth = czm_branchFreeTernary(translucentDepth > opaqueDepth, 1.0, translucentDepth);
  9075. out_FragColor = czm_packDepth(translucentDepth);
  9076. }
  9077. `;var cT=`uniform sampler2D colorTexture;
  9078. #ifdef DEBUG_SHOW_DEPTH
  9079. uniform sampler2D u_packedTranslucentDepth;
  9080. #endif
  9081. in vec2 v_textureCoordinates;
  9082. void main()
  9083. {
  9084. #ifdef DEBUG_SHOW_DEPTH
  9085. if (v_textureCoordinates.x < 0.5)
  9086. {
  9087. out_FragColor.rgb = vec3(czm_unpackDepth(texture(u_packedTranslucentDepth, v_textureCoordinates)));
  9088. out_FragColor.a = 1.0;
  9089. }
  9090. #else
  9091. vec4 color = texture(colorTexture, v_textureCoordinates);
  9092. #ifdef PICK
  9093. if (color == vec4(0.0))
  9094. {
  9095. discard;
  9096. }
  9097. #else
  9098. // Reverse premultiplication process to get the correct composited result of the classification primitives
  9099. color.rgb /= color.a;
  9100. #endif
  9101. out_FragColor = color;
  9102. #endif
  9103. }
  9104. `;var zlt=!1;function Zy(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 ti({color:new H(0,0,0,0),owner:this}),this._clearDepthStencilCommand=new ti({depth:1,stencil:0,owner:this}),this._supported=e.depthTexture,this._viewport=new We,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(Zy.prototype,{hasTranslucentDepth:{get:function(){return this._hasTranslucentDepth}}});function fye(e){e._textureToComposite=void 0,e._translucentDepthStencilTexture=e._translucentDepthStencilTexture&&!e._translucentDepthStencilTexture.isDestroyed()&&e._translucentDepthStencilTexture.destroy()}function dye(e){e._drawClassificationFBO.destroy(),e._accumulationFBO.destroy(),e._packFBO.destroy()}function Hlt(e,t,n,i){fye(e),e._translucentDepthStencilTexture=new It({context:t,width:n,height:i,pixelFormat:nt.DEPTH_STENCIL,pixelDatatype:Ye.UNSIGNED_INT_24_8,sampler:ln.NEAREST})}function Glt(e,t,n,i){dye(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 Wlt(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)&&(Hlt(e,t,o,r),Glt(e,t,o,r));let s,a;if(u(e._packDepthCommand)||(s=new Ue({sources:[u2]}),a={u_opaqueDepthTexture:function(){return e._opaqueDepthStencilTexture},u_translucentDepthTexture:function(){return e._translucentDepthStencilTexture}},e._packDepthCommand=t.createViewportQuadCommand(s,{uniformMap:a,owner:e})),!u(e._compositeCommand)){s=new Ue({sources:[cT]}),a={colorTexture:function(){return e._textureToComposite}},zlt&&(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 Ue({sources:s.sources,defines:["PICK"]}),attributeLocations:d._attributeLocations}),g=Je.shallowClone(f);g.shaderProgram=p,f.derivedCommands.pick=g}u(e._copyCommand)||(s=new Ue({sources:[cT]}),a={colorTexture:function(){return e._drawClassificationFBO.getColorTexture()}},e._copyCommand=t.createViewportQuadCommand(s,{uniformMap:a,owner:e})),u(e._accumulateCommand)||(s=new Ue({sources:[cT]}),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=!We.equals(e._viewport,n.viewport),l=c!==e._useScissorTest;e._useScissorTest=c,We.equals(e._scissorRectangle,n.viewport)||(e._scissorRectangle=We.clone(n.viewport,e._scissorRectangle),l=!0),(!u(e._rsDepth)||!We.equals(e._viewport,e._rsDepth.viewport)||l)&&(e._rsDepth=ke.fromCache({viewport:e._viewport,scissorTest:{enabled:e._useScissorTest,rectangle:e._scissorRectangle}})),u(e._packDepthCommand)&&(e._packDepthCommand.renderState=e._rsDepth),(!u(e._rsAccumulate)||!We.equals(e._viewport,e._rsAccumulate.viewport)||l)&&(e._rsAccumulate=ke.fromCache({viewport:e._viewport,scissorTest:{enabled:e._useScissorTest,rectangle:e._scissorRectangle},stencilTest:{enabled:!0,frontFunction:zn.EQUAL,reference:Lt.CESIUM_3D_TILE_MASK}})),u(e._accumulateCommand)&&(e._accumulateCommand.renderState=e._rsAccumulate),(!u(e._rsComp)||!We.equals(e._viewport,e._rsComp.viewport)||l)&&(e._rsComp=ke.fromCache({viewport:e._viewport,scissorTest:{enabled:e._useScissorTest,rectangle:e._scissorRectangle},blending:un.ALPHA_BLEND})),u(e._compositeCommand)&&(e._compositeCommand.renderState=e._rsComp,e._compositeCommand.derivedCommands.pick.renderState=e._rsComp)}Zy.prototype.executeTranslucentCommands=function(e,t,n,i,o){let r=i.length,s,a,c=e.frameState.useLogDepth,l=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(Wlt(this,l,n,o),n.framebuffer=this._drawClassificationFBO.framebuffer,this._clearDepthStencilCommand.execute(l,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,l,n)}this._frustumsDrawn+=this._hasTranslucentDepth?1:0,this._hasTranslucentDepth&&(n.framebuffer=this._packFBO.framebuffer,this._packDepthCommand.execute(l,n)),n.framebuffer=f}};Zy.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],l=i.indices[Ee.CESIUM_3D_TILE_CLASSIFICATION];for(let f=0;f<l;++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)};Zy.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),jlt(this,e,t)};function jlt(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}Zy.prototype.isSupported=function(){return this._supported};Zy.prototype.isDestroyed=function(){return!1};Zy.prototype.destroy=function(){return fye(this),dye(this),u(this._compositeCommand)&&(this._compositeCommand.shaderProgram=this._compositeCommand.shaderProgram&&this._compositeCommand.shaderProgram.destroy()),u(this._packDepthCommand)&&(this._packDepthCommand.shaderProgram=this._packDepthCommand.shaderProgram&&this._packDepthCommand.shaderProgram.destroy()),le(this)};var f2=Zy;function qlt(){this.command=void 0,this.near=void 0,this.far=void 0}function K4(e,t,n){let i=e.context,o;i.depthTexture&&(o=new t2);let r;e._useOIT&&i.depthTexture&&(r=new o2(i));let s=new Ga(i);s.viewport=We.clone(n),this.camera=t,this._cameraClone=co.clone(t),this._cameraStartFired=!1,this._cameraMovedTime=void 0,this.viewport=n,this.passState=s,this.pickFramebuffer=new l2(i),this.pickDepthFramebuffer=new s2,this.sceneFramebuffer=new sT,this.globeDepth=o,this.globeTranslucencyFramebuffer=new n2,this.oit=r,this.translucentTileClassification=new f2(i),this.pickDepths=[],this.frustumCommandsList=[],this.debugFrustumStatistics=void 0,this._commandExtents=[]}var hye=new h,mye=new h;function Ylt(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 Xlt(e,t,n){let i=1/Math.max(1,Ylt(e.position,t.position));return h.multiplyByScalar(e.position,i,hye),h.multiplyByScalar(t.position,i,mye),h.equalsEpsilon(hye,mye,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)}K4.prototype.checkForCameraUpdates=function(e){let t=this.camera,n=this._cameraClone;return Xlt(t,n,P.EPSILON15)?(this._cameraStartFired&&_i()-this._cameraMovedTime>e.cameraEventWaitTime&&(t.moveEnd.raiseEvent(),this._cameraStartFired=!1),!1):(this._cameraStartFired||(t.moveStart.raiseEvent(),this._cameraStartFired=!0),this._cameraMovedTime=_i(),co.clone(t,n),!0)};function Klt(e,t,n,i){let o=t.frameState,r=o.camera,s=o.useLogDepth?t.logarithmicDepthFarToNearRatio:t.farToNearRatio,a=t.mode===te.SCENE2D,c=t.nearToFarDistance2D;i*=1+P.EPSILON2,n=Math.min(Math.max(n,r.frustum.near),r.frustum.far),i=Math.max(Math.min(i,r.frustum.far),n);let l;a?(i=Math.min(i,r.position.z+t.nearToFarDistance2D),n=Math.min(n,i),l=Math.ceil(Math.max(1,i-n)/t.nearToFarDistance2D)):l=Math.ceil(Math.log(i/n)/Math.log(s));let f=e.frustumCommandsList;f.length=l;for(let d=0;d<l;++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];u(m)?(m.near=p,m.far=g):m=f[d]=new e2(p,g)}}function Zlt(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],l=c.near,f=c.far;if(i>f)continue;if(o<l)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]=u(a[n.debugOverlappingFrustums])?a[n.debugOverlappingFrustums]+1:1,++e.debugFrustumStatistics.totalCommands}t.updateDerivedCommands(n)}var pye=new es,$lt=new Ec;K4.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,l=c.length,f=Ee.NUMBER_OF_PASSES;for(let E=0;E<l;++E)for(let v=0;v<f;++v)c[E].indices[v]=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,A=-Number.MAX_VALUE,C=Number.MAX_VALUE,S=t.mode===te.SCENE3D?t.occluder:void 0,w=t.cullingVolume,D=pye.planes;for(let E=0;E<5;++E)D[E]=w.planes[E];w=pye;let O=a.length;for(let E=0;E<O;++E){let v=a[E],I=v.pass;if(I===Ee.COMPUTE)r.push(v);else if(I===Ee.OVERLAY)s.push(v);else{let M,B,V=v.boundingVolume;if(u(V)){if(!e.isVisible(v,w,S))continue;let G=V.computePlaneDistances(o,i,$lt);if(M=G.start,B=G.stop,m=Math.min(m,M),x=Math.max(x,B),b&&v.receiveShadows&&M<G_.MAXIMUM_DISTANCE&&!(I===Ee.GLOBE&&M<-100&&B>100)){let k=B-M;I!==Ee.GLOBE&&M<100&&(C=Math.min(C,k)),T=Math.min(T,M),A=Math.max(A,B)}}else v instanceof ti?(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 U=d[g];u(U)||(U=d[g]=new qlt),U.command=v,U.near=M,U.far=B,g++}}b&&(T=Math.min(Math.max(T,n.frustum.near),n.frustum.far),A=Math.max(Math.min(A,n.frustum.far),T)),b&&(t.shadowState.nearPlane=T,t.shadowState.farPlane=A,t.shadowState.closestObjectSize=C),Klt(this,e,m,x);let R,L;for(R=0;R<g;R++)L=d[R],Zlt(this,e,L.command,L.near,L.far);if(g<p)for(R=g;R<p&&(L=d[R],!!u(L.command));R++)L.command=void 0;let N=c.length,_=t.frustumSplits;_.length=N+1;for(let E=0;E<N;++E)_[E]=c[E].near,E===N-1&&(_[E+1]=c[E].far)};K4.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 lT=K4;var gye=.1,Qlt=new qf({pass:Mo.MOST_DETAILED_PRELOAD}),Jlt=new qf({pass:Mo.MOST_DETAILED_PICK}),Yq=new qf({pass:Mo.PICK});function Ia(e){this._mostDetailedRayPicks=[],this.pickRenderStateCache={},this._pickPositionCache={},this._pickPositionCacheDirty=!1;let t=new We(0,0,1,1),n=new co(e);n.frustum=new $t({width:gye,aspectRatio:1,near:.1}),this._pickOffscreenView=new lT(e,n,t)}Ia.prototype.update=function(){this._pickPositionCacheDirty=!0};Ia.prototype.getPickDepth=function(e,t){let n=e.view.pickDepths,i=n[t];return u(i)||(i=new JN,n[t]=i),i};var eut=new Cr,tut=new h,Z4=new h,nut=new z,iut=new F;function out(e,t,n,i,o){let r=e.camera,s=r.frustum,a=s.offCenterFrustum;u(a)&&(s=a);let c=2*(t.x-o.x)/o.width-1;c*=(s.right-s.left)*.5;let l=2*(o.height-t.y-o.y)/o.height-1;l*=(s.top-s.bottom)*.5;let f=F.clone(r.transform,iut);r._setTransform(F.IDENTITY);let d=h.clone(r.position,tut);h.multiplyByScalar(r.right,c,Z4),h.add(Z4,d,d),h.multiplyByScalar(r.up,l,Z4),h.add(Z4,d,d),r._setTransform(f),e.mode===te.SCENE2D&&h.fromElements(d.z,d.x,d.y,d);let p=s.getPixelDimensions(o.width,o.height,1,1,nut),g=eut;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 rut=new $c,sut=new z;function aut(e,t,n,i,o){let r=e.camera,s=r.frustum,a=s.near,c=Math.tan(s.fovy*.5),l=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*l,g=d*a*c,m=s.getPixelDimensions(o.width,o.height,1,1,sut),x=m.x*n*.5,b=m.y*i*.5,T=rut;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 yye(e,t,n,i,o){let r=e.camera.frustum;return r instanceof $t||r instanceof Cr?out(e,t,n,i,o):aut(e,t,n,i,o)}var _S=3,d2=3,Um=new We(0,0,_S,d2),xye=new z,Xq=new H(0,0,0,0);Ia.prototype.pick=function(e,t,n,i){_S=y(n,3),d2=y(i,_S);let o=e.context,r=o.uniformState,s=e.frameState,a=e.defaultView;e.view=a;let c=a.viewport;c.x=0,c.y=0,c.width=o.drawingBufferWidth,c.height=o.drawingBufferHeight;let l=a.passState;l.viewport=We.clone(c,l.viewport);let f=Xi.transformWindowToDrawingBuffer(e,t,xye);e.jobScheduler.disableThisFrame(),e.updateFrameState(),s.cullingVolume=yye(e,f,_S,d2,c),s.invertClassification=!1,s.passes.pick=!0,s.tilesetPassState=Yq,r.update(s),e.updateEnvironment(),Um.x=f.x-(_S-1)*.5,Um.y=e.drawingBufferHeight-f.y-(d2-1)*.5,Um.width=_S,Um.height=d2,l=a.pickFramebuffer.begin(Um,a.viewport),e.updateAndExecuteCommands(l,Xq),e.resolveFramebuffers(l);let d=a.pickFramebuffer.end(Um);return o.endFrame(),d};function cut(e,t){let n=e.context,i=e.frameState,o=e.environmentState,r=e.defaultView;e.view=r;let s=r.viewport;s.x=0,s.y=0,s.width=n.drawingBufferWidth,s.height=n.drawingBufferHeight;let a=r.passState;a.viewport=We.clone(s,a.viewport),e.clearPasses(i.passes),i.passes.pick=!0,i.passes.depth=!0,i.cullingVolume=yye(e,t,1,1,s),i.tilesetPassState=Yq,e.updateEnvironment(),o.renderTranslucentDepthForPick=!0,a=r.pickDepthFramebuffer.update(n,t,s),e.updateAndExecuteCommands(a,Xq),e.resolveFramebuffers(a),n.endFrame()}var lut=new Ei,uut=new $c,fut=new $t,dut=new Cr;Ia.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 o=e.frameState,r=e.context,s=r.uniformState,a=e.defaultView;e.view=a;let c=Xi.transformWindowToDrawingBuffer(e,t,xye);e.pickTranslucentDepth?cut(e,c):(e.updateFrameState(),s.update(o),e.updateEnvironment()),c.y=e.drawingBufferHeight-c.y;let l=e.camera,f;u(l.frustum.fov)?f=l.frustum.clone(lut):u(l.frustum.infiniteProjectionMatrix)?f=l.frustum.clone(uut):u(l.frustum.width)?f=l.frustum.clone(fut):f=l.frustum.clone(dut);let d=a.frustumCommandsList,p=d.length;for(let g=0;g<p;++g){let x=this.getPickDepth(e,g).getDepth(r,c.x,c.y);if(u(x)&&x>0&&x<1){let b=d[g],T;return e.mode===te.SCENE2D?(T=l.position.z,l.position.z=T-b.near+1,f.far=Math.max(1,b.far-b.near),f.near=1,s.update(o),s.updateFrustum(f)):(f.near=b.near*(g!==0?e.opaqueFrustumNearOffset:1),f.far=b.far,s.updateFrustum(f)),n=Xi.drawingBufferToWgs84Coordinates(e,c,x,n),e.mode===te.SCENE2D&&(l.position.z=T,s.update(o)),this._pickPositionCache[i]=h.clone(n),n}}this._pickPositionCache[i]=void 0};var hut=new fe;Ia.prototype.pickPosition=function(e,t,n){if(n=this.pickPositionWorldCoordinates(e,t,n),u(n)&&e.mode!==te.SCENE3D){h.fromElements(n.y,n.z,n.x,n);let i=e.mapProjection,o=i.ellipsoid,r=i.unproject(n,hut);o.cartographicToCartesian(r,n)}return n};function bye(e,t){let n,i,o=[],r=[],s=[],a=[];u(e)||(e=Number.MAX_VALUE);let c=t();for(;u(c);){let l=c.object,f=c.position,d=c.exclude;if(u(f)&&!u(l)){o.push(c);break}if(!u(l)||!u(l.primitive)||!d&&(o.push(c),0>=--e))break;let p=l.primitive,g=!1;typeof p.getGeometryInstanceAttributes=="function"&&u(l.id)&&(i=p.getGeometryInstanceAttributes(l.id),u(i)&&u(i.show)&&(g=!0,i.show=gn.toValue(!1,i.show),s.push(i))),l instanceof ws&&(g=!0,l.show=!1,a.push(l)),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}Ia.prototype.drillPick=function(e,t,n,i,o){let r=this;return bye(n,function(){let c=r.pick(e,t,i,o);if(u(c))return{object:c,position:void 0,exclude:!1}}).map(function(c){return c.object})};var _ye=new h,mut=new h;function put(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 Tye(e,t,n,i){let o=t.direction,r=h.mostOrthogonalAxis(o,_ye),s=h.cross(o,r,_ye),a=h.cross(o,s,mut);return i.position=t.origin,i.direction=o,i.up=a,i.right=s,i.frustum.width=y(n,gye),i.frustum.computeCullingVolume(i.positionWC,i.directionWC,i.upWC)}function _ut(e,t,n){let i=t.frameState,o=n.ray,r=n.width,s=n.tilesets,a=e._pickOffscreenView.camera,c=Tye(e,o,r,a),l=Qlt;l.camera=a,l.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,l),f=f&&l.ready)}return f&&n._completePick(),f}Ia.prototype.updateMostDetailedRayPicks=function(e){let t=this._mostDetailedRayPicks;for(let n=0;n<t.length;++n)_ut(this,e,t[n])&&t.splice(n--,1)};function Aye(e,t,n){let i=e.length;for(let o=0;o<i;++o){let r=e.get(o);r.show&&(u(r.isCesium3DTileset)?(!u(t)||t.indexOf(r)===-1)&&n.push(r):r instanceof Rl&&Aye(r,t,n))}}function $4(e,t,n,i,o,r){let s=[];if(Aye(t.primitives,i,s),s.length===0)return Promise.resolve(r());let a=new put(n,o,s);return e._mostDetailedRayPicks.push(a),a.promise.then(function(){return r()})}function gut(e,t){return!u(e)||!u(t)||t.length===0?!1:t.indexOf(e)>-1||t.indexOf(e.primitive)>-1||t.indexOf(e.id)>-1}function yut(e,t,n,i,o,r,s){let a=t.context,c=a.uniformState,l=t.frameState,f=e._pickOffscreenView;t.view=f,Tye(e,n,o,f.camera),Um=We.clone(f.viewport,Um);let d=f.pickFramebuffer.begin(Um,f.viewport);t.jobScheduler.disableThisFrame(),t.updateFrameState(),l.invertClassification=!1,l.passes.pick=!0,l.passes.offscreen=!0,s?l.tilesetPassState=Jlt:l.tilesetPassState=Yq,c.update(l),t.updateEnvironment(),t.updateAndExecuteCommands(d,Xq),t.resolveFramebuffers(d);let p,g=f.pickFramebuffer.end(Um);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(u(T)&&T>0&&T<1){let A=f.frustumCommandsList[x],C=A.near*(x!==0?t.opaqueFrustumNearOffset:1),S=A.far,w=C+T*(S-C);p=Tn.getPoint(n,w);break}}}if(t.view=t.defaultView,a.endFrame(),u(g)||u(p))return{object:g,position:p,exclude:!u(p)&&r||gut(g,i)}}function Cye(e,t,n,i,o,r,s,a){return bye(i,function(){return yut(e,t,n,o,r,s,a)})}function gS(e,t,n,i,o,r,s){let a=Cye(e,t,n,1,i,o,r,s);if(a.length>0)return a[0]}function Eye(e,t,n,i,o,r,s,a){return Cye(e,t,n,i,o,r,s,a)}function Q4(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)})})}Ia.prototype.pickFromRay=function(e,t,n,i){return gS(this,e,t,n,i,!1,!1)};Ia.prototype.drillPickFromRay=function(e,t,n,i,o){return Eye(this,e,t,n,i,o,!1,!1)};Ia.prototype.pickFromRayMostDetailed=function(e,t,n,i){let o=this;return t=Tn.clone(t),n=u(n)?n.slice():n,Q4(e,$4(o,e,t,n,i,function(){return gS(o,e,t,n,i,!1,!0)}))};Ia.prototype.drillPickFromRayMostDetailed=function(e,t,n,i,o){let r=this;return t=Tn.clone(t),i=u(i)?i.slice():i,Q4(e,$4(r,e,t,i,o,function(){return Eye(r,e,t,n,i,o,!1,!0)}))};var xut=new h,but=new h,Tut=new Tn,Sye=new fe;function Kq(e,t){let n=e.globe,i=u(n)?n.ellipsoid:e.mapProjection.ellipsoid,o=li._defaultMaxTerrainHeight,r=i.geodeticSurfaceNormalCartographic(t,but),s=fe.toCartesian(t,i,xut),a=Tut;a.origin=s,a.direction=r;let c=new Tn;return Tn.getPoint(a,o,c.origin),h.negate(r,c.direction),c}function wye(e,t){let n=e.globe,i=u(n)?n.ellipsoid:e.mapProjection.ellipsoid,o=fe.fromCartesian(t,i,Sye);return Kq(e,o)}function vye(e,t){let n=e.globe,i=u(n)?n.ellipsoid:e.mapProjection.ellipsoid;return fe.fromCartesian(t,i,Sye).height}function Aut(e,t,n,i,o){let r=Kq(t,n);return $4(e,t,r,i,o,function(){let s=gS(e,t,r,i,o,!0,!0);if(u(s))return vye(t,s.position)})}function Cut(e,t,n,i,o,r){let s=wye(t,n);return $4(e,t,s,i,o,function(){let a=gS(e,t,s,i,o,!0,!0);if(u(a))return h.clone(a.position,r)})}Ia.prototype.sampleHeight=function(e,t,n,i){let o=Kq(e,t),r=gS(this,e,o,n,i,!0,!1);if(u(r))return vye(e,r.position)};Ia.prototype.clampToHeight=function(e,t,n,i,o){let r=wye(e,t),s=gS(this,e,r,n,i,!0,!1);if(u(s))return h.clone(s.position,o)};Ia.prototype.sampleHeightMostDetailed=function(e,t,n,i){n=u(n)?n.slice():n;let o=t.length,r=new Array(o);for(let s=0;s<o;++s)r[s]=Aut(this,e,t[s],n,i);return Q4(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}))};Ia.prototype.clampToHeightMostDetailed=function(e,t,n,i){n=u(n)?n.slice():n;let o=t.length,r=new Array(o);for(let s=0;s<o;++s)r[s]=Cut(this,e,t[s],n,i,t[s]);return Q4(e,Promise.all(r).then(function(s){let a=s.length;for(let c=0;c<a;++c)t[c]=s[c];return t}))};Ia.prototype.destroy=function(){this._pickOffscreenView=this._pickOffscreenView&&this._pickOffscreenView.destroy()};var h2=Ia;var m2=`uniform sampler2D colorTexture;
  9105. in vec2 v_textureCoordinates;
  9106. #ifdef AUTO_EXPOSURE
  9107. uniform sampler2D autoExposure;
  9108. #endif
  9109. void main()
  9110. {
  9111. vec4 fragmentColor = texture(colorTexture, v_textureCoordinates);
  9112. vec3 color = fragmentColor.rgb;
  9113. #ifdef AUTO_EXPOSURE
  9114. color /= texture(autoExposure, vec2(0.5)).r;
  9115. #endif
  9116. color = czm_acesTonemapping(color);
  9117. color = czm_inverseGamma(color);
  9118. out_FragColor = vec4(color, fragmentColor.a);
  9119. }
  9120. `;var p2=`uniform sampler2D randomTexture;
  9121. uniform sampler2D depthTexture;
  9122. uniform float intensity;
  9123. uniform float bias;
  9124. uniform float lengthCap;
  9125. uniform float stepSize;
  9126. uniform float frustumLength;
  9127. in vec2 v_textureCoordinates;
  9128. vec4 clipToEye(vec2 uv, float depth)
  9129. {
  9130. vec2 xy = vec2((uv.x * 2.0 - 1.0), ((1.0 - uv.y) * 2.0 - 1.0));
  9131. vec4 posEC = czm_inverseProjection * vec4(xy, depth, 1.0);
  9132. posEC = posEC / posEC.w;
  9133. return posEC;
  9134. }
  9135. //Reconstruct Normal Without Edge Removation
  9136. vec3 getNormalXEdge(vec3 posInCamera, float depthU, float depthD, float depthL, float depthR, vec2 pixelSize)
  9137. {
  9138. vec4 posInCameraUp = clipToEye(v_textureCoordinates - vec2(0.0, pixelSize.y), depthU);
  9139. vec4 posInCameraDown = clipToEye(v_textureCoordinates + vec2(0.0, pixelSize.y), depthD);
  9140. vec4 posInCameraLeft = clipToEye(v_textureCoordinates - vec2(pixelSize.x, 0.0), depthL);
  9141. vec4 posInCameraRight = clipToEye(v_textureCoordinates + vec2(pixelSize.x, 0.0), depthR);
  9142. vec3 up = posInCamera.xyz - posInCameraUp.xyz;
  9143. vec3 down = posInCameraDown.xyz - posInCamera.xyz;
  9144. vec3 left = posInCamera.xyz - posInCameraLeft.xyz;
  9145. vec3 right = posInCameraRight.xyz - posInCamera.xyz;
  9146. vec3 DX = length(left) < length(right) ? left : right;
  9147. vec3 DY = length(up) < length(down) ? up : down;
  9148. return normalize(cross(DY, DX));
  9149. }
  9150. void main(void)
  9151. {
  9152. float depth = czm_readDepth(depthTexture, v_textureCoordinates);
  9153. vec4 posInCamera = clipToEye(v_textureCoordinates, depth);
  9154. if (posInCamera.z > frustumLength)
  9155. {
  9156. out_FragColor = vec4(1.0);
  9157. return;
  9158. }
  9159. vec2 pixelSize = czm_pixelRatio / czm_viewport.zw;
  9160. float depthU = czm_readDepth(depthTexture, v_textureCoordinates - vec2(0.0, pixelSize.y));
  9161. float depthD = czm_readDepth(depthTexture, v_textureCoordinates + vec2(0.0, pixelSize.y));
  9162. float depthL = czm_readDepth(depthTexture, v_textureCoordinates - vec2(pixelSize.x, 0.0));
  9163. float depthR = czm_readDepth(depthTexture, v_textureCoordinates + vec2(pixelSize.x, 0.0));
  9164. vec3 normalInCamera = getNormalXEdge(posInCamera.xyz, depthU, depthD, depthL, depthR, pixelSize);
  9165. float ao = 0.0;
  9166. vec2 sampleDirection = vec2(1.0, 0.0);
  9167. float gapAngle = 90.0 * czm_radiansPerDegree;
  9168. // RandomNoise
  9169. float randomVal = texture(randomTexture, v_textureCoordinates / pixelSize / 255.0).x;
  9170. //Loop for each direction
  9171. for (int i = 0; i < 4; i++)
  9172. {
  9173. float newGapAngle = gapAngle * (float(i) + randomVal);
  9174. float cosVal = cos(newGapAngle);
  9175. float sinVal = sin(newGapAngle);
  9176. //Rotate Sampling Direction
  9177. vec2 rotatedSampleDirection = vec2(cosVal * sampleDirection.x - sinVal * sampleDirection.y, sinVal * sampleDirection.x + cosVal * sampleDirection.y);
  9178. float localAO = 0.0;
  9179. float localStepSize = stepSize;
  9180. //Loop for each step
  9181. for (int j = 0; j < 6; j++)
  9182. {
  9183. vec2 newCoords = v_textureCoordinates + rotatedSampleDirection * localStepSize * pixelSize;
  9184. //Exception Handling
  9185. if(newCoords.x > 1.0 || newCoords.y > 1.0 || newCoords.x < 0.0 || newCoords.y < 0.0)
  9186. {
  9187. break;
  9188. }
  9189. float stepDepthInfo = czm_readDepth(depthTexture, newCoords);
  9190. vec4 stepPosInCamera = clipToEye(newCoords, stepDepthInfo);
  9191. vec3 diffVec = stepPosInCamera.xyz - posInCamera.xyz;
  9192. float len = length(diffVec);
  9193. if (len > lengthCap)
  9194. {
  9195. break;
  9196. }
  9197. float dotVal = clamp(dot(normalInCamera, normalize(diffVec)), 0.0, 1.0 );
  9198. float weight = len / lengthCap;
  9199. weight = 1.0 - weight * weight;
  9200. if (dotVal < bias)
  9201. {
  9202. dotVal = 0.0;
  9203. }
  9204. localAO = max(localAO, dotVal * weight);
  9205. localStepSize += stepSize;
  9206. }
  9207. ao += localAO;
  9208. }
  9209. ao /= 4.0;
  9210. ao = 1.0 - clamp(ao, 0.0, 1.0);
  9211. ao = pow(ao, intensity);
  9212. out_FragColor = vec4(vec3(ao), 1.0);
  9213. }
  9214. `;var _2=`uniform sampler2D colorTexture;
  9215. uniform sampler2D ambientOcclusionTexture;
  9216. uniform bool ambientOcclusionOnly;
  9217. in vec2 v_textureCoordinates;
  9218. void main(void)
  9219. {
  9220. vec4 color = texture(colorTexture, v_textureCoordinates);
  9221. vec4 ao = texture(ambientOcclusionTexture, v_textureCoordinates);
  9222. out_FragColor = ambientOcclusionOnly ? ao : ao * color;
  9223. }
  9224. `;var g2=`uniform sampler2D colorTexture;
  9225. uniform float gradations;
  9226. in vec2 v_textureCoordinates;
  9227. void main(void)
  9228. {
  9229. vec3 rgb = texture(colorTexture, v_textureCoordinates).rgb;
  9230. #ifdef CZM_SELECTED_FEATURE
  9231. if (czm_selected()) {
  9232. out_FragColor = vec4(rgb, 1.0);
  9233. return;
  9234. }
  9235. #endif
  9236. float luminance = czm_luminance(rgb);
  9237. float darkness = luminance * gradations;
  9238. darkness = (darkness - fract(darkness)) / gradations;
  9239. out_FragColor = vec4(vec3(darkness), 1.0);
  9240. }
  9241. `;var y2=`uniform sampler2D colorTexture;
  9242. uniform sampler2D bloomTexture;
  9243. uniform bool glowOnly;
  9244. in vec2 v_textureCoordinates;
  9245. void main(void)
  9246. {
  9247. vec4 color = texture(colorTexture, v_textureCoordinates);
  9248. #ifdef CZM_SELECTED_FEATURE
  9249. if (czm_selected()) {
  9250. out_FragColor = color;
  9251. return;
  9252. }
  9253. #endif
  9254. vec4 bloom = texture(bloomTexture, v_textureCoordinates);
  9255. out_FragColor = glowOnly ? bloom : bloom + color;
  9256. }
  9257. `;var x2=`uniform sampler2D colorTexture;
  9258. uniform float brightness;
  9259. in vec2 v_textureCoordinates;
  9260. void main(void)
  9261. {
  9262. vec3 rgb = texture(colorTexture, v_textureCoordinates).rgb;
  9263. vec3 target = vec3(0.0);
  9264. out_FragColor = vec4(mix(target, rgb, brightness), 1.0);
  9265. }
  9266. `;var b2=`uniform sampler2D colorTexture;
  9267. uniform float contrast;
  9268. uniform float brightness;
  9269. in vec2 v_textureCoordinates;
  9270. void main(void)
  9271. {
  9272. vec3 sceneColor = texture(colorTexture, v_textureCoordinates).xyz;
  9273. sceneColor = czm_RGBToHSB(sceneColor);
  9274. sceneColor.z += brightness;
  9275. sceneColor = czm_HSBToRGB(sceneColor);
  9276. float factor = (259.0 * (contrast + 255.0)) / (255.0 * (259.0 - contrast));
  9277. sceneColor = factor * (sceneColor - vec3(0.5)) + vec3(0.5);
  9278. out_FragColor = vec4(sceneColor, 1.0);
  9279. }
  9280. `;var T2=`uniform sampler2D colorTexture;
  9281. uniform sampler2D blurTexture;
  9282. uniform sampler2D depthTexture;
  9283. uniform float focalDistance;
  9284. in vec2 v_textureCoordinates;
  9285. vec4 toEye(vec2 uv, float depth)
  9286. {
  9287. vec2 xy = vec2((uv.x * 2.0 - 1.0), ((1.0 - uv.y) * 2.0 - 1.0));
  9288. vec4 posInCamera = czm_inverseProjection * vec4(xy, depth, 1.0);
  9289. posInCamera = posInCamera / posInCamera.w;
  9290. return posInCamera;
  9291. }
  9292. float computeDepthBlur(float depth)
  9293. {
  9294. float f;
  9295. if (depth < focalDistance)
  9296. {
  9297. f = (focalDistance - depth) / (focalDistance - czm_currentFrustum.x);
  9298. }
  9299. else
  9300. {
  9301. f = (depth - focalDistance) / (czm_currentFrustum.y - focalDistance);
  9302. f = pow(f, 0.1);
  9303. }
  9304. f *= f;
  9305. f = clamp(f, 0.0, 1.0);
  9306. return pow(f, 0.5);
  9307. }
  9308. void main(void)
  9309. {
  9310. float depth = czm_readDepth(depthTexture, v_textureCoordinates);
  9311. vec4 posInCamera = toEye(v_textureCoordinates, depth);
  9312. float d = computeDepthBlur(-posInCamera.z);
  9313. out_FragColor = mix(texture(colorTexture, v_textureCoordinates), texture(blurTexture, v_textureCoordinates), d);
  9314. }
  9315. `;var A2=`uniform sampler2D depthTexture;
  9316. in vec2 v_textureCoordinates;
  9317. void main(void)
  9318. {
  9319. float depth = czm_readDepth(depthTexture, v_textureCoordinates);
  9320. out_FragColor = vec4(vec3(depth), 1.0);
  9321. }
  9322. `;var C2=`uniform sampler2D depthTexture;
  9323. uniform float length;
  9324. uniform vec4 color;
  9325. in vec2 v_textureCoordinates;
  9326. void main(void)
  9327. {
  9328. float directions[3];
  9329. directions[0] = -1.0;
  9330. directions[1] = 0.0;
  9331. directions[2] = 1.0;
  9332. float scalars[3];
  9333. scalars[0] = 3.0;
  9334. scalars[1] = 10.0;
  9335. scalars[2] = 3.0;
  9336. float padx = czm_pixelRatio / czm_viewport.z;
  9337. float pady = czm_pixelRatio / czm_viewport.w;
  9338. #ifdef CZM_SELECTED_FEATURE
  9339. bool selected = false;
  9340. for (int i = 0; i < 3; ++i)
  9341. {
  9342. float dir = directions[i];
  9343. selected = selected || czm_selected(vec2(-padx, dir * pady));
  9344. selected = selected || czm_selected(vec2(padx, dir * pady));
  9345. selected = selected || czm_selected(vec2(dir * padx, -pady));
  9346. selected = selected || czm_selected(vec2(dir * padx, pady));
  9347. if (selected)
  9348. {
  9349. break;
  9350. }
  9351. }
  9352. if (!selected)
  9353. {
  9354. out_FragColor = vec4(color.rgb, 0.0);
  9355. return;
  9356. }
  9357. #endif
  9358. float horizEdge = 0.0;
  9359. float vertEdge = 0.0;
  9360. for (int i = 0; i < 3; ++i)
  9361. {
  9362. float dir = directions[i];
  9363. float scale = scalars[i];
  9364. horizEdge -= texture(depthTexture, v_textureCoordinates + vec2(-padx, dir * pady)).x * scale;
  9365. horizEdge += texture(depthTexture, v_textureCoordinates + vec2(padx, dir * pady)).x * scale;
  9366. vertEdge -= texture(depthTexture, v_textureCoordinates + vec2(dir * padx, -pady)).x * scale;
  9367. vertEdge += texture(depthTexture, v_textureCoordinates + vec2(dir * padx, pady)).x * scale;
  9368. }
  9369. float len = sqrt(horizEdge * horizEdge + vertEdge * vertEdge);
  9370. out_FragColor = vec4(color.rgb, len > length ? color.a : 0.0);
  9371. }
  9372. `;var E2=`uniform sampler2D colorTexture;
  9373. in vec2 v_textureCoordinates;
  9374. #ifdef AUTO_EXPOSURE
  9375. uniform sampler2D autoExposure;
  9376. #endif
  9377. // See slides 142 and 143:
  9378. // http://www.gdcvault.com/play/1012459/Uncharted_2__HDR_Lighting
  9379. void main()
  9380. {
  9381. vec4 fragmentColor = texture(colorTexture, v_textureCoordinates);
  9382. vec3 color = fragmentColor.rgb;
  9383. #ifdef AUTO_EXPOSURE
  9384. float exposure = texture(autoExposure, vec2(0.5)).r;
  9385. color /= exposure;
  9386. #endif
  9387. const float A = 0.22; // shoulder strength
  9388. const float B = 0.30; // linear strength
  9389. const float C = 0.10; // linear angle
  9390. const float D = 0.20; // toe strength
  9391. const float E = 0.01; // toe numerator
  9392. const float F = 0.30; // toe denominator
  9393. const float white = 11.2; // linear white point value
  9394. vec3 c = ((color * (A * color + C * B) + D * E) / (color * ( A * color + B) + D * F)) - E / F;
  9395. float w = ((white * (A * white + C * B) + D * E) / (white * ( A * white + B) + D * F)) - E / F;
  9396. c = czm_inverseGamma(c / w);
  9397. out_FragColor = vec4(c, fragmentColor.a);
  9398. }
  9399. `;var S2=`in vec2 v_textureCoordinates;
  9400. uniform sampler2D colorTexture;
  9401. const float fxaaQualitySubpix = 0.5;
  9402. const float fxaaQualityEdgeThreshold = 0.125;
  9403. const float fxaaQualityEdgeThresholdMin = 0.0833;
  9404. void main()
  9405. {
  9406. vec2 fxaaQualityRcpFrame = vec2(1.0) / czm_viewport.zw;
  9407. vec4 color = FxaaPixelShader(
  9408. v_textureCoordinates,
  9409. colorTexture,
  9410. fxaaQualityRcpFrame,
  9411. fxaaQualitySubpix,
  9412. fxaaQualityEdgeThreshold,
  9413. fxaaQualityEdgeThresholdMin);
  9414. float alpha = texture(colorTexture, v_textureCoordinates).a;
  9415. out_FragColor = vec4(color.rgb, alpha);
  9416. }
  9417. `;var $y=`#define SAMPLES 8
  9418. uniform float delta;
  9419. uniform float sigma;
  9420. uniform float direction; // 0.0 for x direction, 1.0 for y direction
  9421. uniform sampler2D colorTexture;
  9422. #ifdef USE_STEP_SIZE
  9423. uniform float stepSize;
  9424. #else
  9425. uniform vec2 step;
  9426. #endif
  9427. in vec2 v_textureCoordinates;
  9428. // Incremental Computation of the Gaussian:
  9429. // https://developer.nvidia.com/gpugems/GPUGems3/gpugems3_ch40.html
  9430. void main()
  9431. {
  9432. vec2 st = v_textureCoordinates;
  9433. vec2 dir = vec2(1.0 - direction, direction);
  9434. #ifdef USE_STEP_SIZE
  9435. vec2 step = vec2(stepSize * (czm_pixelRatio / czm_viewport.zw));
  9436. #else
  9437. vec2 step = step;
  9438. #endif
  9439. vec3 g;
  9440. g.x = 1.0 / (sqrt(czm_twoPi) * sigma);
  9441. g.y = exp((-0.5 * delta * delta) / (sigma * sigma));
  9442. g.z = g.y * g.y;
  9443. vec4 result = texture(colorTexture, st) * g.x;
  9444. for (int i = 1; i < SAMPLES; ++i)
  9445. {
  9446. g.xy *= g.yz;
  9447. vec2 offset = float(i) * dir * step;
  9448. result += texture(colorTexture, st - offset) * g.x;
  9449. result += texture(colorTexture, st + offset) * g.x;
  9450. }
  9451. out_FragColor = result;
  9452. }
  9453. `;var w2=`uniform sampler2D colorTexture;
  9454. uniform sampler2D dirtTexture;
  9455. uniform sampler2D starTexture;
  9456. uniform vec2 dirtTextureDimensions;
  9457. uniform float distortion;
  9458. uniform float ghostDispersal;
  9459. uniform float haloWidth;
  9460. uniform float dirtAmount;
  9461. uniform float earthRadius;
  9462. uniform float intensity;
  9463. in vec2 v_textureCoordinates;
  9464. // whether it is in space or not
  9465. // 6500000.0 is empirical value
  9466. #define DISTANCE_TO_SPACE 6500000.0
  9467. // return ndc from world coordinate biased earthRadius
  9468. vec4 getNDCFromWC(vec3 WC, float earthRadius)
  9469. {
  9470. vec4 positionEC = czm_view * vec4(WC, 1.0);
  9471. positionEC = vec4(positionEC.x + earthRadius, positionEC.y, positionEC.z, 1.0);
  9472. vec4 positionWC = czm_eyeToWindowCoordinates(positionEC);
  9473. return czm_viewportOrthographic * vec4(positionWC.xy, -positionWC.z, 1.0);
  9474. }
  9475. // Check if current pixel is included Earth
  9476. // if then mask it gradually
  9477. float isInEarth(vec2 texcoord, vec2 sceneSize)
  9478. {
  9479. vec2 NDC = texcoord * 2.0 - 1.0;
  9480. vec4 earthPosSC = getNDCFromWC(vec3(0.0), 0.0);
  9481. vec4 earthPosSCEdge = getNDCFromWC(vec3(0.0), earthRadius * 1.5);
  9482. NDC.xy -= earthPosSC.xy;
  9483. float X = abs(NDC.x) * sceneSize.x;
  9484. float Y = abs(NDC.y) * sceneSize.y;
  9485. return clamp(0.0, 1.0, max(sqrt(X * X + Y * Y) / max(abs(earthPosSCEdge.x * sceneSize.x), 1.0) - 0.8 , 0.0));
  9486. }
  9487. // For Chromatic effect
  9488. vec4 textureDistorted(sampler2D tex, vec2 texcoord, vec2 direction, vec3 distortion, bool isSpace)
  9489. {
  9490. vec2 sceneSize = czm_viewport.zw;
  9491. vec3 color;
  9492. if(isSpace)
  9493. {
  9494. color.r = isInEarth(texcoord + direction * distortion.r, sceneSize) * texture(tex, texcoord + direction * distortion.r).r;
  9495. color.g = isInEarth(texcoord + direction * distortion.g, sceneSize) * texture(tex, texcoord + direction * distortion.g).g;
  9496. color.b = isInEarth(texcoord + direction * distortion.b, sceneSize) * texture(tex, texcoord + direction * distortion.b).b;
  9497. }
  9498. else
  9499. {
  9500. color.r = texture(tex, texcoord + direction * distortion.r).r;
  9501. color.g = texture(tex, texcoord + direction * distortion.g).g;
  9502. color.b = texture(tex, texcoord + direction * distortion.b).b;
  9503. }
  9504. return vec4(clamp(color, 0.0, 1.0), 0.0);
  9505. }
  9506. void main(void)
  9507. {
  9508. vec4 originalColor = texture(colorTexture, v_textureCoordinates);
  9509. vec3 rgb = originalColor.rgb;
  9510. bool isSpace = length(czm_viewerPositionWC.xyz) > DISTANCE_TO_SPACE;
  9511. // Sun position
  9512. vec4 sunPos = czm_morphTime == 1.0 ? vec4(czm_sunPositionWC, 1.0) : vec4(czm_sunPositionColumbusView.zxy, 1.0);
  9513. vec4 sunPositionEC = czm_view * sunPos;
  9514. vec4 sunPositionWC = czm_eyeToWindowCoordinates(sunPositionEC);
  9515. sunPos = czm_viewportOrthographic * vec4(sunPositionWC.xy, -sunPositionWC.z, 1.0);
  9516. // If sun is not in the screen space, use original color.
  9517. if(!isSpace || !((sunPos.x >= -1.1 && sunPos.x <= 1.1) && (sunPos.y >= -1.1 && sunPos.y <= 1.1)))
  9518. {
  9519. // Lens flare is disabled when not in space until #5932 is fixed.
  9520. // https://github.com/CesiumGS/cesium/issues/5932
  9521. out_FragColor = originalColor;
  9522. return;
  9523. }
  9524. vec2 texcoord = vec2(1.0) - v_textureCoordinates;
  9525. vec2 pixelSize = czm_pixelRatio / czm_viewport.zw;
  9526. vec2 invPixelSize = 1.0 / pixelSize;
  9527. vec3 distortionVec = pixelSize.x * vec3(-distortion, 0.0, distortion);
  9528. // ghost vector to image centre:
  9529. vec2 ghostVec = (vec2(0.5) - texcoord) * ghostDispersal;
  9530. vec3 direction = normalize(vec3(ghostVec, 0.0));
  9531. // sample ghosts:
  9532. vec4 result = vec4(0.0);
  9533. vec4 ghost = vec4(0.0);
  9534. for (int i = 0; i < 4; ++i)
  9535. {
  9536. vec2 offset = fract(texcoord + ghostVec * float(i));
  9537. // Only bright spots from the centre of the source image
  9538. ghost += textureDistorted(colorTexture, offset, direction.xy, distortionVec, isSpace);
  9539. }
  9540. result += ghost;
  9541. // sample halo
  9542. vec2 haloVec = normalize(ghostVec) * haloWidth;
  9543. float weightForHalo = length(vec2(0.5) - fract(texcoord + haloVec)) / length(vec2(0.5));
  9544. weightForHalo = pow(1.0 - weightForHalo, 5.0);
  9545. result += textureDistorted(colorTexture, texcoord + haloVec, direction.xy, distortionVec, isSpace) * weightForHalo * 1.5;
  9546. // dirt on lens
  9547. vec2 dirtTexCoords = (v_textureCoordinates * invPixelSize) / dirtTextureDimensions;
  9548. if (dirtTexCoords.x > 1.0)
  9549. {
  9550. dirtTexCoords.x = mod(floor(dirtTexCoords.x), 2.0) == 1.0 ? 1.0 - fract(dirtTexCoords.x) : fract(dirtTexCoords.x);
  9551. }
  9552. if (dirtTexCoords.y > 1.0)
  9553. {
  9554. dirtTexCoords.y = mod(floor(dirtTexCoords.y), 2.0) == 1.0 ? 1.0 - fract(dirtTexCoords.y) : fract(dirtTexCoords.y);
  9555. }
  9556. result += dirtAmount * texture(dirtTexture, dirtTexCoords);
  9557. // Rotating starburst texture's coordinate
  9558. // dot(czm_view[0].xyz, vec3(0.0, 0.0, 1.0)) + dot(czm_view[1].xyz, vec3(0.0, 1.0, 0.0))
  9559. float camrot = czm_view[0].z + czm_view[1].y;
  9560. float cosValue = cos(camrot);
  9561. float sinValue = sin(camrot);
  9562. mat3 rotation = mat3(
  9563. cosValue, -sinValue, 0.0,
  9564. sinValue, cosValue, 0.0,
  9565. 0.0, 0.0, 1.0
  9566. );
  9567. vec3 st1 = vec3(v_textureCoordinates * 2.0 - vec2(1.0), 1.0);
  9568. vec3 st2 = vec3((rotation * st1).xy, 1.0);
  9569. vec3 st3 = st2 * 0.5 + vec3(0.5);
  9570. vec2 lensStarTexcoord = st3.xy;
  9571. float weightForLensFlare = length(vec3(sunPos.xy, 0.0));
  9572. float oneMinusWeightForLensFlare = max(1.0 - weightForLensFlare, 0.0);
  9573. if (!isSpace)
  9574. {
  9575. result *= oneMinusWeightForLensFlare * intensity * 0.2;
  9576. }
  9577. else
  9578. {
  9579. result *= oneMinusWeightForLensFlare * intensity;
  9580. result *= texture(starTexture, lensStarTexcoord) * pow(weightForLensFlare, 1.0) * max((1.0 - length(vec3(st1.xy, 0.0))), 0.0) * 2.0;
  9581. }
  9582. result += texture(colorTexture, v_textureCoordinates);
  9583. out_FragColor = result;
  9584. }
  9585. `;var v2=`uniform sampler2D colorTexture;
  9586. uniform vec3 white;
  9587. in vec2 v_textureCoordinates;
  9588. #ifdef AUTO_EXPOSURE
  9589. uniform sampler2D autoExposure;
  9590. #endif
  9591. // See equation 4:
  9592. // http://www.cs.utah.edu/~reinhard/cdrom/tonemap.pdf
  9593. void main()
  9594. {
  9595. vec4 fragmentColor = texture(colorTexture, v_textureCoordinates);
  9596. vec3 color = fragmentColor.rgb;
  9597. #ifdef AUTO_EXPOSURE
  9598. float exposure = texture(autoExposure, vec2(0.5)).r;
  9599. color /= exposure;
  9600. #endif
  9601. color = (color * (1.0 + color / white)) / (1.0 + color);
  9602. color = czm_inverseGamma(color);
  9603. out_FragColor = vec4(color, fragmentColor.a);
  9604. }
  9605. `;var D2=`uniform sampler2D colorTexture;
  9606. in vec2 v_textureCoordinates;
  9607. float rand(vec2 co)
  9608. {
  9609. return fract(sin(dot(co.xy ,vec2(12.9898, 78.233))) * 43758.5453);
  9610. }
  9611. void main(void)
  9612. {
  9613. float noiseValue = rand(v_textureCoordinates + sin(czm_frameNumber)) * 0.1;
  9614. vec3 rgb = texture(colorTexture, v_textureCoordinates).rgb;
  9615. vec3 green = vec3(0.0, 1.0, 0.0);
  9616. out_FragColor = vec4((noiseValue + rgb) * green, 1.0);
  9617. }
  9618. `;var I2=`uniform sampler2D colorTexture;
  9619. in vec2 v_textureCoordinates;
  9620. #ifdef AUTO_EXPOSURE
  9621. uniform sampler2D autoExposure;
  9622. #endif
  9623. // See equation 3:
  9624. // http://www.cs.utah.edu/~reinhard/cdrom/tonemap.pdf
  9625. void main()
  9626. {
  9627. vec4 fragmentColor = texture(colorTexture, v_textureCoordinates);
  9628. vec3 color = fragmentColor.rgb;
  9629. #ifdef AUTO_EXPOSURE
  9630. float exposure = texture(autoExposure, vec2(0.5)).r;
  9631. color /= exposure;
  9632. #endif
  9633. color = color / (1.0 + color);
  9634. color = czm_inverseGamma(color);
  9635. out_FragColor = vec4(color, fragmentColor.a);
  9636. }
  9637. `;var P2=`uniform sampler2D colorTexture;
  9638. uniform sampler2D silhouetteTexture;
  9639. in vec2 v_textureCoordinates;
  9640. void main(void)
  9641. {
  9642. vec4 silhouetteColor = texture(silhouetteTexture, v_textureCoordinates);
  9643. vec4 color = texture(colorTexture, v_textureCoordinates);
  9644. out_FragColor = mix(color, silhouetteColor, silhouetteColor.a);
  9645. }
  9646. `;/**
  9647. * @license
  9648. * Copyright (c) 2014-2015, NVIDIA CORPORATION. All rights reserved.
  9649. *
  9650. * Redistribution and use in source and binary forms, with or without
  9651. * modification, are permitted provided that the following conditions
  9652. * are met:
  9653. * * Redistributions of source code must retain the above copyright
  9654. * notice, this list of conditions and the following disclaimer.
  9655. * * Redistributions in binary form must reproduce the above copyright
  9656. * notice, this list of conditions and the following disclaimer in the
  9657. * documentation and/or other materials provided with the distribution.
  9658. * * Neither the name of NVIDIA CORPORATION nor the names of its
  9659. * contributors may be used to endorse or promote products derived
  9660. * from this software without specific prior written permission.
  9661. *
  9662. * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``AS IS'' AND ANY
  9663. * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
  9664. * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
  9665. * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
  9666. * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
  9667. * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
  9668. * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
  9669. * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
  9670. * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
  9671. * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
  9672. * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  9673. */var O2=`/**
  9674. * @license
  9675. * Copyright (c) 2014-2015, NVIDIA CORPORATION. All rights reserved.
  9676. *
  9677. * Redistribution and use in source and binary forms, with or without
  9678. * modification, are permitted provided that the following conditions
  9679. * are met:
  9680. * * Redistributions of source code must retain the above copyright
  9681. * notice, this list of conditions and the following disclaimer.
  9682. * * Redistributions in binary form must reproduce the above copyright
  9683. * notice, this list of conditions and the following disclaimer in the
  9684. * documentation and/or other materials provided with the distribution.
  9685. * * Neither the name of NVIDIA CORPORATION nor the names of its
  9686. * contributors may be used to endorse or promote products derived
  9687. * from this software without specific prior written permission.
  9688. *
  9689. * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS \`\`AS IS'' AND ANY
  9690. * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
  9691. * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
  9692. * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
  9693. * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
  9694. * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
  9695. * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
  9696. * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
  9697. * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
  9698. * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
  9699. * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  9700. */
  9701. // NVIDIA GameWorks Graphics Samples GitHub link: https://github.com/NVIDIAGameWorks/GraphicsSamples
  9702. // Original FXAA 3.11 shader link: https://github.com/NVIDIAGameWorks/GraphicsSamples/blob/master/samples/es3-kepler/FXAA/FXAA3_11.h
  9703. // Steps used to integrate into Cesium:
  9704. // * The following defines are set:
  9705. // #define FXAA_PC 1
  9706. // #define FXAA_WEBGL_1 1
  9707. // #define FXAA_GREEN_AS_LUMA 1
  9708. // #define FXAA_EARLY_EXIT 1
  9709. // #define FXAA_GLSL_120 1
  9710. // * All other preprocessor directives besides the FXAA_QUALITY__P* directives were removed.
  9711. // * Double underscores are invalid for preprocessor directives so replace them with a single underscore. Replace
  9712. // /FXAA_QUALITY__P(.*)/g with /FXAA_QUALITY__P$1/.
  9713. // * There are no implicit conversions from ivec* to vec* so replace:
  9714. // #define FxaaInt2 ivec2
  9715. // with
  9716. // #define FxaaInt2 vec2
  9717. // * The texture2DLod function is only available in vertex shaders so replace:
  9718. // #define FxaaTexTop(t, p) texture2DLod(t, p, 0.0)
  9719. // #define FxaaTexOff(t, p, o, r) texture2DLod(t, p + (o * r), 0.0)
  9720. // with
  9721. // #define FxaaTexTop(t, p) texture(t, p)
  9722. // #define FxaaTexOff(t, p, o, r) texture(t, p + (o * r))
  9723. // * FXAA_QUALITY_PRESET is prepended in the javascript code. We may want to expose that setting in the future.
  9724. // * The following parameters to FxaaPixelShader are unused and can be removed:
  9725. // fxaaConsolePosPos
  9726. // fxaaConsoleRcpFrameOpt
  9727. // fxaaConsoleRcpFrameOpt2
  9728. // fxaaConsole360RcpFrameOpt2
  9729. // fxaaConsoleEdgeSharpness
  9730. // fxaaConsoleEdgeThreshold
  9731. // fxaaConsoleEdgeThresholdMi
  9732. // fxaaConsole360ConstDir
  9733. //
  9734. // Choose the quality preset.
  9735. // This needs to be compiled into the shader as it effects code.
  9736. // Best option to include multiple presets is to
  9737. // in each shader define the preset, then include this file.
  9738. //
  9739. // OPTIONS
  9740. // -----------------------------------------------------------------------
  9741. // 10 to 15 - default medium dither (10=fastest, 15=highest quality)
  9742. // 20 to 29 - less dither, more expensive (20=fastest, 29=highest quality)
  9743. // 39 - no dither, very expensive
  9744. //
  9745. // NOTES
  9746. // -----------------------------------------------------------------------
  9747. // 12 = slightly faster then FXAA 3.9 and higher edge quality (default)
  9748. // 13 = about same speed as FXAA 3.9 and better than 12
  9749. // 23 = closest to FXAA 3.9 visually and performance wise
  9750. // _ = the lowest digit is directly related to performance
  9751. // _ = the highest digit is directly related to style
  9752. //
  9753. //#define FXAA_QUALITY_PRESET 12
  9754. #if (FXAA_QUALITY_PRESET == 10)
  9755. #define FXAA_QUALITY_PS 3
  9756. #define FXAA_QUALITY_P0 1.5
  9757. #define FXAA_QUALITY_P1 3.0
  9758. #define FXAA_QUALITY_P2 12.0
  9759. #endif
  9760. #if (FXAA_QUALITY_PRESET == 11)
  9761. #define FXAA_QUALITY_PS 4
  9762. #define FXAA_QUALITY_P0 1.0
  9763. #define FXAA_QUALITY_P1 1.5
  9764. #define FXAA_QUALITY_P2 3.0
  9765. #define FXAA_QUALITY_P3 12.0
  9766. #endif
  9767. #if (FXAA_QUALITY_PRESET == 12)
  9768. #define FXAA_QUALITY_PS 5
  9769. #define FXAA_QUALITY_P0 1.0
  9770. #define FXAA_QUALITY_P1 1.5
  9771. #define FXAA_QUALITY_P2 2.0
  9772. #define FXAA_QUALITY_P3 4.0
  9773. #define FXAA_QUALITY_P4 12.0
  9774. #endif
  9775. #if (FXAA_QUALITY_PRESET == 13)
  9776. #define FXAA_QUALITY_PS 6
  9777. #define FXAA_QUALITY_P0 1.0
  9778. #define FXAA_QUALITY_P1 1.5
  9779. #define FXAA_QUALITY_P2 2.0
  9780. #define FXAA_QUALITY_P3 2.0
  9781. #define FXAA_QUALITY_P4 4.0
  9782. #define FXAA_QUALITY_P5 12.0
  9783. #endif
  9784. #if (FXAA_QUALITY_PRESET == 14)
  9785. #define FXAA_QUALITY_PS 7
  9786. #define FXAA_QUALITY_P0 1.0
  9787. #define FXAA_QUALITY_P1 1.5
  9788. #define FXAA_QUALITY_P2 2.0
  9789. #define FXAA_QUALITY_P3 2.0
  9790. #define FXAA_QUALITY_P4 2.0
  9791. #define FXAA_QUALITY_P5 4.0
  9792. #define FXAA_QUALITY_P6 12.0
  9793. #endif
  9794. #if (FXAA_QUALITY_PRESET == 15)
  9795. #define FXAA_QUALITY_PS 8
  9796. #define FXAA_QUALITY_P0 1.0
  9797. #define FXAA_QUALITY_P1 1.5
  9798. #define FXAA_QUALITY_P2 2.0
  9799. #define FXAA_QUALITY_P3 2.0
  9800. #define FXAA_QUALITY_P4 2.0
  9801. #define FXAA_QUALITY_P5 2.0
  9802. #define FXAA_QUALITY_P6 4.0
  9803. #define FXAA_QUALITY_P7 12.0
  9804. #endif
  9805. #if (FXAA_QUALITY_PRESET == 20)
  9806. #define FXAA_QUALITY_PS 3
  9807. #define FXAA_QUALITY_P0 1.5
  9808. #define FXAA_QUALITY_P1 2.0
  9809. #define FXAA_QUALITY_P2 8.0
  9810. #endif
  9811. #if (FXAA_QUALITY_PRESET == 21)
  9812. #define FXAA_QUALITY_PS 4
  9813. #define FXAA_QUALITY_P0 1.0
  9814. #define FXAA_QUALITY_P1 1.5
  9815. #define FXAA_QUALITY_P2 2.0
  9816. #define FXAA_QUALITY_P3 8.0
  9817. #endif
  9818. #if (FXAA_QUALITY_PRESET == 22)
  9819. #define FXAA_QUALITY_PS 5
  9820. #define FXAA_QUALITY_P0 1.0
  9821. #define FXAA_QUALITY_P1 1.5
  9822. #define FXAA_QUALITY_P2 2.0
  9823. #define FXAA_QUALITY_P3 2.0
  9824. #define FXAA_QUALITY_P4 8.0
  9825. #endif
  9826. #if (FXAA_QUALITY_PRESET == 23)
  9827. #define FXAA_QUALITY_PS 6
  9828. #define FXAA_QUALITY_P0 1.0
  9829. #define FXAA_QUALITY_P1 1.5
  9830. #define FXAA_QUALITY_P2 2.0
  9831. #define FXAA_QUALITY_P3 2.0
  9832. #define FXAA_QUALITY_P4 2.0
  9833. #define FXAA_QUALITY_P5 8.0
  9834. #endif
  9835. #if (FXAA_QUALITY_PRESET == 24)
  9836. #define FXAA_QUALITY_PS 7
  9837. #define FXAA_QUALITY_P0 1.0
  9838. #define FXAA_QUALITY_P1 1.5
  9839. #define FXAA_QUALITY_P2 2.0
  9840. #define FXAA_QUALITY_P3 2.0
  9841. #define FXAA_QUALITY_P4 2.0
  9842. #define FXAA_QUALITY_P5 3.0
  9843. #define FXAA_QUALITY_P6 8.0
  9844. #endif
  9845. #if (FXAA_QUALITY_PRESET == 25)
  9846. #define FXAA_QUALITY_PS 8
  9847. #define FXAA_QUALITY_P0 1.0
  9848. #define FXAA_QUALITY_P1 1.5
  9849. #define FXAA_QUALITY_P2 2.0
  9850. #define FXAA_QUALITY_P3 2.0
  9851. #define FXAA_QUALITY_P4 2.0
  9852. #define FXAA_QUALITY_P5 2.0
  9853. #define FXAA_QUALITY_P6 4.0
  9854. #define FXAA_QUALITY_P7 8.0
  9855. #endif
  9856. #if (FXAA_QUALITY_PRESET == 26)
  9857. #define FXAA_QUALITY_PS 9
  9858. #define FXAA_QUALITY_P0 1.0
  9859. #define FXAA_QUALITY_P1 1.5
  9860. #define FXAA_QUALITY_P2 2.0
  9861. #define FXAA_QUALITY_P3 2.0
  9862. #define FXAA_QUALITY_P4 2.0
  9863. #define FXAA_QUALITY_P5 2.0
  9864. #define FXAA_QUALITY_P6 2.0
  9865. #define FXAA_QUALITY_P7 4.0
  9866. #define FXAA_QUALITY_P8 8.0
  9867. #endif
  9868. #if (FXAA_QUALITY_PRESET == 27)
  9869. #define FXAA_QUALITY_PS 10
  9870. #define FXAA_QUALITY_P0 1.0
  9871. #define FXAA_QUALITY_P1 1.5
  9872. #define FXAA_QUALITY_P2 2.0
  9873. #define FXAA_QUALITY_P3 2.0
  9874. #define FXAA_QUALITY_P4 2.0
  9875. #define FXAA_QUALITY_P5 2.0
  9876. #define FXAA_QUALITY_P6 2.0
  9877. #define FXAA_QUALITY_P7 2.0
  9878. #define FXAA_QUALITY_P8 4.0
  9879. #define FXAA_QUALITY_P9 8.0
  9880. #endif
  9881. #if (FXAA_QUALITY_PRESET == 28)
  9882. #define FXAA_QUALITY_PS 11
  9883. #define FXAA_QUALITY_P0 1.0
  9884. #define FXAA_QUALITY_P1 1.5
  9885. #define FXAA_QUALITY_P2 2.0
  9886. #define FXAA_QUALITY_P3 2.0
  9887. #define FXAA_QUALITY_P4 2.0
  9888. #define FXAA_QUALITY_P5 2.0
  9889. #define FXAA_QUALITY_P6 2.0
  9890. #define FXAA_QUALITY_P7 2.0
  9891. #define FXAA_QUALITY_P8 2.0
  9892. #define FXAA_QUALITY_P9 4.0
  9893. #define FXAA_QUALITY_P10 8.0
  9894. #endif
  9895. #if (FXAA_QUALITY_PRESET == 29)
  9896. #define FXAA_QUALITY_PS 12
  9897. #define FXAA_QUALITY_P0 1.0
  9898. #define FXAA_QUALITY_P1 1.5
  9899. #define FXAA_QUALITY_P2 2.0
  9900. #define FXAA_QUALITY_P3 2.0
  9901. #define FXAA_QUALITY_P4 2.0
  9902. #define FXAA_QUALITY_P5 2.0
  9903. #define FXAA_QUALITY_P6 2.0
  9904. #define FXAA_QUALITY_P7 2.0
  9905. #define FXAA_QUALITY_P8 2.0
  9906. #define FXAA_QUALITY_P9 2.0
  9907. #define FXAA_QUALITY_P10 4.0
  9908. #define FXAA_QUALITY_P11 8.0
  9909. #endif
  9910. #if (FXAA_QUALITY_PRESET == 39)
  9911. #define FXAA_QUALITY_PS 12
  9912. #define FXAA_QUALITY_P0 1.0
  9913. #define FXAA_QUALITY_P1 1.0
  9914. #define FXAA_QUALITY_P2 1.0
  9915. #define FXAA_QUALITY_P3 1.0
  9916. #define FXAA_QUALITY_P4 1.0
  9917. #define FXAA_QUALITY_P5 1.5
  9918. #define FXAA_QUALITY_P6 2.0
  9919. #define FXAA_QUALITY_P7 2.0
  9920. #define FXAA_QUALITY_P8 2.0
  9921. #define FXAA_QUALITY_P9 2.0
  9922. #define FXAA_QUALITY_P10 4.0
  9923. #define FXAA_QUALITY_P11 8.0
  9924. #endif
  9925. #define FxaaBool bool
  9926. #define FxaaFloat float
  9927. #define FxaaFloat2 vec2
  9928. #define FxaaFloat3 vec3
  9929. #define FxaaFloat4 vec4
  9930. #define FxaaHalf float
  9931. #define FxaaHalf2 vec2
  9932. #define FxaaHalf3 vec3
  9933. #define FxaaHalf4 vec4
  9934. #define FxaaInt2 vec2
  9935. #define FxaaTex sampler2D
  9936. #define FxaaSat(x) clamp(x, 0.0, 1.0)
  9937. #define FxaaTexTop(t, p) texture(t, p)
  9938. #define FxaaTexOff(t, p, o, r) texture(t, p + (o * r))
  9939. FxaaFloat FxaaLuma(FxaaFloat4 rgba) { return rgba.y; }
  9940. FxaaFloat4 FxaaPixelShader(
  9941. //
  9942. // Use noperspective interpolation here (turn off perspective interpolation).
  9943. // {xy} = center of pixel
  9944. FxaaFloat2 pos,
  9945. //
  9946. // Input color texture.
  9947. // {rgb_} = color in linear or perceptual color space
  9948. // if (FXAA_GREEN_AS_LUMA == 0)
  9949. // {___a} = luma in perceptual color space (not linear)
  9950. FxaaTex tex,
  9951. //
  9952. // Only used on FXAA Quality.
  9953. // This must be from a constant/uniform.
  9954. // {x_} = 1.0/screenWidthInPixels
  9955. // {_y} = 1.0/screenHeightInPixels
  9956. FxaaFloat2 fxaaQualityRcpFrame,
  9957. //
  9958. // Only used on FXAA Quality.
  9959. // This used to be the FXAA_QUALITY_SUBPIX define.
  9960. // It is here now to allow easier tuning.
  9961. // Choose the amount of sub-pixel aliasing removal.
  9962. // This can effect sharpness.
  9963. // 1.00 - upper limit (softer)
  9964. // 0.75 - default amount of filtering
  9965. // 0.50 - lower limit (sharper, less sub-pixel aliasing removal)
  9966. // 0.25 - almost off
  9967. // 0.00 - completely off
  9968. FxaaFloat fxaaQualitySubpix,
  9969. //
  9970. // Only used on FXAA Quality.
  9971. // This used to be the FXAA_QUALITY_EDGE_THRESHOLD define.
  9972. // It is here now to allow easier tuning.
  9973. // The minimum amount of local contrast required to apply algorithm.
  9974. // 0.333 - too little (faster)
  9975. // 0.250 - low quality
  9976. // 0.166 - default
  9977. // 0.125 - high quality
  9978. // 0.063 - overkill (slower)
  9979. FxaaFloat fxaaQualityEdgeThreshold,
  9980. //
  9981. // Only used on FXAA Quality.
  9982. // This used to be the FXAA_QUALITY_EDGE_THRESHOLD_MIN define.
  9983. // It is here now to allow easier tuning.
  9984. // Trims the algorithm from processing darks.
  9985. // 0.0833 - upper limit (default, the start of visible unfiltered edges)
  9986. // 0.0625 - high quality (faster)
  9987. // 0.0312 - visible limit (slower)
  9988. // Special notes when using FXAA_GREEN_AS_LUMA,
  9989. // Likely want to set this to zero.
  9990. // As colors that are mostly not-green
  9991. // will appear very dark in the green channel!
  9992. // Tune by looking at mostly non-green content,
  9993. // then start at zero and increase until aliasing is a problem.
  9994. FxaaFloat fxaaQualityEdgeThresholdMin
  9995. ) {
  9996. /*--------------------------------------------------------------------------*/
  9997. FxaaFloat2 posM;
  9998. posM.x = pos.x;
  9999. posM.y = pos.y;
  10000. FxaaFloat4 rgbyM = FxaaTexTop(tex, posM);
  10001. #define lumaM rgbyM.y
  10002. FxaaFloat lumaS = FxaaLuma(FxaaTexOff(tex, posM, FxaaInt2( 0, 1), fxaaQualityRcpFrame.xy));
  10003. FxaaFloat lumaE = FxaaLuma(FxaaTexOff(tex, posM, FxaaInt2( 1, 0), fxaaQualityRcpFrame.xy));
  10004. FxaaFloat lumaN = FxaaLuma(FxaaTexOff(tex, posM, FxaaInt2( 0,-1), fxaaQualityRcpFrame.xy));
  10005. FxaaFloat lumaW = FxaaLuma(FxaaTexOff(tex, posM, FxaaInt2(-1, 0), fxaaQualityRcpFrame.xy));
  10006. /*--------------------------------------------------------------------------*/
  10007. FxaaFloat maxSM = max(lumaS, lumaM);
  10008. FxaaFloat minSM = min(lumaS, lumaM);
  10009. FxaaFloat maxESM = max(lumaE, maxSM);
  10010. FxaaFloat minESM = min(lumaE, minSM);
  10011. FxaaFloat maxWN = max(lumaN, lumaW);
  10012. FxaaFloat minWN = min(lumaN, lumaW);
  10013. FxaaFloat rangeMax = max(maxWN, maxESM);
  10014. FxaaFloat rangeMin = min(minWN, minESM);
  10015. FxaaFloat rangeMaxScaled = rangeMax * fxaaQualityEdgeThreshold;
  10016. FxaaFloat range = rangeMax - rangeMin;
  10017. FxaaFloat rangeMaxClamped = max(fxaaQualityEdgeThresholdMin, rangeMaxScaled);
  10018. FxaaBool earlyExit = range < rangeMaxClamped;
  10019. /*--------------------------------------------------------------------------*/
  10020. if(earlyExit)
  10021. return rgbyM;
  10022. /*--------------------------------------------------------------------------*/
  10023. FxaaFloat lumaNW = FxaaLuma(FxaaTexOff(tex, posM, FxaaInt2(-1,-1), fxaaQualityRcpFrame.xy));
  10024. FxaaFloat lumaSE = FxaaLuma(FxaaTexOff(tex, posM, FxaaInt2( 1, 1), fxaaQualityRcpFrame.xy));
  10025. FxaaFloat lumaNE = FxaaLuma(FxaaTexOff(tex, posM, FxaaInt2( 1,-1), fxaaQualityRcpFrame.xy));
  10026. FxaaFloat lumaSW = FxaaLuma(FxaaTexOff(tex, posM, FxaaInt2(-1, 1), fxaaQualityRcpFrame.xy));
  10027. /*--------------------------------------------------------------------------*/
  10028. FxaaFloat lumaNS = lumaN + lumaS;
  10029. FxaaFloat lumaWE = lumaW + lumaE;
  10030. FxaaFloat subpixRcpRange = 1.0/range;
  10031. FxaaFloat subpixNSWE = lumaNS + lumaWE;
  10032. FxaaFloat edgeHorz1 = (-2.0 * lumaM) + lumaNS;
  10033. FxaaFloat edgeVert1 = (-2.0 * lumaM) + lumaWE;
  10034. /*--------------------------------------------------------------------------*/
  10035. FxaaFloat lumaNESE = lumaNE + lumaSE;
  10036. FxaaFloat lumaNWNE = lumaNW + lumaNE;
  10037. FxaaFloat edgeHorz2 = (-2.0 * lumaE) + lumaNESE;
  10038. FxaaFloat edgeVert2 = (-2.0 * lumaN) + lumaNWNE;
  10039. /*--------------------------------------------------------------------------*/
  10040. FxaaFloat lumaNWSW = lumaNW + lumaSW;
  10041. FxaaFloat lumaSWSE = lumaSW + lumaSE;
  10042. FxaaFloat edgeHorz4 = (abs(edgeHorz1) * 2.0) + abs(edgeHorz2);
  10043. FxaaFloat edgeVert4 = (abs(edgeVert1) * 2.0) + abs(edgeVert2);
  10044. FxaaFloat edgeHorz3 = (-2.0 * lumaW) + lumaNWSW;
  10045. FxaaFloat edgeVert3 = (-2.0 * lumaS) + lumaSWSE;
  10046. FxaaFloat edgeHorz = abs(edgeHorz3) + edgeHorz4;
  10047. FxaaFloat edgeVert = abs(edgeVert3) + edgeVert4;
  10048. /*--------------------------------------------------------------------------*/
  10049. FxaaFloat subpixNWSWNESE = lumaNWSW + lumaNESE;
  10050. FxaaFloat lengthSign = fxaaQualityRcpFrame.x;
  10051. FxaaBool horzSpan = edgeHorz >= edgeVert;
  10052. FxaaFloat subpixA = subpixNSWE * 2.0 + subpixNWSWNESE;
  10053. /*--------------------------------------------------------------------------*/
  10054. if(!horzSpan) lumaN = lumaW;
  10055. if(!horzSpan) lumaS = lumaE;
  10056. if(horzSpan) lengthSign = fxaaQualityRcpFrame.y;
  10057. FxaaFloat subpixB = (subpixA * (1.0/12.0)) - lumaM;
  10058. /*--------------------------------------------------------------------------*/
  10059. FxaaFloat gradientN = lumaN - lumaM;
  10060. FxaaFloat gradientS = lumaS - lumaM;
  10061. FxaaFloat lumaNN = lumaN + lumaM;
  10062. FxaaFloat lumaSS = lumaS + lumaM;
  10063. FxaaBool pairN = abs(gradientN) >= abs(gradientS);
  10064. FxaaFloat gradient = max(abs(gradientN), abs(gradientS));
  10065. if(pairN) lengthSign = -lengthSign;
  10066. FxaaFloat subpixC = FxaaSat(abs(subpixB) * subpixRcpRange);
  10067. /*--------------------------------------------------------------------------*/
  10068. FxaaFloat2 posB;
  10069. posB.x = posM.x;
  10070. posB.y = posM.y;
  10071. FxaaFloat2 offNP;
  10072. offNP.x = (!horzSpan) ? 0.0 : fxaaQualityRcpFrame.x;
  10073. offNP.y = ( horzSpan) ? 0.0 : fxaaQualityRcpFrame.y;
  10074. if(!horzSpan) posB.x += lengthSign * 0.5;
  10075. if( horzSpan) posB.y += lengthSign * 0.5;
  10076. /*--------------------------------------------------------------------------*/
  10077. FxaaFloat2 posN;
  10078. posN.x = posB.x - offNP.x * FXAA_QUALITY_P0;
  10079. posN.y = posB.y - offNP.y * FXAA_QUALITY_P0;
  10080. FxaaFloat2 posP;
  10081. posP.x = posB.x + offNP.x * FXAA_QUALITY_P0;
  10082. posP.y = posB.y + offNP.y * FXAA_QUALITY_P0;
  10083. FxaaFloat subpixD = ((-2.0)*subpixC) + 3.0;
  10084. FxaaFloat lumaEndN = FxaaLuma(FxaaTexTop(tex, posN));
  10085. FxaaFloat subpixE = subpixC * subpixC;
  10086. FxaaFloat lumaEndP = FxaaLuma(FxaaTexTop(tex, posP));
  10087. /*--------------------------------------------------------------------------*/
  10088. if(!pairN) lumaNN = lumaSS;
  10089. FxaaFloat gradientScaled = gradient * 1.0/4.0;
  10090. FxaaFloat lumaMM = lumaM - lumaNN * 0.5;
  10091. FxaaFloat subpixF = subpixD * subpixE;
  10092. FxaaBool lumaMLTZero = lumaMM < 0.0;
  10093. /*--------------------------------------------------------------------------*/
  10094. lumaEndN -= lumaNN * 0.5;
  10095. lumaEndP -= lumaNN * 0.5;
  10096. FxaaBool doneN = abs(lumaEndN) >= gradientScaled;
  10097. FxaaBool doneP = abs(lumaEndP) >= gradientScaled;
  10098. if(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P1;
  10099. if(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P1;
  10100. FxaaBool doneNP = (!doneN) || (!doneP);
  10101. if(!doneP) posP.x += offNP.x * FXAA_QUALITY_P1;
  10102. if(!doneP) posP.y += offNP.y * FXAA_QUALITY_P1;
  10103. /*--------------------------------------------------------------------------*/
  10104. if(doneNP) {
  10105. if(!doneN) lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy));
  10106. if(!doneP) lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy));
  10107. if(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5;
  10108. if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5;
  10109. doneN = abs(lumaEndN) >= gradientScaled;
  10110. doneP = abs(lumaEndP) >= gradientScaled;
  10111. if(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P2;
  10112. if(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P2;
  10113. doneNP = (!doneN) || (!doneP);
  10114. if(!doneP) posP.x += offNP.x * FXAA_QUALITY_P2;
  10115. if(!doneP) posP.y += offNP.y * FXAA_QUALITY_P2;
  10116. /*--------------------------------------------------------------------------*/
  10117. #if (FXAA_QUALITY_PS > 3)
  10118. if(doneNP) {
  10119. if(!doneN) lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy));
  10120. if(!doneP) lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy));
  10121. if(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5;
  10122. if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5;
  10123. doneN = abs(lumaEndN) >= gradientScaled;
  10124. doneP = abs(lumaEndP) >= gradientScaled;
  10125. if(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P3;
  10126. if(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P3;
  10127. doneNP = (!doneN) || (!doneP);
  10128. if(!doneP) posP.x += offNP.x * FXAA_QUALITY_P3;
  10129. if(!doneP) posP.y += offNP.y * FXAA_QUALITY_P3;
  10130. /*--------------------------------------------------------------------------*/
  10131. #if (FXAA_QUALITY_PS > 4)
  10132. if(doneNP) {
  10133. if(!doneN) lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy));
  10134. if(!doneP) lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy));
  10135. if(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5;
  10136. if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5;
  10137. doneN = abs(lumaEndN) >= gradientScaled;
  10138. doneP = abs(lumaEndP) >= gradientScaled;
  10139. if(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P4;
  10140. if(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P4;
  10141. doneNP = (!doneN) || (!doneP);
  10142. if(!doneP) posP.x += offNP.x * FXAA_QUALITY_P4;
  10143. if(!doneP) posP.y += offNP.y * FXAA_QUALITY_P4;
  10144. /*--------------------------------------------------------------------------*/
  10145. #if (FXAA_QUALITY_PS > 5)
  10146. if(doneNP) {
  10147. if(!doneN) lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy));
  10148. if(!doneP) lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy));
  10149. if(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5;
  10150. if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5;
  10151. doneN = abs(lumaEndN) >= gradientScaled;
  10152. doneP = abs(lumaEndP) >= gradientScaled;
  10153. if(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P5;
  10154. if(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P5;
  10155. doneNP = (!doneN) || (!doneP);
  10156. if(!doneP) posP.x += offNP.x * FXAA_QUALITY_P5;
  10157. if(!doneP) posP.y += offNP.y * FXAA_QUALITY_P5;
  10158. /*--------------------------------------------------------------------------*/
  10159. #if (FXAA_QUALITY_PS > 6)
  10160. if(doneNP) {
  10161. if(!doneN) lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy));
  10162. if(!doneP) lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy));
  10163. if(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5;
  10164. if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5;
  10165. doneN = abs(lumaEndN) >= gradientScaled;
  10166. doneP = abs(lumaEndP) >= gradientScaled;
  10167. if(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P6;
  10168. if(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P6;
  10169. doneNP = (!doneN) || (!doneP);
  10170. if(!doneP) posP.x += offNP.x * FXAA_QUALITY_P6;
  10171. if(!doneP) posP.y += offNP.y * FXAA_QUALITY_P6;
  10172. /*--------------------------------------------------------------------------*/
  10173. #if (FXAA_QUALITY_PS > 7)
  10174. if(doneNP) {
  10175. if(!doneN) lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy));
  10176. if(!doneP) lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy));
  10177. if(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5;
  10178. if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5;
  10179. doneN = abs(lumaEndN) >= gradientScaled;
  10180. doneP = abs(lumaEndP) >= gradientScaled;
  10181. if(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P7;
  10182. if(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P7;
  10183. doneNP = (!doneN) || (!doneP);
  10184. if(!doneP) posP.x += offNP.x * FXAA_QUALITY_P7;
  10185. if(!doneP) posP.y += offNP.y * FXAA_QUALITY_P7;
  10186. /*--------------------------------------------------------------------------*/
  10187. #if (FXAA_QUALITY_PS > 8)
  10188. if(doneNP) {
  10189. if(!doneN) lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy));
  10190. if(!doneP) lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy));
  10191. if(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5;
  10192. if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5;
  10193. doneN = abs(lumaEndN) >= gradientScaled;
  10194. doneP = abs(lumaEndP) >= gradientScaled;
  10195. if(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P8;
  10196. if(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P8;
  10197. doneNP = (!doneN) || (!doneP);
  10198. if(!doneP) posP.x += offNP.x * FXAA_QUALITY_P8;
  10199. if(!doneP) posP.y += offNP.y * FXAA_QUALITY_P8;
  10200. /*--------------------------------------------------------------------------*/
  10201. #if (FXAA_QUALITY_PS > 9)
  10202. if(doneNP) {
  10203. if(!doneN) lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy));
  10204. if(!doneP) lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy));
  10205. if(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5;
  10206. if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5;
  10207. doneN = abs(lumaEndN) >= gradientScaled;
  10208. doneP = abs(lumaEndP) >= gradientScaled;
  10209. if(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P9;
  10210. if(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P9;
  10211. doneNP = (!doneN) || (!doneP);
  10212. if(!doneP) posP.x += offNP.x * FXAA_QUALITY_P9;
  10213. if(!doneP) posP.y += offNP.y * FXAA_QUALITY_P9;
  10214. /*--------------------------------------------------------------------------*/
  10215. #if (FXAA_QUALITY_PS > 10)
  10216. if(doneNP) {
  10217. if(!doneN) lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy));
  10218. if(!doneP) lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy));
  10219. if(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5;
  10220. if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5;
  10221. doneN = abs(lumaEndN) >= gradientScaled;
  10222. doneP = abs(lumaEndP) >= gradientScaled;
  10223. if(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P10;
  10224. if(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P10;
  10225. doneNP = (!doneN) || (!doneP);
  10226. if(!doneP) posP.x += offNP.x * FXAA_QUALITY_P10;
  10227. if(!doneP) posP.y += offNP.y * FXAA_QUALITY_P10;
  10228. /*--------------------------------------------------------------------------*/
  10229. #if (FXAA_QUALITY_PS > 11)
  10230. if(doneNP) {
  10231. if(!doneN) lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy));
  10232. if(!doneP) lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy));
  10233. if(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5;
  10234. if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5;
  10235. doneN = abs(lumaEndN) >= gradientScaled;
  10236. doneP = abs(lumaEndP) >= gradientScaled;
  10237. if(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P11;
  10238. if(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P11;
  10239. doneNP = (!doneN) || (!doneP);
  10240. if(!doneP) posP.x += offNP.x * FXAA_QUALITY_P11;
  10241. if(!doneP) posP.y += offNP.y * FXAA_QUALITY_P11;
  10242. /*--------------------------------------------------------------------------*/
  10243. #if (FXAA_QUALITY_PS > 12)
  10244. if(doneNP) {
  10245. if(!doneN) lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy));
  10246. if(!doneP) lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy));
  10247. if(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5;
  10248. if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5;
  10249. doneN = abs(lumaEndN) >= gradientScaled;
  10250. doneP = abs(lumaEndP) >= gradientScaled;
  10251. if(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P12;
  10252. if(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P12;
  10253. doneNP = (!doneN) || (!doneP);
  10254. if(!doneP) posP.x += offNP.x * FXAA_QUALITY_P12;
  10255. if(!doneP) posP.y += offNP.y * FXAA_QUALITY_P12;
  10256. /*--------------------------------------------------------------------------*/
  10257. }
  10258. #endif
  10259. /*--------------------------------------------------------------------------*/
  10260. }
  10261. #endif
  10262. /*--------------------------------------------------------------------------*/
  10263. }
  10264. #endif
  10265. /*--------------------------------------------------------------------------*/
  10266. }
  10267. #endif
  10268. /*--------------------------------------------------------------------------*/
  10269. }
  10270. #endif
  10271. /*--------------------------------------------------------------------------*/
  10272. }
  10273. #endif
  10274. /*--------------------------------------------------------------------------*/
  10275. }
  10276. #endif
  10277. /*--------------------------------------------------------------------------*/
  10278. }
  10279. #endif
  10280. /*--------------------------------------------------------------------------*/
  10281. }
  10282. #endif
  10283. /*--------------------------------------------------------------------------*/
  10284. }
  10285. #endif
  10286. /*--------------------------------------------------------------------------*/
  10287. }
  10288. /*--------------------------------------------------------------------------*/
  10289. FxaaFloat dstN = posM.x - posN.x;
  10290. FxaaFloat dstP = posP.x - posM.x;
  10291. if(!horzSpan) dstN = posM.y - posN.y;
  10292. if(!horzSpan) dstP = posP.y - posM.y;
  10293. /*--------------------------------------------------------------------------*/
  10294. FxaaBool goodSpanN = (lumaEndN < 0.0) != lumaMLTZero;
  10295. FxaaFloat spanLength = (dstP + dstN);
  10296. FxaaBool goodSpanP = (lumaEndP < 0.0) != lumaMLTZero;
  10297. FxaaFloat spanLengthRcp = 1.0/spanLength;
  10298. /*--------------------------------------------------------------------------*/
  10299. FxaaBool directionN = dstN < dstP;
  10300. FxaaFloat dst = min(dstN, dstP);
  10301. FxaaBool goodSpan = directionN ? goodSpanN : goodSpanP;
  10302. FxaaFloat subpixG = subpixF * subpixF;
  10303. FxaaFloat pixelOffset = (dst * (-spanLengthRcp)) + 0.5;
  10304. FxaaFloat subpixH = subpixG * fxaaQualitySubpix;
  10305. /*--------------------------------------------------------------------------*/
  10306. FxaaFloat pixelOffsetGood = goodSpan ? pixelOffset : 0.0;
  10307. FxaaFloat pixelOffsetSubpix = max(pixelOffsetGood, subpixH);
  10308. if(!horzSpan) posM.x += pixelOffsetSubpix * lengthSign;
  10309. if( horzSpan) posM.y += pixelOffsetSubpix * lengthSign;
  10310. return FxaaFloat4(FxaaTexTop(tex, posM).xyz, lumaM);
  10311. }
  10312. `;function uT(){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(uT.prototype,{ready:{get:function(){return this._ready}},name:{get:function(){return this._name}},outputTexture:{get:function(){let e=this._framebuffers;if(u(e))return e[e.length-1].getColorTexture(0)}}});function Dye(e){let t=e._framebuffers;if(!u(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 Eut(e,t){Dye(e);let n=e._width,i=e._height,o=t.halfFloatingPointTexture?Ye.HALF_FLOAT:Ye.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 Iye(e){let t=e._commands;if(!u(t))return;let n=t.length;for(let i=0;i<n;++i)t[i].shaderProgram.destroy();e._commands=void 0}function Sut(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 wut(e,t){let n=`uniform sampler2D colorTexture;
  10313. in vec2 v_textureCoordinates;
  10314. float sampleTexture(vec2 offset) {
  10315. `;return e===0?n+=` vec4 color = texture(colorTexture, v_textureCoordinates + offset);
  10316. return czm_luminance(color.rgb);
  10317. `:n+=` return texture(colorTexture, v_textureCoordinates + offset).r;
  10318. `,n+=`}
  10319. `,n+=`uniform vec2 colorTextureDimensions;
  10320. uniform vec2 minMaxLuminance;
  10321. uniform sampler2D previousLuminance;
  10322. void main() {
  10323. float color = 0.0;
  10324. float xStep = 1.0 / colorTextureDimensions.x;
  10325. float yStep = 1.0 / colorTextureDimensions.y;
  10326. int count = 0;
  10327. for (int i = 0; i < 3; ++i) {
  10328. for (int j = 0; j < 3; ++j) {
  10329. vec2 offset;
  10330. offset.x = -xStep + float(i) * xStep;
  10331. offset.y = -yStep + float(j) * yStep;
  10332. if (offset.x < 0.0 || offset.x > 1.0 || offset.y < 0.0 || offset.y > 1.0) {
  10333. continue;
  10334. }
  10335. color += sampleTexture(offset);
  10336. ++count;
  10337. }
  10338. }
  10339. if (count > 0) {
  10340. color /= float(count);
  10341. }
  10342. `,e===t-1&&(n+=` float previous = texture(previousLuminance, vec2(0.5)).r;
  10343. color = clamp(color, minMaxLuminance.x, minMaxLuminance.y);
  10344. color = previous + (color - previous) / (60.0 * 1.5);
  10345. color = clamp(color, minMaxLuminance.x, minMaxLuminance.y);
  10346. `),n+=` out_FragColor = vec4(color);
  10347. }
  10348. `,n}function vut(e,t){Iye(e);let n=e._framebuffers,i=n.length,o=new Array(i);for(let r=0;r<i;++r)o[r]=t.createViewportQuadCommand(wut(r,i),{framebuffer:n[r].framebuffer,uniformMap:Sut(e,r)});e._commands=o}uT.prototype.clear=function(e){let t=this._framebuffers;if(!u(t))return;let n=this._clearCommand;u(n)||(n=this._clearCommand=new ti({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)};uT.prototype.update=function(e){let t=e.drawingBufferWidth,n=e.drawingBufferHeight;(t!==this._width||n!==this._height)&&(this._width=t,this._height=n,Eut(this,e),vut(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};uT.prototype.execute=function(e,t){this._colorTexture=t;let n=this._commands;if(!u(n))return;let i=n.length;for(let o=0;o<i;++o)n[o].execute(e)};uT.prototype.isDestroyed=function(){return!1};uT.prototype.destroy=function(){return Dye(this),Iye(this),le(this)};var R2=uT;var Dut={NEAREST:0,LINEAR:1},Mu=Dut;function fT(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,Mu.NEAREST),this._pixelFormat=i,this._pixelDatatype=y(e.pixelDatatype,Ye.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 Ga;o.scissorTest={enabled:!0,rectangle:u(e.scissorRectangle)?We.clone(e.scissorRectangle):new We},this._passState=o,this._ready=!1;let r=e.name;u(r)||(r=Wn()),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(fT.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(u(this._textureCache)){let e=this._textureCache.getFramebuffer(this._name);if(u(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 Iut=/uniform\s+sampler2D\s+depthTexture/g;fT.prototype._isSupported=function(e){return!Iut.test(this._fragmentShader)||e.depthTexture};function Put(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];u(a)&&a!==r&&a instanceof It&&!u(e._textureCache.getStageByName(n))&&(e._texturesToRelease.push(a),delete s[n],delete s[`${n}Dimensions`]),r instanceof It&&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 Out(e,t){return function(){let n=e._actualUniforms[t];return typeof n=="function"?n():n}}function Rut(e,t){return function(){let n=e[t]();if(u(n))return n.dimensions}}function Mut(e){if(u(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]=Out(e,r),n[r]=Put(e,i,r)):(t[r]=i[r],n[r]=i[r]),o[r]=i[r];let s=t[r]();(typeof s=="string"||s instanceof It||s instanceof HTMLImageElement||s instanceof HTMLCanvasElement||s instanceof HTMLVideoElement)&&(t[`${r}Dimensions`]=Rut(t,r))}e._uniforms={},Object.defineProperties(e._uniforms,n),e._uniformMap=gt(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 Lut(e,t){if(u(e._command)&&!e._logDepthChanged&&!e._selectedDirty)return;let n=e._fragmentShader;if(u(e._selectedIdTexture)){let o=e._selectedIdTexture.width;n=n.replace(/in\s+vec2\s+v_textureCoordinates;/g,""),n=`#define CZM_SELECTED_FEATURE
  10349. uniform sampler2D czm_idTexture;
  10350. uniform sampler2D czm_selectedIdTexture;
  10351. uniform float czm_selectedIdTextureStep;
  10352. in vec2 v_textureCoordinates;
  10353. bool czm_selected(vec2 offset)
  10354. {
  10355. bool selected = false;
  10356. vec4 id = texture(czm_idTexture, v_textureCoordinates + offset);
  10357. for (int i = 0; i < ${o}; ++i)
  10358. {
  10359. vec4 selectedId = texture(czm_selectedIdTexture, vec2((float(i) + 0.5) * czm_selectedIdTextureStep, 0.5));
  10360. if (all(equal(id, selectedId)))
  10361. {
  10362. return true;
  10363. }
  10364. }
  10365. return false;
  10366. }
  10367. bool czm_selected()
  10368. {
  10369. return czm_selected(vec2(0.0));
  10370. }
  10371. ${n}`}let i=new Ue({defines:[e._useLogDepth?"LOG_DEPTH":""],sources:[n]});e._command=t.createViewportQuadCommand(i,{uniformMap:e._uniformMap,owner:e})}function Nut(e){let t=e._sampleMode,n,i;t===Mu.LINEAR?(n=rn.LINEAR,i=yi.LINEAR):(n=rn.NEAREST,i=yi.NEAREST);let o=e._sampler;(!u(o)||o.minificationFilter!==n||o.magnificationFilter!==i)&&(e._sampler=new ln({wrapS:Sn.CLAMP_TO_EDGE,wrapT:Sn.CLAMP_TO_EDGE,minificationFilter:n,magnificationFilter:i}))}function Fut(e,t){return function(n){e._texturesToCreate.push({name:t,source:n})}}function But(e,t){return function(){return e._textureCache.getOutputTexture(t)}}function kut(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 It({context:t,source:p})}a.length=0;let c=e._dirtyUniforms;if(c.length===0&&!u(e._texturePromise)){e._ready=!0;return}if(c.length===0||u(e._texturePromise))return;s=c.length;let l=e._uniforms,f=[];for(n=0;n<s;++n){o=c[n];let d=l[o],p=e._textureCache.getStageByName(d);if(u(p))e._actualUniforms[o]=But(e,d);else if(typeof d=="string"){let g=new ve({url:d});f.push(g.fetchImage().then(Fut(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 Pye(e){u(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(!u(t))return;let n=e._uniforms,i=e._actualUniforms;for(let o in i)i.hasOwnProperty(o)&&i[o]instanceof It&&(u(t.getStageByName(n[o]))||i[o].destroy(),e._dirtyUniforms.push(o))}function Uut(e){let t=u(e._selected)?e._selected.length:0,n=u(e._parentSelected)?e._parentSelected:0,i=e._selected!==e._selectedShadow||t!==e._selectedLength;if(i=i||e._parentSelected!==e._parentSelectedShadow||n!==e._parentSelectedLength,u(e._selected)&&u(e._parentSelected)?e._combinedSelected=e._selected.concat(e._parentSelected):u(e._parentSelected)?e._combinedSelected=e._parentSelected:e._combinedSelected=e._selected,!i&&u(e._combinedSelected)){if(!u(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 Vut(e,t){if(!e._selectedDirty)return;e._selectedIdTexture=e._selectedIdTexture&&e._selectedIdTexture.destroy(),e._selectedIdTexture=void 0;let n=e._combinedSelected;if(!u(n))return;let i,o,r=0,s=n.length;for(i=0;i<s;++i)o=n[i],u(o.pickIds)?r+=o.pickIds.length:u(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 It({context:t,pixelFormat:nt.RGBA,pixelDatatype:Ye.UNSIGNED_BYTE,source:{arrayBufferView:f,width:1,height:1},sampler:ln.NEAREST});return}let a,c=0,l=new Uint8Array(r*4);for(i=0;i<s;++i)if(o=n[i],u(o.pickIds)){let f=o.pickIds,d=f.length;for(let p=0;p<d;++p)a=f[p].color,l[c]=H.floatToByte(a.red),l[c+1]=H.floatToByte(a.green),l[c+2]=H.floatToByte(a.blue),l[c+3]=H.floatToByte(a.alpha),c+=4}else u(o.pickId)&&(a=o.pickId.color,l[c]=H.floatToByte(a.red),l[c+1]=H.floatToByte(a.green),l[c+2]=H.floatToByte(a.blue),l[c+3]=H.floatToByte(a.alpha),c+=4);e._selectedIdTexture=new It({context:t,pixelFormat:nt.RGBA,pixelDatatype:Ye.UNSIGNED_BYTE,source:{arrayBufferView:l,width:r,height:1},sampler:ln.NEAREST})}fT.prototype.update=function(e,t){if(this.enabled!==this._enabled&&!this.enabled&&Pye(this),this._enabled=this.enabled,!this._enabled||(this._logDepthChanged=t!==this._useLogDepth,this._useLogDepth=t,this._selectedDirty=Uut(this),this._selectedShadow=this._selected,this._parentSelectedShadow=this._parentSelected,this._combinedSelectedShadow=this._combinedSelected,this._selectedLength=u(this._selected)?this._selected.length:0,this._parentSelectedLength=u(this._parentSelected)?this._parentSelected.length:0,Vut(this,e),Mut(this),kut(this,e),Lut(this,e),Nut(this),this._selectedDirty=!1,!this._ready))return;let n=this._textureCache.getFramebuffer(this._name);if(this._command.framebuffer=n,!u(n))return;let i=n.getColorTexture(0),o;(i.width!==e.drawingBufferWidth||i.height!==e.drawingBufferHeight)&&(o=this._renderState,(!u(o)||i.width!==o.viewport.width||i.height!==o.viewport.height)&&(this._renderState=ke.fromCache({viewport:new We(0,0,i.width,i.height)}))),this._command.renderState=o};fT.prototype.execute=function(e,t,n,i){if(!u(this._command)||!u(this._command.framebuffer)||!this._ready||!this._enabled)return;this._colorTexture=t,this._depthTexture=n,this._idTexture=i,ln.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;u(o)&&(o.context=e),this._command.execute(e,o)};fT.prototype.isDestroyed=function(){return!1};fT.prototype.destroy=function(){return Pye(this),le(this)};var _o=fT;function dT(e){e=y(e,y.EMPTY_OBJECT),this._stages=e.stages,this._inputPreviousStageTexture=y(e.inputPreviousStageTexture,!0);let t=e.name;u(t)||(t=Wn()),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(dT.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}}});dT.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};dT.prototype.get=function(e){return this._stages[e]};function zut(e){let t=u(e._selected)?e._selected.length:0,n=u(e._parentSelected)?e._parentSelected:0,i=e._selected!==e._selectedShadow||t!==e._selectedLength;if(i=i||e._parentSelected!==e._parentSelectedShadow||n!==e._parentSelectedLength,u(e._selected)&&u(e._parentSelected)?e._combinedSelected=e._selected.concat(e._parentSelected):u(e._parentSelected)?e._combinedSelected=e._parentSelected:e._combinedSelected=e._selected,!i&&u(e._combinedSelected)){if(!u(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}dT.prototype.update=function(e,t){this._selectedDirty=zut(this),this._selectedShadow=this._selected,this._parentSelectedShadow=this._parentSelected,this._combinedSelectedShadow=this._combinedSelected,this._selectedLength=u(this._selected)?this._selected.length:0,this._parentSelectedLength=u(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)}};dT.prototype.isDestroyed=function(){return!1};dT.prototype.destroy=function(){let e=this._stages,t=e.length;for(let n=0;n<t;++n)e[n].destroy();return le(this)};var Qc=dT;var Ur={};function J4(e){let o=`#define USE_STEP_SIZE
  10372. ${$y}`,r=new _o({name:`${e}_x_direction`,fragmentShader:o,uniforms:{delta:1,sigma:2,stepSize:1,direction:0},sampleMode:Mu.LINEAR}),s=new _o({name:`${e}_y_direction`,fragmentShader:o,uniforms:{delta:1,sigma:2,stepSize:1,direction:1},sampleMode:Mu.LINEAR}),a={};return Object.defineProperties(a,{delta:{get:function(){return r.uniforms.delta},set:function(c){let l=r.uniforms,f=s.uniforms;l.delta=f.delta=c}},sigma:{get:function(){return r.uniforms.sigma},set:function(c){let l=r.uniforms,f=s.uniforms;l.sigma=f.sigma=c}},stepSize:{get:function(){return r.uniforms.stepSize},set:function(c){let l=r.uniforms,f=s.uniforms;l.stepSize=f.stepSize=c}}}),new Qc({name:e,stages:[r,s],uniforms:a})}Ur.createBlurStage=function(){return J4("czm_blur")};Ur.createDepthOfFieldStage=function(){let e=J4("czm_depth_of_field_blur"),t=new _o({name:"czm_depth_of_field_composite",fragmentShader:T2,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 Qc({name:"czm_depth_of_field",stages:[e,t],inputPreviousStageTexture:!1,uniforms:n})};Ur.isDepthOfFieldSupported=function(e){return e.context.depthTexture};Ur.createEdgeDetectionStage=function(){let e=Wn();return new _o({name:`czm_edge_detection_${e}`,fragmentShader:C2,uniforms:{length:.25,color:H.clone(H.BLACK)}})};Ur.isEdgeDetectionSupported=function(e){return e.context.depthTexture};function Hut(e){if(!u(e))return Ur.createEdgeDetectionStage();let t=new Qc({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};
  10373. `,o+=` vec4 edge${a} = texture(edgeTexture${a}, v_textureCoordinates);
  10374. if (edge${a}.a > 0.0)
  10375. {
  10376. color = edge${a};
  10377. break;
  10378. }
  10379. `,n[`edgeTexture${a}`]=e[a].name;let r=`${i}in vec2 v_textureCoordinates;
  10380. void main() {
  10381. vec4 color = vec4(0.0);
  10382. for (int i = 0; i < ${e.length}; i++)
  10383. {
  10384. ${o} }
  10385. out_FragColor = color;
  10386. }
  10387. `,s=new _o({name:"czm_edge_detection_combine",fragmentShader:r,uniforms:n});return new Qc({name:"czm_edge_detection_composite",stages:[t,s]})}Ur.createSilhouetteStage=function(e){let t=Hut(e),n=new _o({name:"czm_silhouette_color_edges",fragmentShader:P2,uniforms:{silhouetteTexture:t.name}});return new Qc({name:"czm_silhouette",stages:[t,n],inputPreviousStageTexture:!1,uniforms:t.uniforms})};Ur.isSilhouetteSupported=function(e){return e.context.depthTexture};Ur.createBloomStage=function(){let e=new _o({name:"czm_bloom_contrast_bias",fragmentShader:b2,uniforms:{contrast:128,brightness:-.3}}),t=J4("czm_bloom_blur"),n=new Qc({name:"czm_bloom_contrast_bias_blur",stages:[e,t]}),i=new _o({name:"czm_bloom_generate_composite",fragmentShader:y2,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 Qc({name:"czm_bloom",stages:[n,i],inputPreviousStageTexture:!1,uniforms:o})};Ur.createAmbientOcclusionStage=function(){let e=new _o({name:"czm_ambient_occlusion_generate",fragmentShader:p2,uniforms:{intensity:3,bias:.1,lengthCap:.26,stepSize:1.95,frustumLength:1e3,randomTexture:void 0}}),t=J4("czm_ambient_occlusion_blur");t.uniforms.stepSize=.86;let n=new Qc({name:"czm_ambient_occlusion_generate_blur",stages:[e,t]}),i=new _o({name:"czm_ambient_occlusion_composite",fragmentShader:_2,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 Qc({name:"czm_ambient_occlusion",stages:[n,i],inputPreviousStageTexture:!1,uniforms:o})};Ur.isAmbientOcclusionSupported=function(e){return e.context.depthTexture};var Gut=`#define FXAA_QUALITY_PRESET 39
  10388. ${O2}
  10389. ${S2}`;Ur.createFXAAStage=function(){return new _o({name:"czm_FXAA",fragmentShader:Gut,sampleMode:Mu.LINEAR})};Ur.createAcesTonemappingStage=function(e){let t=e?`#define AUTO_EXPOSURE
  10390. `:"";return t+=m2,new _o({name:"czm_aces",fragmentShader:t,uniforms:{autoExposure:void 0}})};Ur.createFilmicTonemappingStage=function(e){let t=e?`#define AUTO_EXPOSURE
  10391. `:"";return t+=E2,new _o({name:"czm_filmic",fragmentShader:t,uniforms:{autoExposure:void 0}})};Ur.createReinhardTonemappingStage=function(e){let t=e?`#define AUTO_EXPOSURE
  10392. `:"";return t+=I2,new _o({name:"czm_reinhard",fragmentShader:t,uniforms:{autoExposure:void 0}})};Ur.createModifiedReinhardTonemappingStage=function(e){let t=e?`#define AUTO_EXPOSURE
  10393. `:"";return t+=v2,new _o({name:"czm_modified_reinhard",fragmentShader:t,uniforms:{white:H.WHITE,autoExposure:void 0}})};Ur.createAutoExposureStage=function(){return new R2};Ur.createBlackAndWhiteStage=function(){return new _o({name:"czm_black_and_white",fragmentShader:g2,uniforms:{gradations:5}})};Ur.createBrightnessStage=function(){return new _o({name:"czm_brightness",fragmentShader:x2,uniforms:{brightness:.5}})};Ur.createNightVisionStage=function(){return new _o({name:"czm_night_vision",fragmentShader:D2})};Ur.createDepthViewStage=function(){return new _o({name:"czm_depth_view",fragmentShader:A2})};Ur.createLensFlareStage=function(){return new _o({name:"czm_lens_flare",fragmentShader:w2,uniforms:{dirtTexture:Zt("Assets/Textures/LensFlare/DirtMask.jpg"),starTexture:Zt("Assets/Textures/LensFlare/StarBurst.jpg"),intensity:2,distortion:10,ghostDispersal:.4,haloWidth:.4,dirtAmount:.4,earthRadius:ie.WGS84.maximumRadius}})};var Xf=Ur;function W_(e){this._collection=e,this._framebuffers=[],this._stageNameToFramebuffer={},this._width=void 0,this._height=void 0,this._updateDependencies=!1}function L2(e){for(;u(e.length);)e=e.get(e.length-1);return e.name}function Zq(e,t,n,i,o){if(!i.enabled||!i._isSupported(t))return o;let r=n[i.name]={};if(u(o)){let a=e.getStageByName(o);r[L2(a)]=!0}let s=i.uniforms;if(u(s)){let a=Object.getOwnPropertyNames(s),c=a.length;for(let l=0;l<c;++l){let f=s[a[l]];if(typeof f=="string"){let d=e.getStageByName(f);u(d)&&(r[L2(d)]=!0)}}}return i.name}function M2(e,t,n,i,o){if(u(i.enabled)&&!i.enabled||u(i._isSupported)&&!i._isSupported(t))return o;let r=o,s=!u(i.inputPreviousStageTexture)||i.inputPreviousStageTexture,a=o,c=i.length;for(let d=0;d<c;++d){let p=i.get(d);u(p.length)?a=M2(e,t,n,p,o):a=Zq(e,t,n,p,o),s&&(o=a)}let l,f;if(s)for(l=1;l<c;++l)f=L2(i.get(l)),u(n[f])||(n[f]={}),n[f][r]=!0;else for(l=1;l<c;++l){f=L2(i.get(l));let d=n[f];for(let p=0;p<l;++p)d[L2(i.get(p))]=!0}return a}function Wut(e,t){let n={};if(u(e.ambientOcclusion)){let i=e.ambientOcclusion,o=e.bloom,r=e._tonemapping,s=e.fxaa,a=M2(e,t,n,i,void 0);a=M2(e,t,n,o,a),a=Zq(e,t,n,r,a),a=M2(e,t,n,e,a),Zq(e,t,n,s,a)}else M2(e,t,n,e,void 0);return n}function jut(e,t,n){let o=e._collection.getStageByName(t),r=o._textureScale,s=o._forcePowerOfTwo,a=o._pixelFormat,c=o._pixelDatatype,l=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(l,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 u(d)&&f<g?(d.stages.push(t),d):(d={textureScale:r,forcePowerOfTwo:s,pixelFormat:a,pixelDatatype:c,clearColor:l,stages:[t],buffer:new ui({pixelFormat:a,pixelDatatype:c}),clear:void 0},p.push(d),d)}function qut(e,t){let n=Wut(e._collection,t);for(let i in n)n.hasOwnProperty(i)&&(e._stageNameToFramebuffer[i]=jut(e,i,n[i]))}function $q(e){let t=e._framebuffers,n=t.length;for(let i=0;i<n;++i)t[i].buffer.destroy()}function Yut(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,l=Math.ceil(n*c),f=Math.ceil(i*c),d=Math.min(l,f);a.forcePowerOfTwo&&(P.isPowerOfTwo(d)||(d=P.nextPowerOfTwo(d)),l=d,f=d),a.buffer.update(t,l,f),a.clear=new ti({color:a.clearColor,framebuffer:a.buffer.framebuffer})}}W_.prototype.updateDependencies=function(){this._updateDependencies=!0};W_.prototype.update=function(e){let t=this._collection,n=this._updateDependencies,i=u(t.ambientOcclusion)&&t.ambientOcclusion.enabled&&t.ambientOcclusion._isSupported(e),o=u(t.bloom)&&t.bloom.enabled&&t.bloom._isSupported(e),r=u(t._tonemapping)&&t._tonemapping.enabled&&t._tonemapping._isSupported(e),s=u(t.fxaa)&&t.fxaa.enabled&&t.fxaa._isSupported(e),a=!u(t._activeStages)||t._activeStages.length>0||i||o||r||s;if((n||!a&&this._framebuffers.length>0)&&($q(this),this._framebuffers.length=0,this._stageNameToFramebuffer={},this._width=void 0,this._height=void 0),!n&&!a)return;this._framebuffers.length===0&&qut(this,e);let c=e.drawingBufferWidth,l=e.drawingBufferHeight,f=this._width!==c||this._height!==l;!n&&!f||(this._width=c,this._height=l,this._updateDependencies=!1,$q(this),Yut(this,e))};W_.prototype.clear=function(e){let t=this._framebuffers;for(let n=0;n<t.length;++n)t[n].clear.execute(e)};W_.prototype.getStageByName=function(e){return this._collection.getStageByName(e)};W_.prototype.getOutputTexture=function(e){return this._collection.getOutputTexture(e)};W_.prototype.getFramebuffer=function(e){let t=this._stageNameToFramebuffer[e];if(u(t))return t.buffer.framebuffer};W_.prototype.isDestroyed=function(){return!1};W_.prototype.destroy=function(){return $q(this),le(this)};var hT=W_;var N2={REINHARD:0,MODIFIED_REINHARD:1,FILMIC:2,ACES:3,validate:function(e){return e===N2.REINHARD||e===N2.MODIFIED_REINHARD||e===N2.FILMIC||e===N2.ACES}},Qy=Object.freeze(N2);var Qq=[];function Jc(){let e=Xf.createFXAAStage(),t=Xf.createAmbientOcclusionStage(),n=Xf.createBloomStage();this._autoExposureEnabled=!1,this._autoExposure=Xf.createAutoExposureStage(),this._tonemapping=void 0,this._tonemapper=void 0,this.tonemapper=Qy.ACES;let i=this._tonemapping;e.enabled=!1,t.enabled=!1,n.enabled=!1,i.enabled=!1;let o=new hT(this),r={},s=Qq;for(s.push(e,t,n,i);s.length>0;){let c=s.pop();r[c.name]=c,c._textureCache=o;let l=c.length;if(u(l))for(let f=0;f<l;++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(Jc.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 Jq(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(u(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(!u(t))continue;if(u(t.selected))return!0;let n=t.length;if(u(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;u(this._tonemapping)&&(delete this._stageNames[this._tonemapping.name],this._tonemapping.destroy());let t=this._autoExposureEnabled,n;switch(e){case Qy.REINHARD:n=Xf.createReinhardTonemappingStage(t);break;case Qy.MODIFIED_REINHARD:n=Xf.createModifiedReinhardTonemappingStage(t);break;case Qy.FILMIC:n=Xf.createFilmicTonemappingStage(t);break;default:n=Xf.createAcesTonemappingStage(t);break}if(t){let i=this._autoExposure;n.uniforms.autoExposure=function(){return i.outputTexture}}this._tonemapper=e,this._tonemapping=n,u(this._stageNames)&&(this._stageNames[n.name]=n,n._textureCache=this._textureCache),this._textureCacheDirty=!0}}});function Jq(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}Jc.prototype.add=function(e){let t=this._stageNames,n=Qq;for(n.push(e);n.length>0;){let o=n.pop();t[o.name]=o,o._textureCache=this._textureCache;let r=o.length;if(u(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};Jc.prototype.remove=function(e){if(!this.contains(e))return!1;let t=this._stageNames,n=Qq;for(n.push(e);n.length>0;){let i=n.pop();delete t[i.name];let o=i.length;if(u(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};Jc.prototype.contains=function(e){return u(e)&&u(e._index)&&e._textureCache===this._textureCache};Jc.prototype.get=function(e){return Jq(this),this._stages[e]};Jc.prototype.removeAll=function(){let e=this._stages,t=e.length;for(let n=0;n<t;++n)this.remove(e[n]);e.length=0};Jc.prototype.getStageByName=function(e){return this._stageNames[e]};Jc.prototype.update=function(e,t,n){Jq(this);let i=this._activeStages,o=this._activeStages=this._previousActiveStages;this._previousActiveStages=i;let r=this._stages,s=o.length=r.length,a,c,l=0;for(a=0;a<s;++a)c=r[a],c.ready&&c.enabled&&c._isSupported(e)&&(o[l++]=c);o.length=l;let f=l!==i.length;if(!f){for(a=0;a<l;++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),A=m.enabled&&m._isSupported(e),C=x.enabled&&x._isSupported(e);if((f||this._textureCacheDirty||b!==this._aoEnabled||T!==this._bloomEnabled||A!==this._tonemappingEnabled||C!==this._fxaaEnabled)&&(this._textureCache.updateDependencies(),this._aoEnabled=b,this._bloomEnabled=T,this._tonemappingEnabled=A,this._fxaaEnabled=C,this._textureCacheDirty=!1),u(this._randomTexture)&&!b&&(this._randomTexture.destroy(),this._randomTexture=void 0),!u(this._randomTexture)&&b){s=256*256*3;let S=new Uint8Array(s);for(a=0;a<s;a+=3)S[a]=Math.floor(Math.random()*255);this._randomTexture=new It({context:e,pixelFormat:nt.RGB,pixelDatatype:Ye.UNSIGNED_BYTE,source:{arrayBufferView:S,width:256,height:256},sampler:new ln({wrapS:Sn.REPEAT,wrapT:Sn.REPEAT,minificationFilter:rn.NEAREST,magnificationFilter:yi.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(l=0,a=0;a<s;++a)c=r[a],c.ready&&c.enabled&&c._isSupported(e)&&l++;f=l!==o.length,f&&this.update(e,t,n)};Jc.prototype.clear=function(e){this._textureCache.clear(e),this._autoExposureEnabled&&this._autoExposure.clear(e)};function mT(e){for(;u(e.length);)e=e.get(e.length-1);return e.outputTexture}Jc.prototype.getOutputTexture=function(e){let t=this.getStageByName(e);if(u(t))return mT(t)};function Vm(e,t,n,i,o){if(u(e.execute)){e.execute(t,n,i,o);return}let r=e.length,s;if(e.inputPreviousStageTexture)for(Vm(e.get(0),t,n,i,o),s=1;s<r;++s)Vm(e.get(s),t,mT(e.get(s-1)),i,o);else for(s=0;s<r;++s)Vm(e.get(s),t,n,i,o)}Jc.prototype.execute=function(e,t,n,i){let o=this._activeStages,r=o.length,s=this._fxaa,a=this._ao,c=this._bloom,l=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&&(Vm(a,e,b,n,i),b=mT(a)),p&&c.ready&&(Vm(c,e,b,n,i),b=mT(c)),g&&l.ready&&Vm(l,e,b,n,i),m&&f.ready&&(Vm(f,e,b,n,i),b=mT(f));let T=b;if(r>0){Vm(o[0],e,b,n,i);for(let A=1;A<r;++A)Vm(o[A],e,mT(o[A-1]),n,i);T=mT(o[r-1])}x&&s.ready&&Vm(s,e,T,n,i)};Jc.prototype.copy=function(e,t){if(!u(this._copyColorCommand)){let n=this;this._copyColorCommand=e.createViewportQuadCommand(Hl,{uniformMap:{colorTexture:function(){return n.outputTexture}},owner:this})}this._copyColorCommand.framebuffer=t,this._copyColorCommand.execute(e)};Jc.prototype.isDestroyed=function(){return!1};Jc.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(),le(this)};var F2=Jc;var Xut={SHIFT:0,CTRL:1,ALT:2},aa=Object.freeze(Xut);var Kut={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},xn=Object.freeze(Kut);function Jy(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 rY(e,t){let n=e;return u(t)&&(n+=`+${t}`),n}function pT(e){if(e.shiftKey)return aa.SHIFT;if(e.ctrlKey)return aa.CTRL;if(e.altKey)return aa.ALT}var ys={LEFT:0,MIDDLE:1,RIGHT:2};function Lu(e,t,n,i){function o(r){i(e,r)}Bt.isInternetExplorer()?n.addEventListener(t,o,!1):n.addEventListener(t,o,{capture:!1,passive:!1}),e._removalFunctions.push(function(){n.removeEventListener(t,o,!1)})}function Zut(e){let t=e._element,n=u(t.disableRootEvents)?t:document;Bt.supportsPointerEvents()?(Lu(e,"pointerdown",t,nft),Lu(e,"pointerup",t,Vye),Lu(e,"pointermove",t,ift),Lu(e,"pointercancel",t,Vye)):(Lu(e,"mousedown",t,zye),Lu(e,"mouseup",n,Hye),Lu(e,"mousemove",n,Gye),Lu(e,"touchstart",t,eft),Lu(e,"touchend",n,Nye),Lu(e,"touchmove",n,tft),Lu(e,"touchcancel",n,Nye)),Lu(e,"dblclick",t,Qut);let i;"onwheel"in t?i="wheel":document.onmousewheel!==void 0?i="mousewheel":i="DOMMouseScroll",Lu(e,i,t,Jut)}function $ut(e){let t=e._removalFunctions;for(let n=0;n<t.length;++n)t[n]()}var Oye={position:new z};function sY(e){e._lastSeenTouchEvent=_i()}function aY(e){return _i()-e._lastSeenTouchEvent>xh.mouseEmulationIgnoreMilliseconds}function oY(e,t,n){let i=e.x-t.x,o=e.y-t.y;return Math.sqrt(i*i+o*o)<n}function zye(e,t){if(!aY(e))return;let n=t.button;e._buttonDown[n]=!0;let i;if(n===ys.LEFT)i=xn.LEFT_DOWN;else if(n===ys.MIDDLE)i=xn.MIDDLE_DOWN;else if(n===ys.RIGHT)i=xn.RIGHT_DOWN;else return;let o=Jy(e,t,e._primaryPosition);z.clone(o,e._primaryStartPosition),z.clone(o,e._primaryPreviousPosition);let r=pT(t),s=e.getInputAction(i,r);u(s)&&(z.clone(o,Oye.position),s(Oye),t.preventDefault())}var Rye={position:new z},Mye={position:new z};function eY(e,t,n,i){let o=pT(i),r=e.getInputAction(t,o),s=e.getInputAction(n,o);if(u(r)||u(s)){let a=Jy(e,i,e._primaryPosition);if(u(r)&&(z.clone(a,Rye.position),r(Rye)),u(s)){let c=e._primaryStartPosition;oY(c,a,e._clickPixelTolerance)&&(z.clone(a,Mye.position),s(Mye))}}}function Hye(e,t){if(!aY(e))return;let n=t.button;n!==ys.LEFT&&n!==ys.MIDDLE&&n!==ys.RIGHT||(e._buttonDown[ys.LEFT]&&(eY(e,xn.LEFT_UP,xn.LEFT_CLICK,t),e._buttonDown[ys.LEFT]=!1),e._buttonDown[ys.MIDDLE]&&(eY(e,xn.MIDDLE_UP,xn.MIDDLE_CLICK,t),e._buttonDown[ys.MIDDLE]=!1),e._buttonDown[ys.RIGHT]&&(eY(e,xn.RIGHT_UP,xn.RIGHT_CLICK,t),e._buttonDown[ys.RIGHT]=!1))}var tY={startPosition:new z,endPosition:new z};function Gye(e,t){if(!aY(e))return;let n=pT(t),i=Jy(e,t,e._primaryPosition),o=e._primaryPreviousPosition,r=e.getInputAction(xn.MOUSE_MOVE,n);u(r)&&(z.clone(o,tY.startPosition),z.clone(i,tY.endPosition),r(tY)),z.clone(i,o),(e._buttonDown[ys.LEFT]||e._buttonDown[ys.MIDDLE]||e._buttonDown[ys.RIGHT])&&t.preventDefault()}var Lye={position:new z};function Qut(e,t){let n=t.button,i;if(n===ys.LEFT)i=xn.LEFT_DOUBLE_CLICK;else return;let o=pT(t),r=e.getInputAction(i,o);u(r)&&(Jy(e,t,Lye.position),r(Lye))}function Jut(e,t){let n;if(u(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(!u(n))return;let i=pT(t),o=e.getInputAction(xn.WHEEL,i);u(o)&&(o(n),t.preventDefault())}function eft(e,t){sY(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,Jy(e,r,new z));e8(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 Nye(e,t){sY(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);e8(e,t);let c=e._previousPositions;for(i=0;i<o;++i)r=n[i],s=r.identifier,c.remove(s)}var Fye={position:new z},nY={position1:new z,position2:new z},Bye={position:new z},kye={position:new z},Uye={position:new z};function e8(e,t){let n=pT(t),i=e._positions,o=i.length,r,s,a=e._isPinching;if(o!==1&&e._buttonDown[ys.LEFT]){if(e._buttonDown[ys.LEFT]=!1,u(e._touchHoldTimer)&&(clearTimeout(e._touchHoldTimer),e._touchHoldTimer=void 0),r=e.getInputAction(xn.LEFT_UP,n),u(r)&&(z.clone(e._primaryPosition,Bye.position),r(Bye)),o===0&&!e._isTouchHolding&&(s=e.getInputAction(xn.LEFT_CLICK,n),u(s))){let c=e._primaryStartPosition,l=e._previousPositions.values[0];oY(c,l,e._clickPixelTolerance)&&(z.clone(e._primaryPosition,kye.position),s(kye))}e._isTouchHolding=!1}if(o===0&&a&&(e._isPinching=!1,r=e.getInputAction(xn.PINCH_END,n),u(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[ys.LEFT]=!0,r=e.getInputAction(xn.LEFT_DOWN,n),u(r)&&(z.clone(c,Fye.position),r(Fye)),e._touchHoldTimer=setTimeout(function(){if(!e.isDestroyed()&&(e._touchHoldTimer=void 0,e._isTouchHolding=!0,s=e.getInputAction(xn.RIGHT_CLICK,n),u(s))){let l=e._primaryStartPosition,f=e._previousPositions.values[0];oY(l,f,e._holdPixelTolerance)&&(z.clone(e._primaryPosition,Uye.position),s(Uye))}},xh.touchHoldDelayMilliseconds),t.preventDefault()}o===2&&!a&&(e._isPinching=!0,r=e.getInputAction(xn.PINCH_START,n),u(r)&&(z.clone(i.values[0],nY.position1),z.clone(i.values[1],nY.position2),r(nY),t.preventDefault()))}function tft(e,t){sY(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 l=a.get(s);u(l)&&Jy(e,r,l)}Wye(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 iY={startPosition:new z,endPosition:new z},B2={distance:{startPosition:new z,endPosition:new z},angleAndHeight:{startPosition:new z,endPosition:new z}};function Wye(e,t){let n=pT(t),i=e._positions,o=e._previousPositions,r=i.length,s;if(r===1&&e._buttonDown[ys.LEFT]){let a=i.values[0];z.clone(a,e._primaryPosition);let c=e._primaryPreviousPosition;s=e.getInputAction(xn.MOUSE_MOVE,n),u(s)&&(z.clone(c,iY.startPosition),z.clone(a,iY.endPosition),s(iY)),z.clone(a,c),t.preventDefault()}else if(r===2&&e._isPinching&&(s=e.getInputAction(xn.PINCH_MOVE,n),u(s))){let a=i.values[0],c=i.values[1],l=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-l.x,x=f.y-l.y,b=Math.sqrt(m*m+x*x)*.25,T=(c.y+a.y)*.125,A=(f.y+l.y)*.125,C=Math.atan2(p,d),S=Math.atan2(x,m);z.fromElements(0,b,B2.distance.startPosition),z.fromElements(0,g,B2.distance.endPosition),z.fromElements(S,A,B2.angleAndHeight.startPosition),z.fromElements(C,T,B2.angleAndHeight.endPosition),s(B2)}}function nft(e,t){if(t.target.setPointerCapture(t.pointerId),t.pointerType==="touch"){let n=e._positions,i=t.pointerId;n.set(i,Jy(e,t,new z)),e8(e,t),e._previousPositions.set(i,z.clone(n.get(i)))}else zye(e,t)}function Vye(e,t){if(t.pointerType==="touch"){let n=e._positions,i=t.pointerId;n.remove(i),e8(e,t),e._previousPositions.remove(i)}else Hye(e,t)}function ift(e,t){if(t.pointerType==="touch"){let n=e._positions,i=t.pointerId,o=n.get(i);if(!u(o))return;Jy(e,t,o),Wye(e,t);let r=e._previousPositions;z.clone(n.get(i),r.get(i))}else Gye(e,t)}function xh(e){this._inputEvents={},this._buttonDown={LEFT:!1,MIDDLE:!1,RIGHT:!1},this._isPinching=!1,this._isTouchHolding=!1,this._lastSeenTouchEvent=-xh.mouseEmulationIgnoreMilliseconds,this._primaryStartPosition=new z,this._primaryPosition=new z,this._primaryPreviousPosition=new z,this._positions=new xt,this._previousPositions=new xt,this._removalFunctions=[],this._touchHoldTimer=void 0,this._clickPixelTolerance=5,this._holdPixelTolerance=25,this._element=y(e,document),Zut(this)}xh.prototype.setInputAction=function(e,t,n){let i=rY(t,n);this._inputEvents[i]=e};xh.prototype.getInputAction=function(e,t){let n=rY(e,t);return this._inputEvents[n]};xh.prototype.removeInputAction=function(e,t){let n=rY(e,t);delete this._inputEvents[n]};xh.prototype.isDestroyed=function(){return!1};xh.prototype.destroy=function(){return $ut(this),le(this)};xh.mouseEmulationIgnoreMilliseconds=800;xh.touchHoldDelayMilliseconds=1500;var Nu=xh;function _T(e){this._scene=e,this._currentTweens=[],this._morphHandler=void 0,this._morphCancelled=!1,this._completeMorph=void 0,this._morphToOrthographic=!1}_T.prototype.completeMorph=function(){u(this._completeMorph)&&this._completeMorph()};_T.prototype.morphTo2D=function(e,t){u(this._completeMorph)&&this._completeMorph();let n=this._scene;this._previousMode=n.mode,this._morphToOrthographic=n.camera.frustum instanceof $t,!(this._previousMode===te.SCENE2D||this._previousMode===te.MORPHING)&&(this._scene.morphStart.raiseEvent(this,this._previousMode,te.SCENE2D,!0),n._mode=te.MORPHING,n.camera._setTransform(F.IDENTITY),this._previousMode===te.COLUMBUS_VIEW?Fft(this,e):Gft(this,e,t),e===0&&u(this._completeMorph)&&this._completeMorph())};var oft=new h,rft=new h,sft=new h,aft=new h,cft=new h,lft=new h,uft=new h,fft=new fe,dft=new F,hft=new Ei,mft=new $t,pft={position:void 0,direction:void 0,up:void 0,position2D:void 0,direction2D:void 0,up2D:void 0,frustum:void 0};_T.prototype.morphToColumbusView=function(e,t){u(this._completeMorph)&&this._completeMorph();let n=this._scene;if(this._previousMode=n.mode,this._previousMode===te.COLUMBUS_VIEW||this._previousMode===te.MORPHING)return;this._scene.morphStart.raiseEvent(this,this._previousMode,te.COLUMBUS_VIEW,!0),n.camera._setTransform(F.IDENTITY);let i=oft,o=rft,r=sft;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 l=n.camera;if(this._previousMode===te.SCENE2D)h.clone(l.position,i),i.z=l.frustum.right-l.frustum.left,h.negate(h.UNIT_Z,o),h.clone(h.UNIT_Y,r);else{h.clone(l.positionWC,i),h.clone(l.directionWC,o),h.clone(l.upWC,r);let f=t.scaleToGeodeticSurface(i,uft),d=Rt.eastNorthUpToFixedFrame(f,t,dft);F.inverseTransformation(d,d),n.mapProjection.project(t.cartesianToCartographic(i,fft),i),F.multiplyByPointAsVector(d,o,o),F.multiplyByPointAsVector(d,r,r)}}let s;this._morphToOrthographic?(s=mft,s.width=n.camera.frustum.right-n.camera.frustum.left,s.aspectRatio=n.drawingBufferWidth/n.drawingBufferHeight):(s=hft,s.aspectRatio=n.drawingBufferWidth/n.drawingBufferHeight,s.fov=P.toRadians(60));let a=pft;a.position=i,a.direction=o,a.up=r,a.frustum=s;let c=jft(a);k2(this,c),this._previousMode===te.SCENE2D?Wft(this,e,a,c):(a.position2D=F.multiplyByPoint(co.TRANSFORM_2D,i,aft),a.direction2D=F.multiplyByPointAsVector(co.TRANSFORM_2D,o,cft),a.up2D=F.multiplyByPointAsVector(co.TRANSFORM_2D,r,lft),n._mode=te.MORPHING,t0e(this,e,a,c)),e===0&&u(this._completeMorph)&&this._completeMorph()};var uY={position:new h,direction:new h,up:new h,frustum:void 0},qye=new Ei;_T.prototype.morphTo3D=function(e,t){u(this._completeMorph)&&this._completeMorph();let n=this._scene;if(this._previousMode=n.mode,!(this._previousMode===te.SCENE3D||this._previousMode===te.MORPHING)){if(this._scene.morphStart.raiseEvent(this,this._previousMode,te.SCENE3D,!0),n._mode=te.MORPHING,n.camera._setTransform(F.IDENTITY),this._previousMode===te.SCENE2D)wft(this,e,t);else{let i;e>0?(i=uY,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=Yye(this,t);let o,r=n.camera;r.frustum instanceof $t?o=r.frustum.clone():(o=qye,o.aspectRatio=n.drawingBufferWidth/n.drawingBufferHeight,o.fov=P.toRadians(60)),i.frustum=o;let s=i0e(i);k2(this,s),lY(this,e,i,s)}e===0&&u(this._completeMorph)&&this._completeMorph()}};_T.prototype.isDestroyed=function(){return!1};_T.prototype.destroy=function(){return t8(this),le(this)};function k2(e,t){if(e._scene.completeMorphOnUserInput){e._morphHandler=new Nu(e._scene.canvas);let n=function(){e._morphCancelled=!0,e._scene.camera.cancelFlight(),t(e)};e._completeMorph=n,e._morphHandler.setInputAction(n,xn.LEFT_DOWN),e._morphHandler.setInputAction(n,xn.MIDDLE_DOWN),e._morphHandler.setInputAction(n,xn.RIGHT_DOWN),e._morphHandler.setInputAction(n,xn.WHEEL)}}function t8(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 _ft=new fe,gft=new h,yft=new F;function Yye(e,t){let n=e._scene,i=n.camera,o=uY,r=o.position,s=o.direction,a=o.up,c=n.mapProjection.unproject(i.position,_ft);t.cartographicToCartesian(c,r);let l=t.scaleToGeodeticSurface(r,gft),f=Rt.eastNorthUpToFixedFrame(l,t,yft);return F.multiplyByPointAsVector(f,i.direction,s),F.multiplyByPointAsVector(f,i.up,a),o}var xft=new h,bft=new h,Tft=new h,Aft=new h,Cft=new h,Eft=new h;function lY(e,t,n,i){t*=.5;let o=e._scene,r=o.camera,s=h.clone(r.position,xft),a=h.clone(r.direction,bft),c=h.clone(r.up,Tft),l=F.multiplyByPoint(co.TRANSFORM_2D_INVERSE,n.position,Aft),f=F.multiplyByPointAsVector(co.TRANSFORM_2D_INVERSE,n.direction,Cft),d=F.multiplyByPointAsVector(co.TRANSFORM_2D_INVERSE,n.up,Eft);function p(m){Kf(s,l,m.time,r.position),Kf(a,f,m.time,r.direction),Kf(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:kr.QUARTIC_OUT,startObject:{time:0},stopObject:{time:1},update:p,complete:function(){n0e(e,o,0,1,t,i)}});e._currentTweens.push(g)}var Sft=new $t,Xye=new h,Kye=new h,Zye=new h,fY=new h,$ye=new h,Qye=new h;function wft(e,t,n){t/=3;let i=e._scene,o=i.camera,r;t>0?(r=uY,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=Yye(e,n));let s;e._morphToOrthographic?(s=Sft,s.aspectRatio=i.drawingBufferWidth/i.drawingBufferHeight,s.width=o.frustum.right-o.frustum.left):(s=qye,s.aspectRatio=i.drawingBufferWidth/i.drawingBufferHeight,s.fov=P.toRadians(60)),r.frustum=s;let a=i0e(r);k2(e,a);let c;e._morphToOrthographic?c=function(){lY(e,t,r,a)}:c=function(){e0e(e,t,r,function(){lY(e,t,r,a)})},t>0?(i._mode=te.SCENE2D,o.flyTo({duration:t,destination:h.fromDegrees(0,0,5*n.maximumRadius,n,fY),complete:function(){i._mode=te.MORPHING,c()}})):c()}function Kf(e,t,n,i){return h.lerp(e,t,n,i)}function Jye(e,t,n,i,o){let r=e._scene,s=r.camera;if(s.frustum instanceof $t)return;let a=s.frustum.fov,c=P.RADIANS_PER_DEGREE*.5,l=n.position.z*Math.tan(a*.5);s.frustum.far=l/Math.tan(c*.5)+1e7;function f(p){s.frustum.fov=P.lerp(a,c,p.time);let g=l/Math.tan(s.frustum.fov*.5);i(s,g)}let d=r.tweens.add({duration:t,easingFunction:kr.QUARTIC_OUT,startObject:{time:0},stopObject:{time:1},update:f,complete:function(){s.frustum=n.frustum.clone(),o(e)}});e._currentTweens.push(d)}var vft=new h,Dft=new h,Ift=new h,cY=new h,Pft=new h,Oft=new h,Rft=new Cr,Mft=new Tn,Lft=new h,Nft={position:void 0,direction:void 0,up:void 0,frustum:void 0};function Fft(e,t){t*=.5;let n=e._scene,i=n.camera,o=h.clone(i.position,vft),r=h.clone(i.direction,Dft),s=h.clone(i.up,Ift),a=h.negate(h.UNIT_Z,Pft),c=h.clone(h.UNIT_Y,Oft),l=cY;if(t>0)h.clone(h.ZERO,cY),l.z=5*n.mapProjection.ellipsoid.maximumRadius;else{h.clone(o,cY);let b=Mft;F.multiplyByPoint(co.TRANSFORM_2D,o,b.origin),F.multiplyByPointAsVector(co.TRANSFORM_2D,r,b.direction);let T=n.globe;if(u(T)){let A=T.pickWorldCoordinates(b,n,!0,Lft);u(A)&&(F.multiplyByPoint(co.TRANSFORM_2D_INVERSE,A,l),l.z+=h.distance(o,l))}}let f=Rft;f.right=l.z*.5,f.left=-f.right,f.top=f.right*(n.drawingBufferHeight/n.drawingBufferWidth),f.bottom=-f.top;let d=Nft;d.position=l,d.direction=a,d.up=c,d.frustum=f;let p=o0e(d);k2(e,p);function g(b){Kf(o,l,b.time,i.position),Kf(r,a,b.time,i.direction),Kf(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:kr.QUARTIC_OUT,startObject:{time:0},stopObject:{time:1},update:g,complete:function(){Jye(e,t,d,m,p)}});e._currentTweens.push(x)}var jye=new fe,Bft={position:new h,direction:new h,up:new h,position2D:new h,direction2D:new h,up2D:new h,frustum:new Cr},kft={position:new h,direction:new h,up:new h,frustum:void 0},Uft=new h,Vft=new Tn,zft=new F,Hft=new h;function Gft(e,t,n){t*=.5;let i=e._scene,o=i.camera,r=Bft;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,jye),i.mapProjection.project(jye,r.position),h.negate(h.UNIT_Z,r.direction),h.clone(h.UNIT_Y,r.up);let d=Vft;h.clone(r.position2D,d.origin);let p=h.clone(o.directionWC,d.direction),g=n.scaleToGeodeticSurface(o.positionWC,Hft),m=Rt.eastNorthUpToFixedFrame(g,n,zft);F.inverseTransformation(m,m),F.multiplyByPointAsVector(m,p,p),F.multiplyByPointAsVector(co.TRANSFORM_2D,p,p);let x=i.globe;if(u(x)){let b=x.pickWorldCoordinates(d,i,!0,Uft);if(u(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(co.TRANSFORM_2D,r.position,r.position2D),F.multiplyByPointAsVector(co.TRANSFORM_2D,r.direction,r.direction2D),F.multiplyByPointAsVector(co.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=kft;F.multiplyByPoint(co.TRANSFORM_2D_INVERSE,r.position2D,c.position),h.clone(r.direction,c.direction),h.clone(r.up,c.up),c.frustum=a;let l=o0e(c);k2(e,l);function f(){Jye(e,t,r,s,l)}t0e(e,t,r,f)}function e0e(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=P.RADIANS_PER_DEGREE*.5,l=s*Math.tan(a*.5);r.frustum.far=l/Math.tan(c*.5)+1e7,r.frustum.fov=c;function f(p){r.frustum.fov=P.lerp(c,a,p.time),r.position.z=l/Math.tan(r.frustum.fov*.5)}let d=o.tweens.add({duration:t,easingFunction:kr.QUARTIC_OUT,startObject:{time:0},stopObject:{time:1},update:f,complete:function(){i(e)}});e._currentTweens.push(d)}function Wft(e,t,n,i){t*=.5;let o=e._scene,r=o.camera,s=h.clone(n.position,fY),a=h.clone(n.direction,$ye),c=h.clone(n.up,Qye);o._mode=te.MORPHING;function l(){r.frustum=n.frustum.clone();let f=h.clone(r.position,Xye),d=h.clone(r.direction,Kye),p=h.clone(r.up,Zye);f.z=s.z;function g(x){Kf(f,s,x.time,r.position),Kf(d,a,x.time,r.direction),Kf(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:kr.QUARTIC_OUT,startObject:{time:0},stopObject:{time:1},update:g,complete:function(){i(e)}});e._currentTweens.push(m)}e._morphToOrthographic?l():e0e(e,0,n,l)}function t0e(e,t,n,i){let o=e._scene,r=o.camera,s=h.clone(r.position,Xye),a=h.clone(r.direction,Kye),c=h.clone(r.up,Zye),l=h.clone(n.position2D,fY),f=h.clone(n.direction2D,$ye),d=h.clone(n.up2D,Qye);function p(m){Kf(s,l,m.time,r.position),Kf(a,f,m.time,r.direction),Kf(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:kr.QUARTIC_OUT,startObject:{time:0},stopObject:{time:1},update:p,complete:function(){n0e(e,o,1,0,t,i)}});e._currentTweens.push(g)}function n0e(e,t,n,i,o,r){let s={object:t,property:"morphTime",startValue:n,stopValue:i,duration:o,easingFunction:kr.QUARTIC_OUT};u(r)&&(s.complete=function(){r(e)});let a=t.tweens.addProperty(s);e._currentTweens.push(a)}function i0e(e){return function(t){let n=t._scene;n._mode=te.SCENE3D,n.morphTime=te.getMorphTime(te.SCENE3D),t8(t);let i=n.camera;(t._previousMode!==te.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=u(t._completeMorph);t._completeMorph=void 0,n.camera.update(n.mode),t._scene.morphComplete.raiseEvent(t,t._previousMode,te.SCENE3D,r)}}function o0e(e){return function(t){let n=t._scene;n._mode=te.SCENE2D,n.morphTime=te.getMorphTime(te.SCENE2D),t8(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=u(t._completeMorph);t._completeMorph=void 0,n.camera.update(n.mode),t._scene.morphComplete.raiseEvent(t,t._previousMode,te.SCENE2D,o)}}function jft(e){return function(t){let n=t._scene;n._mode=te.COLUMBUS_VIEW,n.morphTime=te.getMorphTime(te.COLUMBUS_VIEW),t8(t);let i=n.camera;(t._previousModeMode!==te.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=u(t._completeMorph);t._completeMorph=void 0,n.camera.update(n.mode),t._scene.morphComplete.raiseEvent(t,t._previousMode,te.COLUMBUS_VIEW,r)}}var U2=_T;var qft={LEFT_DRAG:0,RIGHT_DRAG:1,MIDDLE_DRAG:2,WHEEL:3,PINCH:4},Mi=Object.freeze(qft);function gc(e,t){let n=e;return u(t)&&(n+=`+${t}`),n}function Yft(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 r0e(e,t,n){let i=gc(Mi.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 l=e._movement[i];u(l)||(l=e._movement[i]={}),l.distance={startPosition:new z,endPosition:new z},l.angleAndHeight={startPosition:new z,endPosition:new z},l.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])},xn.PINCH_START,t),e._eventHandler.setInputAction(function(){e._buttonsDown=Math.max(e._buttonsDown-1,0),r[i]=!1,c[i]=new Date},xn.PINCH_END,t),e._eventHandler.setInputAction(function(f){if(r[i]){o[i]?(Yft(f,l),o[i]=!1,l.prevAngle=l.angleAndHeight.startPosition.x):(z.clone(f.distance.endPosition,l.distance.endPosition),z.clone(f.angleAndHeight.endPosition,l.angleAndHeight.endPosition));let d=l.angleAndHeight.endPosition.x,p=l.prevAngle,g=Math.PI*2;for(;d>=p+Math.PI;)d-=g;for(;d<p-Math.PI;)d+=g;l.angleAndHeight.endPosition.x=-d*n.clientWidth/12,l.angleAndHeight.startPosition.x=-p*n.clientWidth/12}},xn.PINCH_MOVE,t)}function s0e(e,t){let n=gc(Mi.WHEEL,t),i=e._pressTime,o=e._releaseTime,r=e._update;r[n]=!0;let s=e._movement[n];u(s)||(s=e._movement[n]={});let a=e._lastMovement[n];u(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 l=7.5*P.toRadians(c);i[n]=o[n]=new Date,s.endPosition.x=0,s.endPosition.y=l,z.clone(s.endPosition,a.endPosition),a.valid=!0,r[n]=!1},xn.WHEEL,t)}function yS(e,t,n){let i=gc(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];u(c)||(c=e._lastMovement[i]={startPosition:new z,endPosition:new z,valid:!1});let l,f;n===Mi.LEFT_DRAG?(l=xn.LEFT_DOWN,f=xn.LEFT_UP):n===Mi.RIGHT_DRAG?(l=xn.RIGHT_DOWN,f=xn.RIGHT_UP):n===Mi.MIDDLE_DRAG&&(l=xn.MIDDLE_DOWN,f=xn.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])},l,t),e._eventHandler.setInputAction(function(){e._buttonsDown=Math.max(e._buttonsDown-1,0),o[i]=!1,a[i]=new Date},f,t)}function a0e(e,t){z.clone(e.startPosition,t.startPosition),z.clone(e.endPosition,t.endPosition)}function c0e(e,t){let n=e._update,i=e._movement,o=e._lastMovement,r=e._isDown;for(let s in Mi)if(Mi.hasOwnProperty(s)){let a=Mi[s];if(u(a)){let c=gc(a,t);n[c]=!0,u(e._lastMovement[c])||(e._lastMovement[c]={startPosition:new z,endPosition:new z,valid:!1}),u(e._movement[c])||(e._movement[c]={startPosition:new z,endPosition:new z})}}e._eventHandler.setInputAction(function(s){for(let a in Mi)if(Mi.hasOwnProperty(a)){let c=Mi[a];if(u(c)){let l=gc(c,t);r[l]&&(n[l]?(a0e(i[l],o[l]),o[l].valid=!0,a0e(s,i[l]),n[l]=!1):z.clone(s.endPosition,i[l].endPosition))}}z.clone(s.endPosition,e._currentMousePosition)},xn.MOUSE_MOVE,t)}function Zf(e){this._eventHandler=new Nu(e),this._update={},this._movement={},this._lastMovement={},this._isDown={},this._eventStartPosition={},this._pressTime={},this._releaseTime={},this._buttonsDown=0,this._currentMousePosition=new z,s0e(this,void 0),r0e(this,void 0,e),yS(this,void 0,Mi.LEFT_DRAG),yS(this,void 0,Mi.RIGHT_DRAG),yS(this,void 0,Mi.MIDDLE_DRAG),c0e(this,void 0);for(let t in aa)if(aa.hasOwnProperty(t)){let n=aa[t];u(n)&&(s0e(this,n),r0e(this,n,e),yS(this,n,Mi.LEFT_DRAG),yS(this,n,Mi.RIGHT_DRAG),yS(this,n,Mi.MIDDLE_DRAG),c0e(this,n))}}Object.defineProperties(Zf.prototype,{currentMousePosition:{get:function(){return this._currentMousePosition}},anyButtonDown:{get:function(){let e=!this._update[gc(Mi.WHEEL)]||!this._update[gc(Mi.WHEEL,aa.SHIFT)]||!this._update[gc(Mi.WHEEL,aa.CTRL)]||!this._update[gc(Mi.WHEEL,aa.ALT)];return this._buttonsDown>0||e}}});Zf.prototype.isMoving=function(e,t){let n=gc(e,t);return!this._update[n]};Zf.prototype.getMovement=function(e,t){let n=gc(e,t);return this._movement[n]};Zf.prototype.getLastMovement=function(e,t){let n=gc(e,t),i=this._lastMovement[n];if(i.valid)return i};Zf.prototype.isButtonDown=function(e,t){let n=gc(e,t);return this._isDown[n]};Zf.prototype.getStartMousePosition=function(e,t){if(e===Mi.WHEEL)return this._currentMousePosition;let n=gc(e,t);return this._eventStartPosition[n]};Zf.prototype.getButtonPressTime=function(e,t){let n=gc(e,t);return this._pressTime[n]};Zf.prototype.getButtonReleaseTime=function(e,t){let n=gc(e,t);return this._releaseTime[n]};Zf.prototype.reset=function(){for(let e in this._update)this._update.hasOwnProperty(e)&&(this._update[e]=!0)};Zf.prototype.isDestroyed=function(){return!1};Zf.prototype.destroy=function(){return this._eventHandler=this._eventHandler&&this._eventHandler.destroy(),le(this)};var V2=Zf;function n8(e,t,n,i,o,r,s,a,c,l){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=l,this.needsStart=!0}Object.defineProperties(n8.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}}});n8.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 u(e.complete)&&e.complete(),new n8(this);let t=e.duration/Zn.SECONDS_PER_MILLISECOND,n=y(e.delay,0),i=n/Zn.SECONDS_PER_MILLISECOND,o=y(e.easingFunction,kr.LINEAR_NONE),r=e.startObject,s=new Xme(r);s.to(He(e.stopObject),t),s.delay(i),s.easing(o),u(e.update)&&s.onUpdate(function(){e.update(r)}),s.onComplete(y(e.complete,null)),s.repeat(y(e._repeat,0));let a=new n8(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)&&u(t.uniforms[o])&&u(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(!u(e))return!1;let t=this._tweens.indexOf(e);return t!==-1?(e.tweenjs.stop(),u(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(),u(n.cancel)&&n.cancel()}e.length=0};bh.prototype.contains=function(e){return u(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=u(e)?e/Zn.SECONDS_PER_MILLISECOND:_i();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 gT=bh;function H2(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=Mi.LEFT_DRAG,this.zoomEventTypes=[Mi.RIGHT_DRAG,Mi.WHEEL,Mi.PINCH],this.rotateEventTypes=Mi.LEFT_DRAG,this.tiltEventTypes=[Mi.MIDDLE_DRAG,Mi.PINCH,{eventType:Mi.LEFT_DRAG,modifier:aa.CTRL},{eventType:Mi.RIGHT_DRAG,modifier:aa.CTRL}],this.lookEventTypes={eventType:Mi.LEFT_DRAG,modifier:aa.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._aggregator=new V2(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 gT,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,P.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 Xft(e,t){if(e<0)return 0;let n=(1-t)*25;return Math.exp(-n*e)}function Kft(e){return z.equalsEpsilon(e.startPosition,e.endPosition,P.EPSILON14)}var Zft=.4;function $ft(e,t,n,i,o,r,s){let a=r[s];u(a)||(a=r[s]={startPosition:new z,endPosition:new z,motion:new z,inertiaEnabled:!0});let c=e.getButtonPressTime(t,n),l=e.getButtonReleaseTime(t,n),f=c&&l&&(l.getTime()-c.getTime())/1e3,p=l&&(new Date().getTime()-l.getTime())/1e3;if(c&&l&&f<Zft){let g=Xft(p,i),m=e.getLastMovement(t,n);if(!u(m)||Kft(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 Qft(e,t){if(u(t)){let n=e[t];u(n)&&(n.inertiaEnabled=!0);let i=e._inertiaDisablers[t];if(u(i)){let o=i.length;for(let r=0;r<o;++r)n=e[i[r]],u(n)&&(n.inertiaEnabled=!1)}}}var l0e=[];function el(e,t,n,i,o,r){if(!u(n))return;let s=e._aggregator;Array.isArray(n)||(l0e[0]=n,n=l0e);let a=n.length;for(let c=0;c<a;++c){let l=n[c],f=u(l.eventType)?l.eventType:l,d=l.modifier,p=s.isMoving(f,d)&&s.getMovement(f,d),g=s.getStartMousePosition(f,d);e.enableInputs&&t&&(p?(i(e,g,p),Qft(e,r)):o<1&&$ft(s,f,d,o,i,e,r))}}var i8=new Tn,Jft=new h,edt=new z,tdt=new h,ndt=new z,idt=new h,odt=new h,rdt=new h,sdt=new h,T0e=new h,adt=new h,cdt=new h,ldt=new h,udt=new h,fdt=new h,ddt=new h,hdt=new h,mdt=new h,pdt=new h,_dt=new h,yT=new h,u0e=new h,f0e=new h,dY={orientation:new za};function bY(e,t,n,i,o,r){let s=1;u(r)&&(s=P.clamp(Math.abs(r),.25,1));let a=n.endPosition.y-n.startPosition.y,l=a>0?e.minimumZoomDistance*s:0,f=e.maximumZoomDistance,d=o-l,p=i*d;p=P.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||!u(e._globe)){if(m>0&&Math.abs(o-l)<1||m<0&&Math.abs(o-f)<1)return;o-m<l?m=o-l-1:o-m>f&&(m=o-f)}let x=e._scene,b=x.camera,T=x.mode,A=dY.orientation;if(A.heading=b.heading,A.pitch=b.pitch,A.roll=b.roll,b.frustum instanceof $t){Math.abs(m)>0&&(b.zoomIn(m),b._adjustOrthographicFrustum(!0));return}let C=y(n.inertiaEnabled,z.equals(t,e._zoomMouseStart)),S=e._zoomingOnVector,w=e._rotatingZoom,D;if(C||(e._zoomMouseStart=z.clone(t,e._zoomMouseStart),u(e._globe)&&T===te.SCENE2D?(D=b.getPickRay(t,i8).origin,D=h.fromElements(D.y,D.z,D.x)):u(e._globe)&&(D=j_(e,t,Jft)),u(D)?(e._useZoomWorldPosition=!0,e._zoomWorldPosition=h.clone(D,e._zoomWorldPosition)):e._useZoomWorldPosition=!1,S=e._zoomingOnVector=!1,w=e._rotatingZoom=!1,e._zoomingUnderground=e._cameraUnderground),!e._useZoomWorldPosition){b.zoomIn(m);return}let O=T===te.COLUMBUS_VIEW;if(b.positionCartographic.height<2e6&&(w=!0),!C||w){if(T===te.SCENE2D){let R=e._zoomWorldPosition,L=b.position;if(!h.equals(R,L)&&b.positionCartographic.height<e._maxCoord.x*2){let N=b.position.x,_=h.subtract(R,L,tdt);h.normalize(_,_);let E=h.distance(R,L)*m/(b.getMagnitude()*.5);b.move(_,E*.5),(b.position.x<0&&N>0||b.position.x>0&&N<0)&&(D=b.getPickRay(t,i8).origin,D=h.fromElements(D.y,D.z,D.x),e._zoomWorldPosition=h.clone(D,e._zoomWorldPosition))}}else if(T===te.SCENE3D){let R=h.normalize(b.position,T0e);if(e._cameraUnderground||e._zoomingUnderground||b.positionCartographic.height<3e3&&Math.abs(h.dot(b.direction,R))<.6)O=!0;else{let L=x.canvas,N=ndt;N.x=L.clientWidth/2,N.y=L.clientHeight/2;let _=j_(e,N,idt);if(!u(_))O=!0;else if(b.positionCartographic.height<1e6)if(h.dot(b.direction,R)>=-.5)O=!0;else{let E=cdt;h.clone(b.position,E);let v=e._zoomWorldPosition,I=adt;if(I=h.normalize(v,I),h.dot(I,R)<0)return;let M=_dt,B=fdt;h.clone(b.direction,B),h.add(E,h.multiplyByScalar(B,1e3,yT),M);let V=ddt,U=hdt;h.subtract(v,E,V),h.normalize(V,U);let G=h.dot(R,U);if(G>=0){e._zoomMouseStart.x=-1;return}let k=Math.acos(-G),Y=h.magnitude(E),j=h.magnitude(v),$=Y-m,W=h.magnitude(V),K=Math.asin(P.clamp(W/j*Math.sin(k),-1,1)),Z=Math.asin(P.clamp($/j*Math.sin(k),-1,1)),me=K-Z+k,xe=ldt;h.normalize(E,xe);let re=udt;re=h.cross(U,xe,re),re=h.normalize(re,re),h.normalize(h.cross(xe,re,yT),B),h.multiplyByScalar(h.normalize(M,yT),h.magnitude(M)-m,M),h.normalize(E,E),h.multiplyByScalar(E,$,E);let ye=mdt;h.multiplyByScalar(h.add(h.multiplyByScalar(xe,Math.cos(me)-1,u0e),h.multiplyByScalar(B,Math.sin(me),f0e),yT),$,ye),h.add(E,ye,E),h.normalize(M,xe),h.normalize(h.cross(xe,re,yT),B);let ge=pdt;h.multiplyByScalar(h.add(h.multiplyByScalar(xe,Math.cos(me)-1,u0e),h.multiplyByScalar(B,Math.sin(me),f0e),yT),h.magnitude(M),ge),h.add(M,ge,M),h.clone(E,b.position),h.normalize(h.subtract(M,E,yT),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(dY);return}else{let E=h.normalize(_,odt),v=h.normalize(e._zoomWorldPosition,rdt),I=h.dot(v,E);if(I>0&&I<1){let M=P.acosClamped(I),B=h.cross(v,E,sdt),V=Math.abs(M)>P.toRadians(20)?b.positionCartographic.height*.75:b.positionCartographic.height-m,U=m/V;b.rotate(B,M*U)}}}}e._rotatingZoom=!O}if(!C&&O||S){let R,L=Xi.wgs84ToWindowCoordinates(x,e._zoomWorldPosition,edt);T!==te.COLUMBUS_VIEW&&z.equals(t,e._zoomMouseStart)&&u(L)?R=b.getPickRay(L,i8):R=b.getPickRay(t,i8);let N=R.direction;(T===te.COLUMBUS_VIEW||T===te.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(dY)}var gdt=new Tn,ydt=new Tn,xdt=new h;function bdt(e,t,n){let o=e._scene.camera,r=o.getPickRay(n.startPosition,gdt).origin,s=o.getPickRay(n.endPosition,ydt).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,xdt),c=h.magnitude(a);c>0&&(h.normalize(a,a),o.move(a,c))}function d0e(e,t,n){u(n.distance)&&(n=n.distance);let o=e._scene.camera;bY(e,t,n,e._zoomFactor,o.getMagnitude())}var Tdt=new z,Adt=new z;function h0e(e,t,n){if(u(n.angleAndHeight)){Cdt(e,t,n.angleAndHeight);return}let i=e._scene,o=i.camera,r=i.canvas,s=r.clientWidth,a=r.clientHeight,c=Tdt;c.x=2/s*n.startPosition.x-1,c.y=2/a*(a-n.startPosition.y)-1,c=z.normalize(c,c);let l=Adt;l.x=2/s*n.endPosition.x-1,l.y=2/a*(a-n.endPosition.y)-1,l=z.normalize(l,l);let f=P.acosClamped(c.x);c.y<0&&(f=P.TWO_PI-f);let d=P.acosClamped(l.x);l.y<0&&(d=P.TWO_PI-d);let p=d-f;o.twistRight(p)}function Cdt(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 Edt(e){let t=e._scene.mapMode2D===zl.ROTATE;F.equals(F.IDENTITY,e._scene.camera.transform)?(el(e,e.enableTranslate,e.translateEventTypes,bdt,e.inertiaTranslate,"_lastInertiaTranslateMovement"),el(e,e.enableZoom,e.zoomEventTypes,d0e,e.inertiaZoom,"_lastInertiaZoomMovement"),t&&el(e,e.enableRotate,e.tiltEventTypes,h0e,e.inertiaSpin,"_lastInertiaTiltMovement")):(el(e,e.enableZoom,e.zoomEventTypes,d0e,e.inertiaZoom,"_lastInertiaZoomMovement"),t&&el(e,e.enableRotate,e.translateEventTypes,h0e,e.inertiaSpin,"_lastInertiaSpinMovement"))}var A0e=new Tn,Sdt=new h,wdt=new h;function j_(e,t,n){let i=e._scene,o=e._globe,r=i.camera,s;if(i.pickPositionSupported&&(s=i.pickPositionWorldCoordinates(t,Sdt)),!u(o))return h.clone(s,n);let a=!e._cameraUnderground,c=r.getPickRay(t,A0e),l=o.pickWorldCoordinates(c,i,a,wdt),f=u(s)?h.distance(s,r.positionWC):Number.POSITIVE_INFINITY,d=u(l)?h.distance(l,r.positionWC):Number.POSITIVE_INFINITY;return f<d?h.clone(s,n):h.clone(l,n)}var vdt=new fe;function u8(e){let t=e._ellipsoid,n=e._scene,i=n.camera,o=n.mode,r=0;if(o===te.SCENE3D){let c=t.cartesianToCartographic(i.position,vdt);u(c)&&(r=c.height)}else r=i.position.z;let s=y(e._scene.globeHeight,0);return Math.abs(s-r)}var Ddt=new h;function C0e(e,t){let n=t.origin,i=t.direction,o=u8(e),r=h.normalize(n,Ddt),s=Math.abs(h.dot(r,i));return s=Math.max(s,.5)*2,o*s}function E0e(e,t,n,i){let o=h.distance(t.origin,n),r=u8(e),s=P.clamp(r*5,e._minimumUndergroundPickDistance,e._maximumUndergroundPickDistance);return o>s&&(o=Math.min(o,r/5),o=Math.max(o,100)),Tn.getPoint(t,o,i)}function S0e(e,t,n,i){let o;return u(n)?(o=h.distance(t.origin,n),o>e._maximumUndergroundPickDistance&&(o=u8(e))):o=u8(e),Tn.getPoint(t,o,i)}var Idt=new z;function w0e(e,t){let n=t.endPosition,i=z.subtract(t.endPosition,t.startPosition,Idt),o=e._strafeEndMousePosition;z.add(o,i,o),t.endPosition=o,TY(e,t,e._strafeStartPosition),t.endPosition=n}var m0e=new Tn,Pdt=new Tn,hY=new h,Odt=new h,Rdt=new h,Mdt=new h,Ldt=new en(h.UNIT_X,0),Ndt=new z,Fdt=new z;function Bdt(e,t,n){if(h.equals(t,e._translateMousePosition)||(e._looking=!1),h.equals(t,e._strafeMousePosition)||(e._strafing=!1),e._looking){Bu(e,t,n);return}if(e._strafing){w0e(e,n);return}let o=e._scene.camera,r=e._cameraUnderground,s=z.clone(n.startPosition,Ndt),a=z.clone(n.endPosition,Fdt),c=o.getPickRay(s,m0e),l=h.clone(h.ZERO,Mdt),f=h.UNIT_X,d;if(o.position.z<e._minimumPickingTerrainHeight&&(d=j_(e,s,hY),u(d)&&(l.x=d.x)),r||l.x>o.position.z&&u(d)){let C=d;r&&(C=S0e(e,c,d,hY)),z.clone(t,e._strafeMousePosition),z.clone(t,e._strafeEndMousePosition),h.clone(C,e._strafeStartPosition),e._strafing=!0,TY(e,n,e._strafeStartPosition);return}let p=en.fromPointNormal(l,f,Ldt);c=o.getPickRay(s,m0e);let g=xi.rayPlane(c,p,hY),m=o.getPickRay(a,Pdt),x=xi.rayPlane(m,p,Odt);if(!u(g)||!u(x)){e._looking=!0,Bu(e,t,n),z.clone(t,e._translateMousePosition);return}let b=h.subtract(g,x,Rdt),T=b.x;b.x=b.y,b.y=b.z,b.z=T;let A=h.magnitude(b);A>P.EPSILON6&&(h.normalize(b,b),o.move(b,A))}var v0e=new z,s8=new Tn,a8=new h,kdt=new h,D0e=new F,Udt=new F,Vdt=new h,zdt=new en(h.UNIT_X,0),mY=new h,gY=new fe,I0e=new F,Hdt=new Le,Gdt=new Q,c8=new h;function Wdt(e,t,n){if(u(n.angleAndHeight)&&(n=n.angleAndHeight),z.equals(t,e._tiltCenterMousePosition)||(e._tiltCVOffMap=!1,e._looking=!1),e._looking){Bu(e,t,n);return}let o=e._scene.camera;e._tiltCVOffMap||!e.onMap()||Math.abs(o.position.z)>e._minimumPickingTerrainHeight?(e._tiltCVOffMap=!0,jdt(e,t,n)):qdt(e,t,n)}function jdt(e,t,n){let i=e._scene,o=i.camera,r=i.canvas,s=v0e;s.x=r.clientWidth/2,s.y=r.clientHeight/2;let a=o.getPickRay(s,s8),c=h.UNIT_X,l=a.origin,f=a.direction,d,p=h.dot(c,f);if(Math.abs(p)>P.EPSILON6&&(d=-h.dot(c,l)/p),!u(d)||d<=0){e._looking=!0,Bu(e,t,n),z.clone(t,e._tiltCenterMousePosition);return}let g=h.multiplyByScalar(f,d,a8);h.add(l,g,g);let m=i.mapProjection,x=m.ellipsoid;h.fromElements(g.y,g.z,g.x,g);let b=m.unproject(g,gY);x.cartographicToCartesian(b,g);let T=Rt.eastNorthUpToFixedFrame(g,x,D0e),A=e._globe,C=e._ellipsoid;e._globe=void 0,e._ellipsoid=ie.UNIT_SPHERE,e._rotateFactor=1,e._rotateRateRangeAdjustment=1;let S=F.clone(o.transform,I0e);o._setTransform(T),Fu(e,t,n,h.UNIT_Z),o._setTransform(S),e._globe=A,e._ellipsoid=C;let w=C.maximumRadius;e._rotateFactor=1/w,e._rotateRateRangeAdjustment=w}function qdt(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,a8);else{if(o.position.z<e._minimumPickingTerrainHeight&&(s=j_(e,t,a8)),!u(s)){a=o.getPickRay(t,s8);let _=a.origin,E=a.direction,v,I=h.dot(c,E);if(Math.abs(I)>P.EPSILON6&&(v=-h.dot(c,_)/I),!u(v)||v<=0){e._looking=!0,Bu(e,t,n),z.clone(t,e._tiltCenterMousePosition);return}s=h.multiplyByScalar(E,v,a8),h.add(_,s,s)}r&&(u(a)||(a=o.getPickRay(t,s8)),E0e(e,a,s,s)),z.clone(t,e._tiltCenterMousePosition),h.clone(s,e._tiltCenter)}let l=i.canvas,f=v0e;f.x=l.clientWidth/2,f.y=e._tiltCenterMousePosition.y,a=o.getPickRay(f,s8);let d=h.clone(h.ZERO,Vdt);d.x=s.x;let p=en.fromPointNormal(d,c,zdt),g=xi.rayPlane(a,p,kdt),m=o._projection,x=m.ellipsoid;h.fromElements(s.y,s.z,s.x,s);let b=m.unproject(s,gY);x.cartographicToCartesian(b,s);let T=Rt.eastNorthUpToFixedFrame(s,x,D0e),A;u(g)?(h.fromElements(g.y,g.z,g.x,g),b=m.unproject(g,gY),x.cartographicToCartesian(b,g),A=Rt.eastNorthUpToFixedFrame(g,x,Udt)):A=T;let C=e._globe,S=e._ellipsoid;e._globe=void 0,e._ellipsoid=ie.UNIT_SPHERE,e._rotateFactor=1,e._rotateRateRangeAdjustment=1;let w=h.UNIT_Z,D=F.clone(o.transform,I0e);o._setTransform(T);let O=h.cross(h.UNIT_Z,h.normalize(o.position,mY),mY),R=h.dot(o.right,O);if(Fu(e,t,n,w,!1,!0),o._setTransform(A),R<0){let _=n.startPosition.y-n.endPosition.y;(r&&_<0||!r&&_>0)&&(w=void 0);let E=o.constrainedAxis;o.constrainedAxis=void 0,Fu(e,t,n,w,!0,!1),o.constrainedAxis=E}else Fu(e,t,n,w,!0,!1);if(u(o.constrainedAxis)){let _=h.cross(o.direction,o.constrainedAxis,c8);h.equalsEpsilon(_,h.ZERO,P.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=C,e._ellipsoid=S;let L=S.maximumRadius;e._rotateFactor=1/L,e._rotateRateRangeAdjustment=L;let N=h.clone(o.positionWC,mY);if(e.enableCollisionDetection&&EY(e),!h.equals(o.positionWC,N)){o._setTransform(A),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 E=h.angleBetween(N,o.position),v=h.cross(N,o.position,N);h.normalize(v,v);let I=Le.fromAxisAngle(v,E,Hdt),M=Q.fromQuaternion(I,Gdt);Q.multiplyByVector(M,o.direction,o.direction),Q.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 P0e=new z,O0e=new Tn,R0e=new h;function Ydt(e,t,n){u(n.distance)&&(n=n.distance);let i=e._scene,o=i.camera,r=i.canvas,s=e._cameraUnderground,a;s?a=t:(a=P0e,a.x=r.clientWidth/2,a.y=r.clientHeight/2);let c=o.getPickRay(a,O0e),l=c.origin,f=c.direction,d=o.position.z,p;d<e._minimumPickingTerrainHeight&&(p=j_(e,a,R0e));let g;if(u(p)&&(g=h.distance(l,p)),s){let m=C0e(e,c,d);u(g)?g=Math.min(g,m):g=m}if(!u(g)){let m=h.UNIT_X;g=-h.dot(m,l)/h.dot(m,f)}bY(e,t,n,e._zoomFactor,g)}function Xdt(e){let n=e._scene.camera;if(!F.equals(F.IDENTITY,n.transform))el(e,e.enableRotate,e.rotateEventTypes,Fu,e.inertiaSpin,"_lastInertiaSpinMovement"),el(e,e.enableZoom,e.zoomEventTypes,L0e,e.inertiaZoom,"_lastInertiaZoomMovement");else{let i=e._tweens;if(e._aggregator.anyButtonDown&&i.removeAll(),el(e,e.enableTilt,e.tiltEventTypes,Wdt,e.inertiaSpin,"_lastInertiaTiltMovement"),el(e,e.enableTranslate,e.translateEventTypes,Bdt,e.inertiaTranslate,"_lastInertiaTranslateMovement"),el(e,e.enableZoom,e.zoomEventTypes,Ydt,e.inertiaZoom,"_lastInertiaZoomMovement"),el(e,e.enableLook,e.lookEventTypes,Bu),!e._aggregator.anyButtonDown&&!i.contains(e._tween)){let o=n.createCorrectPositionTween(e.bounceAnimationTime);u(o)&&(e._tween=i.add(o))}i.update()}}var Kdt=new Tn,Zdt=new en(h.UNIT_X,0),$dt=new h,Qdt=new h;function TY(e,t,n){let i=e._scene,o=i.camera,r=o.getPickRay(t.endPosition,Kdt),s=h.clone(o.direction,Qdt);i.mode===te.COLUMBUS_VIEW&&h.fromElements(s.z,s.x,s.y,s);let a=en.fromPointNormal(n,s,Zdt),c=xi.rayPlane(r,a,$dt);u(c)&&(s=h.subtract(n,c,s),i.mode===te.COLUMBUS_VIEW&&h.fromElements(s.y,s.z,s.x,s),h.add(o.position,s,o.position))}var p0e=new h,M0e=new fe,yY=new h,xY=new ie,Jdt=new h,eht=new h,tht=new h;function nht(e,t,n){let o=e._scene.camera,r=e._cameraUnderground,s=e._ellipsoid;if(!F.equals(o.transform,F.IDENTITY)){Fu(e,t,n);return}let a,c,l=s.geodeticSurfaceNormal(o.position,Jdt);if(z.equals(t,e._rotateMousePosition)){if(e._looking)Bu(e,t,n,l);else if(e._rotating)Fu(e,t,n);else if(e._strafing)w0e(e,n);else{if(h.magnitude(o.position)<h.magnitude(e._rotateStartPosition))return;a=h.magnitude(e._rotateStartPosition),c=yY,c.x=c.y=c.z=a,s=ie.fromCartesian3(c,xY),_Y(e,t,n,s)}return}e._looking=!1,e._rotating=!1,e._strafing=!1;let f=s.cartesianToCartographic(o.positionWC,M0e).height,d=e._globe;if(u(d)&&f<e._minimumPickingTerrainHeight){let p=j_(e,n.startPosition,tht);if(u(p)){let g=!1,m=o.getPickRay(n.startPosition,A0e);if(r)g=!0,S0e(e,m,p,p);else{let x=s.geodeticSurfaceNormal(p,eht);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,TY(e,n,e._strafeStartPosition)):(a=h.magnitude(p),c=yY,c.x=c.y=c.z=a,s=ie.fromCartesian3(c,xY),_Y(e,t,n,s),h.clone(p,e._rotateStartPosition))}else e._looking=!0,Bu(e,t,n,l)}else u(o.pickEllipsoid(n.startPosition,e._ellipsoid,p0e))?(_Y(e,t,n,e._ellipsoid),h.clone(p0e,e._rotateStartPosition)):f>e._minimumTrackBallHeight?(e._rotating=!0,Fu(e,t,n)):(e._looking=!0,Bu(e,t,n,l));z.clone(t,e._rotateMousePosition)}function Fu(e,t,n,i,o,r){o=y(o,!1),r=y(r,!1);let s=e._scene,a=s.camera,c=s.canvas,l=a.constrainedAxis;u(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=l}var pY=oe.clone(oe.UNIT_W),_0e=oe.clone(oe.UNIT_W),o8=new h,xS=new h,r8=new h,g0e=new h,iht=new z,oht=new z,rht=new z,sht=new z,aht=new Tn;function _Y(e,t,n,i){let o=e._scene,r=o.camera,s=z.clone(n.startPosition,iht),a=z.clone(n.endPosition,oht),c=i.cartesianToCartographic(r.positionWC,M0e).height,l,f;if(!n.inertiaEnabled&&c<e._minimumPickingTerrainHeight&&(l=h.clone(e._panLastWorldPosition,pY),!u(e._globe)&&!z.equalsEpsilon(s,e._panLastMousePosition)&&(l=j_(e,s,pY)),!u(e._globe)&&u(l))){let d=h.subtract(l,r.positionWC,xS),p=h.multiplyByScalar(r.directionWC,h.dot(r.directionWC,d),xS),g=h.magnitude(p),m=r.frustum.getPixelDimensions(o.drawingBufferWidth,o.drawingBufferHeight,g,o.pixelRatio,sht),x=z.subtract(a,s,rht),b=h.multiplyByScalar(r.rightWC,x.x*m.x,xS),T=h.normalize(r.positionWC,T0e),A=r.getPickRay(a,aht).direction,C=h.subtract(A,h.projectVector(A,r.rightWC,r8),r8),S=h.angleBetween(C,r.directionWC),w=1;u(r.frustum.fov)&&(w=Math.max(Math.tan(S),.1));let D=Math.abs(h.dot(r.directionWC,T)),O=-x.y*m.y*2/Math.sqrt(w)*(1-D),R=h.multiplyByScalar(A,O,r8);D=Math.abs(h.dot(r.upWC,T));let L=h.multiplyByScalar(r.upWC,-x.y*(1-D)*m.y,g0e);f=h.add(l,b,_0e),f=h.add(f,R,f),f=h.add(f,L,f),h.clone(f,e._panLastWorldPosition),z.clone(a,e._panLastMousePosition)}if((!u(l)||!u(f))&&(l=r.pickEllipsoid(s,i,pY),f=r.pickEllipsoid(a,i,_0e)),!u(l)||!u(f)){e._rotating=!0,Fu(e,t,n);return}if(l=r.worldToCameraCoordinates(l,l),f=r.worldToCameraCoordinates(f,f),u(r.constrainedAxis)){let d=r.constrainedAxis,p=h.mostOrthogonalAxis(d,o8);h.cross(p,d,p),h.normalize(p,p);let g=h.cross(d,p,xS),m=h.magnitude(l),x=h.dot(d,l),b=Math.acos(x/m),T=h.multiplyByScalar(d,x,r8);h.subtract(l,T,T),h.normalize(T,T);let A=h.magnitude(f),C=h.dot(d,f),S=Math.acos(C/A),w=h.multiplyByScalar(d,C,g0e);h.subtract(f,w,w),h.normalize(w,w);let D=Math.acos(h.dot(T,p));h.dot(T,g)<0&&(D=P.TWO_PI-D);let O=Math.acos(h.dot(w,p));h.dot(w,g)<0&&(O=P.TWO_PI-O);let R=D-O,L;h.equalsEpsilon(d,r.position,P.EPSILON2)?L=r.right:L=h.cross(d,r.position,o8);let N=h.cross(d,L,o8),_=h.dot(N,h.subtract(l,d,xS)),E=h.dot(N,h.subtract(f,d,xS)),v;_>0&&E>0?v=S-b:_>0&&E<=0?h.dot(r.position,d)>0?v=-b-S:v=b+S:v=b-S,r.rotateRight(R),r.rotateUp(v)}else{h.normalize(l,l),h.normalize(f,f);let d=h.dot(l,f),p=h.cross(l,f,o8);if(d<1&&!h.equalsEpsilon(p,h.ZERO,P.EPSILON14)){let g=Math.acos(d);r.rotate(p,g)}}}var cht=new h,lht=new fe,y0e=0;function L0e(e,t,n){u(n.distance)&&(n=n.distance);let i=n.inertiaEnabled,o=e._ellipsoid,r=e._scene,s=r.camera,a=r.canvas,c=e._cameraUnderground,l;c?l=t:(l=P0e,l.x=a.clientWidth/2,l.y=a.clientHeight/2);let f=s.getPickRay(l,O0e),d,p=o.cartesianToCartographic(s.position,lht).height,g=Math.abs(y0e)<e.minimumPickingTerrainDistanceWithInertia;(i?g:p<e._minimumPickingTerrainHeight)&&(d=j_(e,l,R0e));let x;if(u(d)&&(x=h.distance(f.origin,d),y0e=x),c){let T=C0e(e,f,p);u(x)?x=Math.min(x,T):x=T}u(x)||(x=p);let b=h.normalize(s.position,cht);bY(e,t,n,e._zoomFactor,x,h.dot(b,s.direction))}var N0e=new z,l8=new Tn,z2=new h,uht=new h,F0e=new F,fht=new F,B0e=new F,dht=new Le,hht=new Q,AY=new fe,CY=new h;function mht(e,t,n){let o=e._scene.camera;if(!F.equals(o.transform,F.IDENTITY))return;if(u(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,CY);Bu(e,t,n,a);return}let s=e._ellipsoid.cartesianToCartographic(o.position,AY);e._tiltOnEllipsoid||s.height>e._minimumCollisionTerrainHeight?(e._tiltOnEllipsoid=!0,_ht(e,t,n)):ght(e,t,n)}var pht=new fe;function _ht(e,t,n){let i=e._ellipsoid,o=e._scene,r=o.camera,s=e.minimumZoomDistance*.25,a=i.cartesianToCartographic(r.positionWC,pht).height;if(a-s-1<P.EPSILON3&&n.endPosition.y-n.startPosition.y<0)return;let c=o.canvas,l=N0e;l.x=c.clientWidth/2,l.y=c.clientHeight/2;let f=r.getPickRay(l,l8),d,p=xi.rayEllipsoid(f,i);if(u(p))d=Tn.getPoint(f,p.start,z2);else if(a>e._minimumTrackBallHeight){let A=xi.grazingAltitudeLocation(f,i);if(!u(A))return;let C=i.cartesianToCartographic(A,AY);C.height=0,d=i.cartographicToCartesian(C,z2)}else{e._looking=!0;let A=e._ellipsoid.geodeticSurfaceNormal(r.position,CY);Bu(e,t,n,A),z.clone(t,e._tiltCenterMousePosition);return}let g=Rt.eastNorthUpToFixedFrame(d,i,F0e),m=e._globe,x=e._ellipsoid;e._globe=void 0,e._ellipsoid=ie.UNIT_SPHERE,e._rotateFactor=1,e._rotateRateRangeAdjustment=1;let b=F.clone(r.transform,B0e);r._setTransform(g),Fu(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 ght(e,t,n){let i=e._ellipsoid,o=e._scene,r=o.camera,s=e._cameraUnderground,a,c,l;if(z.equals(t,e._tiltCenterMousePosition))a=h.clone(e._tiltCenter,z2);else{if(a=j_(e,t,z2),!u(a)){if(c=r.getPickRay(t,l8),l=xi.rayEllipsoid(c,i),!u(l)){if(i.cartesianToCartographic(r.position,AY).height<=e._minimumTrackBallHeight){e._looking=!0;let E=e._ellipsoid.geodeticSurfaceNormal(r.position,CY);Bu(e,t,n,E),z.clone(t,e._tiltCenterMousePosition)}return}a=Tn.getPoint(c,l.start,z2)}s&&(u(c)||(c=r.getPickRay(t,l8)),E0e(e,c,a,a)),z.clone(t,e._tiltCenterMousePosition),h.clone(a,e._tiltCenter)}let f=o.canvas,d=N0e;d.x=f.clientWidth/2,d.y=e._tiltCenterMousePosition.y,c=r.getPickRay(d,l8);let p=h.magnitude(a),g=h.fromElements(p,p,p,yY),m=ie.fromCartesian3(g,xY);if(l=xi.rayEllipsoid(c,m),!u(l))return;let x=h.magnitude(c.origin)>p?l.start:l.stop,b=Tn.getPoint(c,x,uht),T=Rt.eastNorthUpToFixedFrame(a,i,F0e),A=Rt.eastNorthUpToFixedFrame(b,m,fht),C=e._globe,S=e._ellipsoid;e._globe=void 0,e._ellipsoid=ie.UNIT_SPHERE,e._rotateFactor=1,e._rotateRateRangeAdjustment=1;let w=h.UNIT_Z,D=F.clone(r.transform,B0e);r._setTransform(A);let O=h.cross(b,r.positionWC,c8);if(h.dot(r.rightWC,O)<0){let _=n.startPosition.y-n.endPosition.y;(s&&_<0||!s&&_>0)&&(w=void 0);let E=r.constrainedAxis;r.constrainedAxis=void 0,Fu(e,t,n,w,!0,!1),r.constrainedAxis=E}else Fu(e,t,n,w,!0,!1);if(r._setTransform(T),Fu(e,t,n,w,!1,!0),u(r.constrainedAxis)){let _=h.cross(r.direction,r.constrainedAxis,c8);h.equalsEpsilon(_,h.ZERO,P.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=C,e._ellipsoid=S;let L=S.maximumRadius;e._rotateFactor=1/L,e._rotateRateRangeAdjustment=L;let N=h.clone(r.positionWC,c8);if(e.enableCollisionDetection&&EY(e),!h.equals(r.positionWC,N)){r._setTransform(A),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 E=h.angleBetween(N,r.position),v=h.cross(N,r.position,N);h.normalize(v,v);let I=Le.fromAxisAngle(v,E,dht),M=Q.fromQuaternion(I,hht);Q.multiplyByVector(M,r.direction,r.direction),Q.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 yht=new z,xht=new z,x0e=new Tn,b0e=new Tn,bht=new h,Tht=new h;function Bu(e,t,n,i){let r=e._scene.camera,s=yht;s.x=n.startPosition.x,s.y=0;let a=xht;a.x=n.endPosition.x,a.y=0;let c=r.getPickRay(s,x0e),l=r.getPickRay(a,b0e),f=0,d,p;r.frustum instanceof $t?(d=c.origin,p=l.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=l.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(u(i)?r.look(i,-f):u(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,x0e),l=r.getPickRay(a,b0e),f=0,r.frustum instanceof $t?(d=c.origin,p=l.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=l.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),u(i)){let x=r.direction,b=h.negate(i,bht),T=h.equalsEpsilon(x,i,P.EPSILON2),A=h.equalsEpsilon(x,b,P.EPSILON2);if(!T&&!A){g=h.dot(x,i);let C=P.acosClamped(g);f>0&&f>C&&(f=C-P.EPSILON4),g=h.dot(x,b),C=P.acosClamped(g),f<0&&-f>C&&(f=-C+P.EPSILON4);let S=h.cross(i,x,Tht);r.look(S,f)}else(T&&f<0||A&&f>0)&&r.look(r.right,-f)}else r.lookUp(f)}function Aht(e){el(e,e.enableRotate,e.rotateEventTypes,nht,e.inertiaSpin,"_lastInertiaSpinMovement"),el(e,e.enableZoom,e.zoomEventTypes,L0e,e.inertiaZoom,"_lastInertiaZoomMovement"),el(e,e.enableTilt,e.tiltEventTypes,mht,e.inertiaSpin,"_lastInertiaTiltMovement"),el(e,e.enableLook,e.lookEventTypes,Bu)}var Cht=new F,Eht=new fe;function EY(e){e._adjustedHeightForTerrain=!0;let t=e._scene,n=t.mode,i=t.globe;if(!u(i)||n===te.SCENE2D||n===te.MORPHING)return;let o=t.camera,r=i.ellipsoid,s=t.mapProjection,a,c;F.equals(o.transform,F.IDENTITY)||(a=F.clone(o.transform,Cht),c=h.magnitude(o.position),o._setTransform(F.IDENTITY));let l=Eht;n===te.SCENE3D?r.cartesianToCartographic(o.position,l):s.unproject(o.position,l);let f=!1;if(l.height<e._minimumCollisionTerrainHeight){let d=e._scene.globeHeight;if(u(d)){let p=d+e.minimumZoomDistance;l.height<p&&(l.height=p,n===te.SCENE3D?r.cartographicToCartesian(l,o.position):s.project(l,o.position),f=!0)}}u(a)&&(o._setTransform(a),f&&(h.normalize(o.position,o.position),h.negate(o.position,o.direction),h.multiplyByScalar(o.position,Math.max(c,e.minimumZoomDistance),o.position),h.normalize(o.direction,o.direction),h.cross(o.direction,o.up,o.right),h.cross(o.right,o.direction,o.up)))}H2.prototype.onMap=function(){let e=this._scene,t=e.mode,n=e.camera;return t===te.COLUMBUS_VIEW?Math.abs(n.position.x)-this._maxCoord.x<0&&Math.abs(n.position.y)-this._maxCoord.y<0:!0};var Sht=new h,wht=new h;H2.prototype.update=function(){let e=this._scene,t=e.camera,n=e.globe,i=e.mode;F.equals(t.transform,F.IDENTITY)?(this._globe=n,this._ellipsoid=u(this._globe)?this._globe.ellipsoid:e.mapProjection.ellipsoid):(this._globe=void 0,this._ellipsoid=ie.UNIT_SPHERE);let o=u(this._globe)?this._globe.terrainExaggeration:1,r=u(this._globe)?this._globe.terrainExaggerationRelativeHeight:0;this._minimumCollisionTerrainHeight=vc.getHeight(this.minimumCollisionTerrainHeight,o,r),this._minimumPickingTerrainHeight=vc.getHeight(this.minimumPickingTerrainHeight,o,r),this._minimumTrackBallHeight=vc.getHeight(this.minimumTrackBallHeight,o,r),this._cameraUnderground=e.cameraUnderground&&u(this._globe);let s=this._ellipsoid.maximumRadius;this._rotateFactor=1/s,this._rotateRateRangeAdjustment=s,this._adjustedHeightForTerrain=!1;let a=h.clone(t.positionWC,Sht),c=h.clone(t.directionWC,wht);i===te.SCENE2D?Edt(this):i===te.COLUMBUS_VIEW?(this._horizontalRotationAxis=h.UNIT_Z,Xdt(this)):i===te.SCENE3D&&(this._horizontalRotationAxis=void 0,Aht(this)),this.enableCollisionDetection&&!this._adjustedHeightForTerrain&&(!h.equals(a,t.positionWC)||!h.equals(c,t.directionWC))&&EY(this),this._aggregator.reset()};H2.prototype.isDestroyed=function(){return!1};H2.prototype.destroy=function(){return this._tweens.removeAll(),this._aggregator=this._aggregator&&this._aggregator.destroy(),le(this)};var G2=H2;var W2=`uniform sampler2D colorTexture;
  10394. uniform sampler2D colorTexture2;
  10395. uniform vec2 center;
  10396. uniform float radius;
  10397. in vec2 v_textureCoordinates;
  10398. void main()
  10399. {
  10400. vec4 color0 = texture(colorTexture, v_textureCoordinates);
  10401. vec4 color1 = texture(colorTexture2, v_textureCoordinates);
  10402. float x = length(gl_FragCoord.xy - center) / radius;
  10403. float t = smoothstep(0.5, 0.8, x);
  10404. out_FragColor = mix(color0 + color1, color1, t);
  10405. }
  10406. `;var j2=`uniform sampler2D colorTexture;
  10407. uniform float avgLuminance;
  10408. uniform float threshold;
  10409. uniform float offset;
  10410. in vec2 v_textureCoordinates;
  10411. float key(float avg)
  10412. {
  10413. float guess = 1.5 - (1.5 / (avg * 0.1 + 1.0));
  10414. return max(0.0, guess) + 0.1;
  10415. }
  10416. // See section 9. "The bright-pass filter" of Realtime HDR Rendering
  10417. // http://www.cg.tuwien.ac.at/research/publications/2007/Luksch_2007_RHR/Luksch_2007_RHR-RealtimeHDR%20.pdf
  10418. void main()
  10419. {
  10420. vec4 color = texture(colorTexture, v_textureCoordinates);
  10421. vec3 xyz = czm_RGBToXYZ(color.rgb);
  10422. float luminance = xyz.r;
  10423. float scaledLum = key(avgLuminance) * luminance / avgLuminance;
  10424. float brightLum = max(scaledLum - threshold, 0.0);
  10425. float brightness = brightLum / (offset + brightLum);
  10426. xyz.r = brightness;
  10427. out_FragColor = vec4(czm_XYZToRGB(xyz), 1.0);
  10428. }
  10429. `;function q_(){this._sceneFramebuffer=new sT;let e=.125,t=new Array(6);t[0]=new _o({fragmentShader:Hl,textureScale:e,forcePowerOfTwo:!0,sampleMode:Mu.LINEAR});let n=t[1]=new _o({fragmentShader:j2,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 _o({fragmentShader:$y,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 _o({fragmentShader:$y,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 _o({fragmentShader:Hl,sampleMode:Mu.LINEAR}),this._uCenter=new z,this._uRadius=void 0,t[5]=new _o({fragmentShader:W2,uniforms:{center:function(){return i._uCenter},radius:function(){return i._uRadius},colorTexture2:function(){return i._sceneFramebuffer.framebuffer.getColorTexture(0)}}}),this._stages=new Qc({stages:t});let o=new hT(this),r=t.length;for(let s=0;s<r;++s)t[s]._textureCache=o;this._textureCache=o,this.length=t.length}q_.prototype.get=function(e){return this._stages.get(e)};q_.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 vht=new oe,k0e=new z,Dht=new z,U0e=new F;function Iht(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,U0e),l=F.multiplyByPoint(r,o,vht),f=Rt.pointToGLWindowCoordinates(s,c,o,k0e);l.x+=P.SOLAR_RADIUS;let d=Rt.pointToGLWindowCoordinates(a,c,l,l),p=z.magnitude(z.subtract(d,f,d))*30*2,g=Dht;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),A=T.outputTexture.width,C=T.outputTexture.height,S=new We;S.width=A,S.height=C,c=F.computeViewportTransformation(S,0,1,U0e),f=Rt.pointToGLWindowCoordinates(s,c,o,k0e),g.x*=A/m,g.y*=C/x;let w=T.scissorRectangle;w.x=Math.max(f.x-g.x*.5,0),w.y=Math.max(f.y-g.y*.5,0),w.width=Math.min(g.x,m),w.height=Math.min(g.y,x);for(let D=1;D<4;++D)We.clone(w,b.get(D).scissorRectangle)}q_.prototype.clear=function(e,t,n){this._sceneFramebuffer.clear(e,t,n),this._textureCache.clear(e)};q_.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),Iht(this,t,n),o};q_.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)};q_.prototype.copy=function(e,t){if(!u(this._copyColorCommand)){let n=this;this._copyColorCommand=e.createViewportQuadCommand(Hl,{uniformMap:{colorTexture:function(){return n._stages.get(n._stages.length-1).outputTexture}},owner:this})}this._copyColorCommand.framebuffer=t,this._copyColorCommand.execute(e)};q_.prototype.isDestroyed=function(){return!1};q_.prototype.destroy=function(){return this._textureCache.destroy(),this._stages.destroy(),le(this)};var q2=q_;function V0e(){this._cachedShowFrustumsShaders={}}function Pht(e){let t={},n=e.vertexAttributes;for(let i in n)n.hasOwnProperty(i)&&(t[i]=n[i].index);return t}function Oht(e,t){let n=e.context,i=t,o=i.fragmentShaderSource.clone(),r=[];o.sources=o.sources.map(function(f){f=Ue.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;
  10430. `,a+=`uniform vec3 debugShowFrustumsColor;
  10431. `,a+=`void main()
  10432. {
  10433. czm_Debug_main();
  10434. `;let c;if(s>0)for(c=0;c<s;++c)a+=` out_FragData_${r[c]}.rgb *= debugShowCommandsColor;
  10435. `,a+=` out_FragData_${r[c]}.rgb *= debugShowFrustumsColor;
  10436. `;else a+=` out_FragColor.rgb *= debugShowCommandsColor;
  10437. `,a+=` out_FragColor.rgb *= debugShowFrustumsColor;
  10438. `;a+="}",o.sources.push(a);let l=Pht(i);return Yt.fromCache({context:n,vertexShaderSource:i.vertexShaderSource,fragmentShaderSource:o,attributeLocations:l})}var Y2=new H;function Rht(e,t){let n;return u(t.uniformMap)?n=t.uniformMap:n={},u(n.debugShowCommandsColor)||u(n.debugShowFrustumsColor)||(n.debugShowCommandsColor=function(){return e.debugShowCommands?(u(t._debugColor)||(t._debugColor=H.fromRandom()),t._debugColor):H.WHITE},n.debugShowFrustumsColor=function(){return e.debugShowFrustums?(Y2.red=t.debugOverlappingFrustums&1?1:0,Y2.green=t.debugOverlappingFrustums&2?1:0,Y2.blue=t.debugOverlappingFrustums&4?1:0,Y2.alpha=1,Y2):H.WHITE}),n}var Mht=new Je;V0e.prototype.executeDebugShowFrustumsCommand=function(e,t,n){let i=t.shaderProgram.id,o=this._cachedShowFrustumsShaders[i];u(o)||(o=Oht(e,t.shaderProgram),this._cachedShowFrustumsShaders[i]=o);let r=Je.shallowClone(t,Mht);r.shaderProgram=o,r.uniformMap=Rht(e,t),r.execute(e.context,n)};var X2=V0e;var d8=function(e){return function(){e.frameState.afterRender.push(function(){e.requestRender()})}};function Gi(e){e=y(e,y.EMPTY_OBJECT);let t=e.canvas,n=e.creditContainer,i=e.creditViewport,o=He(e.contextOptions),r=u(n),s=new tI(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)),u(i)||(i=t.parentNode),this._id=Wn(),this._jobScheduler=new QN,this._frameState=new ZN(s,new kN(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 aw(s),this._globe=void 0,this._globeTranslucencyState=new $N,this._primitives=new Rl,this._groundPrimitives=new Rl,this._globeHeight=void 0,this._cameraUnderground=!1,this._logDepthBuffer=s.fragmentDepth,this._logDepthBufferDirty=!0,this._tweens=new gT,this._shaderFrameCount=0,this._sunPostProcess=void 0,this._computeCommandList=[],this._overlayCommandList=[],this._useOIT=y(e.orderIndependentTranslucency,!0),this._executeOITFunction=void 0,this._depthPlane=new qN(e.depthPlaneEllipsoidOffset),this._clearColorCommand=new ti({color:new H,stencil:0,owner:this}),this._depthClearCommand=new ti({depth:1,owner:this}),this._stencilClearCommand=new ti({stencil:0}),this._classificationStencilClearCommand=new ti({stencil:0,renderState:ke.fromCache({stencilMask:Lt.CLASSIFICATION_MASK})}),this._depthOnlyRenderStateCache={},this._transitioner=new U2(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 X2,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=te.SCENE3D,this._mapProjection=u(e.mapProjection)?e.mapProjection:new wi,this.morphTime=1,this.farToNearRatio=1e3,this.logarithmicDepthFarToNearRatio=1e9,this.nearToFarDistance2D=175e4,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.fog=new KN,this._shadowMapCamera=new co(this),this.shadowMap=new G_({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 mS,this.focalLength=void 0,this.eyeSeparation=void 0,this.postProcessStages=new F2,this._brdfLutGenerator=new RN,this._performanceDisplay=void 0,this._debugVolume=void 0,this._screenSpaceCameraController=new G2(this),this._cameraUnderground=!1,this._mapMode2D=y(e.mapMode2D,zl.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=Ua.requestCompletedEvent.addEventListener(d8(this)),this._removeTaskProcessorListenerCallback=hi.taskCompletedEvent.addEventListener(d8(this)),this._removeGlobeCallbacks=[],this._removeTerrainProviderReadyListener=void 0;let a=new We(0,0,s.drawingBufferWidth,s.drawingBufferHeight),c=new co(this);this._logDepthBuffer&&(c.frustum.near=.1,c.frustum.far=1e10),this.preloadFlightCamera=new co(this),this.preloadFlightCullingVolume=void 0,this._picking=new h2(this),this._defaultView=new lT(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 op,W0e(this,0,J.now()),this.updateFrameState(),this.initializeFrame()}function Lht(e,t){for(let i=0;i<e._removeGlobeCallbacks.length;++i)e._removeGlobeCallbacks[i]();e._removeGlobeCallbacks.length=0;let n=[];u(t)&&(n.push(t.imageryLayersUpdatedEvent.addEventListener(d8(e))),n.push(t.terrainProviderChanged.addEventListener(d8(e)))),e._removeGlobeCallbacks=n}Object.defineProperties(Gi.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 Ut.maximumAliasedLineWidth}},maximumCubeMapSize:{get:function(){return Ut.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 Td.isSupported(this._context)}},globe:{get:function(){return this._globe},set:function(e){this._globe=this._globe&&this._globe.destroy(),this._globe=e,Lht(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(u(this.globe))return this.globe.imageryLayers}},terrainProvider:{get:function(){if(u(this.globe))return this.globe.terrainProvider},set:function(e){this._removeTerrainProviderReadyListener=this._removeTerrainProviderReadyListener&&this._removeTerrainProviderReadyListener(),u(this.globe)&&(this.globe.terrainProvider=e)}},terrainProviderChanged:{get:function(){if(u(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===te.SCENE2D?this.morphTo2D(0):e===te.SCENE3D?this.morphTo3D(0):e===te.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 co(this),u(this._deviceOrientationCameraController)||(this._deviceOrientationCameraController=new XN(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,Ut.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}}});Gi.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 z0e(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;u(t.pickId)&&(c.picking=U_.createPickDerivedCommand(e,t,o,c.picking)),t.pickOnly||(c.depth=U_.createDepthOnlyDerivedCommand(e,t,o,c.depth)),c.originalCommand=t,e._hdr&&(c.hdr=U_.createHdrCommand(t,o,c.hdr),t=c.hdr.command,c=t.derivedCommands),a&&t.receiveShadows&&(c.shadows=G_.createReceiveDerivedCommand(s,t,n,o,c.shadows)),t.pass===Ee.TRANSLUCENT&&u(r)&&r.isSupported()&&(a&&t.receiveShadows?(c.oit=u(c.oit)?c.oit:{},c.oit.shadows=r.createDerivedCommands(c.shadows.receiveCommand,o,c.oit.shadows)):c.oit=r.createDerivedCommands(t,o,c.oit))}Gi.prototype.updateDerivedCommands=function(e){if(!u(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=u(a.logDepth),l=u(a.hdr),f=u(a.originalCommand),d=r&&!c,p=s&&!l,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=G_.createCastDerivedCommand(m,e,i,n,a.shadows)),(c||d)&&(a.logDepth=U_.createLogDepthCommand(e,n,a.logDepth),z0e(this,a.logDepth.command,i)),(f||g)&&z0e(this,e,i)}};var Nht=new qf({pass:Mo.RENDER}),SY=new qf({pass:Mo.PRELOAD}),wY=new qf({pass:Mo.PRELOAD_FLIGHT}),Fht=new qf({pass:Mo.REQUEST_RENDER_MODE_DEFER_CHECK}),H0e=new se,vY;function Bht(e){let t=e.globe;if(e._mode===te.SCENE3D&&u(t)&&t.show&&!e._cameraUnderground&&!e._globeTranslucencyState.translucent){let n=t.ellipsoid,i=e.frameState.minimumTerrainHeight;return H0e.radius=n.minimumRadius+i,vY=IN.fromBoundingSphere(H0e,e.camera.positionWC,vY),vY}}Gi.prototype.clearPasses=function(e){e.render=!1,e.pick=!1,e.depth=!1,e.postProcess=!1,e.offscreen=!1};function W0e(e,t,n){let i=e._frameState;i.frameNumber=t,i.time=J.clone(n,i.time)}Gi.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=Bht(this),t.minimumTerrainHeight=0,t.minimumDisableDepthTestDistance=this._minimumDisableDepthTestDistance,t.invertClassification=this.invertClassification,t.useLogDepth=this._logDepthBuffer&&!(this.camera.frustum instanceof $t||this.camera.frustum instanceof Cr),t.light=this.light,t.cameraUnderground=this._cameraUnderground,t.globeTranslucencyState=this._globeTranslucencyState,u(this.globe)&&(t.terrainExaggeration=this.globe.terrainExaggeration,t.terrainExaggerationRelativeHeight=this.globe.terrainExaggerationRelativeHeight),u(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),mS.isTranslucencySupported(this._context)||(this._actualInvertClassificationColor.alpha=1),t.invertClassificationColor=this._actualInvertClassificationColor,u(this.globe)?t.maximumScreenSpaceError=this.globe.maximumScreenSpaceError:t.maximumScreenSpaceError=2,this.clearPasses(t.passes),t.tilesetPassState=void 0};Gi.prototype.isVisible=function(e,t,n){return u(e)&&(!u(e.boundingVolume)||!e.cull||t.computeVisibility(e.boundingVolume)!==Kt.OUTSIDE&&(!u(n)||!e.occlude||!e.boundingVolume.isOccluded(n)))};var f8=new F(0,0,1,0,1,0,0,0,0,1,0,0,0,0,0,1);f8=F.inverseTransformation(f8,f8);function kht(e,t,n,i){let o=t._frameState,r=o.context,s=e.boundingVolume;u(t._debugVolume)&&t._debugVolume.destroy();let a,c=h.clone(s.center);if(o.mode!==te.SCENE3D){c=F.multiplyByPoint(f8,c,c);let p=o.mapProjection,g=p.unproject(c);c=p.ellipsoid.cartographicToCartesian(g)}if(u(s.radius)){let p=s.radius;a=Nn.toWireframe(Ns.createGeometry(new Ns({radii:new h(p,p,p),vertexFormat:nn.FLAT_VERTEX_FORMAT}))),t._debugVolume=new En({geometryInstances:new yt({geometry:a,modelMatrix:F.fromTranslation(c),attributes:{color:new kt(1,0,0,1)}}),appearance:new nn({flat:!0,translucent:!1}),asynchronous:!1})}else{let p=s.halfAxes;a=Nn.toWireframe(hl.createGeometry(hl.fromDimensions({dimensions:new h(2,2,2),vertexFormat:nn.FLAT_VERTEX_FORMAT}))),t._debugVolume=new En({geometryInstances:new yt({geometry:a,modelMatrix:F.fromRotationTranslation(p,c,new F),attributes:{color:new kt(1,0,0,1)}}),appearance:new nn({flat:!0,translucent:!1}),asynchronous:!1})}let l=o.commandList,f=o.commandList=[];t._debugVolume.update(o),e=f[0],o.useLogDepth&&(e=U_.createLogDepthCommand(e,r).command);let d;u(i)&&(d=n.framebuffer,n.framebuffer=i),e.execute(r,n),u(d)&&(n.framebuffer=d),o.commandList=l}function Pa(e,t,n,i,o){let r=t._frameState;if(u(t.debugCommandFilter)&&!t.debugCommandFilter(e))return;if(e instanceof ti){e.execute(n,i);return}e.debugShowBoundingVolume&&u(e.boundingVolume)&&kht(e,t,i,o),r.useLogDepth&&u(e.derivedCommands.logDepth)&&(e=e.derivedCommands.logDepth.command);let s=r.passes;if(!s.pick&&!s.depth&&t._hdr&&u(e.derivedCommands)&&u(e.derivedCommands.hdr)&&(e=e.derivedCommands.hdr.command),s.pick||s.depth){if(s.pick&&!s.depth&&u(e.derivedCommands.picking)){e=e.derivedCommands.picking.pickCommand,e.execute(n,i);return}else if(u(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&&u(e.derivedCommands.shadows)?e.derivedCommands.shadows.receiveCommand.execute(n,i):e.execute(n,i)}function K2(e,t,n,i){let o=t._frameState,r=e.derivedCommands;u(r)&&(o.useLogDepth&&u(r.logDepth)&&(e=r.logDepth.command),r=e.derivedCommands,u(r.picking)?(e=r.picking.pickCommand,e.execute(n,i)):u(r.depth)&&(e=r.depth.depthOnlyCommand,e.execute(n,i)))}function j0e(e,t,n){return t.boundingVolume.distanceSquaredTo(n)-e.boundingVolume.distanceSquaredTo(n)}function Uht(e,t,n){return e.boundingVolume.distanceSquaredTo(n)-t.boundingVolume.distanceSquaredTo(n)+P.EPSILON12}function Vht(e,t,n,i,o){let r=e.context;k_(i,j0e,e.camera.positionWC),u(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 zht(e,t,n,i,o){let r=e.context;k_(i,Uht,e.camera.positionWC),u(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 Hht(e,t,n,i){let o=e.context;k_(i,j0e,e.camera.positionWC);let r=i.length;for(let s=0;s<r;++s)t(i[s],e,o,n)}var Ght=new Ei,Wht=new $c,jht=new $t,qht=new Cr;function DY(e,t){let n=e.camera,i=e.context,o=e.frameState,r=i.uniformState;r.updateCamera(n);let s;u(n.frustum.fov)?s=n.frustum.clone(Ght):u(n.frustum.infiniteProjectionMatrix)?s=n.frustum.clone(Wht):u(n.frustum.width)?s=n.frustum.clone(jht):s=n.frustum.clone(qht),s.near=n.frustum.near,s.far=n.frustum.far,r.updateFrustum(s),r.updatePass(Ee.ENVIRONMENT);let a=o.passes,c=a.pick,l=e._environmentState,f=e._view,d=l.renderTranslucentDepthForPick,p=l.useWebVR;if(!c){let E=l.skyBoxCommand;if(u(E)&&Pa(E,e,i,t),l.isSkyAtmosphereVisible&&Pa(l.skyAtmosphereCommand,e,i,t),l.isSunVisible&&(l.sunDrawCommand.execute(i,t),e.sunBloom&&!p)){let v;l.useGlobeDepthFramebuffer?v=f.globeDepth.framebuffer:l.usePostProcess?v=f.sceneFramebuffer.framebuffer:v=l.originalFramebuffer,e._sunPostProcess.execute(i),e._sunPostProcess.copy(i,v),t.framebuffer=v}l.isMoonVisible&&l.moonCommand.execute(i,t)}let g;l.useOIT?(u(e._executeOITFunction)||(e._executeOITFunction=function(E,v,I,M,B){f.globeDepth.prepareColorTextures(i),f.oit.executeCommands(E,v,I,M,B)}),g=e._executeOITFunction):a.render?g=Vht:g=zht;let m=f.frustumCommandsList,x=m.length,b=l.clearGlobeDepth,T=l.useDepthPlane,A=e._globeTranslucencyState,C=A.translucent,S=e._view.globeTranslucencyFramebuffer,w=e._depthClearCommand,D=e._stencilClearCommand,O=e._classificationStencilClearCommand,R=e._depthPlane,L=l.usePostProcessSelected,N=n.position.z,_;for(let E=0;E<x;++E){let v=x-E-1,I=m[v];e.mode===te.SCENE2D?(n.position.z=N-I.near+1,s.far=Math.max(1,I.far-I.near),s.near=1,r.update(o),r.updateFrustum(s)):(s.near=v!==0?I.near*e.opaqueFrustumNearOffset:I.near,s.far=I.far,r.updateFrustum(s)),w.execute(i,t),i.stencilBuffer&&D.execute(i,t),r.updatePass(Ee.GLOBE);let M=I.commands[Ee.GLOBE],B=I.indices[Ee.GLOBE];if(C)A.executeGlobeCommands(I,Pa,S,e,t);else for(_=0;_<B;++_)Pa(M[_],e,i,t);let V=f.globeDepth;if(u(V)&&l.useGlobeDepthFramebuffer&&V.executeCopyDepth(i,t),!l.renderTranslucentDepthForPick)if(r.updatePass(Ee.TERRAIN_CLASSIFICATION),M=I.commands[Ee.TERRAIN_CLASSIFICATION],B=I.indices[Ee.TERRAIN_CLASSIFICATION],C)A.executeGlobeClassificationCommands(I,Pa,S,e,t);else for(_=0;_<B;++_)Pa(M[_],e,i,t);if(b&&(w.execute(i,t),T&&R.execute(i,t)),!l.useInvertClassification||c||l.renderTranslucentDepthForPick){for(r.updatePass(Ee.CESIUM_3D_TILE),M=I.commands[Ee.CESIUM_3D_TILE],B=I.indices[Ee.CESIUM_3D_TILE],_=0;_<B;++_)Pa(M[_],e,i,t);if(B>0&&(u(V)&&l.useGlobeDepthFramebuffer&&(V.prepareColorTextures(i,b),V.executeUpdateDepth(i,t,b,V.depthStencilTexture)),!l.renderTranslucentDepthForPick))for(r.updatePass(Ee.CESIUM_3D_TILE_CLASSIFICATION),M=I.commands[Ee.CESIUM_3D_TILE_CLASSIFICATION],B=I.indices[Ee.CESIUM_3D_TILE_CLASSIFICATION],_=0;_<B;++_)Pa(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=I.commands[Ee.CESIUM_3D_TILE],B=I.indices[Ee.CESIUM_3D_TILE],_=0;_<B;++_)Pa(M[_],e,i,t);for(u(V)&&l.useGlobeDepthFramebuffer&&(e._invertClassification.prepareTextures(i),V.executeUpdateDepth(i,t,b,e._invertClassification._fbo.getDepthStencilTexture())),r.updatePass(Ee.CESIUM_3D_TILE_CLASSIFICATION_IGNORE_SHOW),M=I.commands[Ee.CESIUM_3D_TILE_CLASSIFICATION_IGNORE_SHOW],B=I.indices[Ee.CESIUM_3D_TILE_CLASSIFICATION_IGNORE_SHOW],_=0;_<B;++_)Pa(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=I.commands[Ee.CESIUM_3D_TILE_CLASSIFICATION],B=I.indices[Ee.CESIUM_3D_TILE_CLASSIFICATION],_=0;_<B;++_)Pa(M[_],e,i,t)}for(B>0&&i.stencilBuffer&&D.execute(i,t),r.updatePass(Ee.VOXELS),M=I.commands[Ee.VOXELS],B=I.indices[Ee.VOXELS],M.length=B,Hht(e,Pa,t,M),r.updatePass(Ee.OPAQUE),M=I.commands[Ee.OPAQUE],B=I.indices[Ee.OPAQUE],_=0;_<B;++_)Pa(M[_],e,i,t);v!==0&&e.mode!==te.SCENE2D&&(s.near=I.near,r.updateFrustum(s));let U;if(!c&&l.useInvertClassification&&o.invertClassificationColor.alpha<1&&(U=e._invertClassification),r.updatePass(Ee.TRANSLUCENT),M=I.commands[Ee.TRANSLUCENT],M.length=I.indices[Ee.TRANSLUCENT],g(e,Pa,t,M,U),I.indices[Ee.CESIUM_3D_TILE_CLASSIFICATION]>0&&f.translucentTileClassification.isSupported()&&(f.translucentTileClassification.executeTranslucentCommands(e,Pa,t,M,V.depthStencilTexture),f.translucentTileClassification.executeClassificationCommands(e,Pa,t,I)),i.depthTexture&&e.useDepthPicking&&(l.useGlobeDepthFramebuffer||d)){let Y=V.depthStencilTexture,j=e._picking.getPickDepth(e,v);j.update(i,Y),j.executeCopyDepth(i,t)}if(c||!L)continue;let k=t.framebuffer;if(t.framebuffer=f.sceneFramebuffer.getIdFramebuffer(),s.near=v!==0?I.near*e.opaqueFrustumNearOffset:I.near,s.far=I.far,r.updateFrustum(s),r.updatePass(Ee.GLOBE),M=I.commands[Ee.GLOBE],B=I.indices[Ee.GLOBE],C)A.executeGlobeCommands(I,K2,S,e,t);else for(_=0;_<B;++_)K2(M[_],e,i,t);for(b&&(w.framebuffer=t.framebuffer,w.execute(i,t),w.framebuffer=void 0),b&&T&&R.execute(i,t),r.updatePass(Ee.CESIUM_3D_TILE),M=I.commands[Ee.CESIUM_3D_TILE],B=I.indices[Ee.CESIUM_3D_TILE],_=0;_<B;++_)K2(M[_],e,i,t);for(r.updatePass(Ee.OPAQUE),M=I.commands[Ee.OPAQUE],B=I.indices[Ee.OPAQUE],_=0;_<B;++_)K2(M[_],e,i,t);for(r.updatePass(Ee.TRANSLUCENT),M=I.commands[Ee.TRANSLUCENT],B=I.indices[Ee.TRANSLUCENT],_=0;_<B;++_)K2(M[_],e,i,t);t.framebuffer=k}}function q0e(e){e.context.uniformState.updatePass(Ee.COMPUTE);let n=e._environmentState.sunComputeCommand;u(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 Yht(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 Xht(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 l=t[c];if(e.updateDerivedCommands(l),l.castShadows&&(l.pass===Ee.GLOBE||l.pass===Ee.CESIUM_3D_TILE||l.pass===Ee.OPAQUE||l.pass===Ee.TRANSLUCENT)&&e.isVisible(l,i))if(o)for(let f=0;f<s;++f)r[f].commandList.push(l);else if(s===1)r[0].commandList.push(l);else{let f=!1;for(let d=s-1;d>=0;--d){let p=r[d].cullingVolume;if(e.isVisible(l,p))r[d].commandList.push(l),f=!0;else if(f)break}}}}function Y0e(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,l=c.length;for(let d=0;d<l;++d)c[d].commandList.length=0;let f=e.frameState.commandList;Xht(e,f,a);for(let d=0;d<l;++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),Pa(x.derivedCommands.shadows.castCommands[s],e,o,p.passState)}}}}var Kht=new h;Gi.prototype.updateAndExecuteCommands=function(e,t){let i=this._frameState.mode;this._environmentState.useWebVR?Zht(this,e,t):i!==te.SCENE2D||this._mapMode2D===zl.ROTATE?e0(!0,this,e,t):(IY(this,e,t),rmt(this,e))};function Zht(e,t,n){let i=e._view,o=i.camera,s=e._environmentState.renderTranslucentDepthForPick;IY(e,t,n),X0e(e),i.createPotentiallyVisibleSet(e),q0e(e),s||Y0e(e);let a=t.viewport;a.x=0,a.y=0,a.width=a.width*.5;let c=co.clone(o,e._cameraVR);c.frustum=o.frustum;let l=o.frustum.near,f=l*y(e.focalLength,5),d=y(e.eyeSeparation,f/30),p=h.multiplyByScalar(c.right,d*.5,Kht);o.frustum.aspectRatio=a.width/a.height;let g=.5*d*l/f;h.add(c.position,p,o.position),o.frustum.xOffset=g,DY(e,t),a.x=a.width,h.subtract(c.position,p,o.position),o.frustum.xOffset=-g,DY(e,t),co.clone(c,o)}var $ht=new fe(Math.PI,P.PI_OVER_TWO),Qht=new h,Jht=new h,emt=new F,tmt=new F,nmt=new h,imt=new h,omt=new We;function rmt(e,t){let n=e.context,i=e.frameState,o=e.camera,r=t.viewport,s=We.clone(r,omt);t.viewport=s;let a=$ht,c=Qht;e.mapProjection.project(a,c);let f=h.clone(o.position,Jht),d=F.clone(o.transform,tmt),p=o.frustum.clone();o._setTransform(F.IDENTITY);let g=F.computeViewportTransformation(s,0,1,emt),m=o.frustum.projectionMatrix,x=o.positionWC.y,b=h.fromElements(P.sign(x)*c.x-x,0,-o.positionWC.x,nmt),T=Rt.pointToGLWindowCoordinates(m,g,b,imt);T.x=Math.floor(T.x);let A=s.x,C=s.width;if(x===0||T.x<=A||T.x>=A+C)e0(!0,e,t);else if(Math.abs(A+C*.5-T.x)<1)s.width=T.x-s.x,o.position.x*=P.sign(o.position.x),o.frustum.right=0,i.cullingVolume=o.frustum.computeCullingVolume(o.positionWC,o.directionWC,o.upWC),n.uniformState.update(i),e0(!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),e0(!1,e,t);else if(T.x>A+C*.5){s.width=T.x-A;let S=o.frustum.right;o.frustum.right=c.x-x,i.cullingVolume=o.frustum.computeCullingVolume(o.positionWC,o.directionWC,o.upWC),n.uniformState.update(i),e0(!0,e,t),s.x=T.x,s.width=A+C-T.x,o.position.x=-o.position.x,o.frustum.left=-o.frustum.right,o.frustum.right=S-o.frustum.right*2,i.cullingVolume=o.frustum.computeCullingVolume(o.positionWC,o.directionWC,o.upWC),n.uniformState.update(i),e0(!1,e,t)}else{s.x=T.x,s.width=A+C-T.x;let S=o.frustum.left;o.frustum.left=-c.x-x,i.cullingVolume=o.frustum.computeCullingVolume(o.positionWC,o.directionWC,o.upWC),n.uniformState.update(i),e0(!0,e,t),s.x=A,s.width=T.x-A,o.position.x=-o.position.x,o.frustum.right=-o.frustum.left,o.frustum.left=S-o.frustum.left*2,i.cullingVolume=o.frustum.computeCullingVolume(o.positionWC,o.directionWC,o.upWC),n.uniformState.update(i),e0(!1,e,t)}o._setTransform(d),h.clone(f,o.position),o.frustum=p.clone(),t.viewport=r}function e0(e,t,n,i){let o=t._environmentState,r=t._view,s=o.renderTranslucentDepthForPick;e||(t.frameState.commandList.length=0),X0e(t),r.createPotentiallyVisibleSet(t),e&&(u(i)&&IY(t,n,i),q0e(t),s||Y0e(t)),DY(t,n)}var G0e=new es;Gi.prototype.updateEnvironment=function(){let e=this._frameState,t=this._view,n=this._environmentState,i=e.passes.render,o=e.passes.offscreen,r=this.skyAtmosphere,s=this.globe,a=this._globeTranslucencyState;if(!i||this._mode!==te.SCENE2D&&t.camera.frustum instanceof $t||!a.environmentVisible)n.skyAtmosphereCommand=void 0,n.skyBoxCommand=void 0,n.sunDrawCommand=void 0,n.sunComputeCommand=void 0,n.moonCommand=void 0;else{u(r)?(u(s)?(r.setDynamicAtmosphereColor(s.enableLighting&&s.dynamicAtmosphereLighting,s.dynamicAtmosphereLightingFromSun),n.isReadyForAtmosphere=n.isReadyForAtmosphere||!s.show||s._surface._tilesToRender.length>0):n.isReadyForAtmosphere=!0,n.skyAtmosphereCommand=r.update(e,s),u(n.skyAtmosphereCommand)&&this.updateDerivedCommands(n.skyAtmosphereCommand)):n.skyAtmosphereCommand=void 0,n.skyBoxCommand=u(this.skyBox)?this.skyBox.update(e,this._hdr):void 0;let x=u(this.sun)?this.sun.update(e,t.passState,this._hdr):void 0;n.sunDrawCommand=u(x)?x.drawCommand:void 0,n.sunComputeCommand=u(x)?x.computeCommand:void 0,n.moonCommand=u(this.moon)?this.moon.update(e):void 0}let c=n.clearGlobeDepth=u(s)&&s.show&&(!s.depthTestAgainstTerrain||this.mode===te.SCENE2D);(n.useDepthPlane=c&&this.mode===te.SCENE3D&&a.useDepthPlane)&&this._depthPlane.update(e),n.renderTranslucentDepthForPick=!1,n.useWebVR=this._useWebVR&&this.mode!==te.SCENE2D&&!o;let f=e.mode===te.SCENE3D&&!a.sunVisibleThroughGlobe?e.occluder:void 0,d=e.cullingVolume,p=G0e.planes;for(let x=0;x<5;++x)p[x]=d.planes[x];d=G0e,n.isSkyAtmosphereVisible=u(n.skyAtmosphereCommand)&&n.isReadyForAtmosphere,n.isSunVisible=this.isVisible(n.sunDrawCommand,d,f),n.isMoonVisible=this.isVisible(n.moonCommand,d,f);let g=this.specularEnvironmentMaps,m=this._specularEnvironmentMapAtlas;u(g)&&(!u(m)||m.url!==g)?(m=m&&m.destroy(),this._specularEnvironmentMapAtlas=new Td(g)):!u(g)&&u(m)&&(m.destroy(),this._specularEnvironmentMapAtlas=void 0),u(this._specularEnvironmentMapAtlas)&&this._specularEnvironmentMapAtlas.update(e)};function smt(e){let t=e._frameState;e.debugShowFrustumPlanes!==e._debugShowFrustumPlanes&&(e.debugShowFrustumPlanes?e._debugFrustumPlanes=new Rm({camera:e.camera,updateOnChange:!1,frustumSplits:t.frustumSplits}):e._debugFrustumPlanes=e._debugFrustumPlanes&&e._debugFrustumPlanes.destroy(),e._debugShowFrustumPlanes=e.debugShowFrustumPlanes),u(e._debugFrustumPlanes)&&e._debugFrustumPlanes.update(t)}function amt(e){let t=e._frameState,n=t.shadowMaps,i=n.length,o=i>0&&!t.passes.pick&&e.mode===te.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 X0e(e){let t=e._frameState;e._groundPrimitives.update(t),e._primitives.update(t),smt(e),amt(e),e._globe&&e._globe.render(t)}function IY(e,t,n){let i=e._context,o=e._frameState,r=e._environmentState,s=e._view,c=e._frameState.passes.pick;u(s.globeDepth)&&(s.globeDepth.picking=c);let l=r.useWebVR;r.originalFramebuffer=t.framebuffer,u(e.sun)&&e.sunBloom!==e._sunBloom?(e.sunBloom&&!l?e._sunPostProcess=new q2:u(e._sunPostProcess)&&(e._sunPostProcess=e._sunPostProcess.destroy()),e._sunBloom=e.sunBloom):!u(e.sun)&&u(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=u(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&&u(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&&!l?(t.framebuffer=e._sunPostProcess.update(t),e._sunPostProcess.clear(i,t,n)):d?t.framebuffer=s.globeDepth.framebuffer:x&&(t.framebuffer=s.sceneFramebuffer.framebuffer),u(t.framebuffer)&&f.execute(i,t),r.useInvertClassification=!c&&u(t.framebuffer)&&e.invertClassification){let T;if(e.frameState.invertClassificationColor.alpha===1&&r.useGlobeDepthFramebuffer&&(T=s.globeDepth.framebuffer),u(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 A=e._invertClassification.unclassifiedCommand,C=A.derivedCommands;C.oit=p.createDerivedCommands(A,i,C.oit)}}else r.useInvertClassification=!1}e._globeTranslucencyState.translucent&&s.globeTranslucencyFramebuffer.updateAndClear(e._hdr,s.viewport,i,t)}Gi.prototype.resolveFramebuffers=function(e){let t=this._context,n=this._environmentState,i=this._view,o=i.globeDepth;u(o)&&o.prepareColorTextures(t);let r=n.useOIT,s=n.useGlobeDepthFramebuffer,a=n.usePostProcess,c=n.originalFramebuffer,l=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=l);let m=this.postProcessStages,x=g.getColorTexture(0),b=d.getColorTexture(0),T=y(l,f).getDepthStencilTexture();m.execute(t,x,T,b),m.copy(t,c)}!r&&!a&&s&&(e.framebuffer=c,o.executeCopyColor(t,e))};function cmt(e){let t=e._frameState.afterRender;for(let n=0,i=t.length;n<i;++n)t[n]()&&e.requestRender();t.length=0}function lmt(e){let t=e._globe,i=e.camera.positionCartographic;if(u(t)&&t.show&&u(i))return t.getHeight(i)}function umt(e){let t=e.camera,n=e._mode,i=e.globe,o=e._screenSpaceCameraController,r=t.positionCartographic;if(!u(r))return!1;if(!o.onMap()&&r.height<0)return!0;if(!u(i)||!i.show||n===te.SCENE2D||n===te.MORPHING)return!1;let s=e._globeHeight;return u(s)&&r.height<s}Gi.prototype.initializeFrame=function(){this._shaderFrameCount++===120&&(this._shaderFrameCount=0,this._context.shaderCache.destroyReleasedShaderPrograms(),this._context.textureCache.destroyReleasedTextures()),this._tweens.update(),this._globeHeight=lmt(this),this._cameraUnderground=umt(this),this._globeTranslucencyState.update(this),this._screenSpaceCameraController.update(),u(this._deviceOrientationCameraController)&&this._deviceOrientationCameraController.update(),this.camera.update(this._mode),this.camera._updateCameraChanged()};function fmt(e,t){if(e.debugShowFramesPerSecond){if(!u(e._performanceDisplay)){let n=document.createElement("div");n.className="cesium-performanceDisplay-defaultContainer",e._canvas.parentNode.appendChild(n);let o=new V_({container:n});e._performanceDisplay=o,e._performanceContainer=n}e._performanceDisplay.throttled=e.requestRenderMode,e._performanceDisplay.update(t)}else u(e._performanceDisplay)&&(e._performanceDisplay=e._performanceDisplay&&e._performanceDisplay.destroy(),e._performanceContainer.parentNode.removeChild(e._performanceContainer))}function dmt(e){e._jobScheduler.resetBudgets();let t=e._frameState;e.primitives.prePassesUpdate(t),u(e.globe)&&e.globe.update(t),e._picking.update(),t.creditDisplay.update()}function hmt(e){let t=e._frameState;e.primitives.postPassesUpdate(t),Ua.update()}var mmt=new H;function pmt(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=Nht;let r=y(e.backgroundColor,H.BLACK);e._hdr&&(r=H.clone(r,mmt),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,e.fog.update(t),i.update(t);let s=e.shadowMap;u(s)&&s.enabled&&(!u(e.light)||e.light instanceof op?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=We.clone(a,c.viewport),u(e.globe)&&e.globe.beginFrame(t),e.updateEnvironment(),e.updateAndExecuteCommands(c,r),e.resolveFramebuffers(c),c.framebuffer=void 0,Yht(e,c),u(e.globe)&&(e.globe.endFrame(t),e.globe.tilesLoaded||(e._renderRequested=!0)),n.endFrame()}function xT(e,t){try{t(e)}catch(n){if(e._renderError.raiseEvent(e,n),e.rethrowRenderErrors)throw n}}function _mt(e){return e._picking.updateMostDetailedRayPicks(e)}Gi.prototype.render=function(e){this._preUpdate.raiseEvent(this,e);let t=this._frameState;t.newFrame=!1,u(e)||(e=J.now());let n=this._view.checkForCameraUpdates(this),i=!this.requestRenderMode||this._renderRequested||n||this._logDepthBufferDirty||this._hdrDirty||this.mode===te.MORPHING;if(!i&&u(this.maximumRenderTimeChange)&&u(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=P.incrementWrap(t.frameNumber,15e6,1);W0e(this,o,e),t.newFrame=!0}xT(this,dmt),this.primitives.show&&(xT(this,_mt),xT(this,gmt),xT(this,ymt),i||xT(this,xmt)),this._postUpdate.raiseEvent(this,e),i&&(this._preRender.raiseEvent(this,e),t.creditDisplay.beginFrame(),xT(this,pmt)),fmt(this,i),xT(this,hmt),cmt(this),i&&(this._postRender.raiseEvent(this,e),t.creditDisplay.endFrame())};Gi.prototype.forceRender=function(e){this._renderRequested=!0,this.render(e)};Gi.prototype.requestRender=function(){this._renderRequested=!0};Gi.prototype.clampLineWidth=function(e){return Math.max(Ut.minimumAliasedLineWidth,Math.min(e,Ut.maximumAliasedLineWidth))};Gi.prototype.pick=function(e,t,n){return this._picking.pick(this,e,t,n)};Gi.prototype.pickPositionWorldCoordinates=function(e,t){return this._picking.pickPositionWorldCoordinates(this,e,t)};Gi.prototype.pickPosition=function(e,t){return this._picking.pickPosition(this,e,t)};Gi.prototype.drillPick=function(e,t,n,i){return this._picking.drillPick(this,e,t,n,i)};function gmt(e){let t=e._frameState;SY.camera=t.camera,SY.cullingVolume=t.cullingVolume,e.primitives.updateForPass(t,SY)}function ymt(e){let t=e._frameState;if(!t.camera.canPreloadFlight())return;wY.camera=e.preloadFlightCamera,wY.cullingVolume=e.preloadFlightCullingVolume,e.primitives.updateForPass(t,wY)}function xmt(e){e.primitives.updateForPass(e._frameState,Fht)}Gi.prototype.pickFromRay=function(e,t,n){return this._picking.pickFromRay(this,e,t,n)};Gi.prototype.drillPickFromRay=function(e,t,n,i){return this._picking.drillPickFromRay(this,e,t,n,i)};Gi.prototype.pickFromRayMostDetailed=function(e,t,n){return this._picking.pickFromRayMostDetailed(this,e,t,n)};Gi.prototype.drillPickFromRayMostDetailed=function(e,t,n,i){return this._picking.drillPickFromRayMostDetailed(this,e,t,n,i)};Gi.prototype.sampleHeight=function(e,t,n){return this._picking.sampleHeight(this,e,t,n)};Gi.prototype.clampToHeight=function(e,t,n,i){return this._picking.clampToHeight(this,e,t,n,i)};Gi.prototype.sampleHeightMostDetailed=function(e,t,n){return this._picking.sampleHeightMostDetailed(this,e,t,n)};Gi.prototype.clampToHeightMostDetailed=function(e,t,n){return this._picking.clampToHeightMostDetailed(this,e,t,n)};Gi.prototype.cartesianToCanvasCoordinates=function(e,t){return Xi.wgs84ToWindowCoordinates(this,e,t)};Gi.prototype.completeMorph=function(){this._transitioner.completeMorph()};Gi.prototype.morphTo2D=function(e){let t,n=this.globe;u(n)?t=n.ellipsoid:t=this.mapProjection.ellipsoid,e=y(e,2),this._transitioner.morphTo2D(e,t)};Gi.prototype.morphToColumbusView=function(e){let t,n=this.globe;u(n)?t=n.ellipsoid:t=this.mapProjection.ellipsoid,e=y(e,2),this._transitioner.morphToColumbusView(e,t)};Gi.prototype.morphTo3D=function(e){let t,n=this.globe;u(n)?t=n.ellipsoid:t=this.mapProjection.ellipsoid,e=y(e,2),this._transitioner.morphTo3D(e,t)};function bmt(e,t){if(e._removeTerrainProviderReadyListener=e._removeTerrainProviderReadyListener&&e._removeTerrainProviderReadyListener(),t.ready){u(e.globe)&&(e.globe.terrainProvider=t.provider);return}e.globe.terrainProvider=void 0,e._removeTerrainProviderReadyListener=t.readyEvent.addEventListener(n=>{u(e)&&u(e.globe)&&(e.globe.terrainProvider=n),e._removeTerrainProviderReadyListener()})}Gi.prototype.setTerrain=function(e){return bmt(this,e),e};Gi.prototype.isDestroyed=function(){return!1};Gi.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(),u(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,le(this)};var Z2=Gi;var bS=`float interpolateByDistance(vec4 nearFarScalar, float distance)
  10439. {
  10440. float startDistance = nearFarScalar.x;
  10441. float startValue = nearFarScalar.y;
  10442. float endDistance = nearFarScalar.z;
  10443. float endValue = nearFarScalar.w;
  10444. float t = clamp((distance - startDistance) / (endDistance - startDistance), 0.0, 1.0);
  10445. return mix(startValue, endValue, t);
  10446. }
  10447. vec3 getLightDirection(vec3 positionWC)
  10448. {
  10449. float lightEnum = u_radiiAndDynamicAtmosphereColor.z;
  10450. vec3 lightDirection =
  10451. positionWC * float(lightEnum == 0.0) +
  10452. czm_lightDirectionWC * float(lightEnum == 1.0) +
  10453. czm_sunDirectionWC * float(lightEnum == 2.0);
  10454. return normalize(lightDirection);
  10455. }
  10456. void computeAtmosphereScattering(vec3 positionWC, vec3 lightDirection, out vec3 rayleighColor, out vec3 mieColor, out float opacity, out float underTranslucentGlobe)
  10457. {
  10458. float ellipsoidRadiiDifference = czm_ellipsoidRadii.x - czm_ellipsoidRadii.z;
  10459. // Adjustment to the atmosphere radius applied based on the camera height.
  10460. float distanceAdjustMin = czm_ellipsoidRadii.x / 4.0;
  10461. float distanceAdjustMax = czm_ellipsoidRadii.x;
  10462. float distanceAdjustModifier = ellipsoidRadiiDifference / 2.0;
  10463. float distanceAdjust = distanceAdjustModifier * clamp((czm_eyeHeight - distanceAdjustMin) / (distanceAdjustMax - distanceAdjustMin), 0.0, 1.0);
  10464. // Since atmosphere scattering assumes the atmosphere is a spherical shell, we compute an inner radius of the atmosphere best fit
  10465. // for the position on the ellipsoid.
  10466. float radiusAdjust = (ellipsoidRadiiDifference / 4.0) + distanceAdjust;
  10467. float atmosphereInnerRadius = (length(czm_viewerPositionWC) - czm_eyeHeight) - radiusAdjust;
  10468. // Setup the primary ray: from the camera position to the vertex position.
  10469. vec3 cameraToPositionWC = positionWC - czm_viewerPositionWC;
  10470. vec3 cameraToPositionWCDirection = normalize(cameraToPositionWC);
  10471. czm_ray primaryRay = czm_ray(czm_viewerPositionWC, cameraToPositionWCDirection);
  10472. underTranslucentGlobe = 0.0;
  10473. // Brighten the sky atmosphere under the Earth's atmosphere when translucency is enabled.
  10474. #if defined(GLOBE_TRANSLUCENT)
  10475. // Check for intersection with the inner radius of the atmopshere.
  10476. czm_raySegment primaryRayEarthIntersect = czm_raySphereIntersectionInterval(primaryRay, vec3(0.0), atmosphereInnerRadius + radiusAdjust);
  10477. if (primaryRayEarthIntersect.start > 0.0 && primaryRayEarthIntersect.stop > 0.0) {
  10478. // Compute position on globe.
  10479. vec3 direction = normalize(positionWC);
  10480. czm_ray ellipsoidRay = czm_ray(positionWC, -direction);
  10481. czm_raySegment ellipsoidIntersection = czm_rayEllipsoidIntersectionInterval(ellipsoidRay, vec3(0.0), czm_ellipsoidInverseRadii);
  10482. vec3 onEarth = positionWC - (direction * ellipsoidIntersection.start);
  10483. // Control the color using the camera angle.
  10484. float angle = dot(normalize(czm_viewerPositionWC), normalize(onEarth));
  10485. // Control the opacity using the distance from Earth.
  10486. opacity = interpolateByDistance(vec4(0.0, 1.0, czm_ellipsoidRadii.x, 0.0), length(czm_viewerPositionWC - onEarth));
  10487. vec3 horizonColor = vec3(0.1, 0.2, 0.3);
  10488. vec3 nearColor = vec3(0.0);
  10489. rayleighColor = mix(nearColor, horizonColor, exp(-angle) * opacity);
  10490. // Set the traslucent flag to avoid alpha adjustment in computeFinalColor funciton.
  10491. underTranslucentGlobe = 1.0;
  10492. return;
  10493. }
  10494. #endif
  10495. computeScattering(
  10496. primaryRay,
  10497. length(cameraToPositionWC),
  10498. lightDirection,
  10499. atmosphereInnerRadius,
  10500. rayleighColor,
  10501. mieColor,
  10502. opacity
  10503. );
  10504. // Alter the opacity based on how close the viewer is to the ground.
  10505. // (0.0 = At edge of atmosphere, 1.0 = On ground)
  10506. float cameraHeight = czm_eyeHeight + atmosphereInnerRadius;
  10507. float atmosphereOuterRadius = atmosphereInnerRadius + ATMOSPHERE_THICKNESS;
  10508. opacity = clamp((atmosphereOuterRadius - cameraHeight) / (atmosphereOuterRadius - atmosphereInnerRadius), 0.0, 1.0);
  10509. // Alter alpha based on time of day (0.0 = night , 1.0 = day)
  10510. float nightAlpha = (u_radiiAndDynamicAtmosphereColor.z != 0.0) ? clamp(dot(normalize(positionWC), lightDirection), 0.0, 1.0) : 1.0;
  10511. opacity *= pow(nightAlpha, 0.5);
  10512. }
  10513. `;var $2=`in vec3 v_outerPositionWC;
  10514. uniform vec3 u_hsbShift;
  10515. #ifndef PER_FRAGMENT_ATMOSPHERE
  10516. in vec3 v_mieColor;
  10517. in vec3 v_rayleighColor;
  10518. in float v_opacity;
  10519. in float v_translucent;
  10520. #endif
  10521. void main (void)
  10522. {
  10523. vec3 lightDirection = getLightDirection(v_outerPositionWC);
  10524. vec3 mieColor;
  10525. vec3 rayleighColor;
  10526. float opacity;
  10527. float translucent;
  10528. #ifdef PER_FRAGMENT_ATMOSPHERE
  10529. computeAtmosphereScattering(
  10530. v_outerPositionWC,
  10531. lightDirection,
  10532. rayleighColor,
  10533. mieColor,
  10534. opacity,
  10535. translucent
  10536. );
  10537. #else
  10538. mieColor = v_mieColor;
  10539. rayleighColor = v_rayleighColor;
  10540. opacity = v_opacity;
  10541. translucent = v_translucent;
  10542. #endif
  10543. vec4 color = computeAtmosphereColor(v_outerPositionWC, lightDirection, rayleighColor, mieColor, opacity);
  10544. #ifndef HDR
  10545. color.rgb = czm_acesTonemapping(color.rgb);
  10546. color.rgb = czm_inverseGamma(color.rgb);
  10547. #endif
  10548. #ifdef COLOR_CORRECT
  10549. // Convert rgb color to hsb
  10550. vec3 hsb = czm_RGBToHSB(color.rgb);
  10551. // Perform hsb shift
  10552. hsb.x += u_hsbShift.x; // hue
  10553. hsb.y = clamp(hsb.y + u_hsbShift.y, 0.0, 1.0); // saturation
  10554. hsb.z = hsb.z > czm_epsilon7 ? hsb.z + u_hsbShift.z : 0.0; // brightness
  10555. // Convert shifted hsb back to rgb
  10556. color.rgb = czm_HSBToRGB(hsb);
  10557. #endif
  10558. // For the parts of the sky atmosphere that are not behind a translucent globe,
  10559. // we mix in the default opacity so that the sky atmosphere still appears at distance.
  10560. // This is needed because the opacity in the sky atmosphere is initially adjusted based
  10561. // on the camera height.
  10562. if (translucent == 0.0) {
  10563. color.a = mix(color.b, 1.0, color.a) * smoothstep(0.0, 1.0, czm_morphTime);
  10564. }
  10565. out_FragColor = color;
  10566. }
  10567. `;var Q2=`in vec4 position;
  10568. out vec3 v_outerPositionWC;
  10569. #ifndef PER_FRAGMENT_ATMOSPHERE
  10570. out vec3 v_mieColor;
  10571. out vec3 v_rayleighColor;
  10572. out float v_opacity;
  10573. out float v_translucent;
  10574. #endif
  10575. void main(void)
  10576. {
  10577. vec4 positionWC = czm_model * position;
  10578. vec3 lightDirection = getLightDirection(positionWC.xyz);
  10579. #ifndef PER_FRAGMENT_ATMOSPHERE
  10580. computeAtmosphereScattering(
  10581. positionWC.xyz,
  10582. lightDirection,
  10583. v_rayleighColor,
  10584. v_mieColor,
  10585. v_opacity,
  10586. v_translucent
  10587. );
  10588. #endif
  10589. v_outerPositionWC = positionWC.xyz;
  10590. gl_Position = czm_modelViewProjection * position;
  10591. }
  10592. `;function TS(e){e=y(e,ie.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 Je({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(TS.prototype,{ellipsoid:{get:function(){return this._ellipsoid}}});TS.prototype.setDynamicAtmosphereColor=function(e,t){let n=e?t?2:1:0;this._radiiAndDynamicAtmosphereColor.z=n};var PY=new F;TS.prototype.update=function(e,t){if(!this.show)return;let n=e.mode;if(n!==te.SCENE3D&&n!==te.MORPHING||!e.passes.render)return;let i=F.fromRotationTranslation(e.context.uniformState.inverseViewRotation,h.ZERO,PY),o=F.multiplyTransformation(i,Po.Y_UP_TO_Z_UP,PY),r=F.multiply(this._scaleMatrix,o,PY);F.clone(r,this._modelMatrix);let s=e.context,a=Tmt(this),c=e.globeTranslucencyState.translucent,l=this.perFragmentAtmosphere||c||!u(t)||!t.show,f=this._command;if(!u(f.vertexArray)){let p=Ns.createGeometry(new Ns({radii:new h(1,1,1),slicePartitions:256,stackPartitions:256,vertexFormat:Pe.POSITION_ONLY}));f.vertexArray=ni.fromGeometry({context:s,geometry:p,attributeLocations:Nn.createAttributeLocations(p),bufferUsage:Ne.STATIC_DRAW}),f.renderState=ke.fromCache({cull:{enabled:!0,face:pi.FRONT},blending:un.ALPHA_BLEND,depthMask:!1})}let d=a|l<<2|c<<3;if(d!==this._flags){this._flags=d;let p=[];a&&p.push("COLOR_CORRECT"),l&&p.push("PER_FRAGMENT_ATMOSPHERE"),c&&p.push("GLOBE_TRANSLUCENT");let g=new Ue({defines:p,sources:[O_,bS,Q2]}),m=new Ue({defines:p,sources:[O_,bS,$2]});this._spSkyAtmosphere=Yt.fromCache({context:s,vertexShaderSource:g,fragmentShaderSource:m}),f.shaderProgram=this._spSkyAtmosphere}return f};function Tmt(e){return!(P.equalsEpsilon(e.hueShift,0,P.EPSILON7)&&P.equalsEpsilon(e.saturationShift,0,P.EPSILON7)&&P.equalsEpsilon(e.brightnessShift,0,P.EPSILON7))}TS.prototype.isDestroyed=function(){return!1};TS.prototype.destroy=function(){let e=this._command;return e.vertexArray=e.vertexArray&&e.vertexArray.destroy(),this._spSkyAtmosphere=this._spSkyAtmosphere&&this._spSkyAtmosphere.destroy(),le(this)};var J2=TS;var eF=`uniform samplerCube u_cubeMap;
  10593. in vec3 v_texCoord;
  10594. void main()
  10595. {
  10596. vec4 color = czm_textureCube(u_cubeMap, normalize(v_texCoord));
  10597. out_FragColor = vec4(czm_gammaCorrect(color).rgb, czm_morphTime);
  10598. }
  10599. `;var tF=`in vec3 position;
  10600. out vec3 v_texCoord;
  10601. void main()
  10602. {
  10603. vec3 p = czm_viewRotation * (czm_temeToPseudoFixed * (czm_entireFrustum.y * position));
  10604. gl_Position = czm_projection * vec4(p, 1.0);
  10605. v_texCoord = position.xyz;
  10606. }
  10607. `;function h8(e){this.sources=e.sources,this._sources=void 0,this.show=y(e.show,!0),this._command=new Je({modelMatrix:F.clone(F.IDENTITY),owner:this}),this._cubeMap=void 0,this._attributeLocations=void 0,this._useHdr=void 0}h8.prototype.update=function(e,t){let n=this;if(!this.show||e.mode!==te.SCENE3D&&e.mode!==te.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"?sI(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 Ha({context:i,source:r}))}let o=this._command;if(!u(o.vertexArray)){o.uniformMap={u_cubeMap:function(){return n._cubeMap}};let r=hl.createGeometry(hl.fromDimensions({dimensions:new h(2,2,2),vertexFormat:Pe.POSITION_ONLY})),s=this._attributeLocations=Nn.createAttributeLocations(r);o.vertexArray=ni.fromGeometry({context:i,geometry:r,attributeLocations:s,bufferUsage:Ne.STATIC_DRAW}),o.renderState=ke.fromCache({blending:un.ALPHA_BLEND})}if(!u(o.shaderProgram)||this._useHdr!==t){let r=new Ue({defines:[t?"HDR":""],sources:[eF]});o.shaderProgram=Yt.fromCache({context:i,vertexShaderSource:tF,fragmentShaderSource:r,attributeLocations:this._attributeLocations}),this._useHdr=t}if(u(this._cubeMap))return o};h8.prototype.isDestroyed=function(){return!1};h8.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(),le(this)};var nF=h8;var iF=`uniform sampler2D u_texture;
  10608. in vec2 v_textureCoordinates;
  10609. void main()
  10610. {
  10611. vec4 color = texture(u_texture, v_textureCoordinates);
  10612. out_FragColor = czm_gammaCorrect(color);
  10613. }
  10614. `;var oF=`uniform float u_radiusTS;
  10615. in vec2 v_textureCoordinates;
  10616. vec2 rotate(vec2 p, vec2 direction)
  10617. {
  10618. return vec2(p.x * direction.x - p.y * direction.y, p.x * direction.y + p.y * direction.x);
  10619. }
  10620. vec4 addBurst(vec2 position, vec2 direction, float lengthScalar)
  10621. {
  10622. vec2 rotatedPosition = rotate(position, direction) * vec2(25.0, 0.75);
  10623. float radius = length(rotatedPosition) * lengthScalar;
  10624. float burst = 1.0 - smoothstep(0.0, 0.55, radius);
  10625. return vec4(burst);
  10626. }
  10627. void main()
  10628. {
  10629. float lengthScalar = 2.0 / sqrt(2.0);
  10630. vec2 position = v_textureCoordinates - vec2(0.5);
  10631. float radius = length(position) * lengthScalar;
  10632. float surface = step(radius, u_radiusTS);
  10633. vec4 color = vec4(vec2(1.0), surface + 0.2, surface);
  10634. float glow = 1.0 - smoothstep(0.0, 0.55, radius);
  10635. color.ba += mix(vec2(0.0), vec2(1.0), glow) * 0.75;
  10636. vec4 burst = vec4(0.0);
  10637. // The following loop has been manually unrolled for speed, to
  10638. // avoid sin() and cos().
  10639. //
  10640. //for (float i = 0.4; i < 3.2; i += 1.047) {
  10641. // vec2 direction = vec2(sin(i), cos(i));
  10642. // burst += 0.4 * addBurst(position, direction, lengthScalar);
  10643. //
  10644. // direction = vec2(sin(i - 0.08), cos(i - 0.08));
  10645. // burst += 0.3 * addBurst(position, direction, lengthScalar);
  10646. //}
  10647. burst += 0.4 * addBurst(position, vec2(0.38942, 0.92106), lengthScalar); // angle == 0.4
  10648. burst += 0.4 * addBurst(position, vec2(0.99235, 0.12348), lengthScalar); // angle == 0.4 + 1.047
  10649. burst += 0.4 * addBurst(position, vec2(0.60327, -0.79754), lengthScalar); // angle == 0.4 + 1.047 * 2.0
  10650. burst += 0.3 * addBurst(position, vec2(0.31457, 0.94924), lengthScalar); // angle == 0.4 - 0.08
  10651. burst += 0.3 * addBurst(position, vec2(0.97931, 0.20239), lengthScalar); // angle == 0.4 + 1.047 - 0.08
  10652. burst += 0.3 * addBurst(position, vec2(0.66507, -0.74678), lengthScalar); // angle == 0.4 + 1.047 * 2.0 - 0.08
  10653. // End of manual loop unrolling.
  10654. color += clamp(burst, vec4(0.0), vec4(1.0)) * 0.15;
  10655. out_FragColor = clamp(color, vec4(0.0), vec4(1.0));
  10656. }
  10657. `;var rF=`in vec2 direction;
  10658. uniform float u_size;
  10659. out vec2 v_textureCoordinates;
  10660. void main()
  10661. {
  10662. vec4 position;
  10663. if (czm_morphTime == 1.0)
  10664. {
  10665. position = vec4(czm_sunPositionWC, 1.0);
  10666. }
  10667. else
  10668. {
  10669. position = vec4(czm_sunPositionColumbusView.zxy, 1.0);
  10670. }
  10671. vec4 positionEC = czm_view * position;
  10672. vec4 positionWC = czm_eyeToWindowCoordinates(positionEC);
  10673. vec2 halfSize = vec2(u_size * 0.5);
  10674. halfSize *= ((direction * 2.0) - 1.0);
  10675. gl_Position = czm_viewportOrthographic * vec4(positionWC.xy + halfSize, -positionWC.z, 1.0);
  10676. v_textureCoordinates = direction;
  10677. }
  10678. `;function aF(){this.show=!0,this._drawCommand=new Je({primitiveType:Me.TRIANGLES,boundingVolume:new se,owner:this}),this._commands={drawCommand:this._drawCommand,computeCommand:void 0},this._boundingVolume=new se,this._boundingVolume2D=new se,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(aF.prototype,{glowFactor:{get:function(){return this._glowFactor},set:function(e){e=Math.max(e,0),this._glowFactor=e,this._glowFactorDirty=!0}}});var Amt=new z,Cmt=new z,Emt=new oe,sF=new oe;aF.prototype.update=function(e,t,n){if(!this.show)return;let i=e.mode;if(i===te.SCENE2D||i===te.MORPHING||!e.passes.render)return;let o=e.context,r=t.viewport.width,s=t.viewport.height;if(!u(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 S=Math.max(r,s);S=Math.pow(2,Math.ceil(Math.log(S)/Math.log(2))-2),S=Math.max(1,S);let w=n?o.halfFloatingPointTexture?Ye.HALF_FLOAT:Ye.FLOAT:Ye.UNSIGNED_BYTE;this._texture=new It({context:o,width:S,height:S,pixelFormat:nt.RGBA,pixelDatatype:w}),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 Xu({fragmentShaderSource:oF,outputTexture:this._texture,uniformMap:O,persists:!1,owner:this,postExecute:function(){D._commands.computeCommand=void 0}})}let a=this._drawCommand;if(!u(a.vertexArray)){let S={direction:0},w=new Uint8Array(4*2);w[0]=0,w[1]=0,w[2]=255,w[3]=0,w[4]=255,w[5]=255,w[6]=0,w[7]=255;let D=ct.createVertexBuffer({context:o,typedArray:w,usage:Ne.STATIC_DRAW}),O=[{index:S.direction,vertexBuffer:D,componentsPerAttribute:2,normalize:!0,componentDatatype:X.UNSIGNED_BYTE}],R=ct.createIndexBuffer({context:o,typedArray:new Uint16Array([0,1,2,0,2,3]),usage:Ne.STATIC_DRAW,indexDatatype:Fe.UNSIGNED_SHORT});a.vertexArray=new ni({context:o,attributes:O,indexBuffer:R}),a.shaderProgram=Yt.fromCache({context:o,vertexShaderSource:rF,fragmentShaderSource:iF,attributeLocations:S}),a.renderState=ke.fromCache({blending:un.ALPHA_BLEND}),a.uniformMap=this._uniformMap}let c=o.uniformState.sunPositionWC,l=o.uniformState.sunPositionColumbusView,f=this._boundingVolume,d=this._boundingVolume2D;h.clone(c,f.center),d.center.x=l.z,d.center.y=l.x,d.center.z=l.y,f.radius=P.SOLAR_RADIUS+P.SOLAR_RADIUS*this._glowLengthTS,d.radius=f.radius,i===te.SCENE3D?se.clone(f,a.boundingVolume):i===te.COLUMBUS_VIEW&&se.clone(d,a.boundingVolume);let p=Xi.computeActualWgs84Position(e,c,sF),g=h.magnitude(h.subtract(p,e.camera.position,sF)),m=o.uniformState.projection,x=Emt;x.x=0,x.y=0,x.z=-g,x.w=1;let b=F.multiplyByVector(m,x,sF),T=Xi.clipToGLWindowCoordinates(t.viewport,b,Amt);x.x=P.SOLAR_RADIUS;let A=F.multiplyByVector(m,x,sF),C=Xi.clipToGLWindowCoordinates(t.viewport,A,Cmt);return this._size=z.magnitude(z.subtract(C,T,sF)),this._size=2*this._size*(1+2*this._glowLengthTS),this._size=Math.ceil(this._size),this._commands};aF.prototype.isDestroyed=function(){return!1};aF.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(),le(this)};var cF=aF;function AS(e){return Zt(`Assets/Textures/SkyBox/tycho2t3_80_${e}.jpg`)}function Smt(e){e._renderLoopRunning=!0;let t=0;function n(i){if(!e.isDestroyed())if(e._useDefaultRenderLoop)try{let o=e._targetFrameRate;if(!u(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){if(e._useDefaultRenderLoop=!1,e._renderLoopRunning=!1,e._showRenderLoopErrors){let r="An error occurred while rendering. Rendering has stopped.";e.showErrorPanel(r,void 0,o)}}else e._renderLoopRunning=!1}requestAnimationFrame(n)}function K0e(e){let t=e._useBrowserRecommendedResolution?1:window.devicePixelRatio;return t*=e._resolutionScale,u(e._scene)&&(e._scene.pixelRatio=t),t}function Z0e(e){let t=e._canvas,n=t.clientWidth,i=t.clientHeight,o=K0e(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 $0e(e){let t=e._canvas,n=t.width,i=t.height;if(n!==0&&i!==0){let o=e._scene.camera.frustum;u(o.aspectRatio)?o.aspectRatio=n/i:(o.top=o.right*(i/n),o.bottom=-o.top)}}function bT(e,t){e=wn(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=Bt.supportsImageRenderingPixelated();this._supportsImageRenderingPixelated=o,o&&(i.style.imageRendering=Bt.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=u(t.creditContainer)?wn(t.creditContainer):n;c.appendChild(a);let l=u(t.creditViewport)?wn(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=l,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=u(t.clock)?t.clock:new Xd,Z0e(this);try{let p=new Z2({canvas:i,contextOptions:t.contextOptions,creditContainer:a,creditViewport:l,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,K0e(this),$0e(this);let g=y(p.mapProjection.ellipsoid,ie.WGS84),m=t.globe;u(m)||(m=new AN(g)),m!==!1&&(p.globe=m,p.globe.shadows=y(t.terrainShadows,yn.RECEIVE_ONLY));let x=t.skyBox;u(x)||(x=new nF({sources:{positiveX:AS("px"),negativeX:AS("mx"),positiveY:AS("py"),negativeY:AS("my"),positiveZ:AS("pz"),negativeZ:AS("mz")}})),x!==!1&&(p.skyBox=x,p.sun=new cF,p.moon=new DN);let b=t.skyAtmosphere;u(b)||(b=new J2(g),b.show=t.globe!==!1&&m.show),b!==!1&&(p.skyAtmosphere=b);let T=t.baseLayer;t.globe!==!1&&T!==!1&&(u(T)||(T=oa.fromWorldImagery()),p.imageryLayers.add(T)),u(t.terrainProvider)&&t.globe!==!1&&(p.terrainProvider=t.terrainProvider),u(t.terrain)&&t.globe!==!1&&p.setTerrain(t.terrain),this._screenSpaceEventHandler=new Nu(i),u(t.sceneMode)&&(t.sceneMode===te.SCENE2D&&this._scene.morphTo2D(0),t.sceneMode===te.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 A=this;this._onRenderError=function(C,S){if(A._useDefaultRenderLoop=!1,A._renderLoopRunning=!1,A._showRenderLoopErrors){let w="An error occurred while rendering. Rendering has stopped.";A.showErrorPanel(w,void 0,S)}},p.renderError.addEventListener(this._onRenderError)}catch(p){if(f){let g="Error constructing CesiumWidget.",m='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:';this.showErrorPanel(g,m,p)}throw p}}Object.defineProperties(bT.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&&Smt(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)}}});bT.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(),u(window.addEventListener)&&window.addEventListener("resize",c,!1);let l=u(t),f=u(n);if(l||f){let g=document.createElement("div");if(g.className="cesium-widget-errorPanel-message",a.appendChild(g),f){let m=wm(n);l||(typeof n=="string"&&(n=new Error(n)),t=wm({name:n.name,message:n.message}),m=n.stack),typeof console<"u"&&console.error(`${e}
  10679. ${t}
  10680. ${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(){u(c)&&u(window.removeEventListener)&&window.removeEventListener("resize",c,!1),i.removeChild(o)},d.appendChild(p),i.appendChild(o)};bT.prototype.isDestroyed=function(){return!1};bT.prototype.destroy=function(){u(this._scene)&&(this._scene.renderError.removeEventListener(this._onRenderError),this._scene=this._scene.destroy()),this._container.removeChild(this._element),this._creditContainer.removeChild(this._innerCreditContainer),le(this)};bT.prototype.resize=function(){let e=this._canvas;!this._forceResize&&this._canvasClientWidth===e.clientWidth&&this._canvasClientHeight===e.clientHeight&&this._lastDevicePixelRatio===window.devicePixelRatio||(this._forceResize=!1,Z0e(this),$0e(this),this._scene.requestRender())};bT.prototype.render=function(){if(this._canRender){this._scene.initializeFrame();let e=this._clock.tick();this._scene.render(e)}else this._clock.tick()};var lF=bT;var uF=`uniform sampler2D u_noiseTexture;
  10681. uniform vec3 u_noiseTextureDimensions;
  10682. uniform float u_noiseDetail;
  10683. in vec2 v_offset;
  10684. in vec3 v_maximumSize;
  10685. in vec4 v_color;
  10686. in float v_slice;
  10687. in float v_brightness;
  10688. float wrap(float value, float rangeLength) {
  10689. if(value < 0.0) {
  10690. float absValue = abs(value);
  10691. float modValue = mod(absValue, rangeLength);
  10692. return mod(rangeLength - modValue, rangeLength);
  10693. }
  10694. return mod(value, rangeLength);
  10695. }
  10696. vec3 wrapVec(vec3 value, float rangeLength) {
  10697. return vec3(wrap(value.x, rangeLength),
  10698. wrap(value.y, rangeLength),
  10699. wrap(value.z, rangeLength));
  10700. }
  10701. vec2 voxelToUV(vec3 voxelIndex) {
  10702. float textureSliceWidth = u_noiseTextureDimensions.x;
  10703. float noiseTextureRows = u_noiseTextureDimensions.y;
  10704. float inverseNoiseTextureRows = u_noiseTextureDimensions.z;
  10705. float textureSliceWidthSquared = textureSliceWidth * textureSliceWidth;
  10706. vec2 inverseNoiseTextureDimensions = vec2(noiseTextureRows / textureSliceWidthSquared,
  10707. inverseNoiseTextureRows / textureSliceWidth);
  10708. vec3 wrappedIndex = wrapVec(voxelIndex, textureSliceWidth);
  10709. float column = mod(wrappedIndex.z, textureSliceWidth * inverseNoiseTextureRows);
  10710. float row = floor(wrappedIndex.z / textureSliceWidth * noiseTextureRows);
  10711. float xPixelCoord = wrappedIndex.x + column * textureSliceWidth;
  10712. float yPixelCoord = wrappedIndex.y + row * textureSliceWidth;
  10713. return vec2(xPixelCoord, yPixelCoord) * inverseNoiseTextureDimensions;
  10714. }
  10715. // Interpolate a voxel with its neighbor (along the positive X-axis)
  10716. vec4 lerpSamplesX(vec3 voxelIndex, float x) {
  10717. vec2 uv0 = voxelToUV(voxelIndex);
  10718. vec2 uv1 = voxelToUV(voxelIndex + vec3(1.0, 0.0, 0.0));
  10719. vec4 sample0 = texture(u_noiseTexture, uv0);
  10720. vec4 sample1 = texture(u_noiseTexture, uv1);
  10721. return mix(sample0, sample1, x);
  10722. }
  10723. vec4 sampleNoiseTexture(vec3 position) {
  10724. float textureSliceWidth = u_noiseTextureDimensions.x;
  10725. vec3 recenteredPos = position + vec3(textureSliceWidth / 2.0);
  10726. vec3 lerpValue = fract(recenteredPos);
  10727. vec3 voxelIndex = floor(recenteredPos);
  10728. vec4 xLerp00 = lerpSamplesX(voxelIndex, lerpValue.x);
  10729. vec4 xLerp01 = lerpSamplesX(voxelIndex + vec3(0.0, 0.0, 1.0), lerpValue.x);
  10730. vec4 xLerp10 = lerpSamplesX(voxelIndex + vec3(0.0, 1.0, 0.0), lerpValue.x);
  10731. vec4 xLerp11 = lerpSamplesX(voxelIndex + vec3(0.0, 1.0, 1.0), lerpValue.x);
  10732. vec4 yLerp0 = mix(xLerp00, xLerp10, lerpValue.y);
  10733. vec4 yLerp1 = mix(xLerp01, xLerp11, lerpValue.y);
  10734. return mix(yLerp0, yLerp1, lerpValue.z);
  10735. }
  10736. // Intersection with a unit sphere with radius 0.5 at center (0, 0, 0).
  10737. bool intersectSphere(vec3 origin, vec3 dir, float slice,
  10738. out vec3 point, out vec3 normal) {
  10739. float A = dot(dir, dir);
  10740. float B = dot(origin, dir);
  10741. float C = dot(origin, origin) - 0.25;
  10742. float discriminant = (B * B) - (A * C);
  10743. if(discriminant < 0.0) {
  10744. return false;
  10745. }
  10746. float root = sqrt(discriminant);
  10747. float t = (-B - root) / A;
  10748. if(t < 0.0) {
  10749. t = (-B + root) / A;
  10750. }
  10751. point = origin + t * dir;
  10752. if(slice >= 0.0) {
  10753. point.z = (slice / 2.0) - 0.5;
  10754. if(length(point) > 0.5) {
  10755. return false;
  10756. }
  10757. }
  10758. normal = normalize(point);
  10759. point -= czm_epsilon2 * normal;
  10760. return true;
  10761. }
  10762. // Transforms the ray origin and direction into unit sphere space,
  10763. // then transforms the result back into the ellipsoid's space.
  10764. bool intersectEllipsoid(vec3 origin, vec3 dir, vec3 center, vec3 scale, float slice,
  10765. out vec3 point, out vec3 normal) {
  10766. if(scale.x <= 0.01 || scale.y < 0.01 || scale.z < 0.01) {
  10767. return false;
  10768. }
  10769. vec3 o = (origin - center) / scale;
  10770. vec3 d = dir / scale;
  10771. vec3 p, n;
  10772. bool intersected = intersectSphere(o, d, slice, p, n);
  10773. if(intersected) {
  10774. point = (p * scale) + center;
  10775. normal = n;
  10776. }
  10777. return intersected;
  10778. }
  10779. // Assume that if phase shift is being called for octave i,
  10780. // the frequency is of i - 1. This saves us from doing extra
  10781. // division / multiplication operations.
  10782. vec2 phaseShift2D(vec2 p, vec2 freq) {
  10783. return (czm_pi / 2.0) * sin(freq.yx * p.yx);
  10784. }
  10785. vec2 phaseShift3D(vec3 p, vec2 freq) {
  10786. return phaseShift2D(p.xy, freq) + czm_pi * vec2(sin(freq.x * p.z));
  10787. }
  10788. // The cloud texture function derived from Gardner's 1985 paper,
  10789. // "Visual Simulation of Clouds."
  10790. // https://www.cs.drexel.edu/~david/Classes/Papers/p297-gardner.pdf
  10791. const float T0 = 0.6; // contrast of the texture pattern
  10792. const float k = 0.1; // computed to produce a maximum value of 1
  10793. const float C0 = 0.8; // coefficient
  10794. const float FX0 = 0.6; // frequency X
  10795. const float FY0 = 0.6; // frequency Y
  10796. const int octaves = 5;
  10797. float T(vec3 point) {
  10798. vec2 sum = vec2(0.0);
  10799. float Ci = C0;
  10800. vec2 FXY = vec2(FX0, FY0);
  10801. vec2 PXY = vec2(0.0);
  10802. for(int i = 1; i <= octaves; i++) {
  10803. PXY = phaseShift3D(point, FXY);
  10804. Ci *= 0.707;
  10805. FXY *= 2.0;
  10806. vec2 sinTerm = sin(FXY * point.xy + PXY);
  10807. sum += Ci * sinTerm + vec2(T0);
  10808. }
  10809. return k * sum.x * sum.y;
  10810. }
  10811. const float a = 0.5; // fraction of surface reflection due to ambient or scattered light,
  10812. const float t = 0.4; // fraction of texture shading
  10813. const float s = 0.25; // fraction of specular reflection
  10814. float I(float Id, float Is, float It) {
  10815. return (1.0 - a) * ((1.0 - t) * ((1.0 - s) * Id + s * Is) + t * It) + a;
  10816. }
  10817. const vec3 lightDir = normalize(vec3(0.2, -1.0, 0.7));
  10818. vec4 drawCloud(vec3 rayOrigin, vec3 rayDir, vec3 cloudCenter, vec3 cloudScale, float cloudSlice,
  10819. float brightness) {
  10820. vec3 cloudPoint, cloudNormal;
  10821. if(!intersectEllipsoid(rayOrigin, rayDir, cloudCenter, cloudScale, cloudSlice,
  10822. cloudPoint, cloudNormal)) {
  10823. return vec4(0.0);
  10824. }
  10825. float Id = clamp(dot(cloudNormal, -lightDir), 0.0, 1.0); // diffuse reflection
  10826. float Is = max(pow(dot(-lightDir, -rayDir), 2.0), 0.0); // specular reflection
  10827. float It = T(cloudPoint); // texture function
  10828. float intensity = I(Id, Is, It);
  10829. vec3 color = vec3(intensity * clamp(brightness, 0.1, 1.0));
  10830. vec4 noise = sampleNoiseTexture(u_noiseDetail * cloudPoint);
  10831. float W = noise.x;
  10832. float W2 = noise.y;
  10833. float W3 = noise.z;
  10834. // The dot product between the cloud's normal and the ray's direction is greatest
  10835. // in the center of the ellipsoid's surface. It decreases towards the edge.
  10836. // Thus, it is used to blur the areas leading to the edges of the ellipsoid,
  10837. // so that no harsh lines appear.
  10838. // The first (and biggest) layer of worley noise is then subtracted from this.
  10839. // The final result is scaled up so that the base cloud is not too translucent.
  10840. float ndDot = clamp(dot(cloudNormal, -rayDir), 0.0, 1.0);
  10841. float TR = pow(ndDot, 3.0) - W; // translucency
  10842. TR *= 1.3;
  10843. // Subtracting the second and third layers of worley noise is more complicated.
  10844. // If these layers of noise were simply subtracted from the current translucency,
  10845. // the shape derived from the first layer of noise would be completely deleted.
  10846. // The erosion of this noise should thus be constricted to the edges of the cloud.
  10847. // However, because the edges of the ellipsoid were already blurred away, mapping
  10848. // the noise to (1.0 - ndDot) will have no impact on most of the cloud's appearance.
  10849. // The value of (0.5 - ndDot) provides the best compromise.
  10850. float minusDot = 0.5 - ndDot;
  10851. // Even with the previous calculation, subtracting the second layer of wnoise
  10852. // erode too much of the cloud. The addition of it, however, will detailed
  10853. // volume to the cloud. As long as the noise is only added and not subtracted,
  10854. // the results are aesthetically pleasing.
  10855. // The minusDot product is mapped in a way that it is larger at the edges of
  10856. // the ellipsoid, so a subtraction and min operation are used instead of
  10857. // an addition and max one.
  10858. TR -= min(minusDot * W2, 0.0);
  10859. // The third level of worley noise is subtracted from the result, with some
  10860. // modifications. First, a scalar is added to minusDot so that the noise
  10861. // starts affecting the shape farther away from the center of the ellipsoid's
  10862. // surface. Then, it is scaled down so its impact is not too intense.
  10863. TR -= 0.8 * (minusDot + 0.25) * W3;
  10864. // The texture function's shading does not correlate with the shape of the cloud
  10865. // produced by the layers of noise, so an extra shading scalar is calculated.
  10866. // The darkest areas of the cloud are assigned to be where the noise erodes
  10867. // the cloud the most. This is then interpolated based on the translucency
  10868. // and the diffuse shading term of that point in the cloud.
  10869. float shading = mix(1.0 - 0.8 * W * W, 1.0, Id * TR);
  10870. // To avoid values that are too dark, this scalar is increased by a small amount
  10871. // and clamped so it never goes to zero.
  10872. shading = clamp(shading + 0.2, 0.3, 1.0);
  10873. // Finally, the contrast of the cloud's color is increased.
  10874. vec3 finalColor = mix(vec3(0.5), shading * color, 1.15);
  10875. return vec4(finalColor, clamp(TR, 0.0, 1.0)) * v_color;
  10876. }
  10877. void main() {
  10878. #ifdef DEBUG_BILLBOARDS
  10879. out_FragColor = vec4(0.0, 0.5, 0.5, 1.0);
  10880. #endif
  10881. // To avoid calculations with high values,
  10882. // we raycast from an arbitrarily smaller space.
  10883. vec2 coordinate = v_maximumSize.xy * v_offset;
  10884. vec3 ellipsoidScale = 0.82 * v_maximumSize;
  10885. vec3 ellipsoidCenter = vec3(0.0);
  10886. float zOffset = max(ellipsoidScale.z - 10.0, 0.0);
  10887. vec3 eye = vec3(0, 0, -10.0 - zOffset);
  10888. vec3 rayDir = normalize(vec3(coordinate, 1.0) - eye);
  10889. vec3 rayOrigin = eye;
  10890. #ifdef DEBUG_ELLIPSOIDS
  10891. vec3 point, normal;
  10892. if(intersectEllipsoid(rayOrigin, rayDir, ellipsoidCenter, ellipsoidScale, v_slice,
  10893. point, normal)) {
  10894. out_FragColor = v_brightness * v_color;
  10895. }
  10896. #else
  10897. #ifndef DEBUG_BILLBOARDS
  10898. vec4 cloud = drawCloud(rayOrigin, rayDir,
  10899. ellipsoidCenter, ellipsoidScale, v_slice, v_brightness);
  10900. if(cloud.w < 0.01) {
  10901. discard;
  10902. }
  10903. out_FragColor = cloud;
  10904. #endif
  10905. #endif
  10906. }
  10907. `;var fF=`#ifdef INSTANCED
  10908. in vec2 direction;
  10909. #endif
  10910. in vec4 positionHighAndScaleX;
  10911. in vec4 positionLowAndScaleY;
  10912. in vec4 packedAttribute0;
  10913. in vec4 packedAttribute1;
  10914. in vec4 color;
  10915. out vec2 v_offset;
  10916. out vec3 v_maximumSize;
  10917. out vec4 v_color;
  10918. out float v_slice;
  10919. out float v_brightness;
  10920. void main() {
  10921. // Unpack attributes.
  10922. vec3 positionHigh = positionHighAndScaleX.xyz;
  10923. vec3 positionLow = positionLowAndScaleY.xyz;
  10924. vec2 scale = vec2(positionHighAndScaleX.w, positionLowAndScaleY.w);
  10925. float show = packedAttribute0.x;
  10926. float brightness = packedAttribute0.y;
  10927. vec2 coordinates = packedAttribute0.wz;
  10928. vec3 maximumSize = packedAttribute1.xyz;
  10929. float slice = packedAttribute1.w;
  10930. #ifdef INSTANCED
  10931. vec2 dir = direction;
  10932. #else
  10933. vec2 dir = coordinates;
  10934. #endif
  10935. vec2 offset = dir - vec2(0.5, 0.5);
  10936. vec2 scaledOffset = scale * offset;
  10937. vec4 p = czm_translateRelativeToEye(positionHigh, positionLow);
  10938. vec4 positionEC = czm_modelViewRelativeToEye * p;
  10939. positionEC.xy += scaledOffset;
  10940. positionEC.xyz *= show;
  10941. gl_Position = czm_projection * positionEC;
  10942. v_offset = offset;
  10943. v_maximumSize = maximumSize;
  10944. v_color = color;
  10945. v_slice = slice;
  10946. v_brightness = brightness;
  10947. }
  10948. `;var dF=`uniform vec3 u_noiseTextureDimensions;
  10949. uniform float u_noiseDetail;
  10950. uniform vec3 u_noiseOffset;
  10951. in vec2 v_position;
  10952. float wrap(float value, float rangeLength) {
  10953. if(value < 0.0) {
  10954. float absValue = abs(value);
  10955. float modValue = mod(absValue, rangeLength);
  10956. return mod(rangeLength - modValue, rangeLength);
  10957. }
  10958. return mod(value, rangeLength);
  10959. }
  10960. vec3 wrapVec(vec3 value, float rangeLength) {
  10961. return vec3(wrap(value.x, rangeLength),
  10962. wrap(value.y, rangeLength),
  10963. wrap(value.z, rangeLength));
  10964. }
  10965. vec3 random3(vec3 p) {
  10966. float dot1 = dot(p, vec3(127.1, 311.7, 932.8));
  10967. float dot2 = dot(p, vec3(269.5, 183.3, 421.4));
  10968. return fract(vec3(sin(dot1 - dot2), cos(dot1 * dot2), dot1 * dot2));
  10969. }
  10970. // Frequency corresponds to cell size.
  10971. // The higher the frequency, the smaller the cell size.
  10972. vec3 getWorleyCellPoint(vec3 centerCell, vec3 offset, float freq) {
  10973. float textureSliceWidth = u_noiseTextureDimensions.x;
  10974. vec3 cell = centerCell + offset;
  10975. cell = wrapVec(cell, textureSliceWidth / u_noiseDetail);
  10976. cell += floor(u_noiseOffset / u_noiseDetail);
  10977. vec3 p = offset + random3(cell);
  10978. return p;
  10979. }
  10980. float worleyNoise(vec3 p, float freq) {
  10981. vec3 centerCell = floor(p * freq);
  10982. vec3 pointInCell = fract(p * freq);
  10983. float shortestDistance = 1000.0;
  10984. for(float z = -1.0; z <= 1.0; z++) {
  10985. for(float y = -1.0; y <= 1.0; y++) {
  10986. for(float x = -1.0; x <= 1.0; x++) {
  10987. vec3 offset = vec3(x, y, z);
  10988. vec3 point = getWorleyCellPoint(centerCell, offset, freq);
  10989. float distance = length(pointInCell - point);
  10990. if(distance < shortestDistance) {
  10991. shortestDistance = distance;
  10992. }
  10993. }
  10994. }
  10995. }
  10996. return shortestDistance;
  10997. }
  10998. const float MAX_FBM_ITERATIONS = 10.0;
  10999. float worleyFBMNoise(vec3 p, float octaves, float scale) {
  11000. float noise = 0.0;
  11001. float freq = 1.0;
  11002. float persistence = 0.625;
  11003. for(float i = 0.0; i < MAX_FBM_ITERATIONS; i++) {
  11004. if(i >= octaves) {
  11005. break;
  11006. }
  11007. noise += worleyNoise(p * scale, freq * scale) * persistence;
  11008. persistence *= 0.5;
  11009. freq *= 2.0;
  11010. }
  11011. return noise;
  11012. }
  11013. void main() {
  11014. float textureSliceWidth = u_noiseTextureDimensions.x;
  11015. float inverseNoiseTextureRows = u_noiseTextureDimensions.z;
  11016. float x = mod(v_position.x, textureSliceWidth);
  11017. float y = mod(v_position.y, textureSliceWidth);
  11018. float sliceRow = floor(v_position.y / textureSliceWidth);
  11019. float z = floor(v_position.x / textureSliceWidth) + sliceRow * inverseNoiseTextureRows * textureSliceWidth;
  11020. vec3 position = vec3(x, y, z);
  11021. position /= u_noiseDetail;
  11022. float worley0 = clamp(worleyFBMNoise(position, 3.0, 1.0), 0.0, 1.0);
  11023. float worley1 = clamp(worleyFBMNoise(position, 3.0, 2.0), 0.0, 1.0);
  11024. float worley2 = clamp(worleyFBMNoise(position, 3.0, 3.0), 0.0, 1.0);
  11025. out_FragColor = vec4(worley0, worley1, worley2, 1.0);
  11026. }
  11027. `;var hF=`uniform vec3 u_noiseTextureDimensions;
  11028. in vec2 position;
  11029. out vec2 v_position;
  11030. void main()
  11031. {
  11032. gl_Position = vec4(position, 0.1, 1.0);
  11033. float textureSliceWidth = u_noiseTextureDimensions.x;
  11034. float noiseTextureRows = u_noiseTextureDimensions.y;
  11035. float inverseNoiseTextureRows = u_noiseTextureDimensions.z;
  11036. vec2 transformedPos = (position * 0.5) + vec2(0.5);
  11037. transformedPos *= textureSliceWidth;
  11038. transformedPos.x *= textureSliceWidth * inverseNoiseTextureRows;
  11039. transformedPos.y *= noiseTextureRows;
  11040. v_position = transformedPos;
  11041. }
  11042. `;var mF=`
  11043. in vec2 v_textureCoordinates;
  11044. void main()
  11045. {
  11046. czm_materialInput materialInput;
  11047. materialInput.s = v_textureCoordinates.s;
  11048. materialInput.st = v_textureCoordinates;
  11049. materialInput.str = vec3(v_textureCoordinates, 0.0);
  11050. materialInput.normalEC = vec3(0.0, 0.0, -1.0);
  11051. czm_material material = czm_getMaterial(materialInput);
  11052. out_FragColor = vec4(material.diffuse + material.emission, material.alpha);
  11053. }
  11054. `;function SS(e,t){this._tilingScheme=e,this._maximumLevel=t,this._rootNodes=[]}var TT=new ce;function wmt(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}SS.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)wmt(e,g,p,s)||s.push(new CS(r,void 0,0,g,p));r.tileXYToRectangle(t,n,e,TT);let a=TT.west,c=TT.north;r.tileXYToRectangle(i,o,e,TT);let l=TT.east,f=TT.south,d=new Omt(e,a,f,l,c);for(let p=0;p<s.length;++p){let g=s[p];OY(g.extent,d)&&Rmt(this._maximumLevel,g,d)}};SS.prototype.computeMaximumLevelAtPosition=function(e){let t;for(let n=0;n<this._rootNodes.length;++n){let i=this._rootNodes[n];if(ES(i.extent,e)){t=i;break}}return u(t)?pF(void 0,t,e):-1};var vmt=[],Dmt=[],Imt=new ce,Pmt=new ce;SS.prototype.computeBestAvailableLevelOverRectangle=function(e){let t=vmt;t.length=0,e.east<e.west?(t.push(ce.fromRadians(-Math.PI,e.south,e.east,e.north,Imt)),t.push(ce.fromRadians(e.west,e.south,Math.PI,e.north,Pmt))):t.push(e);let n=Dmt;n.length=0;let i;for(i=0;i<this._rootNodes.length;++i)_F(n,this._rootNodes[i],t);for(i=n.length-1;i>=0;--i)if(u(n[i])&&n[i].length===0)return i;return 0};var Q0e=new fe;SS.prototype.isTileAvailable=function(e,t,n){let i=this._tilingScheme.tileXYToRectangle(t,n,e,TT);return ce.center(i,Q0e),this.computeMaximumLevelAtPosition(Q0e)>=e};SS.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 CS(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(CS.prototype,{nw:{get:function(){return this._nw||(this._nw=new CS(this.tilingScheme,this,this.level+1,this.x*2,this.y*2)),this._nw}},ne:{get:function(){return this._ne||(this._ne=new CS(this.tilingScheme,this,this.level+1,this.x*2+1,this.y*2)),this._ne}},sw:{get:function(){return this._sw||(this._sw=new CS(this.tilingScheme,this,this.level+1,this.x*2,this.y*2+1)),this._sw}},se:{get:function(){return this._se||(this._se=new CS(this.tilingScheme,this,this.level+1,this.x*2+1,this.y*2+1)),this._se}}});function Omt(e,t,n,i,o){this.level=e,this.west=t,this.south=n,this.east=i,this.north=o}function OY(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 Rmt(e,t,n){for(;t.level<e;)if(m8(t.nw.extent,n))t=t.nw;else if(m8(t.ne.extent,n))t=t.ne;else if(m8(t.sw.extent,n))t=t.sw;else if(m8(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,Mmt);i<0&&(i=~i),t.rectangles.splice(i,0,n)}}function Mmt(e,t){return e.level-t}function m8(e,t){return t.west>=e.west&&t.east<=e.east&&t.south>=e.south&&t.north<=e.north}function ES(e,t){return t.longitude>=e.west&&t.longitude<=e.east&&t.latitude>=e.south&&t.latitude<=e.north}function pF(e,t,n){let i=0,o=!1;for(;!o;){let r=t._nw&&ES(t._nw.extent,n),s=t._ne&&ES(t._ne.extent,n),a=t._sw&&ES(t._sw.extent,n),c=t._se&&ES(t._se.extent,n);if(r+s+a+c>1){r&&(i=Math.max(i,pF(t,t._nw,n))),s&&(i=Math.max(i,pF(t,t._ne,n))),a&&(i=Math.max(i,pF(t,t._sw,n))),c&&(i=Math.max(i,pF(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];ES(a,n)&&(i=a.level)}t=t.parent}return i}function _F(e,t,n){if(!t)return;let i,o=!1;for(i=0;i<n.length;++i)o=o||OY(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]=Lmt(e[s.level],s)}_F(e,t._nw,n),_F(e,t._ne,n),_F(e,t._sw,n),_F(e,t._se,n)}function Lmt(e,t){let n=[];for(let i=0;i<e.length;++i){let o=e[i];OY(o,t)?(o.west<t.west&&n.push(new ce(o.west,o.south,t.west,o.north)),o.east>t.east&&n.push(new ce(t.east,o.south,o.east,o.north)),o.south<t.south&&n.push(new ce(Math.max(t.west,o.west),o.south,Math.min(t.east,o.east),t.south)),o.north>t.north&&n.push(new ce(Math.max(t.west,o.west),t.north,Math.min(t.east,o.east),o.north))):n.push(o)}return n}var Th=SS;var Nmt=15;function J0e(e){this.ellipsoid=y(e.ellipsoid,ie.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}J0e.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 Fmt(e,t){let n=t.copyrightText;u(n)&&(e.credit=new bt(n));let i=t.spatialReference,o=y(i.latestWkid,i.wkid),r=t.extent,s={ellipsoid:e.ellipsoid};if(o===4326)s.rectangle=ce.fromDegrees(r.xmin,r.ymin,r.xmax,r.ymax),e.tilingScheme=new zi(s);else if(o===3857){let l=Math.PI*e.ellipsoid.maximumRadius;t.extent.xmax>l&&(t.extent.xmax=l),t.extent.ymax>l&&(t.extent.ymax=l),t.extent.xmin<-l&&(t.extent.xmin=-l),t.extent.ymin<-l&&(t.extent.ymin=-l),s.rectangleSouthwestInMeters=new z(r.xmin,r.ymin),s.rectangleNortheastInMeters=new z(r.xmax,r.ymax),e.tilingScheme=new qr(s)}else throw new ue("Invalid spatial reference");let a=t.tileInfo;if(!u(a))throw new ue("tileInfo is required");e.width=a.rows+1,e.height=a.cols+1,e.encoding=a.format==="LERC"?Vf.LERC:Vf.NONE,e.lodCount=a.lods.length-1,(e.hasAvailability=t.capabilities.indexOf("Tilemap")!==-1)&&(e.tilesAvailable=new Th(e.tilingScheme,e.lodCount),e.tilesAvailable.addAvailableTileRange(0,0,0,e.tilingScheme.getNumberOfXTilesAtLevel(0),e.tilingScheme.getNumberOfYTilesAtLevel(0)),e.tilesAvailabilityLoaded=new Th(e.tilingScheme,e.lodCount)),e.levelZeroMaximumGeometricError=jr.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."),u(t.minValues)&&u(t.maxValues)?e.terrainDataStructure={elementMultiplier:1,lowestEncodedHeight:t.minValues[0],highestEncodedHeight:t.maxValues[0]}:e.terrainDataStructure={elementMultiplier:1}}async function Bmt(e,t,n){try{let i=await t.fetchJson();Fmt(e,i)}catch(i){let o=`An error occurred while accessing ${t}.`;throw wo.reportError(void 0,n,u(n)?n._errorEvent:void 0,o),i}}function t0(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(t0.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}}});t0.fromUrl=async function(e,t){t=y(t,y.EMPTY_OBJECT),e=await Promise.resolve(e);let n=ve.createIfNeeded(e);n.appendForwardSlash(),u(t.token)&&(n=n.getDerivedResource({queryParameters:{token:t.token}}));let i=n.getDerivedResource({queryParameters:{f:"pjson"}}),o=new J0e(t);await Bmt(o,i);let r=new t0(t);return o.build(r),r._resource=n,r};t0.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&&!u(RY(this,n+1,e*2,t*2))){let d=exe(this,n+1,e*2,t*2);s=d.promise,a=d.request}let c=o.fetchArrayBuffer();if(!u(c)||!u(s))return;let l=this,f=this._tilesAvailable;return Promise.all([c,s]).then(function(d){return new wa({buffer:d[0],width:l._width,height:l._height,childTileMask:r?f.computeChildMaskForTile(n,e,t):Nmt,structure:l._terrainDataStructure,encoding:l._encoding})}).catch(function(d){return u(a)&&a.state===Jn.CANCELLED?(i.cancel(),i.deferred.promise.finally(function(){return i.state=Jn.CANCELLED,Promise.reject(d)})):Promise.reject(d)})};function RY(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}t0.prototype.getLevelMaximumGeometricError=function(e){return this._levelZeroMaximumGeometricError/(1<<e)};t0.prototype.getTileDataAvailable=function(e,t,n){if(!this._hasAvailability)return;let i=RY(this,n,e,t);if(u(i))return i;exe(this,n,e,t)};t0.prototype.loadTileDataAvailability=function(e,t,n){};function kmt(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},l=new z(e.x+1,e.y+1),f=!1,d=!1;for(;!(f&&d);){let p=l.x,g=d?l.y+1:l.y;if(!f){for(let m=e.y;m<g;++m)if(i[m*t+l.x]!==s){f=!0;break}f?(a.push(new z(l.x,e.y)),--l.x,--p,c.endX=l.x):l.x===o?(c.endX=l.x,f=!0):++l.x}if(!d){let m=l.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,l.y)),--l.y,c.endY=l.y):l.y===r?(c.endY=l.y,d=!0):++l.y}}return{endingIndices:a,range:c,value:s}}function Umt(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(),l=kmt(c,n,i,o);if(l.value===1){let d=l.range;d.startX+=e,d.endX+=e,d.startY+=t,d.endY+=t,r.push(d)}let f=l.endingIndices;f.length>0&&(a=a.concat(f))}return r}function exe(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(u(c[a]))return c[a];let l=new Go({throttle:!1,throttleByServer:!0,type:Jr.TERRAIN}),d=e._resource.getDerivedResource({url:a,request:l}).fetchJson();return u(d)?(d=d.then(function(p){let g=Umt(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 RY(e,t,n,i)}),c[a]={promise:d,request:l},d=d.finally(function(p){return delete c[a],p}),{promise:d,request:l}):{}}var MY=t0;var txe="https://dev.virtualearth.net/REST/v1/Locations";function LY(e){e=y(e,y.EMPTY_OBJECT);let t=e.key;this._key=t;let n={key:t};u(e.culture)&&(n.culture=e.culture),this._resource=new ve({url:txe,queryParameters:n}),this._credit=new bt('<img src="http://dev.virtualearth.net/Branding/logo_powered_by.png"/>',!1)}Object.defineProperties(LY.prototype,{url:{get:function(){return txe}},key:{get:function(){return this._key}},credit:{get:function(){return this._credit}}});LY.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],l=r[3];return{displayName:o.name,destination:ce.fromDegrees(a,s,l,c)}})})};var NY=LY;function FY(){}Object.defineProperties(FY.prototype,{credit:{get:function(){}}});FY.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 BY=FY;var Vmt=new oe,nxe=new h,wS=new h;function zmt(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){u(c)||(c=new h);let l=(a-i)*o;return h.lerp(r,s,l,c)}}return function(i,o){u(o)||(o=new h);let r=e._lastTimeIndex=e.findTimeInterval(i,e._lastTimeIndex),s=(i-n[r])/(n[r+1]-n[r]),a=Vmt;a.z=s,a.y=s*s,a.x=a.y*s,a.w=1;let c,l,f,d,p;return r===0?(c=t[0],l=t[1],f=e.firstTangent,d=h.subtract(t[2],c,nxe),h.multiplyByScalar(d,.5,d),p=F.multiplyByVector(Hg.hermiteCoefficientMatrix,a,a)):r===t.length-2?(c=t[r],l=t[r+1],d=e.lastTangent,f=h.subtract(l,t[r-1],nxe),h.multiplyByScalar(f,.5,f),p=F.multiplyByVector(Hg.hermiteCoefficientMatrix,a,a)):(c=t[r-1],l=t[r],f=t[r+1],d=t[r+2],p=F.multiplyByVector(n0.catmullRomCoefficientMatrix,a,a)),o=h.multiplyByScalar(c,p.x,o),h.multiplyByScalar(l,p.y,wS),h.add(o,wS,o),h.multiplyByScalar(f,p.z,wS),h.add(o,wS,o),h.multiplyByScalar(d,p.w,wS),h.add(o,wS,o)}}var Hmt=new h,Gmt=new h;function n0(e){e=y(e,y.EMPTY_OBJECT);let t=e.points,n=e.times,i=e.firstTangent,o=e.lastTangent;if(t.length>2&&(u(i)||(i=Hmt,h.multiplyByScalar(t[1],2,i),h.subtract(i,t[2],i),h.subtract(i,t[0],i),h.multiplyByScalar(i,.5,i)),!u(o))){let r=t.length-1;o=Gmt,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=zmt(this),this._lastTimeIndex=0}Object.defineProperties(n0.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}}});n0.catmullRomCoefficientMatrix=new F(-.5,1,-.5,0,1.5,-2.5,0,1,-1.5,2,.5,0,.5,-.5,0,0);n0.prototype.findTimeInterval=oo.prototype.findTimeInterval;n0.prototype.wrapTime=oo.prototype.wrapTime;n0.prototype.clampTime=oo.prototype.clampTime;n0.prototype.evaluate=function(e,t){return this._evaluateFunction(e,t)};var kY=n0;var p8={};p8.clipTriangleAtAxisAlignedThreshold=function(e,t,n,i,o,r){u(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 l=s+a+c,f,d,p,g,m,x;return l===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))):l===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)):l!==3&&(r.push(0),r.push(1),r.push(2)),r};p8.computeBarycentricCoordinates=function(e,t,n,i,o,r,s,a,c){let l=n-s,f=s-o,d=r-a,p=i-a,g=1/(d*l+f*p),m=t-a,x=e-s,b=(d*x+f*m)*g,T=(-p*x+l*m)*g,A=1-b-T;return u(c)?(c.x=b,c.y=T,c.z=A,c):new h(b,T,A)};p8.computeLineSegmentLineSegmentIntersection=function(e,t,n,i,o,r,s,a,c){let l=(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=l/d,g=f/d;if(p>=0&&p<=1&&g>=0&&g<=1)return u(c)||(c=new z),c.x=e+p*(n-e),c.y=t+p*(i-t),c};var Y_=p8;function i0(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=g8(e.westIndices,o,t),this._southIndices=g8(e.southIndices,r,t),this._eastIndices=g8(e.eastIndices,o,t),this._northIndices=g8(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(i0.prototype,{credits:{get:function(){return this._credits}},waterMask:{get:function(){return this._waterMask}},childTileMask:{get:function(){return this._childTileMask}},canUpsample:{get:function(){return u(this._mesh)}}});var _8=[];function g8(e,t,n){_8.length=e.length;let i=!1;for(let o=0,r=e.length;o<r;++o)_8[o]=e[o],i=i||o>0&&t(e[o-1],e[o])>0;return i?(_8.sort(t),Fe.createTypedArray(n,_8)):e}var ixe="createVerticesFromQuantizedTerrainMesh",Wmt=new hi(ixe),jmt=new hi(ixe,dh.maximumAsynchronousTasks);i0.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,l=t.tileXYToRectangle(n,i,o),d=(a?jmt:Wmt).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:l,relativeToCenter:this._boundingSphere.center,ellipsoid:c,exaggeration:r,exaggerationRelativeHeight:s});if(!u(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=Fe.createTypedArray(x,g.indices),T=new Float32Array(g.vertices),A=g.center,C=g.minimumHeight,S=g.maximumHeight,w=p._boundingSphere,D=p._orientedBoundingBox,O=y(h.clone(g.occludeePointInScaledSpace),p._horizonOcclusionPoint),R=g.vertexStride,L=dc.clone(g.encoding);return p._mesh=new Hf(A,T,b,g.indexCountWithoutSkirts,m,C,S,w,O,R,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 qmt=new hi("upsampleQuantizedTerrainMesh",dh.maximumAsynchronousTasks);i0.prototype.upsample=function(e,t,n,i,o,r,s){let a=this._mesh;if(!u(this._mesh))return;let c=t*2!==o,l=n*2===r,f=e.ellipsoid,d=e.tileXYToRectangle(o,r,s),p=qmt.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:l,childRectangle:d,ellipsoid:f});if(!u(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=l?g*.5:this._southSkirtHeight,b=c?this._eastSkirtHeight:g*.5,T=l?this._northSkirtHeight:g*.5,A=this._credits;return Promise.resolve(p).then(function(C){let S=new Uint16Array(C.vertices),w=Fe.createTypedArray(S.length/3,C.indices),D;return u(C.encodedNormals)&&(D=new Uint8Array(C.encodedNormals)),new i0({quantizedVertices:S,indices:w,encodedNormals:D,minimumHeight:C.minimumHeight,maximumHeight:C.maximumHeight,boundingSphere:se.clone(C.boundingSphere),orientedBoundingBox:In.clone(C.orientedBoundingBox),horizonOcclusionPoint:h.clone(C.horizonOcclusionPoint),westIndices:C.westIndices,southIndices:C.southIndices,eastIndices:C.eastIndices,northIndices:C.northIndices,westSkirtHeight:m,southSkirtHeight:x,eastSkirtHeight:b,northSkirtHeight:T,childTileMask:0,credits:A,createdByUpsampling:!0})})};var UY=32767,oxe=new h;i0.prototype.interpolateHeight=function(e,t,n){let i=P.clamp((t-e.west)/e.width,0,1);i*=UY;let o=P.clamp((n-e.south)/e.height,0,1);return o*=UY,u(this._mesh)?Zmt(this,i,o):$mt(this,i,o)};function rxe(e,t,n,i,o,r,s,a){let c=Math.min(n,o,s),l=Math.max(n,o,s),f=Math.min(i,r,a),d=Math.max(i,r,a);return e>=c&&e<=l&&t>=f&&t<=d}var Ymt=new z,Xmt=new z,Kmt=new z;function Zmt(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 l=s[a],f=s[a+1],d=s[a+2],p=r.decodeTextureCoordinates(o,l,Ymt),g=r.decodeTextureCoordinates(o,f,Xmt),m=r.decodeTextureCoordinates(o,d,Kmt);if(rxe(t,n,p.x,p.y,g.x,g.y,m.x,m.y)){let x=Y_.computeBarycentricCoordinates(t,n,p.x,p.y,g.x,g.y,m.x,m.y,oxe);if(x.x>=-1e-15&&x.y>=-1e-15&&x.z>=-1e-15){let b=r.decodeHeight(o,l),T=r.decodeHeight(o,f),A=r.decodeHeight(o,d);return x.x*b+x.y*T+x.z*A}}}}function $mt(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 l=s[a],f=s[a+1],d=s[a+2],p=i[l],g=i[f],m=i[d],x=o[l],b=o[f],T=o[d];if(rxe(t,n,p,x,g,b,m,T)){let A=Y_.computeBarycentricCoordinates(t,n,p,x,g,b,m,T,oxe);if(A.x>=-1e-15&&A.y>=-1e-15&&A.z>=-1e-15){let C=A.x*r[l]+A.y*r[f]+A.z*r[d];return P.lerp(e._minimumHeight,e._maximumHeight,C/UY)}}}}i0.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};i0.prototype.wasCreatedByUpsampling=function(){return this._createdByUpsampling};var AT=i0;function Qmt(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 axe(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=[]}axe.prototype.build=function(e){e._heightmapWidth=this.heightmapWidth,e._scheme=this.scheme;let t=u(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 cxe(e,t,n){if(!t.format){let x="The tile format is not specified in the layer.json file.";throw e.previousError=wo.reportError(e.previousError,n,u(n)?n._errorEvent:void 0,x),new ue(x)}if(!t.tiles||t.tiles.length===0){let x="The layer.json file does not specify any tile URL templates.";throw e.previousError=wo.reportError(e.previousError,n,u(n)?n._errorEvent:void 0,x),new ue(x)}let i=!1,o=!1,r=!1,s=!0,a=!1;if(t.format==="heightmap-1.0")a=!0,u(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=wo.reportError(e.previousError,n,u(n)?n._errorEvent:void 0,x),new ue(x)}let c=t.tiles,l=t.maxzoom;if(e.overallMaxZoom=Math.max(e.overallMaxZoom,l),!t.projection||t.projection==="EPSG:4326")e.tilingScheme=new zi({numberOfLevelZeroTilesX:2,numberOfLevelZeroTilesY:1,ellipsoid:e.ellipsoid});else if(t.projection==="EPSG:3857")e.tilingScheme=new qr({numberOfLevelZeroTilesX:1,numberOfLevelZeroTilesY:1,ellipsoid:e.ellipsoid});else{let x=`The projection "${t.projection}" is invalid or not supported.`;throw e.previousError=wo.reportError(e.previousError,n,u(n)?n._errorEvent:void 0,x),new ue(x)}if(e.levelZeroMaximumGeometricError=jr.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=wo.reportError(e.previousError,n,u(n)?n._errorEvent:void 0,x),new ue(x)}let f;u(t.extensions)&&t.extensions.indexOf("octvertexnormals")!==-1?i=!0:u(t.extensions)&&t.extensions.indexOf("vertexnormals")!==-1&&(i=!0,s=!1),u(t.extensions)&&t.extensions.indexOf("watermask")!==-1&&(o=!0),u(t.extensions)&&t.extensions.indexOf("metadata")!==-1&&(r=!0);let d=t.metadataAvailability,p=t.available,g;if(u(p)&&!u(d)){g=new Th(e.tilingScheme,p.length);for(let x=0;x<p.length;++x){let b=p[x],T=e.tilingScheme.getNumberOfYTilesAtLevel(x);u(e.overallAvailability[x])||(e.overallAvailability[x]=[]);for(let A=0;A<b.length;++A){let C=b[A],S=T-C.endY-1,w=T-C.startY-1;e.overallAvailability[x].push([C.startX,S,C.endX,w]),g.addAvailableTileRange(x,C.startX,S,C.endX,w)}}}else u(d)&&(f=new Th(e.tilingScheme,l),g=new Th(e.tilingScheme,l),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,u(t.attribution)&&(e.attribution.length>0&&(e.attribution+=" "),e.attribution+=t.attribution),e.layers.push(new Qmt({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 u(m)?u(g)?(e.lastResource=e.lastResource.getDerivedResource({url:m}),e.lastResource.appendForwardSlash(),e.layerJsonResource=e.lastResource.getDerivedResource({url:"layer.json"}),await HY(e),!0):(console.log("A layer.json can't have a parentUrl if it does't have an available array."),!0):!0}function Jmt(e,t,n){let i=`An error occurred while accessing ${e.layerJsonResource.url}.`;if(u(t)&&(i+=`
  11055. ${t.message}`),e.previousError=wo.reportError(e.previousError,n,u(n)?n._errorEvent:void 0,i),e.previousError.retry)return HY(e,n);throw new ue(i)}async function ept(e,t,n){await cxe(e,t,n);let i=e.overallAvailability.length;if(i>0){let o=e.availability=new Th(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 bt(e.attribution);e.tileCredits.push(o)}return!0}async function HY(e,t){try{let n=await e.layerJsonResource.fetchJson();return ept(e,n,t)}catch(n){return u(n)&&n.statusCode===404?(await cxe(e,{tilejson:"2.1.0",format:"heightmap-1.0",version:"1.0.0",scheme:"tms",tiles:["{z}/{x}/{y}.terrain?v={version}"]},t),!0):Jmt(e,n,t)}}function Ah(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 bt(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 VY={OCT_VERTEX_NORMALS:1,WATER_MASK:2,METADATA:4};function sxe(e){return!u(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 tpt(e,t,n,i,o){let r=new Uint16Array(t,0,e._heightmapWidth*e._heightmapWidth);return new wa({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 npt(e,t,n,i,o,r){let s=r.littleEndianExtensionSize,a=0,c=3,l=c+1,f=Float64Array.BYTES_PER_ELEMENT*c,d=Float64Array.BYTES_PER_ELEMENT*l,p=3,g=Uint16Array.BYTES_PER_ELEMENT*p,m=3,x=Uint16Array.BYTES_PER_ELEMENT,b=x*m,T=new DataView(t),A=new h(T.getFloat64(a,!0),T.getFloat64(a+8,!0),T.getFloat64(a+16,!0));a+=f;let C=T.getFloat32(a,!0);a+=Float32Array.BYTES_PER_ELEMENT;let S=T.getFloat32(a,!0);a+=Float32Array.BYTES_PER_ELEMENT;let w=new se(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 R=new Uint16Array(t,a,O*3);a+=O*g,O>64*1024&&(x=Uint32Array.BYTES_PER_ELEMENT,b=x*m);let L=R.subarray(0,O),N=R.subarray(O,2*O),_=R.subarray(O*2,3*O);qn.zigZagDeltaDecode(L,N,_),a%x!==0&&(a+=x-a%x);let E=T.getUint32(a,!0);a+=Uint32Array.BYTES_PER_ELEMENT;let v=Fe.createTypedArrayFromArrayBuffer(O,t,a,E*m);a+=E*b;let I=0,M=v.length;for(let re=0;re<M;++re){let ye=v[re];v[re]=I-ye,ye===0&&++I}let B=T.getUint32(a,!0);a+=Uint32Array.BYTES_PER_ELEMENT;let V=Fe.createTypedArrayFromArrayBuffer(O,t,a,B);a+=B*x;let U=T.getUint32(a,!0);a+=Uint32Array.BYTES_PER_ELEMENT;let G=Fe.createTypedArrayFromArrayBuffer(O,t,a,U);a+=U*x;let k=T.getUint32(a,!0);a+=Uint32Array.BYTES_PER_ELEMENT;let Y=Fe.createTypedArrayFromArrayBuffer(O,t,a,k);a+=k*x;let j=T.getUint32(a,!0);a+=Uint32Array.BYTES_PER_ELEMENT;let $=Fe.createTypedArrayFromArrayBuffer(O,t,a,j);a+=j*x;let W,K;for(;a<T.byteLength;){let re=T.getUint8(a,!0);a+=Uint8Array.BYTES_PER_ELEMENT;let ye=T.getUint32(a,s);if(a+=Uint32Array.BYTES_PER_ELEMENT,re===VY.OCT_VERTEX_NORMALS&&e._requestVertexNormals)W=new Uint8Array(t,a,O*2);else if(re===VY.WATER_MASK&&e._requestWaterMask)K=new Uint8Array(t,a,ye);else if(re===VY.METADATA&&e._requestMetadata){let ge=T.getUint32(a,!0);if(ge>0){let De=Oo(new Uint8Array(t),a+Uint32Array.BYTES_PER_ELEMENT,ge).available;if(u(De))for(let Re=0;Re<De.length;++Re){let ze=n+Re+1,ut=De[Re],Vt=e._tilingScheme.getNumberOfYTilesAtLevel(ze);for(let cn=0;cn<ut.length;++cn){let ft=ut[cn],_n=Vt-ft.endY-1,Mn=Vt-ft.startY-1;e.availability.addAvailableTileRange(ze,ft.startX,_n,ft.endX,Mn),r.availability.addAvailableTileRange(ze,ft.startX,_n,ft.endX,Mn)}}}r.availabilityTilesLoaded.addAvailableTileRange(n,i,o,i,o)}a+=ye}let Z=e.getLevelMaximumGeometricError(n)*5,me=e._tilingScheme.tileXYToRectangle(i,o,n),xe=In.fromRectangle(me,C,S,e._tilingScheme.ellipsoid);return new AT({center:A,minimumHeight:C,maximumHeight:S,boundingSphere:w,orientedBoundingBox:xe,horizonOcclusionPoint:D,quantizedVertices:R,encodedNormals:W,indices:v,westIndices:V,southIndices:G,eastIndices:Y,northIndices:$,westSkirtHeight:Z,southSkirtHeight:Z,eastSkirtHeight:Z,northSkirtHeight:Z,childTileMask:e.availability.computeChildMaskForTile(n,i,o),waterMask:K,credits:e._tileCredits})}Ah.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 l=0;l<s;++l){let f=o[l];if(!u(f.availability)||f.availability.isTileAvailable(n,e,t)){r=f;break}let d=GY(this,e,t,n,f,l===0);d.result&&(a=!0,c=c.then(()=>d.promise))}return!u(r)&&a?c.then(()=>this.requestTileGeometry(e,t,n,i)):lxe(this,e,t,n,r,i)};function lxe(e,t,n,i,o,r){if(!u(o))return Promise.reject(new ue("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 l,f,d=s[(t+a+i)%s.length],p=o.resource;u(p._ionEndpoint)&&!u(p._ionEndpoint.externalType)?(c.length!==0&&(f={extensions:c.join("-")}),l=sxe(void 0)):l=sxe(c);let g=p.getDerivedResource({url:d,templateValues:{version:o.version,z:i,x:t,y:a},queryParameters:f,headers:l,request:r}).fetchArrayBuffer();if(u(g))return g.then(function(m){return u(m)?u(e._heightmapStructure)?tpt(e,m,i,t,n):npt(e,m,i,t,n,o):Promise.reject(new ue("Mesh buffer doesn't exist."))})}Object.defineProperties(Ah.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}}});Ah.prototype.getLevelMaximumGeometricError=function(e){return this._levelZeroMaximumGeometricError/(1<<e)};Ah.fromIonAssetId=async function(e,t){let n=await ru.fromAssetId(e);return Ah.fromUrl(n,t)};Ah.fromUrl=async function(e,t){t=y(t,y.EMPTY_OBJECT),e=await Promise.resolve(e);let n=ve.createIfNeeded(e);n.appendForwardSlash();let i=new axe(t);i.lastResource=n,i.layerJsonResource=i.lastResource.getDerivedResource({url:"layer.json"}),await HY(i);let o=new Ah(t);return i.build(o),o};Ah.prototype.getTileDataAvailable=function(e,t,n){if(!u(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(GY(this,e,t,n,i[r],r===0).result)return;return!1};Ah.prototype.loadTileDataAvailability=function(e,t,n){if(!u(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=GY(this,e,t,n,i[r],r===0);if(u(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 GY(e,t,n,i,o,r){if(!u(o.availabilityLevels))return{result:!1};let s,a=function(){delete o.availabilityPromiseCache[s]},c=o.availabilityTilesLoaded,l=o.availability,f=zY(o,t,n,i);for(;u(f);){if(l.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],!u(d))){let p=new Go({throttle:!1,throttleByServer:!0,type:Jr.TERRAIN});d=lxe(e,f.x,f.y,f.level,o,p),u(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}}Ah._getAvailabilityTile=zY;var gF=Ah;function X_(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 Wc(n),this._workerName="createCircleGeometry"}X_.packedLength=Wc.packedLength;X_.pack=function(e,t,n){return Wc.pack(e._ellipseGeometry,t,n)};var ipt=new Wc({center:new h,semiMajorAxis:1,semiMinorAxis:1}),yc={center:new h,radius:void 0,ellipsoid:ie.clone(ie.UNIT_SPHERE),height:void 0,extrudedHeight:void 0,granularity:void 0,vertexFormat:new Pe,stRotation:void 0,semiMajorAxis:void 0,semiMinorAxis:void 0,shadowVolume:void 0};X_.unpack=function(e,t,n){let i=Wc.unpack(e,t,ipt);return yc.center=h.clone(i._center,yc.center),yc.ellipsoid=ie.clone(i._ellipsoid,yc.ellipsoid),yc.height=i._height,yc.extrudedHeight=i._extrudedHeight,yc.granularity=i._granularity,yc.vertexFormat=Pe.clone(i._vertexFormat,yc.vertexFormat),yc.stRotation=i._stRotation,yc.shadowVolume=i._shadowVolume,u(n)?(yc.semiMajorAxis=i._semiMajorAxis,yc.semiMinorAxis=i._semiMinorAxis,n._ellipseGeometry=new Wc(yc),n):(yc.radius=i._semiMajorAxis,new X_(yc))};X_.createGeometry=function(e){return Wc.createGeometry(e._ellipseGeometry)};X_.createShadowVolume=function(e,t,n){let i=e._ellipseGeometry._granularity,o=e._ellipseGeometry._ellipsoid,r=t(i,o),s=n(i,o);return new X_({center:e._ellipseGeometry._center,radius:e._ellipseGeometry._semiMajorAxis,ellipsoid:o,stRotation:e._ellipseGeometry._stRotation,granularity:i,extrudedHeight:r,height:s,vertexFormat:Pe.POSITION_ONLY,shadowVolume:!0})};Object.defineProperties(X_.prototype,{rectangle:{get:function(){return this._ellipseGeometry.rectangle}},textureCoordinateRotationPoints:{get:function(){return this._ellipseGeometry.textureCoordinateRotationPoints}}});var WY=X_;function vS(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 xu(n),this._workerName="createCircleOutlineGeometry"}vS.packedLength=xu.packedLength;vS.pack=function(e,t,n){return xu.pack(e._ellipseGeometry,t,n)};var opt=new xu({center:new h,semiMajorAxis:1,semiMinorAxis:1}),ku={center:new h,radius:void 0,ellipsoid:ie.clone(ie.UNIT_SPHERE),height:void 0,extrudedHeight:void 0,granularity:void 0,numberOfVerticalLines:void 0,semiMajorAxis:void 0,semiMinorAxis:void 0};vS.unpack=function(e,t,n){let i=xu.unpack(e,t,opt);return ku.center=h.clone(i._center,ku.center),ku.ellipsoid=ie.clone(i._ellipsoid,ku.ellipsoid),ku.height=i._height,ku.extrudedHeight=i._extrudedHeight,ku.granularity=i._granularity,ku.numberOfVerticalLines=i._numberOfVerticalLines,u(n)?(ku.semiMajorAxis=i._semiMajorAxis,ku.semiMinorAxis=i._semiMinorAxis,n._ellipseGeometry=new xu(ku),n):(ku.radius=i._semiMajorAxis,new vS(ku))};vS.createGeometry=function(e){return xu.createGeometry(e._ellipseGeometry)};var jY=vS;function DS(e){e=y(e,y.EMPTY_OBJECT),this._callback=e.callback,this._tilingScheme=e.tilingScheme,u(this._tilingScheme)||(this._tilingScheme=new zi({ellipsoid:y(e.ellipsoid,ie.WGS84)})),this._width=e.width,this._height=e.height;let t=Math.max(this._width,this._height);this._levelZeroMaximumGeometricError=jr.getEstimatedLevelZeroGeometricErrorForAHeightmap(this._tilingScheme.ellipsoid,t,this._tilingScheme.getNumberOfXTilesAtLevel(0)),this._errorEvent=new pe;let n=e.credit;typeof n=="string"&&(n=new bt(n)),this._credit=n}Object.defineProperties(DS.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}}});DS.prototype.requestTileGeometry=function(e,t,n,i){let o=this._callback(e,t,n);if(!u(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 wa({buffer:c,width:r,height:s})})};DS.prototype.getLevelMaximumGeometricError=function(e){return this._levelZeroMaximumGeometricError/(1<<e)};DS.prototype.getTileDataAvailable=function(e,t,n){};DS.prototype.loadTileDataAvailability=function(e,t,n){};var qY=DS;function uxe(e){this.proxy=e}uxe.prototype.getURL=function(e){let t=this.proxy.indexOf("?")===-1?"?":"";return this.proxy+t+encodeURIComponent(e)};var YY=uxe;function Ch(e){this._comparator=e.comparator,this._maximumLength=e.maximumLength,this._array=u(e.maximumLength)?new Array(e.maximumLength):[],this._length=0}Object.defineProperties(Ch.prototype,{length:{get:function(){return this._length}},maximumLength:{get:function(){return this._maximumLength},set:function(e){if(u(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}}});Ch.prototype.clone=function(){let e=this._maximumLength,t=this._comparator,n=this._array,i=this._length,o=new Ch({comparator:t,maximumLength:e});o._length=i;for(let r=0;r<i;r++)o._array[r]=n[r];return o};Ch.prototype.reset=function(){this._length=0;let e=this._maximumLength;if(u(e))for(let t=0;t<e;t++)this._array[t]=void 0;else this._array.length=0};Ch.prototype.resort=function(){let e=this._length;for(let t=0;t<e;t++)fxe(this,t)};Ch.prototype.insert=function(e){let t,n=this._maximumLength;if(u(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++,fxe(this,i),t};Ch.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],dxe(this,0)),this._array[e-1]=void 0,t};Ch.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=XY(this,1,2)?1:2;t=this._array[n],this._array[n]=this._array[e-1],e>=4&&dxe(this,n)}return this._array[e-1]=void 0,t};Ch.prototype.getMinimum=function(){if(this._length!==0)return this._array[0]};Ch.prototype.getMaximum=function(){let e=this._length;if(e!==0)return e<=2?this._array[e-1]:this._array[XY(this,1,2)?1:2]};function y8(e,t,n){let i=e._array,o=i[t];i[t]=i[n],i[n]=o}function yF(e,t,n){return e._comparator(e._array[t],e._array[n])<0}function XY(e,t,n){return e._comparator(e._array[t],e._array[n])>0}function fxe(e,t){if(t===0)return;let n=Math.floor(P.log2(t+1))%2===0,i=Math.floor((t-1)/2),o=yF(e,t,i);for(o!==n&&(y8(e,t,i),t=i);t>=3;){let r=Math.floor((t-3)/4);if(yF(e,t,r)!==o)break;y8(e,t,r),t=r}}function dxe(e,t){let n=e._length,i=Math.floor(P.log2(t+1))%2===0,o;for(;(o=2*t+1)<n;){let r=o,s=o+1;if(s<n){yF(e,s,r)===i&&(r=s);let a=2*o+1,c=Math.max(Math.min(n-a,4),0);for(let l=0;l<c;l++){let f=a+l;yF(e,f,r)===i&&(r=f)}}if(yF(e,r,t)===i&&(y8(e,r,t),r!==o&&r!==s)){let a=Math.floor((r-1)/2);XY(e,r,a)===i&&y8(e,r,a)}t=r}}var CT=Ch;var rpt={SEARCH:0,AUTOCOMPLETE:1},o0=Object.freeze(rpt);function x8(){de.throwInstantiationError()}Object.defineProperties(x8.prototype,{credit:{get:de.throwInstantiationError}});x8.getCreditsFromResult=function(e){if(u(e.attributions))return e.attributions.map(bt.getIonCredit)};x8.prototype.geocode=de.throwInstantiationError;var IS=x8;function hxe(){de.throwInstantiationError()}hxe.createGeometry=function(e){de.throwInstantiationError()};var KY=hxe;var fpt=ro(ZY(),1);function spt(e,t){return(e&t)!==0}var xc=spt;var apt=[1,2,4,8],mxe=15,cpt=16,lpt=64,upt=128;function zm(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}zm.clone=function(e,t){return u(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 zm(e._bits,e.cnodeVersion,e.imageryVersion,e.terrainVersion,e.imageryProvider,e.terrainProvider),t.ancestorHasTerrain=e.ancestorHasTerrain,t.terrainState=e.terrainState,t};zm.prototype.setParent=function(e){this.ancestorHasTerrain=e.ancestorHasTerrain||this.hasTerrain()};zm.prototype.hasSubtree=function(){return xc(this._bits,cpt)};zm.prototype.hasImagery=function(){return xc(this._bits,lpt)};zm.prototype.hasTerrain=function(){return xc(this._bits,upt)};zm.prototype.hasChildren=function(){return xc(this._bits,mxe)};zm.prototype.hasChild=function(e){return xc(this._bits,apt[e])};zm.prototype.getChildBitmask=function(){return this._bits&mxe};var xF=zm;function dpt(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 hpt=dpt(`E\xF4\xBD\vy\xE2jE"\x92,\xCDq\xF8IFgQ\0B%\xC6\xE8a,f)\b\xC64\xDCjb%y
  11056. 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
  11057. \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
  11058. \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
  11059. ZGM&30x\xDA\xC0\x9CFG\xE2[y\`In7gS
  11060. >\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
  11061. \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 Uu(e){this.imageryPresent=!0,this.protoImagery=void 0,this.terrainPresent=!0,this.negativeAltitudeExponentBias=32,this.negativeAltitudeThreshold=P.EPSILON12,this.providers={},this.key=void 0,this._resource=void 0,this._quadPacketVersion=1,this._tileInfo={},this._subtreePromises={}}Object.defineProperties(Uu.prototype,{url:{get:function(){return this._resource.url}},proxy:{get:function(){return this._resource.proxy}},resource:{get:function(){return this._resource}}});Uu.fromUrl=async function(e){let t=e;typeof t!="string"&&!(t instanceof ve)&&(t=e.url);let n=ve.createIfNeeded(t);n.appendForwardSlash();let i=new Uu;i._resource=n;try{await mpt(i),await i.getQuadTreePacket("",i._quadPacketVersion)}catch(o){let r=`An error occurred while accessing ${_xe(i,"",1).url}: ${o}`;throw new ue(r)}return i};Uu.tileXYToQuadKey=function(e,t,n){let i="";for(let o=n;o>=0;--o){let r=1<<o,s=0;xc(t,r)?xc(e,r)&&(s|=1):(s|=2,xc(e,r)||(s|=1)),i+=s}return i};Uu.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];xc(s,2)?xc(s,1)||(t|=r):(n|=r,xc(s,1)&&(t|=r))}return{x:t,y:n,level:i}};Uu.prototype.isValid=function(e){let t=this.getTileInformationFromQuadKey(e);if(u(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),u(t)){!t.hasSubtree()&&!t.hasChild(parseInt(o))&&(n=!1);break}else if(t===null){n=!1;break}return n};var pxe=new hi("decodeGoogleEarthEnterprisePacket");Uu.prototype.getQuadTreePacket=function(e,t,n){t=y(t,1),e=y(e,"");let o=_xe(this,e,t,n).fetchArrayBuffer();if(!u(o))return;let r=this._tileInfo,s=this.key;return o.then(function(a){return pxe.scheduleTask({buffer:a,quadKey:e,type:"Metadata",key:s},[a]).then(function(l){let f,d=-1;if(e!==""){d=e.length+1;let m=l[e];f=r[e],f._bits|=m._bits,delete l[e]}let p=Object.keys(l);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(l[x]!==null){let T=xF.clone(l[x]),A=x.length;if(A===d)T.setParent(f);else if(A>1){let C=r[x.substring(0,x.length-1)];T.setParent(C)}r[x]=T}else r[x]=null}})})};Uu.prototype.populateSubtree=function(e,t,n,i){let o=Uu.tileXYToQuadKey(e,t,n);return JY(this,o,i)};function JY(e,t,n){let i=e._tileInfo,o=t,r=i[o];if(u(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(u(c))return c.then(function(){return s=new Go({throttle:n.throttle,throttleByServer:n.throttleByServer,type:n.type,priorityFunction:n.priorityFunction}),JY(e,t,s)});if(!u(r)||!r.hasSubtree())return Promise.reject(new ue(`Couldn't load metadata for tile ${t}`));if(c=e.getQuadTreePacket(o,r.cnodeVersion,n),!!u(c))return a[o]=c,c.then(function(){return s=new Go({throttle:n.throttle,throttleByServer:n.throttleByServer,type:n.type,priorityFunction:n.priorityFunction}),JY(e,t,s)}).finally(function(){delete a[o]})}Uu.prototype.getTileInformation=function(e,t,n){let i=Uu.tileXYToQuadKey(e,t,n);return this._tileInfo[i]};Uu.prototype.getTileInformationFromQuadKey=function(e){return this._tileInfo[e]};function _xe(e,t,n,i){return e._resource.getDerivedResource({url:`flatfile?q2-0${t}-q.${n.toString()}`,request:i})}var $Y,QY;function mpt(e){let t=e._resource.getDerivedResource({url:"dbRoot.v5",queryParameters:{output:"proto"}});if(!u(QY)){let n=Zt("ThirdParty/google-earth-dbroot-parser.js"),i=window.cesiumGoogleEarthDbRootParser;QY=v0(n).then(function(){$Y=window.cesiumGoogleEarthDbRootParser(fpt),u(i)?window.cesiumGoogleEarthDbRootParser=i:delete window.cesiumGoogleEarthDbRootParser})}return QY.then(function(){return t.fetchArrayBuffer()}).then(function(n){let i=$Y.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 pxe.scheduleTask({buffer:c,type:"DbRoot",key:a},[c])}).then(function(n){let i=$Y.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),u(i.endSnippet)&&u(i.endSnippet.model)){let a=i.endSnippet.model;e.negativeAltitudeExponentBias=y(a.negativeAltitudeExponentBias,e.negativeAltitudeExponentBias),e.negativeAltitudeThreshold=y(a.compressedNegativeAltitudeThreshold,e.negativeAltitudeThreshold)}u(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],l=c.copyrightString;u(l)&&(o[c.providerId]=new bt(l.value))}}).catch(function(){console.log(`Failed to retrieve ${t.url}. Using defaults.`),e.key=hpt})}var K_=Uu;function ET(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(ET.prototype,{credits:{get:function(){return this._credits}},waterMask:{get:function(){}}});var xxe="createVerticesFromGoogleEarthEnterpriseBuffer",ppt=new hi(xxe),_pt=new hi(xxe,dh.maximumAsynchronousTasks),gxe=new ce,eX=new ce;ET.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,gxe),t.tileXYToRectangle(n,i,o,eX);let l=c.cartographicToCartesian(ce.center(eX)),d=40075.16/(1<<o);this._skirtHeight=Math.min(d*8,1e3);let g=(a?_pt:ppt).scheduleTask({buffer:this._buffer,nativeRectangle:gxe,rectangle:eX,relativeToCenter:l,ellipsoid:c,skirtHeight:this._skirtHeight,exaggeration:r,exaggerationRelativeHeight:s,includeWebMercatorT:!0,negativeAltitudeExponentBias:this._negativeAltitudeExponentBias,negativeElevationThreshold:this._negativeElevationThreshold});if(!u(g))return;let m=this;return g.then(function(x){return m._mesh=new Hf(l,new Float32Array(x.vertices),new Uint16Array(x.indices),x.indexCountWithoutSkirts,x.vertexCountWithoutSkirts,x.minimumHeight,x.maximumHeight,se.clone(x.boundingSphere3D),h.clone(x.occludeePointInScaledSpace),x.numberOfAttributes,In.clone(x.orientedBoundingBox),dc.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})};ET.prototype.interpolateHeight=function(e,t,n){let i=P.clamp((t-e.west)/e.width,0,1),o=P.clamp((n-e.south)/e.height,0,1);return u(this._mesh)?Tpt(this,i,o):Ept(this,i,o,e)};var gpt=new hi("upsampleQuantizedTerrainMesh",dh.maximumAsynchronousTasks);ET.prototype.upsample=function(e,t,n,i,o,r,s){let a=this._mesh;if(!u(this._mesh))return;let c=t*2!==o,l=n*2===r,f=e.ellipsoid,d=e.tileXYToRectangle(o,r,s),p=gpt.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:l,childRectangle:d,ellipsoid:f});if(!u(p))return;let g=this;return p.then(function(m){let x=new Uint16Array(m.vertices),b=Fe.createTypedArray(x.length/3,m.indices),T=g._skirtHeight;return new AT({quantizedVertices:x,indices:b,minimumHeight:m.minimumHeight,maximumHeight:m.maximumHeight,boundingSphere:se.clone(m.boundingSphere),orientedBoundingBox:In.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})})};ET.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};ET.prototype.wasCreatedByUpsampling=function(){return this._createdByUpsampling};var ypt=new z,xpt=new z,bpt=new z,bxe=new h;function Tpt(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 l=s[a],f=s[a+1],d=s[a+2],p=r.decodeTextureCoordinates(o,l,ypt),g=r.decodeTextureCoordinates(o,f,xpt),m=r.decodeTextureCoordinates(o,d,bpt),x=Y_.computeBarycentricCoordinates(t,n,p.x,p.y,g.x,g.y,m.x,m.y,bxe);if(x.x>=-1e-15&&x.y>=-1e-15&&x.z>=-1e-15){let b=r.decodeHeight(o,l),T=r.decodeHeight(o,f),A=r.decodeHeight(o,d);return x.x*b+x.y*T+x.z*A}}}var Apt=Uint16Array.BYTES_PER_ELEMENT,yxe=Uint32Array.BYTES_PER_ELEMENT,tX=Int32Array.BYTES_PER_ELEMENT,Cpt=Float32Array.BYTES_PER_ELEMENT,nX=Float64Array.BYTES_PER_ELEMENT;function Ept(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),l=0;for(let w=0;w<r;++w)l+=c.getUint32(l,!0),l+=yxe;l+=yxe,l+=2*nX;let f=P.toRadians(c.getFloat64(l,!0)*180);l+=nX;let d=P.toRadians(c.getFloat64(l,!0)*180);l+=nX;let p=i.width/f/2,g=i.height/d/2,m=c.getInt32(l,!0);l+=tX;let x=c.getInt32(l,!0)*3;l+=tX,l+=tX;let b=new Array(m),T=new Array(m),A=new Array(m),C;for(C=0;C<m;++C)b[C]=s+c.getUint8(l++)*p,T[C]=a+c.getUint8(l++)*g,A[C]=c.getFloat32(l,!0)*6371010,l+=Cpt;let S=new Array(x);for(C=0;C<x;++C)S[C]=c.getUint16(l,!0),l+=Apt;for(C=0;C<x;C+=3){let w=S[C],D=S[C+1],O=S[C+2],R=b[w],L=b[D],N=b[O],_=T[w],E=T[D],v=T[O],I=Y_.computeBarycentricCoordinates(t,n,R,_,L,E,N,v,bxe);if(I.x>=-1e-15&&I.y>=-1e-15&&I.z>=-1e-15)return I.x*A[w]+I.y*A[D]+I.z*A[O]}}var PS=ET;var $f={UNKNOWN:0,NONE:1,SELF:2,PARENT:3},b8=new J;function T8(){this._terrainCache={},this._lastTidy=J.now()}T8.prototype.add=function(e,t){this._terrainCache[e]={buffer:t,timestamp:J.now()}};T8.prototype.get=function(e){let n=this._terrainCache[e];if(u(n))return delete this._terrainCache[e],n.buffer};T8.prototype.tidy=function(){if(J.now(b8),J.secondsDifference(b8,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(b8,r.timestamp)>10&&delete e[o]}J.clone(b8,this._lastTidy)}};function r0(e){e=y(e,y.EMPTY_OBJECT),this._tilingScheme=new zi({numberOfLevelZeroTilesX:2,numberOfLevelZeroTilesY:2,rectangle:new ce(-P.PI,-P.PI,P.PI,P.PI),ellipsoid:e.ellipsoid});let t=e.credit;typeof t=="string"&&(t=new bt(t)),this._credit=t,this._levelZeroMaximumGeometricError=40075.16,this._terrainCache=new T8,this._terrainPromises={},this._terrainRequests={},this._errorEvent=new pe}Object.defineProperties(r0.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(){}}});r0.fromMetadata=function(e,t){if(!e.terrainPresent)throw new ue(`The server ${e.url} doesn't have terrain`);let n=new r0(t);return n._metadata=e,n};var Spt=new hi("decodeGoogleEarthEnterprisePacket");function Txe(e,t,n){let i=t.getChildBitmask();if(t.terrainState===$f.PARENT){i=0;for(let o=0;o<4;++o){let r=n.getTileInformationFromQuadKey(e+o.toString());u(r)&&r.hasTerrain()&&(i|=1<<o)}}return i}r0.prototype.requestTileGeometry=function(e,t,n,i){let o=K_.tileXYToQuadKey(e,t,n),r=this._terrainCache,s=this._metadata,a=s.getTileInformationFromQuadKey(o);if(!u(a))return Promise.reject(new ue("Terrain tile doesn't exist"));let c=a.terrainState;u(c)||(c=a.terrainState=$f.UNKNOWN);let l=r.get(o);if(u(l)){let T=s.providers[a.terrainProvider];return Promise.resolve(new PS({buffer:l,childTileMask:Txe(o,a,s),credits:u(T)?[T]:void 0,negativeAltitudeExponentBias:s.negativeAltitudeExponentBias,negativeElevationThreshold:s.negativeAltitudeThreshold}))}if(r.tidy(),a.ancestorHasTerrain){if(c===$f.NONE)return Promise.reject(new ue("Terrain tile doesn't exist"))}else return Promise.resolve(new wa({buffer:new Uint8Array(16*16),width:16,height:16}));let f,d=o,p=-1;switch(c){case $f.SELF:p=a.terrainVersion;break;case $f.PARENT:d=d.substring(0,d.length-1),f=s.getTileInformationFromQuadKey(d),p=f.terrainVersion;break;case $f.UNKNOWN:a.hasTerrain()?p=a.terrainVersion:(d=d.substring(0,d.length-1),f=s.getTileInformationFromQuadKey(d),u(f)&&f.hasTerrain()&&(p=f.terrainVersion));break}if(p<0)return Promise.reject(new ue("Terrain tile doesn't exist"));let g=this._terrainPromises,m=this._terrainRequests,x,b;if(u(g[d]))x=g[d],b=m[d];else{b=i;let T=wpt(this,d,p,b).fetchArrayBuffer();if(!u(T))return;x=T.then(function(A){return u(A)?Spt.scheduleTask({buffer:A,type:"Terrain",key:s.key},[A]).then(function(C){let S=s.getTileInformationFromQuadKey(d);S.terrainState=$f.SELF,r.add(d,C[0]);let w=S.terrainProvider,D=C.length-1;for(let O=0;O<D;++O){let R=d+O.toString(),L=s.getTileInformationFromQuadKey(R);u(L)&&(r.add(R,C[O+1]),L.terrainState=$f.PARENT,L.terrainProvider===0&&(L.terrainProvider=w))}}):Promise.reject(new ue("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(u(T)){let A=s.providers[a.terrainProvider];return new PS({buffer:T,childTileMask:Txe(o,a,s),credits:u(A)?[A]:void 0,negativeAltitudeExponentBias:s.negativeAltitudeExponentBias,negativeElevationThreshold:s.negativeAltitudeThreshold})}return Promise.reject(new ue("Failed to load terrain."))}).catch(function(T){return b.state===Jn.CANCELLED?(i.state=b.state,Promise.reject(T)):(a.terrainState=$f.NONE,Promise.reject(T))})};r0.prototype.getLevelMaximumGeometricError=function(e){return this._levelZeroMaximumGeometricError/(1<<e)};r0.prototype.getTileDataAvailable=function(e,t,n){let i=this._metadata,o=K_.tileXYToQuadKey(e,t,n),r=i.getTileInformation(e,t,n);if(r===null)return!1;if(u(r)){if(!r.ancestorHasTerrain)return!0;let s=r.terrainState;if(s===$f.NONE)return!1;if((!u(s)||s===$f.UNKNOWN)&&(r.terrainState=$f.UNKNOWN,!r.hasTerrain())){o=o.substring(0,o.length-1);let a=i.getTileInformationFromQuadKey(o);if(!u(a)||!a.hasTerrain())return!1}return!0}if(i.isValid(o)){let s=new Go({throttle:!1,throttleByServer:!0,type:Jr.TERRAIN});i.populateSubtree(e,t,n,s)}return!1};r0.prototype.loadTileDataAvailability=function(e,t,n){};function wpt(e,t,n,i){return n=u(n)&&n>0?n:1,e._metadata.resource.getDerivedResource({url:`flatfile?f1c-0${t}-t.${n.toString()}`,request:i})}var iX=r0;var A8={};A8.defaultApiKey=void 0;A8.mapTilesApiEndpoint=new ve({url:"https://tile.googleapis.com/v1/"});A8.getDefaultCredit=function(){return new bt('<img src="https://assets.ion-development.cesium.com/google-credit.png" alt="Google">',!0)};var ST=A8;var bF={};bF.type=void 0;bF.getRequiredDataPoints=de.throwInstantiationError;bF.interpolateOrderZero=de.throwInstantiationError;bF.interpolate=de.throwInstantiationError;var oX=bF;function rX(e){this._url=ve.createIfNeeded(e),this._url.appendForwardSlash()}Object.defineProperties(rX.prototype,{url:{get:function(){return this._url}},credit:{get:function(){}}});rX.prototype.geocode=async function(e,t){return this._url.getDerivedResource({url:t===o0.AUTOCOMPLETE?"autocomplete":"search",queryParameters:{text:e}}).fetchJson().then(function(i){return i.features.map(function(o){let r,s=o.bbox;if(u(s))r=ce.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 TF=rX;function sX(e){e=y(e,y.EMPTY_OBJECT);let t=y(e.accessToken,Ad.defaultAccessToken),n=ve.createIfNeeded(y(e.server,Ad.defaultServer));n.appendForwardSlash();let i=Ad.getDefaultTokenCredit(t);u(i)&&e.scene.frameState.creditDisplay.addStaticCredit(bt.clone(i));let o=n.getDerivedResource({url:"v1/geocode"});u(t)&&o.appendQueryParameters({access_token:t}),this._accessToken=t,this._server=n,this._pelias=new TF(o)}Object.defineProperties(sX.prototype,{credit:{get:function(){}}});sX.prototype.geocode=async function(e,t){return this._pelias.geocode(e,t)};var AF=sX;function C8(){de.throwInstantiationError()}Object.defineProperties(C8.prototype,{ellipsoid:{get:de.throwInstantiationError}});C8.prototype.project=de.throwInstantiationError;C8.prototype.unproject=de.throwInstantiationError;var aX=C8;function OS(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(OS.prototype,{times:{get:function(){return this._times}},weights:{get:function(){return this._weights}}});OS.prototype.findTimeInterval=oo.prototype.findTimeInterval;OS.prototype.wrapTime=oo.prototype.wrapTime;OS.prototype.clampTime=oo.prototype.clampTime;OS.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]);u(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 cX=OS;function lX(e,t,n){e=ve.createIfNeeded(e),e.appendForwardSlash(),e.setQueryParameters({key:t}),this._url=e,this._params=y(n,{}),this._credit=new bt('Geodata copyright <a href="https://www.openstreetmap.org/">OpenStreetMap</a> contributors',!1)}Object.defineProperties(lX.prototype,{url:{get:function(){return this._url}},params:{get:function(){return this._params}},credit:{get:function(){return this._credit}}});lX.prototype.geocode=async function(e){return this._url.getDerivedResource({url:"json",queryParameters:gt(this._params,{q:e})}).fetchJson().then(function(n){return n.results.map(function(i){let o,r=i.bounds;if(u(r))o=ce.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 uX=lX;var vpt={packedLength:void 0,pack:de.throwInstantiationError,unpack:de.throwInstantiationError},fX=vpt;var Dpt={packedInterpolationLength:void 0,convertPackedArrayForInterpolation:de.throwInstantiationError,unpackInterpolationResult:de.throwInstantiationError},dX=Dpt;function Axe(){de.throwInstantiationError()}Axe.prototype.getURL=de.throwInstantiationError;var hX=Axe;function Ipt(e,t,n,i,o,r,s){let a=Ii.numberOfPoints(e,t,o),c,l=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(l),r[s++]=H.floatToByte(f),r[s++]=H.floatToByte(d),r[s++]=H.floatToByte(p);return s}let T=(g-l)/a,A=(m-f)/a,C=(x-d)/a,S=(b-p)/a,w=s;for(c=0;c<a;c++)r[w++]=H.floatToByte(l+c*T),r[w++]=H.floatToByte(f+c*A),r[w++]=H.floatToByte(d+c*C),r[w++]=H.floatToByte(p+c*S);return w}function CF(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,P.RADIANS_PER_DEGREE),this._ellipsoid=y(e.ellipsoid,ie.WGS84),this._workerName="createSimplePolylineGeometry";let o=1+t.length*h.packedLength;o+=u(n)?1+n.length*H.packedLength:1,this.packedLength=o+ie.packedLength+3}CF.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=u(s)?s.length:0,t[n++]=r,i=0;i<r;++i,n+=H.packedLength)H.pack(s[i],t,n);return ie.pack(e._ellipsoid,t,n),n+=ie.packedLength,t[n++]=e._colorsPerVertex?1:0,t[n++]=e._arcType,t[n]=e._granularity,t};CF.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=ie.unpack(e,t);t+=ie.packedLength;let c=e[t++]===1,l=e[t++],f=e[t];return u(n)?(n._positions=r,n._colors=s,n._ellipsoid=a,n._colorsPerVertex=c,n._arcType=l,n._granularity=f,n):new CF({positions:r,colors:s,ellipsoid:a,colorsPerVertex:c,arcType:l,granularity:f})};var E8=new Array(2),S8=new Array(2),Ppt={positions:E8,height:S8,ellipsoid:void 0,minDistance:void 0,granularity:void 0};CF.createGeometry=function(e){let t=e._positions,n=e._colors,i=e._colorsPerVertex,o=e._arcType,r=e._granularity,s=e._ellipsoid,a=P.chordLength(r,s.maximumRadius),c=u(n)&&!i,l,f=t.length,d,p,g,m,x=0;if(o===qt.GEODESIC||o===qt.RHUMB){let S,w,D;o===qt.GEODESIC?(S=P.chordLength(r,s.maximumRadius),w=Ii.numberOfPoints,D=Ii.generateArc):(S=r,w=Ii.numberOfPointsRhumbLine,D=Ii.generateRhumbArc);let O=Ii.extractHeights(t,s),R=Ppt;if(o===qt.GEODESIC?R.minDistance=a:R.granularity=r,R.ellipsoid=s,c){let L=0;for(l=0;l<f-1;l++)L+=w(t[l],t[l+1],S)+1;d=new Float64Array(L*3),g=new Uint8Array(L*4),R.positions=E8,R.height=S8;let N=0;for(l=0;l<f-1;++l){E8[0]=t[l],E8[1]=t[l+1],S8[0]=O[l],S8[1]=O[l+1];let _=D(R);if(u(n)){let E=_.length/3;m=n[l];for(let v=0;v<E;++v)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(R.positions=t,R.height=O,d=new Float64Array(D(R)),u(n)){for(g=new Uint8Array(d.length/3*4),l=0;l<f-1;++l){let N=t[l],_=t[l+1],E=n[l],v=n[l+1];x=Ipt(N,_,E,v,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=u(n)?new Uint8Array(p*4):void 0;let S=0,w=0;for(l=0;l<f;++l){let D=t[l];if(c&&l>0&&(h.pack(D,d,S),S+=3,m=n[l-1],g[w++]=H.floatToByte(m.red),g[w++]=H.floatToByte(m.green),g[w++]=H.floatToByte(m.blue),g[w++]=H.floatToByte(m.alpha)),c&&l===f-1)break;h.pack(D,d,S),S+=3,u(n)&&(m=n[l],g[w++]=H.floatToByte(m.red),g[w++]=H.floatToByte(m.green),g[w++]=H.floatToByte(m.blue),g[w++]=H.floatToByte(m.alpha))}}let b=new fn;b.position=new we({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:d}),u(n)&&(b.color=new we({componentDatatype:X.UNSIGNED_BYTE,componentsPerAttribute:4,values:g,normalize:!0})),p=d.length/3;let T=(p-1)*2,A=Fe.createTypedArray(p,T),C=0;for(l=0;l<p-1;++l)A[C++]=l,A[C++]=l+1;return new st({attributes:b,indices:A,primitiveType:Me.LINES,boundingSphere:se.fromPoints(t)})};var mX=CF;function RS(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 Ns(i),this._workerName="createSphereGeometry"}RS.packedLength=Ns.packedLength;RS.pack=function(e,t,n){return Ns.pack(e._ellipsoidGeometry,t,n)};var Opt=new Ns,s0={radius:void 0,radii:new h,vertexFormat:new Pe,stackPartitions:void 0,slicePartitions:void 0};RS.unpack=function(e,t,n){let i=Ns.unpack(e,t,Opt);return s0.vertexFormat=Pe.clone(i._vertexFormat,s0.vertexFormat),s0.stackPartitions=i._stackPartitions,s0.slicePartitions=i._slicePartitions,u(n)?(h.clone(i._radii,s0.radii),n._ellipsoidGeometry=new Ns(s0),n):(s0.radius=i._radii.x,new RS(s0))};RS.createGeometry=function(e){return Ns.createGeometry(e._ellipsoidGeometry)};var pX=RS;function a0(e){}Object.defineProperties(a0.prototype,{ellipsoid:{get:de.throwInstantiationError},rectangle:{get:de.throwInstantiationError},projection:{get:de.throwInstantiationError}});a0.prototype.getNumberOfXTilesAtLevel=de.throwInstantiationError;a0.prototype.getNumberOfYTilesAtLevel=de.throwInstantiationError;a0.prototype.rectangleToNativeRectangle=de.throwInstantiationError;a0.prototype.tileXYToNativeRectangle=de.throwInstantiationError;a0.prototype.tileXYToRectangle=de.throwInstantiationError;a0.prototype.positionToTileXY=de.throwInstantiationError;var _X=a0;function Rpt(e,t){this.rectangle=e,this.maxLevel=t}function Cxe(e){this.ellipsoid=y(e.ellipsoid,ie.WGS84),this.tilingScheme=void 0,this.heightmapWidth=void 0,this.heightmapHeight=void 0,this.levelZeroMaximumGeometricError=void 0,this.rectangles=[]}Cxe.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 Mpt(e,t){let n=t.getElementsByTagName("SRS")[0].textContent;if(n==="EPSG:4326")e.tilingScheme=new zi({ellipsoid:e.ellipsoid});else throw new ue(`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=jr.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=P.toRadians(parseFloat(s.getAttribute("minx"))),c=P.toRadians(parseFloat(s.getAttribute("miny"))),l=P.toRadians(parseFloat(s.getAttribute("maxx"))),f=P.toRadians(parseFloat(s.getAttribute("maxy"))),d=parseInt(s.getAttribute("maxlevel"),10);e.rectangles.push(new Rpt(new ce(a,c,l,f),d))}}function Lpt(e,t,n){let i=`An error occurred while accessing ${e.url}`;throw u(t)&&u(t.message)&&(i=`${i}: ${t.message}`),wo.reportError(void 0,n,u(n)?n._errorEvent:void 0,i),new ue(i)}async function Npt(e,t,n){try{let i=await t.fetchXML();Mpt(e,i)}catch(i){Lpt(t,i,n)}}function c0(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 bt(t)),this._credit=t,this._tilingScheme=void 0,this._rectangles=[]}Object.defineProperties(c0.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(){}}});c0.fromUrl=async function(e,t){t=y(t,y.EMPTY_OBJECT);let n=new Cxe(t),i=ve.createIfNeeded(e);await Npt(n,i);let o=new c0(t);return n.build(o),o._resource=i,o};c0.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(!u(s))return;let a=this;return Promise.resolve(s).then(function(c){return new wa({buffer:ad(c),width:a._heightmapWidth,height:a._heightmapHeight,childTileMask:Fpt(a,e,t,n),structure:a._terrainDataStructure})})};c0.prototype.getLevelMaximumGeometricError=function(e){return this._levelZeroMaximumGeometricError/(1<<e)};var Exe=new ce;function Fpt(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 l=r[c];if(l.maxLevel<=i)continue;let f=l.rectangle,d=ce.intersection(f,s,Exe);u(d)&&(w8(o,f,t*2,n*2,i+1)&&(a|=4),w8(o,f,t*2+1,n*2,i+1)&&(a|=8),w8(o,f,t*2,n*2+1,i+1)&&(a|=1),w8(o,f,t*2+1,n*2+1,i+1)&&(a|=2))}return a}function w8(e,t,n,i,o){let r=e.tileXYToRectangle(n,i,o);return u(ce.intersection(r,t,Exe))}c0.prototype.getTileDataAvailable=function(e,t,n){};c0.prototype.loadTileDataAvailability=function(e,t,n){};var gX=c0;function wT(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,Ve.MINIMUM_VALUE),this.tolerance=y(e.tolerance,1),this._seeking=!1,this._seekFunction=void 0,this._firstTickAfterSeek=!1}Object.defineProperties(wT.prototype,{clock:{get:function(){return this._clock},set:function(e){let t=this._clock;t!==e&&(u(t)&&(this._clockSubscription(),this._clockSubscription=void 0),u(e)&&(this._clockSubscription=e.onTick.addEventListener(wT.prototype._onTick,this)),this._clock=e)}},element:{get:function(){return this._element},set:function(e){let t=this._element;t!==e&&(u(t)&&t.removeEventListener("seeked",this._seekFunction,!1),u(e)&&(this._seeking=!1,this._seekFunction=Bpt(this),e.addEventListener("seeked",this._seekFunction,!1)),this._element=e,this._seeking=!1,this._firstTickAfterSeek=!1)}}});wT.prototype.destroy=function(){return this.element=void 0,this.clock=void 0,le(this)};wT.prototype.isDestroyed=function(){return!1};wT.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};wT.prototype._onTick=function(e){let t=this._element;if(!u(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,Ve.MINIMUM_VALUE),s=J.secondsDifference(o,r),a=t.duration,c,l=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-l)>f&&(this._seeking=!0,t.currentTime=c)};function Bpt(e){return function(){e._seeking=!1,e._firstTickAfterSeek=!0}}var yX=wT;var kpt={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},xX=Object.freeze(kpt);function Upt(e){return e=y(e,y.EMPTY_OBJECT),gF.fromIonAssetId(1,{requestVertexNormals:y(e.requestVertexNormals,!1),requestWaterMask:y(e.requestWaterMask,!1)})}var vT=Upt;var Vpt=1953029805,zpt=2917034100;function bX(e,t){if(bX.passThroughDataForTesting)return t;let n=e.byteLength;if(n===0||n%4!==0)throw new ue("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===Vpt||o===zpt)return t;let r=new DataView(e),s=0,a=t.byteLength,c=a-a%8,l=n,f,d=8;for(;s<c;)for(d=(d+8)%24,f=d;s<c&&f<l;)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>=l&&(d=(d+8)%24,f=d);s<a;)i.setUint8(s,i.getUint8(s)^r.getUint8(f)),s++,f++}bX.passThroughDataForTesting=!1;var EF=bX;function Hpt(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 SF=Hpt;var Gpt=new h;function Wpt(e,t,n,i){let o=W0(e,t,n,i,Gpt);return u(o)?o.x>0&&o.y>0&&o.z>0:!1}var TX=Wpt;function jpt(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 AX=jpt;function qpt(e,t,n){return function(){n.apply(e,arguments),t.apply(e,arguments)}}var wF=qpt;var Ypt=new h(1,1,1);function CX(e){e=y(e,Ypt),this._dimensions=h.clone(e)}Object.defineProperties(CX.prototype,{dimensions:{get:function(){return this._dimensions},set:function(e){h.clone(e,this._dimensions)}}});var Xpt=new h;CX.prototype.emit=function(e){let t=this._dimensions,n=h.multiplyByScalar(t,.5,Xpt),i=P.randomBetween(-n.x,n.x),o=P.randomBetween(-n.y,n.y),r=P.randomBetween(-n.z,n.z);e.position=h.fromElements(i,o,r,e.position),e.velocity=h.normalize(e.position,e.velocity)};var EX=CX;function Z_(){this.featurePropertiesDirty=!1}Object.defineProperties(Z_.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()}}});Z_.prototype.hasProperty=function(e,t){de.throwInstantiationError()};Z_.prototype.getFeature=function(e){de.throwInstantiationError()};Z_.prototype.applyDebugSettings=function(e,t){de.throwInstantiationError()};Z_.prototype.applyStyle=function(e){de.throwInstantiationError()};Z_.prototype.update=function(e,t){de.throwInstantiationError()};Z_.prototype.isDestroyed=function(){de.throwInstantiationError()};Z_.prototype.destroy=function(){de.throwInstantiationError()};var SX=Z_;function MS(e,t){this._conditionsExpression=He(e,!0),this._conditions=e.conditions,this._runtimeConditions=void 0,Zpt(this,t)}Object.defineProperties(MS.prototype,{conditionsExpression:{get:function(){return this._conditionsExpression}}});function Kpt(e,t){this.condition=e,this.expression=t}function Zpt(e,t){let n=[],i=e._conditions;if(!u(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 Kpt(new sf(a,t),new sf(c,t)))}e._runtimeConditions=n}MS.prototype.evaluate=function(e,t){let n=this._runtimeConditions;if(!u(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)}};MS.prototype.evaluateColor=function(e,t){let n=this._runtimeConditions;if(!u(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)}};MS.prototype.getShaderFunction=function(e,t,n,i){let o=this._runtimeConditions;if(!u(o)||o.length===0)return;let r="",s=o.length;for(let a=0;a<s;++a){let c=o[a],l=c.condition.getShaderExpression(t,n),f=c.expression.getShaderExpression(t,n);r+=` ${a===0?"if":"else if"} (${l})
  11062. {
  11063. return ${f};
  11064. }
  11065. `}return r=`${i} ${e}
  11066. {
  11067. ${r} return ${i}(1.0);
  11068. }
  11069. `,r};MS.prototype.getVariables=function(){let e=[],t=this._runtimeConditions;if(!u(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 vF=MS;function l0(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,$pt(this,e)}function $pt(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(u(t.meta)){let i=t.defines,o=y(t.meta,y.EMPTY_OBJECT);for(let r in o)o.hasOwnProperty(r)&&(n[r]=new sf(o[r],i))}e._meta=n,e._ready=!0}function er(e,t){let n=y(e._style,y.EMPTY_OBJECT).defines;if(u(t)){if(typeof t=="boolean"||typeof t=="number")return new sf(String(t));if(typeof t=="string")return new sf(t,n);if(u(t.conditions))return new vF(t,n)}else return;return t}function tr(e){if(u(e)){if(u(e.expression))return e.expression;if(u(e.conditionsExpression))return He(e.conditionsExpression,!0)}else return;return e}Object.defineProperties(l0.prototype,{style:{get:function(){return this._style}},show:{get:function(){return this._show},set:function(e){this._show=er(this,e),this._style.show=tr(this._show),this._showShaderFunctionReady=!1}},color:{get:function(){return this._color},set:function(e){this._color=er(this,e),this._style.color=tr(this._color),this._colorShaderFunctionReady=!1}},pointSize:{get:function(){return this._pointSize},set:function(e){this._pointSize=er(this,e),this._style.pointSize=tr(this._pointSize),this._pointSizeShaderFunctionReady=!1}},pointOutlineColor:{get:function(){return this._pointOutlineColor},set:function(e){this._pointOutlineColor=er(this,e),this._style.pointOutlineColor=tr(this._pointOutlineColor)}},pointOutlineWidth:{get:function(){return this._pointOutlineWidth},set:function(e){this._pointOutlineWidth=er(this,e),this._style.pointOutlineWidth=tr(this._pointOutlineWidth)}},labelColor:{get:function(){return this._labelColor},set:function(e){this._labelColor=er(this,e),this._style.labelColor=tr(this._labelColor)}},labelOutlineColor:{get:function(){return this._labelOutlineColor},set:function(e){this._labelOutlineColor=er(this,e),this._style.labelOutlineColor=tr(this._labelOutlineColor)}},labelOutlineWidth:{get:function(){return this._labelOutlineWidth},set:function(e){this._labelOutlineWidth=er(this,e),this._style.labelOutlineWidth=tr(this._labelOutlineWidth)}},font:{get:function(){return this._font},set:function(e){this._font=er(this,e),this._style.font=tr(this._font)}},labelStyle:{get:function(){return this._labelStyle},set:function(e){this._labelStyle=er(this,e),this._style.labelStyle=tr(this._labelStyle)}},labelText:{get:function(){return this._labelText},set:function(e){this._labelText=er(this,e),this._style.labelText=tr(this._labelText)}},backgroundColor:{get:function(){return this._backgroundColor},set:function(e){this._backgroundColor=er(this,e),this._style.backgroundColor=tr(this._backgroundColor)}},backgroundPadding:{get:function(){return this._backgroundPadding},set:function(e){this._backgroundPadding=er(this,e),this._style.backgroundPadding=tr(this._backgroundPadding)}},backgroundEnabled:{get:function(){return this._backgroundEnabled},set:function(e){this._backgroundEnabled=er(this,e),this._style.backgroundEnabled=tr(this._backgroundEnabled)}},scaleByDistance:{get:function(){return this._scaleByDistance},set:function(e){this._scaleByDistance=er(this,e),this._style.scaleByDistance=tr(this._scaleByDistance)}},translucencyByDistance:{get:function(){return this._translucencyByDistance},set:function(e){this._translucencyByDistance=er(this,e),this._style.translucencyByDistance=tr(this._translucencyByDistance)}},distanceDisplayCondition:{get:function(){return this._distanceDisplayCondition},set:function(e){this._distanceDisplayCondition=er(this,e),this._style.distanceDisplayCondition=tr(this._distanceDisplayCondition)}},heightOffset:{get:function(){return this._heightOffset},set:function(e){this._heightOffset=er(this,e),this._style.heightOffset=tr(this._heightOffset)}},anchorLineEnabled:{get:function(){return this._anchorLineEnabled},set:function(e){this._anchorLineEnabled=er(this,e),this._style.anchorLineEnabled=tr(this._anchorLineEnabled)}},anchorLineColor:{get:function(){return this._anchorLineColor},set:function(e){this._anchorLineColor=er(this,e),this._style.anchorLineColor=tr(this._anchorLineColor)}},image:{get:function(){return this._image},set:function(e){this._image=er(this,e),this._style.image=tr(this._image)}},disableDepthTestDistance:{get:function(){return this._disableDepthTestDistance},set:function(e){this._disableDepthTestDistance=er(this,e),this._style.disableDepthTestDistance=tr(this._disableDepthTestDistance)}},horizontalOrigin:{get:function(){return this._horizontalOrigin},set:function(e){this._horizontalOrigin=er(this,e),this._style.horizontalOrigin=tr(this._horizontalOrigin)}},verticalOrigin:{get:function(){return this._verticalOrigin},set:function(e){this._verticalOrigin=er(this,e),this._style.verticalOrigin=tr(this._verticalOrigin)}},labelHorizontalOrigin:{get:function(){return this._labelHorizontalOrigin},set:function(e){this._labelHorizontalOrigin=er(this,e),this._style.labelHorizontalOrigin=tr(this._labelHorizontalOrigin)}},labelVerticalOrigin:{get:function(){return this._labelVerticalOrigin},set:function(e){this._labelVerticalOrigin=er(this,e),this._style.labelVerticalOrigin=tr(this._labelVerticalOrigin)}},meta:{get:function(){return this._meta},set:function(e){this._meta=e}}});l0.fromUrl=function(e){return ve.createIfNeeded(e).fetchJson(e).then(function(n){return new l0(n)})};l0.prototype.getColorShaderFunction=function(e,t,n){return this._colorShaderFunctionReady?(n.translucent=this._colorShaderTranslucent,this._colorShaderFunction):(this._colorShaderFunctionReady=!0,u(this.color)&&u(this.color.getShaderFunction)?this._colorShaderFunction=this.color.getShaderFunction(e,t,n,"vec4"):this._colorShaderFunction=void 0,this._colorShaderTranslucent=n.translucent,this._colorShaderFunction)};l0.prototype.getShowShaderFunction=function(e,t,n){return this._showShaderFunctionReady?this._showShaderFunction:(this._showShaderFunctionReady=!0,u(this.show)&&u(this.show.getShaderFunction)?this._showShaderFunction=this.show.getShaderFunction(e,t,n,"bool"):this._showShaderFunction=void 0,this._showShaderFunction)};l0.prototype.getPointSizeShaderFunction=function(e,t,n){return this._pointSizeShaderFunctionReady?this._pointSizeShaderFunction:(this._pointSizeShaderFunctionReady=!0,u(this.pointSize)&&u(this.pointSize.getShaderFunction)?this._pointSizeShaderFunction=this.pointSize.getShaderFunction(e,t,n,"float"):this._pointSizeShaderFunction=void 0,this._pointSizeShaderFunction)};l0.prototype.getVariables=function(){let e=[];return u(this.color)&&u(this.color.getVariables)&&e.push.apply(e,this.color.getVariables()),u(this.show)&&u(this.show.getVariables)&&e.push.apply(e,this.show.getVariables()),u(this.pointSize)&&u(this.pointSize.getVariables)&&e.push.apply(e,this.pointSize.getVariables()),e=e.filter(function(t,n,i){return i.indexOf(t)===n}),e};var DT=l0;function DF(e){e=y(e,y.EMPTY_OBJECT),this._maximumSubtreeCount=y(e.maximumSubtreeCount,0),this._subtreeRequestCounter=0,this._queue=new CT({comparator:DF.comparator})}DF.prototype.addSubtree=function(e){let t=new Qpt(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()};DF.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}};DF.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 Qpt(e,t){this.subtree=e,this.stamp=t}var IF=DF;function Gl(){this.orientedBoundingBox=new In,this.boundingSphere=new se,this.boundTransform=new F,this.shapeTransform=new F,this._minBounds=h.clone(Gl.DefaultMinBounds,new h),this._maxBounds=h.clone(Gl.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 Jpt=new h,wX=new h,e_t=new Q,t_t=new h,n_t=new h,i_t=new h,o_t=new h,Sxe=F.fromRotationTranslation(Q.fromUniformScale(.5,new Q),new h(.5,.5,.5),new F);Gl.prototype.update=function(e,t,n,i,o){i=y(i,Gl.DefaultMinBounds),o=y(o,Gl.DefaultMaxBounds);let r=Gl.DefaultMinBounds,s=Gl.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,t_t),o=h.clamp(o,r,s,n_t);let a=h.clamp(t,i,o,i_t),c=h.clamp(n,i,o,o_t),l=F.getScale(e,wX);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||l.x===0||l.y===0||l.z===0)return!1;this.shapeTransform=F.clone(e,this.shapeTransform),this.orientedBoundingBox=wxe(a,c,this.shapeTransform,this.orientedBoundingBox),this.boundTransform=F.fromRotationTranslation(this.orientedBoundingBox.halfAxes,this.orientedBoundingBox.center,this.boundTransform),this.boundingSphere=se.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(Sxe,a,f.renderMinBounds),f.renderMaxBounds=F.multiplyByPoint(Sxe,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 r_t=new h,s_t=new h;Gl.prototype.computeOrientedBoundingBoxForTile=function(e,t,n,i,o){let r=this._minBounds,s=this._maxBounds,a=1/Math.pow(2,e),c=h.fromElements(P.lerp(r.x,s.x,a*t),P.lerp(r.y,s.y,a*n),P.lerp(r.z,s.z,a*i),r_t),l=h.fromElements(P.lerp(r.x,s.x,a*(t+1)),P.lerp(r.y,s.y,a*(n+1)),P.lerp(r.z,s.z,a*(i+1)),s_t);return wxe(c,l,this.shapeTransform,o)};Gl.prototype.computeApproximateStepSize=function(e){return 1/h.maximumComponent(e)};Gl.DefaultMinBounds=Object.freeze(new h(-1,-1,-1));Gl.DefaultMaxBounds=Object.freeze(new h(1,1,1));function wxe(e,t,n,i){let o=Gl.DefaultMinBounds,r=Gl.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,wX),c=h.midpoint(e,t,Jpt);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),wX);let l=F.getRotation(n,e_t);i.halfAxes=Q.setScale(l,a,i.halfAxes)}return i}var Hm=Gl;function v8(e){this._resource=e,this._metadataTable=void 0}Object.defineProperties(v8.prototype,{metadataTable:{get:function(){return this._metadataTable}}});v8.fromJson=async function(e,t,n,i){let o;u(t)?o={json:t,binary:void 0}:o=c_t(n);let r=await a_t(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,l=o.json.propertyTables[c],f=new v8(e);return f._metadataTable=new Tl({count:l.count,properties:l.properties,class:i.classes[l.class],bufferViews:s}),f};function a_t(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(u(s.uri)){let c=e.getDerivedResource({url:s.uri});o[r]=c.fetchArrayBuffer().then(function(l){return new Uint8Array(l)})}else o[r]=Promise.resolve(n)}return Promise.all(o)}function c_t(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=Oo(e,i,o);i+=o;let a=e.subarray(i,i+r);return{json:s,binary:a}}var PF=v8;function Yr(){this.orientedBoundingBox=new In,this.boundingSphere=new se,this.boundTransform=new F,this.shapeTransform=new F,this._minimumRadius=Yr.DefaultMinBounds.x,this._maximumRadius=Yr.DefaultMaxBounds.x,this._minimumHeight=Yr.DefaultMinBounds.y,this._maximumHeight=Yr.DefaultMaxBounds.y,this._minimumAngle=Yr.DefaultMinBounds.z,this._maximumAngle=Yr.DefaultMaxBounds.z,this.shaderUniforms={cylinderUvToRenderBoundsScale:new h,cylinderUvToRenderBoundsTranslate:new h,cylinderUvToRenderRadiusMin:0,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_MAX:void 0,CYLINDER_HAS_RENDER_BOUNDS_RADIUS_FLAT:void 0,CYLINDER_HAS_RENDER_BOUNDS_HEIGHT:void 0,CYLINDER_HAS_RENDER_BOUNDS_HEIGHT_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_EQUAL_HALF:void 0,CYLINDER_HAS_RENDER_BOUNDS_ANGLE_RANGE_OVER_HALF:void 0,CYLINDER_HAS_SHAPE_BOUNDS_RADIUS:void 0,CYLINDER_HAS_SHAPE_BOUNDS_RADIUS_FLAT:void 0,CYLINDER_HAS_SHAPE_BOUNDS_HEIGHT:void 0,CYLINDER_HAS_SHAPE_BOUNDS_HEIGHT_FLAT:void 0,CYLINDER_HAS_SHAPE_BOUNDS_ANGLE:void 0,CYLINDER_HAS_SHAPE_BOUNDS_ANGLE_RANGE_EQUAL_ZERO: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 Dxe=new h,l_t=new h,u_t=new h,f_t=new Q,d_t=new F,h_t=new F,m_t=F.fromRotationTranslation(Q.fromUniformScale(2,new Q),new h(-1,-1,-1),new F);Yr.prototype.update=function(e,t,n,i,o){i=y(i,Yr.DefaultMinBounds),o=y(o,Yr.DefaultMaxBounds);let r=Yr.DefaultMinBounds.x,s=Yr.DefaultMaxBounds.x,a=Yr.DefaultMinBounds.y,c=Yr.DefaultMaxBounds.y,l=Yr.DefaultMinBounds.z,f=Yr.DefaultMaxBounds.z,d=f-l,p=.5*d,g=P.EPSILON10,m=P.EPSILON3,x=P.EPSILON10,b=P.clamp(t.x,r,s),T=P.clamp(n.x,r,s),A=P.clamp(i.x,r,s),C=P.clamp(o.x,r,s),S=Math.max(b,A),w=Math.min(T,C),D=P.clamp(t.y,a,c),O=P.clamp(n.y,a,c),R=P.clamp(i.y,a,c),L=P.clamp(o.y,a,c),N=Math.max(D,R),_=Math.min(O,L),E=P.negativePiToPi(t.z),v=P.negativePiToPi(n.z),I=P.negativePiToPi(i.z),M=P.negativePiToPi(o.z),B=Math.max(E,I),V=Math.min(v,M),U=F.getScale(e,Dxe);if(w===0||S>w||N>_||P.equalsEpsilon(U.x,0,void 0,g)||P.equalsEpsilon(U.y,0,void 0,g)||P.equalsEpsilon(U.z,0,void 0,g))return!1;this._minimumRadius=b,this._maximumRadius=T,this._minimumHeight=D,this._maximumHeight=O,this._minimumAngle=E,this._maximumAngle=v,this.shapeTransform=F.clone(e,this.shapeTransform),this.orientedBoundingBox=DX(S,w,N,_,B,V,this.shapeTransform,this.orientedBoundingBox),this.boundTransform=F.fromRotationTranslation(this.orientedBoundingBox.halfAxes,this.orientedBoundingBox.center,this.boundTransform),this.boundingSphere=se.fromOrientedBoundingBox(this.orientedBoundingBox,this.boundingSphere);let Y=b===r&&T===s,j=D===a&&O===c,$=v<E,W=v-E+$*d,K=W>p+x&&W<d-x,Z=W>x&&W<p-x,me=W>=p-x&&W<=p+x,xe=W<=x,re=K||Z||me||xe,ye=P.equalsEpsilon(E,l,void 0,m),ge=P.equalsEpsilon(v,f,void 0,m),Ae=w===s,De=S===r,Re=N===a&&_===c,ze=V<B,ut=V-B+ze*d,Vt=ut>p+x&&ut<d-x,cn=ut>x&&ut<p-x,ft=ut>=p-x&&ut<=p+x,_n=ut<=x,Mn=Vt||cn||ft||_n,Ft=this.shaderUniforms,Ot=this.shaderDefines;for(let be in Ot)Ot.hasOwnProperty(be)&&(Ot[be]=void 0);let he=0;if(Ot.CYLINDER_INTERSECTION_INDEX_RADIUS_MAX=he,he+=1,De||(Ot.CYLINDER_HAS_RENDER_BOUNDS_RADIUS_MIN=!0,Ot.CYLINDER_INTERSECTION_INDEX_RADIUS_MIN=he,he+=1,Ft.cylinderUvToRenderRadiusMin=w/S),Ae||(Ot.CYLINDER_HAS_RENDER_BOUNDS_RADIUS_MAX=!0),S===w&&(Ot.CYLINDER_HAS_RENDER_BOUNDS_RADIUS_FLAT=!0),Re||(Ot.CYLINDER_HAS_RENDER_BOUNDS_HEIGHT=!0),N===_&&(Ot.CYLINDER_HAS_RENDER_BOUNDS_HEIGHT_FLAT=!0),D===O&&(Ot.CYLINDER_HAS_SHAPE_BOUNDS_HEIGHT_FLAT=!0),b===T&&(Ot.CYLINDER_HAS_SHAPE_BOUNDS_RADIUS_FLAT=!0),!Y){Ot.CYLINDER_HAS_SHAPE_BOUNDS_RADIUS=!0;let be=1/(T-b),Gt=b/(b-T);Ft.cylinderUvToShapeUvRadius=z.fromElements(be,Gt,Ft.cylinderUvToShapeUvRadius)}if(!j){Ot.CYLINDER_HAS_SHAPE_BOUNDS_HEIGHT=!0;let be=2/(O-D),Gt=(D+1)/(D-O);Ft.cylinderUvToShapeUvHeight=z.fromElements(be,Gt,Ft.cylinderUvToShapeUvHeight)}if(!Ae||!Re){let be=.5*(_-N),Gt=h.fromElements(1/w,1/w,1/(be===0?1:be),u_t),rt=h.fromElements(0,0,-Gt.z*.5*(N+_),l_t),Si=F.fromRotationTranslation(Q.fromScale(Gt,f_t),rt,d_t),Zi=F.multiplyTransformation(Si,m_t,h_t);Ft.cylinderUvToRenderBoundsScale=F.getScale(Zi,Ft.cylinderUvToRenderBoundsScale),Ft.cylinderUvToRenderBoundsTranslate=F.getTranslation(Zi,Ft.cylinderUvToRenderBoundsTranslate)}if($&&(Ot.CYLINDER_HAS_SHAPE_BOUNDS_ANGLE_MIN_MAX_REVERSED=!0),Mn&&(Ot.CYLINDER_HAS_RENDER_BOUNDS_ANGLE=!0,Ot.CYLINDER_INTERSECTION_INDEX_ANGLE=he,Vt?(Ot.CYLINDER_HAS_RENDER_BOUNDS_ANGLE_RANGE_UNDER_HALF=!0,he+=1):cn?(Ot.CYLINDER_HAS_RENDER_BOUNDS_ANGLE_RANGE_OVER_HALF=!0,he+=2):ft?(Ot.CYLINDER_HAS_RENDER_BOUNDS_ANGLE_RANGE_EQUAL_HALF=!0,he+=1):_n&&(Ot.CYLINDER_HAS_RENDER_BOUNDS_ANGLE_RANGE_EQUAL_ZERO=!0,he+=2),Ft.cylinderRenderAngleMinMax=z.fromElements(B,V,Ft.cylinderAngleMinMax)),re){Ot.CYLINDER_HAS_SHAPE_BOUNDS_ANGLE=!0,xe&&(Ot.CYLINDER_HAS_SHAPE_BOUNDS_ANGLE_RANGE_EQUAL_ZERO=!0),ye&&(Ot.CYLINDER_HAS_SHAPE_BOUNDS_ANGLE_MIN_DISCONTINUITY=!0),ge&&(Ot.CYLINDER_HAS_SHAPE_BOUNDS_ANGLE_MAX_DISCONTINUITY=!0);let be=(E-l)/d,Gt=(v-l)/d,rt=1-W/d;Ft.cylinderShapeUvAngleMinMax=z.fromElements(be,Gt,Ft.cylinderShapeUvAngleMinMax),Ft.cylinderShapeUvAngleRangeZeroMid=(Gt+.5*rt)%1;let Si=d/W,Zi=-(E-l)/W;Ft.cylinderUvToShapeUvAngle=z.fromElements(Si,Zi,Ft.cylinderUvToShapeUvAngle)}return this.shaderMaximumIntersectionsLength=he,!0};Yr.prototype.computeOrientedBoundingBoxForTile=function(e,t,n,i,o){let r=this._minimumRadius,s=this._maximumRadius,a=this._minimumHeight,c=this._maximumHeight,l=this._minimumAngle,f=this._maximumAngle,d=1/Math.pow(2,e),p=P.lerp(r,s,t*d),g=P.lerp(r,s,(t+1)*d),m=P.lerp(a,c,n*d),x=P.lerp(a,c,(n+1)*d),b=P.lerp(l,f,i*d),T=P.lerp(l,f,(i+1)*d);return DX(p,g,m,x,b,T,this.shapeTransform,o)};var p_t=new In,__t=new h,g_t=new h,y_t=new h;Yr.prototype.computeApproximateStepSize=function(e){let t=this.shapeTransform,n=this._minimumRadius,i=this._maximumRadius,o=this._minimumHeight,r=this._maximumHeight,s=this._minimumAngle,a=this._maximumAngle,c=1-1/e.x,l=1-1/e.y,f=1-1/e.z,d=P.lerp(n,i,c),p=P.lerp(o,r,l),g=P.lerp(s,a,f),T=DX(d,i,p,r,g,a,t,p_t),A=Q.getScale(T.halfAxes,__t),C=F.getScale(t,g_t),S=h.divideComponents(A,C,y_t);return h.minimumComponent(S)};Yr.DefaultMinBounds=Object.freeze(new h(0,-1,-P.PI));Yr.DefaultMaxBounds=Object.freeze(new h(1,1,+P.PI));var x_t=5,b_t=new Array(x_t),T_t=new h,A_t=new Q,C_t=new F,E_t=new F,S_t=new F,vX=new F,w_t=new h,v_t=new h,D_t=new h,Ixe=new Array(8);for(let e=0;e<8;e++)Ixe[e]=new h;function vxe(e,t,n){return Math.abs(oe.dot(e,t))<n}function I_t(e){let t=F.getColumn(e,0,w_t),n=F.getColumn(e,1,v_t),i=F.getColumn(e,2,D_t),o=P.EPSILON4;return vxe(t,n,o)&&vxe(n,i,o)}function P_t(e,t){let n=Ixe;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 In.fromPoints(n,t)}function DX(e,t,n,i,o,r,s,a){let c=Yr.DefaultMinBounds,l=Yr.DefaultMaxBounds,f=c.x,d=l.x,p=c.y,g=l.y,m=c.z,x=l.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+=P.TWO_PI);let T=r-o,A=o+T*.5,C=b_t,S=0;C[S++]=o,C[S++]=r,C[S++]=A,T>P.PI&&(C[S++]=A-P.PI_OVER_TWO,C[S++]=A+P.PI_OVER_TWO);let w=1,D=1,O=-1,R=-1;for(let $=0;$<S;++$){let W=C[$]-A,K=Math.cos(W),Z=Math.sin(W),me=K*e,xe=Z*e,re=K*t,ye=Z*t;w=Math.min(w,me),D=Math.min(D,xe),w=Math.min(w,re),D=Math.min(D,ye),O=Math.max(O,me),R=Math.max(R,xe),O=Math.max(O,re),R=Math.max(R,ye)}let L=O-w,N=R-D,_=i-n,E=(w+O)*.5,v=(D+R)*.5,I=(n+i)*.5,M=h.fromElements(E,v,I,T_t),B=Q.fromRotationZ(A,A_t),V=h.fromElements(L,N,_,Dxe),U=F.fromScale(V,S_t),G=F.fromRotation(B,E_t),k=F.fromTranslation(M,C_t),Y=F.multiplyTransformation(G,F.multiplyTransformation(k,U,vX),vX),j=F.multiplyTransformation(s,Y,vX);return I_t(j)?In.fromTransformation(j,a):P_t(j,a)}var Gm=Yr;function Wl(){this.orientedBoundingBox=new In,this.boundingSphere=new se,this.boundTransform=new F,this.shapeTransform=new F,this._rectangle=new ce,this._minimumHeight=Wl.DefaultMinBounds.z,this._maximumHeight=Wl.DefaultMaxBounds.z,this._ellipsoid=new ie,this._translation=new h,this._rotation=new Q,this.shaderUniforms={ellipsoidRadiiUv:new h,ellipsoidInverseRadiiSquaredUv:new h,ellipsoidRenderLongitudeMinMax:new z,ellipsoidShapeUvLongitudeMinMaxMid:new h,ellipsoidUvToShapeUvLongitude:new z,ellipsoidUvToShapeUvLatitude:new z,ellipsoidRenderLatitudeCosSqrHalfMinMax:new z,ellipsoidInverseHeightDifferenceUv:0,ellipseInnerRadiiUv:new z,ellipsoidInverseInnerScaleUv:0,ellipsoidInverseOuterScaleUv:0},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_EQUAL_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_RANGE_EQUAL_ZERO:void 0,ELLIPSOID_HAS_SHAPE_BOUNDS_LONGITUDE_MIN_MAX_REVERSED:void 0,ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE: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_RENDER_BOUNDS_LATITUDE_RANGE_EQUAL_ZERO:void 0,ELLIPSOID_HAS_SHAPE_BOUNDS_LATITUDE:void 0,ELLIPSOID_HAS_SHAPE_BOUNDS_LATITUDE_RANGE_EQUAL_ZERO:void 0,ELLIPSOID_HAS_RENDER_BOUNDS_HEIGHT_MAX:void 0,ELLIPSOID_HAS_RENDER_BOUNDS_HEIGHT_MIN:void 0,ELLIPSOID_HAS_RENDER_BOUNDS_HEIGHT_FLAT:void 0,ELLIPSOID_HAS_SHAPE_BOUNDS_HEIGHT_MIN:void 0,ELLIPSOID_HAS_SHAPE_BOUNDS_HEIGHT_FLAT:void 0,ELLIPSOID_IS_SPHERE: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 O_t=new h,R_t=new Q,Pxe=new h,Oxe=new h,Rxe=new h,Mxe=new h,M_t=new ce;Wl.prototype.update=function(e,t,n,i,o){i=y(i,Wl.DefaultMinBounds),o=y(o,Wl.DefaultMaxBounds);let r=Wl.DefaultMinBounds.x,s=Wl.DefaultMaxBounds.x,a=s-r,c=.5*a,l=Wl.DefaultMinBounds.y,f=Wl.DefaultMaxBounds.y,d=f-l,p=P.EPSILON10,g=P.EPSILON3,m=P.EPSILON10,x=P.EPSILON10,b=P.EPSILON3,T=P.clamp(t.x,r,s),A=P.clamp(n.x,r,s),C=P.clamp(i.x,r,s),S=P.clamp(o.x,r,s),w=Math.max(T,C),D=Math.min(A,S),O=P.clamp(t.y,l,f),R=P.clamp(n.y,l,f),L=P.clamp(i.y,l,f),N=P.clamp(o.y,l,f),_=Math.max(O,L),E=Math.min(R,N),v=F.getScale(e,O_t),I=v.x===v.y&&v.y===v.z,M=h.minimumComponent(v),B=Math.max(t.z,-M),V=Math.max(n.z,-M),U=Math.max(i.z,-M),G=Math.max(o.z,-M),k=Math.max(B,U),Y=Math.min(V,G),j=h.add(v,h.fromElements(B,B,B,Oxe),Oxe),$=h.add(v,h.fromElements(V,V,V,Pxe),Pxe),W=h.maximumComponent($),K=h.add(v,h.fromElements(k,k,k,Mxe),Mxe),Z=h.add(v,h.fromElements(Y,Y,Y,Rxe),Rxe);if(_>E||_===f||E===l||k>Y||P.equalsEpsilon(Z,h.ZERO,void 0,p))return!1;this._rectangle=ce.fromRadians(T,O,A,R),this._translation=F.getTranslation(e,this._translation),this._rotation=F.getRotation(e,this._rotation),this._ellipsoid=ie.fromCartesian3(v,this._ellipsoid),this._minimumHeight=B,this._maximumHeight=V;let me=ce.fromRadians(w,_,D,E,M_t);this.orientedBoundingBox=Lxe(me,k,Y,this._ellipsoid,this._translation,this._rotation,this.orientedBoundingBox),this.shapeTransform=F.fromRotationTranslation(Q.setScale(this._rotation,$,R_t),this._translation,this.shapeTransform),this.boundTransform=F.fromRotationTranslation(this.orientedBoundingBox.halfAxes,this.orientedBoundingBox.center,this.boundTransform),this.boundingSphere=se.fromOrientedBoundingBox(this.orientedBoundingBox,this.boundingSphere);let xe=D<w,re=D-w+xe*a,ye=re<=m,ge=re>c+m&&re<a-m,Ae=re>=c-m&&re<=c+m,De=re>m&&re<c-m,Re=ye||ge||Ae||De,ze=A<T,ut=A-T+ze*a,Vt=ut<=m,cn=ut>c+m&&ut<a-m,ft=ut>=c-m&&ut<=c+m,_n=ut>m&&ut<c-m,Mn=Vt||cn||ft||_n,Ft=E<-b,Ot=E>=-b&&E<=+b,he=E>+b&&E<f-x,be=Ft||Ot||he,Gt=_>l+x&&_<-b,rt=_>=-b&&_<=+b,Si=_>+b,Zi=Gt||rt||Si,Us=be||Zi,Lo=R-O,fr=R<-b,is=R>=-b&&R<=+b,Be=R>+b&&R<f-x,Ke=fr||is||Be,qe=O>l+x&&O<-b,Xe=O>=-b&&O<=+b,ht=O>+b,hn=Ke||(qe||Xe||ht),lo=!h.equals(K,h.ZERO),bo=!h.equals(Z,h.ZERO),os=lo||bo,xs=Y-k,No=!h.equals(j,h.ZERO),ji=!h.equals($,h.ZERO),br=No||ji,Gn=this.shaderUniforms,Ln=this.shaderDefines;for(let di in Ln)Ln.hasOwnProperty(di)&&(Ln[di]=void 0);Gn.ellipsoidRadiiUv=h.divideByScalar($,W,Gn.ellipsoidRadiiUv),Gn.ellipsoidInverseRadiiSquaredUv=h.divideComponents(h.ONE,h.multiplyComponents(Gn.ellipsoidRadiiUv,Gn.ellipsoidRadiiUv,Gn.ellipsoidInverseRadiiSquaredUv),Gn.ellipsoidInverseRadiiSquaredUv);let On=0;if(Ln.ELLIPSOID_INTERSECTION_INDEX_HEIGHT_MAX=On,On+=1,os&&(xs===0&&(Ln.ELLIPSOID_HAS_RENDER_BOUNDS_HEIGHT_FLAT=!0),lo&&(Ln.ELLIPSOID_HAS_RENDER_BOUNDS_HEIGHT_MIN=!0,Ln.ELLIPSOID_INTERSECTION_INDEX_HEIGHT_MIN=On,On+=1,Gn.ellipsoidInverseInnerScaleUv=W/(W-(V-k))),bo&&(Ln.ELLIPSOID_HAS_RENDER_BOUNDS_HEIGHT_MAX=!0,Gn.ellipsoidInverseOuterScaleUv=W/(W-(V-Y)))),br){if(No){Ln.ELLIPSOID_HAS_SHAPE_BOUNDS_HEIGHT_MIN=!0;let di=(V-B)/W;Gn.ellipsoidInverseHeightDifferenceUv=1/di,Gn.ellipseInnerRadiiUv=z.fromElements(Gn.ellipsoidRadiiUv.x*(1-di),Gn.ellipsoidRadiiUv.z*(1-di),Gn.ellipseInnerRadiiUv)}B===V&&(Ln.ELLIPSOID_HAS_SHAPE_BOUNDS_HEIGHT_FLAT=!0)}if(Re&&(Ln.ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE=!0,Ln.ELLIPSOID_INTERSECTION_INDEX_LONGITUDE=On,ge?(Ln.ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE_RANGE_UNDER_HALF=!0,On+=1):De?(Ln.ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE_RANGE_OVER_HALF=!0,On+=2):Ae?(Ln.ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE_RANGE_EQUAL_HALF=!0,On+=1):ye&&(Ln.ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE_RANGE_EQUAL_ZERO=!0,On+=2),Gn.ellipsoidRenderLongitudeMinMax=z.fromElements(w,D,Gn.ellipsoidRenderLongitudeMinMax)),Mn){Ln.ELLIPSOID_HAS_SHAPE_BOUNDS_LONGITUDE=!0,A<T&&(Ln.ELLIPSOID_HAS_SHAPE_BOUNDS_LONGITUDE_MIN_MAX_REVERSED=!0);let dr=a/ut,Vs=-(T-r)/ut;Gn.ellipsoidUvToShapeUvLongitude=z.fromElements(dr,Vs,Gn.ellipsoidUvToShapeUvLongitude)}if(Re){let di=P.equalsEpsilon(w,r,void 0,g),dr=P.equalsEpsilon(D,s,void 0,g);di&&(Ln.ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE_MIN_DISCONTINUITY=!0),dr&&(Ln.ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE_MAX_DISCONTINUITY=!0);let Vs=(T-r)/a,bs=(A-r)/a,Ts=(D-r)/a,Ra=1-re/a,hr=(Ts+.5*Ra)%1;Gn.ellipsoidShapeUvLongitudeMinMaxMid=h.fromElements(Vs,bs,hr,Gn.ellipsoidShapeUvLongitudeMinMaxMid)}if(Us){Ln.ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE=!0,Zi&&(Ln.ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MIN=!0,Ln.ELLIPSOID_INTERSECTION_INDEX_LATITUDE_MIN=On,Gt?(Ln.ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MIN_UNDER_HALF=!0,On+=1):rt?(Ln.ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MIN_EQUAL_HALF=!0,On+=1):Si&&(Ln.ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MIN_OVER_HALF=!0,On+=2)),be&&(Ln.ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MAX=!0,Ln.ELLIPSOID_INTERSECTION_INDEX_LATITUDE_MAX=On,Ft?(Ln.ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MAX_UNDER_HALF=!0,On+=2):Ot?(Ln.ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MAX_EQUAL_HALF=!0,On+=1):he&&(Ln.ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MAX_OVER_HALF=!0,On+=1)),_===E&&(Ln.ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_RANGE_EQUAL_ZERO=!0);let di=Math.pow(Math.cos(P.PI_OVER_TWO-Math.abs(_)),2),dr=Math.pow(Math.cos(P.PI_OVER_TWO-Math.abs(E)),2);Gn.ellipsoidRenderLatitudeCosSqrHalfMinMax=z.fromElements(di,dr,Gn.ellipsoidRenderLatitudeCosSqrHalfMinMax)}if(hn){Ln.ELLIPSOID_HAS_SHAPE_BOUNDS_LATITUDE=!0,O===R&&(Ln.ELLIPSOID_HAS_SHAPE_BOUNDS_LATITUDE_RANGE_EQUAL_ZERO=!0);let di=d/Lo,dr=(l-O)/Lo;Gn.ellipsoidUvToShapeUvLatitude=z.fromElements(di,dr,Gn.ellipsoidUvToShapeUvLatitude)}return I&&(Ln.ELLIPSOID_IS_SPHERE=!0),this.shaderMaximumIntersectionsLength=On,!0};var L_t=new ce;Wl.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,l=(n+1)*r,f=i*r,d=(i+1)*r,p=ce.subsection(this._rectangle,s,c,a,l,L_t),g=P.lerp(this._minimumHeight,this._maximumHeight,f),m=P.lerp(this._minimumHeight,this._maximumHeight,d);return Lxe(p,g,m,this._ellipsoid,this._translation,this._rotation,o)};Wl.prototype.computeApproximateStepSize=function(e){let n=this._ellipsoid.maximumRadius,i=this._minimumHeight,o=this._maximumHeight;return .5*((o-i)/(n+o))/e.z};function Lxe(e,t,n,i,o,r,s){return s=In.fromRectangle(e,t,n,i,s),s.center=h.add(s.center,o,s.center),s.halfAxes=Q.multiply(s.halfAxes,r,s.halfAxes),s}Wl.DefaultMinBounds=Object.freeze(new h(-P.PI,-P.PI_OVER_TWO,-Number.MAX_VALUE));Wl.DefaultMaxBounds=Object.freeze(new h(+P.PI,+P.PI_OVER_TWO,+Number.MAX_VALUE));var IT=Wl;var Vu={BOX:"BOX",ELLIPSOID:"ELLIPSOID",CYLINDER:"CYLINDER"};Vu.getMinBounds=function(e){switch(e){case Vu.BOX:return Hm.DefaultMinBounds;case Vu.ELLIPSOID:return IT.DefaultMinBounds;case Vu.CYLINDER:return Gm.DefaultMinBounds}};Vu.getMaxBounds=function(e){switch(e){case Vu.BOX:return Hm.DefaultMaxBounds;case Vu.ELLIPSOID:return IT.DefaultMaxBounds;case Vu.CYLINDER:return Gm.DefaultMaxBounds}};Vu.getShapeConstructor=function(e){switch(e){case Vu.BOX:return Hm;case Vu.ELLIPSOID:return IT;case Vu.CYLINDER:return Gm}};var Wi=Object.freeze(Vu);function D8(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 IF}D8.fromUrl=async function(e){let t=ve.createIfNeeded(e),n=await t.fetchJson();F_t(n);let i=z_t(n,t);await i.load();let o=n.root,r=o.content.extensions["3DTILES_content_voxels"],s=r.class,a=ri(n,"3DTILES_metadata")?n.extensions["3DTILES_metadata"]:n,c=i.schema,l=new cb({metadataJson:a,schema:c}),f=new D8;H_t(f,l,s);let d=new ub(t,o,c),{shape:p,minBounds:g,maxBounds:m,shapeTransform:x,globalTransform:b}=B_t(o);f.shape=p,f.minBounds=g,f.maxBounds=m,f.dimensions=h.unpack(r.dimensions),f.shapeTransform=x,f.globalTransform=b,f.maximumTileCount=N_t(l);let T,A;return u(r.padding)&&(T=h.unpack(r.padding.before),A=h.unpack(r.padding.after)),f.paddingBefore=T,f.paddingAfter=A,f._implicitTileset=d,Hi.unload(i),f};function N_t(e){if(u(e.tileset))return e.tileset.getPropertyBySemantic(Rx.TILESET_TILE_COUNT)}function F_t(e){let t=e.root;if(!u(t.content))throw new ue("Root must have content");if(!ri(t.content,"3DTILES_content_voxels"))throw new ue("Root tile content must have 3DTILES_content_voxels extension");if(!ri(t,"3DTILES_implicit_tiling")&&!u(t.implicitTiling))throw new ue("Root tile must have implicit tiling");if(!u(e.schema)&&!u(e.schemaUri)&&!ri(e,"3DTILES_metadata"))throw new ue("Tileset must have a metadata schema")}function B_t(e){let t=e.boundingVolume,n;if(u(e.transform)?n=F.unpack(e.transform):n=F.clone(F.IDENTITY),u(t.box))return U_t(t.box,n);if(u(t.region))return k_t(t.region);if(ri(t,"3DTILES_bounding_volume_cylinder"))return V_t(t.extensions["3DTILES_bounding_volume_cylinder"].cylinder,n);throw new ue("Only box, region and 3DTILES_bounding_volume_cylinder are supported in Cesium3DTilesVoxelProvider")}function k_t(e){let t=e[0],n=e[1],i=e[2],o=e[3],r=e[4],s=e[5],a=F.fromScale(ie.WGS84.radii),c=t,l=i,f=n,d=o,p=r,g=s,m=new h(c,f,p),x=new h(l,d,g);return{shape:Wi.ELLIPSOID,minBounds:m,maxBounds:x,shapeTransform:a,globalTransform:F.clone(F.IDENTITY)}}function U_t(e,t){let n=In.unpack(e),i=F.fromRotationTranslation(n.halfAxes,n.center);return{shape:Wi.BOX,minBounds:h.clone(Hm.DefaultMinBounds),maxBounds:h.clone(Hm.DefaultMaxBounds),shapeTransform:i,globalTransform:t}}function V_t(e,t){let n=In.unpack(e),i=F.fromRotationTranslation(n.halfAxes,n.center);return{shape:Wi.CYLINDER,minBounds:h.clone(Gm.DefaultMinBounds),maxBounds:h.clone(Gm.DefaultMaxBounds),shapeTransform:i,globalTransform:t}}function z_t(e,t){let{schemaUri:n,schema:i}=e;return u(n)?Hi.getSchemaLoader({resource:t.getDerivedResource({url:n})}):Hi.getSchemaLoader({schema:i})}function H_t(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),A=Nxe(x,T),C=Nxe(b,T);return{id:d,type:g,componentType:m,minValue:A,maxValue:C}});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),l=a.map(d=>d.maxValue),f=c.some(u);e.minimumValues=f?c:void 0,e.maximumValues=f?l:void 0}function Nxe(e,t){if(!u(e))return;let n=Array.isArray(e)?e:[e];return Array.from({length:t},(i,o)=>n[o])}async function G_t(e,t){let n=e.contentUriTemplates[0].getDerivedResource({templateValues:t.getTemplateValues()}),i=e.baseResource.getDerivedResource({url:n.url}),o=await i.fetchArrayBuffer(),r=sm(o);return await PF.fromJson(i,r.jsonPayload,r.binaryPayload,e.metadataSchema)}async function W_t(e,t){let n=e._implicitTileset,i=e._subtreeCache,o=i.find(t);if(u(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),u(o))return o;let c=sm(a);return o=await Ox.fromSubtreeJson(s,c.jsonPayload,c.binaryPayload,n,t),i.addSubtree(o),o}D8.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}),l=c.isSubtreeRoot()&&c.level>0,f=l?c.getParentSubtreeCoordinates():c.getSubtreeCoordinates();return W_t(this,f).then(function(p){return(l?p.childSubtreeIsAvailableAtCoordinates(c):p.tileIsAvailableAtCoordinates(c))?G_t(s,c):Promise.reject("Tile is not available")}).then(function(p){return a.map(function(g){return p.metadataTable.getPropertyTypedArray(g)})})};var IX=D8;function PX(e){e=y(e,1),this._radius=y(e,1)}Object.defineProperties(PX.prototype,{radius:{get:function(){return this._radius},set:function(e){this._radius=e}}});PX.prototype.emit=function(e){let t=P.randomBetween(0,P.TWO_PI),n=P.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 OF=PX;var OX={CUMULUS:0};OX.validate=function(e){return e===OX.CUMULUS};var LS=Object.freeze(OX);function Eh(e,t){if(e=y(e,y.EMPTY_OBJECT),this._show=y(e.show,!0),this._position=h.clone(y(e.position,h.ZERO)),!u(e.scale)&&u(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 j_t=Eh.SHOW_INDEX=0,q_t=Eh.POSITION_INDEX=1,Y_t=Eh.SCALE_INDEX=2,X_t=Eh.MAXIMUM_SIZE_INDEX=3,K_t=Eh.SLICE_INDEX=4,Z_t=Eh.BRIGHTNESS_INDEX=5,$_t=Eh.COLOR_INDEX=6;Eh.NUMBER_OF_PROPERTIES=7;function PT(e,t){let n=e._cloudCollection;u(n)&&(n._updateCloud(e,t),e._dirty=!0)}Object.defineProperties(Eh.prototype,{show:{get:function(){return this._show},set:function(e){this._show!==e&&(this._show=e,PT(this,j_t))}},position:{get:function(){return this._position},set:function(e){let t=this._position;h.equals(t,e)||(h.clone(e,t),PT(this,q_t))}},scale:{get:function(){return this._scale},set:function(e){let t=this._scale;z.equals(t,e)||(z.clone(e,t),PT(this,Y_t))}},maximumSize:{get:function(){return this._maximumSize},set:function(e){let t=this._maximumSize;h.equals(t,e)||(h.clone(e,t),PT(this,X_t))}},color:{get:function(){return this._color},set:function(e){let t=this._color;H.equals(t,e)||(H.clone(e,t),PT(this,$_t))}},slice:{get:function(){return this._slice},set:function(e){this._slice!==e&&(this._slice=e,PT(this,K_t))}},brightness:{get:function(){return this._brightness},set:function(e){this._brightness!==e&&(this._brightness=e,PT(this,Z_t))}}});Eh.prototype._destroy=function(){this._cloudCollection=void 0};var zu=Eh;var Hu,I8=new h,Q_t={positionHighAndScaleX:0,positionLowAndScaleY:1,packedAttribute0:2,packedAttribute1:3,color:4},J_t={direction:0,positionHighAndScaleX:1,positionLowAndScaleY:2,packedAttribute0:3,packedAttribute1:4,color:5},egt=zu.SHOW_INDEX,tgt=zu.POSITION_INDEX,ngt=zu.SCALE_INDEX,igt=zu.MAXIMUM_SIZE_INDEX,ogt=zu.SLICE_INDEX,rgt=zu.BRIGHTNESS_INDEX,sgt=zu.NUMBER_OF_PROPERTIES,agt=zu.COLOR_INDEX;function Sh(e){e=y(e,y.EMPTY_OBJECT),this._clouds=[],this._cloudsToUpdate=[],this._cloudsToUpdateIndex=0,this._cloudsRemoved=!1,this._createVertexArray=!1,this._propertiesChanged=new Uint32Array(sgt),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:Fxe(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 Fxe(e){return function(){return I8.x=e._textureSliceWidth,I8.y=e._noiseTextureRows,I8.z=1/e._noiseTextureRows,I8}}Object.defineProperties(Sh.prototype,{length:{get:function(){return MX(this),this._clouds.length}}});function Bxe(e){let t=e.length;for(let n=0;n<t;++n)e[n]&&e[n]._destroy()}Sh.prototype.add=function(e){e=y(e,y.EMPTY_OBJECT);let t=y(e.cloudType,LS.CUMULUS),n;return t===LS.CUMULUS&&(n=new zu(e,this),n._index=this._clouds.length,this._clouds.push(n),this._createVertexArray=!0),n};Sh.prototype.remove=function(e){return this.contains(e)?(this._clouds[e._index]=void 0,this._cloudsRemoved=!0,this._createVertexArray=!0,e._destroy(),!0):!1};Sh.prototype.removeAll=function(){Bxe(this._clouds),this._clouds=[],this._cloudsToUpdate=[],this._cloudsToUpdateIndex=0,this._cloudsRemoved=!1,this._createVertexArray=!0};function MX(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];u(s)&&(n._index=r++,t.push(s))}e._clouds=t}}Sh.prototype._updateCloud=function(e,t){e._dirty||(this._cloudsToUpdate[this._cloudsToUpdateIndex++]=e),++this._propertiesChanged[t]};Sh.prototype.contains=function(e){return u(e)&&e._cloudCollection===this};Sh.prototype.get=function(e){return MX(this),this._clouds[e]};var cgt=new Float32Array([-1,-1,1,-1,1,1,-1,1]),lgt=new Uint16Array([0,1,2,0,2,3]);function ugt(e){let t=ct.createVertexBuffer({context:e,typedArray:cgt,usage:Ne.STATIC_DRAW}),n=ct.createIndexBuffer({context:e,typedArray:lgt,usage:Ne.STATIC_DRAW,indexDatatype:Fe.UNSIGNED_SHORT}),i=[{index:0,vertexBuffer:t,componentsPerAttribute:2,componentDatatype:X.FLOAT}];return new ni({context:e,attributes:i,indexBuffer:n})}var LX;function fgt(e){let n=e.cache.cloudCollection_indexBufferBatched;if(u(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:Ne.STATIC_DRAW,indexDatatype:Fe.UNSIGNED_SHORT}),n.vertexArrayDestroyable=!1,e.cache.cloudCollection_indexBufferBatched=n,n}function dgt(e){let t=e.cache.cloudCollection_indexBufferInstanced;return u(t)||(t=ct.createIndexBuffer({context:e,typedArray:new Uint16Array([0,1,2,0,2,3]),usage:Ne.STATIC_DRAW,indexDatatype:Fe.UNSIGNED_SHORT}),t.vertexArrayDestroyable=!1,e.cache.cloudCollection_indexBufferInstanced=t),t}function hgt(e){let t=e.cache.cloudCollection_vertexBufferInstanced;return u(t)||(t=ct.createVertexBuffer({context:e,typedArray:new Float32Array([0,0,1,0,1,1,0,1]),usage:Ne.STATIC_DRAW}),t.vertexArrayDestroyable=!1,e.cache.cloudCollection_vertexBufferInstanced=t),t}function mgt(e,t,n){let i=[{index:Hu.positionHighAndScaleX,componentsPerAttribute:4,componentDatatype:X.FLOAT,usage:Ne.STATIC_DRAW},{index:Hu.positionLowAndScaleY,componentsPerAttribute:4,componentDatatype:X.FLOAT,usage:Ne.STATIC_DRAW},{index:Hu.packedAttribute0,componentsPerAttribute:4,componentDatatype:X.FLOAT,usage:Ne.STATIC_DRAW},{index:Hu.packedAttribute1,componentsPerAttribute:4,componentDatatype:X.FLOAT,usage:Ne.STATIC_DRAW},{index:Hu.color,componentsPerAttribute:4,componentDatatype:X.UNSIGNED_BYTE,normalize:!0,usage:Ne.STATIC_DRAW}];n&&i.push({index:Hu.direction,componentsPerAttribute:2,componentDatatype:X.FLOAT,vertexBuffer:hgt(e)});let o=n?t:4*t;return new sp(e,i,o,n)}var RX=new jn;function kxe(e,t,n,i){let o,r=n[Hu.positionHighAndScaleX],s=n[Hu.positionLowAndScaleY],a=i.position;jn.fromCartesian(a,RX);let c=i.scale,l=RX.high,f=RX.low;e._instanced?(o=i._index,r(o,l.x,l.y,l.z,c.x),s(o,f.x,f.y,f.z,c.y)):(o=i._index*4,r(o+0,l.x,l.y,l.z,c.x),r(o+1,l.x,l.y,l.z,c.x),r(o+2,l.x,l.y,l.z,c.x),r(o+3,l.x,l.y,l.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 Uxe(e,t,n,i){let o,r=n[Hu.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 Vxe(e,t,n,i){let o,r=n[Hu.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 zxe(e,t,n,i){let o,r=n[Hu.color],s=i.color,a=H.floatToByte(s.red),c=H.floatToByte(s.green),l=H.floatToByte(s.blue),f=H.floatToByte(s.alpha);e._instanced?(o=i._index,r(o,a,c,l,f)):(o=i._index*4,r(o+0,a,c,l,f),r(o+1,a,c,l,f),r(o+2,a,c,l,f),r(o+3,a,c,l,f))}function pgt(e,t,n,i){kxe(e,t,n,i),Uxe(e,t,n,i),Vxe(e,t,n,i),zxe(e,t,n,i)}function _gt(e,t,n,i){let o=e,r=o._textureSliceWidth,s=o._noiseTextureRows,a=t.context;o._vaNoise=ugt(a),o._spNoise=Yt.fromCache({context:a,vertexShaderSource:n,fragmentShaderSource:i,attributeLocations:{position:0}});let c=o.noiseDetail,l=o.noiseOffset;o._noiseTexture=new It({context:a,width:r*r/s,height:r*s,pixelDatatype:Ye.UNSIGNED_BYTE,pixelFormat:nt.RGBA,sampler:new ln({wrapS:Sn.REPEAT,wrapT:Sn.REPEAT,minificationFilter:rn.NEAREST,magnificationFilter:yi.NEAREST})});let f=new Xu({vertexArray:o._vaNoise,shaderProgram:o._spNoise,outputTexture:o._noiseTexture,uniformMap:{u_noiseTextureDimensions:Fxe(o),u_noiseDetail:function(){return c},u_noiseOffset:function(){return l}},persists:!1,owner:e,postExecute:function(d){o._ready=!0,o._loading=!1}});t.commandList.push(f),o._loading=!0}function ggt(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=mgt(i,r,n._instanced);let s=n._vaf.writers,a;for(a=0;a<r;++a){let c=o[a];pgt(e,t,s,c)}n._vaf.commit(LX(i))}}var ygt=[];function xgt(e,t){let n=t.context,i=e,r=i._clouds.length,s=i._cloudsToUpdate,a=i._cloudsToUpdateIndex,c=i._propertiesChanged,l=ygt;l.length=0,(c[tgt]||c[ngt])&&l.push(kxe),(c[egt]||c[rgt])&&l.push(Uxe),(c[igt]||c[ogt])&&l.push(Vxe),c[agt]&&l.push(zxe);let f=l.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)l[m](e,t,d,g);i._vaf.commit(LX(n))}else{for(p=0;p<a;++p){for(g=s[p],g._dirty=!1,m=0;m<f;++m)l[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 bgt(e,t,n,i){let o=t.context,r=e,s=new Ue({defines:[],sources:[n]});r._instanced&&s.defines.push("INSTANCED");let a=new Ue({defines:[],sources:[i]});r.debugBillboards&&a.defines.push("DEBUG_BILLBOARDS"),r.debugEllipsoids&&a.defines.push("DEBUG_ELLIPSOIDS"),r._sp=Yt.replaceCache({context:o,shaderProgram:r._sp,vertexShaderSource:s,fragmentShaderSource:a,attributeLocations:Hu}),r._rs=ke.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 Tgt(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 l=0;l<c;l++){let f=s[l];u(f)||(f=s[l]=new Je),f.pass=Ee.TRANSLUCENT,f.owner=e,f.uniformMap=o,f.count=a[l].indicesCount,f.vertexArray=a[l].va,f.shaderProgram=n._sp,f.renderState=n._rs,n._instanced&&(f.count=6,f.instanceCount=n._clouds.length),r.push(f)}}}Sh.prototype.update=function(e){if(MX(this),!this.show)return;let t=this.debugBillboards||this.debugEllipsoids;this._ready=t?!0:u(this._noiseTexture),!this._ready&&!this._loading&&!t&&_gt(this,e,hF,dF),this._instanced=e.context.instancedArrays,Hu=this._instanced?J_t:Q_t,LX=this._instanced?dgt:fgt;let i=this._clouds.length,o=this._cloudsToUpdate,r=this._cloudsToUpdateIndex;this._createVertexArray?ggt(this,e):r>0&&xgt(this,e),r>i*1.5&&(o.length=i),!(!u(this._vaf)||!u(this._vaf.va)||!this._ready&!t)&&((!this._spCreated||this.debugBillboards!==this._compiledDebugBillboards||this.debugEllipsoids!==this._compiledDebugEllipsoids)&&bgt(this,e,fF,uF),Tgt(this,e))};Sh.prototype.isDestroyed=function(){return!1};Sh.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(),Bxe(this._clouds),le(this)};var NX=Sh;var Agt=P.toRadians(30);function FX(e){this._angle=y(e,Agt)}Object.defineProperties(FX.prototype,{angle:{get:function(){return this._angle},set:function(e){this._angle=e}}});FX.prototype.emit=function(e){let t=Math.tan(this._angle),n=P.randomBetween(0,P.TWO_PI),i=P.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 BX=FX;function RF(e){e=y(e,y.EMPTY_OBJECT);let t=e.attributeName,n=e.perInstanceAttribute;u(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); }
  11070. `;else switch(t==="st"&&(i="vec2"),i){case"float":r=`vec4 getColor() { return vec4(vec3(${o}), 1.0); }
  11071. `;break;case"vec2":r=`vec4 getColor() { return vec4(${o}, 0.0, 1.0); }
  11072. `;break;case"vec3":r=`vec4 getColor() { return vec4(${o}, 1.0); }
  11073. `;break;case"vec4":r=`vec4 getColor() { return ${o}; }
  11074. `;break}let s=`in vec3 position3DHigh;
  11075. in vec3 position3DLow;
  11076. in float batchId;
  11077. ${n?"":`in ${i} ${t};
  11078. `}out ${i} ${o};
  11079. void main()
  11080. {
  11081. vec4 p = czm_translateRelativeToEye(position3DHigh, position3DLow);
  11082. ${n?`${o} = czm_batchTable_${t}(batchId);
  11083. `:`${o} = ${t};
  11084. `}gl_Position = czm_modelViewProjectionRelativeToEye * p;
  11085. }`,a=`in ${i} ${o};
  11086. ${r}
  11087. void main()
  11088. {
  11089. out_FragColor = getColor();
  11090. }`;this.material=void 0,this.translucent=y(e.translucent,!1),this._vertexShaderSource=y(e.vertexShaderSource,s),this._fragmentShaderSource=y(e.fragmentShaderSource,a),this._renderState=eo.getDefaultRenderState(!1,!1,e.renderState),this._closed=y(e.closed,!1),this._attributeName=t,this._glslDatatype=i}Object.defineProperties(RF.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}}});RF.prototype.getFragmentShaderSource=eo.prototype.getFragmentShaderSource;RF.prototype.isTranslucent=eo.prototype.isTranslucent;RF.prototype.getRenderState=eo.prototype.getRenderState;var kX=RF;function P8(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}P8.prototype.update=function(e){if(this.show){if(!u(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,u(this._primitive)&&this._primitive.destroy(),this.modelMatrix[12]===0&&this.modelMatrix[13]===0&&this.modelMatrix[14]===0&&(this.modelMatrix[14]=.01);let t=new yt({geometry:new w_({positions:[h.ZERO,h.UNIT_X],width:this.width,vertexFormat:zr.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 yt({geometry:new w_({positions:[h.ZERO,h.UNIT_Y],width:this.width,vertexFormat:zr.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 yt({geometry:new w_({positions:[h.ZERO,h.UNIT_Z],width:this.width,vertexFormat:zr.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 En({geometryInstances:[t,n,i],appearance:new zr,asynchronous:!1})}this._primitive.update(e)}};P8.prototype.isDestroyed=function(){return!1};P8.prototype.destroy=function(){return this._primitive=this._primitive&&this._primitive.destroy(),le(this)};var MF=P8;function Cgt(e){this.direction=h.clone(e.direction),this.color=H.clone(y(e.color,H.WHITE)),this.intensity=y(e.intensity,1)}var UX=Cgt;var LF=`in vec3 v_positionMC;
  11091. in vec3 v_positionEC;
  11092. in vec2 v_st;
  11093. void main()
  11094. {
  11095. czm_materialInput materialInput;
  11096. vec3 normalEC = normalize(czm_normal3D * czm_geodeticSurfaceNormal(v_positionMC, vec3(0.0), vec3(1.0)));
  11097. #ifdef FACE_FORWARD
  11098. normalEC = faceforward(normalEC, vec3(0.0, 0.0, 1.0), -normalEC);
  11099. #endif
  11100. materialInput.s = v_st.s;
  11101. materialInput.st = v_st;
  11102. materialInput.str = vec3(v_st, 0.0);
  11103. // Convert tangent space material normal to eye space
  11104. materialInput.normalEC = normalEC;
  11105. materialInput.tangentToEyeMatrix = czm_eastNorthUpToEyeCoordinates(v_positionMC, materialInput.normalEC);
  11106. // Convert view vector to world space
  11107. vec3 positionToEyeEC = -v_positionEC;
  11108. materialInput.positionToEyeEC = positionToEyeEC;
  11109. czm_material material = czm_getMaterial(materialInput);
  11110. #ifdef FLAT
  11111. out_FragColor = vec4(material.diffuse + material.emission, material.alpha);
  11112. #else
  11113. out_FragColor = czm_phong(normalize(positionToEyeEC), material, czm_lightDirectionEC);
  11114. #endif
  11115. }
  11116. `;var NF=`in vec3 position3DHigh;
  11117. in vec3 position3DLow;
  11118. in vec2 st;
  11119. in float batchId;
  11120. out vec3 v_positionMC;
  11121. out vec3 v_positionEC;
  11122. out vec2 v_st;
  11123. void main()
  11124. {
  11125. vec4 p = czm_computePosition();
  11126. v_positionMC = position3DHigh + position3DLow; // position in model coordinates
  11127. v_positionEC = (czm_modelViewRelativeToEye * p).xyz; // position in eye coordinates
  11128. v_st = st;
  11129. gl_Position = czm_modelViewProjectionRelativeToEye * p;
  11130. }
  11131. `;function OT(e){e=y(e,y.EMPTY_OBJECT);let t=y(e.translucent,!0),n=y(e.aboveGround,!1);this.material=u(e.material)?e.material:Vi.fromType(Vi.ColorType),this.translucent=y(e.translucent,!0),this._vertexShaderSource=y(e.vertexShaderSource,NF),this._fragmentShaderSource=y(e.fragmentShaderSource,LF),this._renderState=eo.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(OT.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 OT.VERTEX_FORMAT}},flat:{get:function(){return this._flat}},faceForward:{get:function(){return this._faceForward}},aboveGround:{get:function(){return this._aboveGround}}});OT.VERTEX_FORMAT=Pe.POSITION_AND_ST;OT.prototype.getFragmentShaderSource=eo.prototype.getFragmentShaderSource;OT.prototype.isTranslucent=eo.prototype.isTranslucent;OT.prototype.getRenderState=eo.prototype.getRenderState;var VX=OT;function jl(e){this._scene=e.scene,this.samplingWindow=y(e.samplingWindow,jl.defaultSettings.samplingWindow),this.quietPeriod=y(e.quietPeriod,jl.defaultSettings.quietPeriod),this.warmupPeriod=y(e.warmupPeriod,jl.defaultSettings.warmupPeriod),this.minimumFrameRateDuringWarmup=y(e.minimumFrameRateDuringWarmup,jl.defaultSettings.minimumFrameRateDuringWarmup),this.minimumFrameRateAfterWarmup=y(e.minimumFrameRateAfterWarmup,jl.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){Egt(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(){Sgt(t)}this._visibilityChangeRemoveListener=void 0,u(n)&&(document.addEventListener(n,i,!1),this._visibilityChangeRemoveListener=function(){document.removeEventListener(n,i,!1)})}jl.defaultSettings={samplingWindow:5,quietPeriod:2,warmupPeriod:5,minimumFrameRateDuringWarmup:4,minimumFrameRateAfterWarmup:8};jl.fromScene=function(e){return(!u(e._frameRateMonitor)||e._frameRateMonitor.isDestroyed())&&(e._frameRateMonitor=new jl({scene:e})),e._frameRateMonitor};Object.defineProperties(jl.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}}});jl.prototype.pause=function(){++this._pauseCount,this._pauseCount===1&&(this._frameTimes.length=0,this._lastFramesPerSecond=void 0)};jl.prototype.unpause=function(){--this._pauseCount,this._pauseCount<=0&&(this._pauseCount=0,this._needsQuietPeriod=!0)};jl.prototype.isDestroyed=function(){return!1};jl.prototype.destroy=function(){return this._preUpdateRemoveListener(),u(this._visibilityChangeRemoveListener)&&this._visibilityChangeRemoveListener(),le(this)};function Egt(e,t){if(e._pauseCount>0)return;let n=_i();if(e._needsQuietPeriod)e._needsQuietPeriod=!1,e._frameTimes.length=0,e._quietPeriodEndTime=n+e.quietPeriod/Zn.SECONDS_PER_MILLISECOND,e._warmupPeriodEndTime=e._quietPeriodEndTime+(e.warmupPeriod+e.samplingWindow)/Zn.SECONDS_PER_MILLISECOND;else if(n>=e._quietPeriodEndTime){e._frameTimes.push(n);let i=n-e.samplingWindow/Zn.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 Sgt(e){document[e._hiddenPropertyName]?e.pause():e.unpause()}var FF=jl;var Hxe=ro(ZY(),1);function zX(){this._image=new Image}zX.prototype.isReady=function(){return!0};zX.prototype.shouldDiscardImage=function(e){return e===this._image};function RT(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 zi({numberOfLevelZeroTilesX:2,numberOfLevelZeroTilesY:2,rectangle:new ce(-P.PI,-P.PI,P.PI,P.PI),ellipsoid:e.ellipsoid});let t=e.credit;typeof t=="string"&&(t=new bt(t)),this._credit=t,this._tileWidth=256,this._tileHeight=256,this._maximumLevel=23,u(this._tileDiscardPolicy)||(this._tileDiscardPolicy=new zX),this._errorEvent=new pe}Object.defineProperties(RT.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}}});RT.fromMetadata=function(e,t){if(!e.imageryPresent)throw new ue(`The server ${e.url} doesn't have imagery`);let n=new RT(t);return n._metadata=e,n};RT.prototype.getTileCredits=function(e,t,n){let i=this._metadata,o=i.getTileInformation(e,t,n);if(u(o)){let r=i.providers[o.imageryProvider];if(u(r))return[r]}};RT.prototype.requestImage=function(e,t,n,i){let o=this._tileDiscardPolicy._image,r=this._metadata,s=K_.tileXYToQuadKey(e,t,n),a=r.getTileInformation(e,t,n);if(!u(a)){if(r.isValid(s)){let l=new Go({throttle:i.throttle,throttleByServer:i.throttleByServer,type:i.type,priorityFunction:i.priorityFunction});r.populateSubtree(e,t,n,l);return}return Promise.resolve(o)}if(!a.hasImagery())return Promise.resolve(o);let c=wgt(this,a,e,t,n,i).fetchArrayBuffer();if(u(c))return c.then(function(l){EF(r.key,l);let f=new Uint8Array(l),d,p=r.protoImagery;if((!u(p)||!p)&&(d=vgt(f)),!u(d)&&(!u(p)||p)){let g=Dgt(f);d=g.imageType,f=g.imageData}return!u(d)||!u(f)?o:Ex({uint8Array:f,format:d,flipY:!0})})};RT.prototype.pickFeatures=function(e,t,n,i,o){};function wgt(e,t,n,i,o,r){let s=K_.tileXYToQuadKey(n,i,o),a=t.imageryVersion;return a=u(a)&&a>0?a:1,e._metadata.resource.getDerivedResource({url:`flatfile?f1-0${s}-i.${a.toString()}`,request:r})}function vgt(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 Dgt(e){let t=Hxe.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,u(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(u(o))switch(o){case 0:i.imageType="image/jpeg";break;case 4:i.imageType="image/png";break;default:throw new ue("GoogleEarthEnterpriseImageryProvider: Unsupported image type.")}let r=i.alphaType;return u(r)&&r!==0&&(console.log("GoogleEarthEnterpriseImageryProvider: External alpha not supported."),delete i.alphaType,delete i.imageAlpha),i}var HX=RT;var Igt=new H(1,1,1,.4),Pgt=new H(0,1,0,.05),Ogt=new H(0,.5,0,.2);function MT(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=u(e.tilingScheme)?e.tilingScheme:new zi({ellipsoid:e.ellipsoid}),this._cells=y(e.cells,8),this._color=y(e.color,Igt),this._glowColor=y(e.glowColor,Pgt),this._glowWidth=y(e.glowWidth,6),this._backgroundColor=y(e.backgroundColor,Ogt),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(MT.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}}});MT.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()};MT.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};MT.prototype.getTileCredits=function(e,t,n){};MT.prototype.requestImage=function(e,t,n,i){return Promise.resolve(this._canvas)};MT.prototype.pickFeatures=function(e,t,n,i,o){};var GX=MT;function wh(){}wh._maxDecodingConcurrency=Math.max(Bt.hardwareConcurrency-1,1);wh._decodeTaskProcessor=new hi("decodeI3S",wh._maxDecodingConcurrency);wh._promise=void 0;async function Rgt(){if(await wh._decodeTaskProcessor.initWebAssemblyModule({wasmBinaryFile:"ThirdParty/draco_decoder.wasm"}))return wh._decodeTaskProcessor;throw new ue("I3S decoder could not be initialized.")}wh.decode=async function(e,t,n,i){return u(wh._promise)||(wh._promise=Rgt()),wh._promise.then(function(o){let r=n._parent._data,s=n._parent._inverseRotationMatrix,a=0,c=0,l=0;u(r.obb)?(a=r.obb.center[0],c=r.obb.center[1],l=r.obb.center[2]):u(r.mbs)&&(a=r.mbs[0],c=r.mbs[1],l=r.mbs[2]);let f=Q.fromRotationX(-P.PI_OVER_TWO),d=new Q;Q.multiply(f,s,d);let p=fe.fromDegrees(a,c,l),g=ie.WGS84.cartographicToCartesian(p),m={binaryData:n._data,featureData:u(i)&&u(i[0])?i[0].data:void 0,schema:t,bufferInfo:n._geometryBufferInfo,ellipsoidRadiiSquare:ie.WGS84.radiiSquared,url:e,geoidDataList:n._dataProvider._geoidDataList,cartographicCenter:p,cartesianCenter:g,parentRotation:d};return o.scheduleTask(m)})};var BF=wh;function WX(e,t){this._parent=e,this._dataProvider=e._dataProvider,this._layer=e._layer,u(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(WX.prototype,{resource:{get:function(){return this._resource}},data:{get:function(){return this._data}}});WX.prototype.load=async function(){return this._data=await LT.loadJson(this._resource,this._dataProvider._traceFetches),this._data};var kF=WX;function NS(e,t){this._storageInfo=t,this._parent=e,this._dataProvider=e._dataProvider;let n=`attributes/${t.key}/0`;u(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(NS.prototype,{resource:{get:function(){return this._resource}},header:{get:function(){return this._header}},values:{get:function(){return u(this._values)&&u(this._values.attributeValues)?this._values.attributeValues:[]}},name:{get:function(){return this._storageInfo.name}}});function Mgt(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}NS.prototype.load=function(){let e=this;return this._dataProvider._loadBinary(this._resource).then(function(t){let n=new DataView(t),i=!0;if(n.getUint8(0)==="{".charCodeAt(0)&&new TextDecoder().decode(t).includes("404")&&(i=!1,console.error(`Failed to load: ${e.resource.url}`)),i){e._data=t;let o=e._parseHeader(n),r=Mgt(e._storageInfo.attributeValues.valueType);r>0&&(o=Math.ceil(o/r)*r),e._parseBody(n,o)}})};NS.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}};NS.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};NS.prototype._parseBody=function(e,t){this._values={};for(let n=0;n<this._storageInfo.ordering.length;n++){let i=this._storageInfo.ordering[n],o=this._storageInfo[i];if(u(o)){this._values[i]=[];for(let r=0;r<this._header.count;++r)if(o.valueType!=="String"){let s=this._parseValue(e,o.valueType,t);this._values[i].push(s.value),t=s.offset}else{let s=this._values.attributeByteCounts[r],a="";for(let c=0;c<s;++c){let l=this._parseValue(e,o.valueType,t);l.value.charCodeAt(0)!==0&&(a+=l.value),t=l.offset}this._values[i].push(a)}}}};var UF=NS;function VF(e,t){let n=e._dataProvider,i=e._layer,o;u(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(VF.prototype,{resource:{get:function(){return this._resource}},data:{get:function(){return this._data}},customAttributes:{get:function(){return this._customAttributes}}});VF.prototype.load=function(){let e=this;return this._dataProvider._loadBinary(this._resource).then(function(t){return e._data=t,t})};var Lgt=new h,Ngt=new h,Fgt=new h,Bgt=new h,kgt=new h;function jX(e,t,n,i){let o=h.subtract(i,n,Lgt),r=h.cross(o,h.subtract(e,n,Ngt),Bgt),s=h.cross(o,h.subtract(t,n,Fgt),kgt);return h.dot(r,s)>=0}var Ugt=new h,Vgt=new h,zgt=new h,Hgt=new h,Ggt=new h,Wgt=new h,jgt=new h,qgt=new h,Ygt=new h,Xgt=new h;VF.prototype.getClosestPointIndexOnTriangle=function(e,t,n){if(u(this._customAttributes)&&u(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,Q.multiplyByVector(this._customAttributes.parentRotation,i,i);let o=Number.MAX_VALUE,r,s,a,c,l=this._customAttributes.positions,f=this._customAttributes.indices,d;u(f)?d=f.length:d=l.length/3;for(let p=0;p<d;p++){let g,m,x;u(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(l[g*3],l[g*3+1],l[g*3+2],Ugt),T=h.fromElements(l[m*3],l[m*3+1],l[m*3+2],Vgt),A=new h(l[x*3],l[x*3+1],l[x*3+2],zgt);if(!jX(i,b,T,A)||!jX(i,T,b,A)||!jX(i,A,b,T))continue;let C=h.subtract(T,b,Hgt),S=h.subtract(A,b,Ggt),w=h.cross(C,S,Wgt);if(h.magnitude(w)===0)continue;let D=h.normalize(w,jgt),O=h.subtract(i,b,qgt),R=Math.abs(h.dot(O,D));if(R<o){o=R,r=p;let L=h.magnitudeSquared(h.subtract(i,b,O)),N=h.magnitudeSquared(h.subtract(i,T,Ygt)),_=h.magnitudeSquared(h.subtract(i,A,Xgt));L<N&&L<_?(a=g,c=b,s=L):N<_?(a=m,c=T,s=N):(a=x,c=A,s=_)}}if(u(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}};VF.prototype._generateGltf=function(e,t,n,i,o,r){let s={pbrMetallicRoughness:{metallicFactor:0},doubleSided:!0,name:"Material"},a=!1,c,l="";if(u(this._parent._data.mesh)&&u(this._layer._data.materialDefinitions)){let x=this._parent._data.mesh.material.definition;if(x>=0&&x<this._layer._data.materialDefinitions.length&&(c=this._layer._data.materialDefinitions[x],s=c,u(s.pbrMetallicRoughness)&&u(s.pbrMetallicRoughness.baseColorTexture))){a=!0,s.pbrMetallicRoughness.baseColorTexture.index=0;let b="0";if(u(this._layer._data.textureSetDefinitions))for(let T=0;T<this._layer._data.textureSetDefinitions.length;T++){let A=this._layer._data.textureSetDefinitions[T];for(let C=0;C<A.formats.length;C++){let S=A.formats[C];if(S.format==="jpg"){b=S.name;break}}}u(this._parent._data.mesh)&&this._parent._data.mesh.material.resource>=0&&(l=this._layer.resource.getDerivedResource({url:`nodes/${this._parent._data.mesh.material.resource}/textures/${b}`}).url)}}else u(this._parent._data.textureData)&&(a=!0,l=this._parent.resource.getDerivedResource({url:`${this._parent._data.textureData[0].href}`}).url,s.pbrMetallicRoughness.baseColorTexture={index:0});let f=[],d=[],p=[];return a&&(f=[{sampler:0,source:0}],d=[{uri:l}],p=[{magFilter:9729,minFilter:9986,wrapS:10497,wrapT:10497}]),{scene:0,scenes:[{nodes:e}],nodes:t,meshes:n,buffers:i,bufferViews:o,accessors:r,materials:[s],textures:f,images:d,samplers:p,asset:{version:"2.0"}}};var FS=VF;function Gu(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}Object.defineProperties(Gu.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}}});Gu.prototype.load=async function(){let e=this;function t(){if(!e._isRoot){let o=e._create3DTileDefinition();e._tile=new Cf(e._layer._tileset,e._dataProvider.resource,o,e._parent._tile),e._tile._i3sNode=e}}if(!u(this._nodeIndex)){let o=await LT.loadJson(this._resource,this._dataProvider._traceFetches);e._data=o,t();return}let n=await this._layer._getNodeInNodePages(this._nodeIndex);e._data=n;let i;e._isRoot?i="nodes/root/":u(n.mesh)&&(i=`../${n.mesh.geometry.resource}/`),u(i)&&(e._resource=e._parent.resource.getDerivedResource({url:i})),t()};Gu.prototype.loadFields=function(){let e=this._layer._data.attributeStorageInfo,t=this;function n(o,r){let s=new UF(t,o[r]);return t._fields[s._storageInfo.name]=s,s.load()}let i=[];if(u(e))for(let o=0;o<e.length;o++)i.push(n(e,o));return Promise.all(i)};Gu.prototype.getFieldsForPickedPosition=function(e){let t=this.geometryData[0];if(!u(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)};Gu.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};Gu.prototype._loadChildren=function(){let e=this;if(u(this._childrenReadyPromise))return this._childrenReadyPromise;let t=[];if(u(e._data.children))for(let n=0;n<e._data.children.length;n++){let i=e._data.children[n],o=new Gu(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};Gu.prototype._loadGeometryData=function(){let e=[];if(u(this._data.geometryData))for(let t=0;t<this._data.geometryData.length;t++){let n=new FS(this,this._data.geometryData[t].href);this._geometryData.push(n),e.push(n.load())}else if(u(this._data.mesh)){let t=this._layer._findBestGeometryBuffers(this._data.mesh.geometry.definition,["position","uv0"]),n=`./geometries/${t.bufferIndex}/`,i=new FS(this,n);i._geometryDefinitions=t.definition,i._geometryBufferInfo=t.geometryBufferInfo,this._geometryData.push(i),e.push(i.load())}return Promise.all(e)};Gu.prototype._loadFeatureData=function(){let e=[];if(u(this._data.featureData))for(let t=0;t<this._data.featureData.length;t++){let n=new kF(this,this._data.featureData[t].href);this._featureData.push(n),e.push(n.load())}return Promise.all(e)};Gu.prototype._clearGeometryData=function(){this._geometryData=[]};Gu.prototype._create3DTileDefinition=function(){let e=this._data.obb,t=this._data.mbs;if(!u(e)&&!u(t)){console.error("Failed to load I3S node. Bounding volume is required.");return}let n;if(u(e)?n=fe.fromDegrees(e.center[0],e.center[1],e.center[2]):n=fe.fromDegrees(t[0],t[1],t[2]),u(this._dataProvider._geoidDataList)&&u(n))for(let T=0;T<this._dataProvider._geoidDataList.length;T++){let A=this._dataProvider._geoidDataList[T],C=A.projection.project(n);if(C.x>A.nativeExtent.west&&C.x<A.nativeExtent.east&&C.y>A.nativeExtent.south&&C.y<A.nativeExtent.north){n.height+=Zgt(C.x,C.y,A);break}}let i={},o,r=0;u(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=ie.WGS84.cartographicToCartesian(n)):(i={sphere:[0,0,0,t[3]]},o=ie.WGS84.cartographicToCartesian(n),r=this._data.mbs[3]),r*=2;let s=1/0;if(u(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(u(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 za(0,0,0),l=Rt.headingPitchRollQuaternion(o,c);u(this._data.obb)&&(l=new Le(this._data.obb.quaternion[0],this._data.obb.quaternion[1],this._data.obb.quaternion[2],this._data.obb.quaternion[3]));let f=Q.fromQuaternion(l),d=Q.inverse(f,new Q),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);u(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:u(this._resource)?this._resource.url:void 0},geometricError:a}};Gu.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),u(this._geometryData)&&this._geometryData.length>0){let o=this._geometryData[0].resource.url,r=this._layer._data.store.defaultGeometrySchema,s=this._geometryData[0],a=await BF.decode(o,r,s,this._featureData[0]);if(!u(a))return;e=s._generateGltf(a.meshData.nodesInScene,a.meshData.nodes,a.meshData.meshes,a.meshData.buffers,a.meshData.bufferViews,a.meshData.accessors),this._geometryData[0]._customAttributes=a.meshData._customAttributes}let n=this._dataProvider._binarizeGltf(e),i=new Blob([n],{type:"application/binary"});return URL.createObjectURL(i)};Cf.prototype._hookedRequestContent=Cf.prototype.requestContent;Cf.prototype.requestContent=function(){if(!this.tileset._isI3STileSet)return this._hookedRequestContent();if(!this._isLoading)return this._isLoading=!0,this._i3sNode._createContentURL().then(e=>{if(!u(e)){this._isLoading=!1;return}return this._contentResource=new ve({url:e}),this._hookedRequestContent()}).then(e=>(this._isLoading=!1,e))};function Kgt(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 O8(e,t,n,i){let o=e+t*n;return i[o]}function Zgt(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,l=a<n.height?a+1:a;a=n.height-1-a,l=n.height-1-l;let f=O8(s,a,n.width,n.buffer),d=O8(c,a,n.width,n.buffer),p=O8(s,l,n.width,n.buffer),g=O8(c,l,n.width,n.buffer),m=Kgt(o,r,f,d,p,g);return m=m*n.scale+n.offset,m}Object.defineProperties(Cf.prototype,{i3sNode:{get:function(){return this._i3sNode}}});var BS=Gu;function Qf(e,t,n){this._dataProvider=e,!u(t.href)&&u(n)&&(t.href=`layers/${n}`);let i=this._dataProvider.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 ve({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._computeGeometryDefinitions(!0),this._computeExtent()}Object.defineProperties(Qf.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(u(this.version))return this.majorVersion<1||this.majorVersion===1&&this.minorVersion<=6}}});Qf.prototype.load=async function(e){if(this._data.spatialReference.wkid!==4326)throw new ue(`Unsupported spatial reference: ${this._data.spatialReference.wkid}`);if(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()};Qf.prototype._computeGeometryDefinitions=function(e){if(this._geometryDefinitions=[],u(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(u(r.compressedAttributes)&&e){a=!0;let c=r.compressedAttributes.attributes;for(let l=0;l<c.length;l++)s.push(c[l])}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)}};Qf.prototype._findBestGeometryBuffers=function(e,t){let n=this._geometryDefinitions[e];if(u(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};Qf.prototype._loadRootNode=function(e){if(u(this._data.nodePages)){let t=0;u(this._data.nodePages.rootIndex)&&(t=this._data.nodePages.rootIndex),this._rootNode=new BS(this,t,!0)}else this._rootNode=new BS(this,this._data.store.rootNode,!0);return this._rootNode.load(e)};Qf.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]})};Qf._fetchJson=function(e){return e.fetchJson()};Qf.prototype._loadNodePage=function(e){let t=this;if(!u(this._nodePageFetches[e])){let n=this.resource.getDerivedResource({url:`nodepages/${e}/`}),i=Qf._fetchJson(n).then(function(o){return u(o.error)&&o.error.code!==200?Promise.reject(o.error):(t._nodePages[e]=o.nodes,o)});this._nodePageFetches[e]=i}return this._nodePageFetches[e]};Qf.prototype._computeExtent=function(){u(this._data.fullExtent)?this._extent=ce.fromDegrees(this._data.fullExtent.xmin,this._data.fullExtent.ymin,this._data.fullExtent.xmax,this._data.fullExtent.ymax):u(this._data.store.extent)&&(this._extent=ce.fromDegrees(this._data.store.extent[0],this._data.store.extent[1],this._data.store.extent[2],this._data.store.extent[3]))};Qf.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);this._tileset=await Zs.fromUrl(i,e),this._tileset.show=this._dataProvider.show,this._tileset._isI3STileSet=!0,this._tileset.tileUnload.addEventListener(function(o){o._i3sNode._clearGeometryData(),URL.revokeObjectURL(o._contentResource._url),o._contentResource=o._i3sNode.resource}),this._tileset.tileVisible.addEventListener(function(o){u(o._i3sNode)&&o._i3sNode._loadChildren()})};var kS=Qf;var Wxe=ro(Gxe(),1);function ca(e){e=y(e,y.EMPTY_OBJECT),this._name=e.name,this._show=y(e.show,!0),this._geoidTiledTerrainProvider=e.geoidTiledTerrainProvider,this._traceFetches=y(e.traceFetches,!1),this._cesium3dTilesetOptions=y(e.cesium3dTilesetOptions,y.EMPTY_OBJECT),this._layers=[],this._data=void 0,this._extent=void 0,this._geoidDataPromise=void 0,this._geoidDataList=void 0,this._decoderTaskProcessor=void 0,this._taskProcessorReadyPromise=void 0}Object.defineProperties(ca.prototype,{name:{get:function(){return this._name}},show:{get:function(){return this._show},set:function(e){this._show=e;for(let t=0;t<this._layers.length;t++)u(this._layers[t]._tileset)&&(this._layers[t]._tileset.show=this._show)}},traceFetches:{get:function(){return this._traceFetches},set:function(e){this._traceFetches=e}},geoidTiledTerrainProvider:{get:function(){return this._geoidTiledTerrainProvider}},layers:{get:function(){return this._layers}},data:{get:function(){return this._data}},extent:{get:function(){return this._extent}},resource:{get:function(){return this._resource}}});ca.prototype.destroy=function(){for(let e=0;e<this._layers.length;e++)u(this._layers[e]._tileset)&&this._layers[e]._tileset.destroy();return le(this)};ca.prototype.isDestroyed=function(){return!1};ca.prototype.update=function(e){for(let t=0;t<this._layers.length;t++)u(this._layers[t]._tileset)&&this._layers[t]._tileset.update(e)};ca.prototype.prePassesUpdate=function(e){for(let t=0;t<this._layers.length;t++)u(this._layers[t]._tileset)&&this._layers[t]._tileset.prePassesUpdate(e)};ca.prototype.postPassesUpdate=function(e){for(let t=0;t<this._layers.length;t++)u(this._layers[t]._tileset)&&this._layers[t]._tileset.postPassesUpdate(e)};ca.prototype.updateForPass=function(e,t){for(let n=0;n<this._layers.length;n++)u(this._layers[n]._tileset)&&this._layers[n]._tileset.updateForPass(e,t)};ca.fromUrl=async function(e,t){t=y(t,y.EMPTY_OBJECT);let n=ve.createIfNeeded(e),i=await ca.loadJson(n),o=new ca(t);if(o._resource=n,o._data=i,u(i.layers))for(let s=0;s<i.layers.length;s++){let a=new kS(o,i.layers[s],s);o._layers.push(a)}else{let s=new kS(o,i,i.id);o._layers.push(s)}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};ca._fetchJson=function(e){return e.fetchJson()};ca.loadJson=async function(e,t){t&&console.log("I3S FETCH:",e.url);let n=await ca._fetchJson(e);if(u(n.error)){if(console.error("Failed to fetch I3S ",e.url),u(n.error.message)&&console.error(n.error.message),u(n.error.details))for(let i=0;i<n.error.details.length;i++)console.log(n.error.details[i]);throw new ue(n.error)}return n};ca.prototype._loadBinary=function(e){return this._traceFetches&&console.log("I3S FETCH:",e.url),e.fetchArrayBuffer()};ca.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]="g".charCodeAt(),o.magic[1]="l".charCodeAt(),o.magic[2]="T".charCodeAt(),o.magic[3]="F".charCodeAt(),o.version[0]=2,o.length[0]=i.byteLength,o.chunkLength[0]=n.byteLength,o.chunkType[0]=1313821514,o.chunkData.set(n),i};var $gt=new z;function Qgt(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),l=n.positionToTileXY(a,r);for(let d=c.x;d<=l.x;d++)for(let p=c.y;p<=l.y;p++){let g=z.fromElements(d,p,$gt),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 Di&&(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===Vf.LERC){let A=Wxe.default.decode(x._buffer);T.buffer=A.pixels[0]}else T.buffer=x._buffer;p.push(T)}return p})}async function Jgt(e){let t=e._geoidTiledTerrainProvider;if(!u(t)){console.log("No Geoid Terrain service provided - no geoid conversion will be performed.");return}try{let n=await Qgt(t,e._extent);e._geoidDataList=n}catch{console.log("Error retrieving Geoid Terrain tiles - no geoid conversion will be performed.")}}ca.prototype.loadGeoidData=async function(){return u(this._geoidDataPromise)?this._geoidDataPromise:(this._geoidDataPromise=Jgt(this),this._geoidDataPromise)};ca.prototype._computeExtent=function(){let e;for(let t=0;t<this._layers.length;t++)if(u(this._layers[t]._extent)){let n=this._layers[t]._extent;u(e)?ce.union(e,n,e):e=ce.clone(n)}this._extent=e};var LT=ca;var jxe=Object.freeze({UNLOADED:0,RECEIVING:1,RECEIVED:2,LOADED:3,FAILED:4,UNAVAILABLE:5});function M8(e,t){this.spatialNode=e,this.keyframe=t,this.state=jxe.UNLOADED,this.metadatas=[],this.megatextureIndex=-1,this.priority=-Number.MAX_VALUE,this.highPriorityFrameNumber=-1}M8.priorityComparator=function(e,t){return e.priority-t.priority};M8.searchComparator=function(e,t){return e.keyframe-t.keyframe};M8.LoadState=jxe;var Ki=M8;function qxe(){}Object.defineProperties(qxe.prototype,{color:{get:de.throwInstantiationError},intensity:{get:de.throwInstantiationError}});var qX=qxe;var eyt=/\/$/,Yxe=new bt('&copy; <a href="https://www.mapbox.com/about/maps/">Mapbox</a> &copy; <a href="http://www.openstreetmap.org/copyright">OpenStreetMap</a> <strong><a href="https://www.mapbox.com/map-feedback/">Improve this map</a></strong>');function US(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=ve.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=u(e.scaleFactor)?"@2x":"",a=i.getUrlComponent();eyt.test(a)||(a+="/"),a+=`${this._username}/${t}/tiles/${this._tilesize}/{z}/{x}/{y}${s}`,i.url=a,i.setQueryParameters({access_token:n});let c;u(e.credit)?(c=e.credit,typeof c=="string"&&(c=new bt(c))):c=Yxe,this._resource=i,this._imageryProvider=new va({url:i,credit:c,ellipsoid:e.ellipsoid,minimumLevel:e.minimumLevel,maximumLevel:e.maximumLevel,rectangle:e.rectangle})}Object.defineProperties(US.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}}});US.prototype.getTileCredits=function(e,t,n){};US.prototype.requestImage=function(e,t,n,i){return this._imageryProvider.requestImage(e,t,n,i)};US.prototype.pickFeatures=function(e,t,n,i,o){return this._imageryProvider.pickFeatures(e,t,n,i,o)};US._defaultCredit=Yxe;var YX=US;function u0(e,t,n,i,o){i===Qt.UNSIGNED_SHORT&&(i=Qt.FLOAT32);let r=e.floatingPointTexture;if(i===Qt.FLOAT32&&!r)throw new ue("Floating point texture not supported");let s;i===Qt.FLOAT32||i===Qt.FLOAT64?s=Ye.FLOAT:i===Qt.UINT8&&(s=Ye.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,l=128*1024*1024;o=Math.min(y(o,l),c);let f=Ut.maximumTextureSize,d=Qt.getSizeInBytes(i),p=Math.floor(o/(n*d)),g=Math.min(f,P.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,A=Math.floor(g/b),C=Math.floor(g/T);if(A===0||C===0)throw new ue("Tileset is too large to fit into megatexture");this.channelCount=n,this.componentType=i,this.voxelCountPerTile=h.clone(t,new h),this.maximumTileCount=A*C,this.regionCountPerMegatexture=new z(A,C),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 It({context:e,pixelFormat:a,pixelDatatype:s,flipY:!1,width:g,height:g,sampler:new ln({wrapS:Sn.CLAMP_TO_EDGE,wrapT:Sn.CLAMP_TO_EDGE,minificationFilter:rn.LINEAR,magnificationFilter:yi.LINEAR})});let S=Qt.toComponentDatatype(i);this.tileVoxelDataTemp=X.createTypedArray(S,b*T*n),this.nodes=new Array(this.maximumTileCount);for(let w=0;w<this.maximumTileCount;w++)this.nodes[w]=new tyt(w);for(let w=0;w<this.maximumTileCount;w++){let D=this.nodes[w];D.previousNode=w>0?this.nodes[w-1]:void 0,D.nextNode=w<this.maximumTileCount-1?this.nodes[w+1]:void 0}this.occupiedList=void 0,this.emptyList=this.nodes[0],this.occupiedCount=0}function tyt(e){this.index=e,this.nextNode=void 0,this.previousNode=void 0}u0.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,u(this.emptyList)&&(this.emptyList.previousNode=void 0),t.nextNode=this.occupiedList,u(t.nextNode)&&(t.nextNode.previousNode=t),this.occupiedList=t;let n=t.index;return this.writeDataToTexture(n,e),this.occupiedCount++,n};u0.prototype.remove=function(e){if(e<0||e>=this.maximumTileCount)throw new de("Megatexture index out of bounds");let t=this.nodes[e];u(t.previousNode)&&(t.previousNode.nextNode=t.nextNode),u(t.nextNode)&&(t.nextNode.previousNode=t.previousNode),t.nextNode=this.emptyList,u(t.nextNode)&&(t.nextNode.previousNode=t),t.previousNode=void 0,this.emptyList=t,this.occupiedCount--};u0.prototype.isFull=function(){return this.emptyList===void 0};u0.getApproximateTextureMemoryByteLength=function(e,t,n,i){i===Qt.UNSIGNED_SHORT&&(i=Qt.FLOAT32);let o=Qt.getSizeInBytes(i),r=e*t.x*t.y*t.z,s=Math.ceil(Math.sqrt(t.z)),a=Math.ceil(t.z/s),c=s*t.x,l=a*t.y,f=P.previousPowerOfTwo(Math.floor(Math.sqrt(r)));for(;;){let p=Math.floor(f/c),g=Math.floor(f/l);if(p*g>=e)break;f*=2}return f*f*n*o};u0.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 A=0;A<i.y;A++)for(let C=0;C<i.x;C++){let S=x*i.y*i.x+A*i.x+C,w=(T+A)*r.x+(b+C);for(let D=0;D<s;D++)a[w*s+D]=n[S*s+D]}}let c=this.regionCountPerMegatexture,l=r.x,f=r.y,d=e%c.x*r.x,p=Math.floor(e/c.x)*r.y,m={source:{arrayBufferView:a,width:l,height:f},xOffset:d,yOffset:p};this.texture.copyFrom(m)};u0.prototype.isDestroyed=function(){return!1};u0.prototype.destroy=function(){return this.texture=this.texture&&this.texture.destroy(),le(this)};var VS=u0;function XX(e){}XX.prototype.isReady=function(){return!0};XX.prototype.shouldDiscardImage=function(e){return!1};var KX=XX;var nyt=new bt("MapQuest, Open Street Map and contributors, CC-BY-SA");function L8(e){e=y(e,y.EMPTY_OBJECT);let t=ve.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 qr({ellipsoid:e.ellipsoid}),i=256,o=256,r=y(e.minimumLevel,0),s=e.maximumLevel,a=y(e.rectangle,n.rectangle),c=n.positionToTileXY(ce.southwest(a),r),l=n.positionToTileXY(ce.northeast(a),r),f=(Math.abs(l.x-c.x)+1)*(Math.abs(l.y-c.y)+1),d=y(e.credit,nyt);typeof d=="string"&&(d=new bt(d)),va.call(this,{url:t,credit:d,tilingScheme:n,tileWidth:i,tileHeight:o,minimumLevel:r,maximumLevel:s,rectangle:a})}u(Object.create)&&(L8.prototype=Object.create(va.prototype),L8.prototype.constructor=L8);var $_=L8;var iyt=new z(1,1);function ZX(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,iyt)),this._age=0,this._normalizedAge=0,this._billboard=void 0}Object.defineProperties(ZX.prototype,{age:{get:function(){return this._age}},normalizedAge:{get:function(){return this._normalizedAge}}});var Xxe=new h;ZX.prototype.update=function(e,t){return h.multiplyByScalar(this.velocity,e,Xxe),h.add(this.position,Xxe,this.position),u(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 zS=ZX;function Kxe(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(Kxe.prototype,{complete:{get:function(){return this._complete}}});var $X=Kxe;function Zxe(e){}Zxe.prototype.emit=function(e){de.throwInstantiationError()};var QX=Zxe;var $xe=new z(1,1);function zF(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;u(t)||(t=new OF(.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,$xe))),this._maximumImageSize=z.clone(y(e.imageSize,y(e.maximumImageSize,$xe))),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(zF.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 oyt(e){let t=e._emissionRate,n=e._maximumParticleLife,i=0,o=e._bursts;if(u(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,l=e._particlePool,f=Math.max(a-c.length-l.length,0);for(let d=0;d<f;++d){let p=new zS;p._billboard=r.add({image:s,show:!1}),l.push(p)}e._particleEstimate=a}function ryt(e){let t=e._particlePool.pop();return u(t)||(t=new zS),t}function syt(e,t){e._particlePool.push(t)}function ayt(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 l=n[c];i.remove(l._billboard)}n.length=a}function cyt(e){u(e._billboard)&&(e._billboard.show=!1)}function Qxe(e,t){let n=t._billboard;u(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=P.lerp(t.startColor.red,t.endColor.red,t.normalizedAge),o=P.lerp(t.startColor.green,t.endColor.green,t.normalizedAge),r=P.lerp(t.startColor.blue,t.endColor.blue,t.normalizedAge),s=P.lerp(t.startColor.alpha,t.endColor.alpha,t.normalizedAge);n.color=new H(i,o,r,s),n.scale=P.lerp(t.startScale,t.endScale,t.normalizedAge)}function lyt(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=P.randomBetween(e._minimumParticleLife,e._maximumParticleLife),t.mass=P.randomBetween(e._minimumMass,e._maximumMass),t.imageSize.x=P.randomBetween(e._minimumImageSize.x,e._maximumImageSize.x),t.imageSize.y=P.randomBetween(e._minimumImageSize.y,e._maximumImageSize.y),t._normalizedAge=0,t._age=0;let n=P.randomBetween(e._minimumSpeed,e._maximumSpeed);h.multiplyByScalar(t.velocity,n,t.velocity),e._particles.push(t)}function uyt(e,t){if(e._isComplete)return 0;t=P.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),u(e.bursts)){let o=e.bursts.length;for(let r=0;r<o;r++){let s=e.bursts[r],a=e._currentTime;u(s)&&!s._complete&&a>s.time&&(i+=P.randomBetween(s.minimum,s.maximum),s._complete=!0)}}return i}var N8=new h;zF.prototype.update=function(e){if(!this.show)return;u(this._billboardCollection)||(this._billboardCollection=new uu),this._updateParticlePool&&(oyt(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)?Qxe(this,s):(cyt(s),syt(this,s),n[r]=n[a-1],--r,--a);n.length=a;let c=uyt(this,t);if(c>0&&u(i)){this._matrixDirty&&(this._combinedMatrix=F.multiply(this.modelMatrix,this.emitterModelMatrix,this._combinedMatrix),this._matrixDirty=!1);let l=this._combinedMatrix;for(r=0;r<c;r++)s=ryt(this),this._emitter.emit(s),h.add(s.position,s.velocity,N8),F.multiplyByPoint(l,N8,N8),s.position=F.multiplyByPoint(l,s.position,s.position),h.subtract(N8,s.position,s.velocity),h.normalize(s.velocity,s.velocity),lyt(this,s),Qxe(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=P.mod(this._currentTime,this._lifetime),this.bursts){let l=this.bursts.length;for(r=0;r<l;r++)this.bursts[r]._complete=!1}}else this._isComplete=!0,this._complete.raiseEvent(this);e.frameNumber%120===0&&ayt(this)};zF.prototype.isDestroyed=function(){return!1};zF.prototype.destroy=function(){return this._billboardCollection=this._billboardCollection&&this._billboardCollection.destroy(),le(this)};var JX=zF;var tbe=ro(h3(),1);function fyt(e,t,n){return` float clipDistance = clip(gl_FragCoord, ${e}, ${t});
  11132. vec4 clippingPlanesEdgeColor = vec4(1.0);
  11133. clippingPlanesEdgeColor.rgb = ${n}.rgb;
  11134. float clippingPlanesEdgeWidth = ${n}.a;
  11135. if (clipDistance > 0.0 && clipDistance < clippingPlanesEdgeWidth)
  11136. {
  11137. out_FragColor = clippingPlanesEdgeColor;
  11138. }
  11139. `}var HF=fyt;var dyt={modifyFragmentShader:function(t){return t=Ue.replaceMain(t,"czm_splitter_main"),t+=`uniform float czm_splitDirection;
  11140. void main()
  11141. {
  11142. #ifndef SHADOW_MAP
  11143. if (czm_splitDirection < 0.0 && gl_FragCoord.x > czm_splitPosition) discard;
  11144. if (czm_splitDirection > 0.0 && gl_FragCoord.x < czm_splitPosition) discard;
  11145. #endif
  11146. czm_splitter_main();
  11147. }
  11148. `,t},addUniforms:function(t,n){n.czm_splitDirection=function(){return t.splitDirection}}},HS=dyt;var NT={NEEDS_DECODE:0,DECODING:1,READY:2,FAILED:3};function GF(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=NT.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,kc.NONE),this._splittingEnabled=!1,this._error=void 0,hyt(this,e)}Object.defineProperties(GF.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(u(this._drawCommand))return this._drawCommand.boundingVolume},set:function(e){this._boundingSphere=se.clone(e,this._boundingSphere)}}});function hyt(e,t){let n=Wx.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&&u(n.batchTableBinary)&&(n.styleableProperties=Tp.getBinaryProperties(n.pointsLength,n.batchTableJson,n.batchTableBinary)),u(n.draco)){let a=n.draco;e._decodingState=NT.NEEDS_DECODE,a.dequantizeInShader=e._dequantizeInShader}let i=n.positions;u(i)&&(e._isQuantized=i.isQuantized,e._quantizedVolumeScale=i.quantizedVolumeScale,e._quantizedVolumeOffset=i.quantizedVolumeOffset,e._quantizedRange=i.quantizedRange);let o=n.normals;u(o)&&(e._isOctEncoded16P=o.octEncoded);let r=n.colors;u(r)&&(u(r.constantColor)&&(e._constantColor=H.clone(r.constantColor,e._constantColor),e._hasColors=!1),e._isRGB565=r.isRGB565);let s=n.batchIds;u(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 myt=new h,pyt=new h,_yt=new h,Jxe,F8;function gyt(e){if(!u(F8)){Jxe=new tbe.default(0),F8=new Array(e);for(let t=0;t<e;++t)F8[t]=Jxe.random()}return F8}function yyt(e){let n=e.length/3,i=Math.min(n,20),o=gyt(20),r=Number.MAX_VALUE,s=-Number.MAX_VALUE,a=h.fromElements(r,r,r,myt),c=h.fromElements(s,s,s,pyt);for(let f=0;f<i;++f){let d=Math.floor(o[f]*n),p=h.unpack(e,d*3,_yt);h.minimumByComponent(a,p,a),h.maximumByComponent(c,p,c)}let l=se.fromCornerPoints(a,c);return l.radius+=P.EPSILON2,l}function ebe(e,t){let n=X.fromTypedArray(e);return n===X.INT||n===X.UNSIGNED_INT||n===X.DOUBLE?(Dt("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 xyt=new oe,byt=new oe,Tyt=new H,nbe=0,B8=1,oK=2,ibe=3,Ayt=4,eK=new F,Cyt=new F;function Eyt(e,t){let n=t.context,i=e._parsedContent,o=e._pointsLength,r=i.positions,s=i.colors,a=i.normals,c=i.batchIds,l=i.styleableProperties,f=u(l),d=e._isQuantized,p=e._isQuantizedDraco,g=e._isOctEncoded16P,m=e._isOctEncodedDraco,x=e._quantizedRange,b=e._octEncodedRange,T=e._isRGB565,A=e._isTranslucent,C=e._hasColors,S=e._hasNormals,w=e._hasBatchIds,D,O,R=[],L={};if(e._styleableShaderAttributes=L,f){let U=Ayt;for(let G in l)if(l.hasOwnProperty(G)){let k=l[G],Y=ebe(k.typedArray,G);D=k.componentCount,O=X.fromTypedArray(Y);let j=ct.createVertexBuffer({context:n,typedArray:Y,usage:Ne.STATIC_DRAW});e._geometryByteLength+=j.sizeInBytes;let $={index:U,vertexBuffer:j,componentsPerAttribute:D,componentDatatype:O,normalize:!1,offsetInBytes:0,strideInBytes:0};R.push($),L[G]={location:U,componentCount:D},++U}}let N=ct.createVertexBuffer({context:n,typedArray:r.typedArray,usage:Ne.STATIC_DRAW});e._geometryByteLength+=N.sizeInBytes;let _;C&&(_=ct.createVertexBuffer({context:n,typedArray:s.typedArray,usage:Ne.STATIC_DRAW}),e._geometryByteLength+=_.sizeInBytes);let E;S&&(E=ct.createVertexBuffer({context:n,typedArray:a.typedArray,usage:Ne.STATIC_DRAW}),e._geometryByteLength+=E.sizeInBytes);let v;w&&(c.typedArray=ebe(c.typedArray,"batchIds"),v=ct.createVertexBuffer({context:n,typedArray:c.typedArray,usage:Ne.STATIC_DRAW}),e._geometryByteLength+=v.sizeInBytes);let I=[];if(d?O=X.UNSIGNED_SHORT:p?O=x<=255?X.UNSIGNED_BYTE:X.UNSIGNED_SHORT:O=X.FLOAT,I.push({index:nbe,vertexBuffer:N,componentsPerAttribute:3,componentDatatype:O,normalize:!1,offsetInBytes:0,strideInBytes:0}),e._cull&&(d||p?e._boundingSphere=se.fromCornerPoints(h.ZERO,e._quantizedVolumeScale):e._boundingSphere=yyt(r.typedArray)),C)if(T)I.push({index:B8,vertexBuffer:_,componentsPerAttribute:1,componentDatatype:X.UNSIGNED_SHORT,normalize:!1,offsetInBytes:0,strideInBytes:0});else{let U=A?4:3;I.push({index:B8,vertexBuffer:_,componentsPerAttribute:U,componentDatatype:X.UNSIGNED_BYTE,normalize:!0,offsetInBytes:0,strideInBytes:0})}S&&(g?(D=2,O=X.UNSIGNED_BYTE):m?(D=2,O=b<=255?X.UNSIGNED_BYTE:X.UNSIGNED_SHORT):(D=3,O=X.FLOAT),I.push({index:oK,vertexBuffer:E,componentsPerAttribute:D,componentDatatype:O,normalize:!1,offsetInBytes:0,strideInBytes:0})),w&&I.push({index:ibe,vertexBuffer:v,componentsPerAttribute:1,componentDatatype:X.fromTypedArray(c.typedArray),normalize:!1,offsetInBytes:0,strideInBytes:0}),f&&(I=I.concat(R));let M=new ni({context:n,attributes:I}),B={depthTest:{enabled:!0}},V={depthTest:{enabled:!0},depthMask:!1,blending:un.ALPHA_BLEND};e._opaquePass===Ee.CESIUM_3D_TILE&&(B.stencilTest=Lt.setCesium3DTileBit(),B.stencilMask=Lt.CESIUM_3D_TILE_MASK,V.stencilTest=Lt.setCesium3DTileBit(),V.stencilMask=Lt.CESIUM_3D_TILE_MASK),e._opaqueRenderState=ke.fromCache(B),e._translucentRenderState=ke.fromCache(V),e._drawCommand=new Je({boundingVolume:new se,cull:e._cull,modelMatrix:new F,primitiveType:Me.POINTS,vertexArray:M,count:o,shaderProgram:void 0,uniformMap:void 0,renderState:A?e._translucentRenderState:e._opaqueRenderState,pass:A?Ee.TRANSLUCENT:e._opaquePass,owner:e,castShadows:!1,receiveShadows:!1,pickId:e._pickIdLoaded()})}function Syt(e,t){let n=t.context,i=e._isQuantized,o=e._isQuantizedDraco,r=e._isOctEncodedDraco,s={u_pointSizeAndTimeAndGeometricErrorAndDepthMultiplier:function(){let a=xyt;if(a.x=e._attenuation?e.maximumAttenuation:e._pointSize,a.x*=t.pixelRatio,a.y=e.time,e._attenuation){let c=t.camera.frustum,l;t.mode===te.SCENE2D||c instanceof $t?l=Number.POSITIVE_INFINITY:l=n.drawingBufferHeight/t.camera.frustum.sseDenominator,a.z=e.geometricError*e.geometricErrorScale,a.w=l}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(!u(a))return H.TRANSPARENT;let c=H.clone(a.edgeColor,Tyt);return c.alpha=a.edgeWidth,c},u_clippingPlanesMatrix:function(){let a=e.clippingPlanes;if(!u(a))return F.IDENTITY;let c=y(e.clippingPlanesOriginMatrix,e._modelMatrix);F.multiply(n.uniformState.view3D,c,eK);let l=F.multiply(eK,a.modelMatrix,eK);return F.inverseTranspose(l,Cyt)}};HS.addUniforms(e,s),(i||o||r)&&(s=gt(s,{u_quantizedVolumeScaleAndOctEncodedRange:function(){let a=byt;if(u(e._quantizedVolumeScale)){let c=h.clone(e._quantizedVolumeScale,a);h.divideByScalar(c,e._quantizedRange,a)}return a.w=e._octEncodedRange,a}})),u(e._uniformMapLoaded)&&(s=e._uniformMapLoaded(s)),e._drawCommand.uniformMap=s}function tK(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 nK(e,t){e=e.slice(e.indexOf(`
  11149. `));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 iK(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 wyt={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 vyt(e,t,n){let i,o,r,s=t.context,a=u(n),c=e._isQuantized,l=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,A=e._normalShading,C=e._drawCommand.vertexArray,S=e.clippingPlanes,w=e._attenuation,D,O,R,L=g,N=He(wyt),_={},E=e._styleableShaderAttributes;for(o in E)E.hasOwnProperty(o)&&(r=E[o],N[o]=`czm_3dtiles_property_${r.location}`,_[r.location]=r);if(a){let re={translucent:!1},ye="(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${ye}`,N,re),O=n.getShowShaderFunction(`getShowFromStyle${ye}`,N,re),R=n.getPointSizeShaderFunction(`getPointSizeFromStyle${ye}`,N,re),u(D)&&re.translucent&&(L=!0)}e._styleTranslucent=L;let v=u(D),I=u(O),M=u(R),B=e.isClipped,V=[],U=[];v&&(tK(D,V),nK(D,U)),I&&(tK(O,V),nK(O,U)),M&&(tK(R,V),nK(R,U));let G=U.indexOf("COLOR")>=0,k=U.indexOf("NORMAL")>=0;if(k&&!x)throw new ue("Style references the NORMAL semantic but the point cloud does not have normals");for(o in E)if(E.hasOwnProperty(o)){r=E[o];let re=V.indexOf(r.location)>=0,ye=iK(C,r.location);ye.enabled=re}let Y=m&&(!v||G);if(m){let re=iK(C,B8);re.enabled=Y}let j=x&&(A||T||k);if(x){let re=iK(C,oK);re.enabled=j}let $={a_position:nbe};Y&&($.a_color=B8),j&&($.a_normal=oK),b&&($.a_batchId=ibe);let W="",K=V.length;for(i=0;i<K;++i){let re=V[i];r=_[re];let ye=r.componentCount,ge=`czm_3dtiles_property_${re}`,Ae;ye===1?Ae="float":Ae=`vec${ye}`,W+=`in ${Ae} ${ge};
  11150. `,$[ge]=r.location}Syt(e,t);let Z=`in vec3 a_position;
  11151. out vec4 v_color;
  11152. uniform vec4 u_pointSizeAndTimeAndGeometricErrorAndDepthMultiplier;
  11153. uniform vec4 u_constantColor;
  11154. uniform vec4 u_highlightColor;
  11155. `;Z+=`float u_pointSize;
  11156. float tiles3d_tileset_time;
  11157. `,w&&(Z+=`float u_geometricError;
  11158. float u_depthMultiplier;
  11159. `),Z+=W,Y&&(g?Z+=`in vec4 a_color;
  11160. `:p?Z+=`in float a_color;
  11161. const float SHIFT_RIGHT_11 = 1.0 / 2048.0;
  11162. const float SHIFT_RIGHT_5 = 1.0 / 32.0;
  11163. const float SHIFT_LEFT_11 = 2048.0;
  11164. const float SHIFT_LEFT_5 = 32.0;
  11165. const float NORMALIZE_6 = 1.0 / 64.0;
  11166. const float NORMALIZE_5 = 1.0 / 32.0;
  11167. `:Z+=`in vec3 a_color;
  11168. `),j&&(f||d?Z+=`in vec2 a_normal;
  11169. `:Z+=`in vec3 a_normal;
  11170. `),b&&(Z+=`in float a_batchId;
  11171. `),(c||l||d)&&(Z+=`uniform vec4 u_quantizedVolumeScaleAndOctEncodedRange;
  11172. `),v&&(Z+=D),I&&(Z+=O),M&&(Z+=R),Z+=`void main()
  11173. {
  11174. u_pointSize = u_pointSizeAndTimeAndGeometricErrorAndDepthMultiplier.x;
  11175. tiles3d_tileset_time = u_pointSizeAndTimeAndGeometricErrorAndDepthMultiplier.y;
  11176. `,w&&(Z+=` u_geometricError = u_pointSizeAndTimeAndGeometricErrorAndDepthMultiplier.z;
  11177. u_depthMultiplier = u_pointSizeAndTimeAndGeometricErrorAndDepthMultiplier.w;
  11178. `),Y?g?Z+=` vec4 color = a_color;
  11179. `:p?Z+=` float compressed = a_color;
  11180. float r = floor(compressed * SHIFT_RIGHT_11);
  11181. compressed -= r * SHIFT_LEFT_11;
  11182. float g = floor(compressed * SHIFT_RIGHT_5);
  11183. compressed -= g * SHIFT_LEFT_5;
  11184. float b = compressed;
  11185. vec3 rgb = vec3(r * NORMALIZE_5, g * NORMALIZE_6, b * NORMALIZE_5);
  11186. vec4 color = vec4(rgb, 1.0);
  11187. `:Z+=` vec4 color = vec4(a_color, 1.0);
  11188. `:Z+=` vec4 color = u_constantColor;
  11189. `,c||l?Z+=` vec3 position = a_position * u_quantizedVolumeScaleAndOctEncodedRange.xyz;
  11190. `:Z+=` vec3 position = a_position;
  11191. `,Z+=` vec3 position_absolute = vec3(czm_model * vec4(position, 1.0));
  11192. `,j?(f?Z+=` vec3 normal = czm_octDecode(a_normal);
  11193. `:d?Z+=` vec3 normal = czm_octDecode(a_normal, u_quantizedVolumeScaleAndOctEncodedRange.w).zxy;
  11194. `:Z+=` vec3 normal = a_normal;
  11195. `,Z+=` vec3 normalEC = czm_normal * normal;
  11196. `):Z+=` vec3 normal = vec3(1.0);
  11197. `,v&&(Z+=` color = getColorFromStyle(position, position_absolute, color, normal);
  11198. `),I&&(Z+=` float show = float(getShowFromStyle(position, position_absolute, color, normal));
  11199. `),M?Z+=` gl_PointSize = getPointSizeFromStyle(position, position_absolute, color, normal) * czm_pixelRatio;
  11200. `:w?Z+=` vec4 positionEC = czm_modelView * vec4(position, 1.0);
  11201. float depth = -positionEC.z;
  11202. gl_PointSize = min((u_geometricError / depth) * u_depthMultiplier, u_pointSize);
  11203. `:Z+=` gl_PointSize = u_pointSize;
  11204. `,Z+=` color = color * u_highlightColor;
  11205. `,j&&A&&(Z+=` float diffuseStrength = czm_getLambertDiffuse(czm_lightDirectionEC, normalEC);
  11206. diffuseStrength = max(diffuseStrength, 0.4);
  11207. color.xyz *= diffuseStrength * czm_lightColor;
  11208. `),Z+=` v_color = color;
  11209. gl_Position = czm_modelViewProjection * vec4(position, 1.0);
  11210. `,j&&T&&(Z+=` float visible = step(-normalEC.z, 0.0);
  11211. gl_Position *= visible;
  11212. gl_PointSize *= visible;
  11213. `),I&&(Z+=` gl_Position.w *= float(show);
  11214. gl_PointSize *= float(show);
  11215. `),Z+=`}
  11216. `;let me=`in vec4 v_color;
  11217. `;B&&(me+=`uniform highp sampler2D u_clippingPlanes;
  11218. uniform mat4 u_clippingPlanesMatrix;
  11219. uniform vec4 u_clippingPlanesEdgeStyle;
  11220. `,me+=`
  11221. `,me+=R_(S,s),me+=`
  11222. `),me+=`void main()
  11223. {
  11224. out_FragColor = czm_gammaCorrect(v_color);
  11225. `,B&&(me+=HF("u_clippingPlanes","u_clippingPlanesMatrix","u_clippingPlanesEdgeStyle")),me+=`}
  11226. `,e.splitDirection!==kc.NONE&&(me=HS.modifyFragmentShader(me)),u(e._vertexShaderLoaded)&&(Z=e._vertexShaderLoaded(Z)),u(e._fragmentShaderLoaded)&&(me=e._fragmentShaderLoaded(me));let xe=e._drawCommand;u(xe.shaderProgram)&&xe.shaderProgram.destroy(),xe.shaderProgram=Yt.fromCache({context:s,vertexShaderSource:Z,fragmentShaderSource:me,attributeLocations:$});try{xe.shaderProgram._bind()}catch{throw new ue("Error generating style shader: this may be caused by a type mismatch, index out-of-bounds, or other syntax error.")}}function Dyt(e,t){if(e._decodingState===NT.READY)return!1;if(e._decodingState===NT.NEEDS_DECODE){let n=e._parsedContent,i=n.draco,o=Ip.decodePointCloud(i,t);u(o)&&(e._decodingState=NT.DECODING,o.then(function(r){e._decodingState=NT.READY;let s=u(r.POSITION)?r.POSITION.array:void 0,a=u(r.RGB)?r.RGB.array:void 0,c=u(r.RGBA)?r.RGBA.array:void 0,l=u(r.NORMAL)?r.NORMAL.array:void 0,f=u(r.BATCH_ID)?r.BATCH_ID.array:void 0,d=u(s)&&u(r.POSITION.data.quantization),p=u(l)&&u(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];u(g)||(g={}),g[b]={typedArray:T.array,componentCount:T.data.componentsPerAttribute}}u(s)&&(n.positions={typedArray:s});let x=y(c,a);u(x)&&(n.colors={typedArray:x}),u(l)&&(n.normals={typedArray:l}),u(f)&&(n.batchIds={typedArray:f}),n.styleableProperties=g}).catch(function(r){e._decodingState=NT.FAILED,e._error=r}))}return!0}var Iyt=new oe,Pyt=new h;GF.prototype.update=function(e){let t=e.context;if(u(this._error)){let l=this._error;throw this._error=void 0,l}if(Dyt(this,t))return;let i=!1,o=!F.equals(this._modelMatrix,this.modelMatrix);if(this._mode!==e.mode&&(this._mode=e.mode,o=!0),u(this._drawCommand)||(Eyt(this,e),o=!0,i=!0,this._ready=!0,this._parsedContent=void 0),o){F.clone(this.modelMatrix,this._modelMatrix);let l=this._drawCommand.modelMatrix;if(F.clone(this._modelMatrix,l),u(this._rtcCenter)&&F.multiplyByTranslation(l,this._rtcCenter,l),u(this._quantizedVolumeOffset)&&F.multiplyByTranslation(l,this._quantizedVolumeOffset,l),e.mode!==te.SCENE3D){let d=e.mapProjection,p=F.getColumn(l,3,Iyt);oe.equals(p,oe.UNIT_W)||Rt.basisTo2D(d,l,l)}let f=this._drawCommand.boundingVolume;if(se.clone(this._boundingSphere,f),this._cull){let d=f.center;F.multiplyByPoint(l,d,d);let p=F.getScale(l,Pyt);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!==kc.NONE;this._splittingEnabled!==r&&(this._splittingEnabled=r,i=!0),i&&vyt(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)};GF.prototype.isDestroyed=function(){return!1};GF.prototype.destroy=function(){let e=this._drawCommand;return u(e)&&(e.vertexArray=e.vertexArray&&e.vertexArray.destroy(),e.shaderProgram=e.shaderProgram&&e.shaderProgram.destroy()),le(this)};var WF=GF;function Wu(){de.throwInstantiationError()}Wu.computeDefaultLevelZeroMaximumGeometricError=function(e){return e.ellipsoid.maximumRadius*2*Math.PI*.25/(65*e.getNumberOfXTilesAtLevel(0))};Object.defineProperties(Wu.prototype,{quadtree:{get:de.throwInstantiationError,set:de.throwInstantiationError},tilingScheme:{get:de.throwInstantiationError},errorEvent:{get:de.throwInstantiationError}});Wu.prototype.update=de.throwInstantiationError;Wu.prototype.beginUpdate=de.throwInstantiationError;Wu.prototype.endUpdate=de.throwInstantiationError;Wu.prototype.getLevelMaximumGeometricError=de.throwInstantiationError;Wu.prototype.loadTile=de.throwInstantiationError;Wu.prototype.computeTileVisibility=de.throwInstantiationError;Wu.prototype.showTileThisFrame=de.throwInstantiationError;Wu.prototype.computeDistanceToTile=de.throwInstantiationError;Wu.prototype.isDestroyed=de.throwInstantiationError;Wu.prototype.destroy=de.throwInstantiationError;var rK=Wu;function Jf(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.keyframeNodes=[],this.renderableKeyframeNodes=[],this.renderableKeyframeNodeLerp=0,this.renderableKeyframeNodePrevious=void 0,this.renderableKeyframeNodeNext=void 0,this.orientedBoundingBox=new In,this.approximateVoxelSize=0,this.screenSpaceError=0,this.visitedFrameNumber=-1,this.computeBoundingVolumes(r,s)}var Oyt=new h;Jf.prototype.computeBoundingVolumes=function(e,t){this.orientedBoundingBox=e.computeOrientedBoundingBoxForTile(this.level,this.x,this.y,this.z,this.orientedBoundingBox);let n=Q.getScale(this.orientedBoundingBox.halfAxes,Oyt),i=2*h.maximumComponent(n);this.approximateVoxelSize=i/h.minimumComponent(t)};Jf.prototype.constructChildNodes=function(e,t){let{level:n,x:i,y:o,z:r}=this,s=i*2,a=o*2,c=r*2,l=a+1,f=s+1,d=c+1,p=n+1,g=[[p,s,a,c],[p,f,a,c],[p,s,l,c],[p,f,l,c],[p,s,a,d],[p,f,a,d],[p,s,l,d],[p,f,l,d]];this.children=g.map(([m,x,b,T])=>new Jf(m,x,b,T,this,e,t))};Jf.prototype.visibility=function(e,t){let n=this.orientedBoundingBox;return e.cullingVolume.computeVisibilityWithPlaneMask(n,t)};Jf.prototype.computeScreenSpaceError=function(e,t){let n=this.orientedBoundingBox,i=Math.sqrt(n.distanceSquaredTo(e));i=Math.max(i,P.EPSILON7);let o=this.approximateVoxelSize,r=t*(o/i);this.screenSpaceError=r};var obe={keyframe:0};function jF(e,t){return obe.keyframe=e,Do(t,obe,Ki.searchComparator)}Jf.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(;u(t);){let{renderableKeyframeNodes:d}=t;if(d.length>=1){let p=Ryt(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=rbe(n-t.level,b);T<a&&(a=T,r=g);let A=x.keyframe-o,C=rbe(n-t.level,A);if(C<c&&(c=C,s=x),b===0&&A===0)break}t=t.parent}if(this.renderableKeyframeNodePrevious=r,this.renderableKeyframeNodeNext=s,!u(r)||!u(s))return;let l=r.keyframe,f=s.keyframe;this.renderableKeyframeNodeLerp=l===f?0:P.clamp((e-l)/(f-l),0,1)};function Ryt(e,t){let n=jF(e,t);return n<0?P.clamp(~n-1,0,t.length-1):n}function rbe(e,t){let n=Math.exp(e*4),i=t>=0?1:-200;return e*n+t*i}Jf.prototype.isVisited=function(e){return this.visitedFrameNumber===e};Jf.prototype.createKeyframeNode=function(e){let t=jF(e,this.keyframeNodes);if(t<0){t=~t;let n=new Ki(this,e);this.keyframeNodes.splice(t,0,n)}};Jf.prototype.destroyKeyframeNode=function(e,t){let n=e.keyframe,i=jF(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=jF(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.metadatas={},e.megatextureIndex=-1,e.priority=-Number.MAX_VALUE,e.highPriorityFrameNumber=-1};Jf.prototype.addKeyframeNodeToMegatextures=function(e,t){if(e.state!==Ki.LoadState.RECEIVED||e.megatextureIndex!==-1||e.metadatas.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.metadatas[o]),e.metadatas[o]=void 0}e.state=Ki.LoadState.LOADED;let n=this.renderableKeyframeNodes,i=jF(e.keyframe,n);if(i>=0)throw new de("Keyframe already renderable");i=~i,n.splice(i,0,e)};Jf.prototype.isRenderable=function(e){let t=this.renderableKeyframeNodePrevious,n=this.renderableKeyframeNodeNext,i=this.level;return u(t)&&u(n)&&(t.spatialNode.level===i||n.spatialNode.level===i)&&this.visitedFrameNumber===e};var qF=Jf;function sK(e){e=y(e,1),this._radius=y(e,1)}Object.defineProperties(sK.prototype,{radius:{get:function(){return this._radius},set:function(e){this._radius=e}}});sK.prototype.emit=function(e){let t=P.randomBetween(0,P.TWO_PI),n=P.randomBetween(0,P.PI),i=P.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 aK=sK;function YF(){}YF.prototype.evaluate=function(e,t){de.throwInstantiationError()};YF.prototype.evaluateColor=function(e,t){de.throwInstantiationError()};YF.prototype.getShaderFunction=function(e,t,n,i){de.throwInstantiationError()};YF.prototype.getVariables=function(){de.throwInstantiationError()};var cK=YF;function k8(e){this._ready=!1,this._provider=void 0,this._errorEvent=new pe,this._readyEvent=new pe,Lyt(this,e)}Object.defineProperties(k8.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}}});k8.fromWorldTerrain=function(e){return new k8(vT(e))};function Myt(e,t){e.numberOfListeners>0?e.raiseEvent(t):console.error(t)}async function Lyt(e,t){let n;try{n=await Promise.resolve(t),e._provider=n,e._ready=!0,e._readyEvent.raiseEvent(n)}catch(i){Myt(e._errorEvent,i)}}var XF=k8;function GS(){}GS.prototype.boundingVolume=void 0;GS.prototype.boundingSphere=void 0;GS.prototype.distanceToCamera=function(e){de.throwInstantiationError()};GS.prototype.intersectPlane=function(e){de.throwInstantiationError()};GS.prototype.createDebugVolume=function(e){de.throwInstantiationError()};var lK=GS;function KF(e){e=y(e,y.EMPTY_OBJECT),this._tilingScheme=u(e.tilingScheme)?e.tilingScheme:new zi({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(KF.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}}});KF.prototype.getTileCredits=function(e,t,n){};KF.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)};KF.prototype.pickFeatures=function(e,t,n,i,o){};var ZF=KF;function uK(e){de.throwInstantiationError()}uK.prototype.isReady=de.throwInstantiationError;uK.prototype.shouldDiscardImage=de.throwInstantiationError;var fK=uK;var Nyt={START:0,LOADING:1,READY:2,UPSAMPLED_ONLY:3},dK=Object.freeze(Nyt);function BT(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 $h(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 Np,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(BT.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(u(this._lastRenderedFrame))return this._lastRenderedFrame.pointCloud.boundingSphere}}});function Fyt(e){return`uniform vec4 czm_pickColor;
  11227. ${e}`}function Byt(e){return function(t){return gt(t,{czm_pickColor:function(){return e._pickId.color}})}}function kyt(){return"czm_pickColor"}BT.prototype.makeStyleDirty=function(){this._styleDirty=!0};BT.prototype._getAverageLoadTime=function(){return this._runningLength===0?.05:this._runningAverage};var Uyt=new J;function mK(e){let t=e._clock,n=t.canAnimate&&t.shouldAnimate,i=t.multiplier;return n?i:0}function FT(e,t){return e._intervals.indexOf(t.start)}function Vyt(e,t){let n=e._intervals,i=e._clock,o=mK(e);if(o===0)return;let r=e._getAverageLoadTime(),s=J.addSeconds(i.currentTime,r*o,Uyt),a=n.indexOf(s),c=FT(e,t);return a===c&&(o>=0?++a:--a),n.get(a)}function zyt(e){let t=e._intervals,i=e._clock.currentTime,o=t.indexOf(i);return t.get(o)}function Hyt(e,t,n){let i=mK(e),o=FT(e,t),r=FT(e,n);return i>=0?o>=r:o<=r}function abe(e,t){return function(n){let i=u(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 Gyt(e,t,n){let i=FT(e,t),o=e._frames,r=o[i];if(!u(r)){let s=t.data.transform,a=u(s)?F.fromArray(s):void 0,c=t.data.uri;r={pointCloud:void 0,transform:a,timestamp:_i(),sequential:!0,ready:!1,touchedFrameNumber:n.frameNumber,uri:c},o[i]=r,ve.fetchArrayBuffer({url:c}).then(function(l){r.pointCloud=new WF({arrayBuffer:l,cull:!0,fragmentShaderLoaded:Fyt,uniformMapLoaded:Byt(e),pickIdLoaded:kyt})}).catch(abe(e,c))}return r}function Wyt(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 jyt(e,t,n,i){t.touchedFrameNumber<i.frameNumber-1&&(t.sequential=!1);let o=t.pointCloud;if(u(o)&&!t.ready){let r=i.commandList,s=r.length;if(cbe(e,t,n,i),o.ready&&(t.ready=!0,e._totalMemoryUsageInBytes+=o.geometryByteLength,r.length=s,t.sequential)){let a=(_i()-t.timestamp)/1e3;Wyt(e,a)}}t.touchedFrameNumber=i.frameNumber}var qyt=new F;function Yyt(e,t){let n=e.shading;return u(n)&&u(n.baseResolution)?n.baseResolution:u(t.boundingSphere)?P.cbrt(t.boundingSphere.volume()/t.pointsLength):0}function Xyt(e){let t=e.shading;return u(t)&&u(t.maximumAttenuation)?t.maximumAttenuation:10}var Kyt=new $h;function cbe(e,t,n,i){let o=y(e.shading,Kyt),r=t.pointCloud,s=y(t.transform,F.IDENTITY);r.modelMatrix=F.multiplyTransformation(e.modelMatrix,s,qyt),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=Yyt(e,r),r.geometricErrorScale=o.geometricErrorScale,r.maximumAttenuation=Xyt(e);try{r.update(i)}catch(a){abe(e,t.uri)(a)}t.touchedFrameNumber=i.frameNumber}function hK(e,t,n,i){let o=Gyt(e,t,i);jyt(e,o,n,i)}function Zyt(e){return function(t){return t.touchedFrameNumber<e.frameNumber}}function lbe(e,t){let n=e._frames,i=n.length;for(let o=0;o<i;++o){let r=n[o];if(u(r)&&(!u(t)||t(r))){let s=r.pointCloud;r.ready&&(e._totalMemoryUsageInBytes-=s.geometryByteLength),u(s)&&s.destroy(),r===e._lastRenderedFrame&&(e._lastRenderedFrame=void 0),n[o]=void 0}}}function $yt(e,t){let n=FT(e,t),i=e._frames[n];if(u(i)&&i.ready)return i}function sbe(e,t,n,i,o){return u(n)?n.ready?!0:(hK(e,t,i,o),n.ready):!1}function Qyt(e,t,n,i,o){let r,s,a,c=e._intervals,l=e._frames,f=FT(e,n),d=FT(e,t);if(f>=d){for(r=f;r>=d;--r)if(s=c.get(r),a=l[r],sbe(e,s,a,i,o))return s}else for(r=f;r<=d;++r)if(s=c.get(r),a=l[r],sbe(e,s,a,i,o))return s;return t}function Jyt(e,t,n){let i=e._frames,o=i.length;for(let r=0;r<o;++r){let s=i[r];u(s)&&u(s.pointCloud)&&(s.pointCloud.clippingPlanesDirty=t,s.pointCloud.styleDirty=n)}}var WS={timeSinceLoad:0,isClipped:!1,clippingPlanesDirty:!1};BT.prototype.update=function(e){if(e.mode===te.MORPHING||!this.show)return;u(this._pickId)||(this._pickId=e.context.createPickId({primitive:this})),u(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=u(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)&&Jyt(this,o,s),WS.timeSinceLoad=t,WS.isClipped=r;let a=this.shading,c=this._pointCloudEyeDomeLighting,l=e.commandList,f=l.length,d=this._previousInterval,p=this._nextInterval,g=zyt(this);if(!u(g))return;let m=!1,x=mK(this),b=x===0;x!==this._clockMultiplier&&(m=!0,this._clockMultiplier=x),(!u(d)||b)&&(d=g),(!u(p)||m||Hyt(this,g,p))&&(p=Vyt(this,g)),d=Qyt(this,d,g,WS,e);let T=$yt(this,d);u(T)||(hK(this,d,WS,e),T=this._lastRenderedFrame),u(T)&&cbe(this,T,WS,e),u(p)&&hK(this,p,WS,e);let A=this;u(T)&&!u(this._lastRenderedFrame)&&e.afterRender.push(function(){return!0}),u(T)&&T!==this._lastRenderedFrame&&A.frameChanged.numberOfListeners>0&&e.afterRender.push(function(){return A.frameChanged.raiseEvent(A),!0}),this._previousInterval=d,this._nextInterval=p,this._lastRenderedFrame=T;let C=this._totalMemoryUsageInBytes,S=this.maximumMemoryUsage*1024*1024;C>S&&lbe(this,Zyt(e));let D=l.length-f;u(a)&&a.attenuation&&a.eyeDomeLighting&&D>0&&c.update(e,f,a,this.boundingSphere)};BT.prototype.isDestroyed=function(){return!1};BT.prototype.destroy=function(){return lbe(this),this._clippingPlanes=this._clippingPlanes&&this._clippingPlanes.destroy(),this._pickId=this._pickId&&this._pickId.destroy(),le(this)};var jS=BT;function U8(e,t){this.show=!0,u(e)||(e=new We),this.rectangle=We.clone(e),u(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}U8.prototype.update=function(e){if(!this.show)return;let t=this._rs;if((!u(t)||!We.equals(t.viewport,this.rectangle))&&(this._rs=ke.fromCache({blending:un.ALPHA_BLEND,viewport:this.rectangle})),e.passes.render){let i=e.context;if(this._material!==this.material||!u(this._overlayCommand)){this._material=this.material,u(this._overlayCommand)&&this._overlayCommand.shaderProgram.destroy();let o=new Ue({sources:[this._material.shaderSource,mF]});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)}};U8.prototype.isDestroyed=function(){return!1};U8.prototype.destroy=function(){return u(this._overlayCommand)&&(this._overlayCommand.shaderProgram=this._overlayCommand.shaderProgram&&this._overlayCommand.shaderProgram.destroy()),le(this)};var pK=U8;var $F=`// See Intersection.glsl for the definition of intersectScene
  11228. // See IntersectionUtils.glsl for the definition of nextIntersection
  11229. // See convertUvToBox.glsl, convertUvToCylinder.glsl, or convertUvToEllipsoid.glsl
  11230. // for the definition of convertUvToShapeUvSpace. The appropriate function is
  11231. // selected based on the VoxelPrimitive shape type, and added to the shader in
  11232. // Scene/VoxelRenderResources.js.
  11233. // See Octree.glsl for the definitions of TraversalData, SampleData,
  11234. // traverseOctreeFromBeginning, and traverseOctreeFromExisting
  11235. // See Megatexture.glsl for the definition of accumulatePropertiesFromMegatexture
  11236. #define STEP_COUNT_MAX 1000 // Harcoded value because GLSL doesn't like variable length loops
  11237. #define ALPHA_ACCUM_MAX 0.98 // Must be > 0.0 and <= 1.0
  11238. uniform mat3 u_transformDirectionViewToLocal;
  11239. uniform vec3 u_cameraPositionUv;
  11240. uniform float u_stepSize;
  11241. #if defined(PICKING)
  11242. uniform vec4 u_pickColor;
  11243. #endif
  11244. #if defined(JITTER)
  11245. float hash(vec2 p)
  11246. {
  11247. vec3 p3 = fract(vec3(p.xyx) * 50.0); // magic number = hashscale
  11248. p3 += dot(p3, p3.yzx + 19.19);
  11249. return fract((p3.x + p3.y) * p3.z);
  11250. }
  11251. #endif
  11252. vec4 getStepSize(in SampleData sampleData, in Ray viewRay, in RayShapeIntersection shapeIntersection) {
  11253. #if defined(SHAPE_BOX)
  11254. Box voxelBox = constructVoxelBox(sampleData.tileCoords, sampleData.tileUv);
  11255. RayShapeIntersection voxelIntersection = intersectBox(viewRay, voxelBox);
  11256. vec4 entry = shapeIntersection.entry.w >= voxelIntersection.entry.w ? shapeIntersection.entry : voxelIntersection.entry;
  11257. float exit = min(voxelIntersection.exit.w, shapeIntersection.exit.w);
  11258. float dt = (exit - entry.w) * RAY_SCALE;
  11259. return vec4(normalize(entry.xyz), dt);
  11260. #else
  11261. float dimAtLevel = pow(2.0, float(sampleData.tileCoords.w));
  11262. return vec4(viewRay.dir, u_stepSize / dimAtLevel);
  11263. #endif
  11264. }
  11265. void main()
  11266. {
  11267. vec4 fragCoord = gl_FragCoord;
  11268. vec2 screenCoord = (fragCoord.xy - czm_viewport.xy) / czm_viewport.zw; // [0,1]
  11269. vec3 eyeDirection = normalize(czm_windowToEyeCoordinates(fragCoord).xyz);
  11270. vec3 viewDirWorld = normalize(czm_inverseViewRotation * eyeDirection); // normalize again just in case
  11271. vec3 viewDirUv = normalize(u_transformDirectionViewToLocal * eyeDirection); // normalize again just in case
  11272. vec3 viewPosUv = u_cameraPositionUv;
  11273. #if defined(SHAPE_BOX)
  11274. vec3 dInv = 1.0 / viewDirUv;
  11275. Ray viewRayUv = Ray(viewPosUv, viewDirUv, dInv);
  11276. #else
  11277. Ray viewRayUv = Ray(viewPosUv, viewDirUv);
  11278. #endif
  11279. Intersections ix;
  11280. RayShapeIntersection shapeIntersection = intersectScene(screenCoord, viewRayUv, ix);
  11281. // Exit early if the scene was completely missed.
  11282. if (shapeIntersection.entry.w == NO_HIT) {
  11283. discard;
  11284. }
  11285. float currT = shapeIntersection.entry.w * RAY_SCALE;
  11286. float endT = shapeIntersection.exit.w;
  11287. vec3 positionUv = viewPosUv + currT * viewDirUv;
  11288. vec3 positionUvShapeSpace = convertUvToShapeUvSpace(positionUv);
  11289. // Traverse the tree from the start position
  11290. TraversalData traversalData;
  11291. SampleData sampleDatas[SAMPLE_COUNT];
  11292. traverseOctreeFromBeginning(positionUvShapeSpace, traversalData, sampleDatas);
  11293. vec4 step = getStepSize(sampleDatas[0], viewRayUv, shapeIntersection);
  11294. #if defined(JITTER)
  11295. float noise = hash(screenCoord); // [0,1]
  11296. currT += noise * step.w;
  11297. positionUv += noise * step.w * viewDirUv;
  11298. #endif
  11299. FragmentInput fragmentInput;
  11300. #if defined(STATISTICS)
  11301. setStatistics(fragmentInput.metadata.statistics);
  11302. #endif
  11303. vec4 colorAccum =vec4(0.0);
  11304. for (int stepCount = 0; stepCount < STEP_COUNT_MAX; ++stepCount) {
  11305. // Read properties from the megatexture based on the traversal state
  11306. Properties properties = accumulatePropertiesFromMegatexture(sampleDatas);
  11307. // Prepare the custom shader inputs
  11308. copyPropertiesToMetadata(properties, fragmentInput.metadata);
  11309. fragmentInput.voxel.positionUv = positionUv;
  11310. fragmentInput.voxel.positionShapeUv = positionUvShapeSpace;
  11311. fragmentInput.voxel.positionUvLocal = sampleDatas[0].tileUv;
  11312. fragmentInput.voxel.viewDirUv = viewDirUv;
  11313. fragmentInput.voxel.viewDirWorld = viewDirWorld;
  11314. fragmentInput.voxel.surfaceNormal = step.xyz;
  11315. fragmentInput.voxel.travelDistance = step.w;
  11316. // Run the custom shader
  11317. czm_modelMaterial materialOutput;
  11318. fragmentMain(fragmentInput, materialOutput);
  11319. // Sanitize the custom shader output
  11320. vec4 color = vec4(materialOutput.diffuse, materialOutput.alpha);
  11321. color.rgb = max(color.rgb, vec3(0.0));
  11322. color.a = clamp(color.a, 0.0, 1.0);
  11323. // Pre-multiplied alpha blend
  11324. colorAccum += (1.0 - colorAccum.a) * vec4(color.rgb * color.a, color.a);
  11325. // Stop traversing if the alpha has been fully saturated
  11326. if (colorAccum.a > ALPHA_ACCUM_MAX) {
  11327. colorAccum.a = ALPHA_ACCUM_MAX;
  11328. break;
  11329. }
  11330. if (step.w == 0.0) {
  11331. // Shape is infinitely thin. The ray may have hit the edge of a
  11332. // foreground voxel. Step ahead slightly to check for more voxels
  11333. step.w == 0.00001;
  11334. }
  11335. // Keep raymarching
  11336. currT += step.w;
  11337. positionUv += step.w * viewDirUv;
  11338. // Check if there's more intersections.
  11339. if (currT > endT) {
  11340. #if (INTERSECTION_COUNT == 1)
  11341. break;
  11342. #else
  11343. shapeIntersection = nextIntersection(ix);
  11344. if (shapeIntersection.entry.w == NO_HIT) {
  11345. break;
  11346. } else {
  11347. // Found another intersection. Resume raymarching there
  11348. currT = shapeIntersection.entry.w * RAY_SCALE;
  11349. endT = shapeIntersection.exit.w;
  11350. positionUv = viewPosUv + currT * viewDirUv;
  11351. }
  11352. #endif
  11353. }
  11354. // Traverse the tree from the current ray position.
  11355. // This is similar to traverseOctreeFromBeginning but is faster when the ray is in the same tile as the previous step.
  11356. positionUvShapeSpace = convertUvToShapeUvSpace(positionUv);
  11357. traverseOctreeFromExisting(positionUvShapeSpace, traversalData, sampleDatas);
  11358. step = getStepSize(sampleDatas[0], viewRayUv, shapeIntersection);
  11359. }
  11360. // Convert the alpha from [0,ALPHA_ACCUM_MAX] to [0,1]
  11361. colorAccum.a /= ALPHA_ACCUM_MAX;
  11362. #if defined(PICKING)
  11363. // If alpha is 0.0 there is nothing to pick
  11364. if (colorAccum.a == 0.0) {
  11365. discard;
  11366. }
  11367. out_FragColor = u_pickColor;
  11368. #else
  11369. out_FragColor = colorAccum;
  11370. #endif
  11371. }
  11372. `;var QF=`in vec2 position;
  11373. uniform vec4 u_ndcSpaceAxisAlignedBoundingBox;
  11374. void main() {
  11375. vec2 aabbMin = u_ndcSpaceAxisAlignedBoundingBox.xy;
  11376. vec2 aabbMax = u_ndcSpaceAxisAlignedBoundingBox.zw;
  11377. vec2 translation = 0.5 * (aabbMax + aabbMin);
  11378. vec2 scale = 0.5 * (aabbMax - aabbMin);
  11379. gl_Position = vec4(position * scale + translation, 0.0, 1.0);
  11380. }
  11381. `;var JF=`/* Intersection defines
  11382. #define INTERSECTION_COUNT ###
  11383. */
  11384. #define NO_HIT (-czm_infinity)
  11385. #define INF_HIT (czm_infinity * 0.5)
  11386. #define RAY_SHIFT (0.000003163)
  11387. #define RAY_SCALE (1.003163)
  11388. struct Ray {
  11389. vec3 pos;
  11390. vec3 dir;
  11391. #if defined(SHAPE_BOX)
  11392. vec3 dInv;
  11393. #endif
  11394. };
  11395. struct RayShapeIntersection {
  11396. vec4 entry;
  11397. vec4 exit;
  11398. };
  11399. struct Intersections {
  11400. // Don't access these member variables directly - call the functions instead.
  11401. // Store an array of ray-surface intersections. Each intersection is composed of:
  11402. // .xyz for the surface normal at the intersection point
  11403. // .w for the T value
  11404. // The scale of the normal encodes the shape intersection type:
  11405. // length(intersection.xyz) = 1: positive shape entry
  11406. // length(intersection.xyz) = 2: positive shape exit
  11407. // length(intersection.xyz) = 3: negative shape entry
  11408. // length(intersection.xyz) = 4: negative shape exit
  11409. // INTERSECTION_COUNT is the number of ray-*shape* (volume) intersections,
  11410. // so we need twice as many to track ray-*surface* intersections
  11411. vec4 intersections[INTERSECTION_COUNT * 2];
  11412. #if (INTERSECTION_COUNT > 1)
  11413. // Maintain state for future nextIntersection calls
  11414. int index;
  11415. int surroundCount;
  11416. bool surroundIsPositive;
  11417. #endif
  11418. };
  11419. RayShapeIntersection getFirstIntersection(in Intersections ix)
  11420. {
  11421. return RayShapeIntersection(ix.intersections[0], ix.intersections[1]);
  11422. }
  11423. vec4 encodeIntersectionType(vec4 intersection, int index, bool entry)
  11424. {
  11425. float scale = float(index > 0) * 2.0 + float(!entry) + 1.0;
  11426. return vec4(intersection.xyz * scale, intersection.w);
  11427. }
  11428. // Use defines instead of real functions because WebGL1 cannot access array with non-constant index.
  11429. #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))
  11430. #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)
  11431. #define setSurfaceIntersection(/*inout Intersections*/ ix, /*int*/ index, /*vec4*/ intersection) (ix).intersections[(index)] = intersection;
  11432. #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)
  11433. #if (INTERSECTION_COUNT > 1)
  11434. void initializeIntersections(inout Intersections ix) {
  11435. // Sort the intersections from min T to max T with bubble sort.
  11436. // Note: If this sorting function changes, some of the intersection test may
  11437. // need to be updated. Search for "bubble sort" to find those areas.
  11438. const int sortPasses = INTERSECTION_COUNT * 2 - 1;
  11439. for (int n = sortPasses; n > 0; --n) {
  11440. for (int i = 0; i < sortPasses; ++i) {
  11441. // The loop should be: for (i = 0; i < n; ++i) {...} but WebGL1 cannot
  11442. // loop with non-constant condition, so it has to break early instead
  11443. if (i >= n) { break; }
  11444. vec4 intersect0 = ix.intersections[i + 0];
  11445. vec4 intersect1 = ix.intersections[i + 1];
  11446. bool inOrder = intersect0.w <= intersect1.w;
  11447. ix.intersections[i + 0] = inOrder ? intersect0 : intersect1;
  11448. ix.intersections[i + 1] = inOrder ? intersect1 : intersect0;
  11449. }
  11450. }
  11451. // Prepare initial state for nextIntersection
  11452. ix.index = 0;
  11453. ix.surroundCount = 0;
  11454. ix.surroundIsPositive = false;
  11455. }
  11456. #endif
  11457. #if (INTERSECTION_COUNT > 1)
  11458. RayShapeIntersection nextIntersection(inout Intersections ix) {
  11459. vec4 surfaceIntersection = vec4(0.0, 0.0, 0.0, NO_HIT);
  11460. RayShapeIntersection shapeIntersection = RayShapeIntersection(surfaceIntersection, surfaceIntersection);
  11461. const int passCount = INTERSECTION_COUNT * 2;
  11462. if (ix.index == passCount) {
  11463. return shapeIntersection;
  11464. }
  11465. for (int i = 0; i < passCount; ++i) {
  11466. // The loop should be: for (i = ix.index; i < passCount; ++i) {...} but WebGL1 cannot
  11467. // loop with non-constant condition, so it has to continue instead.
  11468. if (i < ix.index) {
  11469. continue;
  11470. }
  11471. ix.index = i + 1;
  11472. surfaceIntersection = ix.intersections[i];
  11473. int intersectionType = int(length(surfaceIntersection.xyz) - 0.5);
  11474. bool currShapeIsPositive = intersectionType < 2;
  11475. bool enter = intMod(intersectionType, 2) == 0;
  11476. ix.surroundCount += enter ? +1 : -1;
  11477. ix.surroundIsPositive = currShapeIsPositive ? enter : ix.surroundIsPositive;
  11478. // entering positive or exiting negative
  11479. if (ix.surroundCount == 1 && ix.surroundIsPositive && enter == currShapeIsPositive) {
  11480. shapeIntersection.entry = surfaceIntersection;
  11481. }
  11482. // exiting positive or entering negative after being inside positive
  11483. bool exitPositive = !enter && currShapeIsPositive && ix.surroundCount == 0;
  11484. bool enterNegativeFromPositive = enter && !currShapeIsPositive && ix.surroundCount == 2 && ix.surroundIsPositive;
  11485. if (exitPositive || enterNegativeFromPositive) {
  11486. shapeIntersection.exit = surfaceIntersection;
  11487. // entry and exit have been found, so the loop can stop
  11488. if (exitPositive) {
  11489. // After exiting positive shape there is nothing left to intersect, so jump to the end index.
  11490. ix.index = passCount;
  11491. }
  11492. break;
  11493. }
  11494. }
  11495. return shapeIntersection;
  11496. }
  11497. #endif
  11498. // NOTE: initializeIntersections, nextIntersection aren't even declared unless INTERSECTION_COUNT > 1
  11499. `;var eB=`// See IntersectionUtils.glsl for the definitions of Ray, Intersections,
  11500. // setIntersectionPair, INF_HIT, NO_HIT
  11501. /* intersectDepth defines (set in Scene/VoxelRenderResources.js)
  11502. #define DEPTH_INTERSECTION_INDEX ###
  11503. */
  11504. uniform mat4 u_transformPositionViewToUv;
  11505. void intersectDepth(in vec2 screenCoord, in Ray ray, inout Intersections ix) {
  11506. float logDepthOrDepth = czm_unpackDepth(texture(czm_globeDepthTexture, screenCoord));
  11507. if (logDepthOrDepth != 0.0) {
  11508. // Calculate how far the ray must travel before it hits the depth buffer.
  11509. vec4 eyeCoordinateDepth = czm_screenToEyeCoordinates(screenCoord, logDepthOrDepth);
  11510. eyeCoordinateDepth /= eyeCoordinateDepth.w;
  11511. vec3 depthPositionUv = vec3(u_transformPositionViewToUv * eyeCoordinateDepth);
  11512. float t = dot(depthPositionUv - ray.pos, ray.dir);
  11513. setIntersectionPair(ix, DEPTH_INTERSECTION_INDEX, vec2(t, +INF_HIT));
  11514. } else {
  11515. // There's no depth at this location.
  11516. setIntersectionPair(ix, DEPTH_INTERSECTION_INDEX, vec2(NO_HIT));
  11517. }
  11518. }
  11519. `;var tB=`// See IntersectionUtils.glsl for the definitions of Ray, Intersections, INF_HIT,
  11520. // NO_HIT, setIntersectionPair
  11521. /* Clipping plane defines (set in Scene/VoxelRenderResources.js)
  11522. #define CLIPPING_PLANES_UNION
  11523. #define CLIPPING_PLANES_COUNT
  11524. #define CLIPPING_PLANES_INTERSECTION_INDEX
  11525. */
  11526. uniform sampler2D u_clippingPlanesTexture;
  11527. uniform mat4 u_clippingPlanesMatrix;
  11528. // Plane is in Hessian Normal Form
  11529. vec4 intersectPlane(in Ray ray, in vec4 plane) {
  11530. vec3 n = plane.xyz; // normal
  11531. float w = plane.w; // -dot(pointOnPlane, normal)
  11532. float a = dot(ray.pos, n);
  11533. float b = dot(ray.dir, n);
  11534. float t = -(w + a) / b;
  11535. return vec4(n, t);
  11536. }
  11537. void intersectClippingPlanes(in Ray ray, inout Intersections ix) {
  11538. vec4 backSide = vec4(-ray.dir, -INF_HIT);
  11539. vec4 farSide = vec4(ray.dir, +INF_HIT);
  11540. RayShapeIntersection clippingVolume;
  11541. #if (CLIPPING_PLANES_COUNT == 1)
  11542. // Union and intersection are the same when there's one clipping plane, and the code
  11543. // is more simplified.
  11544. vec4 planeUv = getClippingPlane(u_clippingPlanesTexture, 0, u_clippingPlanesMatrix);
  11545. vec4 intersection = intersectPlane(ray, planeUv);
  11546. bool reflects = dot(ray.dir, intersection.xyz) < 0.0;
  11547. clippingVolume.entry = reflects ? backSide : intersection;
  11548. clippingVolume.exit = reflects ? intersection : farSide;
  11549. setShapeIntersection(ix, CLIPPING_PLANES_INTERSECTION_INDEX, clippingVolume);
  11550. #elif defined(CLIPPING_PLANES_UNION)
  11551. vec4 firstTransmission = vec4(ray.dir, +INF_HIT);
  11552. vec4 lastReflection = vec4(-ray.dir, -INF_HIT);
  11553. for (int i = 0; i < CLIPPING_PLANES_COUNT; i++) {
  11554. vec4 planeUv = getClippingPlane(u_clippingPlanesTexture, i, u_clippingPlanesMatrix);
  11555. vec4 intersection = intersectPlane(ray, planeUv);
  11556. if (dot(ray.dir, planeUv.xyz) > 0.0) {
  11557. firstTransmission = intersection.w <= firstTransmission.w ? intersection : firstTransmission;
  11558. } else {
  11559. lastReflection = intersection.w >= lastReflection.w ? intersection : lastReflection;
  11560. }
  11561. }
  11562. clippingVolume.entry = backSide;
  11563. clippingVolume.exit = lastReflection;
  11564. setShapeIntersection(ix, CLIPPING_PLANES_INTERSECTION_INDEX + 0, clippingVolume);
  11565. clippingVolume.entry = firstTransmission;
  11566. clippingVolume.exit = farSide;
  11567. setShapeIntersection(ix, CLIPPING_PLANES_INTERSECTION_INDEX + 1, clippingVolume);
  11568. #else // intersection
  11569. vec4 lastTransmission = vec4(ray.dir, -INF_HIT);
  11570. vec4 firstReflection = vec4(-ray.dir, +INF_HIT);
  11571. for (int i = 0; i < CLIPPING_PLANES_COUNT; i++) {
  11572. vec4 planeUv = getClippingPlane(u_clippingPlanesTexture, i, u_clippingPlanesMatrix);
  11573. vec4 intersection = intersectPlane(ray, planeUv);
  11574. if (dot(ray.dir, planeUv.xyz) > 0.0) {
  11575. lastTransmission = intersection.w > lastTransmission.w ? intersection : lastTransmission;
  11576. } else {
  11577. firstReflection = intersection.w < firstReflection.w ? intersection: firstReflection;
  11578. }
  11579. }
  11580. if (lastTransmission.w < firstReflection.w) {
  11581. clippingVolume.entry = lastTransmission;
  11582. clippingVolume.exit = firstReflection;
  11583. } else {
  11584. clippingVolume.entry = vec4(-ray.dir, NO_HIT);
  11585. clippingVolume.exit = vec4(ray.dir, NO_HIT);
  11586. }
  11587. setShapeIntersection(ix, CLIPPING_PLANES_INTERSECTION_INDEX, clippingVolume);
  11588. #endif
  11589. }
  11590. `;var nB=`// See IntersectionUtils.glsl for the definitions of Ray and NO_HIT
  11591. // See convertUvToBox.glsl for the definition of convertShapeUvToUvSpace
  11592. /* Box defines (set in Scene/VoxelBoxShape.js)
  11593. #define BOX_INTERSECTION_INDEX ### // always 0
  11594. */
  11595. uniform vec3 u_renderMinBounds;
  11596. uniform vec3 u_renderMaxBounds;
  11597. struct Box {
  11598. vec3 p0;
  11599. vec3 p1;
  11600. };
  11601. Box constructVoxelBox(in ivec4 octreeCoords, in vec3 tileUv)
  11602. {
  11603. // Find the min/max cornerpoints of the voxel in tile coordinates
  11604. vec3 tileOrigin = vec3(octreeCoords.xyz);
  11605. vec3 numSamples = vec3(u_dimensions);
  11606. vec3 voxelSize = 1.0 / numSamples;
  11607. vec3 coordP0 = floor(tileUv * numSamples) * voxelSize + tileOrigin;
  11608. vec3 coordP1 = coordP0 + voxelSize;
  11609. // Transform to the UV coordinates of the scaled tileset
  11610. float tileSize = 1.0 / pow(2.0, float(octreeCoords.w));
  11611. vec3 p0 = convertShapeUvToUvSpace(coordP0 * tileSize);
  11612. vec3 p1 = convertShapeUvToUvSpace(coordP1 * tileSize);
  11613. return Box(p0, p1);
  11614. }
  11615. vec3 getBoxNormal(in Box box, in Ray ray, in float t)
  11616. {
  11617. vec3 hitPoint = ray.pos + t * ray.dir;
  11618. vec3 lower = step(hitPoint, box.p0);
  11619. vec3 upper = step(box.p1, hitPoint);
  11620. return normalize(upper - lower);
  11621. }
  11622. // Find the distances along a ray at which the ray intersects an axis-aligned box
  11623. // See https://tavianator.com/2011/ray_box.html
  11624. RayShapeIntersection intersectBox(in Ray ray, in Box box)
  11625. {
  11626. // Consider the box as the intersection of the space between 3 pairs of parallel planes
  11627. // Compute the distance along the ray to each plane
  11628. vec3 t0 = (box.p0 - ray.pos) * ray.dInv;
  11629. vec3 t1 = (box.p1 - ray.pos) * ray.dInv;
  11630. // Identify candidate entries/exits based on distance from ray.pos
  11631. vec3 entries = min(t0, t1);
  11632. vec3 exits = max(t0, t1);
  11633. // The actual box intersection points are the furthest entry and the closest exit
  11634. float entryT = max(max(entries.x, entries.y), entries.z);
  11635. float exitT = min(min(exits.x, exits.y), exits.z);
  11636. vec3 entryNormal = getBoxNormal(box, ray, entryT - RAY_SHIFT);
  11637. vec3 exitNormal = getBoxNormal(box, ray, exitT + RAY_SHIFT);
  11638. if (entryT > exitT) {
  11639. entryT = NO_HIT;
  11640. exitT = NO_HIT;
  11641. }
  11642. return RayShapeIntersection(vec4(entryNormal, entryT), vec4(exitNormal, exitT));
  11643. }
  11644. void intersectShape(in Ray ray, inout Intersections ix)
  11645. {
  11646. RayShapeIntersection intersection = intersectBox(ray, Box(u_renderMinBounds, u_renderMaxBounds));
  11647. setShapeIntersection(ix, BOX_INTERSECTION_INDEX, intersection);
  11648. }
  11649. `;var iB=`// See IntersectionUtils.glsl for the definitions of Ray, setIntersection,
  11650. // setIntersectionPair
  11651. /* Cylinder defines (set in Scene/VoxelCylinderShape.js)
  11652. #define CYLINDER_HAS_RENDER_BOUNDS_RADIUS_MIN
  11653. #define CYLINDER_HAS_RENDER_BOUNDS_RADIUS_MAX
  11654. #define CYLINDER_HAS_RENDER_BOUNDS_RADIUS_FLAT
  11655. #define CYLINDER_HAS_RENDER_BOUNDS_HEIGHT
  11656. #define CYLINDER_HAS_RENDER_BOUNDS_HEIGHT_FLAT
  11657. #define CYLINDER_HAS_RENDER_BOUNDS_ANGLE
  11658. #define CYLINDER_HAS_RENDER_BOUNDS_ANGLE_RANGE_UNDER_HALF
  11659. #define CYLINDER_HAS_RENDER_BOUNDS_ANGLE_RANGE_OVER_HALF
  11660. #define CYLINDER_HAS_RENDER_BOUNDS_ANGLE_RANGE_EQUAL_HALF
  11661. #define CYLINDER_HAS_RENDER_BOUNDS_ANGLE_RANGE_EQUAL_ZERO
  11662. #define CYLINDER_HAS_SHAPE_BOUNDS_RADIUS
  11663. #define CYLINDER_HAS_SHAPE_BOUNDS_RADIUS_FLAT
  11664. #define CYLINDER_HAS_SHAPE_BOUNDS_HEIGHT
  11665. #define CYLINDER_HAS_SHAPE_BOUNDS_HEIGHT_FLAT
  11666. #define CYLINDER_HAS_SHAPE_BOUNDS_ANGLE
  11667. #define CYLINDER_HAS_SHAPE_BOUNDS_ANGLE_RANGE_EQUAL_ZERO
  11668. #define CYLINDER_HAS_SHAPE_BOUNDS_ANGLE_MIN_DISCONTINUITY
  11669. #define CYLINDER_HAS_SHAPE_BOUNDS_ANGLE_MAX_DISCONTINUITY
  11670. #define CYLINDER_HAS_SHAPE_BOUNDS_ANGLE_MIN_MAX_REVERSED
  11671. #define CYLINDER_INTERSECTION_INDEX_RADIUS_MAX
  11672. #define CYLINDER_INTERSECTION_INDEX_RADIUS_MIN
  11673. #define CYLINDER_INTERSECTION_INDEX_ANGLE
  11674. */
  11675. // Cylinder uniforms
  11676. #if defined(CYLINDER_HAS_RENDER_BOUNDS_RADIUS_MAX) || defined(CYLINDER_HAS_RENDER_BOUNDS_HEIGHT)
  11677. uniform vec3 u_cylinderUvToRenderBoundsScale;
  11678. uniform vec3 u_cylinderUvToRenderBoundsTranslate;
  11679. #endif
  11680. #if defined(CYLINDER_HAS_RENDER_BOUNDS_RADIUS_MIN) && !defined(CYLINDER_HAS_RENDER_BOUNDS_RADIUS_FLAT)
  11681. uniform float u_cylinderUvToRenderRadiusMin;
  11682. #endif
  11683. #if defined(CYLINDER_HAS_RENDER_BOUNDS_ANGLE)
  11684. uniform vec2 u_cylinderRenderAngleMinMax;
  11685. #endif
  11686. vec4 intersectHalfPlane(Ray ray, float angle) {
  11687. vec2 o = ray.pos.xy;
  11688. vec2 d = ray.dir.xy;
  11689. vec2 planeDirection = vec2(cos(angle), sin(angle));
  11690. vec2 planeNormal = vec2(planeDirection.y, -planeDirection.x);
  11691. float a = dot(o, planeNormal);
  11692. float b = dot(d, planeNormal);
  11693. float t = -a / b;
  11694. vec2 p = o + t * d;
  11695. bool outside = dot(p, planeDirection) < 0.0;
  11696. if (outside) return vec4(-INF_HIT, +INF_HIT, NO_HIT, NO_HIT);
  11697. return vec4(-INF_HIT, t, t, +INF_HIT);
  11698. }
  11699. #define POSITIVE_HIT vec2(t, +INF_HIT);
  11700. #define NEGATIVE_HIT vec2(-INF_HIT, t);
  11701. vec2 intersectHalfSpace(Ray ray, float angle)
  11702. {
  11703. vec2 o = ray.pos.xy;
  11704. vec2 d = ray.dir.xy;
  11705. vec2 n = vec2(sin(angle), -cos(angle));
  11706. float a = dot(o, n);
  11707. float b = dot(d, n);
  11708. float t = -a / b;
  11709. float s = sign(a);
  11710. // Half space cuts right through the camera, pick the side to intersect
  11711. if (a == 0.0) {
  11712. if (b >= 0.0) {
  11713. return POSITIVE_HIT;
  11714. } else {
  11715. return NEGATIVE_HIT;
  11716. }
  11717. }
  11718. if (t >= 0.0 != s >= 0.0) {
  11719. return POSITIVE_HIT;
  11720. } else {
  11721. return NEGATIVE_HIT;
  11722. }
  11723. }
  11724. vec2 intersectRegularWedge(Ray ray, float minAngle, float maxAngle)
  11725. {
  11726. vec2 o = ray.pos.xy;
  11727. vec2 d = ray.dir.xy;
  11728. vec2 n1 = vec2(sin(minAngle), -cos(minAngle));
  11729. vec2 n2 = vec2(-sin(maxAngle), cos(maxAngle));
  11730. float a1 = dot(o, n1);
  11731. float a2 = dot(o, n2);
  11732. float b1 = dot(d, n1);
  11733. float b2 = dot(d, n2);
  11734. float t1 = -a1 / b1;
  11735. float t2 = -a2 / b2;
  11736. float s1 = sign(a1);
  11737. float s2 = sign(a2);
  11738. float tmin = min(t1, t2);
  11739. float tmax = max(t1, t2);
  11740. float smin = tmin == t1 ? s1 : s2;
  11741. float smax = tmin == t1 ? s2 : s1;
  11742. bool e = tmin >= 0.0;
  11743. bool f = tmax >= 0.0;
  11744. bool g = smin >= 0.0;
  11745. bool h = smax >= 0.0;
  11746. if (e != g && f == h) return vec2(tmin, tmax);
  11747. else if (e == g && f == h) return vec2(-INF_HIT, tmin);
  11748. else if (e != g && f != h) return vec2(tmax, +INF_HIT);
  11749. else return vec2(NO_HIT);
  11750. }
  11751. vec4 intersectFlippedWedge(Ray ray, float minAngle, float maxAngle)
  11752. {
  11753. vec2 planeIntersectMin = intersectHalfSpace(ray, minAngle);
  11754. vec2 planeIntersectMax = intersectHalfSpace(ray, maxAngle + czm_pi);
  11755. return vec4(planeIntersectMin, planeIntersectMax);
  11756. }
  11757. vec2 intersectUnitCylinder(Ray ray)
  11758. {
  11759. vec3 o = ray.pos;
  11760. vec3 d = ray.dir;
  11761. float a = dot(d.xy, d.xy);
  11762. float b = dot(o.xy, d.xy);
  11763. float c = dot(o.xy, o.xy) - 1.0;
  11764. float det = b * b - a * c;
  11765. if (det < 0.0) {
  11766. return vec2(NO_HIT);
  11767. }
  11768. det = sqrt(det);
  11769. float ta = (-b - det) / a;
  11770. float tb = (-b + det) / a;
  11771. float t1 = min(ta, tb);
  11772. float t2 = max(ta, tb);
  11773. float z1 = o.z + t1 * d.z;
  11774. float z2 = o.z + t2 * d.z;
  11775. if (abs(z1) >= 1.0)
  11776. {
  11777. float tCap = (sign(z1) - o.z) / d.z;
  11778. t1 = abs(b + a * tCap) < det ? tCap : NO_HIT;
  11779. }
  11780. if (abs(z2) >= 1.0)
  11781. {
  11782. float tCap = (sign(z2) - o.z) / d.z;
  11783. t2 = abs(b + a * tCap) < det ? tCap : NO_HIT;
  11784. }
  11785. return vec2(t1, t2);
  11786. }
  11787. vec2 intersectUnitCircle(Ray ray) {
  11788. vec3 o = ray.pos;
  11789. vec3 d = ray.dir;
  11790. float t = -o.z / d.z;
  11791. vec2 zPlanePos = o.xy + d.xy * t;
  11792. float distSqr = dot(zPlanePos, zPlanePos);
  11793. if (distSqr > 1.0) {
  11794. return vec2(NO_HIT);
  11795. }
  11796. return vec2(t, t);
  11797. }
  11798. vec2 intersectInfiniteUnitCylinder(Ray ray)
  11799. {
  11800. vec3 o = ray.pos;
  11801. vec3 d = ray.dir;
  11802. float a = dot(d.xy, d.xy);
  11803. float b = dot(o.xy, d.xy);
  11804. float c = dot(o.xy, o.xy) - 1.0;
  11805. float det = b * b - a * c;
  11806. if (det < 0.0) {
  11807. return vec2(NO_HIT);
  11808. }
  11809. det = sqrt(det);
  11810. float t1 = (-b - det) / a;
  11811. float t2 = (-b + det) / a;
  11812. float tmin = min(t1, t2);
  11813. float tmax = max(t1, t2);
  11814. return vec2(tmin, tmax);
  11815. }
  11816. void intersectShape(Ray ray, inout Intersections ix)
  11817. {
  11818. #if defined(CYLINDER_HAS_RENDER_BOUNDS_RADIUS_MAX) || defined(CYLINDER_HAS_RENDER_BOUNDS_HEIGHT)
  11819. ray.pos = ray.pos * u_cylinderUvToRenderBoundsScale + u_cylinderUvToRenderBoundsTranslate;
  11820. ray.dir *= u_cylinderUvToRenderBoundsScale;
  11821. #else
  11822. // Position is converted from [0,1] to [-1,+1] because shape intersections assume unit space is [-1,+1].
  11823. // Direction is scaled as well to be in sync with position.
  11824. ray.pos = ray.pos * 2.0 - 1.0;
  11825. ray.dir *= 2.0;
  11826. #endif
  11827. #if defined(CYLINDER_HAS_RENDER_BOUNDS_HEIGHT_FLAT)
  11828. vec2 outerIntersect = intersectUnitCircle(ray);
  11829. #else
  11830. vec2 outerIntersect = intersectUnitCylinder(ray);
  11831. #endif
  11832. setIntersectionPair(ix, CYLINDER_INTERSECTION_INDEX_RADIUS_MAX, outerIntersect);
  11833. if (outerIntersect.x == NO_HIT) {
  11834. return;
  11835. }
  11836. #if defined(CYLINDER_HAS_RENDER_BOUNDS_RADIUS_FLAT)
  11837. // When the cylinder is perfectly thin it's necessary to sandwich the
  11838. // inner cylinder intersection inside the outer cylinder intersection.
  11839. // Without this special case,
  11840. // [outerMin, outerMax, innerMin, innerMax] will bubble sort to
  11841. // [outerMin, innerMin, outerMax, innerMax] which will cause the back
  11842. // side of the cylinder to be invisible because it will think the ray
  11843. // is still inside the inner (negative) cylinder after exiting the
  11844. // outer (positive) cylinder.
  11845. // With this special case,
  11846. // [outerMin, innerMin, innerMax, outerMax] will bubble sort to
  11847. // [outerMin, innerMin, innerMax, outerMax] which will work correctly.
  11848. // Note: If initializeIntersections() changes its sorting function
  11849. // from bubble sort to something else, this code may need to change.
  11850. vec2 innerIntersect = intersectInfiniteUnitCylinder(ray);
  11851. setIntersection(ix, 0, outerIntersect.x, true, true); // positive, enter
  11852. setIntersection(ix, 1, innerIntersect.x, false, true); // negative, enter
  11853. setIntersection(ix, 2, innerIntersect.y, false, false); // negative, exit
  11854. setIntersection(ix, 3, outerIntersect.y, true, false); // positive, exit
  11855. #elif defined(CYLINDER_HAS_RENDER_BOUNDS_RADIUS_MIN)
  11856. Ray innerRay = Ray(ray.pos * u_cylinderUvToRenderRadiusMin, ray.dir * u_cylinderUvToRenderRadiusMin);
  11857. vec2 innerIntersect = intersectInfiniteUnitCylinder(innerRay);
  11858. setIntersectionPair(ix, CYLINDER_INTERSECTION_INDEX_RADIUS_MIN, innerIntersect);
  11859. #endif
  11860. #if defined(CYLINDER_HAS_RENDER_BOUNDS_ANGLE_RANGE_UNDER_HALF)
  11861. vec2 wedgeIntersect = intersectRegularWedge(ray, u_cylinderRenderAngleMinMax.x, u_cylinderRenderAngleMinMax.y);
  11862. setIntersectionPair(ix, CYLINDER_INTERSECTION_INDEX_ANGLE, wedgeIntersect);
  11863. #elif defined(CYLINDER_HAS_RENDER_BOUNDS_ANGLE_RANGE_OVER_HALF)
  11864. vec4 wedgeIntersect = intersectFlippedWedge(ray, u_cylinderRenderAngleMinMax.x, u_cylinderRenderAngleMinMax.y);
  11865. setIntersectionPair(ix, CYLINDER_INTERSECTION_INDEX_ANGLE + 0, wedgeIntersect.xy);
  11866. setIntersectionPair(ix, CYLINDER_INTERSECTION_INDEX_ANGLE + 1, wedgeIntersect.zw);
  11867. #elif defined(CYLINDER_HAS_RENDER_BOUNDS_ANGLE_RANGE_EQUAL_HALF)
  11868. vec2 wedgeIntersect = intersectHalfSpace(ray, u_cylinderRenderAngleMinMax.x);
  11869. setIntersectionPair(ix, CYLINDER_INTERSECTION_INDEX_ANGLE, wedgeIntersect);
  11870. #elif defined(CYLINDER_HAS_RENDER_BOUNDS_ANGLE_RANGE_EQUAL_ZERO)
  11871. vec4 wedgeIntersect = intersectHalfPlane(ray, u_cylinderRenderAngleMinMax.x);
  11872. setIntersectionPair(ix, CYLINDER_INTERSECTION_INDEX_ANGLE + 0, wedgeIntersect.xy);
  11873. setIntersectionPair(ix, CYLINDER_INTERSECTION_INDEX_ANGLE + 1, wedgeIntersect.zw);
  11874. #endif
  11875. }
  11876. `;var oB=`// See IntersectionUtils.glsl for the definitions of Ray, Intersections,
  11877. // setIntersection, setIntersectionPair, INF_HIT, NO_HIT
  11878. /* Ellipsoid defines (set in Scene/VoxelEllipsoidShape.js)
  11879. #define ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE
  11880. #define ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE_RANGE_EQUAL_ZERO
  11881. #define ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE_RANGE_UNDER_HALF
  11882. #define ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE_RANGE_EQUAL_HALF
  11883. #define ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE_RANGE_OVER_HALF
  11884. #define ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE
  11885. #define ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MAX_UNDER_HALF
  11886. #define ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MAX_EQUAL_HALF
  11887. #define ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MAX_OVER_HALF
  11888. #define ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MIN_UNDER_HALF
  11889. #define ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MIN_EQUAL_HALF
  11890. #define ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MIN_OVER_HALF
  11891. #define ELLIPSOID_HAS_RENDER_BOUNDS_HEIGHT_MAX
  11892. #define ELLIPSOID_HAS_RENDER_BOUNDS_HEIGHT_MIN
  11893. #define ELLIPSOID_HAS_RENDER_BOUNDS_HEIGHT_FLAT
  11894. #define ELLIPSOID_INTERSECTION_INDEX_LONGITUDE
  11895. #define ELLIPSOID_INTERSECTION_INDEX_LATITUDE_MAX
  11896. #define ELLIPSOID_INTERSECTION_INDEX_LATITUDE_MIN
  11897. #define ELLIPSOID_INTERSECTION_INDEX_HEIGHT_MAX
  11898. #define ELLIPSOID_INTERSECTION_INDEX_HEIGHT_MIN
  11899. */
  11900. #if defined(ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE)
  11901. uniform vec2 u_ellipsoidRenderLongitudeMinMax;
  11902. #endif
  11903. #if defined(ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MIN_UNDER_HALF) || defined(ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MIN_OVER_HALF) || defined(ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MAX_UNDER_HALF) || defined(ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MAX_OVER_HALF)
  11904. uniform vec2 u_ellipsoidRenderLatitudeCosSqrHalfMinMax;
  11905. #endif
  11906. #if defined(ELLIPSOID_HAS_RENDER_BOUNDS_HEIGHT_MAX)
  11907. uniform float u_ellipsoidInverseOuterScaleUv;
  11908. #endif
  11909. #if defined(ELLIPSOID_HAS_RENDER_BOUNDS_HEIGHT_MIN)
  11910. uniform float u_ellipsoidInverseInnerScaleUv;
  11911. #endif
  11912. vec2 intersectZPlane(Ray ray)
  11913. {
  11914. float o = ray.pos.z;
  11915. float d = ray.dir.z;
  11916. float t = -o / d;
  11917. float s = sign(o);
  11918. if (t >= 0.0 != s >= 0.0) return vec2(t, +INF_HIT);
  11919. else return vec2(-INF_HIT, t);
  11920. }
  11921. vec4 intersectHalfPlane(Ray ray, float angle) {
  11922. vec2 o = ray.pos.xy;
  11923. vec2 d = ray.dir.xy;
  11924. vec2 planeDirection = vec2(cos(angle), sin(angle));
  11925. vec2 planeNormal = vec2(planeDirection.y, -planeDirection.x);
  11926. float a = dot(o, planeNormal);
  11927. float b = dot(d, planeNormal);
  11928. float t = -a / b;
  11929. vec2 p = o + t * d;
  11930. bool outside = dot(p, planeDirection) < 0.0;
  11931. if (outside) return vec4(-INF_HIT, +INF_HIT, NO_HIT, NO_HIT);
  11932. return vec4(-INF_HIT, t, t, +INF_HIT);
  11933. }
  11934. vec2 intersectHalfSpace(Ray ray, float angle)
  11935. {
  11936. vec2 o = ray.pos.xy;
  11937. vec2 d = ray.dir.xy;
  11938. vec2 n = vec2(sin(angle), -cos(angle));
  11939. float a = dot(o, n);
  11940. float b = dot(d, n);
  11941. float t = -a / b;
  11942. float s = sign(a);
  11943. if (t >= 0.0 != s >= 0.0) return vec2(t, +INF_HIT);
  11944. else return vec2(-INF_HIT, t);
  11945. }
  11946. vec2 intersectRegularWedge(Ray ray, float minAngle, float maxAngle)
  11947. {
  11948. vec2 o = ray.pos.xy;
  11949. vec2 d = ray.dir.xy;
  11950. vec2 n1 = vec2(sin(minAngle), -cos(minAngle));
  11951. vec2 n2 = vec2(-sin(maxAngle), cos(maxAngle));
  11952. float a1 = dot(o, n1);
  11953. float a2 = dot(o, n2);
  11954. float b1 = dot(d, n1);
  11955. float b2 = dot(d, n2);
  11956. float t1 = -a1 / b1;
  11957. float t2 = -a2 / b2;
  11958. float s1 = sign(a1);
  11959. float s2 = sign(a2);
  11960. float tmin = min(t1, t2);
  11961. float tmax = max(t1, t2);
  11962. float smin = tmin == t1 ? s1 : s2;
  11963. float smax = tmin == t1 ? s2 : s1;
  11964. bool e = tmin >= 0.0;
  11965. bool f = tmax >= 0.0;
  11966. bool g = smin >= 0.0;
  11967. bool h = smax >= 0.0;
  11968. if (e != g && f == h) return vec2(tmin, tmax);
  11969. else if (e == g && f == h) return vec2(-INF_HIT, tmin);
  11970. else if (e != g && f != h) return vec2(tmax, +INF_HIT);
  11971. else return vec2(NO_HIT);
  11972. }
  11973. vec4 intersectFlippedWedge(Ray ray, float minAngle, float maxAngle)
  11974. {
  11975. vec2 planeIntersectMin = intersectHalfSpace(ray, minAngle);
  11976. vec2 planeIntersectMax = intersectHalfSpace(ray, maxAngle + czm_pi);
  11977. return vec4(planeIntersectMin, planeIntersectMax);
  11978. }
  11979. vec2 intersectUnitSphere(Ray ray)
  11980. {
  11981. vec3 o = ray.pos;
  11982. vec3 d = ray.dir;
  11983. float b = dot(d, o);
  11984. float c = dot(o, o) - 1.0;
  11985. float det = b * b - c;
  11986. if (det < 0.0) {
  11987. return vec2(NO_HIT);
  11988. }
  11989. det = sqrt(det);
  11990. float t1 = -b - det;
  11991. float t2 = -b + det;
  11992. float tmin = min(t1, t2);
  11993. float tmax = max(t1, t2);
  11994. return vec2(tmin, tmax);
  11995. }
  11996. vec2 intersectUnitSphereUnnormalizedDirection(Ray ray)
  11997. {
  11998. vec3 o = ray.pos;
  11999. vec3 d = ray.dir;
  12000. float a = dot(d, d);
  12001. float b = dot(d, o);
  12002. float c = dot(o, o) - 1.0;
  12003. float det = b * b - a * c;
  12004. if (det < 0.0) {
  12005. return vec2(NO_HIT);
  12006. }
  12007. det = sqrt(det);
  12008. float t1 = (-b - det) / a;
  12009. float t2 = (-b + det) / a;
  12010. float tmin = min(t1, t2);
  12011. float tmax = max(t1, t2);
  12012. return vec2(tmin, tmax);
  12013. }
  12014. vec2 intersectDoubleEndedCone(Ray ray, float cosSqrHalfAngle)
  12015. {
  12016. vec3 o = ray.pos;
  12017. vec3 d = ray.dir;
  12018. float a = d.z * d.z - dot(d, d) * cosSqrHalfAngle;
  12019. float b = d.z * o.z - dot(o, d) * cosSqrHalfAngle;
  12020. float c = o.z * o.z - dot(o, o) * cosSqrHalfAngle;
  12021. float det = b * b - a * c;
  12022. if (det < 0.0) {
  12023. return vec2(NO_HIT);
  12024. }
  12025. det = sqrt(det);
  12026. float t1 = (-b - det) / a;
  12027. float t2 = (-b + det) / a;
  12028. float tmin = min(t1, t2);
  12029. float tmax = max(t1, t2);
  12030. return vec2(tmin, tmax);
  12031. }
  12032. vec4 intersectFlippedCone(Ray ray, float cosSqrHalfAngle) {
  12033. vec2 intersect = intersectDoubleEndedCone(ray, cosSqrHalfAngle);
  12034. if (intersect.x == NO_HIT) {
  12035. return vec4(-INF_HIT, +INF_HIT, NO_HIT, NO_HIT);
  12036. }
  12037. vec3 o = ray.pos;
  12038. vec3 d = ray.dir;
  12039. float tmin = intersect.x;
  12040. float tmax = intersect.y;
  12041. float zmin = o.z + tmin * d.z;
  12042. float zmax = o.z + tmax * d.z;
  12043. // One interval
  12044. if (zmin < 0.0 && zmax < 0.0) return vec4(-INF_HIT, +INF_HIT, NO_HIT, NO_HIT);
  12045. else if (zmin < 0.0) return vec4(-INF_HIT, tmax, NO_HIT, NO_HIT);
  12046. else if (zmax < 0.0) return vec4(tmin, +INF_HIT, NO_HIT, NO_HIT);
  12047. // Two intervals
  12048. else return vec4(-INF_HIT, tmin, tmax, +INF_HIT);
  12049. }
  12050. vec2 intersectRegularCone(Ray ray, float cosSqrHalfAngle) {
  12051. vec2 intersect = intersectDoubleEndedCone(ray, cosSqrHalfAngle);
  12052. if (intersect.x == NO_HIT) {
  12053. return vec2(NO_HIT);
  12054. }
  12055. vec3 o = ray.pos;
  12056. vec3 d = ray.dir;
  12057. float tmin = intersect.x;
  12058. float tmax = intersect.y;
  12059. float zmin = o.z + tmin * d.z;
  12060. float zmax = o.z + tmax * d.z;
  12061. if (zmin < 0.0 && zmax < 0.0) return vec2(NO_HIT);
  12062. else if (zmin < 0.0) return vec2(tmax, +INF_HIT);
  12063. else if (zmax < 0.0) return vec2(-INF_HIT, tmin);
  12064. else return vec2(tmin, tmax);
  12065. }
  12066. void intersectShape(in Ray ray, inout Intersections ix) {
  12067. // Position is converted from [0,1] to [-1,+1] because shape intersections assume unit space is [-1,+1].
  12068. // Direction is scaled as well to be in sync with position.
  12069. ray.pos = ray.pos * 2.0 - 1.0;
  12070. ray.dir *= 2.0;
  12071. #if defined(ELLIPSOID_HAS_RENDER_BOUNDS_HEIGHT_MAX)
  12072. Ray outerRay = Ray(ray.pos * u_ellipsoidInverseOuterScaleUv, ray.dir * u_ellipsoidInverseOuterScaleUv);
  12073. #else
  12074. Ray outerRay = ray;
  12075. #endif
  12076. // Outer ellipsoid
  12077. vec2 outerIntersect = intersectUnitSphereUnnormalizedDirection(outerRay);
  12078. setIntersectionPair(ix, ELLIPSOID_INTERSECTION_INDEX_HEIGHT_MAX, outerIntersect);
  12079. // Exit early if the outer ellipsoid was missed.
  12080. if (outerIntersect.x == NO_HIT) {
  12081. return;
  12082. }
  12083. // Inner ellipsoid
  12084. #if defined(ELLIPSOID_HAS_RENDER_BOUNDS_HEIGHT_FLAT)
  12085. // When the ellipsoid is perfectly thin it's necessary to sandwich the
  12086. // inner ellipsoid intersection inside the outer ellipsoid intersection.
  12087. // Without this special case,
  12088. // [outerMin, outerMax, innerMin, innerMax] will bubble sort to
  12089. // [outerMin, innerMin, outerMax, innerMax] which will cause the back
  12090. // side of the ellipsoid to be invisible because it will think the ray
  12091. // is still inside the inner (negative) ellipsoid after exiting the
  12092. // outer (positive) ellipsoid.
  12093. // With this special case,
  12094. // [outerMin, innerMin, innerMax, outerMax] will bubble sort to
  12095. // [outerMin, innerMin, innerMax, outerMax] which will work correctly.
  12096. // Note: If initializeIntersections() changes its sorting function
  12097. // from bubble sort to something else, this code may need to change.
  12098. setIntersection(ix, 0, outerIntersect.x, true, true); // positive, enter
  12099. setIntersection(ix, 1, outerIntersect.x, false, true); // negative, enter
  12100. setIntersection(ix, 2, outerIntersect.y, false, false); // negative, exit
  12101. setIntersection(ix, 3, outerIntersect.y, true, false); // positive, exit
  12102. #elif defined(ELLIPSOID_HAS_RENDER_BOUNDS_HEIGHT_MIN)
  12103. Ray innerRay = Ray(ray.pos * u_ellipsoidInverseInnerScaleUv, ray.dir * u_ellipsoidInverseInnerScaleUv);
  12104. vec2 innerIntersect = intersectUnitSphereUnnormalizedDirection(innerRay);
  12105. if (innerIntersect == vec2(NO_HIT)) {
  12106. setIntersectionPair(ix, ELLIPSOID_INTERSECTION_INDEX_HEIGHT_MIN, innerIntersect);
  12107. } else {
  12108. // When the ellipsoid is very large and thin it's possible for floating
  12109. // point math to cause the ray to intersect the inner ellipsoid before
  12110. // the outer ellipsoid. To prevent this from happening, clamp innerIntersect
  12111. // to outerIntersect and sandwhich the intersections like described above.
  12112. //
  12113. // In theory a similar fix is needed for cylinders, however it's more
  12114. // complicated to implement because the inner shape is allowed to be
  12115. // intersected first.
  12116. innerIntersect.x = max(innerIntersect.x, outerIntersect.x);
  12117. innerIntersect.y = min(innerIntersect.y, outerIntersect.y);
  12118. setIntersection(ix, 0, outerIntersect.x, true, true); // positive, enter
  12119. setIntersection(ix, 1, innerIntersect.x, false, true); // negative, enter
  12120. setIntersection(ix, 2, innerIntersect.y, false, false); // negative, exit
  12121. setIntersection(ix, 3, outerIntersect.y, true, false); // positive, exit
  12122. }
  12123. #endif
  12124. // Flip the ray because the intersection function expects a cone growing towards +Z.
  12125. #if defined(ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MIN_UNDER_HALF) || defined(ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MIN_EQUAL_HALF) || defined(ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MAX_UNDER_HALF)
  12126. Ray flippedRay = outerRay;
  12127. flippedRay.dir.z *= -1.0;
  12128. flippedRay.pos.z *= -1.0;
  12129. #endif
  12130. // Bottom cone
  12131. #if defined(ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MIN_UNDER_HALF)
  12132. vec2 bottomConeIntersection = intersectRegularCone(flippedRay, u_ellipsoidRenderLatitudeCosSqrHalfMinMax.x);
  12133. setIntersectionPair(ix, ELLIPSOID_INTERSECTION_INDEX_LATITUDE_MIN, bottomConeIntersection);
  12134. #elif defined(ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MIN_EQUAL_HALF)
  12135. vec2 bottomConeIntersection = intersectZPlane(flippedRay);
  12136. setIntersectionPair(ix, ELLIPSOID_INTERSECTION_INDEX_LATITUDE_MIN, bottomConeIntersection);
  12137. #elif defined(ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MIN_OVER_HALF)
  12138. vec4 bottomConeIntersection = intersectFlippedCone(ray, u_ellipsoidRenderLatitudeCosSqrHalfMinMax.x);
  12139. setIntersectionPair(ix, ELLIPSOID_INTERSECTION_INDEX_LATITUDE_MIN + 0, bottomConeIntersection.xy);
  12140. setIntersectionPair(ix, ELLIPSOID_INTERSECTION_INDEX_LATITUDE_MIN + 1, bottomConeIntersection.zw);
  12141. #endif
  12142. // Top cone
  12143. #if defined(ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MAX_UNDER_HALF)
  12144. vec4 topConeIntersection = intersectFlippedCone(flippedRay, u_ellipsoidRenderLatitudeCosSqrHalfMinMax.y);
  12145. setIntersectionPair(ix, ELLIPSOID_INTERSECTION_INDEX_LATITUDE_MAX + 0, topConeIntersection.xy);
  12146. setIntersectionPair(ix, ELLIPSOID_INTERSECTION_INDEX_LATITUDE_MAX + 1, topConeIntersection.zw);
  12147. #elif defined(ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MAX_EQUAL_HALF)
  12148. vec2 topConeIntersection = intersectZPlane(ray);
  12149. setIntersectionPair(ix, ELLIPSOID_INTERSECTION_INDEX_LATITUDE_MAX, topConeIntersection);
  12150. #elif defined(ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MAX_OVER_HALF)
  12151. vec2 topConeIntersection = intersectRegularCone(ray, u_ellipsoidRenderLatitudeCosSqrHalfMinMax.y);
  12152. setIntersectionPair(ix, ELLIPSOID_INTERSECTION_INDEX_LATITUDE_MAX, topConeIntersection);
  12153. #endif
  12154. // Wedge
  12155. #if defined(ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE_RANGE_EQUAL_ZERO)
  12156. vec4 wedgeIntersect = intersectHalfPlane(ray, u_ellipsoidRenderLongitudeMinMax.x);
  12157. setIntersectionPair(ix, ELLIPSOID_INTERSECTION_INDEX_LONGITUDE + 0, wedgeIntersect.xy);
  12158. setIntersectionPair(ix, ELLIPSOID_INTERSECTION_INDEX_LONGITUDE + 1, wedgeIntersect.zw);
  12159. #elif defined(ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE_RANGE_UNDER_HALF)
  12160. vec2 wedgeIntersect = intersectRegularWedge(ray, u_ellipsoidRenderLongitudeMinMax.x, u_ellipsoidRenderLongitudeMinMax.y);
  12161. setIntersectionPair(ix, ELLIPSOID_INTERSECTION_INDEX_LONGITUDE, wedgeIntersect);
  12162. #elif defined(ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE_RANGE_EQUAL_HALF)
  12163. vec2 wedgeIntersect = intersectHalfSpace(ray, u_ellipsoidRenderLongitudeMinMax.x);
  12164. setIntersectionPair(ix, ELLIPSOID_INTERSECTION_INDEX_LONGITUDE, wedgeIntersect);
  12165. #elif defined(ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE_RANGE_OVER_HALF)
  12166. vec4 wedgeIntersect = intersectFlippedWedge(ray, u_ellipsoidRenderLongitudeMinMax.x, u_ellipsoidRenderLongitudeMinMax.y);
  12167. setIntersectionPair(ix, ELLIPSOID_INTERSECTION_INDEX_LONGITUDE + 0, wedgeIntersect.xy);
  12168. setIntersectionPair(ix, ELLIPSOID_INTERSECTION_INDEX_LONGITUDE + 1, wedgeIntersect.zw);
  12169. #endif
  12170. }
  12171. `;var kT=`// Main intersection function for Voxel scenes.
  12172. // See IntersectBox.glsl, IntersectCylinder.glsl, or IntersectEllipsoid.glsl
  12173. // for the definition of intersectShape. The appropriate function is selected
  12174. // based on the VoxelPrimitive shape type, and added to the shader in
  12175. // Scene/VoxelRenderResources.js.
  12176. // See also IntersectClippingPlane.glsl and IntersectDepth.glsl.
  12177. // See IntersectionUtils.glsl for the definitions of Ray, NO_HIT,
  12178. // getFirstIntersection, initializeIntersections, nextIntersection.
  12179. /* Intersection defines (set in Scene/VoxelRenderResources.js)
  12180. #define INTERSECTION_COUNT ###
  12181. */
  12182. RayShapeIntersection intersectScene(in vec2 screenCoord, in Ray ray, out Intersections ix) {
  12183. // Do a ray-shape intersection to find the exact starting and ending points.
  12184. intersectShape(ray, ix);
  12185. // Exit early if the positive shape was completely missed or behind the ray.
  12186. RayShapeIntersection intersection = getFirstIntersection(ix);
  12187. if (intersection.entry.w == NO_HIT) {
  12188. // Positive shape was completely missed - so exit early.
  12189. return intersection;
  12190. }
  12191. // Clipping planes
  12192. #if defined(CLIPPING_PLANES)
  12193. intersectClippingPlanes(ray, ix);
  12194. #endif
  12195. // Depth
  12196. #if defined(DEPTH_TEST)
  12197. intersectDepth(screenCoord, ray, ix);
  12198. #endif
  12199. // Find the first intersection that's in front of the ray
  12200. #if (INTERSECTION_COUNT > 1)
  12201. initializeIntersections(ix);
  12202. for (int i = 0; i < INTERSECTION_COUNT; ++i) {
  12203. intersection = nextIntersection(ix);
  12204. if (intersection.exit.w > 0.0) {
  12205. // Set start to 0.0 when ray is inside the shape.
  12206. intersection.entry.w = max(intersection.entry.w, 0.0);
  12207. break;
  12208. }
  12209. }
  12210. #else
  12211. // Set start to 0.0 when ray is inside the shape.
  12212. intersection.entry.w = max(intersection.entry.w, 0.0);
  12213. #endif
  12214. return intersection;
  12215. }
  12216. `;var rB=`/* Box defines (set in Scene/VoxelBoxShape.js)
  12217. #define BOX_HAS_SHAPE_BOUNDS
  12218. */
  12219. #if defined(BOX_HAS_SHAPE_BOUNDS)
  12220. uniform vec3 u_boxUvToShapeUvScale;
  12221. uniform vec3 u_boxUvToShapeUvTranslate;
  12222. #endif
  12223. vec3 convertUvToShapeUvSpace(in vec3 positionUv) {
  12224. #if defined(BOX_HAS_SHAPE_BOUNDS)
  12225. return positionUv * u_boxUvToShapeUvScale + u_boxUvToShapeUvTranslate;
  12226. #else
  12227. return positionUv;
  12228. #endif
  12229. }
  12230. vec3 convertShapeUvToUvSpace(in vec3 shapeUv) {
  12231. #if defined(BOX_HAS_SHAPE_BOUNDS)
  12232. return (shapeUv - u_boxUvToShapeUvTranslate) / u_boxUvToShapeUvScale;
  12233. #else
  12234. return shapeUv;
  12235. #endif
  12236. }
  12237. `;var sB=`/* Cylinder defines (set in Scene/VoxelCylinderShape.js)
  12238. #define CYLINDER_HAS_SHAPE_BOUNDS_RADIUS
  12239. #define CYLINDER_HAS_SHAPE_BOUNDS_RADIUS_FLAT
  12240. #define CYLINDER_HAS_SHAPE_BOUNDS_HEIGHT
  12241. #define CYLINDER_HAS_SHAPE_BOUNDS_HEIGHT_FLAT
  12242. #define CYLINDER_HAS_SHAPE_BOUNDS_ANGLE
  12243. #define CYLINDER_HAS_SHAPE_BOUNDS_ANGLE_RANGE_EQUAL_ZERO
  12244. #define CYLINDER_HAS_SHAPE_BOUNDS_ANGLE_MIN_DISCONTINUITY
  12245. #define CYLINDER_HAS_SHAPE_BOUNDS_ANGLE_MAX_DISCONTINUITY
  12246. #define CYLINDER_HAS_SHAPE_BOUNDS_ANGLE_MIN_MAX_REVERSED
  12247. */
  12248. #if defined(CYLINDER_HAS_SHAPE_BOUNDS_RADIUS)
  12249. uniform vec2 u_cylinderUvToShapeUvRadius; // x = scale, y = offset
  12250. #endif
  12251. #if defined(CYLINDER_HAS_SHAPE_BOUNDS_HEIGHT)
  12252. uniform vec2 u_cylinderUvToShapeUvHeight; // x = scale, y = offset
  12253. #endif
  12254. #if defined(CYLINDER_HAS_SHAPE_BOUNDS_ANGLE)
  12255. uniform vec2 u_cylinderUvToShapeUvAngle; // x = scale, y = offset
  12256. #endif
  12257. #if defined(CYLINDER_HAS_SHAPE_BOUNDS_ANGLE_MIN_DISCONTINUITY) || defined(CYLINDER_HAS_SHAPE_BOUNDS_ANGLE_MAX_DISCONTINUITY)
  12258. uniform vec2 u_cylinderShapeUvAngleMinMax;
  12259. #endif
  12260. #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)
  12261. uniform float u_cylinderShapeUvAngleRangeZeroMid;
  12262. #endif
  12263. vec3 convertUvToShapeUvSpace(in vec3 positionUv) {
  12264. vec3 positionLocal = positionUv * 2.0 - 1.0; // [-1,+1]
  12265. // Compute radius
  12266. #if defined(CYLINDER_HAS_SHAPE_BOUNDS_RADIUS_FLAT)
  12267. float radius = 1.0;
  12268. #else
  12269. float radius = length(positionLocal.xy); // [0,1]
  12270. #if defined(CYLINDER_HAS_SHAPE_BOUNDS_RADIUS)
  12271. radius = radius * u_cylinderUvToShapeUvRadius.x + u_cylinderUvToShapeUvRadius.y; // x = scale, y = offset
  12272. #endif
  12273. #endif
  12274. // Compute height
  12275. #if defined(CYLINDER_HAS_SHAPE_BOUNDS_HEIGHT_FLAT)
  12276. float height = 1.0;
  12277. #else
  12278. float height = positionUv.z; // [0,1]
  12279. #if defined(CYLINDER_HAS_SHAPE_BOUNDS_HEIGHT)
  12280. height = height * u_cylinderUvToShapeUvHeight.x + u_cylinderUvToShapeUvHeight.y; // x = scale, y = offset
  12281. #endif
  12282. #endif
  12283. // Compute angle
  12284. #if defined(CYLINDER_HAS_SHAPE_BOUNDS_ANGLE_RANGE_EQUAL_ZERO)
  12285. float angle = 1.0;
  12286. #else
  12287. float angle = (atan(positionLocal.y, positionLocal.x) + czm_pi) / czm_twoPi; // [0,1]
  12288. #if defined(CYLINDER_HAS_SHAPE_BOUNDS_ANGLE)
  12289. #if defined(CYLINDER_HAS_SHAPE_BOUNDS_ANGLE_MIN_MAX_REVERSED)
  12290. // Comparing against u_cylinderShapeUvAngleMinMax has precision problems. u_cylinderShapeUvAngleRangeZeroMid is more conservative.
  12291. angle += float(angle < u_cylinderShapeUvAngleRangeZeroMid);
  12292. #endif
  12293. // Avoid flickering from reading voxels from both sides of the -pi/+pi discontinuity.
  12294. #if defined(CYLINDER_HAS_SHAPE_BOUNDS_ANGLE_MIN_DISCONTINUITY)
  12295. angle = angle > u_cylinderShapeUvAngleRangeZeroMid ? u_cylinderShapeUvAngleMinMax.x : angle;
  12296. #elif defined(CYLINDER_HAS_SHAPE_BOUNDS_ANGLE_MAX_DISCONTINUITY)
  12297. angle = angle < u_cylinderShapeUvAngleRangeZeroMid ? u_cylinderShapeUvAngleMinMax.y : angle;
  12298. #endif
  12299. angle = angle * u_cylinderUvToShapeUvAngle.x + u_cylinderUvToShapeUvAngle.y; // x = scale, y = offset
  12300. #endif
  12301. #endif
  12302. return vec3(radius, height, angle);
  12303. }
  12304. `;var aB=`/* Ellipsoid defines (set in Scene/VoxelEllipsoidShape.js)
  12305. #define ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE_MIN_DISCONTINUITY
  12306. #define ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE_MAX_DISCONTINUITY
  12307. #define ELLIPSOID_HAS_SHAPE_BOUNDS_LONGITUDE
  12308. #define ELLIPSOID_HAS_SHAPE_BOUNDS_LONGITUDE_RANGE_EQUAL_ZERO
  12309. #define ELLIPSOID_HAS_SHAPE_BOUNDS_LONGITUDE_MIN_MAX_REVERSED
  12310. #define ELLIPSOID_HAS_SHAPE_BOUNDS_LATITUDE
  12311. #define ELLIPSOID_HAS_SHAPE_BOUNDS_LATITUDE_RANGE_EQUAL_ZERO
  12312. #define ELLIPSOID_HAS_SHAPE_BOUNDS_HEIGHT_MIN
  12313. #define ELLIPSOID_HAS_SHAPE_BOUNDS_HEIGHT_FLAT
  12314. #define ELLIPSOID_IS_SPHERE
  12315. */
  12316. uniform vec3 u_ellipsoidRadiiUv; // [0,1]
  12317. #if !defined(ELLIPSOID_IS_SPHERE)
  12318. uniform vec3 u_ellipsoidInverseRadiiSquaredUv;
  12319. #endif
  12320. #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)
  12321. uniform vec3 u_ellipsoidShapeUvLongitudeMinMaxMid;
  12322. #endif
  12323. #if defined(ELLIPSOID_HAS_SHAPE_BOUNDS_LONGITUDE)
  12324. uniform vec2 u_ellipsoidUvToShapeUvLongitude; // x = scale, y = offset
  12325. #endif
  12326. #if defined(ELLIPSOID_HAS_SHAPE_BOUNDS_LATITUDE)
  12327. uniform vec2 u_ellipsoidUvToShapeUvLatitude; // x = scale, y = offset
  12328. #endif
  12329. #if defined(ELLIPSOID_HAS_SHAPE_BOUNDS_HEIGHT_MIN) && !defined(ELLIPSOID_HAS_SHAPE_BOUNDS_HEIGHT_FLAT)
  12330. uniform float u_ellipsoidInverseHeightDifferenceUv;
  12331. uniform vec2 u_ellipseInnerRadiiUv; // [0,1]
  12332. #endif
  12333. // robust iterative solution without trig functions
  12334. // https://github.com/0xfaded/ellipse_demo/issues/1
  12335. // https://stackoverflow.com/questions/22959698/distance-from-given-point-to-given-ellipse
  12336. // Pro: Good when radii.x ~= radii.y
  12337. // Con: Breaks at pos.x ~= 0.0, especially inside the ellipse
  12338. // Con: Inaccurate with exterior points and thin ellipses
  12339. float ellipseDistanceIterative (vec2 pos, vec2 radii) {
  12340. vec2 p = abs(pos);
  12341. vec2 invRadii = 1.0 / radii;
  12342. vec2 a = vec2(1.0, -1.0) * (radii.x * radii.x - radii.y * radii.y) * invRadii;
  12343. vec2 t = vec2(0.70710678118); // sqrt(2) / 2
  12344. vec2 v = radii * t;
  12345. const int iterations = 3;
  12346. for (int i = 0; i < iterations; ++i) {
  12347. vec2 e = a * pow(t, vec2(3.0));
  12348. vec2 q = normalize(p - e) * length(v - e);
  12349. t = normalize((q + e) * invRadii);
  12350. v = radii * t;
  12351. }
  12352. return length(v * sign(pos) - pos) * sign(p.y - v.y);
  12353. }
  12354. vec3 convertUvToShapeUvSpace(in vec3 positionUv) {
  12355. // Compute position and normal.
  12356. // Convert positionUv [0,1] to local space [-1,+1] to "normalized" cartesian space [-a,+a] where a = (radii + height) / (max(radii) + height).
  12357. // A point on the largest ellipsoid axis would be [-1,+1] and everything else would be smaller.
  12358. vec3 positionLocal = positionUv * 2.0 - 1.0;
  12359. #if defined(ELLIPSOID_IS_SPHERE)
  12360. vec3 posEllipsoid = positionLocal * u_ellipsoidRadiiUv.x;
  12361. vec3 normal = normalize(posEllipsoid);
  12362. #else
  12363. vec3 posEllipsoid = positionLocal * u_ellipsoidRadiiUv;
  12364. vec3 normal = normalize(posEllipsoid * u_ellipsoidInverseRadiiSquaredUv); // geodetic surface normal
  12365. #endif
  12366. // Compute longitude
  12367. #if defined(ELLIPSOID_HAS_SHAPE_BOUNDS_LONGITUDE_RANGE_EQUAL_ZERO)
  12368. float longitude = 1.0;
  12369. #else
  12370. float longitude = (atan(normal.y, normal.x) + czm_pi) / czm_twoPi;
  12371. // Correct the angle when max < min
  12372. // Technically this should compare against min longitude - but it has precision problems so compare against the middle of empty space.
  12373. #if defined(ELLIPSOID_HAS_SHAPE_BOUNDS_LONGITUDE_MIN_MAX_REVERSED)
  12374. longitude += float(longitude < u_ellipsoidShapeUvLongitudeMinMaxMid.z);
  12375. #endif
  12376. // Avoid flickering from reading voxels from both sides of the -pi/+pi discontinuity.
  12377. #if defined(ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE_MIN_DISCONTINUITY)
  12378. longitude = longitude > u_ellipsoidShapeUvLongitudeMinMaxMid.z ? u_ellipsoidShapeUvLongitudeMinMaxMid.x : longitude;
  12379. #endif
  12380. #if defined(ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE_MAX_DISCONTINUITY)
  12381. longitude = longitude < u_ellipsoidShapeUvLongitudeMinMaxMid.z ? u_ellipsoidShapeUvLongitudeMinMaxMid.y : longitude;
  12382. #endif
  12383. #if defined(ELLIPSOID_HAS_SHAPE_BOUNDS_LONGITUDE)
  12384. longitude = longitude * u_ellipsoidUvToShapeUvLongitude.x + u_ellipsoidUvToShapeUvLongitude.y;
  12385. #endif
  12386. #endif
  12387. // Compute latitude
  12388. #if defined(ELLIPSOID_HAS_SHAPE_BOUNDS_LATITUDE_RANGE_EQUAL_ZERO)
  12389. float latitude = 1.0;
  12390. #else
  12391. float latitude = (asin(normal.z) + czm_piOverTwo) / czm_pi;
  12392. #if defined(ELLIPSOID_HAS_SHAPE_BOUNDS_LATITUDE)
  12393. latitude = latitude * u_ellipsoidUvToShapeUvLatitude.x + u_ellipsoidUvToShapeUvLatitude.y;
  12394. #endif
  12395. #endif
  12396. // Compute height
  12397. #if defined(ELLIPSOID_HAS_SHAPE_BOUNDS_HEIGHT_FLAT)
  12398. // TODO: This breaks down when minBounds == maxBounds. To fix it, this
  12399. // function would have to know if ray is intersecting the front or back of the shape
  12400. // and set the shape space position to 1 (front) or 0 (back) accordingly.
  12401. float height = 1.0;
  12402. #else
  12403. #if defined(ELLIPSOID_IS_SPHERE)
  12404. #if defined(ELLIPSOID_HAS_SHAPE_BOUNDS_HEIGHT_MIN)
  12405. float height = (length(posEllipsoid) - u_ellipseInnerRadiiUv.x) * u_ellipsoidInverseHeightDifferenceUv;
  12406. #else
  12407. float height = length(posEllipsoid);
  12408. #endif
  12409. #else
  12410. #if defined(ELLIPSOID_HAS_SHAPE_BOUNDS_HEIGHT_MIN)
  12411. // Convert the 3D position to a 2D position relative to the ellipse (radii.x, radii.z) (assuming radii.x == radii.y which is true for WGS84).
  12412. // This is an optimization so that math can be done with ellipses instead of ellipsoids.
  12413. vec2 posEllipse = vec2(length(posEllipsoid.xy), posEllipsoid.z);
  12414. float height = ellipseDistanceIterative(posEllipse, u_ellipseInnerRadiiUv) * u_ellipsoidInverseHeightDifferenceUv;
  12415. #else
  12416. // TODO: this is probably not correct
  12417. float height = length(posEllipsoid);
  12418. #endif
  12419. #endif
  12420. #endif
  12421. return vec3(longitude, latitude, height);
  12422. }
  12423. `;var cB=`// These octree flags must be in sync with GpuOctreeFlag in VoxelTraversal.js
  12424. #define OCTREE_FLAG_INTERNAL 0
  12425. #define OCTREE_FLAG_LEAF 1
  12426. #define OCTREE_FLAG_PACKED_LEAF_FROM_PARENT 2
  12427. #define OCTREE_MAX_LEVELS 32 // Harcoded value because GLSL doesn't like variable length loops
  12428. uniform sampler2D u_octreeInternalNodeTexture;
  12429. uniform vec2 u_octreeInternalNodeTexelSizeUv;
  12430. uniform int u_octreeInternalNodeTilesPerRow;
  12431. #if (SAMPLE_COUNT > 1)
  12432. uniform sampler2D u_octreeLeafNodeTexture;
  12433. uniform vec2 u_octreeLeafNodeTexelSizeUv;
  12434. uniform int u_octreeLeafNodeTilesPerRow;
  12435. #endif
  12436. struct OctreeNodeData {
  12437. int data;
  12438. int flag;
  12439. };
  12440. struct TraversalData {
  12441. ivec4 octreeCoords;
  12442. int parentOctreeIndex;
  12443. };
  12444. struct SampleData {
  12445. int megatextureIndex;
  12446. ivec4 tileCoords;
  12447. vec3 tileUv;
  12448. #if (SAMPLE_COUNT > 1)
  12449. float weight;
  12450. #endif
  12451. };
  12452. // Integer mod: For WebGL1 only
  12453. int intMod(in int a, in int b) {
  12454. return a - (b * (a / b));
  12455. }
  12456. int normU8_toInt(in float value) {
  12457. return int(value * 255.0);
  12458. }
  12459. int normU8x2_toInt(in vec2 value) {
  12460. return int(value.x * 255.0) + 256 * int(value.y * 255.0);
  12461. }
  12462. float normU8x2_toFloat(in vec2 value) {
  12463. return float(normU8x2_toInt(value)) / 65535.0;
  12464. }
  12465. OctreeNodeData getOctreeNodeData(in vec2 octreeUv) {
  12466. vec4 texData = texture(u_octreeInternalNodeTexture, octreeUv);
  12467. OctreeNodeData data;
  12468. data.data = normU8x2_toInt(texData.xy);
  12469. data.flag = normU8x2_toInt(texData.zw);
  12470. return data;
  12471. }
  12472. OctreeNodeData getOctreeChildData(in int parentOctreeIndex, in ivec3 childCoord) {
  12473. int childIndex = childCoord.z * 4 + childCoord.y * 2 + childCoord.x;
  12474. int octreeCoordX = intMod(parentOctreeIndex, u_octreeInternalNodeTilesPerRow) * 9 + 1 + childIndex;
  12475. int octreeCoordY = parentOctreeIndex / u_octreeInternalNodeTilesPerRow;
  12476. vec2 octreeUv = u_octreeInternalNodeTexelSizeUv * vec2(float(octreeCoordX) + 0.5, float(octreeCoordY) + 0.5);
  12477. return getOctreeNodeData(octreeUv);
  12478. }
  12479. int getOctreeParentIndex(in int octreeIndex) {
  12480. int octreeCoordX = intMod(octreeIndex, u_octreeInternalNodeTilesPerRow) * 9;
  12481. int octreeCoordY = octreeIndex / u_octreeInternalNodeTilesPerRow;
  12482. vec2 octreeUv = u_octreeInternalNodeTexelSizeUv * vec2(float(octreeCoordX) + 0.5, float(octreeCoordY) + 0.5);
  12483. vec4 parentData = texture(u_octreeInternalNodeTexture, octreeUv);
  12484. int parentOctreeIndex = normU8x2_toInt(parentData.xy);
  12485. return parentOctreeIndex;
  12486. }
  12487. /**
  12488. * Convert a position in the uv-space of the tileset bounding shape
  12489. * into the uv-space of a tile within the tileset
  12490. */
  12491. vec3 getTileUv(in vec3 shapePosition, in ivec4 octreeCoords) {
  12492. // PERFORMANCE_IDEA: use bit-shifting (only in WebGL2)
  12493. float dimAtLevel = pow(2.0, float(octreeCoords.w));
  12494. return shapePosition * dimAtLevel - vec3(octreeCoords.xyz);
  12495. }
  12496. void getOctreeLeafSampleData(in OctreeNodeData data, in ivec4 octreeCoords, out SampleData sampleData) {
  12497. sampleData.megatextureIndex = data.data;
  12498. sampleData.tileCoords = (data.flag == OCTREE_FLAG_PACKED_LEAF_FROM_PARENT)
  12499. ? ivec4(octreeCoords.xyz / 2, octreeCoords.w - 1)
  12500. : octreeCoords;
  12501. }
  12502. #if (SAMPLE_COUNT > 1)
  12503. void getOctreeLeafSampleDatas(in OctreeNodeData data, in ivec4 octreeCoords, out SampleData sampleDatas[SAMPLE_COUNT]) {
  12504. int leafIndex = data.data;
  12505. int leafNodeTexelCount = 2;
  12506. // Adding 0.5 moves to the center of the texel
  12507. float leafCoordXStart = float(intMod(leafIndex, u_octreeLeafNodeTilesPerRow) * leafNodeTexelCount) + 0.5;
  12508. float leafCoordY = float(leafIndex / u_octreeLeafNodeTilesPerRow) + 0.5;
  12509. // Get an interpolation weight and a flag to determine whether to read the parent texture
  12510. vec2 leafUv0 = u_octreeLeafNodeTexelSizeUv * vec2(leafCoordXStart + 0.0, leafCoordY);
  12511. vec4 leafData0 = texture(u_octreeLeafNodeTexture, leafUv0);
  12512. float lerp = normU8x2_toFloat(leafData0.xy);
  12513. sampleDatas[0].weight = 1.0 - lerp;
  12514. sampleDatas[1].weight = lerp;
  12515. // TODO: this looks wrong? Should be comparing to OCTREE_FLAG_PACKED_LEAF_FROM_PARENT
  12516. sampleDatas[0].tileCoords = (normU8_toInt(leafData0.z) == 1)
  12517. ? ivec4(octreeCoords.xyz / 2, octreeCoords.w - 1)
  12518. : octreeCoords;
  12519. sampleDatas[1].tileCoords = (normU8_toInt(leafData0.w) == 1)
  12520. ? ivec4(octreeCoords.xyz / 2, octreeCoords.w - 1)
  12521. : octreeCoords;
  12522. // Get megatexture indices for both samples
  12523. vec2 leafUv1 = u_octreeLeafNodeTexelSizeUv * vec2(leafCoordXStart + 1.0, leafCoordY);
  12524. vec4 leafData1 = texture(u_octreeLeafNodeTexture, leafUv1);
  12525. sampleDatas[0].megatextureIndex = normU8x2_toInt(leafData1.xy);
  12526. sampleDatas[1].megatextureIndex = normU8x2_toInt(leafData1.zw);
  12527. }
  12528. #endif
  12529. OctreeNodeData traverseOctreeDownwards(in vec3 shapePosition, inout TraversalData traversalData) {
  12530. float sizeAtLevel = 1.0 / pow(2.0, float(traversalData.octreeCoords.w));
  12531. vec3 start = vec3(traversalData.octreeCoords.xyz) * sizeAtLevel;
  12532. vec3 end = start + vec3(sizeAtLevel);
  12533. OctreeNodeData childData;
  12534. for (int i = 0; i < OCTREE_MAX_LEVELS; ++i) {
  12535. // Find out which octree child contains the position
  12536. // 0 if before center, 1 if after
  12537. vec3 center = 0.5 * (start + end);
  12538. vec3 childCoord = step(center, shapePosition);
  12539. // Get octree coords for the next level down
  12540. ivec4 octreeCoords = traversalData.octreeCoords;
  12541. traversalData.octreeCoords = ivec4(octreeCoords.xyz * 2 + ivec3(childCoord), octreeCoords.w + 1);
  12542. childData = getOctreeChildData(traversalData.parentOctreeIndex, ivec3(childCoord));
  12543. if (childData.flag != OCTREE_FLAG_INTERNAL) {
  12544. // leaf tile - stop traversing
  12545. break;
  12546. }
  12547. // interior tile - keep going deeper
  12548. start = mix(start, center, childCoord);
  12549. end = mix(center, end, childCoord);
  12550. traversalData.parentOctreeIndex = childData.data;
  12551. }
  12552. return childData;
  12553. }
  12554. /**
  12555. * Transform a given position to an octree tile coordinate and a position within that tile,
  12556. * and find the corresponding megatexture index and texture coordinates
  12557. */
  12558. void traverseOctreeFromBeginning(in vec3 shapePosition, out TraversalData traversalData, out SampleData sampleDatas[SAMPLE_COUNT]) {
  12559. traversalData.octreeCoords = ivec4(0);
  12560. traversalData.parentOctreeIndex = 0;
  12561. OctreeNodeData nodeData = getOctreeNodeData(vec2(0.0));
  12562. if (nodeData.flag != OCTREE_FLAG_LEAF) {
  12563. nodeData = traverseOctreeDownwards(shapePosition, traversalData);
  12564. }
  12565. #if (SAMPLE_COUNT == 1)
  12566. getOctreeLeafSampleData(nodeData, traversalData.octreeCoords, sampleDatas[0]);
  12567. sampleDatas[0].tileUv = getTileUv(shapePosition, sampleDatas[0].tileCoords);
  12568. #else
  12569. getOctreeLeafSampleDatas(nodeData, traversalData.octreeCoords, sampleDatas);
  12570. sampleDatas[0].tileUv = getTileUv(shapePosition, sampleDatas[0].tileCoords);
  12571. sampleDatas[1].tileUv = getTileUv(shapePosition, sampleDatas[1].tileCoords);
  12572. #endif
  12573. }
  12574. bool inRange(in vec3 v, in vec3 minVal, in vec3 maxVal) {
  12575. return clamp(v, minVal, maxVal) == v;
  12576. }
  12577. bool insideTile(in vec3 shapePosition, in ivec4 octreeCoords) {
  12578. vec3 tileUv = getTileUv(shapePosition, octreeCoords);
  12579. bool inside = inRange(tileUv, vec3(0.0), vec3(1.0));
  12580. // Assume (!) the position is always inside the root tile.
  12581. return inside || octreeCoords.w == 0;
  12582. }
  12583. void traverseOctreeFromExisting(in vec3 shapePosition, inout TraversalData traversalData, inout SampleData sampleDatas[SAMPLE_COUNT]) {
  12584. if (insideTile(shapePosition, traversalData.octreeCoords)) {
  12585. for (int i = 0; i < SAMPLE_COUNT; i++) {
  12586. sampleDatas[0].tileUv = getTileUv(shapePosition, sampleDatas[0].tileCoords);
  12587. }
  12588. return;
  12589. }
  12590. // Go up tree until we find a parent tile containing shapePosition
  12591. for (int i = 0; i < OCTREE_MAX_LEVELS; ++i) {
  12592. traversalData.octreeCoords.xyz /= 2;
  12593. traversalData.octreeCoords.w -= 1;
  12594. if (insideTile(shapePosition, traversalData.octreeCoords)) {
  12595. break;
  12596. }
  12597. traversalData.parentOctreeIndex = getOctreeParentIndex(traversalData.parentOctreeIndex);
  12598. }
  12599. // Go down tree
  12600. OctreeNodeData nodeData = traverseOctreeDownwards(shapePosition, traversalData);
  12601. #if (SAMPLE_COUNT == 1)
  12602. getOctreeLeafSampleData(nodeData, traversalData.octreeCoords, sampleDatas[0]);
  12603. sampleDatas[0].tileUv = getTileUv(shapePosition, sampleDatas[0].tileCoords);
  12604. #else
  12605. getOctreeLeafSampleDatas(nodeData, traversalData.octreeCoords, sampleDatas);
  12606. sampleDatas[0].tileUv = getTileUv(shapePosition, sampleDatas[0].tileCoords);
  12607. sampleDatas[1].tileUv = getTileUv(shapePosition, sampleDatas[1].tileCoords);
  12608. #endif
  12609. }
  12610. `;var lB=`// See Octree.glsl for the definitions of SampleData and intMod
  12611. /* Megatexture defines (set in Scene/VoxelRenderResources.js)
  12612. #define SAMPLE_COUNT ###
  12613. #define NEAREST_SAMPLING
  12614. #define PADDING
  12615. */
  12616. uniform ivec2 u_megatextureSliceDimensions; // number of slices per tile, in two dimensions
  12617. uniform ivec2 u_megatextureTileDimensions; // number of tiles per megatexture, in two dimensions
  12618. uniform vec2 u_megatextureVoxelSizeUv;
  12619. uniform vec2 u_megatextureSliceSizeUv;
  12620. uniform vec2 u_megatextureTileSizeUv;
  12621. uniform ivec3 u_dimensions; // does not include padding
  12622. #if defined(PADDING)
  12623. uniform ivec3 u_paddingBefore;
  12624. uniform ivec3 u_paddingAfter;
  12625. #endif
  12626. // Integer min, max, clamp: For WebGL1 only
  12627. int intMin(int a, int b) {
  12628. return a <= b ? a : b;
  12629. }
  12630. int intMax(int a, int b) {
  12631. return a >= b ? a : b;
  12632. }
  12633. int intClamp(int v, int minVal, int maxVal) {
  12634. return intMin(intMax(v, minVal), maxVal);
  12635. }
  12636. vec2 index1DTo2DTexcoord(int index, ivec2 dimensions, vec2 uvScale)
  12637. {
  12638. int indexX = intMod(index, dimensions.x);
  12639. int indexY = index / dimensions.x;
  12640. return vec2(indexX, indexY) * uvScale;
  12641. }
  12642. /*
  12643. How is 3D data stored in a 2D megatexture?
  12644. In this example there is only one loaded tile and it has 2x2x2 voxels (8 voxels total).
  12645. The data is sliced by Z. The data at Z = 0 is placed in texels (0,0), (0,1), (1,0), (1,1) and
  12646. the data at Z = 1 is placed in texels (2,0), (2,1), (3,0), (3,1).
  12647. Note that there could be empty space in the megatexture because it's a power of two.
  12648. 0 1 2 3
  12649. +---+---+---+---+
  12650. | | | | | 3
  12651. +---+---+---+---+
  12652. | | | | | 2
  12653. +-------+-------+
  12654. |010|110|011|111| 1
  12655. |--- ---|--- ---|
  12656. |000|100|001|101| 0
  12657. +-------+-------+
  12658. When doing linear interpolation the megatexture needs to be sampled twice: once for
  12659. the Z slice above the voxel coordinate and once for the slice below. The two slices
  12660. are interpolated with fract(coord.z - 0.5). For example, a Z coordinate of 1.0 is
  12661. halfway between two Z slices so the interpolation factor is 0.5. Below is a side view
  12662. of the 3D voxel grid with voxel coordinates on the left side.
  12663. 2 +---+
  12664. |001|
  12665. 1 +-z-+
  12666. |000|
  12667. 0 +---+
  12668. When doing nearest neighbor the megatexture only needs to be sampled once at the closest Z slice.
  12669. */
  12670. Properties getPropertiesFromMegatexture(in SampleData sampleData) {
  12671. vec3 tileUv = clamp(sampleData.tileUv, vec3(0.0), vec3(1.0)); // TODO is the clamp necessary?
  12672. int tileIndex = sampleData.megatextureIndex;
  12673. vec3 voxelCoord = tileUv * vec3(u_dimensions);
  12674. ivec3 voxelDimensions = u_dimensions;
  12675. #if defined(PADDING)
  12676. voxelDimensions += u_paddingBefore + u_paddingAfter;
  12677. voxelCoord += vec3(u_paddingBefore);
  12678. #endif
  12679. #if defined(NEAREST_SAMPLING)
  12680. // Round to the center of the nearest voxel
  12681. voxelCoord = floor(voxelCoord) + vec3(0.5);
  12682. #endif
  12683. // Tile location
  12684. vec2 tileUvOffset = index1DTo2DTexcoord(tileIndex, u_megatextureTileDimensions, u_megatextureTileSizeUv);
  12685. // Slice location
  12686. float slice = voxelCoord.z - 0.5;
  12687. int sliceIndex = int(floor(slice));
  12688. int sliceIndex0 = intClamp(sliceIndex, 0, voxelDimensions.z - 1);
  12689. vec2 sliceUvOffset0 = index1DTo2DTexcoord(sliceIndex0, u_megatextureSliceDimensions, u_megatextureSliceSizeUv);
  12690. // Voxel location
  12691. vec2 voxelUvOffset = clamp(voxelCoord.xy, vec2(0.5), vec2(voxelDimensions.xy) - vec2(0.5)) * u_megatextureVoxelSizeUv;
  12692. // Final location in the megatexture
  12693. vec2 uv0 = tileUvOffset + sliceUvOffset0 + voxelUvOffset;
  12694. #if defined(NEAREST_SAMPLING)
  12695. return getPropertiesFromMegatextureAtUv(uv0);
  12696. #else
  12697. float sliceLerp = fract(slice);
  12698. int sliceIndex1 = intMin(sliceIndex + 1, voxelDimensions.z - 1);
  12699. vec2 sliceUvOffset1 = index1DTo2DTexcoord(sliceIndex1, u_megatextureSliceDimensions, u_megatextureSliceSizeUv);
  12700. vec2 uv1 = tileUvOffset + sliceUvOffset1 + voxelUvOffset;
  12701. Properties properties0 = getPropertiesFromMegatextureAtUv(uv0);
  12702. Properties properties1 = getPropertiesFromMegatextureAtUv(uv1);
  12703. return mixProperties(properties0, properties1, sliceLerp);
  12704. #endif
  12705. }
  12706. // Convert an array of sample datas to a final weighted properties.
  12707. Properties accumulatePropertiesFromMegatexture(in SampleData sampleDatas[SAMPLE_COUNT]) {
  12708. #if (SAMPLE_COUNT == 1)
  12709. return getPropertiesFromMegatexture(sampleDatas[0]);
  12710. #else
  12711. // When more than one sample is taken the accumulator needs to start at 0
  12712. Properties properties = clearProperties();
  12713. for (int i = 0; i < SAMPLE_COUNT; ++i) {
  12714. float weight = sampleDatas[i].weight;
  12715. // Avoid reading the megatexture when the weight is 0 as it can be costly.
  12716. if (weight > 0.0) {
  12717. Properties tempProperties = getPropertiesFromMegatexture(sampleDatas[i]);
  12718. tempProperties = scaleProperties(tempProperties, weight);
  12719. properties = sumProperties(properties, tempProperties);
  12720. }
  12721. }
  12722. return properties;
  12723. #endif
  12724. }
  12725. `;function e0t(e){let t=new B0;this.shaderBuilder=t;let n=e._customShader,i=gt(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,Ce.FRAGMENT)}t.addUniform("sampler2D","u_megatextureTextures[METADATA_COUNT]",Ce.FRAGMENT),this.uniformMap=i;let r=e._clippingPlanes,s=u(r)&&r.enabled?r.length:0;this.clippingPlanes=r,this.clippingPlanesLength=s,t.addVertexLines([QF]),t.addFragmentLines([n.fragmentShaderText,"#line 0",cB,JF,lB]),s>0&&(t.addDefine("CLIPPING_PLANES",void 0,Ce.FRAGMENT),t.addDefine("CLIPPING_PLANES_COUNT",s,Ce.FRAGMENT),r.unionClippingRegions&&t.addDefine("CLIPPING_PLANES_UNION",void 0,Ce.FRAGMENT),t.addFragmentLines([tB])),e._depthTest&&(t.addDefine("DEPTH_TEST",void 0,Ce.FRAGMENT),t.addFragmentLines([eB]));let a=e._provider.shape;a==="BOX"?(t.addDefine("SHAPE_BOX",void 0,Ce.FRAGMENT),t.addFragmentLines([rB,nB,kT])):a==="CYLINDER"?t.addFragmentLines([iB,kT,sB]):a==="ELLIPSOID"&&t.addFragmentLines([oB,kT,aB]),t.addFragmentLines([$F]);let c=e._shape,l=c.shaderDefines;for(let p in l)if(l.hasOwnProperty(p)){let g=l[p];u(g)&&(g=g===!0?void 0:g,t.addDefine(p,g,Ce.FRAGMENT))}let f=c.shaderMaximumIntersectionsLength;s>0&&(t.addDefine("CLIPPING_PLANES_INTERSECTION_INDEX",f,Ce.FRAGMENT),s===1?f+=1:r.unionClippingRegions?f+=2:f+=1),e._depthTest&&(t.addDefine("DEPTH_INTERSECTION_INDEX",f,Ce.FRAGMENT),f+=1),t.addDefine("INTERSECTION_COUNT",f,Ce.FRAGMENT),(!h.equals(e.paddingBefore,h.ZERO)||!h.equals(e.paddingAfter,h.ZERO))&&t.addDefine("PADDING",void 0,Ce.FRAGMENT),e._useLogDepth&&t.addDefine("LOG_DEPTH_READ_ONLY",void 0,Ce.FRAGMENT),e._jitter&&t.addDefine("JITTER",void 0,Ce.FRAGMENT),e._nearestSampling&&t.addDefine("NEAREST_SAMPLING",void 0,Ce.FRAGMENT);let d=e._traversal;t.addDefine("SAMPLE_COUNT",`${d._sampleCount}`,Ce.FRAGMENT)}var uB=e0t;function t0t(e,t){let{shaderBuilder:n}=e,{names:i,types:o,componentTypes:r,minimumValues:s,maximumValues:a}=t._provider,c=o.length,l=u(s)&&u(a);n.addDefine("METADATA_COUNT",c,Ce.FRAGMENT),l&&n.addDefine("STATISTICS",void 0,Ce.FRAGMENT);for(let R=0;R<c;R++){let L=i[R],N=o[R],_=`PropertyStatistics_${L}`,E=`PropertyStatistics_${L}`;n.addStruct(_,E,Ce.FRAGMENT);let v=V8(N);n.addStructField(_,v,"min"),n.addStructField(_,v,"max")}let f="Statistics",d="Statistics",p="statistics";n.addStruct(f,d,Ce.FRAGMENT);for(let R=0;R<c;R++){let L=i[R],N=`PropertyStatistics_${L}`,_=L;n.addStructField(f,N,_)}let g="Metadata",m="Metadata",x="metadata";n.addStruct(g,m,Ce.FRAGMENT),n.addStructField(g,d,p);for(let R=0;R<c;R++){let L=i[R],N=o[R],_=V8(N);n.addStructField(g,_,L)}for(let R=0;R<c;R++){let L=i[R],N=o[R],_=i0t(N),E=`VoxelProperty_${L}`,v=`VoxelProperty_${L}`;n.addStruct(E,v,Ce.FRAGMENT),n.addStructField(E,_,"partialDerivativeLocal"),n.addStructField(E,_,"partialDerivativeWorld"),n.addStructField(E,_,"partialDerivativeView"),n.addStructField(E,_,"partialDerivativeValid")}let b="Voxel",T="Voxel",A="voxel";n.addStruct(b,T,Ce.FRAGMENT);for(let R=0;R<c;R++){let L=i[R],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");let C="FragmentInput",S="FragmentInput";n.addStruct(C,S,Ce.FRAGMENT),n.addStructField(C,m,x),n.addStructField(C,T,A);let w="Properties",D="Properties",O="properties";n.addStruct(w,D,Ce.FRAGMENT);for(let R=0;R<c;R++){let L=i[R],N=o[R],_=V8(N);n.addStructField(w,_,L)}{let R="clearProperties";n.addFunction(R,`${D} clearProperties()`,Ce.FRAGMENT),n.addFunctionLines(R,[`${D} ${O};`]);for(let L=0;L<c;L++){let N=i[L],_=o[L],E=r[L],v=V8(_,E);n.addFunctionLines(R,[`${O}.${N} = ${v}(0.0);`])}n.addFunctionLines(R,[`return ${O};`])}{let R="sumProperties";n.addFunction(R,`${D} sumProperties(${D} propertiesA, ${D} propertiesB)`,Ce.FRAGMENT),n.addFunctionLines(R,[`${D} ${O};`]);for(let L=0;L<c;L++){let N=i[L];n.addFunctionLines(R,[`${O}.${N} = propertiesA.${N} + propertiesB.${N};`])}n.addFunctionLines(R,[`return ${O};`])}{let R="scaleProperties";n.addFunction(R,`${D} scaleProperties(${D} ${O}, float scale)`,Ce.FRAGMENT),n.addFunctionLines(R,[`${D} scaledProperties = ${O};`]);for(let L=0;L<c;L++){let N=i[L];n.addFunctionLines(R,[`scaledProperties.${N} *= scale;`])}n.addFunctionLines(R,["return scaledProperties;"])}{let R="mixProperties";n.addFunction(R,`${D} mixProperties(${D} propertiesA, ${D} propertiesB, float mixFactor)`,Ce.FRAGMENT),n.addFunctionLines(R,[`${D} ${O};`]);for(let L=0;L<c;L++){let N=i[L];n.addFunctionLines(R,[`${O}.${N} = mix(propertiesA.${N}, propertiesB.${N}, mixFactor);`])}n.addFunctionLines(R,[`return ${O};`])}{let R="copyPropertiesToMetadata";n.addFunction(R,`void copyPropertiesToMetadata(in ${D} ${O}, inout ${m} ${x})`,Ce.FRAGMENT);for(let L=0;L<c;L++){let N=i[L];n.addFunctionLines(R,[`${x}.${N} = ${O}.${N};`])}}if(l){let R="setStatistics";n.addFunction(R,`void setStatistics(inout ${d} ${p})`,Ce.FRAGMENT);for(let L=0;L<c;L++){let N=i[L],_=o[L],E=Ht.getComponentCount(_);for(let v=0;v<E;v++){let I=o0t(_,v),M=s[L][v],B=a[L][v];n.addFunctionLines(R,[`${p}.${N}.min${I} = ${ube(M)};`,`${p}.${N}.max${I} = ${ube(B)};`])}}}{let R="getPropertiesFromMegatextureAtUv";n.addFunction(R,`${D} getPropertiesFromMegatextureAtUv(vec2 texcoord)`,Ce.FRAGMENT),n.addFunctionLines(R,[`${D} ${O};`]);for(let L=0;L<c;L++){let N=i[L],_=o[L],E=r[L],v=n0t(_,E);n.addFunctionLines(R,[`properties.${N} = texture(u_megatextureTextures[${L}], texcoord)${v};`])}n.addFunctionLines(R,[`return ${O};`])}}function V8(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 n0t(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 i0t(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 ube(e){let t=e.toString();return t.indexOf(".")===-1&&(t=`${e}.0`),t}function o0t(e,t){return e===Ht.SCALAR?"":`[${t}]`}var fB=t0t;function r0t(e,t){let n=new uB(e);fB(n,e);let{shaderBuilder:i,clippingPlanes:o,clippingPlanesLength:r}=n;if(r>0){let m="getClippingPlane",x=R_(o,t),b=0,T=x.indexOf(")")+1,A=x.indexOf("{",T)+1,C=x.indexOf("}",A),S=x.slice(b,T),w=x.slice(A,C);i.addFunction(m,S,Ce.FRAGMENT),i.addFunctionLines(m,[w])}let s=i.clone();s.addDefine("PICKING",void 0,Ce.FRAGMENT);let a=i.buildShaderProgram(t),c=s.buildShaderProgram(t),l=ke.fromCache({cull:{enabled:!0,face:pi.BACK},depthTest:{enabled:!1},depthMask:!1,blending:un.PRE_MULTIPLIED_ALPHA_BLEND}),f=t.getViewportQuadVertexArray(),d=e._depthTest,p=new Je({vertexArray:f,primitiveType:Me.TRIANGLES,renderState:l,shaderProgram:a,uniformMap:n.uniformMap,modelMatrix:e._compoundModelMatrix,pass:Ee.VOXELS,executeInClosestFrustum:!0,owner:this,cull:d,occlude:d}),g=Je.shallowClone(p,new Je);if(g.shaderProgram=c,g.pickOnly=!0,u(e._drawCommand)){let m=e._drawCommand;m.shaderProgram=m.shaderProgram&&m.shaderProgram.destroy()}if(u(e._drawCommandPick)){let m=e._drawCommandPick;m.shaderProgram=m.shaderProgram&&m.shaderProgram.destroy()}e._drawCommand=p,e._drawCommandPick=g}var dB=r0t;function f0(e,t,n,i,o,r,s){this._primitive=e;let a=i.length;this.megatextures=new Array(a);for(let x=0;x<a;x++){let b=i[x],T=Ht.getComponentCount(b),A=o[x];this.megatextures[x]=new VS(t,n,T,A,s)}let c=this.megatextures[0].maximumTileCount;this._simultaneousRequestCount=0,this._debugPrint=!1,this._frameNumber=0;let l=e._shape;this.rootNode=new qF(0,0,0,0,void 0,l,n),this._priorityQueue=new CT({maximumLength:c,comparator:Ki.priorityComparator}),this._highPriorityKeyframeNodes=new Array(c),this._keyframeNodesInMegatexture=new Array(c),this._keyframeCount=r,this._sampleCount=void 0,this._keyframeLocation=0,this._binaryTreeKeyframeWeighting=new Array(r);let f=this._binaryTreeKeyframeWeighting;f[0]=0,f[r-1]=0,_K(f,1,r-2,0);let d=9,p=2048,g=Math.floor(p/d),m=Math.ceil(c/g);this.internalNodeTexture=new It({context:t,pixelFormat:nt.RGBA,pixelDatatype:Ye.UNSIGNED_BYTE,flipY:!1,width:p,height:m,sampler:new ln({minificationFilter:rn.NEAREST,magnificationFilter:yi.NEAREST})}),this.internalNodeTilesPerRow=g,this.internalNodeTexelSizeUv=new z(1/p,1/m),this.leafNodeTexture=void 0,this.leafNodeTilesPerRow=void 0,this.leafNodeTexelSizeUv=new z}function _K(e,t,n,i){if(t>n)return;let o=Math.floor((t+n)/2);e[o]=i,_K(e,t,o-1,i+1),_K(e,o+1,n,i+1)}f0.simultaneousRequestCountMaximum=50;f0.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,l=c>0,f=a>1,d=(l?2:1)*(f?2:1);this._sampleCount=d;let p=d>=2;if(p&&!u(this.leafNodeTexture)){let A=Math.floor(512),C=Math.ceil(s/A);this.leafNodeTexture=new It({context:r,pixelFormat:nt.RGBA,pixelDatatype:Ye.UNSIGNED_BYTE,flipY:!1,width:1024,height:C,sampler:new ln({minificationFilter:rn.NEAREST,magnificationFilter:yi.NEAREST})}),this.leafNodeTexelSizeUv=z.fromElements(1/1024,1/C,this.leafNodeTexelSizeUv),this.leafNodeTilesPerRow=A}else!p&&u(this.leafNodeTexture)&&(this.leafNodeTexture=this.leafNodeTexture.destroy());if(this._keyframeLocation=P.clamp(t,0,a-1),n&&fbe(this,this.rootNode),i)return;this._frameNumber=e.frameNumber;let g=_i();c0t(this,e);let m=_i();u0t(this,d,c);let x=_i();if(this._debugPrint){let b=m-g,T=x-m,A=x-g;l0t(this,b,T,A)}};f0.prototype.isRenderable=function(e){return e.isRenderable(this._frameNumber)};f0.prototype.isDestroyed=function(){return!1};f0.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(),le(this)};function fbe(e,t){let n=e._primitive,i=n._shape,o=n._provider.dimensions;if(t.computeBoundingVolumes(i,o),u(t.children))for(let r=0;r<8;r++){let s=t.children[r];fbe(e,s)}}function s0t(e,t){if(e._simultaneousRequestCount>=f0.simultaneousRequestCountMaximum)return;let n=e._primitive,i=n._provider;function o(l){e._simultaneousRequestCount--;let f=n._provider.types.length;if(!u(l))t.state=Ki.LoadState.UNAVAILABLE;else if(l===Ki.LoadState.FAILED)t.state=Ki.LoadState.FAILED;else if(!Array.isArray(l)||l.length!==f)t.state=Ki.LoadState.FAILED;else{let d=e.megatextures;for(let p=0;p<f;p++){let{voxelCountPerTile:g,channelCount:m}=d[p],{x,y:b,z:T}=g,A=x*b*T,C=l[p],S=A*m;if(C.length===S)t.metadatas[p]=C,t.state=Ki.LoadState.RECEIVED;else{t.state=Ki.LoadState.FAILED;break}}}}function r(){e._simultaneousRequestCount--,t.state=Ki.LoadState.FAILED}let{keyframe:s,spatialNode:a}=t,c=i.requestData({tileLevel:a.level,tileX:a.x,tileY:a.y,tileZ:a.z,keyframe:s});u(c)?(e._simultaneousRequestCount++,t.state=Ki.LoadState.RECEIVING,c.then(o).catch(r)):t.state=Ki.LoadState.FAILED}function a0t(e){return e/(1+e)}function c0t(e,t){let n=e._frameNumber,i=e._primitive,o=i._shape,{dimensions:r}=i,s=i.screenSpaceError,a=e._priorityQueue,c=e._keyframeLocation,l=e._keyframeCount,f=e.rootNode,{camera:d,context:p,pixelRatio:g}=t,{positionWC:m,frustum:x}=d,T=p.drawingBufferHeight/g/x.sseDenominator;function A(E,v,I){let M=Math.min(Math.abs(v-E),Math.abs(v-I)),B=Math.max(E,l-I-1,1),V=Math.pow(1-M/B,4),U=Math.exp(-e._binaryTreeKeyframeWeighting[v]);return P.lerp(U,V,.15+.85*V)}function C(E,v){if(E.computeScreenSpaceError(m,T),v=E.visibility(t,v),v===es.MASK_OUTSIDE)return;E.visitedFrameNumber=n;let I=P.clamp(Math.floor(c),0,l-2),M=I+1;if(l===1)E.createKeyframeNode(0);else if(E.keyframeNodes.length!==l)for(let k=0;k<l;k++)E.createKeyframeNode(k);let B=a0t(E.screenSpaceError),V=!1,U=E.keyframeNodes;for(let k=0;k<U.length;k++){let Y=U[k];Y.priority=10*B+A(I,Y.keyframe,M),Y.state!==Ki.LoadState.UNAVAILABLE&&Y.state!==Ki.LoadState.FAILED&&Y.priority!==-Number.MAX_VALUE&&a.insert(Y),Y.state===Ki.LoadState.LOADED&&(V=!0)}if(E.screenSpaceError<s||!V){E.children=void 0;return}u(E.children)||E.constructChildNodes(o,r);for(let k=0;k<8;k++){let Y=E.children[k];C(Y,v)}}a.reset(),C(f,es.MASK_INDETERMINATE);let S=e._highPriorityKeyframeNodes,w=0,D;for(;a.length>0;)D=a.removeMaximum(),D.highPriorityFrameNumber=n,S[w]=D,w++;let O=e._keyframeNodesInMegatexture,R=e.megatextures[0],L=R.occupiedCount;O.length=L,O.sort(function(E,v){return E.highPriorityFrameNumber===v.highPriorityFrameNumber?v.priority-E.priority:v.highPriorityFrameNumber-E.highPriorityFrameNumber});let N=0,_=0;for(let E=0;E<w;E++)if(D=S[E],!(D.state===Ki.LoadState.LOADED||D.spatialNode===void 0)&&(D.state===Ki.LoadState.UNLOADED&&s0t(e,D),D.state===Ki.LoadState.RECEIVED)){let v=0;if(R.isFull()){v=L-1-N,N++;let I=O[v];I.spatialNode.destroyKeyframeNode(I,e.megatextures)}else v=L+_,_++;D.spatialNode.addKeyframeNodeToMegatextures(D,e.megatextures),O[v]=D}}function l0t(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),l=0;for(let T=0;T<s;T++){let A=new Array(o);a[T]=A;for(let C=0;C<o;C++)A[C]=0;c[T]=0}function f(T){let A=T.keyframeNodes;for(let C=0;C<A.length;C++){let S=A[C],w=S.keyframe,D=S.state;a[D][w]+=1,c[D]+=1,l++}if(u(T.children))for(let C=0;C<8;C++){let S=T.children[C];f(S)}}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: ${l}`,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 z8={INTERNAL:0,LEAF:1,PACKED_LEAF_FROM_PARENT:2};function u0t(e,t,n){let i=e._primitive._screenSpaceError,o=e._keyframeLocation,r=e._frameNumber,s=t>=2,a=0,c=0,l=[],f=[];function d(g,m,x,b,T){let A=!1;if(u(g.children))for(let C=0;C<8;C++){let S=g.children[C];S.computeSurroundingRenderableKeyframeNodes(o),S.isRenderable(r)&&(A=!0)}if(A){l[T]=z8.INTERNAL<<16|m,l[x]=b,a++,b=m,T=b*9+1;for(let C=0;C<8;C++){let S=g.children[C];m=a,x=m*9+0,d(S,m,x,b,T+C)}}else{if(s){let C=c*5,S=g.renderableKeyframeNodePrevious,w=g.level-S.spatialNode.level,D=S.spatialNode.parent,O=u(D)?D.renderableKeyframeNodePrevious:S,R=f0t(g,i,n),L=w,N=1,_=S.megatextureIndex,E=O.megatextureIndex;f[C+0]=R,f[C+1]=L,f[C+2]=N,f[C+3]=_,f[C+4]=E,l[T]=z8.LEAF<<16|c}else{let C=g.renderableKeyframeNodePrevious,w=g.level-C.spatialNode.level===0?z8.LEAF:z8.PACKED_LEAF_FROM_PARENT;l[T]=w<<16|C.megatextureIndex}c++}}let p=e.rootNode;p.computeSurroundingRenderableKeyframeNodes(o),p.isRenderable(r)&&d(p,0,0,0,0),d0t(l,9,e.internalNodeTilesPerRow,e.internalNodeTexture),s&&h0t(f,2,e.leafNodeTilesPerRow,e.leafNodeTexture)}function f0t(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 P.clamp(s,0,1)}function d0t(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 h0t(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)),l=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],A=P.clamp(Math.floor(65536*g),0,65535);l[p*8+0]=A>>>0&255,l[p*8+1]=A>>>8&255,l[p*8+2]=m&255,l[p*8+3]=x&255,l[p*8+4]=b>>>0&255,l[p*8+5]=b>>>8&255,l[p*8+6]=T>>>0&255,l[p*8+7]=T>>>8&255}let d={source:{arrayBufferView:l,width:a,height:c},xOffset:0,yOffset:0};i.copyFrom(d)}f0.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],l=Ht.getComponentCount(a);o+=VS.getApproximateTextureMemoryByteLength(e,t,l,c)}return o};var qS=f0;var m0t={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"},YS=Object.freeze(m0t);function XS(){this._defaultTexture=void 0,this._textures={},this._loadedImages=[],this._lastUpdatedFrame=-1}XS.prototype.getTexture=function(e){return this._textures[e]};function p0t(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];u(i)&&i!==e._defaultTexture&&i.destroy(),e._textures[t]=e._defaultTexture})}XS.prototype.loadTexture2D=function(e,t){u(t.typedArray)?this._loadedImages.push({id:e,textureUniform:t}):p0t(this,e,t)};function _0t(e,t,n){let{id:i,textureUniform:o,image:r}=t,s=n.webgl2?H8(o,r,n):g0t(o,r,n),a=e._textures[i];u(a)&&a!==n.defaultTexture&&a.destroy(),e._textures[i]=s}function H8(e,t,n){let{typedArray:i,sampler:o}=e,r=u(i)?hbe(e,n):new It({context:n,source:t,sampler:o});return dbe(o)&&r.generateMipmap(),r}function g0t(e,t,n){let{typedArray:i,sampler:o}=e,r=dbe(o),s=o.wrapS===Sn.REPEAT||o.wrapS===Sn.MIRRORED_REPEAT||o.wrapT===Sn.REPEAT||o.wrapT===Sn.MIRRORED_REPEAT,{width:a,height:c}=u(i)?e:t,l=[a,c].every(P.isPowerOfTwo);if((r||s)&&!l)if(u(i)){if(e.pixelDatatype===Ye.UNSIGNED_BYTE){let d=SF(i,a,c),p=Lg(d);return H8({sampler:o},p,n)}}else{let d=Lg(t);return H8(e,d,n)}else return H8(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."),hbe(e,n)}function dbe(e){return[rn.NEAREST_MIPMAP_NEAREST,rn.NEAREST_MIPMAP_LINEAR,rn.LINEAR_MIPMAP_NEAREST,rn.LINEAR_MIPMAP_LINEAR].includes(e.minificationFilter)}function hbe(e,t){let{pixelFormat:n,pixelDatatype:i,width:o,height:r,typedArray:s,sampler:a}=e;return new It({context:t,pixelFormat:n,pixelDatatype:i,source:{arrayBufferView:s,width:o,height:r},sampler:a,flipY:!1})}XS.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];_0t(this,o,t)}n.length=0};XS.prototype.isDestroyed=function(){return!1};XS.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 le(this)};var hB=XS;function mB(e){e=y(e,y.EMPTY_OBJECT),this.mode=y(e.mode,Gp.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,qg.INHERIT),this._textureManager=new hB,this._defaultTexture=void 0,this.uniformMap=y0t(this),this.usedVariablesVertex={attributeSet:{},featureIdSet:{},metadataSet:{}},this.usedVariablesFragment={attributeSet:{},featureIdSet:{},metadataSet:{},materialSet:{}},T0t(this),A0t(this)}function y0t(e){let t=e.uniforms,n={};for(let i in t)if(t.hasOwnProperty(i)){let o=t[i];o.type===YS.SAMPLER_2D?(e._textureManager.loadTexture2D(i,o.value),n[i]=x0t(e,i)):n[i]=b0t(e,i)}return n}function x0t(e,t){return function(){return y(e._textureManager.getTexture(t),e._defaultTexture)}}function b0t(e,t){return function(){return e.uniforms[t].value}}function UT(e,t,n){let i;for(;(i=t.exec(e))!==null;){let o=i[1];n[o]=!0}}function T0t(e){let t=/[vf]sInput\.attributes\.(\w+)/g,n=/[vf]sInput\.featureIds\.(\w+)/g,i=/[vf]sInput\.metadata.(\w+)/g,o,r=e.vertexShaderText;u(r)&&(o=e.usedVariablesVertex.attributeSet,UT(r,t,o),o=e.usedVariablesVertex.featureIdSet,UT(r,n,o),o=e.usedVariablesVertex.metadataSet,UT(r,i,o));let s=e.fragmentShaderText;if(u(s)){o=e.usedVariablesFragment.attributeSet,UT(s,t,o),o=e.usedVariablesFragment.featureIdSet,UT(s,n,o),o=e.usedVariablesFragment.metadataSet,UT(s,i,o);let a=/material\.(\w+)/g,c=e.usedVariablesFragment.materialSet;UT(s,a,c)}}function mbe(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 bc(e,t,n,i){if(e.hasOwnProperty(t)){let o=`${mbe(t)} is not available in the ${i} shader. Did you mean ${mbe(n)} instead?`;throw new de(o)}}function A0t(e){let t=e.usedVariablesVertex.attributeSet;bc(t,"position","positionMC","vertex"),bc(t,"normal","normalMC","vertex"),bc(t,"tangent","tangentMC","vertex"),bc(t,"bitangent","bitangentMC","vertex"),bc(t,"positionWC","positionMC","vertex"),bc(t,"positionEC","positionMC","vertex"),bc(t,"normalEC","normalMC","vertex"),bc(t,"tangentEC","tangentMC","vertex"),bc(t,"bitangentEC","bitangentMC","vertex");let n=e.usedVariablesFragment.attributeSet;bc(n,"position","positionEC","fragment"),bc(n,"normal","normalEC","fragment"),bc(n,"tangent","tangentEC","fragment"),bc(n,"bitangent","bitangentEC","fragment"),bc(n,"normalMC","normalEC","fragment"),bc(n,"tangentMC","tangentEC","fragment"),bc(n,"bitangentMC","bitangentEC","fragment")}mB.prototype.setUniform=function(e,t){let n=this.uniforms[e];n.type===YS.SAMPLER_2D?this._textureManager.loadTexture2D(e,t):u(t.clone)?n.value=t.clone(n.value):n.value=t};mB.prototype.update=function(e){this._defaultTexture=e.context.defaultTexture,this._textureManager.update(e)};mB.prototype.isDestroyed=function(){return!1};mB.prototype.destroy=function(){this._textureManager=this._textureManager&&this._textureManager.destroy(),le(this)};var VT=mB;function Wm(e){e=y(e,y.EMPTY_OBJECT),this._ready=!1,this._provider=y(e.provider,Wm.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._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._compoundModelMatrix=new F,this._compoundModelMatrixOld=new F,this._customShader=y(e.customShader,Wm.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 Q,this._transformNormalLocalToWorld=new Q,this._stepSizeUv=1,this._jitter=!0,this._nearestSampling=!1,this._levelBlendFactor=0,this._stepSizeMultiplier=1,this._depthTest=!0,this._useLogDepth=void 0,this._screenSpaceError=4,this._debugPolylines=new Ud,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 Q,transformNormalLocalToWorld:new Q,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;C0t(this,i)}function C0t(e,t){let{shape:n,minBounds:i=Wi.getMinBounds(n),maxBounds:o=Wi.getMaxBounds(n)}=t;e.minBounds=i,e.maxBounds=o,e.minClippingBounds=Wi.getMinBounds(n),e.maxClippingBounds=Wi.getMaxBounds(n),_be(e,t);let r=Wi.getShapeConstructor(n);e._shape=new r,e._shapeVisible=gbe(e,e._shape,t)}Object.defineProperties(Wm.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=P.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];u(e)?this._customShader=e:this._customShader=Wm.DefaultCustomShader,this._shaderDirty=!0}}},customShaderCompilationEvent:{get:function(){return this._customShaderCompilationEvent}}});var E0t=new h,S0t=new oe,w0t=new oe,v0t=new h,D0t=new h,I0t=new Q,P0t=new Q,O0t=new F,R0t=new F,M0t=new F,L0t=F.fromRotationTranslation(Q.fromUniformScale(.5,new Q),new h(.5,.5,.5),new F),N0t=F.fromRotationTranslation(Q.fromUniformScale(2,new Q),new h(-1,-1,-1),new F);Wm.prototype.update=function(e){let t=this._provider;this._customShader.update(e);let n=e.context;if(!this._ready){F0t(this,t,n),e.afterRender.push(()=>(this._ready=!0,!0));return}let i=_be(this,t),o=this._shape;if(i&&(this._shapeVisible=gbe(this,o,t),U0t(this,o)&&(this._shaderDirty=!0)),!this._shapeVisible)return;let r=V0t(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&&X0t(this,e),this._disableRender))return;this._useLogDepth!==e.useLogDepth&&(this._useLogDepth=e.useLogDepth,this._shaderDirty=!0),z0t(this,e)&&(this._shaderDirty=!0);let l=s.leafNodeTexture,f=this._uniforms;u(l)&&(f.octreeLeafNodeTexture=s.leafNodeTexture,f.octreeLeafNodeTexelSizeUv=z.clone(s.leafNodeTexelSizeUv,f.octreeLeafNodeTexelSizeUv),f.octreeLeafNodeTilesPerRow=s.leafNodeTilesPerRow),this._shaderDirty&&(dB(this,n),this._shaderDirty=!1);let d=n.uniformState.viewProjection,p=o.orientedBoundingBox,g=W0t(p,d,w0t);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=Q.multiply(this._transformDirectionWorldToLocal,T,f.transformDirectionViewToLocal),f.transformNormalLocalToWorld=Q.clone(this._transformNormalLocalToWorld,f.transformNormalLocalToWorld);let A=e.camera.positionWC;f.cameraPositionUv=F.multiplyByPoint(this._transformPositionWorldToUv,A,f.cameraPositionUv),f.stepSize=this._stepSizeUv*this._stepSizeMultiplier;let C=e.passes.pick?this._drawCommandPick:this._drawCommand;C.boundingVolume=o.boundingSphere,e.commandList.push(C)};function F0t(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=B0t(e,t,n),k0t(e._traversal,i)}function _be(e,t){let n=y(t.shapeTransform,F.IDENTITY),i=y(t.globalTransform,F.IDENTITY);return F.multiplyTransformation(i,e._modelMatrix,e._compoundModelMatrix),F.multiplyTransformation(e._compoundModelMatrix,n,e._compoundModelMatrix),pB(e,"_compoundModelMatrix","_compoundModelMatrixOld")+pB(e,"_minBounds","_minBoundsOld")+pB(e,"_maxBounds","_maxBoundsOld")+pB(e,"_minClippingBounds","_minClippingBoundsOld")+pB(e,"_maxClippingBounds","_maxClippingBoundsOld")>0}function pB(e,t,n){let i=e[t],o=e[n],r=!i.equals(o);return r&&i.clone(o),r?1:0}function gbe(e,t,n){if(!t.update(e._compoundModelMatrix,e.minBounds,e.maxBounds,e.minClippingBounds,e.maxClippingBounds))return!1;let o=t.shapeTransform,r=F.inverse(o,O0t),s=F.getRotation(o,I0t),a=F.getScale(o,v0t),c=h.maximumComponent(a),l=h.divideByScalar(a,c,D0t),f=Q.multiplyByScale(s,l,P0t),d=n.dimensions;return e._stepSizeUv=t.computeApproximateStepSize(d),e._transformPositionWorldToUv=F.multiplyTransformation(L0t,r,e._transformPositionWorldToUv),e._transformPositionUvToWorld=F.multiplyTransformation(o,N0t,e._transformPositionUvToWorld),e._transformDirectionWorldToLocal=F.getMatrix3(r,e._transformDirectionWorldToLocal),e._transformNormalLocalToWorld=Q.inverseTranspose(f,e._transformNormalLocalToWorld),!0}function B0t(e,t,n){let i=h.clone(t.dimensions,E0t);h.add(i,e._paddingBefore,i),h.add(i,e._paddingAfter,i);let o=t.maximumTileCount,r=u(o)?qS.getApproximateTextureMemoryByteLength(o,i,t.types,t.componentTypes):void 0,s=y(t.keyframeCount,1);return new qS(e,n,i,t.types,t.componentTypes,s,r)}function k0t(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 U0t(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 V0t(e,t){if(!u(e)||!u(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 z0t(e,t){let n=e.clippingPlanes;if(!u(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)}Wm.prototype.isDestroyed=function(){return!1};Wm.prototype.destroy=function(){let e=this._drawCommand;u(e)&&(e.shaderProgram=e.shaderProgram&&e.shaderProgram.destroy());let t=this._drawCommandPick;return u(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(),le(this)};var pbe=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)),H0t=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),G0t=new Array(new oe,new oe,new oe,new oe,new oe,new oe,new oe,new oe);function W0t(e,t,n){let i=F.fromRotationTranslation(e.halfAxes,e.center,R0t),o=F.multiply(t,i,M0t),r=+Number.MAX_VALUE,s=-Number.MAX_VALUE,a=+Number.MAX_VALUE,c=-Number.MAX_VALUE,l,f=G0t,d=pbe.length;for(l=0;l<d;l++)F.multiplyByVector(o,pbe[l],f[l]);for(l=0;l<d;l++){let p=f[l];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=H0t[l*3+g],x=f[m];if(x.z>=-x.w){let b=p.z+p.w,T=x.z+x.w,A=b/(b-T),C=oe.lerp(p,x,A,S0t),S=C.x/C.w,w=C.y/C.w;r=Math.min(r,S),s=Math.max(s,S),a=Math.min(a,w),c=Math.max(c,w)}}}return r=P.clamp(r,-1,1),a=P.clamp(a,-1,1),s=P.clamp(s,-1,1),c=P.clamp(c,-1,1),n=oe.fromElements(r,a,s,c,n),n}var gK=3e7,j0t=new h(gK,0,0),q0t=new h(0,gK,0),Y0t=new h(0,0,gK);function X0t(e,t){let n=e._traversal,i=e._debugPolylines;i.removeAll();function o(c,l,f,d){i.add({positions:[c,l],width:d,material:Vi.fromType("Color",{color:f})})}function r(c,l,f){let d=c.computeCorners();o(d[0],d[1],l,f),o(d[2],d[3],l,f),o(d[4],d[5],l,f),o(d[6],d[7],l,f),o(d[0],d[2],l,f),o(d[4],d[6],l,f),o(d[1],d[3],l,f),o(d[5],d[7],l,f),o(d[0],d[4],l,f),o(d[2],d[6],l,f),o(d[1],d[5],l,f),o(d[3],d[7],l,f)}function s(c){if(!n.isRenderable(c))return;let l=c.level,d=Math.max(1,5/Math.pow(2,l)),g=[H.RED,H.LIME,H.BLUE][l%3];if(r(c.orientedBoundingBox,g,d),u(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,j0t,H.RED,a),o(h.ZERO,q0t,H.LIME,a),o(h.ZERO,Y0t,H.BLUE,a),i.update(t)}Wm.DefaultCustomShader=new VT({fragmentShaderText:`void fragmentMain(FragmentInput fsInput, inout czm_modelMaterial material)
  12726. {
  12727. material.diffuse = vec3(1.0);
  12728. material.alpha = 1.0;
  12729. }`});function ybe(){this.ready=!0,this.shape=Wi.BOX,this.dimensions=new h(1,1,1),this.names=["data"],this.types=[Ht.SCALAR],this.componentTypes=[Qt.FLOAT32],this.maximumTileCount=1}ybe.prototype.requestData=function(e){if(!((u(e)?y(e.tileLevel,0):0)>=1))return Promise.resolve([new Float32Array(1)])};Wm.DefaultProvider=new ybe;var KS=Wm;function yK(){de.throwInstantiationError()}Object.defineProperties(yK.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}});yK.prototype.requestData=de.throwInstantiationError;var xK=yK;function zT(){de.throwInstantiationError()}Object.defineProperties(zT.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}});zT.prototype.update=de.throwInstantiationError;zT.prototype.computeOrientedBoundingBoxForTile=de.throwInstantiationError;zT.prototype.computeApproximateStepSize=de.throwInstantiationError;zT.DefaultMinBounds=de.throwInstantiationError;zT.DefaultMaxBounds=de.throwInstantiationError;var bK=zT;async function TK(e,t){let n=t.terrainProvider,i=t.mapProjection,o=i.ellipsoid,r,s=t.camera.getRectangleCameraCoordinates(e);if(t.mode===te.SCENE3D?r=o.cartesianToCartographic(s):r=i.unproject(s),!u(n))return r;let a=n.availability;if(!u(a)||t.mode===te.SCENE2D)return r;let c=[ce.center(e),ce.southeast(e),ce.southwest(e),ce.northeast(e),ce.northwest(e)],l=await TK._sampleTerrainMostDetailed(n,c),f=!1,d=l.reduce(function(g,m){return u(m.height)?(f=!0,Math.max(m.height,g)):g},-Number.MAX_VALUE),p=r;return f&&(p.height+=d),p}TK._sampleTerrainMostDetailed=S_;var HT=TK;var K0t=new H,Z0t=new H,$0t=new H,Q0t=new H,xbe=new oe,_B=new Uint8Array(4);function bbe(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 G8(e,t){return{height:e,color:H.clone(t)}}function Tbe(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 J0t(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=P.clamp(g.height,ql._minimumHeight,ql._maximumHeight),x=H.clone(g.color,K0t);x.red*=x.alpha,x.green*=x.alpha,x.blue*=x.alpha,c.push(G8(m,x))}let l=!0,f=!0;for(n=0;n<a-1;n++){let g=c[n+0],m=c[n+1];l=l&&g.height<=m.height,f=f&&g.height>=m.height}f?c=c.reverse():l||k_(c,function(g,m){return P.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,G8(ql._minimumHeight,c[0].color)),p&&c.splice(c.length,0,G8(ql._maximumHeight,c[c.length-1].color)),c=Tbe(c),i.push(c)}return i}function ext(e){let t=J0t(e),n=[],i=[],o;function r(l,f){n.push(G8(l,f))}function s(l,f,d){let p=H.multiplyByScalar(d,1-f.alpha,Q0t);p=H.add(p,f,p),r(l,p)}let a=t.length;for(o=0;o<a;o++){let l=t[o],f=0,d=0;i=n,n=[];let p=l.length,g=i.length;for(;f<p||d<g;){let m=f<p?l[f]:void 0,x=f>0?l[f-1]:void 0,b=f<p-1?l[f+1]:void 0,T=d<g?i[d]:void 0,A=d>0?i[d-1]:void 0,C=d<g-1?i[d+1]:void 0;if(u(m)&&u(T)&&m.height===T.height){let S=u(C)&&T.height===C.height,w=!u(A),D=!u(C),O=u(b)&&m.height===b.height,R=!u(x),L=!u(b);S?O?(s(m.height,m.color,T.color),s(m.height,b.color,C.color)):R?(r(m.height,T.color),s(m.height,m.color,C.color)):L?(s(m.height,m.color,T.color),r(m.height,C.color)):(s(m.height,m.color,T.color),s(m.height,m.color,C.color)):w?O?(r(m.height,m.color),s(m.height,b.color,T.color)):L?(r(m.height,m.color),r(m.height,T.color)):(R||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)):R?(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)):R?(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+=S?2:1}else if(u(m)&&u(T)&&u(A)&&m.height<T.height){let S=bbe(m.height,A,T,$0t);u(x)?u(b)?s(m.height,m.color,S):(s(m.height,m.color,S),r(m.height,S)):(r(m.height,S),s(m.height,m.color,S)),f++}else if(u(T)&&u(m)&&u(x)&&T.height<m.height){let S=bbe(T.height,x,m,Z0t);u(A)?u(C)?s(T.height,S,T.color):(s(T.height,S,T.color),r(T.height,S)):(r(T.height,S),s(T.height,S,T.color)),d++}else u(m)&&(!u(T)||m.height<T.height)?(u(T)&&!u(A)&&!u(b)?(r(m.height,m.color),r(m.height,ql._emptyColor),r(T.height,ql._emptyColor)):(!u(T)&&u(A)&&!u(x)&&(r(A.height,ql._emptyColor),r(m.height,ql._emptyColor)),r(m.height,m.color)),f++):u(T)&&(!u(m)||T.height<m.height)&&(r(T.height,T.color),d++)}}return Tbe(n)}function ql(e){let{scene:t,layers:n}=y(e,y.EMPTY_OBJECT),{context:i}=t,o=ext(n),r=o.length,s,a,c;if(!ql._useFloatTexture(i)){a=Ye.UNSIGNED_BYTE,c=nt.RGBA,s=new Uint8Array(r*4);for(let g=0;g<r;g++)oe.packFloat(o[g].height,xbe),oe.pack(xbe,s,g*4)}else{a=Ye.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=It.create({context:i,pixelFormat:c,pixelDatatype:a,source:{arrayBufferView:s,width:r,height:1},sampler:new ln({wrapS:Sn.CLAMP_TO_EDGE,wrapT:Sn.CLAMP_TO_EDGE,minificationFilter:rn.NEAREST,magnificationFilter:yi.NEAREST})}),d=new Uint8Array(r*4);for(let g=0;g<r;g++)o[g].color.toBytes(_B),d[g*4+0]=_B[0],d[g*4+1]=_B[1],d[g*4+2]=_B[2],d[g*4+3]=_B[3];let p=It.create({context:i,pixelFormat:nt.RGBA,pixelDatatype:Ye.UNSIGNED_BYTE,source:{arrayBufferView:d,width:r,height:1},sampler:new ln({wrapS:Sn.CLAMP_TO_EDGE,wrapT:Sn.CLAMP_TO_EDGE,minificationFilter:rn.LINEAR,magnificationFilter:yi.LINEAR})});return Vi.fromType("ElevationBand",{heights:f,colors:p})}ql._useFloatTexture=function(e){return e.floatingPointTexture};ql._maximumHeight=5906376425472;ql._minimumHeight=-5906376425472;ql._emptyColor=new H(0,0,0,0);var AK=ql;async function txt(e,t){if(t=y(t,{}),t.showCreditsOnScreen=!0,t.cacheBytes=y(t.cacheBytes,1536*1024*1024),t.maximumCacheOverflowBytes=y(t.maximumCacheOverflowBytes,1024*1024*1024),e=y(e,ST.defaultApiKey),!u(e))return nxt(t);let n,i=ST.getDefaultCredit();u(i)&&(n=[i]);let o=new ve({url:`${ST.mapTilesApiEndpoint}3dtiles/root.json`,queryParameters:{key:e},credits:n});return Zs.fromUrl(o,t)}var Abe={};async function nxt(e){let i=Abe[2275207];u(i)||(i=ru.fromAssetId(2275207),Abe[2275207]=i);let o=await i;return Zs.fromUrl(o,e)}var CK=txt;async function ixt(e){let t=await Zs.fromIonAssetId(96188,e);e=y(e,y.EMPTY_OBJECT);let n=e.style;if(!u(n)){let i=y(e.defaultColor,H.WHITE).toCssColorString();n=new DT({color:`Boolean(\${feature['cesium#color']}) ? color(\${feature['cesium#color']}) : ${i}`})}return t.style=n,t}var EK=ixt;function oxt(e){e=y(e,y.EMPTY_OBJECT);let t=[],n=e.geometry;(!u(n.attributes)||!u(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(u(i.normal)&&t.push(new yt({geometry:Nn.createLineSegmentsForVectors(n,"normal",r),attributes:{color:new kt(1,0,0,1)},modelMatrix:o})),u(i.tangent)&&t.push(new yt({geometry:Nn.createLineSegmentsForVectors(n,"tangent",r),attributes:{color:new kt(0,1,0,1)},modelMatrix:o})),u(i.bitangent)&&t.push(new yt({geometry:Nn.createLineSegmentsForVectors(n,"bitangent",r),attributes:{color:new kt(0,0,1,1)},modelMatrix:o})),t.length>0)return new En({asynchronous:!1,geometryInstances:t,appearance:new nn({flat:!0,translucent:!1})})}var SK=oxt;var wK=`uniform sampler2D u_depthTexture;
  12730. in vec2 v_textureCoordinates;
  12731. void main()
  12732. {
  12733. float z_window = czm_unpackDepth(texture(u_depthTexture, v_textureCoordinates));
  12734. z_window = czm_reverseLogDepth(z_window);
  12735. float n_range = czm_depthRange.near;
  12736. float f_range = czm_depthRange.far;
  12737. float z_ndc = (2.0 * z_window - n_range - f_range) / (f_range - n_range);
  12738. float scale = pow(z_ndc * 0.5 + 0.5, 8.0);
  12739. out_FragColor = vec4(mix(vec3(0.0), vec3(1.0), scale), 1.0);
  12740. }
  12741. `;function rxt(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,Ye.UNSIGNED_BYTE);let t=e.url;typeof t=="string"&&(t=ve.createIfNeeded(t)),this.resource=t;let i=y(e.repeat,!0)?Sn.REPEAT:Sn.CLAMP_TO_EDGE;this.sampler=new ln({wrapS:i,wrapT:i,minificationFilter:e.minificationFilter,magnificationFilter:e.magnificationFilter,maximumAnisotropy:e.maximumAnisotropy})}var vK=rxt;var sxt={FLOAT:"float",VEC2:"vec2",VEC3:"vec3",VEC4:"vec4",MAT2:"mat2",MAT3:"mat2",MAT4:"mat4"},DK=Object.freeze(sxt);function axt(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: ${wm(s)}
  12742. 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 IK=axt;globalThis.CESIUM_VERSION="1.110.1";var gB;typeof ko<"u"&&(gB=ko);(function(){/*!
  12743. * Knockout JavaScript library v3.5.1
  12744. * (c) The Knockout.js team - http://knockoutjs.com/
  12745. * License: MIT (http://www.opensource.org/licenses/mit-license.php)
  12746. */(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(_,E){return _===null||typeof _ in x?_===E:!1}function l(_,E){var v;return function(){v||(v=m.a.setTimeout(function(){v=e,_()},E))}}function f(_,E){var v;return function(){clearTimeout(v),v=m.a.setTimeout(_,E)}}function d(_,E){E&&E!=="change"?E==="beforeChange"?this.pc(_):this.gb(_,E):this.qc(_)}function p(_,E){E!==null&&E.s&&E.s()}function g(_,E){var v=this.qd,I=v[S];I.ra||(this.Qb&&this.mb[E]?(v.uc(E,_,this.mb[E]),this.mb[E]=null,--this.Qb):I.I[E]||v.uc(E,_,I.J?{da:_}:v.$c(_)),_.Ja&&_.gd())}var m=typeof s<"u"?s:{};m.b=function(_,E){for(var v=_.split("."),I=m,M=0;M<v.length-1;M++)I=I[v[M]];I[v[v.length-1]]=E},m.L=function(_,E,v){_[E]=v},m.version="3.5.1",m.b("version",m.version),m.options={deferUpdates:!1,useOnlyNativeEvents:!1,foreachHidesDestroyed:!1},m.a=function(){function _(W,K){for(var Z in W)M.call(W,Z)&&K(Z,W[Z])}function E(W,K){if(K)for(var Z in K)M.call(K,Z)&&(W[Z]=K[Z]);return W}function v(W,K){return W.__proto__=K,W}function I(W,K,Z,me){var xe=W[K].match(j)||[];m.a.D(Z.match(j),function(re){m.a.Na(xe,re,me)}),W[K]=xe.join(" ")}var M=Object.prototype.hasOwnProperty,B={__proto__:[]}instanceof Array,V=typeof Symbol=="function",U={},G={};U[i&&/Firefox\/2/i.test(i.userAgent)?"KeyboardEvent":"UIEvents"]=["keyup","keydown","keypress"],U.MouseEvents="click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave".split(" "),_(U,function(W,K){if(K.length)for(var Z=0,me=K.length;Z<me;Z++)G[K[Z]]=W});var k={propertychange:!0},Y=n&&function(){for(var W=3,K=n.createElement("div"),Z=K.getElementsByTagName("i");K.innerHTML="<!--[if gt IE "+ ++W+"]><i></i><![endif]-->",Z[0];);return 4<W?W:e}(),j=/\S+/g,$;return{Jc:["authenticity_token",/^__RequestVerificationToken(_.*)?$/],D:function(W,K,Z){for(var me=0,xe=W.length;me<xe;me++)K.call(Z,W[me],me,W)},A:typeof Array.prototype.indexOf=="function"?function(W,K){return Array.prototype.indexOf.call(W,K)}:function(W,K){for(var Z=0,me=W.length;Z<me;Z++)if(W[Z]===K)return Z;return-1},Lb:function(W,K,Z){for(var me=0,xe=W.length;me<xe;me++)if(K.call(Z,W[me],me,W))return W[me];return e},Pa:function(W,K){var Z=m.a.A(W,K);0<Z?W.splice(Z,1):Z===0&&W.shift()},wc:function(W){var K=[];return W&&m.a.D(W,function(Z){0>m.a.A(K,Z)&&K.push(Z)}),K},Mb:function(W,K,Z){var me=[];if(W)for(var xe=0,re=W.length;xe<re;xe++)me.push(K.call(Z,W[xe],xe));return me},jb:function(W,K,Z){var me=[];if(W)for(var xe=0,re=W.length;xe<re;xe++)K.call(Z,W[xe],xe)&&me.push(W[xe]);return me},Nb:function(W,K){if(K instanceof Array)W.push.apply(W,K);else for(var Z=0,me=K.length;Z<me;Z++)W.push(K[Z]);return W},Na:function(W,K,Z){var me=m.a.A(m.a.bc(W),K);0>me?Z&&W.push(K):Z||W.splice(me,1)},Ba:B,extend:E,setPrototypeOf:v,Ab:B?v:E,P:_,Ga:function(W,K,Z){if(!W)return W;var me={},xe;for(xe in W)M.call(W,xe)&&(me[xe]=K.call(Z,W[xe],xe,W));return me},Tb:function(W){for(;W.firstChild;)m.removeNode(W.firstChild)},Yb:function(W){W=m.a.la(W);for(var K=(W[0]&&W[0].ownerDocument||n).createElement("div"),Z=0,me=W.length;Z<me;Z++)K.appendChild(m.oa(W[Z]));return K},Ca:function(W,K){for(var Z=0,me=W.length,xe=[];Z<me;Z++){var re=W[Z].cloneNode(!0);xe.push(K?m.oa(re):re)}return xe},va:function(W,K){if(m.a.Tb(W),K)for(var Z=0,me=K.length;Z<me;Z++)W.appendChild(K[Z])},Xc:function(W,K){var Z=W.nodeType?[W]:W;if(0<Z.length){for(var me=Z[0],xe=me.parentNode,re=0,ye=K.length;re<ye;re++)xe.insertBefore(K[re],me);for(re=0,ye=Z.length;re<ye;re++)m.removeNode(Z[re])}},Ua:function(W,K){if(W.length){for(K=K.nodeType===8&&K.parentNode||K;W.length&&W[0].parentNode!==K;)W.splice(0,1);for(;1<W.length&&W[W.length-1].parentNode!==K;)W.length--;if(1<W.length){var Z=W[0],me=W[W.length-1];for(W.length=0;Z!==me;)W.push(Z),Z=Z.nextSibling;W.push(me)}}return W},Zc:function(W,K){7>Y?W.setAttribute("selected",K):W.selected=K},Db:function(W){return W===null||W===e?"":W.trim?W.trim():W.toString().replace(/^[\s\xa0]+|[\s\xa0]+$/g,"")},Ud:function(W,K){return W=W||"",K.length>W.length?!1:W.substring(0,K.length)===K},vd:function(W,K){if(W===K)return!0;if(W.nodeType===11)return!1;if(K.contains)return K.contains(W.nodeType!==1?W.parentNode:W);if(K.compareDocumentPosition)return(K.compareDocumentPosition(W)&16)==16;for(;W&&W!=K;)W=W.parentNode;return!!W},Sb:function(W){return m.a.vd(W,W.ownerDocument.documentElement)},kd:function(W){return!!m.a.Lb(W,m.a.Sb)},R:function(W){return W&&W.tagName&&W.tagName.toLowerCase()},Ac:function(W){return m.onError?function(){try{return W.apply(this,arguments)}catch(K){throw m.onError&&m.onError(K),K}}:W},setTimeout:function(W,K){return setTimeout(m.a.Ac(W),K)},Gc:function(W){setTimeout(function(){throw m.onError&&m.onError(W),W},0)},B:function(W,K,Z){var me=m.a.Ac(Z);if(Z=k[K],m.options.useOnlyNativeEvents||Z||!o)if(Z||typeof W.addEventListener!="function")if(typeof W.attachEvent<"u"){var xe=function(ye){me.call(W,ye)},re="on"+K;W.attachEvent(re,xe),m.a.K.za(W,function(){W.detachEvent(re,xe)})}else throw Error("Browser doesn't support addEventListener or attachEvent");else W.addEventListener(K,me,!1);else $||($=typeof o(W).on=="function"?"on":"bind"),o(W)[$](K,me)},Fb:function(W,K){if(!W||!W.nodeType)throw Error("element must be a DOM node when calling triggerEvent");var Z;if(m.a.R(W)==="input"&&W.type&&K.toLowerCase()=="click"?(Z=W.type,Z=Z=="checkbox"||Z=="radio"):Z=!1,m.options.useOnlyNativeEvents||!o||Z)if(typeof n.createEvent=="function")if(typeof W.dispatchEvent=="function")Z=n.createEvent(G[K]||"HTMLEvents"),Z.initEvent(K,!0,!0,t,0,0,0,0,0,!1,!1,!1,!1,0,W),W.dispatchEvent(Z);else throw Error("The supplied element doesn't support dispatchEvent");else if(Z&&W.click)W.click();else if(typeof W.fireEvent<"u")W.fireEvent("on"+K);else throw Error("Browser doesn't support triggering events");else o(W).trigger(K)},f:function(W){return m.O(W)?W():W},bc:function(W){return m.O(W)?W.v():W},Eb:function(W,K,Z){var me;K&&(typeof W.classList=="object"?(me=W.classList[Z?"add":"remove"],m.a.D(K.match(j),function(xe){me.call(W.classList,xe)})):typeof W.className.baseVal=="string"?I(W.className,"baseVal",K,Z):I(W,"className",K,Z))},Bb:function(W,K){var Z=m.a.f(K);(Z===null||Z===e)&&(Z="");var me=m.h.firstChild(W);!me||me.nodeType!=3||m.h.nextSibling(me)?m.h.va(W,[W.ownerDocument.createTextNode(Z)]):me.data=Z,m.a.Ad(W)},Yc:function(W,K){if(W.name=K,7>=Y)try{var Z=W.name.replace(/[&<>'"]/g,function(me){return"&#"+me.charCodeAt(0)+";"});W.mergeAttributes(n.createElement("<input name='"+Z+"'/>"),!1)}catch{}},Ad:function(W){9<=Y&&(W=W.nodeType==1?W:W.parentNode,W.style&&(W.style.zoom=W.style.zoom))},wd:function(W){if(Y){var K=W.style.width;W.style.width=0,W.style.width=K}},Pd:function(W,K){W=m.a.f(W),K=m.a.f(K);for(var Z=[],me=W;me<=K;me++)Z.push(me);return Z},la:function(W){for(var K=[],Z=0,me=W.length;Z<me;Z++)K.push(W[Z]);return K},Da:function(W){return V?Symbol(W):W},Zd:Y===6,$d:Y===7,W:Y,Lc:function(W,K){for(var Z=m.a.la(W.getElementsByTagName("input")).concat(m.a.la(W.getElementsByTagName("textarea"))),me=typeof K=="string"?function(ye){return ye.name===K}:function(ye){return K.test(ye.name)},xe=[],re=Z.length-1;0<=re;re--)me(Z[re])&&xe.push(Z[re]);return xe},Nd:function(W){return typeof W=="string"&&(W=m.a.Db(W))?r&&r.parse?r.parse(W):new Function("return "+W)():null},hc:function(W,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(W),K,Z)},Od:function(W,K,Z){Z=Z||{};var me=Z.params||{},xe=Z.includeFields||this.Jc,re=W;if(typeof W=="object"&&m.a.R(W)==="form")for(var re=W.action,ye=xe.length-1;0<=ye;ye--)for(var ge=m.a.Lc(W,xe[ye]),Ae=ge.length-1;0<=Ae;Ae--)me[ge[Ae].name]=ge[Ae].value;K=m.a.f(K);var De=n.createElement("form");De.style.display="none",De.action=re,De.method="post";for(var Re in K)W=n.createElement("input"),W.type="hidden",W.name=Re,W.value=m.a.hc(m.a.f(K[Re])),De.appendChild(W);_(me,function(ze,ut){var Vt=n.createElement("input");Vt.type="hidden",Vt.name=ze,Vt.value=ut,De.appendChild(Vt)}),n.body.appendChild(De),Z.submitter?Z.submitter(De):De.submit(),setTimeout(function(){De.parentNode.removeChild(De)},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 E=this;if(arguments.length===1)return function(){return E.apply(_,arguments)};var v=Array.prototype.slice.call(arguments,1);return function(){var I=v.slice(0);return I.push.apply(I,arguments),E.apply(_,I)}}),m.a.g=new function(){var _=0,E="__ko__"+new Date().getTime(),v={},I,M;return m.a.W?(I=function(B,V){var U=B[E];if(!U||U==="null"||!v[U]){if(!V)return e;U=B[E]="ko"+_++,v[U]={}}return v[U]},M=function(B){var V=B[E];return V?(delete v[V],B[E]=null,!0):!1}):(I=function(B,V){var U=B[E];return!U&&V&&(U=B[E]={}),U},M=function(B){return B[E]?(delete B[E],!0):!1}),{get:function(B,V){var U=I(B,!1);return U&&U[V]},set:function(B,V,U){(B=I(B,U!==e))&&(B[V]=U)},Ub:function(B,V,U){return B=I(B,!0),B[V]||(B[V]=U)},clear:M,Z:function(){return _+++E}}},m.b("utils.domData",m.a.g),m.b("utils.domData.clear",m.a.g.clear),m.a.K=new function(){function _(V,U){var G=m.a.g.get(V,I);return G===e&&U&&(G=[],m.a.g.set(V,I,G)),G}function E(V){var U=_(V,!1);if(U)for(var U=U.slice(0),G=0;G<U.length;G++)U[G](V);m.a.g.clear(V),m.a.K.cleanExternalData(V),B[V.nodeType]&&v(V.childNodes,!0)}function v(V,U){for(var G=[],k,Y=0;Y<V.length;Y++)if((!U||V[Y].nodeType===8)&&(E(G[G.length]=k=V[Y]),V[Y]!==k))for(;Y--&&m.a.A(G,V[Y])==-1;);}var I=m.a.g.Z(),M={1:!0,8:!0,9:!0},B={1:!0,9:!0};return{za:function(V,U){if(typeof U!="function")throw Error("Callback must be a function");_(V,!0).push(U)},yb:function(V,U){var G=_(V,!1);G&&(m.a.Pa(G,U),G.length==0&&m.a.g.set(V,I,e))},oa:function(V){return m.u.G(function(){M[V.nodeType]&&(E(V),B[V.nodeType]&&v(V.getElementsByTagName("*")))}),V},removeNode:function(V){m.oa(V),V.parentNode&&V.parentNode.removeChild(V)},cleanExternalData:function(V){o&&typeof o.cleanData=="function"&&o.cleanData([V])}}},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,"",""],E=[1,"<table>","</table>"],v=[3,"<table><tbody><tr>","</tr></tbody></table>"],I=[1,"<select multiple='multiple'>","</select>"],M={thead:E,tbody:E,tfoot:E,tr:[2,"<table><tbody>","</tbody></table>"],td:v,th:v,option:I,optgroup:I},B=8>=m.a.W;m.a.ua=function(V,U){var G;if(o){if(o.parseHTML)G=o.parseHTML(V,U)||[];else if((G=o.clean([V],U))&&G[0]){for(var k=G[0];k.parentNode&&k.parentNode.nodeType!==11;)k=k.parentNode;k.parentNode&&k.parentNode.removeChild(k)}}else{(G=U)||(G=n);var k=G.parentWindow||G.defaultView||t,Y=m.a.Db(V).toLowerCase(),j=G.createElement("div"),$;for($=(Y=Y.match(/^(?:\x3c!--.*?--\x3e\s*?)*?<([a-z]+)[\s>]/))&&M[Y[1]]||_,Y=$[0],$="ignored<div>"+$[1]+V+$[2]+"</div>",typeof k.innerShiv=="function"?j.appendChild(k.innerShiv($)):(B&&G.body.appendChild(j),j.innerHTML=$,B&&j.parentNode.removeChild(j));Y--;)j=j.lastChild;G=m.a.la(j.lastChild.childNodes)}return G},m.a.Md=function(V,U){var G=m.a.ua(V,U);return G.length&&G[0].parentElement||m.a.Yb(G)},m.a.fc=function(V,U){if(m.a.Tb(V),U=m.a.f(U),U!==null&&U!==e)if(typeof U!="string"&&(U=U.toString()),o)o(V).html(U);else for(var G=m.a.ua(U,V.ownerDocument),k=0;k<G.length;k++)V.appendChild(G[k])}}(),m.b("utils.parseHtmlFragment",m.a.ua),m.b("utils.setHtml",m.a.fc),m.aa=function(){function _(v,I){if(v){if(v.nodeType==8){var M=m.aa.Uc(v.nodeValue);M!=null&&I.push({ud:v,Kd:M})}else if(v.nodeType==1)for(var M=0,B=v.childNodes,V=B.length;M<V;M++)_(B[M],I)}}var E={};return{Xb:function(v){if(typeof v!="function")throw Error("You can only pass a function to ko.memoization.memoize()");var I=(4294967296*(1+Math.random())|0).toString(16).substring(1)+(4294967296*(1+Math.random())|0).toString(16).substring(1);return E[I]=v,"<!--[ko_memo:"+I+"]-->"},bd:function(v,I){var M=E[v];if(M===e)throw Error("Couldn't find any memo with ID "+v+". Perhaps it's already been unmemoized.");try{return M.apply(null,I||[]),!0}finally{delete E[v]}},cd:function(v,I){var M=[];_(v,M);for(var B=0,V=M.length;B<V;B++){var U=M[B].ud,G=[U];I&&m.a.Nb(G,I),m.aa.bd(M[B].Kd,G),U.nodeValue="",U.parentNode&&U.parentNode.removeChild(U)}},Uc:function(v){return(v=v.match(/^\[ko_memo\:(.*?)\]$/))?v[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 U=M,G=0,k;V<M;)if(k=I[V++]){if(V>U){if(5e3<=++G){V=M,m.a.Gc(Error("'Too much recursion' after processing "+G+" task groups."));break}U=M}try{k()}catch(Y){m.a.Gc(Y)}}}}function E(){_(),V=M=I.length=0}var v,I=[],M=0,B=1,V=0;return t.MutationObserver?v=function(U){var G=n.createElement("div");return new MutationObserver(U).observe(G,{attributes:!0}),function(){G.classList.toggle("foo")}}(E):v=n&&"onreadystatechange"in n.createElement("script")?function(U){var G=n.createElement("script");G.onreadystatechange=function(){G.onreadystatechange=null,n.documentElement.removeChild(G),G=null,U()},n.documentElement.appendChild(G)}:function(U){setTimeout(U,0)},{scheduler:v,zb:function(U){return M||m.na.scheduler(E),I[M++]=U,B++},cancel:function(U){U=U-(B-M),U>=V&&U<M&&(I[U]=null)},resetForTesting:function(){var U=M-V;return V=M=I.length=0,U},Sd:_}}(),m.b("tasks",m.na),m.b("tasks.schedule",m.na.zb),m.b("tasks.runEarly",m.na.Sd),m.Ta={throttle:function(_,E){_.throttleEvaluation=E;var v=null;return m.$({read:_,write:function(I){clearTimeout(v),v=m.a.setTimeout(function(){_(I)},E)}})},rateLimit:function(_,E){var v,I,M;typeof E=="number"?v=E:(v=E.timeout,I=E.method),_.Hb=!1,M=typeof I=="function"?I:I=="notifyWhenChangesStop"?f:l,_.ub(function(B){return M(B,v,E)})},deferred:function(_,E){if(E!==!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(v){var I,M=!1;return function(){if(!M){m.na.cancel(I),I=m.na.zb(v);try{M=!0,_.notifySubscribers(e,"dirty")}finally{M=!1}}}}))},notify:function(_,E){_.equalityComparer=E=="always"?null:c}};var x={undefined:1,boolean:1,number:1,string:1};m.b("extenders",m.Ta),m.ic=function(_,E,v){this.da=_,this.lc=E,this.mc=v,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(_,E,v){var I=this;v=v||"change";var M=new m.ic(I,E?_.bind(E):_,function(){m.a.Pa(I.U[v],M),I.hb&&I.hb(v)});return I.Qa&&I.Qa(v),I.U[v]||(I.U[v]=[]),I.U[v].push(M),M},notifySubscribers:function(_,E){if(E=E||"change",E==="change"&&this.Gb(),this.Wa(E)){var v=E==="change"&&this.ed||this.U[E].slice(0);try{m.u.xc();for(var I=0,M;M=v[I];++I)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 E=this,v=m.O(E),I,M,B,V,U;E.gb||(E.gb=E.notifySubscribers,E.notifySubscribers=d);var G=_(function(){E.Ja=!1,v&&V===E&&(V=E.nc?E.nc():E());var k=M||U&&E.sb(B,V);U=M=I=!1,k&&E.gb(B=V)});E.qc=function(k,Y){Y&&E.Ja||(U=!Y),E.ed=E.U.change.slice(0),E.Ja=I=!0,V=k,G()},E.pc=function(k){I||(B=k,E.gb(k,"beforeChange"))},E.rc=function(){U=!0},E.gd=function(){E.sb(B,E.v(!0))&&(M=!0)}},Wa:function(_){return this.U[_]&&this.U[_].length},Bd:function(_){if(_)return this.U[_]&&this.U[_].length||0;var E=0;return m.a.P(this.U,function(v,I){v!=="dirty"&&(E+=I.length)}),E},sb:function(_,E){return!this.equalityComparer||!this.equalityComparer(_,E)},toString:function(){return"[object Object]"},extend:function(_){var E=this;return _&&m.a.P(_,function(v,I){var M=m.Ta[v];typeof M=="function"&&(E=M(E,I)||E)}),E}};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){v.push(I),I=B}function E(){I=v.pop()}var v=[],I,M=0;return{xc:_,end:E,cc:function(B){if(I){if(!m.Qc(B))throw Error("Only subscribable things can act as dependencies");I.od.call(I.pd,B,B.fd||(B.fd=++M))}},G:function(B,V,U){try{return _(),B.apply(V,U||[])}finally{E()}},qa:function(){if(I)return I.o.qa()},Va:function(){if(I)return I.o.Va()},Ya:function(){if(I)return I.Ya},o:function(){if(I)return I.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 E(){return 0<arguments.length?(E.sb(E[T],arguments[0])&&(E.ya(),E[T]=arguments[0],E.xa()),this):(m.u.cc(E),E[T])}return E[T]=_,m.a.Ba||m.a.extend(E,m.T.fn),m.T.fn.qb(E),m.a.Ab(E,A),m.options.deferUpdates&&m.Ta.deferred(E,!0),E};var A={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(A,m.T.fn);var C=m.ta.Ma="__ko_proto__";A[C]=m.ta,m.O=function(_){if((_=typeof _=="function"&&_[C])&&_!==A[C]&&_!==m.o.fn[C])throw Error("Invalid object that looks like an observable; possibly from another Knockout instance");return!!_},m.Za=function(_){return typeof _=="function"&&(_[C]===A[C]||_[C]===m.o.fn[C]&&_.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",A),m.L(A,"peek",A.v),m.L(A,"valueHasMutated",A.xa),m.L(A,"valueWillMutate",A.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 E=this.v(),v=[],I=typeof _!="function"||m.O(_)?function(V){return V===_}:_,M=0;M<E.length;M++){var B=E[M];if(I(B)){if(v.length===0&&this.ya(),E[M]!==B)throw Error("Array modified during remove; cannot remove item");v.push(B),E.splice(M,1),M--}}return v.length&&this.xa(),v},removeAll:function(_){if(_===e){var E=this.v(),v=E.slice(0);return this.ya(),E.splice(0,E.length),this.xa(),v}return _?this.remove(function(I){return 0<=m.a.A(_,I)}):[]},destroy:function(_){var E=this.v(),v=typeof _!="function"||m.O(_)?function(B){return B===_}:_;this.ya();for(var I=E.length-1;0<=I;I--){var M=E[I];v(M)&&(M._destroy=!0)}this.xa()},destroyAll:function(_){return _===e?this.destroy(function(){return!0}):_?this.destroy(function(E){return 0<=m.a.A(_,E)}):[]},indexOf:function(_){var E=this();return m.a.A(E,_)},replace:function(_,E){var v=this.indexOf(_);0<=v&&(this.ya(),this.v()[v]=E,this.xa())},sorted:function(_){var E=this().slice(0);return _?E.sort(_):E.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 E=this.v();this.ya(),this.zc(E,_,arguments);var v=E[_].apply(E,arguments);return this.xa(),v===E?this:v}}),m.a.D(["slice"],function(_){m.Ha.fn[_]=function(){var E=this();return E[_].apply(E,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(_,E){function v(){function j(){if(U){var $=[].concat(_.v()||[]),W;_.Wa("arrayChange")&&((!M||1<U)&&(M=m.a.Pb(G,$,_.Ob)),W=M),G=$,M=null,U=0,W&&W.length&&_.notifySubscribers(W,"arrayChange")}}I?j():(I=!0,V=_.subscribe(function(){++U},null,"spectate"),G=[].concat(_.v()||[]),M=null,B=_.subscribe(j))}if(_.Ob={},E&&typeof E=="object"&&m.a.extend(_.Ob,E),_.Ob.sparse=!0,!_.zc){var I=!1,M=null,B,V,U=0,G,k=_.Qa,Y=_.hb;_.Qa=function(j){k&&k.call(_,j),j==="arrayChange"&&v()},_.hb=function(j){Y&&Y.call(_,j),j!=="arrayChange"||_.Wa("arrayChange")||(B&&B.s(),V&&V.s(),V=B=null,I=!1,G=e)},_.zc=function(j,$,W){function K(De,Re,ze){return Z[Z.length]={status:De,value:Re,index:ze}}if(I&&!U){var Z=[],me=j.length,xe=W.length,re=0;switch($){case"push":re=me;case"unshift":for($=0;$<xe;$++)K("added",W[$],re+$);break;case"pop":re=me-1;case"shift":me&&K("deleted",j[re],re);break;case"splice":$=Math.min(Math.max(0,0>W[0]?me+W[0]:W[0]),me);for(var me=xe===1?me:Math.min($+(W[1]||0),me),xe=$+xe-2,re=Math.max(me,xe),ye=[],ge=[],Ae=2;$<re;++$,++Ae)$<me&&ge.push(K("deleted",j[$],$)),$<xe&&ye.push(K("added",W[Ae],$));m.a.Kc(ge,ye);break;default:return}M=Z}}}};var S=m.a.Da("_state");m.o=m.$=function(_,E,v){function I(){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(I),(B.ka||B.J&&I.Xa())&&I.ha(),B.X}if(typeof _=="object"?v=_:(v=v||{},_&&(v.read=_)),typeof v.read!="function")throw Error("Pass a function that returns the value of the ko.computed");var M=v.write,B={X:e,sa:!0,ka:!0,rb:!1,jc:!1,ra:!1,wb:!1,J:!1,Wc:v.read,nb:E||v.owner,l:v.disposeWhenNodeIsRemoved||v.l||null,Sa:v.disposeWhen||v.Sa,Rb:null,I:{},V:0,Ic:null};return I[S]=B,I.Nc=typeof M=="function",m.a.Ba||m.a.extend(I,m.T.fn),m.T.fn.qb(I),m.a.Ab(I,w),v.pure?(B.wb=!0,B.J=!0,m.a.extend(I,D)):v.deferEvaluation&&m.a.extend(I,O),m.options.deferUpdates&&m.Ta.deferred(I,!0),B.l&&(B.jc=!0,B.l.nodeType||(B.l=null)),B.J||v.deferEvaluation||I.ha(),B.l&&I.ja()&&m.a.K.za(B.l,B.Rb=function(){I.s()}),I};var w={equalityComparer:c,qa:function(){return this[S].V},Va:function(){var _=[];return m.a.P(this[S].I,function(E,v){_[v.Ka]=v.da}),_},Vb:function(_){if(!this[S].V)return!1;var E=this.Va();return m.a.A(E,_)!==-1?!0:!!m.a.Lb(E,function(v){return v.Vb&&v.Vb(_)})},uc:function(_,E,v){if(this[S].wb&&E===this)throw Error("A 'pure' computed must not be called recursively");this[S].I[_]=v,v.Ka=this[S].V++,v.La=E.ob()},Xa:function(){var _,E,v=this[S].I;for(_ in v)if(Object.prototype.hasOwnProperty.call(v,_)&&(E=v[_],this.Ia&&E.da.Ja||E.da.Dd(E.La)))return!0},Jd:function(){this.Ia&&!this[S].rb&&this.Ia(!1)},ja:function(){var _=this[S];return _.ka||0<_.V},Rd:function(){this.Ja?this[S].ka&&(this[S].sa=!0):this.Hc()},$c:function(_){if(_.Hb){var E=_.subscribe(this.Jd,this,"dirty"),v=_.subscribe(this.Rd,this);return{da:_,s:function(){E.s(),v.s()}}}return _.subscribe(this.Hc,this)},Hc:function(){var _=this,E=_.throttleEvaluation;E&&0<=E?(clearTimeout(this[S].Ic),this[S].Ic=m.a.setTimeout(function(){_.ha(!0)},E)):_.Ia?_.Ia(!0):_.ha(!0)},ha:function(_){var E=this[S],v=E.Sa,I=!1;if(!E.rb&&!E.ra){if(E.l&&!m.a.Sb(E.l)||v&&v()){if(!E.jc){this.s();return}}else E.jc=!1;E.rb=!0;try{I=this.zd(_)}finally{E.rb=!1}return I}},zd:function(_){var E=this[S],I=!1,v=E.wb?e:!E.V,I={qd:this,mb:E.I,Qb:E.V};m.u.xc({pd:I,od:g,o:this,Ya:v}),E.I={},E.V=0;var M=this.yd(E,I);return E.V?I=this.sb(E.X,M):(this.s(),I=!0),I&&(E.J?this.Gb():this.notifySubscribers(E.X,"beforeChange"),E.X=M,this.notifySubscribers(E.X,"spectate"),!E.J&&_&&this.notifySubscribers(E.X),this.rc&&this.rc()),v&&this.notifySubscribers(E.X,"awake"),I},yd:function(_,E){try{var v=_.Wc;return _.nb?v.call(_.nb):v()}finally{m.u.end(),E.Qb&&!_.J&&m.a.P(E.mb,p),_.sa=_.ka=!1}},v:function(_){var E=this[S];return(E.ka&&(_||!E.V)||E.J&&this.Xa())&&this.ha(),E.X},ub:function(_){m.T.fn.ub.call(this,_),this.nc=function(){return this[S].J||(this[S].sa?this.ha():this[S].ka=!1),this[S].X},this.Ia=function(E){this.pc(this[S].X),this[S].ka=!0,E&&(this[S].sa=!0),this.qc(this,!E)}},s:function(){var _=this[S];!_.J&&_.I&&m.a.P(_.I,function(E,v){v.s&&v.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 E=this,v=E[S];if(!v.ra&&v.J&&_=="change"){if(v.J=!1,v.sa||E.Xa())v.I=null,v.V=0,E.ha()&&E.Gb();else{var I=[];m.a.P(v.I,function(M,B){I[B.Ka]=M}),m.a.D(I,function(M,B){var V=v.I[M],U=E.$c(V.da);U.Ka=B,U.La=V.La,v.I[M]=U}),E.Xa()&&E.ha()&&E.Gb()}v.ra||E.notifySubscribers(v.X,"awake")}},hb:function(_){var E=this[S];E.ra||_!="change"||this.Wa("change")||(m.a.P(E.I,function(v,I){I.s&&(E.I[v]={da:I.da,Ka:I.Ka,La:I.La},I.s())}),E.J=!0,this.notifySubscribers(e,"asleep"))},ob:function(){var _=this[S];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(w,m.T.fn);var R=m.ta.Ma;w[R]=m.o,m.Oc=function(_){return typeof _=="function"&&_[R]===w[R]},m.Fd=function(_){return m.Oc(_)&&_[S]&&_[S].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",w),m.L(w,"peek",w.v),m.L(w,"dispose",w.s),m.L(w,"isActive",w.ja),m.L(w,"getDependenciesCount",w.qa),m.L(w,"getDependencies",w.Va),m.xb=function(_,E){return typeof _=="function"?m.o(_,E,{pure:!0}):(_=m.a.extend({},_),_.pure=!0,m.o(_,E))},m.b("pureComputed",m.xb),function(){function _(I,M,B){if(B=B||new v,I=M(I),typeof I!="object"||I===null||I===e||I instanceof RegExp||I instanceof Date||I instanceof String||I instanceof Number||I instanceof Boolean)return I;var V=I instanceof Array?[]:{};return B.save(I,V),E(I,function(U){var G=M(I[U]);switch(typeof G){case"boolean":case"number":case"string":case"function":V[U]=G;break;case"object":case"undefined":var k=B.get(G);V[U]=k!==e?k:_(G,M,B)}}),V}function E(I,M){if(I instanceof Array){for(var B=0;B<I.length;B++)M(B);typeof I.toJSON=="function"&&M("toJSON")}else for(B in I)M(B)}function v(){this.keys=[],this.values=[]}m.ad=function(I){if(arguments.length==0)throw Error("When calling ko.toJS, pass the object you want to convert.");return _(I,function(M){for(var B=0;m.O(M)&&10>B;B++)M=M();return M})},m.toJSON=function(I,M,B){return I=m.ad(I),m.a.hc(I,M,B)},v.prototype={constructor:v,save:function(I,M){var B=m.a.A(this.keys,I);0<=B?this.values[B]=M:(this.keys.push(I),this.values.push(M))},get:function(I){return I=m.a.A(this.keys,I),0<=I?this.values[I]:e}}}(),m.b("toJS",m.ad),m.b("toJSON",m.toJSON),m.Wd=function(_,E,v){function I(M){var B=m.xb(_,v).extend({ma:"always"}),V=B.subscribe(function(U){U&&(V.s(),M(U))});return B.notifySubscribers(B.v()),V}return typeof Promise!="function"||E?I(E.bind(v)):new Promise(I)},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(_,E,v){switch(m.a.R(_)){case"option":typeof E=="string"?(m.a.g.set(_,m.c.options.$b,e),"__ko__hasDomDataOptionValue__"in _&&delete _.__ko__hasDomDataOptionValue__,_.value=E):(m.a.g.set(_,m.c.options.$b,E),_.__ko__hasDomDataOptionValue__=!0,_.value=typeof E=="number"?E:"");break;case"select":(E===""||E===null)&&(E=e);for(var I=-1,M=0,B=_.options.length,V;M<B;++M)if(V=m.w.M(_.options[M]),V==E||V===""&&E===e){I=M;break}(v||0<=I||E===e&&1<_.size)&&(_.selectedIndex=I,m.a.W===6&&m.a.setTimeout(function(){_.selectedIndex=I},0));break;default:(E===null||E===e)&&(E=""),_.value=E}}}}(),m.b("selectExtensions",m.w),m.b("selectExtensions.readValue",m.w.M),m.b("selectExtensions.writeValue",m.w.cb),m.m=function(){function _(U){U=m.a.Db(U),U.charCodeAt(0)===123&&(U=U.slice(1,-1)),U+=`
  12747. ,`;var G=[],k=U.match(I),Y,j=[],$=0;if(1<k.length){for(var W=0,K;K=k[W];++W){var Z=K.charCodeAt(0);if(Z===44){if(0>=$){G.push(Y&&j.length?{key:Y,value:j.join("")}:{unknown:Y||j.join("")}),Y=$=0,j=[];continue}}else if(Z===58){if(!$&&!Y&&j.length===1){Y=j.pop();continue}}else{if(Z===47&&1<K.length&&(K.charCodeAt(1)===47||K.charCodeAt(1)===42))continue;Z===47&&W&&1<K.length?(Z=k[W-1].match(M))&&!B[Z[0]]&&(U=U.substr(U.indexOf(K)+1),k=U.match(I),W=-1,K="/"):Z===40||Z===123||Z===91?++$:Z===41||Z===125||Z===93?--$:Y||j.length||Z!==34&&Z!==39||(K=K.slice(1,-1))}j.push(K)}if(0<$)throw Error("Unbalanced parentheses, braces, or brackets")}return G}var E=["true","false","null","undefined"],v=/^(?:[$_a-z][$\w]*|(.+)(\.\s*[$_a-z][$\w]*|\[.+\]))$/i,I=RegExp(`"(?:\\\\.|[^"])*"|'(?:\\\\.|[^'])*'|\`(?:\\\\.|[^\`])*\`|/\\*(?:[^*]|\\*+[^*/])*\\*+/|//.*
  12748. |/(?:\\\\.|[^/])+/w*|[^\\s:,/][^,"'\`{}()/:[\\]]*[^\\s,"'\`{}()/:[\\]]|[^\\s]`,"g"),M=/[\])"'A-Za-z0-9_$]+$/,B={in:1,return:1,typeof:1},V={};return{Ra:[],wa:V,ac:_,vb:function(U,G){function k(Z,me){var xe;if(!W){var re=m.getBindingHandler(Z);if(re&&re.preprocess&&!(me=re.preprocess(me,Z,k)))return;(re=V[Z])&&(xe=me,0<=m.a.A(E,xe)?xe=!1:(re=xe.match(v),xe=re===null?!1:re[1]?"Object("+re[1]+")"+re[2]:xe),re=xe),re&&j.push("'"+(typeof V[Z]=="string"?V[Z]:Z)+"':function(_z){"+xe+"=_z}")}$&&(me="function(){return "+me+" }"),Y.push("'"+Z+"':"+me)}G=G||{};var Y=[],j=[],$=G.valueAccessors,W=G.bindingParams,K=typeof U=="string"?_(U):U;return m.a.D(K,function(Z){k(Z.key||Z.unknown,Z.value)}),j.length&&k("_ko_property_writers","{"+j.join(",")+" }"),Y.join(",")},Id:function(U,G){for(var k=0;k<U.length;k++)if(U[k].key==G)return!0;return!1},eb:function(U,G,k,Y,j){U&&m.O(U)?!m.Za(U)||j&&U.v()===Y||U(Y):(U=G.get("_ko_property_writers"))&&U[k]&&U[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 E(k){return k.nodeType==8&&V.test(M?k.text:k.nodeValue)}function v(k,Y){for(var j=k,$=1,W=[];j=j.nextSibling;){if(E(j)&&(m.a.g.set(j,G,!0),$--,$===0))return W;W.push(j),_(j)&&$++}if(!Y)throw Error("Cannot find closing comment tag to match: "+k.nodeValue);return null}function I(k,Y){var j=v(k,Y);return j?0<j.length?j[j.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*$/,V=M?/^\x3c!--\s*\/ko\s*--\x3e$/:/^\s*\/ko\s*$/,U={ul:!0,ol:!0},G="__ko_matchedEndComment__";m.h={ea:{},childNodes:function(k){return _(k)?v(k):k.childNodes},Ea:function(k){if(_(k)){k=m.h.childNodes(k);for(var Y=0,j=k.length;Y<j;Y++)m.removeNode(k[Y])}else m.a.Tb(k)},va:function(k,Y){if(_(k)){m.h.Ea(k);for(var j=k.nextSibling,$=0,W=Y.length;$<W;$++)j.parentNode.insertBefore(Y[$],j)}else m.a.va(k,Y)},Vc:function(k,Y){var j;_(k)?(j=k.nextSibling,k=k.parentNode):j=k.firstChild,j?Y!==j&&k.insertBefore(Y,j):k.appendChild(Y)},Wb:function(k,Y,j){j?(j=j.nextSibling,_(k)&&(k=k.parentNode),j?Y!==j&&k.insertBefore(Y,j):k.appendChild(Y)):m.h.Vc(k,Y)},firstChild:function(k){if(_(k))return!k.nextSibling||E(k.nextSibling)?null:k.nextSibling;if(k.firstChild&&E(k.firstChild))throw Error("Found invalid end comment, as the first child of "+k);return k.firstChild},nextSibling:function(k){if(_(k)&&(k=I(k)),k.nextSibling&&E(k.nextSibling)){var Y=k.nextSibling;if(E(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(U[m.a.R(k)]){var Y=k.firstChild;if(Y)do if(Y.nodeType===1){var j;j=Y.firstChild;var $=null;if(j)do if($)$.push(j);else if(_(j)){var W=I(j,!0);W?j=W:$=[j]}else E(j)&&($=[j]);while(j=j.nextSibling);if(j=$)for($=Y.nextSibling,W=0;W<j.length;W++)$?k.insertBefore(j[W],$):k.appendChild(j[W])}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(_,E){var v=this.getBindingsString(_,E),v=v?this.parseBindingsString(v,E,_):null;return m.j.tc(v,_,E,!1)},getBindingAccessors:function(_,E){var v=this.getBindingsString(_,E),v=v?this.parseBindingsString(v,E,_,{valueAccessors:!0}):null;return m.j.tc(v,_,E,!0)},getBindingsString:function(_){switch(_.nodeType){case 1:return _.getAttribute("data-bind");case 8:return m.h.Vd(_);default:return null}},parseBindingsString:function(_,E,v,I){try{var M=this.nd,B=_+(I&&I.valueAccessors||""),V;if(!(V=M[B])){var U,G="with($context){with($data||{}){return{"+m.m.vb(_,I)+"}}}";U=new Function("$context","$element",G),V=M[B]=U}return V(E,v)}catch(k){throw k.message=`Unable to parse bindings.
  12749. Bindings value: `+_+`
  12750. Message: `+k.message,k}}}),m.ga.instance=new m.ga}(),m.b("bindingProvider",m.ga),function(){function _(re){var ye=(re=m.a.g.get(re,xe))&&re.N;ye&&(re.N=null,ye.Tc())}function E(re,ye,ge){this.node=re,this.yc=ye,this.kb=[],this.H=!1,ye.N||m.a.K.za(re,_),ge&&ge.N&&(ge.N.kb.push(re),this.Kb=ge)}function v(re){return function(){return re}}function I(re){return re()}function M(re){return m.a.Ga(m.u.G(re),function(ye,ge){return function(){return re()[ge]}})}function B(re,ye,ge){return typeof re=="function"?M(re.bind(null,ye,ge)):m.a.Ga(re,v)}function V(re,ye){return M(this.getBindings.bind(this,re,ye))}function U(re,ye){var ge=m.h.firstChild(ye);if(ge){var Ae,De=m.ga.instance,Re=De.preprocessNode;if(Re){for(;Ae=ge;)ge=m.h.nextSibling(Ae),Re.call(De,Ae);ge=m.h.firstChild(ye)}for(;Ae=ge;)ge=m.h.nextSibling(Ae),G(re,Ae)}m.i.ma(ye,m.i.H)}function G(re,ye){var ge=re,Ae=ye.nodeType===1;Ae&&m.h.Sc(ye),(Ae||m.ga.instance.nodeHasBindings(ye))&&(ge=Y(ye,null,re).bindingContextForDescendants),ge&&!Z[m.a.R(ye)]&&U(ge,ye)}function k(re){var ye=[],ge={},Ae=[];return m.a.P(re,function De(Re){if(!ge[Re]){var ze=m.getBindingHandler(Re);ze&&(ze.after&&(Ae.push(Re),m.a.D(ze.after,function(ut){if(re[ut]){if(m.a.A(Ae,ut)!==-1)throw Error("Cannot combine the following bindings, because they have a cyclic dependency: "+Ae.join(", "));De(ut)}}),Ae.length--),ye.push({key:Re,Mc:ze})),ge[Re]=!0}}),ye}function Y(re,ye,ge){var Ae=m.a.g.Ub(re,xe,{}),De=Ae.hd;if(!ye){if(De)throw Error("You cannot apply bindings multiple times to the same element.");Ae.hd=!0}De||(Ae.context=ge),Ae.Zb||(Ae.Zb={});var Re;if(ye&&typeof ye!="function")Re=ye;else{var ze=m.ga.instance,ut=ze.getBindingAccessors||V,Vt=m.$(function(){return(Re=ye?ye(ge,re):ut.call(ze,re,ge))&&(ge[$]&&ge[$](),ge[K]&&ge[K]()),Re},null,{l:re});Re&&Vt.ja()||(Vt=null)}var cn=ge,ft;if(Re){var _n=function(){return m.a.Ga(Vt?Vt():Re,I)},Mn=Vt?function(Ft){return function(){return I(Vt()[Ft])}}:function(Ft){return Re[Ft]};_n.get=function(Ft){return Re[Ft]&&I(Mn(Ft))},_n.has=function(Ft){return Ft in Re},m.i.H in Re&&m.i.subscribe(re,m.i.H,function(){var Ft=(0,Re[m.i.H])();if(Ft){var Ot=m.h.childNodes(re);Ot.length&&Ft(Ot,m.Ec(Ot[0]))}}),m.i.pa in Re&&(cn=m.i.Cb(re,ge),m.i.subscribe(re,m.i.pa,function(){var Ft=(0,Re[m.i.pa])();Ft&&m.h.firstChild(re)&&Ft(re)})),Ae=k(Re),m.a.D(Ae,function(Ft){var Ot=Ft.Mc.init,he=Ft.Mc.update,be=Ft.key;if(re.nodeType===8&&!m.h.ea[be])throw Error("The binding '"+be+"' cannot be used with virtual elements");try{typeof Ot=="function"&&m.u.G(function(){var Gt=Ot(re,Mn(be),_n,cn.$data,cn);if(Gt&&Gt.controlsDescendantBindings){if(ft!==e)throw Error("Multiple bindings ("+ft+" and "+be+") are trying to control descendant bindings of the same element. You cannot use these bindings together on the same element.");ft=be}}),typeof he=="function"&&m.$(function(){he(re,Mn(be),_n,cn.$data,cn)},null,{l:re})}catch(Gt){throw Gt.message='Unable to process binding "'+be+": "+Re[be]+`"
  12751. Message: `+Gt.message,Gt}})}return Ae=ft===e,{shouldBindDescendants:Ae,bindingContextForDescendants:Ae&&cn}}function j(re,ye){return re&&re instanceof m.fa?re:new m.fa(re,e,e,ye)}var $=m.a.Da("_subscribable"),W=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 me={};m.fa=function(re,ye,ge,Ae,De){function Re(){var Mn=cn?Vt():Vt,Ft=m.a.f(Mn);return ye?(m.a.extend(ze,ye),W in ye&&(ze[W]=ye[W])):(ze.$parents=[],ze.$root=Ft,ze.ko=m),ze[$]=ft,ut?Ft=ze.$data:(ze.$rawData=Mn,ze.$data=Ft),ge&&(ze[ge]=Ft),Ae&&Ae(ze,ye,Ft),ye&&ye[$]&&!m.S.o().Vb(ye[$])&&ye[$](),_n&&(ze[K]=_n),ze.$data}var ze=this,ut=re===me,Vt=ut?e:re,cn=typeof Vt=="function"&&!m.O(Vt),ft,_n=De&&De.dataDependency;De&&De.exportDependencies?Re():(ft=m.xb(Re),ft.v(),ft.ja()?ft.equalityComparer=null:ze[$]=e)},m.fa.prototype.createChildContext=function(re,ye,ge,Ae){if(!Ae&&ye&&typeof ye=="object"&&(Ae=ye,ye=Ae.as,ge=Ae.extend),ye&&Ae&&Ae.noChildContext){var De=typeof re=="function"&&!m.O(re);return new m.fa(me,this,null,function(Re){ge&&ge(Re),Re[ye]=De?re():re},Ae)}return new m.fa(re,this,ye,function(Re,ze){Re.$parentContext=ze,Re.$parent=ze.$data,Re.$parents=(ze.$parents||[]).slice(0),Re.$parents.unshift(Re.$parent),ge&&ge(Re)},Ae)},m.fa.prototype.extend=function(re,ye){return new m.fa(me,this,null,function(ge){m.a.extend(ge,typeof re=="function"?re(ge):re)},ye)};var xe=m.a.g.Z();E.prototype.Tc=function(){this.Kb&&this.Kb.N&&this.Kb.N.sd(this.node)},E.prototype.sd=function(re){m.a.Pa(this.kb,re),!this.kb.length&&this.H&&this.Cc()},E.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,ye,ge,Ae,De){var Re=m.a.g.Ub(re,xe,{});return Re.Fa||(Re.Fa=new m.T),De&&De.notifyImmediately&&Re.Zb[ye]&&m.u.G(ge,Ae,[re]),Re.Fa.subscribe(ge,Ae,ye)},ma:function(re,ye){var ge=m.a.g.get(re,xe);if(ge&&(ge.Zb[ye]=!0,ge.Fa&&ge.Fa.notifySubscribers(re,ye),ye==m.i.H)){if(ge.N)ge.N.Cc();else if(ge.N===e&&ge.Fa&&ge.Fa.Wa(m.i.pa))throw Error("descendantsComplete event not supported for bindings on this node")}},Cb:function(re,ye){var ge=m.a.g.Ub(re,xe,{});return ge.N||(ge.N=new E(re,ge,ye[W])),ye[W]==ge?ye:ye.extend(function(Ae){Ae[W]=ge})}},m.Td=function(re){return(re=m.a.g.get(re,xe))&&re.context},m.ib=function(re,ye,ge){return re.nodeType===1&&m.h.Sc(re),Y(re,ye,j(ge))},m.ld=function(re,ye,ge){return ge=j(ge),m.ib(re,B(ye,ge,re),ge)},m.Oa=function(re,ye){ye.nodeType!==1&&ye.nodeType!==8||U(j(re),ye)},m.vc=function(re,ye,ge){if(!o&&t.jQuery&&(o=t.jQuery),2>arguments.length){if(ye=n.body,!ye)throw Error("ko.applyBindings: could not find document.body; has the document been loaded?")}else if(!ye||ye.nodeType!==1&&ye.nodeType!==8)throw Error("ko.applyBindings: first parameter should be your view model; second parameter should be a DOM node");G(j(re,ge),ye)},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 E(V,U){var G=Object.prototype.hasOwnProperty.call(M,V)?M[V]:_,k;G?G.subscribe(U):(G=M[V]=new m.T,G.subscribe(U),v(V,function(Y,j){var $=!(!j||!j.synchronous);B[V]={definition:Y,Gd:$},delete M[V],k||$?G.notifySubscribers(Y):m.na.zb(function(){G.notifySubscribers(Y)})}),k=!0)}function v(V,U){I("getConfig",[V],function(G){G?I("loadComponent",[V,G],function(k){U(k,G)}):U(null,null)})}function I(V,U,G,k){k||(k=m.j.loaders.slice(0));var Y=k.shift();if(Y){var j=Y[V];if(j){var $=!1;if(j.apply(Y,U.concat(function(W){$?G(null):W!==null?G(W):I(V,U,G,k)}))!==_&&($=!0,!Y.suppressLoaderExceptions))throw Error("Component loaders must supply values by invoking the callback, not by returning values synchronously.")}else I(V,U,G,k)}else G(null)}var M={},B={};m.j={get:function(V,U){var G=Object.prototype.hasOwnProperty.call(B,V)?B[V]:_;G?G.Gd?m.u.G(function(){U(G.definition)}):m.na.zb(function(){U(G.definition)}):E(V,U)},Bc:function(V){delete B[V]},oc:I},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,j){function $(){--K===0&&j(W)}var W={},K=2,Z=Y.template;Y=Y.viewModel,Z?M(k,Z,function(me){m.j.oc("loadTemplate",[G,me],function(xe){W.template=xe,$()})}):$(),Y?M(k,Y,function(me){m.j.oc("loadViewModel",[G,me],function(xe){W[U]=xe,$()})}):$()}function E(G,k,Y){if(typeof k=="function")Y(function($){return new k($)});else if(typeof k[U]=="function")Y(k[U]);else if("instance"in k){var j=k.instance;Y(function(){return j})}else"viewModel"in k?E(G,k.viewModel,Y):G("Unknown viewModel value: "+k)}function v(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(I(G.content))return m.a.Ca(G.content.childNodes)}return m.a.Ca(G.childNodes)}function I(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(j){j&&typeof j=="object"&&j.Xd&&j.default&&(j=j.default),Y(j)}):G("Uses require, but no AMD loader is present"):Y(k)}function B(G){return function(k){throw Error("Component '"+G+"': "+k)}}var V={};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");V[G]=k},m.j.tb=function(G){return Object.prototype.hasOwnProperty.call(V,G)},m.j.unregister=function(G){delete V[G],m.j.Bc(G)},m.j.Fc={getConfig:function(G,k){k(m.j.tb(G)?V[G]:null)},loadComponent:function(G,k,Y){var j=B(G);M(j,k,function($){_(G,j,$,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(I(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(v(k));else if(typeof k=="string"){var j=n.getElementById(k);j?Y(v(j)):G("Cannot find element with ID "+k)}else G("Unknown element type: "+k);else G("Unknown template value: "+k)},loadViewModel:function(G,k,Y){E(B(G),k,Y)}};var U="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=V}(),function(){function _(v,I){var M=v.getAttribute("params");if(M){var M=E.parseBindingsString(M,I,v,{valueAccessors:!0,bindingParams:!0}),M=m.a.Ga(M,function(U){return m.o(U,null,{l:v})}),B=m.a.Ga(M,function(U){var G=U.v();return U.ja()?m.o({read:function(){return m.a.f(U())},write:m.Za(G)&&function(k){U()(k)},l:v}):G});return Object.prototype.hasOwnProperty.call(B,"$raw")||(B.$raw=M),B}return{$raw:{}}}m.j.getComponentNameForNode=function(v){var I=m.a.R(v);if(m.j.tb(I)&&(I.indexOf("-")!=-1||""+v=="[object HTMLUnknownElement]"||8>=m.a.W&&v.tagName===I))return I},m.j.tc=function(v,I,M,B){if(I.nodeType===1){var V=m.j.getComponentNameForNode(I);if(V){if(v=v||{},v.component)throw Error('Cannot use the "component" binding on a custom element matching a component');var U={name:V,params:_(I,M)};v.component=B?function(){return U}:U}}return v};var E=new m.ga;9>m.a.W&&(m.j.register=function(v){return function(I){return v.apply(this,arguments)}}(m.j.register),n.createDocumentFragment=function(v){return function(){var I=v(),M=m.j.dd,B;for(B in M);return I}}(n.createDocumentFragment))}(),function(){function _(I,M,B){if(M=M.template,!M)throw Error("Component '"+I+"' has no template");I=m.a.Ca(M),m.h.va(B,I)}function E(I,M,B){var V=I.createViewModel;return V?V.call(I,M,B):M}var v=0;m.c.component={init:function(I,M,B,V,U){function G(){var W=k&&k.dispose;typeof W=="function"&&W.call(k),j&&j.s(),Y=k=j=null}var k,Y,j,$=m.a.la(m.h.childNodes(I));return m.h.Ea(I),m.a.K.za(I,G),m.o(function(){var W=m.a.f(M()),K,Z;if(typeof W=="string"?K=W:(K=m.a.f(W.name),Z=m.a.f(W.params)),!K)throw Error("No component name specified");var me=m.i.Cb(I,U),xe=Y=++v;m.j.get(K,function(re){if(Y===xe){if(G(),!re)throw Error("Unknown component '"+K+"'");_(K,re,I);var ye=E(re,Z,{element:I,templateNodes:$});re=me.createChildContext(ye,{extend:function(ge){ge.$component=ye,ge.$componentTemplateNodes=$}}),ye&&ye.koDescendantsComplete&&(j=m.i.subscribe(I,m.i.pa,ye.koDescendantsComplete,ye)),k=ye,m.Oa(re,I)}})},null,{l:I}),{controlsDescendantBindings:!0}}},m.h.ea.component=!0}();var L={class:"className",for:"htmlFor"};m.c.attr={update:function(_,E){var v=m.a.f(E())||{};m.a.P(v,function(I,M){M=m.a.f(M);var B=I.indexOf(":"),B="lookupNamespaceURI"in _&&0<B&&_.lookupNamespaceURI(I.substr(0,B)),V=M===!1||M===null||M===e;V?B?_.removeAttributeNS(B,I):_.removeAttribute(I):M=M.toString(),8>=m.a.W&&I in L?(I=L[I],V?_.removeAttribute(I):_[I]=M):V||(B?_.setAttributeNS(B,I,M):_.setAttribute(I,M)),I==="name"&&m.a.Yc(_,V?"":M)})}},function(){m.c.checked={after:["value","attr"],init:function(_,E,v){function I(){var W=_.checked,K=B();if(!m.S.Ya()&&(W||!U&&!m.S.qa())){var Z=m.u.G(E);if(k){var me=Y?Z.v():Z,xe=$;$=K,xe!==K?W&&(m.a.Na(me,K,!0),m.a.Na(me,xe,!1)):m.a.Na(me,K,W),Y&&m.Za(Z)&&Z(me)}else V&&(K===e?K=W:W||(K=e)),m.m.eb(Z,v,"checked",K,!0)}}function M(){var W=m.a.f(E()),K=B();k?(_.checked=0<=m.a.A(W,K),$=K):_.checked=V&&K===e?!!W:B()===W}var B=m.xb(function(){if(v.has("checkedValue"))return m.a.f(v.get("checkedValue"));if(j)return v.has("value")?m.a.f(v.get("value")):_.value}),V=_.type=="checkbox",U=_.type=="radio";if(V||U){var G=E(),k=V&&m.a.f(G)instanceof Array,Y=!(k&&G.push&&G.splice),j=U||k,$=k?B():e;U&&!_.name&&m.c.uniqueName.init(_,function(){return!0}),m.o(I,null,{l:_}),m.a.B(_,"click",I),m.o(M,null,{l:_}),G=e}}},m.m.wa.checked=!0,m.c.checkedValue={update:function(_,E){_.value=m.a.f(E())}}}(),m.c.class={update:function(_,E){var v=m.a.Db(m.a.f(E()));m.a.Eb(_,_.__ko__cssValue,!1),_.__ko__cssValue=v,m.a.Eb(_,v,!0)}},m.c.css={update:function(_,E){var v=m.a.f(E());v!==null&&typeof v=="object"?m.a.P(v,function(I,M){M=m.a.f(M),m.a.Eb(_,I,M)}):m.c.class.update(_,E)}},m.c.enable={update:function(_,E){var v=m.a.f(E());v&&_.disabled?_.removeAttribute("disabled"):v||_.disabled||(_.disabled=!0)}},m.c.disable={update:function(_,E){m.c.enable.update(_,function(){return!m.a.f(E())})}},m.c.event={init:function(_,E,v,I,M){var B=E()||{};m.a.P(B,function(V){typeof V=="string"&&m.a.B(_,V,function(U){var G,k=E()[V];if(k){try{var Y=m.a.la(arguments);I=M.$data,Y.unshift(I),G=k.apply(I,Y)}finally{G!==!0&&(U.preventDefault?U.preventDefault():U.returnValue=!1)}v.get(V+"Bubble")===!1&&(U.cancelBubble=!0,U.stopPropagation&&U.stopPropagation())}})})}},m.c.foreach={Rc:function(_){return function(){var E=_(),v=m.a.bc(E);return!v||typeof v.length=="number"?{foreach:E,templateEngine:m.ba.Ma}:(m.a.f(E),{foreach:v.data,as:v.as,noChildContext:v.noChildContext,includeDestroyed:v.includeDestroyed,afterAdd:v.afterAdd,beforeRemove:v.beforeRemove,afterRender:v.afterRender,beforeMove:v.beforeMove,afterMove:v.afterMove,templateEngine:m.ba.Ma})}},init:function(_,E){return m.c.template.init(_,m.c.foreach.Rc(E))},update:function(_,E,v,I,M){return m.c.template.update(_,m.c.foreach.Rc(E),v,I,M)}},m.m.Ra.foreach=!1,m.h.ea.foreach=!0,m.c.hasfocus={init:function(_,E,v){function I(V){_.__ko_hasfocusUpdating=!0;var U=_.ownerDocument;if("activeElement"in U){var G;try{G=U.activeElement}catch{G=U.body}V=G===_}U=E(),m.m.eb(U,v,"hasfocus",V,!0),_.__ko_hasfocusLastValue=V,_.__ko_hasfocusUpdating=!1}var M=I.bind(null,!0),B=I.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(_,E){var v=!!m.a.f(E());_.__ko_hasfocusUpdating||_.__ko_hasfocusLastValue===v||(v?_.focus():_.blur(),!v&&_.__ko_hasfocusLastValue&&_.ownerDocument.body.focus(),m.u.G(m.a.Fb,null,[_,v?"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(_,E){m.a.fc(_,E())}},function(){function _(E,v,I){m.c[E]={init:function(M,B,V,U,G){var k,Y,j={},$,W,K;if(v){U=V.get("as");var Z=V.get("noChildContext");K=!(U&&Z),j={as:U,noChildContext:Z,exportDependencies:K}}return W=($=V.get("completeOn")=="render")||V.has(m.i.pa),m.o(function(){var me=m.a.f(B()),xe=!I!=!me,re=!Y,ye;(K||xe!==k)&&(W&&(G=m.i.Cb(M,G)),xe&&((!v||K)&&(j.dataDependency=m.S.o()),ye=v?G.createChildContext(typeof me=="function"?me:B,j):m.S.qa()?G.extend(null,j):G),re&&m.S.qa()&&(Y=m.a.Ca(m.h.childNodes(M),!0)),xe?(re||m.h.va(M,m.a.Ca(Y)),m.Oa(ye,M)):(m.h.Ea(M),$||m.i.ma(M,m.i.H)),k=xe)},null,{l:M}),{controlsDescendantBindings:!0}}},m.m.Ra[E]=!1,m.h.ea[E]=!0}_("if"),_("ifnot",!1,!0),_("with",!0)}(),m.c.let={init:function(_,E,v,I,M){return E=M.extend(E),m.Oa(E,_),{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(_,E,v){function I(){return m.a.jb(_.options,function(Z){return Z.selected})}function M(Z,me,xe){var re=typeof me;return re=="function"?me(Z):re=="string"?Z[me]:xe}function B(Z,me){if(W&&k)m.i.ma(_,m.i.H);else if($.length){var xe=0<=m.a.A($,m.w.M(me[0]));m.a.Zc(me[0],xe),W&&!xe&&m.u.G(m.a.Fb,null,[_,"change"])}}var V=_.multiple,U=_.length!=0&&V?_.scrollTop:null,G=m.a.f(E()),k=v.get("valueAllowUnset")&&v.has("value"),Y=v.get("optionsIncludeDestroyed");E={};var j,$=[];k||(V?$=m.a.Mb(I(),m.w.M):0<=_.selectedIndex&&$.push(m.w.M(_.options[_.selectedIndex]))),G&&(typeof G.length>"u"&&(G=[G]),j=m.a.jb(G,function(Z){return Y||Z===e||Z===null||!m.a.f(Z._destroy)}),v.has("optionsCaption")&&(G=m.a.f(v.get("optionsCaption")),G!==null&&G!==e&&j.unshift(N)));var W=!1;if(E.beforeRemove=function(Z){_.removeChild(Z)},G=B,v.has("optionsAfterRender")&&typeof v.get("optionsAfterRender")=="function"&&(G=function(Z,me){B(0,me),m.u.G(v.get("optionsAfterRender"),null,[me[0],Z!==N?Z:e])}),m.a.ec(_,j,function(Z,me,xe){return xe.length&&($=!k&&xe[0].selected?[m.w.M(xe[0])]:[],W=!0),me=_.ownerDocument.createElement("option"),Z===N?(m.a.Bb(me,v.get("optionsCaption")),m.w.cb(me,e)):(xe=M(Z,v.get("optionsValue"),Z),m.w.cb(me,m.a.f(xe)),Z=M(Z,v.get("optionsText"),xe),m.a.Bb(me,Z)),[me]},E,G),!k){var K;V?K=$.length&&I().length<$.length:K=$.length&&0<=_.selectedIndex?m.w.M(_.options[_.selectedIndex])!==$[0]:$.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(_),U&&20<Math.abs(U-_.scrollTop)&&(_.scrollTop=U)}},m.c.options.$b=m.a.g.Z(),m.c.selectedOptions={init:function(_,E,v){function I(){var V=E(),U=[];m.a.D(_.getElementsByTagName("option"),function(G){G.selected&&U.push(m.w.M(G))}),m.m.eb(V,v,"selectedOptions",U)}function M(){var V=m.a.f(E()),U=_.scrollTop;V&&typeof V.length=="number"&&m.a.D(_.getElementsByTagName("option"),function(G){var k=0<=m.a.A(V,m.w.M(G));G.selected!=k&&m.a.Zc(G,k)}),_.scrollTop=U}if(m.a.R(_)!="select")throw Error("selectedOptions binding applies only to SELECT elements");var B;m.i.subscribe(_,m.i.H,function(){B?I():(m.a.B(_,"change",I),B=m.o(M,null,{l:_}))},null,{notifyImmediately:!0})},update:function(){}},m.m.wa.selectedOptions=!0,m.c.style={update:function(_,E){var v=m.a.f(E()||{});m.a.P(v,function(I,M){if(M=m.a.f(M),(M===null||M===e||M===!1)&&(M=""),o)o(_).css(I,M);else if(/^--/.test(I))_.style.setProperty(I,M);else{I=I.replace(/-(\w)/g,function(V,U){return U.toUpperCase()});var B=_.style[I];_.style[I]=M,M===B||_.style[I]!=B||isNaN(M)||(_.style[I]=M+"px")}})}},m.c.submit={init:function(_,E,v,I,M){if(typeof E()!="function")throw Error("The value for a submit binding must be a function");m.a.B(_,"submit",function(B){var V,U=E();try{V=U.call(M.$data,_)}finally{V!==!0&&(B.preventDefault?B.preventDefault():B.returnValue=!1)}})}},m.c.text={init:function(){return{controlsDescendantBindings:!0}},update:function(_,E){m.a.Bb(_,E())}},m.h.ea.text=!0,function(){if(t&&t.navigator){var _=function(j){if(j)return parseFloat(j[1])},E=t.navigator.userAgent,v,I,M,B,V;(v=t.opera&&t.opera.version&&parseInt(t.opera.version()))||(V=_(E.match(/Edge\/([^ ]+)$/)))||_(E.match(/Chrome\/([^ ]+)/))||(I=_(E.match(/Version\/([^ ]+) Safari/)))||(M=_(E.match(/Firefox\/([^ ]+)/)))||(B=m.a.W||_(E.match(/MSIE ([^ ]+)/)))||(B=_(E.match(/rv:([^ )]+)/)))}if(8<=B&&10>B)var U=m.a.g.Z(),G=m.a.g.Z(),k=function(j){var $=this.activeElement;($=$&&m.a.g.get($,G))&&$(j)},Y=function(j,$){var W=j.ownerDocument;m.a.g.get(W,U)||(m.a.g.set(W,U,!0),m.a.B(W,"selectionchange",k)),m.a.g.set(j,G,$)};m.c.textInput={init:function(j,$,W){function K(Re,ze){m.a.B(j,Re,ze)}function Z(){var Re=m.a.f($());(Re===null||Re===e)&&(Re=""),ge!==e&&Re===ge?m.a.setTimeout(Z,4):j.value!==Re&&(De=!0,j.value=Re,De=!1,re=j.value)}function me(){ye||(ge=j.value,ye=m.a.setTimeout(xe,4))}function xe(){clearTimeout(ye),ge=ye=e;var Re=j.value;re!==Re&&(re=Re,m.m.eb($(),W,"textInput",Re))}var re=j.value,ye,ge,Ae=m.a.W==9?me:xe,De=!1;B&&K("keypress",xe),11>B&&K("propertychange",function(Re){De||Re.propertyName!=="value"||Ae(Re)}),B==8&&(K("keyup",xe),K("keydown",xe)),Y&&(Y(j,Ae),K("dragend",me)),(!B||9<=B)&&K("input",Ae),5>I&&m.a.R(j)==="textarea"?(K("keydown",me),K("paste",me),K("cut",me)):11>v?K("keydown",me):4>M?(K("DOMAutoComplete",xe),K("dragdrop",xe),K("drop",xe)):V&&j.type==="number"&&K("keydown",me),K("change",xe),K("blur",xe),m.o(Z,null,{l:j})}},m.m.wa.textInput=!0,m.c.textinput={preprocess:function(j,$,W){W("textInput",j)}}}(),m.c.uniqueName={init:function(_,E){if(E()){var v="ko_unique_"+ ++m.c.uniqueName.rd;m.a.Yc(_,v)}}},m.c.uniqueName.rd=0,m.c.using={init:function(_,E,v,I,M){var B;return v.has("as")&&(B={as:v.get("as"),noChildContext:v.get("noChildContext")}),E=M.createChildContext(E,B),m.Oa(E,_),{controlsDescendantBindings:!0}}},m.h.ea.using=!0,m.c.value={init:function(_,E,v){var I=m.a.R(_),M=I=="input";if(!M||_.type!="checkbox"&&_.type!="radio"){var B=[],V=v.get("valueUpdate"),U=!1,G=null;V&&(typeof V=="string"?B=[V]:B=m.a.wc(V),m.a.Pa(B,"change"));var k=function(){G=null,U=!1;var $=E(),W=m.w.M(_);m.m.eb($,v,"value",W)};!m.a.W||!M||_.type!="text"||_.autocomplete=="off"||_.form&&_.form.autocomplete=="off"||m.a.A(B,"propertychange")!=-1||(m.a.B(_,"propertychange",function(){U=!0}),m.a.B(_,"focus",function(){U=!1}),m.a.B(_,"blur",function(){U&&k()})),m.a.D(B,function($){var W=k;m.a.Ud($,"after")&&(W=function(){G=m.w.M(_),m.a.setTimeout(k,0)},$=$.substring(5)),m.a.B(_,$,W)});var Y;if(Y=M&&_.type=="file"?function(){var $=m.a.f(E());$===null||$===e||$===""?_.value="":m.u.G(k)}:function(){var $=m.a.f(E()),W=m.w.M(_);G!==null&&$===G?m.a.setTimeout(Y,0):($!==W||W===e)&&(I==="select"?(W=v.get("valueAllowUnset"),m.w.cb(_,$,W),W||$===m.w.M(_)||m.u.G(k)):m.w.cb(_,$))},I==="select"){var j;m.i.subscribe(_,m.i.H,function(){j?v.get("valueAllowUnset")?Y():k():(m.a.B(_,"change",k),j=m.o(Y,null,{l:_}))},null,{notifyImmediately:!0})}else m.a.B(_,"change",k),m.o(Y,null,{l:_})}else m.ib(_,{checkedValue:E})},update:function(){}},m.m.wa.value=!0,m.c.visible={update:function(_,E){var v=m.a.f(E()),I=_.style.display!="none";v&&!I?_.style.display="":!v&&I&&(_.style.display="none")}},m.c.hidden={update:function(_,E){m.c.visible.update(_,function(){return!m.a.f(E())})}},function(_){m.c[_]={init:function(E,v,I,M,B){return m.c.event.init.call(this,E,function(){var V={};return V[_]=v(),V},I,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(_,E){if(typeof _=="string"){E=E||n;var v=E.getElementById(_);if(!v)throw Error("Cannot find template with ID "+_);return new m.C.F(v)}if(_.nodeType==1||_.nodeType==8)return new m.C.ia(_);throw Error("Unknown template type: "+_)},m.ca.prototype.renderTemplate=function(_,E,v,I){return _=this.makeTemplateSource(_,I),this.renderTemplateSource(_,E,v,I)},m.ca.prototype.isTemplateRewritten=function(_,E){return this.allowTemplateRewriting===!1?!0:this.makeTemplateSource(_,E).data("isRewritten")},m.ca.prototype.rewriteTemplate=function(_,E,v){_=this.makeTemplateSource(_,v),E=E(_.text()),_.text(E),_.data("isRewritten",!0)},m.b("templateEngine",m.ca),m.kc=function(){function _(I,M,B,V){I=m.m.ac(I);for(var U=m.m.Ra,G=0;G<I.length;G++){var k=I[G].key;if(Object.prototype.hasOwnProperty.call(U,k)){var Y=U[k];if(typeof Y=="function"){if(k=Y(I[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(I,{valueAccessors:!0})+" } })()},'"+B.toLowerCase()+"')",V.createJavaScriptEvaluatorBlock(B)+M}var E=/(<([a-z]+\d*)(?:\s+(?!data-bind\s*=\s*)[a-z0-9\-]+(?:=(?:\"[^\"]*\"|\'[^\']*\'|[^>]*))?)*\s+)data-bind\s*=\s*(["'])([\s\S]*?)\3/gi,v=/\x3c!--\s*ko\b\s*([\s\S]*?)\s*--\x3e/g;return{xd:function(I,M,B){M.isTemplateRewritten(I,B)||M.rewriteTemplate(I,function(V){return m.kc.Ld(V,M)},B)},Ld:function(I,M){return I.replace(E,function(B,V,U,G,k){return _(k,V,U,M)}).replace(v,function(B,V){return _(V,"<!-- ko -->","#comment",M)})},md:function(I,M){return m.aa.Xb(function(B,V){var U=B.nextSibling;U&&U.nodeName.toLowerCase()===M&&m.ib(U,I,V)})}}}(),m.b("__tr_ambtns",m.kc.md),function(){m.C={},m.C.F=function(v){if(this.F=v){var I=m.a.R(v);this.ab=I==="script"?1:I==="textarea"?2:I=="template"&&v.content&&v.content.nodeType===11?3:4}},m.C.F.prototype.text=function(){var v=this.ab===1?"text":this.ab===2?"value":"innerHTML";if(arguments.length==0)return this.F[v];var I=arguments[0];v==="innerHTML"?m.a.fc(this.F,I):this.F[v]=I};var _=m.a.g.Z()+"_";m.C.F.prototype.data=function(v){if(arguments.length===1)return m.a.g.get(this.F,_+v);m.a.g.set(this.F,_+v,arguments[1])};var E=m.a.g.Z();m.C.F.prototype.nodes=function(){var v=this.F;if(arguments.length==0){var I=m.a.g.get(v,E)||{},M=I.lb||(this.ab===3?v.content:this.ab===4?v:e);if(!M||I.jd){var B=this.text();B&&B!==I.bb&&(M=m.a.Md(B,v.ownerDocument),m.a.g.set(v,E,{lb:M,bb:B,jd:!0}))}return M}I=arguments[0],this.ab!==e&&this.text(""),m.a.g.set(v,E,{lb:I})},m.C.ia=function(v){this.F=v},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 v=m.a.g.get(this.F,E)||{};return v.bb===e&&v.lb&&(v.bb=v.lb.innerHTML),v.bb}m.a.g.set(this.F,E,{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 j;for(k=m.h.nextSibling(k);G&&(j=G)!==k;)G=m.h.nextSibling(j),Y(j,G)}function E(G,k){if(G.length){var Y=G[0],j=G[G.length-1],$=Y.parentNode,W=m.ga.instance,K=W.preprocessNode;if(K){if(_(Y,j,function(Z,me){var xe=Z.previousSibling,re=K.call(W,Z);re&&(Z===Y&&(Y=re[0]||me),Z===j&&(j=re[re.length-1]||xe))}),G.length=0,!Y)return;Y===j?G.push(Y):(G.push(Y,j),m.a.Ua(G,$))}_(Y,j,function(Z){Z.nodeType!==1&&Z.nodeType!==8||m.vc(k,Z)}),_(Y,j,function(Z){Z.nodeType!==1&&Z.nodeType!==8||m.aa.cd(Z,[k])}),m.a.Ua(G,$)}}function v(G){return G.nodeType?G:0<G.length?G[0]:null}function I(G,k,Y,j,$){$=$||{};var W=(G&&v(G)||Y||{}).ownerDocument,K=$.templateEngine||B;if(m.kc.xd(Y,K,W),Y=K.renderTemplate(Y,j,$,W),typeof Y.length!="number"||0<Y.length&&typeof Y[0].nodeType!="number")throw Error("Template engine must return an array of DOM nodes");switch(W=!1,k){case"replaceChildren":m.h.va(G,Y),W=!0;break;case"replaceNode":m.a.Xc(G,Y),W=!0;break;case"ignoreTargetNode":break;default:throw Error("Unknown renderMode: "+k)}return W&&(E(Y,j),$.afterRender&&m.u.G($.afterRender,null,[Y,j[$.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,j,$){if(Y=Y||{},(Y.templateEngine||B)==e)throw Error("Set a template engine before calling renderTemplate");if($=$||"replaceChildren",j){var W=v(j);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=I(j,$,K,Z,Y);$=="replaceNode"&&(j=Z,W=v(j))},null,{Sa:function(){return!W||!m.a.Sb(W)},l:W&&$=="replaceNode"?W.parentNode:W})}return m.aa.Xb(function(K){m.dc(G,k,Y,K,"replaceNode")})},m.Qd=function(G,k,Y,j,$){function W(ge,Ae){m.u.G(m.a.ec,null,[j,ge,Z,Y,K,Ae]),m.i.ma(j,m.i.H)}function K(ge,Ae){E(Ae,me),Y.afterRender&&Y.afterRender(Ae,ge),me=null}function Z(ge,Ae){me=$.createChildContext(ge,{as:xe,noChildContext:Y.noChildContext,extend:function(Re){Re.$index=Ae,xe&&(Re[xe+"Index"]=Ae)}});var De=M(G,ge,me);return I(j,"ignoreTargetNode",De,me,Y)}var me,xe=Y.as,re=Y.includeDestroyed===!1||m.options.foreachHidesDestroyed&&!Y.includeDestroyed;if(re||Y.beforeRemove||!m.Pc(k))return m.$(function(){var ge=m.a.f(k)||[];typeof ge.length>"u"&&(ge=[ge]),re&&(ge=m.a.jb(ge,function(Ae){return Ae===e||Ae===null||!m.a.f(Ae._destroy)})),W(ge)},null,{l:j});W(k.v());var ye=k.subscribe(function(ge){W(k(),ge)},null,"arrayChange");return ye.l(j),ye};var V=m.a.g.Z(),U=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 j=Y[0]&&Y[0].parentNode;j&&m.a.g.get(j,U)||(j=m.a.Yb(Y),m.a.g.set(j,U,!0)),new m.C.ia(G).nodes(j)}else if(Y=m.h.childNodes(G),0<Y.length)j=m.a.Yb(Y),new m.C.ia(G).nodes(j);else throw Error("Anonymous template defined, but no template content was provided");return{controlsDescendantBindings:!0}},update:function(G,k,Y,j,$){var W=k();k=m.a.f(W),Y=!0,j=null,typeof k=="string"?k={}:(W="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&&!W&&(Y=!1)),"foreach"in k?j=m.Qd(W,Y&&k.foreach||[],k,G,$):Y?(Y=$,"data"in k&&(Y=$.createChildContext(k.data,{as:k.as,noChildContext:k.noChildContext,exportDependencies:!0})),j=m.dc(W,Y,k,G)):m.h.Ea(G),$=j,(k=m.a.g.get(G,V))&&typeof k.s=="function"&&k.s(),m.a.g.set(G,V,!$||$.ja&&!$.ja()?e:$)}},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(_,E,v){if(_.length&&E.length){var I,M,B,V,U;for(I=M=0;(!v||I<v)&&(V=_[M]);++M){for(B=0;U=E[B];++B)if(V.value===U.value){V.moved=U.index,U.moved=V.index,E.splice(B,1),I=B=0;break}I+=B}}},m.a.Pb=function(){function _(E,v,I,M,B){var V=Math.min,U=Math.max,G=[],k,Y=E.length,j,$=v.length,W=$-Y||1,K=Y+$+1,Z,me,xe;for(k=0;k<=Y;k++)for(me=Z,G.push(Z=[]),xe=V($,k+W),j=U(0,k-1);j<=xe;j++)Z[j]=j?k?E[k-1]===v[j-1]?me[j-1]:V(me[j]||K,Z[j-1]||K)+1:j+1:k+1;for(V=[],U=[],W=[],k=Y,j=$;k||j;)$=G[k][j]-1,j&&$===G[k][j-1]?U.push(V[V.length]={status:I,value:v[--j],index:j}):k&&$===G[k-1][j]?W.push(V[V.length]={status:M,value:E[--k],index:k}):(--j,--k,B.sparse||V.push({status:"retained",value:v[j]}));return m.a.Kc(W,U,!B.dontLimitMoves&&10*Y),V.reverse()}return function(E,v,I){return I=typeof I=="boolean"?{dontLimitMoves:I}:I||{},E=E||[],v=v||[],E.length<v.length?_(E,v,"added","deleted",I):_(v,E,"deleted","added",I)}}(),m.b("utils.compareArrays",m.a.Pb),function(){function _(I,M,B,V,U){var G=[],k=m.$(function(){var Y=M(B,U,m.a.Ua(G,I))||[];0<G.length&&(m.a.Xc(G,Y),V&&m.u.G(V,null,[B,Y,U])),G.length=0,m.a.Nb(G,Y)},null,{l:I,Sa:function(){return!m.a.kd(G)}});return{Y:G,$:k.ja()?k:e}}var E=m.a.g.Z(),v=m.a.g.Z();m.a.ec=function(I,M,B,V,U,G){function k(Ft){De={Aa:Ft,pb:m.ta(me++)},K.push(De),W||Ae.push(De)}function Y(Ft){De=$[Ft],me!==De.pb.v()&&ge.push(De),De.pb(me++),m.a.Ua(De.Y,I),K.push(De)}function j(Ft,Ot){if(Ft)for(var he=0,be=Ot.length;he<be;he++)m.a.D(Ot[he].Y,function(Gt){Ft(Gt,he,Ot[he].Aa)})}M=M||[],typeof M.length>"u"&&(M=[M]),V=V||{};var $=m.a.g.get(I,E),W=!$,K=[],Z=0,me=0,xe=[],re=[],ye=[],ge=[],Ae=[],De,Re=0;if(W)m.a.D(M,k);else{if(!G||$&&$._countWaitingForRemove){var ze=m.a.Mb($,function(Ft){return Ft.Aa});G=m.a.Pb(ze,M,{dontLimitMoves:V.dontLimitMoves,sparse:!0})}for(var ze=0,ut,Vt,cn;ut=G[ze];ze++)switch(Vt=ut.moved,cn=ut.index,ut.status){case"deleted":for(;Z<cn;)Y(Z++);Vt===e&&(De=$[Z],De.$&&(De.$.s(),De.$=e),m.a.Ua(De.Y,I).length&&(V.beforeRemove&&(K.push(De),Re++,De.Aa===v?De=null:ye.push(De)),De&&xe.push.apply(xe,De.Y))),Z++;break;case"added":for(;me<cn;)Y(Z++);Vt!==e?(re.push(K.length),Y(Vt)):k(ut.value)}for(;me<M.length;)Y(Z++);K._countWaitingForRemove=Re}m.a.g.set(I,E,K),j(V.beforeMove,ge),m.a.D(xe,V.beforeRemove?m.oa:m.removeNode);var ft,_n,Mn;try{Mn=I.ownerDocument.activeElement}catch{}if(re.length)for(;(ze=re.shift())!=e;){for(De=K[ze],ft=e;ze;)if((_n=K[--ze].Y)&&_n.length){ft=_n[_n.length-1];break}for(M=0;Z=De.Y[M];ft=Z,M++)m.h.Wb(I,Z,ft)}for(ze=0;De=K[ze];ze++){for(De.Y||m.a.extend(De,_(I,B,De.Aa,U,De.pb)),M=0;Z=De.Y[M];ft=Z,M++)m.h.Wb(I,Z,ft);!De.Ed&&U&&(U(De.Aa,De.Y,De.pb),De.Ed=!0,ft=De.Y[De.Y.length-1])}for(Mn&&I.ownerDocument.activeElement!=Mn&&Mn.focus(),j(V.beforeRemove,ye),ze=0;ze<ye.length;++ze)ye[ze].Aa=v;j(V.afterMove,ge),j(V.afterAdd,Ae)}}(),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(_,E,v,I){return(E=!(9>m.a.W)&&_.nodes?_.nodes():null)?m.a.la(E.cloneNode(!0).childNodes):(_=_.text(),m.a.ua(_,I))},m.ba.Ma=new m.ba,m.gc(m.ba.Ma),m.b("nativeTemplateEngine",m.ba),function(){m.$a=function(){var E=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(v,I,M,B){if(B=B||n,M=M||{},2>E)throw Error("Your version of jQuery.tmpl is too old. Please upgrade to jQuery.tmpl 1.0.0pre or later.");var V=v.data("precompiled");return V||(V=v.text()||"",V=o.template(null,"{{ko_with $item.koBindingContext}}"+V+"{{/ko_with}}"),v.data("precompiled",V)),v=[I.$data],I=o.extend({koBindingContext:I},M.templateOptions),I=o.tmpl(V,v,I),I.appendTo(B.createElement("div")),o.fragments={},I},this.createJavaScriptEvaluatorBlock=function(v){return"{{ko_code ((function() { return "+v+" })()) }}"},this.addTemplate=function(v,I){n.write("<script type='text/html' id='"+v+"'>"+I+"</script>")},0<E&&(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 cxt=ko;typeof window<"u"?(ko=window.ko,typeof gB<"u"?window.ko=gB:delete window.ko):(ko=global.ko,typeof gB<"u"?global.ko=gB:delete global.ko);var GT=cxt;/**
  12752. * @license
  12753. * Knockout ES5 plugin - https://github.com/SteveSanderson/knockout-es5
  12754. * Copyright (c) Steve Sanderson
  12755. * MIT license
  12756. */var PK="__knockoutObservables",OK="__knockoutSubscribable";function Cbe(e,t){if(!e)throw new Error("When calling ko.track, you must pass an object as the first parameter.");var n=this,i=Ebe(e,!0);return t=t||Object.getOwnPropertyNames(e),t.forEach(function(o){if(!(o===PK||o===OK)&&!(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&&uxt(n,a)}}),e}function Ebe(e,t){var n=e[PK];return!n&&t&&(n={},Object.defineProperty(e,PK,{value:n})),n}function lxt(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),Cbe.call(i,e,[t]),e}function uxt(e,t){var n=null;e.computed(function(){n&&(n.dispose(),n=null);var i=t();i instanceof Array&&(n=fxt(e,t,i))})}function fxt(e,t,n){var i=dxt(e,n);return i.subscribe(t)}function dxt(e,t){var n=t[OK];if(!n){n=new e.subscribable,Object.defineProperty(t,OK,{value:n});var i={};hxt(t,n,i),mxt(e,t,n,i)}return n}function hxt(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 mxt(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 Sbe(e,t){if(!e)return null;var n=Ebe(e,!1);return n&&n[t]||null}function pxt(e,t){var n=Sbe(e,t);n&&n.valueHasMutated()}function _xt(e){e.track=Cbe,e.getObservable=Sbe,e.valueHasMutated=pxt,e.defineProperty=lxt}var yB={attachToKo:_xt};var wbe="http://www.w3.org/2000/svg",vbe="cesium-svgPath-svg",gxt={register:function(e){e.bindingHandlers.cesiumSvgPath={init:function(t,n){let i=document.createElementNS(wbe,"svg:svg");i.setAttribute("class",vbe);let o=document.createElementNS(wbe,"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",`${vbe} ${e.unwrap(r.css)}`)},disposeWhenNodeIsRemoved:t}),{controlsDescendantBindings:!0}}},e.virtualElements.allowedBindings.cesiumSvgPath=!0}},xB=gxt;yB.attachToKo(GT);xB.register(GT);var Te=GT;function bB(e){u(e)||(e=new Xd),this._clock=e,this._eventHelper=new Or,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(bB.prototype,{clock:{get:function(){return this._clock}}});bB.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};bB.prototype.isDestroyed=function(){return!1};bB.prototype.destroy=function(){this._eventHelper.removeAll(),le(this)};var TB=bB;function yxt(){this.canExecute=void 0,this.beforeExecute=void 0,this.afterExecute=void 0,de.throwInstantiationError()}var RK=yxt;var AB={};AB.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 u(n)&&(s+=`, enable: ${n}`),r.setAttribute("data-bind",s),o.appendChild(r),o.appendChild(document.createTextNode(e)),i.appendChild(o),i};AB.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};AB.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 l=document.createElement("div");return l.className="cesium-cesiumInspector-slider",l.appendChild(document.createTextNode(e)),l.appendChild(s),l.appendChild(c),l};AB.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 u(n)&&(o+=`, css: {"cesium-cesiumInspector-pickButtonHighlight" : ${n}}`),i.setAttribute("data-bind",o),i};var Oa=AB;function Dbe(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(Dbe.prototype,{command:{get:function(){return this._command}}});var d0=Dbe;function xxt(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 An=xxt;function bxt(e,t,n,i,o){return n.call(i,e[t]),Te.getObservable(e,t).subscribe(n,i,o)}var la=bxt;var WT="http://www.w3.org/2000/svg",Obe="http://www.w3.org/1999/xlink",W8,CB=H.fromCssColorString("rgba(247,250,255,0.384)"),j8=H.fromCssColorString("rgba(143,191,255,0.216)"),MK=H.fromCssColorString("rgba(153,197,255,0.098)"),q8=H.fromCssColorString("rgba(255,255,255,0.086)"),Txt=H.fromCssColorString("rgba(255,255,255,0.267)"),Axt=H.fromCssColorString("rgba(255,255,255,0)"),Ibe=H.fromCssColorString("rgba(66,67,68,0.3)"),Pbe=H.fromCssColorString("rgba(0,0,0,0.5)");function h0(e){return H.fromCssColorString(window.getComputedStyle(e).getPropertyValue("color"))}var EB={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 vh(e){let t=document.createElementNS(WT,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(vh(e.children[o]))}else n.indexOf("xlink:")===0?t.setAttributeNS(Obe,n.substring(6),e[n]):n==="textContent"?t.textContent=e[n]:t.setAttribute(n,e[n]);return t}function LK(e,t,n){let i=document.createElementNS(WT,"text");i.setAttribute("x",e),i.setAttribute("y",t),i.setAttribute("class","cesium-animation-svgText");let o=document.createElementNS(WT,"tspan");return o.textContent=n,i.appendChild(o),i}function Cxt(e,t,n){e.setAttribute("transform",`translate(100,100) rotate(${n})`),t.setAttribute("transform",`rotate(${n})`)}var Y8=new H;function Xr(e,t){let n=t.alpha,i=1-n;return Y8.red=e.red*i+t.red*n,Y8.green=e.green*i+t.green*n,Y8.blue=e.blue*i+t.blue*n,Y8.toCssColorString()}function NK(e,t,n){let i=EB[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 vh(o)}function Ext(e,t,n){let i=EB[n],o=EB.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 vh(r)}function Sxt(e,t){let n=e._viewModel,i=n.shuttleRingDragging;if(!(i&&W8!==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,l;if(t.type==="touchstart"||t.type==="touchmove"?(c=t.touches[0].clientX,l=t.touches[0].clientY):(c=t.clientX,l=t.clientY),!i&&(c>a.right||c<a.left||l<a.top||l>a.bottom))return;let f=e._shuttleRingPointer.getBoundingClientRect(),d=c-o-a.left,p=l-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&&l>f.top&&l<f.bottom?(W8=e,n.shuttleRingDragging=!0,n.shuttleRingAngle=g):g<m?n.slower():g>m&&n.faster(),t.preventDefault()}else e===W8&&(W8=void 0),n.shuttleRingDragging=!1}function Q_(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=[la(t,"toggled",this.setToggled,this),la(t,"tooltip",this.setTooltip,this),la(t.command,"canExecute",this.setEnabled,this)]}Q_.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();le(this)};Q_.prototype.isDestroyed=function(){return!1};Q_.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")}};Q_.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")))};Q_.prototype.setTooltip=function(e){this.svgElement.getElementsByTagName("title")[0].textContent=e};function ZS(e,t){e=wn(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(WT,"svg:svg");this._svgNode=r,r.setAttributeNS("http://www.w3.org/2000/xmlns/","xmlns:xlink",Obe);let s=document.createElementNS(WT,"g");this._topG=s,this._realtimeSVG=new Q_(Ext(3,4,"animation_pathClock"),t.playRealtimeViewModel),this._playReverseSVG=new Q_(NK(44,99,"animation_pathPlayReverse"),t.playReverseViewModel),this._playForwardSVG=new Q_(NK(124,99,"animation_pathPlay"),t.playForwardViewModel),this._pauseSVG=new Q_(NK(84,99,"animation_pathPause"),t.pauseViewModel);let a=document.createElementNS(WT,"g");a.appendChild(this._realtimeSVG.svgElement),a.appendChild(this._playReverseSVG.svgElement),a.appendChild(this._playForwardSVG.svgElement),a.appendChild(this._pauseSVG.svgElement);let c=vh({tagName:"circle",class:"cesium-animation-shuttleRingBack",cx:100,cy:100,r:99});this._shuttleRingBackPanel=c;let l=EB.animation_pathSwooshFX,f=EB.animation_pathPointer,d=vh({tagName:"g",class:"cesium-animation-shuttleRingSwoosh",children:[{tagName:l.tagName,transform:"translate(100,97) scale(-1,1)",id:"animation_pathSwooshFX",d:l.d},{tagName:l.tagName,transform:"translate(100,97)",id:"animation_pathSwooshFX",d:l.d},{tagName:"line",x1:100,y1:8,x2:100,y2:22}]});this._shuttleRingSwooshG=d,this._shuttleRingPointer=vh({class:"cesium-animation-shuttleRingPointer",id:"animation_pathPointer",tagName:f.tagName,d:f.d});let p=vh({tagName:"g",transform:"translate(100,100)"});this._knobOuter=vh({tagName:"circle",class:"cesium-animation-knobOuter",cx:0,cy:0,r:71});let g=61,m=vh({tagName:"circle",class:"cesium-animation-knobInner",cx:0,cy:0,r:g});this._knobDate=LK(0,-24,""),this._knobTime=LK(0,-7,""),this._knobStatus=LK(0,-41,"");let x=vh({tagName:"circle",class:"cesium-animation-blank",cx:0,cy:0,r:g}),b=document.createElementNS(WT,"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 A(O){Sxt(T,O)}this._mouseCallback=A,c.addEventListener("mousedown",A,!0),c.addEventListener("touchstart",A,!0),d.addEventListener("mousedown",A,!0),d.addEventListener("touchstart",A,!0),n.addEventListener("mousemove",A,!0),n.addEventListener("touchmove",A,!0),n.addEventListener("mouseup",A,!0),n.addEventListener("touchend",A,!0),n.addEventListener("touchcancel",A,!0),this._shuttleRingPointer.addEventListener("mousedown",A,!0),this._shuttleRingPointer.addEventListener("touchstart",A,!0),this._knobOuter.addEventListener("mousedown",A,!0),this._knobOuter.addEventListener("touchstart",A,!0);let C=this._knobTime.childNodes[0],S=this._knobDate.childNodes[0],w=this._knobStatus.childNodes[0],D;this._subscriptions=[la(t.pauseViewModel,"toggled",function(O){D!==O&&(D=O,D?T._shuttleRingPointer.setAttribute("class","cesium-animation-shuttleRingPausePointer"):T._shuttleRingPointer.setAttribute("class","cesium-animation-shuttleRingPointer"))}),la(t,"shuttleRingAngle",function(O){Cxt(T._shuttleRingPointer,T._knobOuter,O)}),la(t,"dateLabel",function(O){S.textContent!==O&&(S.textContent=O)}),la(t,"timeLabel",function(O){C.textContent!==O&&(C.textContent=O)}),la(t,"multiplierLabel",function(O){w.textContent!==O&&(w.textContent=O)})],this.applyThemeChanges(),this.resize()}Object.defineProperties(ZS.prototype,{container:{get:function(){return this._container}},viewModel:{get:function(){return this._viewModel}}});ZS.prototype.isDestroyed=function(){return!1};ZS.prototype.destroy=function(){u(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 le(this)};ZS.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};ZS.prototype.applyThemeChanges=function(){let e=this._container.ownerDocument;if(!e.body.contains(this._container)){if(u(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=h0(this._themeNormal),n=h0(this._themeHover),i=h0(this._themeSelect),o=h0(this._themeDisabled),r=h0(this._themeKnob),s=h0(this._themePointer),a=h0(this._themeSwoosh),c=h0(this._themeSwooshHover),l=vh({tagName:"defs",children:[{id:"animation_buttonNormal",tagName:"linearGradient",x1:"50%",y1:"0%",x2:"50%",y2:"100%",children:[{tagName:"stop",offset:"0%","stop-color":Xr(t,CB)},{tagName:"stop",offset:"12%","stop-color":Xr(t,j8)},{tagName:"stop",offset:"46%","stop-color":Xr(t,MK)},{tagName:"stop",offset:"81%","stop-color":Xr(t,q8)}]},{id:"animation_buttonHovered",tagName:"linearGradient",x1:"50%",y1:"0%",x2:"50%",y2:"100%",children:[{tagName:"stop",offset:"0%","stop-color":Xr(n,CB)},{tagName:"stop",offset:"12%","stop-color":Xr(n,j8)},{tagName:"stop",offset:"46%","stop-color":Xr(n,MK)},{tagName:"stop",offset:"81%","stop-color":Xr(n,q8)}]},{id:"animation_buttonToggled",tagName:"linearGradient",x1:"50%",y1:"0%",x2:"50%",y2:"100%",children:[{tagName:"stop",offset:"0%","stop-color":Xr(i,CB)},{tagName:"stop",offset:"12%","stop-color":Xr(i,j8)},{tagName:"stop",offset:"46%","stop-color":Xr(i,MK)},{tagName:"stop",offset:"81%","stop-color":Xr(i,q8)}]},{id:"animation_buttonDisabled",tagName:"linearGradient",x1:"50%",y1:"0%",x2:"50%",y2:"100%",children:[{tagName:"stop",offset:"0%","stop-color":Xr(o,Txt)},{tagName:"stop",offset:"75%","stop-color":Xr(o,Axt)}]},{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":Xr(s,Pbe)},{tagName:"stop",offset:"100%","stop-color":Xr(s,Pbe)}]},{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":Xr(r,CB)},{tagName:"stop",offset:"60%","stop-color":Xr(r,Ibe)},{tagName:"stop",offset:"85%","stop-color":Xr(r,j8)}]},{id:"animation_knobInner",tagName:"linearGradient",x1:"20%",y1:"0%",x2:"90%",y2:"100%",children:[{tagName:"stop",offset:"5%","stop-color":Xr(r,Ibe)},{tagName:"stop",offset:"60%","stop-color":Xr(r,CB)},{tagName:"stop",offset:"85%","stop-color":Xr(r,q8)}]}]});u(this._defsElement)?this._svgNode.replaceChild(l,this._defsElement):this._svgNode.appendChild(l),this._defsElement=l};var SB=ZS;var wxt=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],m0=15,$S=105;function Rbe(e,t){return e-t}function FK(e,t){let n=Do(t,e,Rbe);return n<0?~n:n}function vxt(e,t){if(Math.abs(e)<=m0)return e/m0;let n=m0,i=$S,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 Dxt(e,t,n){if(n.clockStep===ho.SYSTEM_CLOCK)return m0;if(Math.abs(e)<=1)return e*m0;let i=t[t.length-1];e>i?e=i:e<-i&&(e=-i);let o=m0,r=$S,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 ed(e){let t=this;this._clockViewModel=e,this._allShuttleRingTicks=[],this._dateFormatter=ed.defaultDateFormatter,this._timeFormatter=ed.defaultTimeFormatter,this.shuttleRingDragging=!1,this.snapToTicks=!1,Te.track(this,["_allShuttleRingTicks","_dateFormatter","_timeFormatter","shuttleRingDragging","snapToTicks"]),this._sortedFilteredPositiveTicks=[],this.setShuttleRingTicks(ed.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===ho.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 Dxt(e.multiplier,t._allShuttleRingTicks,e)},set:function(s){s=Math.max(Math.min(s,$S),-$S);let a=t._allShuttleRingTicks,c=t._clockViewModel;if(c.clockStep=ho.SYSTEM_CLOCK_MULTIPLIER,Math.abs(s)===$S){c.multiplier=s>0?a[a.length-1]:a[0];return}let l=vxt(s,a);if(t.snapToTicks)l=a[FK(l,a)];else if(l!==0){let f=Math.abs(l);if(f>100){let d=f.toFixed(0).length-2,p=Math.pow(10,d);l=Math.round(l/p)*p|0}else f>m0?l=Math.round(l):f>1?l=+l.toFixed(1):f>0&&(l=+l.toFixed(2))}c.multiplier=l}}),this._canAnimate=void 0,Te.defineProperty(this,"_canAnimate",function(){let s=t._clockViewModel,a=s.clockRange;if(t.shuttleRingDragging||a===Fr.UNBOUNDED)return!0;let c=s.multiplier,l=s.currentTime,f=s.startTime,d=!1;if(a===Fr.LOOP_STOP)d=J.greaterThan(l,f)||l.equals(f)&&c>0;else{let p=s.stopTime;d=J.greaterThan(l,f)&&J.lessThan(l,p)||l.equals(f)&&c>0||l.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===Fr.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=An(function(){let s=t._clockViewModel;s.shouldAnimate?s.shouldAnimate=!1:t._canAnimate&&(s.shouldAnimate=!0)});this._pauseViewModel=new d0(n,{toggled:Te.computed(function(){return!t._isAnimating}),tooltip:"Pause"});let i=An(function(){let s=t._clockViewModel,a=s.multiplier;a>0&&(s.multiplier=-a),s.shouldAnimate=!0});this._playReverseViewModel=new d0(i,{toggled:Te.computed(function(){return t._isAnimating&&e.multiplier<0}),tooltip:"Play Reverse"});let o=An(function(){let s=t._clockViewModel,a=s.multiplier;a<0&&(s.multiplier=-a),s.shouldAnimate=!0});this._playForwardViewModel=new d0(o,{toggled:Te.computed(function(){return t._isAnimating&&e.multiplier>0&&e.clockStep!==ho.SYSTEM_CLOCK}),tooltip:"Play Forward"});let r=An(function(){t._clockViewModel.clockStep=ho.SYSTEM_CLOCK},Te.getObservable(this,"_isSystemTimeAvailable"));this._playRealtimeViewModel=new d0(r,{toggled:Te.computed(function(){return e.clockStep===ho.SYSTEM_CLOCK}),tooltip:Te.computed(function(){return t._isSystemTimeAvailable?"Today (real-time)":"Current time not in range"})}),this._slower=An(function(){let s=t._clockViewModel,a=t._allShuttleRingTicks,c=s.multiplier,l=FK(c,a)-1;l>=0&&(s.multiplier=a[l])}),this._faster=An(function(){let s=t._clockViewModel,a=t._allShuttleRingTicks,c=s.multiplier,l=FK(c,a)+1;l<a.length&&(s.multiplier=a[l])})}ed.defaultDateFormatter=function(e,t){let n=J.toGregorianDate(e);return`${wxt[n.month-1]} ${n.day} ${n.year}`};ed.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];ed.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`};ed.prototype.getShuttleRingTicks=function(){return this._sortedFilteredPositiveTicks.slice(0)};ed.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(Rbe);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(ed.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}}});ed._maxShuttleRingAngle=$S;ed._realtimeShuttleRingAngle=m0;var wB=ed;function Mbe(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;u(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;u(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=u(d)?d.name:void 0,m=u(p)?p.name:void 0;return u(g)&&u(m)?`${g}
  12757. ${m}`:u(g)?g:m}),this.buttonImageUrl=void 0,Te.defineProperty(this,"buttonImageUrl",function(){let d=this.selectedImagery;if(u(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 A=0;A<T;A++){let C=x.get(A);if(C===g[p]){x.remove(C),b=!0;break}}}if(u(d)){let T=d.creationCommand();if(Array.isArray(T)){let A=T.length;for(this._currentImageryLayers=[],p=A-1;p>=0;p--){let C=oa.fromProviderAsync(T[p]);x.add(C,0),this._currentImageryLayers.push(C)}}else{this._currentImageryLayers=[];let A=oa.fromProviderAsync(T);if(A.name=d.name,b)x.add(A,0);else{let C=x.get(0);u(C)&&x.remove(C),x.add(A,0)}this._currentImageryLayers.push(A)}}c(d),this.dropDownVisible=!1}}),this.selectedTerrain=void 0;let l=Te.observable();Te.defineProperty(this,"selectedTerrain",{get:function(){return l()},set:function(d){if(l()===d){this.dropDownVisible=!1;return}let p;if(u(d)&&(p=d.creationCommand()),u(p)&&!u(p.then))this._globe.depthTestAgainstTerrain=!(p instanceof Dm),this._globe.terrainProvider=p;else if(u(p)){let g=!1,m=this._globe.terrainProviderChanged.addEventListener(()=>{g=!0,m()}),b=new XF(p).readyEvent.addEventListener(T=>{g||(this._globe.depthTestAgainstTerrain=!(T instanceof Dm),this._globe.terrainProvider=T,b())})}l(d),this.dropDownVisible=!1}});let f=this;this._toggleDropDown=An(function(){f.dropDownVisible=!f.dropDownVisible}),this.selectedImagery=y(e.selectedImageryProviderViewModel,n[0]),this.selectedTerrain=y(e.selectedTerrainProviderViewModel,i[0])}Object.defineProperties(Mbe.prototype,{toggleDropDown:{get:function(){return this._toggleDropDown}},globe:{get:function(){return this._globe}}});var vB=Mbe;function X8(e,t){e=wn(e);let n=new vB(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 l=document.createElement("div");l.className="cesium-baseLayerPicker-categoryTitle",l.setAttribute("data-bind","text: name"),c.appendChild(l);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 A=document.createElement("div");A.className="cesium-baseLayerPicker-choices",A.setAttribute("data-bind","foreach: providers"),b.appendChild(A);let C=document.createElement("div");C.className="cesium-baseLayerPicker-item",C.setAttribute("data-bind",'css: { "cesium-baseLayerPicker-selectedItem" : $data === $parents[1].selectedTerrain },attr: { title: tooltip },visible: creationCommand.canExecute,click: function($data) { $parents[1].selectedTerrain = $data; }'),A.appendChild(C);let S=document.createElement("img");S.className="cesium-baseLayerPicker-itemIcon",S.setAttribute("data-bind","attr: { src: iconUrl }"),S.setAttribute("draggable","false"),C.appendChild(S);let w=document.createElement("div");w.className="cesium-baseLayerPicker-itemLabel",w.setAttribute("data-bind","text: name"),C.appendChild(w),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)},Bt.supportsPointerEvents()?document.addEventListener("pointerdown",this._closeDropDown,!0):(document.addEventListener("mousedown",this._closeDropDown,!0),document.addEventListener("touchstart",this._closeDropDown,!0))}Object.defineProperties(X8.prototype,{container:{get:function(){return this._container}},viewModel:{get:function(){return this._viewModel}}});X8.prototype.isDestroyed=function(){return!1};X8.prototype.destroy=function(){return Bt.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),le(this)};var DB=X8;function Lbe(e){let t=e.creationFunction;u(t.canExecute)||(t=An(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(Lbe.prototype,{creationCommand:{get:function(){return this._creationCommand}},category:{get:function(){return this._category}}});var Kr=Lbe;function Ixt(){let e=[],t=devicePixelRatio>=2;return e.push(new Kr({name:"Bing Maps Aerial",iconUrl:Zt("Widgets/Images/ImageryProviders/bingAerial.png"),tooltip:"Bing Maps aerial imagery, provided by Cesium ion",category:"Cesium ion",creationFunction:function(){return F_({style:N_.AERIAL})}})),e.push(new Kr({name:"Bing Maps Aerial with Labels",iconUrl:Zt("Widgets/Images/ImageryProviders/bingAerialLabels.png"),tooltip:"Bing Maps aerial imagery with labels, provided by Cesium ion",category:"Cesium ion",creationFunction:function(){return F_({style:N_.AERIAL_WITH_LABELS})}})),e.push(new Kr({name:"Bing Maps Roads",iconUrl:Zt("Widgets/Images/ImageryProviders/bingRoads.png"),tooltip:"Bing Maps standard road maps, provided by Cesium ion",category:"Cesium ion",creationFunction:function(){return F_({style:N_.ROAD})}})),e.push(new Kr({name:"ArcGIS World Imagery",iconUrl:Zt("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
  12758. https://www.arcgis.com/home/item.html?id=10df2279f9684e4a9f6a7f08febac2a9`,category:"Other",creationFunction:function(){return M_.fromBasemapType(mh.SATELLITE,{enablePickFeatures:!1})}})),e.push(new Kr({name:"ArcGIS World Hillshade",iconUrl:Zt("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
  12759. https://www.arcgis.com/home/item.html?id=1b243539f4514b6ba35e7d995890db1d`,category:"Other",creationFunction:function(){return M_.fromBasemapType(mh.HILLSHADE,{enablePickFeatures:!1})}})),e.push(new Kr({name:"Esri World Ocean",iconUrl:Zt("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
  12760. https://www.arcgis.com/home/item.html?id=1e126e7520f9466c9ca28b8f28b5e500`,category:"Other",creationFunction:function(){return M_.fromBasemapType(mh.OCEANS,{enablePickFeatures:!1})}})),e.push(new Kr({name:"Open\xADStreet\xADMap",iconUrl:Zt("Widgets/Images/ImageryProviders/openStreetMap.png"),tooltip:`OpenStreetMap (OSM) is a collaborative project to create a free editable map of the world.
  12761. http://www.openstreetmap.org`,category:"Other",creationFunction:function(){return new $_({url:"https://tile.openstreetmap.org/"})}})),e.push(new Kr({name:"Stadia x Stamen Watercolor",iconUrl:Zt("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.
  12762. https://docs.stadiamaps.com/map-styles/stamen-watercolor/`,category:"Other",creationFunction:function(){return new $_({url:"https://tiles.stadiamaps.com/tiles/stamen_watercolor/",fileExtension:"jpg",credit:`&copy; <a href="https://stamen.com/" target="_blank">Stamen Design</a>
  12763. &copy; <a href="https://www.stadiamaps.com/" target="_blank">Stadia Maps</a>
  12764. &copy; <a href="https://openmaptiles.org/" target="_blank">OpenMapTiles</a>
  12765. &copy; <a href="https://www.openstreetmap.org/about/" target="_blank">OpenStreetMap contributors</a>`})}})),e.push(new Kr({name:"Stadia x Stamen Toner",iconUrl:Zt("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.
  12766. https://docs.stadiamaps.com/map-styles/stamen-toner/`,category:"Other",creationFunction:function(){return new $_({url:"https://tiles.stadiamaps.com/tiles/stamen_toner/",retinaTiles:t,credit:`&copy; <a href="https://stamen.com/" target="_blank">Stamen Design</a>
  12767. &copy; <a href="https://www.stadiamaps.com/" target="_blank">Stadia Maps</a>
  12768. &copy; <a href="https://openmaptiles.org/" target="_blank">OpenMapTiles</a>
  12769. &copy; <a href="https://www.openstreetmap.org/about/" target="_blank">OpenStreetMap contributors</a>`})}})),e.push(new Kr({name:"Stadia Alidade Smooth",iconUrl:Zt("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.
  12770. https://docs.stadiamaps.com/map-styles/alidade-smooth/`,category:"Other",creationFunction:function(){return new $_({url:"https://tiles.stadiamaps.com/tiles/alidade_smooth/",retinaTiles:t,credit:`&copy; <a href="https://www.stadiamaps.com/" target="_blank">Stadia Maps</a>
  12771. &copy; <a href="https://openmaptiles.org/" target="_blank">OpenMapTiles</a>
  12772. &copy; <a href="https://www.openstreetmap.org/about/" target="_blank">OpenStreetMap contributors</a>`})}})),e.push(new Kr({name:"Stadia Alidade Smooth Dark",iconUrl:Zt("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.
  12773. https://docs.stadiamaps.com/map-styles/alidade-smooth-dark/`,category:"Other",creationFunction:function(){return new $_({url:"https://tiles.stadiamaps.com/tiles/alidade_smooth_dark/",retinaTiles:t,credit:`&copy; <a href="https://www.stadiamaps.com/" target="_blank">Stadia Maps</a>
  12774. &copy; <a href="https://openmaptiles.org/" target="_blank">OpenMapTiles</a>
  12775. &copy; <a href="https://www.openstreetmap.org/about/" target="_blank">OpenStreetMap contributors</a>`})}})),e.push(new Kr({name:"Sentinel-2",iconUrl:Zt("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 L_.fromAssetId(3954)}})),e.push(new Kr({name:"Blue Marble",iconUrl:Zt("Widgets/Images/ImageryProviders/blueMarble.png"),tooltip:"Blue Marble Next Generation July, 2004 imagery from NASA.",category:"Cesium ion",creationFunction:function(){return L_.fromAssetId(3845)}})),e.push(new Kr({name:"Earth at night",iconUrl:Zt("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 L_.fromAssetId(3812)}})),e.push(new Kr({name:"Natural Earth\xA0II",iconUrl:Zt("Widgets/Images/ImageryProviders/naturalEarthII.png"),tooltip:`Natural Earth II, darkened for contrast.
  12776. http://www.naturalearthdata.com/`,category:"Cesium ion",creationFunction:function(){return Gy.fromUrl(Zt("Assets/Textures/NaturalEarthII"))}})),e}var IB=Ixt;function Pxt(){let e=[];return e.push(new Kr({name:"WGS84 Ellipsoid",iconUrl:Zt("Widgets/Images/TerrainProviders/Ellipsoid.png"),tooltip:"WGS84 standard ellipsoid, also known as EPSG:4326",category:"Cesium ion",creationFunction:function(){return new Dm}})),e.push(new Kr({name:"Cesium World Terrain",iconUrl:Zt("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 vT({requestWaterMask:!0,requestVertexNormals:!0})}})),e}var PB=Pxt;function Oxt(e){return function(t){let n=e._scene.pick(t.position);u(n)&&n.primitive instanceof Zs&&(e.tileset=n.primitive),e.pickActive=!1}}function Fbe(e,t){t?e._eventHandler.setInputAction(function(n){let i=e._scene.pick(n.endPosition);u(i)&&i.primitive instanceof Zs&&(e.tileset=i.primitive)},xn.MOUSE_MOVE):(e._eventHandler.removeInputAction(xn.MOUSE_MOVE),e.picking=e.picking)}var Rxt={maximumFractionDigits:3};function OB(e){let t=e/1048576;return t<1?t.toLocaleString(void 0,Rxt):Math.round(t).toLocaleString()}function RB(e,t){if(!u(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>${OB(n.geometryByteLength)}</li><li><strong>Texture Memory (MB): </strong>${OB(n.texturesByteLength)}</li><li><strong>Batch Table Memory (MB): </strong>${OB(n.batchTableByteLength)}</li>`,i+="</ul>"),i}function Bbe(){let e=Hi.statistics;return`
  12777. <ul class="cesium-cesiumInspector-statistics">
  12778. <li><strong>Geometry Memory (MB): </strong>${OB(e.geometryByteLength)}</li>
  12779. <li><strong>Texture Memory (MB): </strong>${OB(e.texturesByteLength)}</li>
  12780. </ul>
  12781. `}var Mxt=[{text:"Highlight",value:xl.HIGHLIGHT},{text:"Replace",value:xl.REPLACE},{text:"Mix",value:xl.MIX}],Nbe=new H(1,1,0,.4),Lxt=new H,K8=new H;function ua(e,t){let n=this,i=e.canvas;this._eventHandler=new Nu(i),this._scene=e,this._performanceContainer=t,this._canvas=i,this._performanceDisplay=new V_({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 j in Y)Y.hasOwnProperty(j)&&k.push(j);return k});let o=Te.observable();Te.defineProperty(this,"dynamicScreenSpaceError",{get:function(){return o()},set:function(k){o(k),u(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),u(n._tileset)&&(n._tileset.colorBlendMode=k,n._scene.requestRender())}}),this.colorBlendMode=xl.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 j=e.pick(Y.endPosition);if(j instanceof ws?(n.feature=j,n.tile=j.content.tile):u(j)&&u(j.content)?(n.feature=void 0,n.tile=j.content.tile):(n.feature=void 0,n.tile=void 0),!!u(n._tileset)){if(s&&u(j)&&u(j.content)){let $;e.pickPositionSupported&&($=e.pickPosition(Y.endPosition),u($)&&(n._tileset.debugPickPosition=$)),n._tileset.debugPickedTile=j.content.tile}else n._tileset.debugPickedTile=void 0;n._scene.requestRender()}},xn.MOUSE_MOVE):(n.feature=void 0,n.tile=void 0,n._eventHandler.removeInputAction(xn.MOUSE_MOVE))}}),this.picking=!0;let c=Te.observable();Te.defineProperty(this,"colorize",{get:function(){return c()},set:function(k){c(k),u(n._tileset)&&(n._tileset.debugColorizeTiles=k,n._scene.requestRender())}}),this.colorize=!1;let l=Te.observable();Te.defineProperty(this,"wireframe",{get:function(){return l()},set:function(k){l(k),u(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),u(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),u(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),u(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),u(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),u(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),u(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),u(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),u(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),u(n._tileset)&&(n._tileset.debugShowUrl=k,n._scene.requestRender())}}),this.showUrl=!1;let A=Te.observable();Te.defineProperty(this,"maximumScreenSpaceError",{get:function(){return A()},set:function(k){k=Number(k),isNaN(k)||(A(k),u(n._tileset)&&(n._tileset.maximumScreenSpaceError=k))}}),this.maximumScreenSpaceError=16;let C=Te.observable();Te.defineProperty(this,"dynamicScreenSpaceErrorDensity",{get:function(){return C()},set:function(k){k=Number(k),isNaN(k)||(C(k),u(n._tileset)&&(n._tileset.dynamicScreenSpaceErrorDensity=k))}}),this.dynamicScreenSpaceErrorDensity=.00278,this.dynamicScreenSpaceErrorDensitySliderValue=void 0,Te.defineProperty(this,"dynamicScreenSpaceErrorDensitySliderValue",{get:function(){return Math.pow(C(),1/6)},set:function(k){C(Math.pow(k,6))}});let S=Te.observable();Te.defineProperty(this,"dynamicScreenSpaceErrorFactor",{get:function(){return S()},set:function(k){k=Number(k),isNaN(k)||(S(k),u(n._tileset)&&(n._tileset.dynamicScreenSpaceErrorFactor=k))}}),this.dynamicScreenSpaceErrorFactor=4;let w=Oxt(this),D=Te.observable();Te.defineProperty(this,"pickActive",{get:function(){return D()},set:function(k){D(k),k?n._eventHandler.setInputAction(w,xn.LEFT_CLICK):n._eventHandler.removeInputAction(xn.LEFT_CLICK)}});let O=Te.observable();Te.defineProperty(this,"pointCloudShading",{get:function(){return O()},set:function(k){O(k),u(n._tileset)&&(n._tileset.pointCloudShading.attenuation=k)}}),this.pointCloudShading=!1;let R=Te.observable();Te.defineProperty(this,"geometricErrorScale",{get:function(){return R()},set:function(k){k=Number(k),isNaN(k)||(R(k),u(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),u(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),u(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),u(n._tileset)&&(n._tileset.pointCloudShading.eyeDomeLighting=k)}}),this.eyeDomeLighting=!1;let E=Te.observable();Te.defineProperty(this,"eyeDomeLightingStrength",{get:function(){return E()},set:function(k){k=Number(k),isNaN(k)||(E(k),u(n._tileset)&&(n._tileset.pointCloudShading.eyeDomeLightingStrength=k))}}),this.eyeDomeLightingStrength=1;let v=Te.observable();Te.defineProperty(this,"eyeDomeLightingRadius",{get:function(){return v()},set:function(k){k=Number(k),isNaN(k)||(v(k),u(n._tileset)&&(n._tileset.pointCloudShading.eyeDomeLightingRadius=k))}}),this.eyeDomeLightingRadius=1,this.pickActive=!1;let I=Te.observable();Te.defineProperty(this,"skipLevelOfDetail",{get:function(){return I()},set:function(k){I(k),u(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),u(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),u(n._tileset)&&(n._tileset.baseScreenSpaceError=k))}}),this.baseScreenSpaceError=1024;let V=Te.observable();Te.defineProperty(this,"skipLevels",{get:function(){return V()},set:function(k){k=Number(k),isNaN(k)||(V(k),u(n._tileset)&&(n._tileset.skipLevels=k))}}),this.skipLevels=1;let U=Te.observable();Te.defineProperty(this,"immediatelyLoadDesiredLevelOfDetail",{get:function(){return U()},set:function(k){U(k),u(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),u(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()}),u(this._tileset)||Fbe(this,!0)}Object.defineProperties(ua.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 Mxt}},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,u(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=RB(e,!1),this._pickStatisticsText=RB(e,!0),this._resourceCacheStatisticsText=Bbe(),Fbe(this,!1)}},feature:{get:function(){return this._feature},set:function(e){if(this._feature===e)return;let t=this._feature;u(t)&&!t.content.isDestroyed()&&(!this.colorize&&u(this._style)?t.color=u(this._style.color)?this._style.color.evaluateColor(t,Lxt):H.WHITE:t.color=K8,this._scene.requestRender()),u(e)&&(H.clone(e.color,K8),e.color=Nbe,this._scene.requestRender()),this._feature=e}},tile:{get:function(){return this._tile},set:function(e){if(this._tile===e)return;let t=this._tile;u(t)&&!t.isDestroyed()&&!BK(t.content)&&(t.color=K8,this._scene.requestRender()),u(e)&&!BK(e.content)&&(H.clone(e.color,K8),e.color=Nbe,this._scene.requestRender()),this._tile=e}}});function BK(e){if(!u(e))return!1;if(e.featuresLength>0)return!0;let t=e.innerContents;if(u(t)){let n=t.length;for(let i=0;i<n;++i)if(!BK(t[i]))return!1;return!0}return!1}ua.prototype.togglePickTileset=function(){this.pickActive=!this.pickActive};ua.prototype.toggleInspector=function(){this.inspectorVisible=!this.inspectorVisible};ua.prototype.toggleTileset=function(){this.tilesetVisible=!this.tilesetVisible};ua.prototype.toggleDisplay=function(){this.displayVisible=!this.displayVisible};ua.prototype.toggleUpdate=function(){this.updateVisible=!this.updateVisible};ua.prototype.toggleLogging=function(){this.loggingVisible=!this.loggingVisible};ua.prototype.toggleStyle=function(){this.styleVisible=!this.styleVisible};ua.prototype.toggleTileDebugLabels=function(){this.tileDebugLabelsVisible=!this.tileDebugLabelsVisible};ua.prototype.toggleOptimization=function(){this.optimizationVisible=!this.optimizationVisible};ua.prototype.trimTilesCache=function(){u(this._tileset)&&this._tileset.trimLoadedTiles()};ua.prototype.compileStyle=function(){let e=this._tileset;if(!(!u(e)||this.styleString===JSON.stringify(e.style))){this._editorError="";try{this.styleString.length===0&&(this.styleString="{}"),this._style=new DT(JSON.parse(this.styleString)),this._shouldStyle=!0,this._scene.requestRender()}catch(t){this._editorError=t.toString()}this.feature=this._feature,this.tile=this._tile}};ua.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(`
  12782. `),c=a.length,l;if(t.shiftKey)for(l=0;l<c;++l)a[l][0]===" "&&(a[l][1]===" "?(a[l]=a[l].substr(2),r-=2):(a[l]=a[l].substr(1),r-=1));else for(l=0;l<c;++l)a[l]=` ${a[l]}`,r+=2;let f=a.join(`
  12783. `);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};ua.prototype._update=function(){let e=this._tileset;if(this.performance&&this._performanceDisplay.update(),u(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=RB(e,!1),this._pickStatisticsText=RB(e,!0),this._resourceCacheStatisticsText=Bbe())};ua.prototype.isDestroyed=function(){return!1};ua.prototype.destroy=function(){this._eventHandler.destroy(),this._removePostRenderEvent();let e=this;return this._definedProperties.forEach(function(t){Te.getObservable(e,t).dispose()}),le(this)};ua.getStatistics=RB;var MB=ua;function Z8(e,t){e=wn(e);let n=document.createElement("div"),i=document.createElement("div");i.setAttribute("data-bind","visible: performance");let o=new MB(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=Oa.createSection,c=Oa.createCheckbox,l=Oa.createRangeInput,f=Oa.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"),A=document.createElement("div");A.className="field-group";let C=document.createElement("label");C.className="field-label",C.appendChild(document.createTextNode("Properties: "));let S=document.createElement("div");S.setAttribute("data-bind","text: properties"),A.appendChild(C),A.appendChild(S),d.appendChild(A),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 w=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.",w.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(l("Geometric Error Scale","geometricErrorScale",0,2,.01)),O.appendChild(l("Maximum Attenuation","maximumAttenuation",0,32,1)),O.appendChild(l("Base Resolution","baseResolution",0,1,.01)),O.appendChild(c("Eye Dome Lighting (EDL)","eyeDomeLighting")),p.appendChild(O);let R=document.createElement("div");R.setAttribute("data-bind","visible: eyeDomeLighting"),R.appendChild(l("EDL Strength","eyeDomeLightingStrength",0,2,.1)),R.appendChild(l("EDL Radius","eyeDomeLightingRadius",0,4,.1)),O.appendChild(R),g.appendChild(c("Freeze Frame","freezeFrame")),g.appendChild(c("Dynamic Screen Space Error","dynamicScreenSpaceError"));let L=document.createElement("div");L.appendChild(l("Maximum Screen Space Error","maximumScreenSpaceError",0,128,1)),g.appendChild(L);let N=document.createElement("div");N.setAttribute("data-bind","visible: dynamicScreenSpaceError"),N.appendChild(l("Screen Space Error Density","dynamicScreenSpaceErrorDensitySliderValue",0,1,.005,"dynamicScreenSpaceErrorDensity")),N.appendChild(l("Screen Space Error Factor","dynamicScreenSpaceErrorFactor",1,10,.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 E=document.createElement("div");E.className="cesium-3dTilesInspector-statistics",E.setAttribute("data-bind","html: pickStatisticsText, visible: showPickStatistics"),m.appendChild(E),m.appendChild(c("Resource Cache Statistics","showResourceCacheStatistics"));let v=document.createElement("div");v.className="cesium-3dTilesInspector-statistics",v.setAttribute("data-bind","html: resourceCacheStatisticsText, visible: showResourceCacheStatistics"),m.appendChild(v);let I=document.createElement("div");b.appendChild(I),I.appendChild(document.createTextNode("Color Blend Mode: "));let M=document.createElement("select");M.setAttribute("data-bind",'options: colorBlendModes, optionsText: "text", optionsValue: "value", value: colorBlendMode'),I.appendChild(M);let B=document.createElement("textarea");B.setAttribute("data-bind","textInput: styleString, event: { keydown: styleEditorKeyPress }"),I.className="cesium-cesiumInspector-styleEditor",I.appendChild(B);let V=f("Compile (Ctrl+Enter)","compileStyle");I.appendChild(V);let U=document.createElement("div");U.className="cesium-cesiumInspector-error",U.setAttribute("data-bind","text: editorError"),I.appendChild(U),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(l("Skip SSE Factor","skipScreenSpaceErrorFactor",1,50,1)),T.appendChild(G);let k=document.createElement("div");k.appendChild(l("SSE before skipping LOD","baseScreenSpaceError",0,4096,1)),T.appendChild(k);let Y=document.createElement("div");Y.appendChild(l("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(Z8.prototype,{container:{get:function(){return this._container}},viewModel:{get:function(){return this._viewModel}}});Z8.prototype.isDestroyed=function(){return!1};Z8.prototype.destroy=function(){return Te.cleanNode(this._element),this._container.removeChild(this._element),this.viewModel.destroy(),le(this)};var LB=Z8;function Nxt(e){let t;if(u(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>&nbsp;&nbsp;&nbsp;&nbsp;${n[i]} in frustum ${r}`}t+=`<br>Total: ${e.totalCommands}`}return t}function kK(e,t,n){let i=Math.min(n,t);return i=Math.max(i,e),i}var Fxt=new Tn,Bxt=new h;function NB(e,t){let n=this,i=e.canvas,o=new Nu(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=An(function(){n.dropDownVisible=!n.dropDownVisible}),this._toggleGeneral=An(function(){n.generalVisible=!n.generalVisible}),this._togglePrimitives=An(function(){n.primitivesVisible=!n.primitivesVisible}),this._toggleTerrain=An(function(){n.terrainVisible=!n.terrainVisible}),this._frustumsSubscription=Te.getObservable(this,"frustums").subscribe(function(l){n._scene.debugShowFrustums=l,n._scene.requestRender()}),this._frustumPlanesSubscription=Te.getObservable(this,"frustumPlanes").subscribe(function(l){n._scene.debugShowFrustumPlanes=l,n._scene.requestRender()}),this._performanceSubscription=Te.getObservable(this,"performance").subscribe(function(l){l?n._performanceDisplay=new V_({container:n._performanceContainer}):n._performanceContainer.innerHTML=""}),this._showPrimitiveBoundingSphere=An(function(){return n._primitive.debugShowBoundingVolume=n.primitiveBoundingSphere,n._scene.requestRender(),!0}),this._primitiveBoundingSphereSubscription=Te.getObservable(this,"primitiveBoundingSphere").subscribe(function(){n._showPrimitiveBoundingSphere()}),this._showPrimitiveReferenceFrame=An(function(){if(n.primitiveReferenceFrame){let l=n._primitive.modelMatrix;n._modelMatrixPrimitive=new MF({modelMatrix:l}),n._scene.primitives.add(n._modelMatrixPrimitive)}else u(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=An(function(){return n.filterPrimitive?n._scene.debugCommandFilter=function(l){return u(n._modelMatrixPrimitive)&&l.owner===n._modelMatrixPrimitive._primitive?!0:u(n._primitive)?l.owner===n._primitive||l.owner===n._primitive._billboardCollection||l.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(l){r._surface.tileProvider._debug.wireframe=l,n._scene.requestRender()}),this._depthFrustumSubscription=Te.getObservable(this,"depthFrustum").subscribe(function(l){n._scene.debugShowDepthFrustum=l,n._scene.requestRender()}),this._incrementDepthFrustum=An(function(){let l=n.depthFrustum+1;return n.depthFrustum=kK(1,n._numberOfFrustums,l),n._scene.requestRender(),!0}),this._decrementDepthFrustum=An(function(){let l=n.depthFrustum-1;return n.depthFrustum=kK(1,n._numberOfFrustums,l),n._scene.requestRender(),!0}),this._suspendUpdatesSubscription=Te.getObservable(this,"suspendUpdates").subscribe(function(l){r._surface._debug.suspendLodUpdate=l,l||(n.filterTile=!1)});let s;this._showTileCoordinates=An(function(){return n.tileCoordinates&&!u(s)?s=e.imageryLayers.addImageryProvider(new ZF({tilingScheme:e.terrainProvider.tilingScheme})):!n.tileCoordinates&&u(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=An(function(){return n.tileBoundingSphere?r._surface.tileProvider._debug.boundingSphereTile=n._tile:r._surface.tileProvider._debug.boundingSphereTile=void 0,n._scene.requestRender(),!0}),this._doFilterTile=An(function(){return n.filterTile?(n.suspendUpdates=!0,r._surface._tilesToRender=[],u(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(l){let f=n._scene.pick({x:l.position.x,y:l.position.y});u(f)&&(n.primitive=u(f.collection)?f.collection:f.primitive),n._scene.requestRender(),n.pickPrimitiveActive=!1}this._pickPrimitive=An(function(){n.pickPrimitiveActive=!n.pickPrimitiveActive}),this._pickPrimitiveActiveSubscription=Te.getObservable(this,"pickPrimitiveActive").subscribe(function(l){l?o.setInputAction(a,xn.LEFT_CLICK):o.removeInputAction(xn.LEFT_CLICK)});function c(l){let f,d=r.ellipsoid,p=n._scene.camera.getPickRay(l.position,Fxt),g=r.pick(p,n._scene,Bxt);if(u(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(u(T))for(let A=0;!f&&A<T.length;++A){let C=T[A];ce.contains(C.rectangle,m)&&(f=C)}}}n.tile=f,n.pickTileActive=!1}this._pickTile=An(function(){n.pickTileActive=!n.pickTileActive}),this._pickTileActiveSubscription=Te.getObservable(this,"pickTileActive").subscribe(function(l){l?o.setInputAction(c,xn.LEFT_CLICK):o.removeInputAction(xn.LEFT_CLICK)}),this._removePostRenderEvent=e.postRender.addEventListener(function(){n._update()})}Object.defineProperties(NB.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 An(function(){e.tile=e.tile.parent})}},selectNW:{get:function(){let e=this;return An(function(){e.tile=e.tile.northwestChild})}},selectNE:{get:function(){let e=this;return An(function(){e.tile=e.tile.northeastChild})}},selectSW:{get:function(){let e=this;return An(function(){e.tile=e.tile.southwestChild})}},selectSE:{get:function(){let e=this;return An(function(){e.tile=e.tile.southeastChild})}},primitive:{get:function(){return this._primitive},set:function(e){let t=this._primitive;e!==t&&(this.hasPickedPrimitive=!0,u(t)&&(t.debugShowBoundingVolume=!1),this._scene.debugCommandFilter=void 0,u(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(u(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;u(n)&&u(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}}});NB.prototype._update=function(){this.frustums&&(this.frustumStatisticText=Nxt(this._scene.debugFrustumStatistics));let e=this._scene.numberOfFrustums;this._numberOfFrustums=e,this.depthFrustum=kK(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}`};NB.prototype.isDestroyed=function(){return!1};NB.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(),le(this)};var FB=NB;function $8(e,t){e=wn(e);let n=document.createElement("div"),i=new FB(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=Oa.createSection,c=Oa.createCheckbox,l=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),l.appendChild(f),l.appendChild(c("Show Frustum Planes","frustumPlanes")),l.appendChild(c("Performance Display","performance")),n.className="cesium-cesiumInspector-performanceDisplay",l.appendChild(n);let p=document.createElement("div");p.className="cesium-cesiumInspector-shaderCache",p.setAttribute("data-bind","html: shaderCacheText"),l.appendChild(p);let g=document.createElement("div");l.appendChild(g);let m=document.createElement("span");m.setAttribute("data-bind",'html: "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;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 A=a(s,"Primitives","primitivesVisible","togglePrimitives"),C=document.createElement("div");C.className="cesium-cesiumInspector-pickSection",A.appendChild(C);let S=document.createElement("input");S.type="button",S.value="Pick a primitive",S.className="cesium-cesiumInspector-pickButton",S.setAttribute("data-bind",'css: {"cesium-cesiumInspector-pickButtonHighlight" : pickPrimitiveActive}, click: pickPrimitive');let w=document.createElement("div");w.className="cesium-cesiumInspector-center",w.appendChild(S),C.appendChild(w),C.appendChild(c("Show bounding sphere","primitiveBoundingSphere","hasPickedPrimitive")),C.appendChild(c("Show reference frame","primitiveReferenceFrame","hasPickedPrimitive")),this._primitiveOnly=c("Show only selected","filterPrimitive","hasPickedPrimitive"),C.appendChild(this._primitiveOnly);let D=a(s,"Terrain","terrainVisible","toggleTerrain"),O=document.createElement("div");O.className="cesium-cesiumInspector-pickSection",D.appendChild(O);let R=document.createElement("input");R.type="button",R.value="Pick a tile",R.className="cesium-cesiumInspector-pickButton",R.setAttribute("data-bind",'css: {"cesium-cesiumInspector-pickButtonHighlight" : pickTileActive}, click: pickTile'),w=document.createElement("div"),w.appendChild(R),w.className="cesium-cesiumInspector-center",O.appendChild(w);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 E=document.createElement("input");E.type="button",E.value="NE",E.className="cesium-cesiumInspector-pickButton",E.setAttribute("data-bind","click: selectNE");let v=document.createElement("input");v.type="button",v.value="SW",v.className="cesium-cesiumInspector-pickButton",v.setAttribute("data-bind","click: selectSW");let I=document.createElement("input");I.type="button",I.value="SE",I.className="cesium-cesiumInspector-pickButton",I.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 V=document.createElement("table"),U=document.createElement("tr"),G=document.createElement("tr"),k=document.createElement("td");k.appendChild(N);let Y=document.createElement("td");Y.appendChild(_);let j=document.createElement("td");j.appendChild(E),U.appendChild(k),U.appendChild(Y),U.appendChild(j);let $=document.createElement("td"),W=document.createElement("td");W.appendChild(v);let K=document.createElement("td");K.appendChild(I),G.appendChild($),G.appendChild(W),G.appendChild(K),V.appendChild(U),V.appendChild(G),L.appendChild(V),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($8.prototype,{container:{get:function(){return this._container}},viewModel:{get:function(){return this._viewModel}}});$8.prototype.isDestroyed=function(){return!1};$8.prototype.destroy=function(){return Te.cleanNode(this._element),this._container.removeChild(this._element),this.viewModel.destroy(),le(this)};var BB=$8;function Q8(e,t){u(t)||(t=document.body),t=wn(t);let n=this,i=Te.observable(mr.fullscreen),o=Te.observable(mr.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&&mr.enabled)}}),this.tooltip=void 0,Te.defineProperty(this,"tooltip",function(){return this.isFullscreenEnabled?i()?"Exit full screen":"Full screen":"Full screen unavailable"}),this._command=An(function(){mr.fullscreen?mr.exitFullscreen():mr.requestFullscreen(n._fullscreenElement)},Te.getObservable(this,"isFullscreenEnabled")),this._fullscreenElement=y(wn(e),r.body),this._callback=function(){i(mr.fullscreen)},r.addEventListener(mr.changeEventName,this._callback)}Object.defineProperties(Q8.prototype,{fullscreenElement:{get:function(){return this._fullscreenElement},set:function(e){this._fullscreenElement=e}},command:{get:function(){return this._command}}});Q8.prototype.isDestroyed=function(){return!1};Q8.prototype.destroy=function(){document.removeEventListener(mr.changeEventName,this._callback),le(this)};var kB=Q8;var kxt="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",Uxt="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 J8(e,t){e=wn(e);let n=new kB(t,e);n._exitFullScreenPath=Uxt,n._enterFullScreenPath=kxt;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(J8.prototype,{container:{get:function(){return this._container}},viewModel:{get:function(){return this._viewModel}}});J8.prototype.isDestroyed=function(){return!1};J8.prototype.destroy=function(){return this._viewModel.destroy(),Te.cleanNode(this._element),this._container.removeChild(this._element),le(this)};var UB=J8;function kbe(e,t){this._scene=e,this._duration=t;let n=this;this._command=An(function(){n._scene.camera.flyHome(n._duration)}),this.tooltip="View Home",Te.track(this,["tooltip"])}Object.defineProperties(kbe.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 VB=kbe;function eH(e,t,n){e=wn(e);let i=new VB(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(eH.prototype,{container:{get:function(){return this._container}},viewModel:{get:function(){return this._viewModel}}});eH.prototype.isDestroyed=function(){return!1};eH.prototype.destroy=function(){return Te.cleanNode(this._element),this._container.removeChild(this._element),le(this)};var zB=eH;var Ube=1e3;function td(e){u(e.geocoderServices)?this._geocoderServices=e.geocoderServices:this._geocoderServices=[new AF({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=zbe,this._handleArrowUp=Vbe;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=An(function(i){if(i=y(i,o0.SEARCH),t._focusTextbox=!1,u(t._selectedSuggestion))return t.activateSuggestion(t._selectedSuggestion),!1;if(t.hideSuggestions(),t.isSearchInProgress)jxt(t);else return Gxt(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?Vbe(t):r?zbe(t):a&&t._searchCommand(),!0},this.activateSuggestion=function(i){t.hideSuggestions(),t._searchText=i.displayName;let o=i.destination;Wbe(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,td.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(){td._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(td.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}}});td.prototype.destroy=function(){this._suggestionSubscription.dispose()};function Vbe(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],td._adjustSuggestionsScroll(e,n)}function zbe(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],td._adjustSuggestionsScroll(e,i)}function Vxt(e,t){let n=u(t)?t.availability:void 0;return u(n)?S_(t,[e]).then(function(i){return e=i[0],e.height+=Ube,e}):(e.height+=Ube,Promise.resolve(e))}function zxt(e,t){let n=e._scene,o=n.mapProjection.ellipsoid,r=n.camera,s=n.terrainProvider,a=t,c;return t instanceof ce?P.equalsEpsilon(t.south,t.north,P.EPSILON7)&&P.equalsEpsilon(t.east,t.west,P.EPSILON7)?t=ce.center(t):c=HT(t,n):t=o.cartesianToCartographic(t),u(c)||(c=Vxt(t,s)),c.then(function(l){a=o.cartographicToCartesian(l)}).finally(function(){r.flyTo({destination:a,complete:function(){e._complete.raiseEvent()},duration:e._flightDuration,endTransform:F.IDENTITY})})}async function Hxt(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 Gxt(e,t,n){let i=e._searchText;if(Gbe(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 Hxt(t[o],i,n),u(r)&&r.state==="fulfilled"&&r.value.length>0)break}if(e._wasGeocodeCancelled)return;e._isSearchInProgress=!1,VK(e);let s=r.value;if(r.state==="fulfilled"&&u(s)&&s.length>0){e._searchText=s[0].displayName,e.destinationFound(e,s[0].destination);let a=Hbe(e,IS.getCreditsFromResult(s[0]));u(a)||UK(e,t[o].credit);return}e._searchText=`${i} (not found)`}function UK(e,t){u(t)&&!e._scene.isDestroyed()&&!e._scene.frameState.creditDisplay.isDestroyed()&&(e._scene.frameState.creditDisplay.addStaticCredit(t),e._previousCredits.push(t))}function Hbe(e,t){return u(t)&&t.forEach(n=>UK(e,n)),t}function VK(e){!e._scene.isDestroyed()&&!e._scene.frameState.creditDisplay.isDestroyed()&&e._previousCredits.forEach(t=>{e._scene.frameState.creditDisplay.removeStaticCredit(t)}),e._previousCredits.length=0}function Wxt(e,t){let n=wn(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 jxt(e){e._isSearchInProgress&&(e._isSearchInProgress=!1,e._wasGeocodeCancelled=!0)}function Gbe(e){return/^\s*$/.test(e)}function Wbe(e){Te.getObservable(e,"_suggestions").removeAll()}async function qxt(e){if(!e.autoComplete)return;let t=e._searchText;if(Wbe(e),VK(e),!Gbe(t))for(let n of e._geocoderServices){let i=await n.geocode(t,o0.AUTOCOMPLETE);if(e._suggestions=e._suggestions.concat(i),i.length>0){let o=!0;i.forEach(r=>{let s=IS.getCreditsFromResult(r);o=o&&!u(s),Hbe(e,s)}),o&&UK(e,n.credit)}if(e._suggestions.length>=5)return}}td.flyToDestination=zxt;td._updateSearchSuggestions=qxt;td._adjustSuggestionsScroll=Wxt;td.prototype.isDestroyed=function(){return!1};td.prototype.destroy=function(){return VK(this),le(this)};var HB=td;var Yxt="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",Xxt="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 tH(e){let t=wn(e.container),n=new HB(e);n._startSearchPath=Yxt,n._stopSearchPath=Xxt;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(l){let f=l.target;typeof l.composedPath=="function"&&(f=l.composedPath()[0]),t.contains(f)||(n._focusTextbox=!1,n.hideSuggestions())},this._onInputEnd=function(l){n._focusTextbox=!0,n.showSuggestions()},Bt.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(tH.prototype,{container:{get:function(){return this._container}},searchSuggestionsContainer:{get:function(){return this._searchSuggestionsContainer}},viewModel:{get:function(){return this._viewModel}}});tH.prototype.isDestroyed=function(){return!1};tH.prototype.destroy=function(){let e=this._container;return Bt.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),le(this)};var GB=tH;var Kxt="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",Zxt="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 zK(){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?Zxt:Kxt}}),Te.defineProperty(this,"_bodyless",{get:function(){return!u(this.description)||this.description.length===0}})}zK.prototype.maxHeightOffset=function(e){return`${this.maxHeight-e}px`};Object.defineProperties(zK.prototype,{cameraClicked:{get:function(){return this._cameraClicked}},closeClicked:{get:function(){return this._closeClicked}}});var WB=zK;function nH(e){e=wn(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="&times;",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 WB;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,l=c.createElement("link");l.href=Zt("Widgets/InfoBox/InfoBoxDescription.css"),l.rel="stylesheet",l.type="text/css";let f=c.createElement("div");f.className="cesium-infoBox-description",c.head.appendChild(l),c.body.appendChild(f),a._descriptionSubscription=la(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);u(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(nH.prototype,{container:{get:function(){return this._container}},viewModel:{get:function(){return this._viewModel}},frame:{get:function(){return this._frame}}});nH.prototype.isDestroyed=function(){return!1};nH.prototype.destroy=function(){let e=this._container;return Te.cleanNode(this._element),e.removeChild(this._element),u(this._descriptionSubscription)&&this._descriptionSubscription.dispose(),le(this)};var jB=nH;function jbe(){this.showInstructions=!1;let e=this;this._command=An(function(){e.showInstructions=!e.showInstructions}),this._showClick=An(function(){e._touch=!1}),this._showTouch=An(function(){e._touch=!0}),this._touch=!1,this.tooltip="Navigation Instructions",Te.track(this,["tooltip","showInstructions","_touch"])}Object.defineProperties(jbe.prototype,{command:{get:function(){return this._command}},showClick:{get:function(){return this._showClick}},showTouch:{get:function(){return this._showTouch}}});var qB=jbe;function iH(e){let t=wn(e.container),n=new qB,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=Zt("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 l=document.createElement("button");l.type="button",l.className="cesium-navigation-button cesium-navigation-button-right",l.setAttribute("data-bind",'click: showTouch, css: {"cesium-navigation-button-selected": _touch, "cesium-navigation-button-unselected": !_touch}');let f=document.createElement("img");f.src=Zt("Widgets/Images/NavigationHelp/Touch.svg"),f.className="cesium-navigation-button-icon",f.style.width="25px",f.style.height="25px",l.appendChild(f),l.appendChild(document.createTextNode("Touch")),s.appendChild(a),s.appendChild(l);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="${Zt("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="${Zt("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="${Zt("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="${Zt("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="${Zt("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="${Zt("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="${Zt("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)},Bt.supportsPointerEvents()?document.addEventListener("pointerdown",this._closeInstructions,!0):(document.addEventListener("mousedown",this._closeInstructions,!0),document.addEventListener("touchstart",this._closeInstructions,!0))}Object.defineProperties(iH.prototype,{container:{get:function(){return this._container}},viewModel:{get:function(){return this._viewModel}}});iH.prototype.isDestroyed=function(){return!1};iH.prototype.destroy=function(){return Bt.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),le(this)};var YB=iH;function HK(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=An(function(){t.showingLowFrameRateMessage=!1,t.lowFrameRateMessageDismissed=!0});let n=FF.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(HK.prototype,{scene:{get:function(){return this._scene}},dismissMessage:{get:function(){return this._dismissMessage}}});HK.prototype.destroy=function(){return this._unsubscribeLowFrameRate(),this._unsubscribeNominalFrameRate(),le(this)};var XB=HK;function oH(e){let t=wn(e.container),n=new XB(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="&times;",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(oH.prototype,{container:{get:function(){return this._container}},viewModel:{get:function(){return this._viewModel}}});oH.prototype.isDestroyed=function(){return!1};oH.prototype.destroy=function(){return this._viewModel.destroy(),Te.cleanNode(this._element),this._container.removeChild(this._element),le(this)};var KB=oH;function rH(e){this._scene=e,this._orthographic=e.camera.frustum instanceof $t,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=An(function(){t.sceneMode===te.SCENE2D||t._flightInProgress||(t.dropDownVisible=!t.dropDownVisible)}),this._eventHelper=new Or,this._eventHelper.add(e.morphComplete,function(n,i,o,r){t.sceneMode=o,t._orthographic=o===te.SCENE2D||t._scene.camera.frustum instanceof $t}),this._eventHelper.add(e.preRender,function(){t._flightInProgress=u(e.camera._currentFlight)}),this._switchToPerspective=An(function(){t.sceneMode!==te.SCENE2D&&(t._scene.camera.switchToPerspectiveFrustum(),t._orthographic=!1,t.dropDownVisible=!1)}),this._switchToOrthographic=An(function(){t.sceneMode!==te.SCENE2D&&(t._scene.camera.switchToOrthographicFrustum(),t._orthographic=!0,t.dropDownVisible=!1)}),this._sceneMode=te}Object.defineProperties(rH.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}}});rH.prototype.isDestroyed=function(){return!1};rH.prototype.destroy=function(){this._eventHelper.removeAll(),le(this)};var ZB=rH;var $xt="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",Qxt="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 sH(e,t){e=wn(e);let n=new ZB(t);n._perspectivePath=$xt,n._orthographicPath=Qxt;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)},Bt.supportsPointerEvents()?document.addEventListener("pointerdown",this._closeDropDown,!0):(document.addEventListener("mousedown",this._closeDropDown,!0),document.addEventListener("touchstart",this._closeDropDown,!0))}Object.defineProperties(sH.prototype,{container:{get:function(){return this._container}},viewModel:{get:function(){return this._viewModel}}});sH.prototype.isDestroyed=function(){return!1};sH.prototype.destroy=function(){return this._viewModel.destroy(),Bt.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),le(this)};var $B=sH;function aH(e,t){this._scene=e;let n=this,i=function(o,r,s,a){n.sceneMode=s,n.dropDownVisible=!1};this._eventHelper=new Or,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===te.SCENE2D?n.tooltip2D:o===te.SCENE3D?n.tooltip3D:n.tooltipColumbusView}),this._toggleDropDown=An(function(){n.dropDownVisible=!n.dropDownVisible}),this._morphTo2D=An(function(){e.morphTo2D(n._duration)}),this._morphTo3D=An(function(){e.morphTo3D(n._duration)}),this._morphToColumbusView=An(function(){e.morphToColumbusView(n._duration)}),this._sceneMode=te}Object.defineProperties(aH.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}}});aH.prototype.isDestroyed=function(){return!1};aH.prototype.destroy=function(){this._eventHelper.removeAll(),le(this)};var QB=aH;var Jxt="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",ebt="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",tbt="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 cH(e,t,n){e=wn(e);let i=new QB(t,n);i._globePath=Jxt,i._flatMapPath=ebt,i._columbusViewPath=tbt;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(l){o.contains(l.target)||(i.dropDownVisible=!1)},Bt.supportsPointerEvents()?document.addEventListener("pointerdown",this._closeDropDown,!0):(document.addEventListener("mousedown",this._closeDropDown,!0),document.addEventListener("touchstart",this._closeDropDown,!0))}Object.defineProperties(cH.prototype,{container:{get:function(){return this._container}},viewModel:{get:function(){return this._viewModel}}});cH.prototype.isDestroyed=function(){return!1};cH.prototype.destroy=function(){return this._viewModel.destroy(),Bt.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),le(this)};var JB=cH;var nbt=new z,lH="-1000px";function e3(e,t,n){this._scene=e,this._screenPositionX=lH,this._screenPositionY=lH,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&&u(this.position)}}),Te.defineProperty(this,"_transform",{get:function(){return`scale(${this._scale})`}}),this.computeScreenSpacePosition=function(i,o){return Xi.wgs84ToWindowCoordinates(e,i,o)}}e3.prototype.update=function(){if(this.showSelection&&u(this.position)){let e=this.computeScreenSpacePosition(this.position,nbt);if(!u(e))this._screenPositionX=lH,this._screenPositionY=lH;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`}}};e3.prototype.animateAppear=function(){this._tweens.addProperty({object:this,property:"_scale",startValue:2,stopValue:1,duration:.8,easingFunction:kr.EXPONENTIAL_OUT})};e3.prototype.animateDepart=function(){this._tweens.addProperty({object:this,property:"_scale",startValue:this._scale,stopValue:1.5,duration:.8,easingFunction:kr.EXPONENTIAL_OUT})};Object.defineProperties(e3.prototype,{container:{get:function(){return this._container}},selectionIndicatorElement:{get:function(){return this._selectionIndicatorElement}},scene:{get:function(){return this._scene}}});var t3=e3;function uH(e,t){e=wn(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 t3(t,this._element,this._container);this._viewModel=c,Te.applyBindings(this._viewModel,this._element)}Object.defineProperties(uH.prototype,{container:{get:function(){return this._container}},viewModel:{get:function(){return this._viewModel}}});uH.prototype.isDestroyed=function(){return!1};uH.prototype.destroy=function(){let e=this._container;return Te.cleanNode(this._element),e.removeChild(this._element),le(this)};var n3=uH;function jT(e,t,n){this._color=e,this._height=t,this._base=y(n,0)}jT.prototype.getHeight=function(){return this._height};jT.prototype.getBase=function(){return this._base};jT.prototype.getStartTime=function(){return this._start};jT.prototype.getStopTime=function(){return this._stop};jT.prototype.setRange=function(e,t){this._start=e,this._stop=t};jT.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 i3=jT;function qbe(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)}qbe.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 l=J.addSeconds(t.startJulian,s/t.timeBarWidth*t.duration,new J);!u(a)&&J.greaterThanOrEquals(l,n)?a=s:!u(c)&&J.greaterThanOrEquals(l,i)&&(c=s)}e.fillStyle=this.backgroundColor.toCssColorString(),e.fillRect(0,t.y,t.timeBarWidth,this.height),u(a)&&(u(c)||(c=t.timeBarWidth),e.fillStyle=this.color.toCssColorString(),e.fillRect(a,t.y,Math.max(c-a,1),this.height))}};var o3=qbe;var GK=1e12,nd={none:0,scrub:1,slide:2,zoom:3,touchOnly:4},tl={none:0,scrub:1,slideZoom:2,singleTap:3,ignore:4},p0=[.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],ibt=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];function nl(e,t){e=wn(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=nd.none,this._touchMode=tl.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=obt(this),this._onMouseUp=rbt(this),this._onMouseMove=sbt(this),this._onMouseWheel=abt(this),this._onTouchStart=cbt(this),this._onTouchMove=ubt(this),this._onTouchEnd=lbt(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()}nl.prototype.addEventListener=function(e,t,n){this._topDiv.addEventListener(e,t,n)};nl.prototype.removeEventListener=function(e,t,n){this._topDiv.removeEventListener(e,t,n)};nl.prototype.isDestroyed=function(){return!1};nl.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),le(this)};nl.prototype.addHighlightRange=function(e,t,n){let i=new i3(e,t,n);return this._highlightRanges.push(i),this.resize(),i};nl.prototype.addTrack=function(e,t,n,i){let o=new o3(e,t,n,i);return this._trackList.push(o),this._lastHeight=void 0,this.resize(),o};nl.prototype.zoomTo=function(e,t){if(this._startJulian=e,this._endJulian=t,this._timeBarSecondsSpan=J.secondsDifference(t,e),this._clock&&this._clock.clockRange!==Fr.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)};nl.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 WK(e){return e<10?`0${e.toString()}`:e.toString()}nl.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`${ibt[t.month-1]} ${t.day} ${t.year} ${WK(t.hour)}:${WK(t.minute)}:${WK(t.second)}${i}`};nl.prototype.smallestTicInPixels=7;nl.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,l=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)),A=T+d;this._epochJulian=x;function C(k){return Math.floor(T/k)*k}function S(k,Y){return Math.ceil(k/Y+.5)*Y}function w(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 R=f;f-=l;let L={startTime:T,startJulian:g,epochJulian:x,duration:d,timeBarWidth:p,getAlpha:w};this._highlightRanges.forEach(function(k){s+=k.render(L)});let N=0,_=0,E=0,v=O/p;v>1&&(v=1),v*=this._timeBarSecondsSpan;let I=-1,M=-1,B=p0.length,V;for(V=0;V<B;++V){let k=p0[V];if(++I,N=k,k>v&&k>f)break;M<0&&p*(k/this._timeBarSecondsSpan)>=this.smallestTicInPixels&&(M=I)}if(I>0){for(;I>0;)if(--I,Math.abs(D(N,p0[I]))<1e-5){p0[I]>=f&&(_=p0[I]);break}if(M>=0)for(;M<I;){if(Math.abs(D(_,p0[M]))<1e-5&&p0[M]>=f){E=p0[M];break}++M}}f=R,f>l&&E<1e-5&&Math.abs(f-N)>l&&(E=f,f<=N+l&&(_=0));let U=-999999,G;if(p*(E/this._timeBarSecondsSpan)>=3)for(o=C(E);o<=A;o=S(o,E))s+=`<span class="cesium-timeline-ticTiny" style="left: ${Math.round(p*w(o)).toString()}px;"></span>`;if(p*(_/this._timeBarSecondsSpan)>=3)for(o=C(_);o<=A;o=S(o,_))s+=`<span class="cesium-timeline-ticSub" style="left: ${Math.round(p*w(o)).toString()}px;"></span>`;if(p*(N/this._timeBarSecondsSpan)>=2){this._mainTicSpan=N,A+=N,o=C(N);let k=J.computeTaiMinusUtc(x);for(;o<=A;){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 j=Math.round(p*w(o)),$=this.makeLabel(Y);this._rulerEle.innerHTML=$,G=this._rulerEle.offsetWidth,G<10&&(G=O);let W=j-(G/2-1);W>U?(U=W+G+5,s+=`<span class="cesium-timeline-ticMain" style="left: ${j.toString()}px;"></span><span class="cesium-timeline-ticLabel" style="left: ${W.toString()}px;">${$}</span>`):s+=`<span class="cesium-timeline-ticSub" style="left: ${j.toString()}px;"></span>`,o=S(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})};nl.prototype.updateFromClock=function(){this._scrubJulian=this._clock.currentTime;let e=this._scrubElement;if(u(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`)}u(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)))};nl.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 obt(e){return function(t){e._mouseMode!==nd.touchOnly&&(t.button===0?(e._mouseMode=nd.scrub,e._scrubElement&&(e._scrubElement.style.backgroundPosition="-16px 0"),e._onMouseMove(t)):(e._mouseX=t.clientX,t.button===2?e._mouseMode=nd.zoom:e._mouseMode=nd.slide)),t.preventDefault()}}function rbt(e){return function(t){e._mouseMode=nd.none,e._scrubElement&&(e._scrubElement.style.backgroundPosition="0 0"),e._timelineDrag=0,e._timelineDragLocation=void 0}}function sbt(e){return function(t){let n;if(e._mouseMode===nd.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===nd.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===nd.zoom&&(n=e._mouseX-t.clientX,e._mouseX=t.clientX,n!==0&&e.zoomFrom(Math.pow(1.01,n)))}}function abt(e){return function(t){let n=t.wheelDeltaY||t.wheelDelta||-t.detail;GK=Math.max(Math.min(Math.abs(n),GK),1),n/=GK,e.zoomFrom(Math.pow(1.05,-n))}}function cbt(e){return function(t){let n=t.touches.length,i,o,r=e._topDiv.getBoundingClientRect().left;t.preventDefault(),e._mouseMode=nd.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=tl.scrub,e._scrubElement&&(e._scrubElement.style.backgroundPosition=n===1?"-16px 0":"0 0")):(e._touchMode=tl.singleTap,e._touchState.centerX=t.touches[0].clientX-r)):n===2?(e._touchMode=tl.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=tl.ignore}}function lbt(e){return function(t){let n=t.touches.length,i=e._topDiv.getBoundingClientRect().left;e._touchMode===tl.singleTap?(e._touchMode=tl.scrub,e._onTouchMove(t)):e._touchMode===tl.scrub&&e._onTouchMove(t),e._mouseMode=nd.touchOnly,n!==1?e._touchMode=n>0?tl.ignore:tl.none:e._touchMode===tl.slideZoom&&(e._touchState.centerX=t.touches[0].clientX-i),e._scrubElement&&(e._scrubElement.style.backgroundPosition="0 0")}}function ubt(e){return function(t){let n,i,o,r,s,a,c=1,l=e._topDiv.getBoundingClientRect().left;e._touchMode===tl.singleTap&&(e._touchMode=tl.slideZoom),e._mouseMode=nd.touchOnly,e._touchMode===tl.scrub?(t.preventDefault(),t.changedTouches.length===1&&(i=t.changedTouches[0].clientX-l,i>=0&&i<=e._topDiv.clientWidth&&e._setTimeBarTime(i,i*e._timeBarSecondsSpan/e._topDiv.clientWidth))):e._touchMode===tl.slideZoom&&(o=t.touches.length,o===2?(r=(t.touches[0].clientX+t.touches[1].clientX)*.5-l,s=Math.abs(t.touches[0].clientX-t.touches[1].clientX)):o===1&&(r=t.touches[0].clientX-l,s=0),u(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))}}nl.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 r3=nl;var Xbe=ro(Ybe(),1);function fbt(e){let t=!1,n=window.screen;return u(n)&&(u(n.lockOrientation)?t=n.lockOrientation(e):u(n.mozLockOrientation)?t=n.mozLockOrientation(e):u(n.msLockOrientation)?t=n.msLockOrientation(e):u(n.orientation&&n.orientation.lock)&&(t=n.orientation.lock(e))),t}function Kbe(){let e=window.screen;u(e)&&(u(e.unlockOrientation)?e.unlockOrientation():u(e.mozUnlockOrientation)?e.mozUnlockOrientation():u(e.msUnlockOrientation)?e.msUnlockOrientation():u(e.orientation&&e.orientation.unlock)&&e.orientation.unlock())}function dbt(e,t,n,i){i()||(n()?(t.useWebVR=!1,e._locked&&(Kbe(),e._locked=!1),e._noSleep.disable(),mr.exitFullscreen(),n(!1)):(mr.fullscreen||mr.requestFullscreen(e._vrElement),e._noSleep.enable(),e._locked||(e._locked=fbt("landscape")),t.useWebVR=!0,n(!0)))}function fH(e,t){let n=this,i=Te.observable(mr.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&&mr.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 Or,this._eventHelper.add(e.preRender,function(){r(e.camera.frustum instanceof $t)}),this._locked=!1,this._noSleep=new Xbe.default,this._command=An(function(){dbt(n,e,o,r)},Te.getObservable(this,"isVREnabled")),this._vrElement=y(wn(t),document.body),this._callback=function(){!mr.fullscreen&&o()&&(e.useWebVR=!1,n._locked&&(Kbe(),n._locked=!1),n._noSleep.disable(),o(!1))},document.addEventListener(mr.changeEventName,this._callback)}Object.defineProperties(fH.prototype,{vrElement:{get:function(){return this._vrElement},set:function(e){this._vrElement=e}},command:{get:function(){return this._command}}});fH.prototype.isDestroyed=function(){return!1};fH.prototype.destroy=function(){this._eventHelper.removeAll(),document.removeEventListener(mr.changeEventName,this._callback),le(this)};var a3=fH;var hbt="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",mbt="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 dH(e,t,n){e=wn(e);let i=new a3(t,n);i._exitVRPath=mbt,i._enterVRPath=hbt;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(dH.prototype,{container:{get:function(){return this._container}},viewModel:{get:function(){return this._viewModel}}});dH.prototype.isDestroyed=function(){return!1};dH.prototype.destroy=function(){return this._viewModel.destroy(),Te.cleanNode(this._element),this._container.removeChild(this._element),le(this)};var c3=dH;var _0=new se;function Qbe(e){let t=e.clock;t.currentTime=e.timeJulian,t.shouldAnimate=!1}function pbt(e){let t=e.getPropertyIds(),n="";return t.forEach(function(i){let o=e.getProperty(i);u(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 _bt(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(u(r)&&r!=="")return r}return"Unnamed Feature"}function Zbe(e,t){let n=e.scene.pick(t.position);if(u(n)){let i=y(n.id,n.primitive.id);if(i instanceof Yo)return i;if(n instanceof ws)return new Yo({name:_bt(n),description:pbt(n),feature:n})}if(u(e.scene.globe))return xbt(e,t.position)}var gbt=new J;function Jbe(e,t,n){if(u(n)){let i=n.clock;if(u(i)&&(i.getValue(t),u(e))){let o=i.startTime,r=i.stopTime;J.equals(o,r)&&(r=J.addSeconds(o,P.EPSILON2,gbt)),e.updateFromClock(),e.zoomTo(o,r)}}}var ybt=new h;function xbt(e,t){let n=e.scene,i=n.camera.getPickRay(t),o=n.imageryLayers.pickImageryLayerFeatures(i,n);if(!u(o))return;let r=new Yo({id:"Loading...",description:"Loading feature information..."});return o.then(function(s){if(e.selectedEntity!==r)return;if(!u(s)||s.length===0){e.selectedEntity=$be();return}let a=s[0],c=new Yo({id:a.name,description:a.description});if(u(a.position)){let l=e.scene.globe.ellipsoid.cartographicToCartesian(a.position,ybt);c.position=new Oc(l)}e.selectedEntity=c},function(){e.selectedEntity===r&&(e.selectedEntity=$be())}),r}function $be(){return new Yo({id:"None",description:"No features found."})}function bbt(e,t){let n=e._geocoder,i=e._homeButton,o=e._sceneModePicker,r=e._projectionPicker,s=e._baseLayerPicker,a=e._animation,c=e._timeline,l=e._fullscreenButton,f=e._infoBox,d=e._selectionIndicator,p=t?"hidden":"visible";if(u(n)&&(n.container.style.visibility=p),u(i)&&(i.container.style.visibility=p),u(o)&&(o.container.style.visibility=p),u(r)&&(r.container.style.visibility=p),u(s)&&(s.container.style.visibility=p),u(a)&&(a.container.style.visibility=p),u(c)&&(c.container.style.visibility=p),u(l)&&l.viewModel.isFullscreenEnabled&&(l.container.style.visibility=p),u(f)&&(f.container.style.visibility=p),u(d)&&(d.container.style.visibility=p),e._container){let g=t||!u(l)?0:l.container.clientWidth;e._vrButton.container.style.right=`${g}px`,e.forceResize()}}function Li(e,t){e=wn(e),t=y(t,y.EMPTY_OBJECT);let n=(!u(t.globe)||t.globe!==!1)&&(!u(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,l,f=!1;u(t.clockViewModel)?(l=t.clockViewModel,c=l.clock):(c=new Xd,l=new TB(c),f=!0),u(t.shouldAnimate)&&(c.shouldAnimate=t.shouldAnimate);let d=new lF(r,{baseLayer:n||u(t.baseLayer)||u(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:u(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;u(p)||(p=new LM,g=!0);let m=d.scene,x=new bL({scene:m,dataSourceCollection:p}),b=new Or;b.add(c.onTick,Li.prototype._onTick,this),b.add(m.morphStart,Li.prototype._clearTrackedObject,this);let T;if(!u(t.selectionIndicator)||t.selectionIndicator!==!1){let j=document.createElement("div");j.className="cesium-viewer-selectionIndicatorContainer",o.appendChild(j),T=new n3(j,m)}let A;if(!u(t.infoBox)||t.infoBox!==!1){let j=document.createElement("div");j.className="cesium-viewer-infoBoxContainer",o.appendChild(j),A=new jB(j);let $=A.viewModel;b.add($.cameraClicked,Li.prototype._onInfoBoxCameraClicked,this),b.add($.closeClicked,Li.prototype._onInfoBoxClockClicked,this)}let C=document.createElement("div");C.className="cesium-viewer-toolbar",o.appendChild(C);let S;if(!u(t.geocoder)||t.geocoder!==!1){let j=document.createElement("div");j.className="cesium-viewer-geocoderContainer",C.appendChild(j);let $;u(t.geocoder)&&typeof t.geocoder!="boolean"&&($=Array.isArray(t.geocoder)?t.geocoder:[t.geocoder]),S=new GB({container:j,geocoderServices:$,scene:m}),b.add(S.viewModel.search.beforeExecute,Li.prototype._clearObjects,this)}let w;(!u(t.homeButton)||t.homeButton!==!1)&&(w=new zB(C,m),u(S)&&b.add(w.viewModel.command.afterExecute,function(){let j=S.viewModel;j.searchText="",j.isSearchInProgress&&j.search()}),b.add(w.viewModel.command.beforeExecute,Li.prototype._clearTrackedObject,this));let D;!a&&(!u(t.sceneModePicker)||t.sceneModePicker!==!1)&&(D=new JB(C,m));let O;t.projectionPicker&&(O=new $B(C,m));let R,L;if(n){let j=y(t.imageryProviderViewModels,IB()),$=y(t.terrainProviderViewModels,PB());R=new DB(C,{globe:m.globe,imageryProviderViewModels:j,selectedImageryProviderViewModel:t.selectedImageryProviderViewModel,terrainProviderViewModels:$,selectedTerrainProviderViewModel:t.selectedTerrainProviderViewModel}),L=C.getElementsByClassName("cesium-baseLayerPicker-dropDown")[0]}u(t.baseLayer)&&t.baseLayer!==!1&&(n&&(R.viewModel.selectedImagery=void 0),m.imageryLayers.removeAll(),m.imageryLayers.add(t.baseLayer)),u(t.terrainProvider)&&(n&&(R.viewModel.selectedTerrain=void 0),m.terrainProvider=t.terrainProvider),u(t.terrain)&&(n&&(R.viewModel.selectedTerrain=void 0,m.globe.depthTestAgainstTerrain=!0),m.setTerrain(t.terrain));let N;if(!u(t.navigationHelpButton)||t.navigationHelpButton!==!1){let j=!0;try{if(u(window.localStorage)){let $=window.localStorage.getItem("cesium-hasSeenNavHelp");u($)&&$?j=!1:window.localStorage.setItem("cesium-hasSeenNavHelp","true")}}catch{}N=new YB({container:C,instructionsInitiallyVisible:y(t.navigationInstructionsInitiallyVisible,j)})}let _;if(!u(t.animation)||t.animation!==!1){let j=document.createElement("div");j.className="cesium-viewer-animationContainer",o.appendChild(j),_=new SB(j,new wB(l))}let E;if(!u(t.timeline)||t.timeline!==!1){let j=document.createElement("div");j.className="cesium-viewer-timelineContainer",o.appendChild(j),E=new r3(j,c),E.addEventListener("settime",Qbe,!1),E.zoomTo(c.startTime,c.stopTime)}let v,I,M;(!u(t.fullscreenButton)||t.fullscreenButton!==!1)&&(M=document.createElement("div"),M.className="cesium-viewer-fullscreenContainer",o.appendChild(M),v=new UB(M,t.fullscreenElement),I=la(v.viewModel,"isFullscreenEnabled",function(j){M.style.display=j?"block":"none",u(E)&&(E.container.style.right=`${M.clientWidth}px`,E.resize())}));let B,V,U;if(t.vrButton){let j=document.createElement("div");j.className="cesium-viewer-vrContainer",o.appendChild(j),B=new c3(j,m,t.fullScreenElement),V=la(B.viewModel,"isVREnabled",function($){j.style.display=$?"block":"none",u(v)&&(j.style.right=`${M.clientWidth}px`),u(E)&&(E.container.style.right=`${j.clientWidth}px`,E.resize())}),U=la(B.viewModel,"isVRMode",function($){bbt(i,$)})}this._baseLayerPickerDropDown=L,this._fullscreenSubscription=I,this._vrSubscription=V,this._vrModeSubscription=U,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=A,this._dataSourceCollection=p,this._destroyDataSourceCollection=g,this._dataSourceDisplay=x,this._clockViewModel=l,this._destroyClockViewModel=f,this._toolbar=C,this._homeButton=w,this._sceneModePicker=D,this._projectionPicker=O,this._baseLayerPicker=R,this._navigationHelpButton=N,this._animation=_,this._timeline=E,this._fullscreenButton=v,this._vrButton=B,this._geocoder=S,this._eventHelper=b,this._lastWidth=0,this._lastHeight=0,this._allowDataSourcesToSuspendAnimation=!0,this._entityView=void 0,this._enableInfoOrSelection=u(A)||u(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,Li.prototype._onDataSourceAdded,this),b.add(p.dataSourceRemoved,Li.prototype._onDataSourceRemoved,this),b.add(m.postUpdate,Li.prototype.resize,this),b.add(m.postRender,Li.prototype._postRender,this);let G=p.length;for(let j=0;j<G;j++)this._dataSourceAdded(p,p.get(j));this._dataSourceAdded(void 0,x.defaultDataSource),b.add(p.dataSourceAdded,Li.prototype._dataSourceAdded,this),b.add(p.dataSourceRemoved,Li.prototype._dataSourceRemoved,this);function k(j){let $=Zbe(i,j);u($)?q.getValueOrUndefined($.position,i.clock.currentTime)?i.trackedEntity=$:i.zoomTo($):u(i.trackedEntity)&&(i.trackedEntity=void 0)}function Y(j){i.selectedEntity=Zbe(i,j)}d.screenSpaceEventHandler.setInputAction(Y,xn.LEFT_CLICK),d.screenSpaceEventHandler.setInputAction(k,xn.LEFT_DOUBLE_CLICK)}Object.defineProperties(Li.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,qK(this);let t=this.scene,n=t.mode;!u(e)||!u(e.position)?(this._needTrackedEntityUpdate=!1,(n===te.COLUMBUS_VIEW||n===te.SCENE2D)&&(t.screenSpaceCameraController.enableTranslate=!0),(n===te.COLUMBUS_VIEW||n===te.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=u(this._selectionIndicator)?this._selectionIndicator.viewModel:void 0;u(e)?u(t)&&t.animateAppear():u(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,Jbe(this._timeline,this.clock,e))}}});Li.prototype.extend=function(e,t){e(this,t)};Li.prototype.resize=function(){let e=this._cesiumWidget,t=this._container,n=t.clientWidth,i=t.clientHeight,o=u(this._animation),r=u(this._timeline);if(e.resize(),n===this._lastWidth&&i===this._lastHeight)return;let s=i-125,a=this._baseLayerPickerDropDown;if(u(a)&&(a.style.maxHeight=`${s}px`),u(this._geocoder)){let g=this._geocoder.searchSuggestionsContainer;g.style.maxHeight=`${s}px`}u(this._infoBox)&&(this._infoBox.viewModel.maxHeight=s);let c=this._timeline,l,f=0,d=0,p=0;if(o&&window.getComputedStyle(this._animation.container).visibility!=="hidden"){let g=this._lastWidth;l=this._animation.container,n>900?(f=169,g<=900&&(l.style.width="169px",l.style.height="112px",this._animation.resize())):n>=600?(f=136,(g<600||g>900)&&(l.style.width="136px",l.style.height="90px",this._animation.resize())):(f=106,(g>600||g===0)&&(l.style.width="106px",l.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;u(g)&&(T+=g.container.clientWidth),u(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};Li.prototype.forceResize=function(){this._lastWidth=0,this.resize()};Li.prototype.render=function(){this._cesiumWidget.render()};Li.prototype.isDestroyed=function(){return!1};Li.prototype.destroy=function(){let e;this.screenSpaceEventHandler.removeInputAction(xn.LEFT_CLICK),this.screenSpaceEventHandler.removeInputAction(xn.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(),u(this._geocoder)&&(this._geocoder=this._geocoder.destroy()),u(this._homeButton)&&(this._homeButton=this._homeButton.destroy()),u(this._sceneModePicker)&&(this._sceneModePicker=this._sceneModePicker.destroy()),u(this._projectionPicker)&&(this._projectionPicker=this._projectionPicker.destroy()),u(this._baseLayerPicker)&&(this._baseLayerPicker=this._baseLayerPicker.destroy()),u(this._animation)&&(this._element.removeChild(this._animation.container),this._animation=this._animation.destroy()),u(this._timeline)&&(this._timeline.removeEventListener("settime",Qbe,!1),this._element.removeChild(this._timeline.container),this._timeline=this._timeline.destroy()),u(this._fullscreenButton)&&(this._fullscreenSubscription.dispose(),this._element.removeChild(this._fullscreenButton.container),this._fullscreenButton=this._fullscreenButton.destroy()),u(this._vrButton)&&(this._vrSubscription.dispose(),this._vrModeSubscription.dispose(),this._element.removeChild(this._vrButton.container),this._vrButton=this._vrButton.destroy()),u(this._infoBox)&&(this._element.removeChild(this._infoBox.container),this._infoBox=this._infoBox.destroy()),u(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()),le(this)};Li.prototype._dataSourceAdded=function(e,t){t.entities.collectionChanged.addEventListener(Li.prototype._onEntityCollectionChanged,this)};Li.prototype._dataSourceRemoved=function(e,t){let n=t.entities;n.collectionChanged.removeEventListener(Li.prototype._onEntityCollectionChanged,this),u(this.trackedEntity)&&n.getById(this.trackedEntity.id)===this.trackedEntity&&(this.trackedEntity=void 0),u(this.selectedEntity)&&n.getById(this.selectedEntity.id)===this.selectedEntity&&(this.selectedEntity=void 0)};Li.prototype._onTick=function(e){let t=e.currentTime,n=this._dataSourceDisplay.update(t);this._allowDataSourcesToSuspendAnimation&&(this._clockViewModel.canAnimate=n);let i=this._entityView;if(u(i)){let f=this._trackedEntity;this._dataSourceDisplay.getBoundingSphere(f,!1,_0)===ot.DONE&&i.update(t,_0)}let o,r=!1,s=this.selectedEntity,a=u(s)&&this._enableInfoOrSelection;a&&s.isShowing&&s.isAvailable(t)&&(this._dataSourceDisplay.getBoundingSphere(s,!0,_0)!==ot.FAILED?o=_0.center:u(s.position)&&(o=s.position.getValue(t,o)),r=u(o));let c=u(this._selectionIndicator)?this._selectionIndicator.viewModel:void 0;u(c)&&(c.position=h.clone(o,c.position),c.showSelection=a&&r,c.update());let l=u(this._infoBox)?this._infoBox.viewModel:void 0;u(l)&&(l.showInfo=a,l.enableCamera=r,l.isCameraTracking=this.trackedEntity===this.selectedEntity,a?(l.titleText=y(s.name,s.id),l.description=q.getValueOrDefault(s.description,t,"")):(l.titleText="",l.description=""))};Li.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)}};Li.prototype._onInfoBoxCameraClicked=function(e){if(e.isCameraTracking&&this.trackedEntity===this.selectedEntity)this.trackedEntity=void 0;else{let n=this.selectedEntity.position;u(n)?this.trackedEntity=this.selectedEntity:this.zoomTo(this.selectedEntity)}};Li.prototype._clearTrackedObject=function(){this.trackedEntity=void 0};Li.prototype._onInfoBoxClockClicked=function(e){this.selectedEntity=void 0};Li.prototype._clearObjects=function(){this.trackedEntity=void 0,this.selectedEntity=void 0};Li.prototype._onDataSourceChanged=function(e){this.clockTrackedDataSource===e&&Jbe(this.timeline,this.clock,e)};Li.prototype._onDataSourceAdded=function(e,t){this._automaticallyTrackDataSourceClocks&&(this.clockTrackedDataSource=t);let n=t.entities.id,i=this._eventHelper.add(t.changedEvent,Li.prototype._onDataSourceChanged,this);this._dataSourceChangedListeners[n]=i};Li.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}};Li.prototype.zoomTo=function(e,t){return eTe(this,e,{offset:t},!1)};Li.prototype.flyTo=function(e,t){return eTe(this,e,t,!0)};function eTe(e,t,n,i){qK(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 oa){let s;u(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 HT(a,e.scene)}).then(function(a){e._zoomPromise===o&&(e._zoomTarget=a)});return}if(r instanceof Zs||r instanceof jS||r instanceof KS){e._zoomTarget=r;return}if(r.isLoading&&u(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),u(r.entities)&&(r=r.entities.values),Array.isArray(r)?e._zoomTarget=r.slice(0):e._zoomTarget=[r]}}),e.scene.requestRender(),o}function l3(e){e._zoomPromise=void 0,e._zoomTarget=void 0,e._zoomOptions=void 0}function qK(e){let t=e._zoomPromise;u(t)&&(l3(e),e._completeZoom(!1))}Li.prototype._postRender=function(){Tbt(this),Abt(this)};function Tbt(e){let t=e._zoomTarget;if(!u(t)||e.scene.mode===te.MORPHING)return;let n=e.scene,i=n.camera,o=y(e._zoomOptions,{}),r;function s(f){u(o.offset)||(o.offset=new Bf(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)),l3(e)}if(t instanceof jS){if(u(t.boundingSphere)){s(t.boundingSphere);return}let f=t.frameChanged.addEventListener(function(d){s(d.boundingSphere),f()});return}if(t instanceof Zs||t instanceof KS){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)),l3(e);return}let a=t,c=[];for(let f=0,d=a.length;f<d;f++){let p=e._dataSourceDisplay.getBoundingSphere(a[f],!1,_0);if(p===ot.PENDING)return;p!==ot.FAILED&&c.push(se.clone(_0))}if(c.length===0){qK(e);return}e.trackedEntity=void 0;let l=se.fromBoundingSpheres(c);e._zoomIsFlight?(l3(e),i.flyToBoundingSphere(l,{duration:o.duration,maximumHeight:o.maximumHeight,complete:function(){e._completeZoom(!0)},cancel:function(){e._completeZoom(!1)},offset:o.offset})):(i.viewBoundingSphere(l,o.offset),i.lookAtTransform(F.IDENTITY),l3(e),e._completeZoom(!0))}function Abt(e){if(!e._needTrackedEntityUpdate)return;let t=e._trackedEntity,n=e.clock.currentTime,i=q.getValueOrUndefined(t.position,n);if(!u(i))return;let o=e.scene,r=e._dataSourceDisplay.getBoundingSphere(t,!1,_0);if(r===ot.PENDING)return;let s=o.mode;(s===te.COLUMBUS_VIEW||s===te.SCENE2D)&&(o.screenSpaceCameraController.enableTranslate=!1),(s===te.COLUMBUS_VIEW||s===te.SCENE3D)&&(o.screenSpaceCameraController.enableTilt=!1);let a=r!==ot.FAILED?_0:void 0;e._entityView=new AL(t,o,o.mapProjection.ellipsoid),e._entityView.update(n,a),e._needTrackedEntityUpdate=!1}var YK=Li;function Cbt(e){let t=document.createElement("div");t.className="cesium-viewer-cesium3DTilesInspectorContainer",e.container.appendChild(t);let n=new LB(t,e.scene);Object.defineProperties(e,{cesium3DTilesInspector:{get:function(){return n}}})}var XK=Cbt;function Ebt(e){let t=document.createElement("div");t.className="cesium-viewer-cesiumInspectorContainer",e.container.appendChild(t);let n=new BB(t,e.scene);Object.defineProperties(e,{cesiumInspector:{get:function(){return n}}})}var KK=Ebt;function Sbt(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=wn(s),Object.defineProperties(e,{dropTarget:{get:function(){return s},set:function(f){tTe(s,l),s=f,ZK(s,l)}},dropEnabled:{get:function(){return n},set:function(f){f!==n&&(f?ZK(s,l):tTe(s,l),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 l(f){qT(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=wbt(e,m,c,a),x.onerror=vbt(e,m),x.readAsText(m)}}ZK(s,l),e.destroy=wF(e,e.destroy,function(){e.dropEnabled=!1}),e._handleDrop=l}function qT(e){e.stopPropagation(),e.preventDefault()}function tTe(e,t){let n=e;u(n)&&(n.removeEventListener("drop",t,!1),n.removeEventListener("dragenter",qT,!1),n.removeEventListener("dragover",qT,!1),n.removeEventListener("dragexit",qT,!1))}function ZK(e,t){e.addEventListener("drop",t,!1),e.addEventListener("dragenter",qT,!1),e.addEventListener("dragover",qT,!1),e.addEventListener("dragexit",qT,!1)}function wbt(e,t,n,i){let o=e.scene;return function(r){let s=t.name;try{let a;if(/\.czml$/i.test(s))a=MM.load(JSON.parse(r.target.result),{sourceUri:s});else if(/\.geojson$/i.test(s)||/\.json$/i.test(s)||/\.topojson$/i.test(s))a=SL.load(JSON.parse(r.target.result),{sourceUri:s,clampToGround:i});else if(/\.(kml|kmz)$/i.test(s))a=qL.load(t,{sourceUri:s,proxy:n,camera:o.camera,canvas:o.canvas,clampToGround:i,screenOverlayContainer:e.container});else if(/\.gpx$/i.test(s))a=IL.load(t,{sourceUri:s,proxy:n});else{e.dropError.raiseEvent(e,s,`Unrecognized file: ${s}`);return}u(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 vbt(e,t){return function(n){e.dropError.raiseEvent(e,t.name,n.target.error)}}var $K=Sbt;function Dbt(e,t){t=y(t,y.EMPTY_OBJECT);let n=new KB({scene:e.scene,container:e.bottomContainer,lowFrameRateMessage:t.lowFrameRateMessage});Object.defineProperties(e,{performanceWatchdog:{get:function(){return n}}})}var QK=Dbt;function nTe(e){let t=e.split(`
  12784. `),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}
  12785. `}return i}function id(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]}),u(c)&&t._getPrimitiveFunctions.push(c);let l=Te.observable();return Te.defineProperty(t,r,{get:function(){return l()},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),l(f),u(a)&&u(t._voxelPrimitive)&&(a(f),e.requestRender())}}),t[r]=s,l}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=nTe(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===Wi.BOX}}),n({name:"shapeIsEllipsoid",getPrimitiveFunction:function(){let o=t._voxelPrimitive.shape;t.shapeIsEllipsoid=o===Wi.ELLIPSOID}}),n({name:"shapeIsCylinder",getPrimitiveFunction:function(){let o=t._voxelPrimitive.shape;t.shapeIsCylinder=o===Wi.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&&jm(t)},getPrimitiveFunction:function(){t.translationX=F.getTranslation(t._voxelPrimitive.modelMatrix,new h).x}}),n({name:"translationY",initialValue:0,setPrimitiveFunction:function(){t._modelMatrixReady&&jm(t)},getPrimitiveFunction:function(){t.translationY=F.getTranslation(t._voxelPrimitive.modelMatrix,new h).y}}),n({name:"translationZ",initialValue:0,setPrimitiveFunction:function(){t._modelMatrixReady&&jm(t)},getPrimitiveFunction:function(){t.translationZ=F.getTranslation(t._voxelPrimitive.modelMatrix,new h).z}}),n({name:"scaleX",initialValue:1,setPrimitiveFunction:function(){t._modelMatrixReady&&jm(t)},getPrimitiveFunction:function(){t.scaleX=F.getScale(t._voxelPrimitive.modelMatrix,new h).x}}),n({name:"scaleY",initialValue:1,setPrimitiveFunction:function(){t._modelMatrixReady&&jm(t)},getPrimitiveFunction:function(){t.scaleY=F.getScale(t._voxelPrimitive.modelMatrix,new h).y}}),n({name:"scaleZ",initialValue:1,setPrimitiveFunction:function(){t._modelMatrixReady&&jm(t)},getPrimitiveFunction:function(){t.scaleZ=F.getScale(t._voxelPrimitive.modelMatrix,new h).z}}),n({name:"angleX",initialValue:0,setPrimitiveFunction:function(){t._modelMatrixReady&&jm(t)}}),n({name:"angleY",initialValue:0,setPrimitiveFunction:function(){t._modelMatrixReady&&jm(t)}}),n({name:"angleZ",initialValue:0,setPrimitiveFunction:function(){t._modelMatrixReady&&jm(t)}})}var Ibt=new h,Pbt=new h,Obt=new za,Rbt=new Q;function jm(e){let t=h.fromElements(e.translationX,e.translationY,e.translationZ,Ibt),n=h.fromElements(e.scaleX,e.scaleY,e.scaleZ,Pbt),i=Obt;i.heading=e.angleX,i.pitch=e.angleY,i.roll=e.angleZ;let o=Q.fromHeadingPitchRoll(i,Rbt),r=Q.multiplyByScale(o,n,o);e._voxelPrimitive.modelMatrix=F.fromRotationTranslation(r,t,e._voxelPrimitive.modelMatrix)}Object.defineProperties(id.prototype,{scene:{get:function(){return this._scene}},voxelPrimitive:{get:function(){return this._voxelPrimitive},set:function(e){if(u(this._customShaderCompilationRemoveCallback)&&this._customShaderCompilationRemoveCallback(),u(e)){this._voxelPrimitive=e;let t=this;t._customShaderCompilationRemoveCallback=t._voxelPrimitive.customShaderCompilationEvent.addEventListener(function(n){let i=t._voxelPrimitive.customShader.fragmentShaderText;t.shaderString=nTe(i),u(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,jm(t)}}}});id.prototype.toggleInspector=function(){this.inspectorVisible=!this.inspectorVisible};id.prototype.toggleDisplay=function(){this.displayVisible=!this.displayVisible};id.prototype.toggleTransform=function(){this.transformVisible=!this.transformVisible};id.prototype.toggleBounds=function(){this.boundsVisible=!this.boundsVisible};id.prototype.toggleClipping=function(){this.clippingVisible=!this.clippingVisible};id.prototype.toggleShader=function(){this.shaderVisible=!this.shaderVisible};id.prototype.compileShader=function(){u(this._voxelPrimitive)&&(this._voxelPrimitive.customShader=new VT({fragmentShaderText:this.shaderString,uniforms:this._voxelPrimitive.customShader.uniforms}))};id.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(`
  12786. `),c=a.length,l;if(t.shiftKey)for(l=0;l<c;++l)a[l][0]===" "&&(a[l][1]===" "?(a[l]=a[l].substr(2),r-=2):(a[l]=a[l].substr(1),r-=1));else for(l=0;l<c;++l)a[l]=` ${a[l]}`,r+=2;let f=a.join(`
  12787. `);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};id.prototype.isDestroyed=function(){return!1};id.prototype.destroy=function(){let e=this;return this._definedProperties.forEach(function(t){Te.getObservable(e,t).dispose()}),le(this)};var u3=id;function hH(e,t){e=wn(e);let n=document.createElement("div"),i=new u3(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=Oa.createSection,a=Oa.createCheckbox,c=Oa.createRangeInput,l=Oa.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=P.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 A=Wi.getMinBounds(Wi.BOX),C=Wi.getMaxBounds(Wi.BOX),S=h.fromElements(Wi.getMinBounds(Wi.ELLIPSOID).x,Wi.getMinBounds(Wi.ELLIPSOID).y,-ie.WGS84.maximumRadius,new h),w=h.fromElements(Wi.getMaxBounds(Wi.ELLIPSOID).x,Wi.getMaxBounds(Wi.ELLIPSOID).y,1e7,new h),D=Wi.getMinBounds(Wi.CYLINDER),O=Wi.getMaxBounds(Wi.CYLINDER);QS("Max X","Min X","Max Y","Min Y","Max Z","Min Z","boundsBoxMaxX","boundsBoxMinX","boundsBoxMaxY","boundsBoxMinY","boundsBoxMaxZ","boundsBoxMinZ",A,C,"shapeIsBox",p),QS("Max Longitude","Min Longitude","Max Latitude","Min Latitude","Max Height","Min Height","boundsEllipsoidMaxLongitude","boundsEllipsoidMinLongitude","boundsEllipsoidMaxLatitude","boundsEllipsoidMinLatitude","boundsEllipsoidMaxHeight","boundsEllipsoidMinHeight",S,w,"shapeIsEllipsoid",p),QS("Max Radius","Min Radius","Max Height","Min Height","Max Angle","Min Angle","boundsCylinderMaxRadius","boundsCylinderMinRadius","boundsCylinderMaxHeight","boundsCylinderMinHeight","boundsCylinderMaxAngle","boundsCylinderMinAngle",D,O,"shapeIsCylinder",p),QS("Max X","Min X","Max Y","Min Y","Max Z","Min Z","clippingBoxMaxX","clippingBoxMinX","clippingBoxMaxY","clippingBoxMinY","clippingBoxMaxZ","clippingBoxMinZ",A,C,"shapeIsBox",g),QS("Max Longitude","Min Longitude","Max Latitude","Min Latitude","Max Height","Min Height","clippingEllipsoidMaxLongitude","clippingEllipsoidMinLongitude","clippingEllipsoidMaxLatitude","clippingEllipsoidMinLatitude","clippingEllipsoidMaxHeight","clippingEllipsoidMinHeight",S,w,"shapeIsEllipsoid",g),QS("Max Radius","Min Radius","Max Height","Min Height","Max Angle","Min Angle","clippingCylinderMaxRadius","clippingCylinderMinRadius","clippingCylinderMaxHeight","clippingCylinderMinHeight","clippingCylinderMaxAngle","clippingCylinderMinAngle",D,O,"shapeIsCylinder",g);let R=document.createElement("div");m.appendChild(R);let L=document.createElement("textarea");L.setAttribute("data-bind","textInput: shaderString, event: { keydown: shaderEditorKeyPress }"),R.className="cesium-cesiumInspector-styleEditor",R.appendChild(L);let N=l("Compile (Ctrl+Enter)","compileShader");R.appendChild(N);let _=document.createElement("label");_.style.display="block",_.setAttribute("data-bind","text: shaderCompilationMessage, style: {color: shaderCompilationSuccess ? 'green' : 'red'}"),R.appendChild(_),Te.applyBindings(i,n)}Object.defineProperties(hH.prototype,{container:{get:function(){return this._container}},viewModel:{get:function(){return this._viewModel}}});hH.prototype.isDestroyed=function(){return!1};hH.prototype.destroy=function(){return Te.cleanNode(this._element),this._container.removeChild(this._element),this.viewModel.destroy(),le(this)};function QS(e,t,n,i,o,r,s,a,c,l,f,d,p,g,m,x){let b=Oa.createRangeInput,T=p,A=g,C=x.appendChild(document.createElement("div"));C.setAttribute("data-bind",`if: ${m}`),C.appendChild(b(e,s,T.x,A.x)),C.appendChild(b(t,a,T.x,A.x)),C.appendChild(b(n,c,T.y,A.y)),C.appendChild(b(i,l,T.y,A.y)),C.appendChild(b(o,f,T.z,A.z)),C.appendChild(b(r,d,T.z,A.z))}var f3=hH;function Mbt(e){let t=document.createElement("div");t.className="cesium-viewer-voxelInspectorContainer",e.container.appendChild(t);let n=new f3(t,e.scene);Object.defineProperties(e,{voxelInspector:{get:function(){return n}}})}var JK=Mbt;globalThis.CESIUM_VERSION="1.110.1";var Lbt="1.110.1";0&&(module.exports={AlphaMode,AlphaPipelineStage,Animation,AnimationViewModel,Appearance,ApproximateTerrainHeights,ArcGISTiledElevationTerrainProvider,ArcGisBaseMapType,ArcGisMapServerImageryProvider,ArcGisMapService,ArcType,ArticulationStageType,AssociativeArray,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,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,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,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,I3SDataProvider,I3SDecoder,I3SFeature,I3SField,I3SGeometry,I3SLayer,I3SNode,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,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,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,TerrainExaggeration,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,VerticalOrigin,VideoSynchronizer,View,Viewer,ViewportQuad,Visibility,Visualizer,VoxelBoxShape,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,_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,_shadersIntersection,_shadersIntersectionUtils,_shadersLegacyInstancingStageVS,_shadersLensFlare,_shadersLightingStageFS,_shadersMaterialStageFS,_shadersMegatexture,_shadersMetadataStageFS,_shadersMetadataStageVS,_shadersModelClippingPlanesStageFS,_shadersModelColorStageFS,_shadersModelFS,_shadersModelSilhouetteStageFS,_shadersModelSilhouetteStageVS,_shadersModelSplitterStageFS,_shadersModelVS,_shadersModifiedReinhardTonemapping,_shadersMorphTargetsStageVS,_shadersNightVision,_shadersNormalMapMaterial,_shadersOctahedralProjectionAtlasFS,_shadersOctahedralProjectionFS,_shadersOctahedralProjectionVS,_shadersOctree,_shadersPassThrough,_shadersPassThroughDepth,_shadersPerInstanceColorAppearanceFS,_shadersPerInstanceColorAppearanceVS,_shadersPerInstanceFlatColorAppearanceFS,_shadersPerInstanceFlatColorAppearanceVS,_shadersPointCloudEyeDomeLighting,_shadersPointCloudStylingStageVS,_shadersPointPrimitiveCollectionFS,_shadersPointPrimitiveCollectionVS,_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,_shadersViewportQuadFS,_shadersViewportQuadVS,_shadersVoxelFS,_shadersVoxelVS,_shadersWater,_shadersXYZToRGB,_shadersacesTonemapping,_shadersalphaWeight,_shadersantialias,_shadersapproximateSphericalCoordinates,_shadersbackFacing,_shadersbranchFreeTernary,_shaderscascadeColor,_shaderscascadeDistance,_shaderscascadeMatrix,_shaderscascadeWeights,_shaderscolumbusViewMorph,_shaderscomputePosition,_shadersconvertUvToBox,_shadersconvertUvToCylinder,_shadersconvertUvToEllipsoid,_shaderscosineAndSine,_shadersdecompressTextureCoordinates,_shadersdefaultPbrMaterial,_shadersdegreesPerRadian,_shadersdepthClamp,_shadersdepthRange,_shadersdepthRangeStruct,_shaderseastNorthUpToEyeCoordinates,_shadersellipsoidContainsPoint,_shadersellipsoidWgs84TextureCoordinates,_shadersepsilon1,_shadersepsilon2,_shadersepsilon3,_shadersepsilon4,_shadersepsilon5,_shadersepsilon6,_shadersepsilon7,_shadersequalsEpsilon,_shaderseyeOffset,_shaderseyeToWindowCoordinates,_shadersfastApproximateAtan,_shadersfog,_shadersgammaCorrect,_shadersgeodeticSurfaceNormal,_shadersgetDefaultMaterial,_shadersgetLambertDiffuse,_shadersgetSpecular,_shadersgetWaterNoise,_shadershue,_shadersinfinity,_shadersinverseGamma,_shadersisEmpty,_shadersisFull,_shaderslatitudeToWebMercatorFraction,_shaderslineDistance,_shaderslinearToSrgb,_shadersluminance,_shadersmaterial,_shadersmaterialInput,_shadersmetersPerPixel,_shadersmodelMaterial,_shadersmodelToWindowCoordinates,_shadersmodelVertexOutput,_shadersmultiplyWithColorBalance,_shadersnearFarScalar,_shadersoctDecode,_shadersoneOverPi,_shadersoneOverTwoPi,_shaderspackDepth,_shaderspassCesium3DTile,_shaderspassCesium3DTileClassification,_shaderspassCesium3DTileClassificationIgnoreShow,_shaderspassClassification,_shaderspassCompute,_shaderspassEnvironment,_shaderspassGlobe,_shaderspassOpaque,_shaderspassOverlay,_shaderspassTerrainClassification,_shaderspassTranslucent,_shaderspassVoxels,_shaderspbrLighting,_shaderspbrMetallicRoughnessMaterial,_shaderspbrParameters,_shaderspbrSpecularGlossinessMaterial,_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,_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,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,pointInsideTriangle,preprocess3DTileContent,processVoxelProperties,queryToObject,readAccessorPacked,removeExtension,removeExtensionsRequired,removeExtensionsUsed,removePipelineExtras,removeUnusedElements,resizeImageToNextPowerOfTwo,sampleTerrain,sampleTerrainMostDetailed,scaleToGeodeticSurface,subdivideArray,subscribeAndEvaluate,updateAccessorComponentTypes,updateVersion,usesExtension,viewerCesium3DTilesInspectorMixin,viewerCesiumInspectorMixin,viewerDragDropMixin,viewerPerformanceWatchdogMixin,viewerVoxelInspectorMixin,webGLConstantToGlslType,wrapFunction,writeTextToCanvas});