UNPKG

three-virtual-geometry

Version:

Virtual geometry for three.js WebGPU: automatic cluster LOD and GPU-driven culling for billions of triangles. Independent implementation, not affiliated with Epic Games.

8 lines • 243 kB
/**
 * three-virtual-geometry 0.1.3 | MIT License | https://github.com/elad12390/three-virtual-geometry
 * Independent open-source implementation of virtual geometry; not affiliated with or endorsed by Epic Games.
 * Includes meshoptimizer (MIT, Arseny Kapoulkine). Parts derived from nanite-webgpu (MIT, Marcin Matuszczyk).
 */
var db=(function(){var c="b9H79Tebbbe9ok9Geueu9Geub9Gbb9Gruuuuuuueu9Gvuuuuueu9Gduueu9Gluuuueu9Gvuuuuub9Gouuuuuub9Gluuuub9GiuuueuiE8AdilveoveovrrwrrrDDoDrbqqbelve9Weiiviebeoweuecj:Gdkr:PlCo9TW9T9VV95dbH9F9F939H79T9F9J9H229F9Jt9VV7bb8F9TW79O9V9Wt9FW9U9J9V9KW9wWVtW949c919M9MWV9mW4W2be8A9TW79O9V9Wt9FW9U9J9V9KW9wWVtW949c919M9MWVbd8F9TW79O9V9Wt9FW9U9J9V9KW9wWVtW949c919M9MWV9c9V919U9KbiE9TW79O9V9Wt9FW9U9J9V9KW9wWVtW949wWV79P9V9UblY9TW79O9V9Wt9FW9U9J9V9KW69U9KW949c919M9MWVbv8E9TW79O9V9Wt9FW9U9J9V9KW69U9KW949c919M9MWV9c9V919U9Kbo8A9TW79O9V9Wt9FW9U9J9V9KW69U9KW949wWV79P9V9UbrE9TW79O9V9Wt9FW9U9J9V9KW69U9KW949tWG91W9U9JWbwa9TW79O9V9Wt9FW9U9J9V9KW69U9KW949tWG91W9U9JW9c9V919U9KbDL9TW79O9V9Wt9FW9U9J9V9KWS9P2tWV9p9JtbqK9TW79O9V9Wt9FW9U9J9V9KWS9P2tWV9r919HtbkL9TW79O9V9Wt9FW9U9J9V9KWS9P2tWVT949WbxY9TW79O9V9Wt9FW9U9J9V9KWS9P2tWVJ9V29VVbmE9TW79O9V9Wt9F9V9Wt9P9T9P96W9wWVtW94J9H9J9OWbza9TW79O9V9Wt9F9V9Wt9P9T9P96W9wWVtW94J9H9J9OW9ttV9P9WbHa9TW79O9V9Wt9F9V9Wt9P9T9P96W9wWVtW94SWt9J9O9sW9T9H9WbOK9TW79O9V9Wt9F79W9Ht9P9H29t9VVt9sW9T9H9WbAl79IV9RbXDwebcekdKYq:Nf8Adbk;wadhud9:8Jjjjjbc;qw9Rgr8KjjjjbcbhwdnaeTmbabcbyd;i:I:cjbaoaocb9iEgDc:GeV86bbarc;adfcbcjdz:xjjjb8AdnaiTmbarc;adfadalz:wjjjb8Akarc;abfalfcbcbcjdal9RalcFe0Ez:xjjjb8Aarc;abfarc;adfalz:wjjjb8Aar9cb83iUar9cb83i8War9cb83iyar9cb83iaar9cb83iKar9cb83izar9cb83iwar9cb83ibcj;abal9Uc;WFbGcjdalca0Ehqdnaicd6mbavcd9imbaDTmbadcefhkaqci2gxal2hmarc;alfclfhParc;qlfceVhsarc;qofclVhzcbhHincdhOcbhAdnavci6mbar9cb83i;Ooar9cb83i;Goar9cb83i;yoar9cb83i;qoadaHfgoybbhCcbhXincbhwcbhQdninaoalfhLaoybbgKaC7aQVhQawcP0meaLhoaKhCawcefgwaXfai6mbkkcbhCarc;qofhwincwhYcwh8AdnaQaC93gocFeGgEcs0mbclh8AaEci0mbcdcbaEEh8Akdnaocw4cFeGgEcs0mbclhYaEci0mbcdcbaEEhYkaYa8AfhEawydbh3cwhYcwh8Adnaocz4cFeGg5cs0mbclh8Aa5ci0mbcdcba5Eh8AkaEa3fhEdnaocFFFFb0mbclhYaocFFF8F0mbcbcdaocjjjw6EhYkawaEa8AfaYfBdbawclfhwaCcefgCcw9hmbkaLhoaKhCaXczfgXai6mbkcbhocehwazhQinawaoaQydbarc;qofaocdtfydb6EhoaQclfhQawcefgwcw9hmbkaoclthAcihOkcbhEarc;qlfcbcjdz:xjjjb8AarcbBd;ilar9cb83i;aladh8Eaqh8Fakh3inarc;qlfadaEaEcb9h9Ral2falz:wjjjb8Aaia8Faia8F6EhadnaqaiaE9RaEaqfai6EgKcsfc9WGgoaK9nmbarc;qofaKfcbaoaK9Rz:xjjjb8AkadaEal2fhhcbhginagaAVcl4hXarc;alfagcdtfh8JaHh8Kcbh8Lina8LaHfhwdndndndndndndnagPlbedibkaKTmvahawfhoarc;qlfawfRbbhQarc;qofhwaahCinawaoRbbgYaQ9RgQcetaQcKtc8F91786bbawcefhwaoalfhoaYhQaEaCcufgC9hmbxvkkaKTmla8Kc9:Ghoa8LcitcwGh8Aarc;qlfawceVfRbbcwtarc;qlfawc9:GfRbbVhQarc;qofhwaahCinawa3aofRbbcwta8EaofRbbVgYaQ9RgQcetaQcztc8F917cFFiGa8A486bbaoalfhoawcefhwaYhQaEaCcufgC9hmbxlkkasa8Kc98GgQfhoa3aQfhYarc;qlfawc98GgQfRbbhCcwhwinaoRbbawtaCVhCaocefhoawcwfgwca9hmbxdkkaKTmdxekaKTmea8Lcith5ahaQfh8AcbhLina8ARbbhQcwhoaYhwinawRbbaotaQVhQawcefhwaocwfgoca9hmbkarc;qofaLfaQaC7aX93a5486bbaYalfhYa8Aalfh8AaQhCaLcefgLaK9hmbkka8Jydbh8AcbhLarc;qofhoincdhQcbhwinaQaoawfRbbcb9hfhQawcefgwcz9hmbkclhCcbhwinaCaoawfRbbcd0fhCawcefgwcz9hmbkcwhYcbhwinaYaoawfRbbcP0fhYawcefgwcz9hmbkaQaCaQaC6EgwaYawaY6Egwczawcz6Ea8Afh8AaoczfhoaLczfgLaK6mbka8Ja8ABdbka8Kcefh8Ka8Lcefg8Lcl9hmbkagcefggaO9hmbka8Eamfh8Ea8Faxfh8Fa3amfh3aEaxfgEai6mbkcbhocehwaPhQinawaoaQydbarc;alfaocdtfydb6EhoaQclfhQaOawcefgw9hmbkaraHcd4faAcdVaoaocdSE86bbaHclfgHal6mbkkabaefhgabcefhoalcd4g8McbaDEhkadcefh8Narc;abfceVhecbhmdndninaiam9nmearc;qofcbcjdz:xjjjb8Aagao9Rak6mdadamal2gwfhxcbhHa8Nawfhzaocbakz:xjjjbg8Fakfh3aqaiam9Ramaqfai6Egscsfgocl4cifcd4hOaoc9WGg8JThPindndndndndndndndndndnaDTmbaraHcd4fRbbgQciGPlbedlbkasTmdaxaHfhoarc;abfaHfRbbhQarc;qofhwashCinawaoRbbgYaQ9RgQcetaQcKtc8F91786bbawcefhwaoalfhoaYhQaCcufgCmbxikkasTmiaHcitcwGh8Aarc;abfaHceVfRbbcwtarc;abfaHc9:GgofRbbVhQaxaofhoarc;qofhwashCinawao8VbbgYaQ9RgQcetaQcztc8F917cFFiGa8A486bbawcefhwaoalfhoaYhQaCcufgCmbxikkaeaHc98Gg8Afhoaza8AfhYarc;abfa8AfRbbhCcwhwinaoRbbawtaCVhCaocefhoawcwfgwca9hmbkasTmdaQcl4hKaHcitcKGhEaxa8Afh8AcbhLina8ARbbhQcwhoaYhwinawRbbaotaQVhQawcefhwaocwfgoca9hmbkarc;qofaLfaQaC7aK93aE486bbaYalfhYa8Aalfh8AaQhCaLcefgLas9hmbkkaDmbcbhoxlka8JTmbcbhodninarc;qofaofgwcwf8Pibaw8Pib:e9qTmeaoczfgoa8J9pmdxbkkdnavmbcehoxikcbh8AaOhLaOhKinarc;qofa8Afgocwf8Pibhyao8Pibh8PcdhQcbhwinaQaoawfRbbcb9hfhQawcefgwcz9hmbkclhCcbhwinaCaoawfRbbcd0fhCawcefgwcz9hmbkcwhYcbhwinaYaoawfRbbcP0fhYawcefgwcz9hmbkaQaCaQaC6EgoaYaoaY6Egoczaocz6EaKfhKaocucbaya8P:e9cb9sEgwaoaw6EaLfhLa8Aczfg8Aa8J9pmdxbkka8FaHcd4fgoaoRbbcdaHcetcoGtV86bbxikdnaLas6mbaKas6mba8FaHcd4fgoaoRbbciaHcetcoGtV86bbaga39Ras6mra3arc;qofasz:wjjjbasfh3xikaLaK9phoka8FaHcd4fgwawRbbaoaHcetcoGtV86bbkaga39RaO6mla3cbaOz:xjjjbgaaOfhKdndna8JmbaPhoxekdnagaK9RcK9pmbaPhoxekaocdtc:q:G:cjbfcj:G:cjbaDEg3ydxghcetc;:FFFeGhAcuhEcuahtcu7cFeGh8Ecbh8Karc;qofhQinarc;qofa8KfhXczh8AdndndnahPDbeeeeeeedekcucbaXcwf8PibaX8Pib:e9cb9sEh8AxekcbhoaAh8Aina8Aa8EaQaofRbb9nfh8Aaocefgocz9hmbkkcih5cbhYinczhwdndndna3aYcdtfydbgLPDbeeeeeeedekcucbaXcwf8PibaX8Pib:e9cb9sEhwxekaLcetc;:FFFeGhwcuaLtcu7cFeGhCcbhoinawaCaQaofRbb9nfhwaocefgocz9hmbkkdndnawa8A6mbaLaE9hmeawa8A9hmea3a5cdtfydbcwSmekaYh5awh8AkaYcefgYci9hmbkaaa8Kco4fgoaoRbba5a8Kci4coGtV86bbdndndna3a5cdtfydbgEPDdbbbbbbbebkdncwaE9Tg5TmbcuaEtcu7hwdndnaEceSmbcbh8LaQhXinaXhoa5hYcbhCinaoRbbg8AawcFeGgLa8AaL6EaCaEtVhCaocefhoaYcufgYmbkaKaC86bbaXa5fhXaKcefhKa8La5fg8Lcz6mbxdkkcbh8LaQhXinaXhoa5hYcbhCinaoRbbg8AawcFeGgLa8AaL6EaCcetVhCaocefhoaYcufgYmbkaKaC:T9cFe:d9c:c:qj:bw9:9c:q;c1:I1e:d9c:b:c:e1z9:9ca188bbaXa5fhXaKcefhKa8La5fg8Lcz6mbkkcbhoinaKaQaofRbbgC86bbaKaCawcFeG9pfhKaocefgocz9hmbxikkdnaEceSmbinaKcb86bbaKcefhKxbkkinaKcb86bbaKcefhKxbkkaKaX8Pbw83bwaKaX8Pbb83bbaKczfhKka8Kczfg8Ka8J9pgomeaQczfhQagaK9RcK9pmbkkaoTmlaKh3aKTmlkaHcefgHal9hmbkarc;abfaxascufal2falz:wjjjb8Aasamfhma3hoa3mbkcbhwxdkdnagao9RakalfgwcKcaaDEgQawaQ0EgC9pmbcbhwxdkdnawaQ9pmbaocbaCaw9Rgwz:xjjjbawfhokaoarc;adfalz:wjjjbalfhodnaDTmbaoara8Mz:wjjjba8Mfhokaoab9Rhwxekcbhwkarc;qwf8Kjjjjbawk5babaeadaialcdcbyd;i:I:cjbz:bjjjbk9reduaecd4gdaefgicaaica0Ecj;abae9Uc;WFbGcjdaeca0Egicl4cifcd4aifae2adfabaifcufai9U2fcefkmbcbabBd;i:I:cjbk;HPeLu8Jjjjjbc;ae9Rgl8Kjjjjbcbhvdnaeaici9UgocHf6mbabcbyd;m:I:cjbgrc;GeV86bbalc;abfcFecjez:xjjjb8Aal9cu83iUal9cu83i8Wal9cu83iyal9cu83iaal9cu83iKal9cu83izal9cu83iwal9cu83ibabaefc9WfhwabcefgDaofhednaiTmbcmcsarcb9kgqEhkcbhxcbhmcbhPcbhscbhzindnaeaw9nmbcbhvxikazcufhvadaPcdtfgHydbhOaHcwfydbhAaHclfydbhCcbhXdndndninalc;abfavcsGcitfgoydlhQdndndnaoydbgoaO9hmbaQaCSmekdnaoaC9hmbaQaA9hmbaXcefhXxekaoaA9hmeaQaO9hmeaXcdfhXkaXc870mdascufhvaHaXcdtgAcxGgoyd:4:G:cjbcdtfydbhQaHaoyd:0:G:cjbcdtfydbhCaHaoyd:W:G:cjbcdtfydbhOcbhodnindnalavcsGcdtfydbaQ9hmbaohXxdkcuhXavcufhvaocefgocz9hmbkkaxaQaxSgvaXce9iaXak9oVgoGfhxdndndncbcsavEaXaoEgvcs9hmbarce9imbaQaQamaQcefamSgvEgmcefSmecmcsavEhvkaDavaAc;WeGV86bbavcs9hmeaQam9Rgvcetavc8F917hvinaecbcjeavcje6EavcFbGV86bbaecefheavcr4gvmbkaQhmxvkcPhvaDaAcPV86bbaQhmkavTmiavak9omicdhocehXazhAxlkavcufhvaXclfgXc;ab9hmbkkdnaHcecdcbaAaxSEaCaxSEcdtgvyd:W:G:cjbcdtfydbgOTaHavyd:0:G:cjbcdtfydbgCceSGaHavyd:4:G:cjbcdtfydbgQcdSGaxcb9hGaqGgLce9hmbal9cu83iUal9cu83i8Wal9cu83iyal9cu83iaal9cu83iKal9cu83izal9cu83iwal9cu83ibcbhxkcbhXascufgvhodnindnalaocsGcdtfydbaC9hmbaXhAxdkcuhAaocufhoaXcefgXcz9hmbkkcbhodnindnalavcsGcdtfydbaQ9hmbaohXxdkcuhXavcufhvaocefgocz9hmbkkaxaOaxSgKfhHdndnaAcm0mbaAcefhAxekcbcsaCaHSgvEhAaHavfhHkdndnaXcm0mbaXcefhXxekcbcsaQaHSgvEhXaHavfhHkc9:cuaKEhYcbhvaXaAcltVg8AcFeGhodndndninavc;q:G:cjbfRbbaoSmeavcefgvcz9hmbxdkkaLaOax9havcm0VVmbaDavc;WeV86bbxekaDaY86bbaea8A86bbaecefhekdnaKmbaOam9Rgvcetavc8F917hvinaecbcjeavcje6EavcFbGV86bbaecefheavcr4gvmbkaOhmkdnaAcs9hmbaCam9Rgvcetavc8F917hvinaecbcjeavcje6EavcFbGV86bbaecefheavcr4gvmbkaChmkdnaXcs9hmbaQam9Rgvcetavc8F917hvinaecbcjeavcje6EavcFbGV86bbaecefheavcr4gvmbkaQhmkalascdtfaOBdbascefcsGhvdndnaAPzbeeeeeeeeeeeeeebekalavcdtfaCBdbascdfcsGhvkdndnaXPzbeeeeeeeeeeeeeebekalavcdtfaQBdbavcefcsGhvkcihoalc;abfazcitfgXaOBdlaXaCBdbazcefcsGhAcdhXavhsaHhxxekcdhoalascdtfaQBdbcehXascefcsGhsazhAkalc;abfaAcitfgvaCBdlavaQBdbalc;abfazaXfcsGcitfgvaQBdlavaOBdbaDcefhDazaofcsGhzaPcifgPai6mbkkdnaeaw9nmbcbhvxekcbhvinaeavfavc;q:G:cjbfRbb86bbavcefgvcz9hmbkaeab9Ravfhvkalc;aef8KjjjjbavkZeeucbhddninadcefgdc8F0meaeceadt0mbkkadcrfcFeGcr9Uci2cdfabci9U2cHfkmbcbabBd;m:I:cjbk:zderu8Jjjjjbcz9Rhlcbhvdnaeaicvf6mbabcbRb;m:I:cjbc;qeV86bbal9cb83iwabcefhvabaefc98fhodnaiTmbcbhecbhrcbhwindnavao6mbcbskadawcdtfydbgDalcwfaraDae9Rgeaec8F91ge7ae9Rc507grcdtfgqydb9Rgec8E91c9:Gaecdt7arVheinavcbcjeaecje6EaecFbGV86bbavcefhvaecr4gembkaqaDBdbaDheawcefgwai9hmbkkdnavao9nmbcbskavcbBbbavab9RclfhvkavkBeeucbhddninadcefgdc8F0meaeceadt0mbkkabadcwfcFeGcr9U2cvfk:dvli99dui99ludnaeTmbcuadcetcuftcu7:Zhvdndncuaicuftcu7:ZgoJbbbZMgr: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:Ohsxekcjjjj94hskdndnadcl9hmbabaDfgzas86bbazcifam86bbazcdfaw86bbazcefaP86bbxekabaifgzas87ebazcofam87ebazclfaw87ebazcdfaP87ebkaicwfhiaDclfhDalczfhlaecufgembkkk;hlld99eud99eudnaeTmbdndncuaicuftcu7:ZgvJbbbZMgo:lJbbb9p9DTmbao:Ohixekcjjjj94hikaic;8FiGhrinabcofcicdalclfIdb:lalIdb:l9EgialcwfIdb:lalaicdtfIdb:l9EEgialcxfIdb:lalaicdtfIdb:l9EEgiarV87ebdndnJbbj:;JbbjZalaicdtfIdbJbbbb9DEgoalaicd7cdtfIdbJ;Zl:1ZNNgwJbbj:;awJbbj:;9GEgDJbbjZaDJbbjZ9FEavNJbbbZJbbb:;awJbbbb9GEMgw:lJbbb9p9DTmbaw:Ohqxekcjjjj94hqkabcdfaq87ebdndnalaicefciGcdtfIdbJ;Zl:1ZNaoNgwJbbj:;awJbbj:;9GEgDJbbjZaDJbbjZ9FEavNJbbbZJbbb:;awJbbbb9GEMgw:lJbbb9p9DTmbaw:Ohqxekcjjjj94hqkabaq87ebdndnaoalaicufciGcdtfIdbJ;Zl:1ZNNgoJbbj:;aoJbbj:;9GEgwJbbjZawJbbjZ9FEavNJbbbZJbbb:;aoJbbbb9GEMgo:lJbbb9p9DTmbao:Ohixekcjjjj94hikabclfai87ebabcwfhbalczfhlaecufgembkkk;uvdDue998Jjjjjbcjd9Rgo8Kjjjjbdndndnadcd4grTmbc:CucbavEhwaohdarhDinadawBdbadclfhdaDcufgDmbkavcd9hmbaeTmbarcdthqcbhkalhxinaohdaxhDarhwinadadydbgmaDydbcL4cFeGc:cufgPamaP9kEBdbaDclfhDadclfhdawcufgwmbkaxaqfhxakcefgkae9hmbxdkkaeTmekarcdthxavce9hhqcbhkindndndnaqmbarTmdc:CuhwalhdarhDinawadydbcL4cFeGc:cufgmawam9kEhwadclfhdaDcufgDmbxdkkdndndndnavPleddbdkarTmlaohdalhDarhwinadcbaDydbcL4cFeGgmc:cufgPaPam0EBdbadclfhdaDclfhDawcufgwmbxikkarTmicbhdarhDindnaladfIdbgsJbbbb9Bmbaoadfas:8cL4cFeGgwc8Aawc8A0Ec:cufBdbkadclfhdaDcufgDmbxdkkarTmdkc:CuhwkcbhdarhminawhDdnavceSmbaoadfydbhDkdndnaladfIdbgscjjj;8iaDai9RcefgPcLt9R::NJbbbZJbbb:;asJbbbb9GEMgs:lJbbb9p9DTmbas:OhDxekcjjjj94hDkabadfaDcFFFiaDcFFFi9iEcFFFrGaPcKtVBdbadclfhdamcufgmmbkkabaxfhbalaxfhlakcefgkae9hmbkkaocjdf8Kjjjjbk:Olveue99iue99iudnaeTmbceaicufthvcuaitcu7:Zhocbhradcl9hhwcbhDindndnalcwfIdbgqJbbbbaqJbbbb9GEgqJbbjZaqJbbjZ9FEaoNJbbbZMgq:lJbbb9p9DTmbaq:Ohixekcjjjj94hikdndnalIdbgqJbbbbaqJbbbb9GEgqJbbjZaqJbbjZ9FEaoNJbbbZMgq:lJbbb9p9DTmbaq:Ohdxekcjjjj94hdkadai9Rcd9TgkaifhidndnalclfIdbgqJbbbbaqJbbbb9GEgqJbbjZaqJbbjZ9FEaoNJbbbZMgq:lJbbb9p9DTmbaq:Ohdxekcjjjj94hdkadai9Rcd9ThddndnalcxfIdbgqJbbbbaqJbbbb9GEgqJbbjZaqJbbjZ9FEaoNJbbbZMgq:lJbbb9p9DTmbaq:Ohxxekcjjjj94hxkadaifhiaxce91avVhxdndnawmbabaDfgmai86bbamcifax86bbamcdfad86bbamcefak86bbxekabarfgmai87ebamcofax87ebamclfad87ebamcdfak87ebkarcwfhraDclfhDalczfhlaecufgembkkk;mqdQui998Jjjjjbc:qd9Rgv8Kjjjjbavc:Sefcbc;Kbz:xjjjb8AdnadTmbaiTmbdndnabaeSmbaehoxekavcuadcdtgradcFFFFi0Ecbyd;q:I:cjbHjjjjbbgoBd:SeavceBd:mdaoaearz:wjjjb8AkavcbBd:Oeav9cb83i:Geavc:Gefaoadaiavc:Sefz:pjjjbavyd:Gehwadci9UgDcbyd;q:I:cjbHjjjjbbheavc:Sefavyd:mdgqcdtfaeBdbavaqcefgrBd:mdaecbaDz:xjjjbhkavc:SefarcdtfcuaicdtaicFFFFi0Ecbyd;q:I:cjbHjjjjbbgxBdbavaqcdfgmBd:mdalc;ebfhPawheaxhrinaralIdbaPaeydbgscwascw6EcdtfIdbMUdbaeclfhearclfhraicufgimbkavc:SefamcdtfcuaDcdtadcFFFF970Ecbyd;q:I:cjbHjjjjbbgmBdbdnadci6mbaoheamhraDhiinaraxaeydbcdtfIdbaxaeclfydbcdtfIdbMaxaecwfydbcdtfIdbMUdbaecxfhearclfhraicufgimbkkaqcifhzalc;ebfhHavc;qbfhOavheavyd:KehAavyd:OehCcbhscbhrcbhXcehQinaehLaoarcx2fgKydbhPaKclfydbhdabaXcx2fgecwfaKcwfydbgYBdbaeclfadBdbaeaPBdbakarfce86bbaOaYBdwaOadBdlaOaPBdbamarcdtfcbBdbcih8AdnasTmbaLhiinaOa8AcdtfaiydbgeBdba8AaeaY9haeaP9haead9hGGfh8AaiclfhiascufgsmbkkaXcefhXcbhsinaCaAaKascdtfydbcdtgifydbcdtfgYheawaifgdydbgPhidnaPTmbdninaeydbarSmeaeclfheaicufgiTmdxbkkaeaYaPcdtfc98fydbBdbadadydbcufBdbkascefgsci9hmbkdndndna8ATmbcuhrJbbbbhEcbhdavyd:KehYavyd:OehKindnawaOadcdtfydbcdtgsfydbgeTmbaxasfgiIdbh3aialcuadadcs0EcdtfclfIdbaHaecwaecw6EcdtfIdbMg5Udba5a3:th5aecdthiaKaYasfydbcdtfheinamaeydbgscdtfgPa5aPIdbMg3Udba3aEaEa39DgPEhEasaraPEhraeclfheaic98fgimbkkadcefgda8A9hmbkarcu9hmekaQaD9pmeindnakaQfRbbmbaQhrxdkaDaQcefgQ9hmbxdkka8Acza8Acz6EhsaOheaLhOarcu9hmekkazTmbaqcdtavc:Seffcwfheinaeydbcbyd;u:I:cjbH:bjjjbbaec98fheazcufgzmbkkavc:qdf8Kjjjjbk:0leoucuaicdtgvaicFFFFi0Egocbyd;q:I:cjbHjjjjbbhralalyd9GgwcdtfarBdbalawcefBd9GabarBdbaocbyd;q:I:cjbHjjjjbbhralalyd9GgocdtfarBdbalaocefBd9GabarBdlcuadcdtadcFFFFi0Ecbyd;q:I:cjbHjjjjbbhralalyd9GgocdtfarBdbalaocefBd9GabarBdwabydbcbavz:xjjjb8AabydbhraehladhvinaralydbcdtfgoaoydbcefBdbalclfhlavcufgvmbkcbhvabydlglhoarhwaihDinaoavBdbaoclfhoawydbavfhvawclfhwaDcufgDmbkadci9Uhqdnadcd9nmbabydwhocbhvinaecwfydbhwaeclfydbhDalaeydbcdtfgbabydbgbcefBdbaoabcdtfavBdbalaDcdtfgDaDydbgDcefBdbaoaDcdtfavBdbalawcdtfgwawydbgwcefBdbaoawcdtfavBdbaecxfheaqavcefgv9hmbkkinalalydbarydb9RBdbarclfhralclfhlaicufgimbkkQbabaeadaic;G:G:cjbz:ojjjbkQbabaeadaic;i:H:cjbz:ojjjbk9DeeuabcFeaicdtz:xjjjbhlcbhbdnadTmbindnalaeydbcdtfgiydbcu9hmbaiabBdbabcefhbkaeclfheadcufgdmbkkabk:3vioud9:du8Jjjjjbc;Wa9Rgl8Kjjjjbcbhvalcxfcbc;Kbz:xjjjb8AalcuadcitgoadcFFFFe0Ecbyd;q:I:cjbHjjjjbbgrBdxalceBd2araeadaicezNjjjbalcuaoadcjjjjoGEcbyd;q:I:cjbHjjjjbbgwBdzadcdthednadTmbabhiinaiavBdbaiclfhiadavcefgv9hmbkkawaefhDalabBdwalawBdl9cbhqindnadTmbaq9cq9:hkarhvaDhiadheinaiav8Pibak1:NcFrG87ebavcwfhvaicdfhiaecufgembkkalclfaq:NceGcdtfydbhxalclfaq9ce98gq:NceGcdtfydbhmalc;Wbfcbcjaz:xjjjb8AaDhvadhidnadTmbinalc;Wbfav8VebcdtfgeaeydbcefBdbavcdfhvaicufgimbkkcbhvcbhiinalc;WbfavfgeydbhoaeaiBdbaoaifhiavclfgvcja9hmbkadhvdndnadTmbinalc;WbfaDamydbgicetf8VebcdtfgeaeydbgecefBdbaxaecdtfaiBdbamclfhmavcufgvmbkaq9cv9smdcbhvinabawydbcdtfavBdbawclfhwadavcefgv9hmbxdkkaq9cv9smekkcwhvcbhiinalcxfavfc98fydbcbyd;u:I:cjbH:bjjjbbaiceGheclhvcehiaeTmbkalc;Waf8Kjjjjbk:Awliuo99iud9:cbhv8Jjjjjbca9Rgocbyd:4:I:cjbBdKaocb8Pd:W:I:cjb83izaocbyd;e:I:cjbBdwaocb8Pd:8:I:cjb83ibaicd4hrdndnadmbJFFuFhwJFFuuhDJFFuuhqJFFuFhkJFFuuhxJFFuFhmxekarcdthPaehsincbhiinaoczfaifgzasaifIdbgwazIdbgDaDaw9EEUdbaoaifgzawazIdbgDaDaw9DEUdbaiclfgicx9hmbkasaPfhsavcefgvad9hmbkaoIdKhDaoIdwhwaoIdChqaoIdlhkaoIdzhxaoIdbhmkdnadTmbJbbbbJbFu9hJbbbbamax:tgmamJbbbb9DEgmakaq:tgkakam9DEgkawaD:tgwawak9DEgw:vawJbbbb9BEhwdnalmbarcdthoindndnaeclfIdbaq:tawNJbbbZMgk:lJbbb9p9DTmbak:Ohixekcjjjj94hikai:S9cC:ghHdndnaeIdbax:tawNJbbbZMgk:lJbbb9p9DTmbak:Ohixekcjjjj94hikaHai:S:ehHdndnaecwfIdbaD:tawNJbbbZMgk:lJbbb9p9DTmbak:Ohixekcjjjj94hikabaHai:T9cy:g:e83ibaeaofheabcwfhbadcufgdmbxdkkarcdthoindndnaeIdbax:tawNJbbbZMgk:lJbbb9p9DTmbak:Ohixekcjjjj94hikai:SgH9ca:gaH9cz:g9cjjj;4s:d:eaH9cFe:d:e9cF:bj;4:pj;ar:d9c:bd9:9c:p;G:d;4j:E;ar:d9cH9:9c;d;H:W:y:m:g;d;Hb:d9cv9:9c;j:KM;j:KM;j:Kd:dhOdndnaeclfIdbaq:tawNJbbbZMgk:lJbbb9p9DTmbak:Ohixekcjjjj94hikai:SgH9ca:gaH9cz:g9cjjj;4s:d:eaH9cFe:d:e9cF:bj;4:pj;ar:d9c:bd9:9c:p;G:d;4j:E;ar:d9cH9:9c;d;H:W:y:m:g;d;Hb:d9cq9:9cM;j:KM;j:KM;jl:daO:ehOdndnaecwfIdbaD:tawNJbbbZMgk:lJbbb9p9DTmbak:Ohixekcjjjj94hikabaOai:SgH9ca:gaH9cz:g9cjjj;4s:d:eaH9cFe:d:e9cF:bj;4:pj;ar:d9c:bd9:9c:p;G:d;4j:E;ar:d9cH9:9c;d;H:W:y:m:g;d;Hb:d9cC9:9c:KM;j:KM;j:KMD:d:e83ibaeaofheabcwfhbadcufgdmbkkk9teiucbcbyd;y:I:cjbgeabcifc98GfgbBd;y:I:cjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaik;LeeeudndnaeabVciGTmbabhixekdndnadcz9pmbabhixekabhiinaiaeydbBdbaiclfaeclfydbBdbaicwfaecwfydbBdbaicxfaecxfydbBdbaeczfheaiczfhiadc9Wfgdcs0mbkkadcl6mbinaiaeydbBdbaeclfheaiclfhiadc98fgdci0mbkkdnadTmbinaiaeRbb86bbaicefhiaecefheadcufgdmbkkabk;aeedudndnabciGTmbabhixekaecFeGc:b:c:ew2hldndnadcz9pmbabhixekabhiinaialBdbaicxfalBdbaicwfalBdbaiclfalBdbaiczfhiadc9Wfgdcs0mbkkadcl6mbinaialBdbaiclfhiadc98fgdci0mbkkdnadTmbinaiae86bbaicefhiadcufgdmbkkabk9teiucbcbyd;y:I:cjbgeabcrfc94GfgbBd;y:I:cjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaikTeeucbabcbyd;y:I:cjbge9Rcifc98GaefgbBd;y:I:cjbdnabZbcztge9nmbabae9RcFFifcz4nb8Akkk;Sddbcj:Gdk;idbbbbdbbblbbbwbbbbbbbebbbdbbblbbbwbbbbbbbbbbbbbbbbbbbebbbdbbbbbbbebbbbbbbbbbbbbbbb4:h9w9N94:P:gW:j9O:ye9Pbbbbbb:l29hZ;69:9kZ;N;76Z;rg97Z;z;o9xZ8J;B85Z;:;u9yZ;b;k9HZ:2;Z9DZ9e:l9mZ59A8KZ:r;T3Z:A:zYZ79OHZ;j4::8::Y:D9V8:bbbb9s:49:Z8R:hBZ9M9M;M8:L;z;o8:;8:PG89q;x:J878R:hQ8::M:B;e87bbbbbbjZbbjZbbjZ:E;V;N8::Y:DsZ9i;H;68:xd;R8:;h0838:;W:NoZbbbb:WV9O8:uf888:9i;H;68:9c9G;L89;n;m9m89;D8Ko8:bbbbf:8tZ9m836ZS:2AZL;zPZZ818EZ9e:lxZ;U98F8:819E;68:FFuuFFuuFFuuFFuFFFuFFFuFbc;i:IdkCebbbebbbebbbdbbb9G:rbb",a=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 e,d=WebAssembly.instantiate(t(c),{}).then(function(f){e=f.instance,e.exports.__wasm_call_ctors(),e.exports.meshopt_encodeVertexVersion(1),e.exports.meshopt_encodeIndexVersion(1)});function t(f){for(var m=new Uint8Array(f.length),r=0;r<f.length;++r){var y=f.charCodeAt(r);m[r]=y>96?y-97:y>64?y-39:y+4}for(var k=0,r=0;r<f.length;++r)m[k++]=m[r]<60?a[m[r]]:(m[r]-60)*64+m[++r];return m.buffer.slice(0,k)}function b(f){if(!f)throw new Error("Assertion failed")}function n(f){return new Uint8Array(f.buffer,f.byteOffset,f.byteLength)}function o(f,m,r,y){var k=e.exports.sbrk,p=k(m.length*4),v=k(r*4),u=new Uint8Array(e.exports.memory.buffer),j=n(m);u.set(j,p),y&&y(p,p,m.length,r);var w=f(v,p,m.length,r);u=new Uint8Array(e.exports.memory.buffer);var E=new Uint32Array(r);new Uint8Array(E.buffer).set(u.subarray(v,v+r*4)),j.set(u.subarray(p,p+m.length*4)),k(p-k(0));for(var A=0;A<m.length;++A)m[A]=E[m[A]];return[E,w]}function s(f,m,r,y){var k=e.exports.sbrk,p=k(r*4),v=k(r*y),u=new Uint8Array(e.exports.memory.buffer);u.set(n(m),v),f(p,v,r,y),u=new Uint8Array(e.exports.memory.buffer);var j=new Uint32Array(r);return new Uint8Array(j.buffer).set(u.subarray(p,p+r*4)),k(p-k(0)),j}function g(f,m,r,y,k,p,v){var u=e.exports.sbrk,j=u(m),w=u(y*k),E=new Uint8Array(e.exports.memory.buffer);E.set(n(r),w);var A=f(j,m,w,y,k,p,v),N=new Uint8Array(A);return N.set(E.subarray(j,j+A)),u(j-u(0)),N}function i(f){for(var m=0,r=0;r<f.length;++r){var y=f[r];m=m<y?y:m}return m}function h(f,m){if(b(m==2||m==4),m==4)return new Uint32Array(f.buffer,f.byteOffset,f.byteLength/4);var r=new Uint16Array(f.buffer,f.byteOffset,f.byteLength/2);return new Uint32Array(r)}function l(f,m,r,y,k,p,v){var u=e.exports.sbrk,j=u(r*y),w=u(r*p),E=new Uint8Array(e.exports.memory.buffer);E.set(n(m),w),f(j,r,y,k,w,v);var A=new Uint8Array(r*y);return A.set(E.subarray(j,j+r*y)),u(j-u(0)),A}return{ready:d,supported:!0,reorderMesh:function(f,m,r){b(f instanceof Uint32Array||f instanceof Int32Array),b(!m||f.length%3==0);var y=m?r?e.exports.meshopt_optimizeVertexCacheStrip:e.exports.meshopt_optimizeVertexCache:void 0;return o(e.exports.meshopt_optimizeVertexFetchRemap,f,i(f)+1,y)},reorderPoints:function(f,m){return b(f instanceof Float32Array),b(f.length%m==0),b(m>=3),s(e.exports.meshopt_spatialSortRemap,f,f.length/m,m*4)},encodeVertexBuffer:function(f,m,r){b(r>0&&r<=256),b(r%4==0);var y=e.exports.meshopt_encodeVertexBufferBound(m,r);return g(e.exports.meshopt_encodeVertexBuffer,y,f,m,r)},encodeVertexBufferLevel:function(f,m,r,y,k){b(r>0&&r<=256),b(r%4==0),b(y>=0&&y<=3),b(k===void 0||k==0||k==1);var p=e.exports.meshopt_encodeVertexBufferBound(m,r);return g(e.exports.meshopt_encodeVertexBufferLevel,p,f,m,r,y,k===void 0?-1:k)},encodeIndexBuffer:function(f,m,r){b(r==2||r==4),b(m%3==0);var y=h(f,r),k=e.exports.meshopt_encodeIndexBufferBound(m,i(y)+1);return g(e.exports.meshopt_encodeIndexBuffer,k,y,m,4)},encodeIndexSequence:function(f,m,r){b(r==2||r==4);var y=h(f,r),k=e.exports.meshopt_encodeIndexSequenceBound(m,i(y)+1);return g(e.exports.meshopt_encodeIndexSequence,k,y,m,4)},encodeGltfBuffer:function(f,m,r,y,k){var p={ATTRIBUTES:this.encodeVertexBufferLevel,TRIANGLES:this.encodeIndexBuffer,INDICES:this.encodeIndexSequence};return b(p[y]),p[y](f,m,r,2,k===void 0?0:k)},encodeFilterOct:function(f,m,r,y){return b(r==4||r==8),b(y>=2&&y<=16),l(e.exports.meshopt_encodeFilterOct,f,m,r,y,16)},encodeFilterQuat:function(f,m,r,y){return b(r==8),b(y>=4&&y<=16),l(e.exports.meshopt_encodeFilterQuat,f,m,r,y,16)},encodeFilterExp:function(f,m,r,y,k){b(r>0&&r%4==0),b(y>=1&&y<=24);var p={Separate:0,SharedVector:1,SharedComponent:2,Clamped:3};return b(!k||k in p),l(e.exports.meshopt_encodeFilterExp,f,m,r,y,r,k?p[k]:1)},encodeFilterColor:function(f,m,r,y){return b(r==4||r==8),b(y>=2&&y<=16),l(e.exports.meshopt_encodeFilterColor,f,m,r,y,16)}}})();var Ue=(function(){var c="b9H79Tebbbe8Fv9Gbb9Gvuuuuueu9Giuuub9Geueu9Giuuueuixkbeeeddddillviebeoweuecj:Gdkr;Neqo9TW9T9VV95dbH9F9F939H79T9F9J9H229F9Jt9VV7bb8A9TW79O9V9Wt9F9KW9J9V9KW9wWVtW949c919M9MWVbeY9TW79O9V9Wt9F9KW9J9V9KW69U9KW949c919M9MWVbdE9TW79O9V9Wt9F9KW9J9V9KW69U9KW949tWG91W9U9JWbiL9TW79O9V9Wt9F9KW9J9V9KWS9P2tWV9p9JtblK9TW79O9V9Wt9F9KW9J9V9KWS9P2tWV9r919HtbvL9TW79O9V9Wt9F9KW9J9V9KWS9P2tWVT949WboY9TW79O9V9Wt9F9KW9J9V9KWS9P2tWVJ9V29VVbrl79IV9Rbwq;X8:kdbk:kYi5ud9:du8Jjjjjbcjq9Rgv8Kjjjjbc9:hodnalTmbcuhoaiRbbgrc;WeGc:Ge9hmbarcsGgwce0mbc9:hoalcufadcd4cbawEgDadfgrcKcaawEgqaraq0Egk6mbaicefhxcj;abad9Uc;WFbGcjdadca0EhmaialfgPar9Rgoadfhsavaoadz:jjjjbgzceVhHcbhOdndninaeaO9nmeaPax9RaD6mdamaeaO9RaOamfgoae6EgAcsfglc9WGhCaAcethXaxaDfhiaOaeaoaeao6E9RhQalcl4cifcd4hLazcjdfaAfhKcbhYabaOad2fg8AhEaHh3incbh5dnawTmbaxaYcd4fRbbh5kcbh8Eazcjdfhqinaih8Fdndndndna5a8Ecet4ciGgoc9:fPdebdkaPa8F9RaA6mrazcjdfa8EaA2fa8FaAz:jjjjb8Aa8FaAfhixdkazcjdfa8EaA2fcbaAz:kjjjb8Aa8FhixekaPa8F9RaL6mva8FaLfhidnaCTmbaPai9RcK6mbaocdtc:q:G:cjbfcj:G:cjbawEhaczhrcbhlinargoc9Wfghaqfhrdndndndndndnaaa8Fahco4fRbbalcoG4ciGcdtfydbPDbedvivvvlvkar9cb83bwar9cb83bbxlkarcbaiRbdai8Xbb9c:c:qj:bw9:9c:q;c1:I1e:d9c:b:c:e1z9:gg9cjjjjjz:dg8J9qE86bbaqaofgrcGfcbaicdfa8J9c8N1:NfghRbbag9cjjjjjw:dg8J9qE86bbarcVfcbaha8J9c8M1:NfghRbbag9cjjjjjl:dg8J9qE86bbarc7fcbaha8J9c8L1:NfghRbbag9cjjjjjd:dg8J9qE86bbarctfcbaha8J9c8K1:NfghRbbag9cjjjjje:dg8J9qE86bbarc91fcbaha8J9c8J1:NfghRbbag9cjjjj;ab:dg8J9qE86bbarc4fcbaha8J9cg1:NfghRbbag9cjjjja:dg8J9qE86bbarc93fcbaha8J9ch1:NfghRbbag9cjjjjz:dgg9qE86bbarc94fcbahag9ca1:NfghRbbai8Xbe9c:c:qj:bw9:9c:q;c1:I1e:d9c:b:c:e1z9:gg9cjjjjjz:dg8J9qE86bbarc95fcbaha8J9c8N1:NfgiRbbag9cjjjjjw:dg8J9qE86bbarc96fcbaia8J9c8M1:NfgiRbbag9cjjjjjl:dg8J9qE86bbarc97fcbaia8J9c8L1:NfgiRbbag9cjjjjjd:dg8J9qE86bbarc98fcbaia8J9c8K1:NfgiRbbag9cjjjjje:dg8J9qE86bbarc99fcbaia8J9c8J1:NfgiRbbag9cjjjj;ab:dg8J9qE86bbarc9:fcbaia8J9cg1:NfgiRbbag9cjjjja:dg8J9qE86bbarcufcbaia8J9ch1:NfgiRbbag9cjjjjz:dgg9qE86bbaiag9ca1:NfhixikaraiRblaiRbbghco4g8Ka8KciSg8KE86bbaqaofgrcGfaiclfa8Kfg8KRbbahcl4ciGg8La8LciSg8LE86bbarcVfa8Ka8Lfg8KRbbahcd4ciGg8La8LciSg8LE86bbarc7fa8Ka8Lfg8KRbbahciGghahciSghE86bbarctfa8Kahfg8KRbbaiRbeghco4g8La8LciSg8LE86bbarc91fa8Ka8Lfg8KRbbahcl4ciGg8La8LciSg8LE86bbarc4fa8Ka8Lfg8KRbbahcd4ciGg8La8LciSg8LE86bbarc93fa8Ka8Lfg8KRbbahciGghahciSghE86bbarc94fa8Kahfg8KRbbaiRbdghco4g8La8LciSg8LE86bbarc95fa8Ka8Lfg8KRbbahcl4ciGg8La8LciSg8LE86bbarc96fa8Ka8Lfg8KRbbahcd4ciGg8La8LciSg8LE86bbarc97fa8Ka8Lfg8KRbbahciGghahciSghE86bbarc98fa8KahfghRbbaiRbigico4g8Ka8KciSg8KE86bbarc99faha8KfghRbbaicl4ciGg8Ka8KciSg8KE86bbarc9:faha8KfghRbbaicd4ciGg8Ka8KciSg8KE86bbarcufaha8KfgrRbbaiciGgiaiciSgiE86bbaraifhixdkaraiRbwaiRbbghcl4g8Ka8KcsSg8KE86bbaqaofgrcGfaicwfa8Kfg8KRbbahcsGghahcsSghE86bbarcVfa8KahfghRbbaiRbeg8Kcl4g8La8LcsSg8LE86bbarc7faha8LfghRbba8KcsGg8Ka8KcsSg8KE86bbarctfaha8KfghRbbaiRbdg8Kcl4g8La8LcsSg8LE86bbarc91faha8LfghRbba8KcsGg8Ka8KcsSg8KE86bbarc4faha8KfghRbbaiRbig8Kcl4g8La8LcsSg8LE86bbarc93faha8LfghRbba8KcsGg8Ka8KcsSg8KE86bbarc94faha8KfghRbbaiRblg8Kcl4g8La8LcsSg8LE86bbarc95faha8LfghRbba8KcsGg8Ka8KcsSg8KE86bbarc96faha8KfghRbbaiRbvg8Kcl4g8La8LcsSg8LE86bbarc97faha8LfghRbba8KcsGg8Ka8KcsSg8KE86bbarc98faha8KfghRbbaiRbog8Kcl4g8La8LcsSg8LE86bbarc99faha8LfghRbba8KcsGg8Ka8KcsSg8KE86bbarc9:faha8KfghRbbaiRbrgicl4g8Ka8KcsSg8KE86bbarcufaha8KfgrRbbaicsGgiaicsSgiE86bbaraifhixekarai8Pbw83bwarai8Pbb83bbaiczfhikdnaoaC9pmbalcdfhlaoczfhraPai9RcL0mekkaoaC6moaimexokaCmva8FTmvkaqaAfhqa8Ecefg8Ecl9hmbkdndndndnawTmbasaYcd4fRbbgociGPlbedrbkaATmdazaYfh8Fazcjdfhhcbh8EaEhaina8FRbbhraahocbhlinaoahalfRbbgqce4cbaqceG9R7arfgr86bbaoadfhoaAalcefgl9hmbkaacefhaa8Fcefh8FahaAfhha8Ecefg8Ecl9hmbxikkaATmeazaYfhaazcjdfhhcbhoceh8EaKh8FinaEaofhlaa8Vbbhrcbhoinala8FaofRbbcwtahaofRbbgqVc;:FiGce4cbaqceG9R7arfgr87bbaladfhlaQaocefgofmbka8FaXfh8FcdhoaacdfhaahaXfhha8EceGhlcbh8EalmbxdkkaATmbaocl4h8EazaYfRbbhqcwhoa3hlinalRbbaotaqVhqalcefhlaocwfgoca9hmbkcbhhaEh8FaKhainazcjdfahfRbbhrcwhoaahlinalRbbaotarVhralaAfhlaocwfgoca9hmbkara8E94aq7hqcbhoa8Fhlinalaqao486bbalcefhlaocwfgoca9hmbka8Fadfh8FaacefhaahcefghaA9hmbkkaEclfhEa3clfh3aYclfgYad6mbkaza8AaAcufad2fadz:jjjjb8AaAaOfhOaihxaimbkc9:hoxdkcbc99aPax9RakSEhoxekc9:hokavcjqf8Kjjjjbaok:bsesu8Jjjjjbc;ae9Rgv8Kjjjjbc9:hodnalaeci9UgrcHf6mbcuhoaiRbbgwc;WeGc;Ge9hmbawcsGgwce0mbavc;abfcFecjez:kjjjb8Aav9cu83iUav9cu83i8Wav9cu83iyav9cu83iaav9cu83iKav9cu83izav9cu83iwav9cu83ibaialfc9WfhDaicefgiarfhqdndnaeci9pmbaqhexekcmcsawceSEhkcbhxcbhmaqhecbhlcbhoindndnaiRbbgrc;Ve0mbavc;abfaoarcu7gPcl4fcsGcitfgwydlhsawydbhzdndnarcsGgwak9pmbavalaPfcsGcdtfydbaxawEhraxawTgHfhxxekdnaeaD9nmbc9:hoxokdndnawcsSmbcehHamawcetfcWfhrxekaecefhrae8SbbgwcFeGhPdndnawcu9mmbarhexekaecvfheaPcFbGhPcrhwdninar8SbbgHcFbGawtaPVhPaHcu9kmearcefhrawcrfgwc8J9hmbxdkkarcefhekcehHaPce4cbaPceG9R7amfhrkarhmkavc;abfaocitfgwarBdbawasBdlavalcdtfarBdbavc;abfaocefcsGcitfgwazBdbawarBdlaocdfhoaHalfhldnadcd9hmbabar87elabas87edabaz87ebabcofhbxdkabarBdwabasBdlabazBdbabcxfhbxekdnarcpe0mbavalaDarcsGfRbbgwcl4gP9RcsGcdtfydbaxcefgsaPEhravalaw9RcsGcdtfydbasaPTgzfgsawcsGgPEhwaPThPdndnadcd9hmbabaw87elabar87edabax87ebcohHxekabawBdwabarBdlabaxBdbcxhHkavalcdtfaxBdbavc;abfaocitfgOarBdbaOaxBdlavalcefglcsGcdtfarBdbavc;abfaocefcsGcitfgOawBdbaOarBdlavalazfglcsGcdtfawBdbavc;abfaocdfcsGcitfgraxBdbarawBdlaocifhoabaHfhbalaPfhlasaPfhxxekdnaeaD9nmbc9:hoxlkaxcbaeRbbgwEgHarc;:eSgrfhsawcsGhOdndnawcl4gAmbascefhzxekashzavalaA9RcsGcdtfydbhskdndnaOmbazcefhxxekazhxavalaw9RcsGcdtfydbhzkdndnarTmbaecefhrxekaecdfhrae8SbegPcFeGhwdnaPcu9kmbaecofhHawcFbGhwcrhedninar8SbbgPcFbGaetawVhwaPcu9kmearcefhraecrfgec8J9hmbkaHhrxekarcefhrkawce4cbawceG9R7amfgmhHkdndnaAcsSmbarhwxekarcefhwar8SbbgecFeGhPdnaecu9kmbarcvfhsaPcFbGhPcrhedninaw8SbbgrcFbGaetaPVhParcu9kmeawcefhwaecrfgec8J9hmbkashwxekawcefhwkaPce4cbaPceG9R7amfgmhskdndnaOcsSmbawhexekawcefheaw8SbbgrcFeGhPdnarcu9kmbawcvfhzaPcFbGhPcrhrdninae8SbbgwcFbGartaPVhPawcu9kmeaecefhearcrfgrc8J9hmbkazhexekaecefhekaPce4cbaPceG9R7amfgmhzkdndnadcd9hmbabaz87elabas87edabaH87ebcohrxekabazBdwabasBdlabaHBdbcxhrkavc;abfaocitfgwasBdbawaHBdlavalcdtfaHBdbavc;abfaocefcsGcitfgwazBdbawasBdlavalcefglcsGcdtfasBdbavc;abfaocdfcsGcitfgwaHBdbawazBdlavalaATaAcsSVfglcsGcdtfazBdbalaOTaOcsSVfhlaocifhoabarfhbkaocsGhoalcsGhlaicefgiaq6mbkkcbc99aeaDSEhokavc;aef8Kjjjjbaok:clevu8Jjjjjbcz9Rhvdnalaecvf9pmbc9:skdnaiRbbc;:eGc;qeSmbcuskav9cb83iwaicefhoaialfc98fhrdnaeTmbdnadcdSmbcbhwindnaoar6mbc9:skaocefhlao8SbbgicFeGhddndnaicu9mmbalhoxekaocvfhoadcFbGhdcrhidninal8SbbgDcFbGaitadVhdaDcu9kmealcefhlaicrfgic8J9hmbxdkkalcefhokabawcdtfadc8Etc8F91adcd47avcwfadceGcdtVglydbfgiBdbalaiBdbawcefgwae9hmbxdkkcbhwindnaoar6mbc9:skaocefhlao8SbbgicFeGhddndnaicu9mmbalhoxekaocvfhoadcFbGhdcrhidninal8SbbgDcFbGaitadVhdaDcu9kmealcefhlaicrfgic8J9hmbxdkkalcefhokabawcetfadc8Etc8F91adcd47avcwfadceGcdtVglydbfgi87ebalaiBdbawcefgwae9hmbkkcbc99aoarSEk: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:4ioiue99dud99dud99dnaeTmbcbhiabhlindndnal8Uebgv:YgoJ:ji:1Salcof8UebgrciVgw:Y:vgDNJbbbZJbbb:;avcu9kEMgq:lJbbb9p9DTmbaq:Ohkxekcjjjj94hkkalclf8Uebhvalcdf8UebhxalarcefciGcetfak87ebdndnax:YgqaDNJbbbZJbbb:;axcu9kEMgm:lJbbb9p9DTmbam:Ohxxekcjjjj94hxkabaiarciGgkfcd7cetfax87ebdndnav:YgmaDNJbbbZJbbb:;avcu9kEMgP:lJbbb9p9DTmbaP:Ohvxekcjjjj94hvkalarcufciGcetfav87ebdndnawaw2:ZgPaPMaoaoN:taqaqN:tamamN:tgoJbbbbaoJbbbb9GE:raDNJbbbZMgD:lJbbb9p9DTmbaD:Ohrxekcjjjj94hrkalakcetfar87ebalcwfhlaiclfhiaecufgembkkk9mbdnadcd4ae2gdTmbinababydbgecwtcw91:Yaece91cjjj98Gcjjj;8if::NUdbabclfhbadcufgdmbkkk:Tvirud99eudndnadcl9hmbaeTmeindndnabRbbgiabcefgl8Sbbgvabcdfgo8Sbbgrf9R:YJbbuJabcifgwRbbgdce4adVgDcd4aDVgDcl4aDVgD:Z:vgqNJbbbZMgk:lJbbb9p9DTmbak:Ohxxekcjjjj94hxkaoax86bbdndnaraif:YaqNJbbbZMgk:lJbbb9p9DTmbak:Ohoxekcjjjj94hokalao86bbdndnavaifar9R:YaqNJbbbZMgk:lJbbb9p9DTmbak:Ohixekcjjjj94hikabai86bbdndnaDadcetGadceGV:ZaqNJbbbZMgq:lJbbb9p9DTmbaq:Ohdxekcjjjj94hdkawad86bbabclfhbaecufgembxdkkaeTmbindndnab8Vebgiabcdfgl8Uebgvabclfgo8Uebgrf9R:YJbFu9habcofgw8Vebgdce4adVgDcd4aDVgDcl4aDVgDcw4aDVgD:Z:vgqNJbbbZMgk:lJbbb9p9DTmbak:Ohxxekcjjjj94hxkaoax87ebdndnaraif:YaqNJbbbZMgk:lJbbb9p9DTmbak:Ohoxekcjjjj94hokalao87ebdndnavaifar9R:YaqNJbbbZMgk:lJbbb9p9DTmbak:Ohixekcjjjj94hikabai87ebdndnaDadcetGadceGV:ZaqNJbbbZMgq:lJbbb9p9DTmbaq:Ohdxekcjjjj94hdkawad87ebabcwfhbaecufgembkkk9teiucbcbyd:K:G:cjbgeabcifc98GfgbBd:K:G:cjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaik;LeeeudndnaeabVciGTmbabhixekdndnadcz9pmbabhixekabhiinaiaeydbBdbaiclfaeclfydbBdbaicwfaecwfydbBdbaicxfaecxfydbBdbaeczfheaiczfhiadc9Wfgdcs0mbkkadcl6mbinaiaeydbBdbaeclfheaiclfhiadc98fgdci0mbkkdnadTmbinaiaeRbb86bbaicefhiaecefheadcufgdmbkkabk;aeedudndnabciGTmbabhixekaecFeGc:b:c:ew2hldndnadcz9pmbabhixekabhiinaialBdbaicxfalBdbaicwfalBdbaiclfalBdbaiczfhiadc9Wfgdcs0mbkkadcl6mbinaialBdbaiclfhiadc98fgdci0mbkkdnadTmbinaiae86bbaicefhiadcufgdmbkkabkk83dbcj:Gdk8Kbbbbdbbblbbbwbbbbbbbebbbdbbblbbbwbbbbc:K:Gdkl8W:qbb",a="b9H79TebbbeKl9Gbb9Gvuuuuueu9Giuuub9Geueuixkbbebeeddddilve9Weeeviebeoweuecj:Gdkr;Neqo9TW9T9VV95dbH9F9F939H79T9F9J9H229F9Jt9VV7bb8A9TW79O9V9Wt9F9KW9J9V9KW9wWVtW949c919M9MWVbdY9TW79O9V9Wt9F9KW9J9V9KW69U9KW949c919M9MWVblE9TW79O9V9Wt9F9KW9J9V9KW69U9KW949tWG91W9U9JWbvL9TW79O9V9Wt9F9KW9J9V9KWS9P2tWV9p9JtboK9TW79O9V9Wt9F9KW9J9V9KWS9P2tWV9r919HtbrL9TW79O9V9Wt9F9KW9J9V9KWS9P2tWVT949WbwY9TW79O9V9Wt9F9KW9J9V9KWS9P2tWVJ9V29VVbDl79IV9Rbqq:I9Dklbzik94evu8Jjjjjbcz9Rhbcbheincbhdcbhiinabcwfadfaicjuaead4ceGglE86bbaialfhiadcefgdcw9hmbkaeai86b:q:W:cjbaecitab8Piw83i:q:G:cjbaecefgecjd9hmbkk:SBlEud97dur978Jjjjjbcj;kb9Rgv8Kjjjjbc9:hodnalTmbcuhoaiRbbgrc;WeGc:Ge9hmbarcsGgwce0mbc9:hoalcufadcd4cbawEgDadfgrcKcaawEgqaraq0Egk6mbaialfgxar9RhodnadTgmmbavaoad;8qbbkaicefhPcj;abad9Uc;WFbGcjdadca0EhsdndndnadTmbaoadfhzcbhHinaeaH9nmdaxaP9RaD6miabaHad2fgOavcjdfasaeaH9RaHasfae6EgAaAcsfgoc9WGgCSEhXaPaDfhQaocl4cifcd4hLavcj;cbfaCcetfhKavcj;cbfaCci2fhYavcj;cbfaCfh8AcbhEaoc;ab6h3incbh5dnawTmbaPaEcd4fRbbh5kcbh8Eavcj;cbfh8Findndndndna5a8Ecet4ciGgoc9:fPdebdkaxaQ9RaC6mwdnaCTmbavcj;cbfa8EaC2faQaC;8qbbkaQaAfhQxdkaCTmeavcj;cbfa8EaC2fcbaC;8kbxekaxaQ9RaL6moaoclVcbawEhraQaLfhocbhidna3mbaxao9Rc;Gb6mbcbhlina8FalfhidndndndndndnaQalco4fRbbgqciGarfPDbedibledibkaipxbbbbbbbbbbbbbbbbpklbxlkaiaopbblaopbbbgaclp:meaapmbzeHdOiAlCvXoQrLgacdp:meaapmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9oghpxiiiiiiiiiiiiiiiip8Jgap5b9cjF;8;4;W;G;ab9:9cU1:Nggcitpbi:q:G:cjbagRb:q:W:cjbggpsaap5e9cjF;8;4;W;G;ab9:9cU1:Ng8Jcitpbi:q:G:cjbp9UpmbedilvorzHOACXQLpPahaap9spklbagaoclffa8JRb:q:W:cjbfhoxikaiaopbbwaopbbbgaclp:meaapmbzeHdOiAlCvXoQrLpxssssssssssssssssp9oghpxssssssssssssssssp8Jgap5b9cjF;8;4;W;G;ab9:9cU1:Nggcitpbi:q:G:cjbagRb:q:W:cjbggpsaap5e9cjF;8;4;W;G;ab9:9cU1:Ng8Jcitpbi:q:G:cjbp9UpmbedilvorzHOACXQLpPahaap9spklbagaocwffa8JRb:q:W:cjbfhoxdkaiaopbbbpklbaoczfhoxekaiaopbbdaoRbbggcitpbi:q:G:cjbagRb:q:W:cjbggpsaoRbeg8Jcitpbi:q:G:cjbp9UpmbedilvorzHOACXQLpPpklbagaocdffa8JRb:q:W:cjbfhokdndndndndndnaqcd4ciGarfPDbedibledibkaiczfpxbbbbbbbbbbbbbbbbpklbxlkaiczfaopbblaopbbbgaclp:meaapmbzeHdOiAlCvXoQrLgacdp:meaapmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9oghpxiiiiiiiiiiiiiiiip8Jgap5b9cjF;8;4;W;G;ab9:9cU1:Nggcitpbi:q:G:cjbagRb:q:W:cjbggpsaap5e9cjF;8;4;W;G;ab9:9cU1:Ng8Jcitpbi:q:G:cjbp9UpmbedilvorzHOACXQLpPahaap9spklbagaoclffa8JRb:q:W:cjbfhoxikaiczfaopbbwaopbbbgaclp:meaapmbzeHdOiAlCvXoQrLpxssssssssssssssssp9oghpxssssssssssssssssp8Jgap5b9cjF;8;4;W;G;ab9:9cU1:Nggcitpbi:q:G:cjbagRb:q:W:cjbggpsaap5e9cjF;8;4;W;G;ab9:9cU1:Ng8Jcitpbi:q:G:cjbp9UpmbedilvorzHOACXQLpPahaap9spklbagaocwffa8JRb:q:W:cjbfhoxdkaiczfaopbbbpklbaoczfhoxekaiczfaopbbdaoRbbggcitpbi:q:G:cjbagRb:q:W:cjbggpsaoRbeg8Jcitpbi:q:G:cjbp9UpmbedilvorzHOACXQLpPpklbagaocdffa8JRb:q:W:cjbfhokdndndndndndnaqcl4ciGarfPDbedibledibkaicafpxbbbbbbbbbbbbbbbbpklbxlkaicafaopbblaopbbbgaclp:meaapmbzeHdOiAlCvXoQrLgacdp:meaapmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9oghpxiiiiiiiiiiiiiiiip8Jgap5b9cjF;8;4;W;G;ab9:9cU1:Nggcitpbi:q:G:cjbagRb:q:W:cjbggpsaap5e9cjF;8;4;W;G;ab9:9cU1:Ng8Jcitpbi:q:G:cjbp9UpmbedilvorzHOACXQLpPahaap9spklbagaoclffa8JRb:q:W:cjbfhoxikaicafaopbbwaopbbbgaclp:meaapmbzeHdOiAlCvXoQrLpxssssssssssssssssp9oghpxssssssssssssssssp8Jgap5b9cjF;8;4;W;G;ab9:9cU1:Nggcitpbi:q:G:cjbagRb:q:W:cjbggpsaap5e9cjF;8;4;W;G;ab9:9cU1:Ng8Jcitpbi:q:G:cjbp9UpmbedilvorzHOACXQLpPahaap9spklbagaocwffa8JRb:q:W:cjbfhoxdkaicafaopbbbpklbaoczfhoxekaicafaopbbdaoRbbggcitpbi:q:G:cjbagRb:q:W:cjbggpsaoRbeg8Jcitpbi:q:G:cjbp9UpmbedilvorzHOACXQLpPpklbagaocdffa8JRb:q:W:cjbfhokdndndndndndnaqco4arfPDbedibledibkaic8Wfpxbbbbbbbbbbbbbbbbpklbxlkaic8Wfaopbblaopbbbgaclp:meaapmbzeHdOiAlCvXoQrLgacdp:meaapmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9oghpxiiiiiiiiiiiiiiiip8Jgap5b9cjF;8;4;W;G;ab9:9cU1:Ngicitpbi:q:G:cjbaiRb:q:W:cjbgipsaap5e9cjF;8;4;W;G;ab9:9cU1:Ngqcitpbi:q:G:cjbp9UpmbedilvorzHOACXQLpPahaap9spklbaiaoclffaqRb:q:W:cjbfhoxikaic8Wfaopbbwaopbbbgaclp:meaapmbzeHdOiAlCvXoQrLpxssssssssssssssssp9oghpxssssssssssssssssp8Jgap5b9cjF;8;4;W;G;ab9:9cU1:Ngicitpbi:q:G:cjbaiRb:q:W:cjbgipsaap5e9cjF;8;4;W;G;ab9:9cU1:Ngqcitpbi:q:G:cjbp9UpmbedilvorzHOACXQLpPahaap9spklbaiaocwffaqRb:q:W:cjbfhoxdkaic8Wfaopbbbpklbaoczfhoxekaic8WfaopbbdaoRbbgicitpbi:q:G:cjbaiRb:q:W:cjbgipsaoRbegqcitpbi:q:G:cjbp9UpmbedilvorzHOACXQLpPpklbaiaocdffaqRb:q:W:cjbfhokalc;abfhialcjefaC0meaihlaxao9Rc;Fb0mbkkdnaiaC9pmbaici4hlinaxao9RcK6mwa8FaifhqdndndndndndnaQaico4fRbbalcoG4ciGarfPDbedibledibkaqpxbbbbbbbbbbbbbbbbpkbbxlkaqaopbblaopbbbgaclp:meaapmbzeHdOiAlCvXoQrLgacdp:meaapmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9oghpxiiiiiiiiiiiiiiiip8Jgap5b9cjF;8;4;W;G;ab9:9cU1:Nggcitpbi:q:G:cjbagRb:q:W:cjbggpsaap5e9cjF;8;4;W;G;ab9:9cU1:Ng8Jcitpbi:q:G:cjbp9UpmbedilvorzHOACXQLpPahaap9spkbbagaoclffa8JRb:q:W:cjbfhoxikaqaopbbwaopbbbgaclp:meaapmbzeHdOiAlCvXoQrLpxssssssssssssssssp9oghpxssssssssssssssssp8Jgap5b9cjF;8;4;W;G;ab9:9cU1:Nggcitpbi:q:G:cjbagRb:q:W:cjbggpsaap5e9cjF;8;4;W;G;ab9:9cU1:Ng8Jcitpbi:q:G:cjbp9UpmbedilvorzHOACXQLpPahaap9spkbbagaocwffa8JRb:q:W:cjbfhoxdkaqaopbbbpkbbaoczfhoxekaqaopbbdaoRbbggcitpbi:q:G:cjbagRb:q:W:cjbggpsaoRbeg8Jcitpbi:q:G:cjbp9UpmbedilvorzHOACXQLpPpkbbagaocdffa8JRb:q:W:cjbfhokalcdfhlaiczfgiaC6mbkkaohQaoTmoka8FaCfh8Fa8Ecefg8Ecl9hmbkdndndndnawTmbazaEcd4fRbbglciGPlbedwbkaCTmdaXaEfhlavaEfpbdbh8Kcbhoinalavcj;cbfaofpblbg8La8Aaofpblbg8MpmbzeHdOiAlCvXoQrLg8NaKaofpblbgyaYaofpblbg8PpmbzeHdOiAlCvXoQrLgIpmbezHdiOAlvCXorQLgacep9Taapxeeeeeeeeeeeeeeeeghp9op9Hp9rgaa8Kp9Ug8Kp9Abbbaladfgla8Kaaaapmlvorlvorlvorlvorp9Ug8Kp9Abbbaladfgla8KaaaapmwDqkwDqkwDqkwDqkp9Ug8Kp9Abbbaladfgla8KaaaapmxmPsxmPsxmPsxmPsp9Ug8Kp9Abbbaladfgla8Ka8NaIpmwDKYqk8AExm35Ps8E8Fgacep9Taaahp9op9Hp9rgap9Ug8Kp9Abbbaladfgla8Kaaaapmlvorlvorlvorlvorp9Ug8Kp9Abbbaladfgla8KaaaapmwDqkwDqkwDqkwDqkp9Ug8Kp9Abbbaladfgla8KaaaapmxmPsxmPsxmPsxmPsp9Ug8Kp9Abbbaladfgla8Ka8La8MpmwKDYq8AkEx3m5P8Es8Fg8Laya8PpmwKDYq8AkEx3m5P8Es8Fg8MpmbezHdiOAlvCXorQLgacep9Taaahp9op9Hp9rgap9Ug8Kp9Abbbaladfgla8Kaaaapmlvorlvorlvorlvorp9Ug8Kp9Abbbaladfgla8KaaaapmwDqkwDqkwDqkwDqkp9Ug8Kp9Abbbaladfgla8KaaaapmxmPsxmPsxmPsxmPsp9Ug8Kp9Abbbaladfgla8Ka8La8MpmwDKYqk8AExm35Ps8E8Fgacep9Taaahp9op9Hp9rgap9Ughp9Abbbaladfglahaaaapmlvorlvorlvorlvorp9Ughp9AbbbaladfglahaaaapmwDqkwDqkwDqkwDqkp9Ughp9AbbbaladfglahaaaapmxmPsxmPsxmPsxmPsp9Ug8Kp9AbbbaladfhlaoczfgoaC6mbxikkaCTmeaXaEfhlavaEfpbdbh8Kcbhoinalavcj;cbfaofpblbg8La8Aaofpblbg8MpmbzeHdOiAlCvXoQrLg8NaKaofpblbgyaYaofpblbg8PpmbzeHdOiAlCvXoQrLgIpmbezHdiOAlvCXorQLgacep:neaapxebebebebebebebebghp9op:bep9rgaa8Kp:oeg8Kp9Abbbaladfgla8Kaaaapmlvorlvorlvorlvorp:oeg8Kp9Abbbaladfgla8KaaaapmwDqkwDqkwDqkwDqkp:oeg8Kp9Abbbaladfgla8KaaaapmxmPsxmPsxmPsxmPsp:oeg8Kp9Abbbaladfgla8Ka8NaIpmwDKYqk8AExm35Ps8E8Fgacep:neaaahp9op:bep9rgap:oeg8Kp9Abbbaladfgla8Kaaaapmlvorlvorlvorlvorp:oeg8Kp9Abbbaladfgla8KaaaapmwDqkwDqkwDqkwDqkp:oeg8Kp9Abbbaladfgla8KaaaapmxmPsxmPsxmPsxmPsp:oeg8Kp9Abbbaladfgla8Ka8La8MpmwKDYq8AkEx3m5P8Es8Fg8Laya8PpmwKDYq8AkEx3m5P8Es8Fg8MpmbezHdiOAlvCXorQLgacep:neaaahp9op:bep9rgap:oeg8Kp9Abbbaladfgla8Kaaaapmlvorlvorlvorlvorp:oeg8Kp9Abbbaladfgla8KaaaapmwDqkwDqkwDqkwDqkp:oeg8Kp9Abbbaladfgla8KaaaapmxmPsxmPsxmPsxmPsp:oeg8Kp9Abbbaladfgla8Ka8La8MpmwDKYqk8AExm35Ps8E8Fgacep:neaaahp9op:bep9rgap:oeghp9Abbbaladfglahaaaapmlvorlvorlvorlvorp:oeghp9AbbbaladfglahaaaapmwDqkwDqkwDqkwDqkp:oeghp9AbbbaladfglahaaaapmxmPsxmPsxmPsxmPsp:oeg8Kp9AbbbaladfhlaoczfgoaC6mbxdkkaCTmbaXaEfhrcbhocbalcl4gl9Rc8FGhiavaEfpbdbhhinaravcj;cbfaofpblbg8Ka8Aaofpblbg8LpmbzeHdOiAlCvXoQrLg8MaKaofpblbg8NaYaofpblbgypmbzeHdOiAlCvXoQrLg8PpmbezHdiOAlvCXorQLgaaip:Reaaalp:Tep9qgaahp9rghp9Abbbaradfgrahaaaapmlvorlvorlvorlvorp9rghp9AbbbaradfgrahaaaapmwDqkwDqkwDqkwDqkp9rghp9AbbbaradfgrahaaaapmxmPsxmPsxmPsxmPsp9rghp9Abbbaradfgraha8Ma8PpmwDKYqk8AExm35Ps8E8Fgaaip:Reaaalp:Tep9qgap9rghp9Abbbaradfgrahaaaapmlvorlvorlvorlvorp9rghp9AbbbaradfgrahaaaapmwDqkwDqkwDqkwDqkp9rghp9AbbbaradfgrahaaaapmxmPsxmPsxmPsxmPsp9rghp9Abbbaradfgraha8Ka8LpmwKDYq8AkEx3m5P8Es8Fg8Ka8NaypmwKDYq8AkEx3m5P8Es8Fg8LpmbezHdiOAlvCXorQLgaaip:Reaaalp:Tep9qgap9rghp9Abbbaradfgrahaaaapmlvorlvorlvorlvorp9rghp9AbbbaradfgrahaaaapmwDqkwDqkwDqkwDqkp9rghp9AbbbaradfgrahaaaapmxmPsxmPsxmPsxmPsp9rghp9Abbbaradfgraha8Ka8LpmwDKYqk8AExm35Ps8E8Fgaaip:Reaaalp:Tep9qgap9rghp9Abbbaradfgrahaaaapmlvorlvorlvorlvorp9rghp9AbbbaradfgrahaaaapmwDqkwDqkwDqkwDqkp9rghp9AbbbaradfgrahaaaapmxmPsxmPsxmPsxmPsp9rghp9AbbbaradfhraoczfgoaC6mbkkaEclfgEad6mbkdnaXavcjdf9hmbaAad2goTmbaOavcjdfao;8qbbkdnammbavaXaAcufad2fad;8qbbkaAaHfhHc9:hoaQhPaQmbxlkkaeTmbaDalfhrcbhocuhlinaralaD9RglfaD6mdasaeao9Raoasfae6Eaofgoae6mbkaial9RhPkcbc99axaP9RakSEhoxekc9:hokavcj;kbf8Kjjjjbaokwbz:bjjjbkpPesu8Jjjjjbc;ae9Rgv8Kjjjjbc9:hodnalaeci9UgrcHf6mbcuhoaiRbbgwc;WeGc;Ge9hmbawcsGgwce0mbavc;abfcFecje;8kbav9cu83iUav9cu83i8Wav9cu83iyav9cu83iaav9cu83iKav9cu83izav9cu83iwav9cu83ibaialfc9WfhDaicefgiarfhqdndnaeci9pmbaqhexekcmcsawceSEhkcbhxcbhmaqhecbhlcbhoindndnaiRbbgrc;Ve0mbavc;abfaoarcu7gPcl4fcsGcitfgwydlhsawydbhzdndnarcsGgwak9pmbavalaPfcsGcdtfydbaxawEhraxawTgHfhxxekdnaeaD9nmbc9:hoxokdndnawcsSmbcehHamawcetfcWfhrxekaecefhrae8SbbgwcFeGhPdndnawcu9mmbarhexekaecvfheaPcFbGhPcrhwdninar8SbbgHcFbGawtaPVhPaHcu9kmearcefhrawcrfgwc8J9hmbxdkkarcefhekcehHaPce4cbaPceG9R7amfhrkarhmkavc;abfaocitfgwarBdbawasBdlavalcdtfarBdbavc;abfaocefcsGcitfgwazBdbawarBdlaocdfhoaHalfhldnadcd9hmbabar87elabas87edabaz87ebabcofhbxdkabarBdwabasBdlabazBdbabcxfhbxekdnarcpe0mbavalaDarcsGfRbbgwcl4gP9RcsGcdtfydbaxcefgsaPEhravalaw9RcsGcdtfydbasaPTgzfgsawcsGgPEhwaPThPdndnadcd9hmbabaw87elabar87edabax87ebcohHxekabawBdwabarBdlabaxBdbcxhHkavalcdtfaxBdbavc;abfaocitfgOarBdbaOaxBdlavalcefglcsGcdtfarBdbavc;abfaocefcsGcitfgOawBdbaOarBdlavalazfglcsGcdtfawBdbavc;abfaocdfcsGcitfgraxBdbarawBdlaocifhoabaHfhbalaPfhlasaPfhxxekdnaeaD9nmbc9:hoxlkaxcbaeRbbgwEgHarc;:eSgrfhsawcsGhOdndnawcl4gAmbascefhzxekashzavalaA9RcsGcdtfydbhskdndnaOmbazcefhxxekazhxavalaw9RcsGcdtfydbhzkdndnarTmbaecefhrxekaecdfhrae8SbegPcFeGhwdnaPcu9kmbaecofhHawcFbGhwcrhedninar8SbbgPcFbGaetawVhwaPcu9kmearcefhraecrfgec8J9hmbkaHhrxekarcefhrkawce4cbawceG9R7amfgmhHkdndnaAcsSmbarhwxekarcefhwar8SbbgecFeGhPdnaecu9kmbarcvfhsaPcFbGhPcrhedninaw8SbbgrcFbGaetaPVhParcu9kmeawcefhwaecrfgec8J9hmbkashwxekawcefhwkaPce4cbaPceG9R7amfgmhskdndnaOcsSmbawhexekawcefheaw8SbbgrcFeGhPdnarcu9kmbawcvfhzaPcFbGhPcrhrdninae8SbbgwcFbGartaPVhPawcu9kmeaecefhearcrfgrc8J9hmbkazhexekaecefhekaPce4cbaPceG9R7amfgmhzkdndnadcd9hmbabaz87elabas87edabaH87ebcohrxekabazBdwabasBdlabaHBdbcxhrkavc;abfaocitfgwasBdbawaHBdlavalcdtfaHBdbavc;abfaocefcsGcitfgwazBdbawasBdlavalcefglcsGcdtfasBdbavc;abfaocdfcsGcitfgwaHBdbawazBdlavalaATaAcsSVfglcsGcdtfazBdbalaOTaOcsSVfhlaocifhoabarfhbkaocsGhoalcsGhlaicefgiaq6mbkkcbc99aeaDSEhokavc;aef8Kjjjjbaok:clevu8Jjjjjbcz9Rhvdnalaecvf9pmbc9:skdnaiRbbc;:eGc;qeSmbcuskav9cb83iwaicefhoaialfc98fhrdnaeTmbdnadcdSmbcbhwindnaoar6mbc9:skaocefhlao8SbbgicFeGhddndnaicu9mmbalhoxekaocvfhoadcFbGhdcrhidninal8SbbgDcFbGaitadVhdaDcu9kmealcefhlaicrfgic8J9hmbxdkkalcefhokabawcdtfadc8Etc8F91adcd47avcwfadceGcdtVglydbfgiBdbalaiBdbawcefgwae9hmbxdkkcbhwindnaoar6mbc9:skaocefhlao8SbbgicFeGhddndnaicu9mmbalhoxekaocvfhoadcFbGhdcrhidninal8SbbgDcFbGaitadVhdaDcu9kmealcefhlaicrfgic8J9hmbxdkkalcefhokabawcetfadc8Etc8F91adcd47avcwfadceGcdtVglydbfgi87ebalaiBdbawcefgwae9hmbkkcbc99aoarSEk;Toio97eue97aec98Ghedndnadcl9hmbaeTmecbhdinababpbbbgicKp:RecKp:Sep;6eglaicwp:RecKp:Sep;6ealp;Geaiczp:RecKp:Sep;6egvp;Gep;Kep;Legopxbbbbbbbbbbbbbbbbp:2egralpxbbbjbbbjbbbjbbbjgwp9op9rp;Keglpxbb;:9cbb;:9cbb;:9cbb;:9calalp;Meaoaop;Meavaravawp9op9rp;Keglalp;Mep;Kep;Kep;Jep;Negvp;Mepxbbn0bbn0bbn0bbn0grp;KepxFbbbFbbbFbbbFbbbp9oaipxbbbFbbbFbbbFbbbFp9op9qalavp;Mearp;Kecwp:RepxbFbbbFbbbFbbbFbbp9op9qaoavp;Mearp;Keczp:RepxbbFbbbFbbbFbbbFbp9op9qpkbbabczfhbadclfgdae6mbxdkkaeTmbcbhdinabczfgDaDpbbbgipxbbbbbbFFbbbbbbFFgwp9oabpbbbgoaipmbediwDqkzHOAKY8AEgvczp:Reczp:Sep;6eglaoaipmlvorxmPsCXQL358E8FpxFubbFubbFubbFubbp9op;6eavczp:Sep;6egvp;Gealp;Gep;Kep;Legipxbbbbbbbbbbbbbbbbp:2egralpxbbbjbbbjbbbjbbbjgqp9op9rp;Keglpxb;:FSb;:FSb;:FSb;:FSalalp;Meaiaip;Meavaravaqp9op9rp;Keglalp;Mep;Kep;Kep;Jep;Negvp;Mepxbbn0bbn0bbn0bbn0grp;KepxFFbbFFbbFFbbFFbbp9oaiavp;Mearp;Keczp:Rep9qgialavp;Mearp;KepxFFbbFFbbFFbbFFbbp9oglpmwDKYqk8AExm35Ps8E8Fp9qpkbbabaoawp9oaialpmbezHdiOAlvCXorQLp9qpkbbabcafhbadclfgdae6mbkkk;2ileue97euo97dnaec98GgiTmbcbheinabcKfpx:ji:1S:ji:1S:ji:1S:ji:1SabpbbbglabczfgvpbbbgopmlvorxmPsCXQL358E8Fgrczp:Segwpxibbbibbbibbbibbbp9qp;6egDp;NegqaDaDp;MegDaDp;KealaopmbediwDqkzHOAKY8AEgDczp:Reczp:Sep;6eglalp;MeaDczp:Sep;6egoaop;Mearczp:Reczp:Sep;6egrarp;Mep;Kep;Kep;Lepxbbbbbbbbbbbbbbbbp:4ep;Jep;Mepxbbn0bbn0bbn0bbn0gDp;KepxFFbbFFbbFFbbFFbbgkp9oaqaop;MeaDp;Keczp:Rep9qgoaqalp;MeaDp;Keakp9oaqarp;MeaDp;Keczp:Rep9qgDpmwDKYqk8AExm35Ps8E8Fglp5eawclp:RegqpEi:T:j83ibavalp5baqpEd:T:j83ibabcwfaoaDpmbezHdiOAlvCXorQLgDp5eaqpEe:T:j83ibabaDp5baqpEb:T:j83ibabcafhbaeclfgeai6mbkkkuee97dnadcd4ae2c98GgeTmbcbhdinababpbbbgicwp:Recwp:Sep;6eaicep:SepxbbjFbbjFbbjFbbjFp9opxbbjZbbjZbbjZbbjZp:Uep;Mepkbbabczfhbadclfgdae6mbkkk:Sodw97euaec98Ghedndnadcl9hmbaeTmecbhdinabpxbbuJbbuJbbuJbbuJabpbbbgicKp:TeglaicYp:Tep9qgvcdp:Teavp9qgvclp:Teavp9qgop;6ep;Negvaicwp:RecKp:SegraipxFbbbFbbbFbbbFbbbgwp9ogDp:Uep;6ep;Mepxbbn0bbn0bbn0bbn0gqp;Kecwp:RepxbFbbbFbbbFbbbFbbp9oavaDarp:Xeaiczp:RecKp:Segip:Uep;6ep;Meaqp;Keawp9op9qavaDaraip:Uep:Xep;6ep;Meaqp;Keczp:RepxbbFbbbFbbbFbbbFbp9op9qavaoalcep:Rep9oalpxebbbebbbebbbebbbp9op9qp;6ep;Meaqp;KecKp:Rep9qpkbbabczfhbadclfgdae6mbxdkkaeTmbcbhdinabczfgkpxbFu9hbFu9hbFu9hbFu9habpbbbglakpbbbgrpmlvorxmPsCXQL358E8Fgvczp:TegqavcHp:Tep9qgicdp:Teaip9qgiclp:Teaip9qgicwp:Teaip9qgop;6ep;NegialarpmbediwDqkzHOAKY8AEgDpxFFbbFFbbFFbbFFbbglp9ograDczp:Segwp:Ueavczp:Reczp:SegDp:Xep;6ep;Mepxbbn0bbn0bbn0bbn0gvp;Kealp9oaiarawaDp:Uep:Xep;6ep;Meavp;Keczp:Rep9qgwaiaoaqcep:Rep9oaqpxebbbebbbebbbebbbp9op9qp;6ep;Meavp;Keczp:ReaiaDarp:Uep;6ep;Meavp;Kealp9op9qgipmwDKYqk8AExm35Ps8E8FpkbbabawaipmbezHdiOAlvCXorQLpkbbabcafhbadclfgdae6mbkkk9teiucbcbydj:G:cjbgeabcifc98GfgbBdj:G:cjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaikkxebcj:Gdklz:zbb",e=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]),d=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 t=WebAssembly.validate(e)?o(a):o(c),b,n=WebAssembly.instantiate(t,{}).then(function(k){b=k.instance,b.exports.__wasm_call_ctors()});function o(k){for(var p=new Uint8Array(k.length),v=0;v<k.length;++v){var u=k.charCodeAt(v);p[v]=u>96?u-97:u>64?u-39:u+4}for(var j=0,v=0;v<k.length;++v)p[j++]=p[v]<60?d[p[v]]:(p[v]-60)*64+p[++v];return p.buffer.slice(0,j)}function s(k,p,v,u,j,w,E){var A=k.exports.sbrk,N=u+3&-4,M=A(N*j),I=A(w.length),z=new Uint8Array(k.exports.memory.buffer);z.set(w,I);var T=p(M,u,j,I,w.length);if(T==0&&E&&E(M,N,j),v.set(z.subarray(M,M+u*j)),A(M-A(0)),T!=0)throw new Error("Malformed buffer data: "+T)}var g={NONE:"",OCTAHEDRAL:"meshopt_decodeFilterOct",QUATERNION:"meshopt_decodeFilterQuat",EXPONENTIAL:"meshopt_decodeFilterExp",COLOR:"meshopt_decodeFilterColor"},i={ATTRIBUTES:"meshopt_decodeVertexBuffer",TRIANGLES:"meshopt_decodeIndexBuffer",INDICES:"meshopt_decodeIndexSequence"},h=[],l=0;function f(k){var p={object:new Worker(k),pending:0,requests:{}};return p.object.onmessage=function(v){var u=v.data;p.pending-=u.count,p.requests[u.id][u.action](u.value),delete p.requests[u.id]},p}function m(k){for(var p="self.ready = WebAssembly.instantiate(new Uint8Array(["+new Uint8Array(t)+"]), {}).then(function(result) { result.instance.exports.__wasm_call_ctors(); return result.instance; });self.onmessage = "+y.name+";"+s.toString()+y.toString(),v=new Blob([p],{type:"text/javascript"}),u=URL.createObjectURL(v),j=h.length;j<k;++j)h[j]=f(u);for(var j=k;j<h.length;++j)h[j].object.postMessage({});h.length=k,URL.revokeObjectURL(u)}function r(k,p,v,u,j){for(var w=h[0],E=1;E<h.length;++E)h[E].pending<w.pending&&(w=h[E]);return new Promise(function(A,N){var M=new Uint8Array(v),I=++l;w.pending+=k,w.requests[I]={resolve:A,reject:N},w.object.postMessage({id:I,count:k,size:p,source:M,mode:u,filter:j},[M.buffer])})}function y(k){var p=k.data;self.ready.then(function(v){if(!p.id)return self.close();try{var u=new Uint8Array(p.count*p.size);s(v,v.exports[p.mode],u,p.count,p.size,p.source,v.exports[p.filter]),self.postMessage({id:p.id,count:p.count,action:"resolve",value:u},[u.buffer])}catch(j){self.postMessage({id:p.id,count:p.count,action:"reject",value:j})}})}return{ready:n,supported:!0,useWorkers:function(k){m(k)},decodeVertexBuffer:function(k,p,v,u,j){s(b,b.exports.meshopt_decodeVertexBuffer,k,p,v,u,b.exports[g[j]])},decodeIndexBuffer:function(k,p,v,u){s(b,b.exports.meshopt_decodeIndexBuffer,k,p,v,u)},decodeIndexSequence:function(k,p,v,u){s(b,b.exports.meshopt_decodeIndexSequence,k,p,v,u)},decodeGltfBuffer:function(k,p,v,u,j,w){s(b,b.exports[i[j]],k,p,v,u,b.exports[g[w]])},decodeGltfBufferAsync:function(k,p,v,u,j){return h.length>0?r(k,p,v,i[u],g[j]):n.then(function(){var w=new Uint8Array(k*p);return s(b,b.exports[i[u]],w,k,p,v,b.exports[g[j]]),w})}}})();var Qa=(function(){var c="b9H79Tebbbe;veC9Geueu9Geub9Gbb9Gsuuuuuuuuuuuu99uueu9Gvuuuuub9Gruuuuuuub9Gouuuuuue999Gvuuuuueu9Gzuuuuuuuuuuu99uuuub9Gquuuuuuu99uueu9GPuuuuuuuuuuu99uueu9Gquuuuuuuu99ueu9Gruuuuuu99eu9Gwuuuuuu99ueu9Giuuue999GDuuuuuuuuueu9Gkuuuuuuuu99uub9Gluuuueu9Gluuuub9Giuuueui3EdilvorlwDiqkrxmPszdHObAAbeAlve9Weiiviebeoweuecj:Gdkr:Sdmo9TW9T9VV95dbH9F9F939H79T9F9J9H229F9Jt9VV7bbz9TW79O9V9Wt9F79P9T9W29P9M95bw8E9TW79O9V9Wt9F79P9T9W29P9M959x9Pt9OcttV9P9I91tW7bD8A9TW79O9V9Wt9F79P9T9W29P9M959x9Pt9O9v9W9K9HtWbqQ9TW79O9V9Wt9F79P9T9W29P9M959t29V9W9W95bkX9TW79O9V9Wt9F79P9T9W29P9M959qV919UWbmQ9TW79O9V9Wt9F79P9T9W29P9M959q9V9P9Ut7bPX9TW79O9V9Wt9F79P9T9W29P9M959t9J9H2WbsP9TW79O9V9Wt9FVW9TW79Obza9TW79O9V9Wt9F9V9Wt9P9T9P96W9wWVtW94SWt9J9O9sW9T9H9WbA59TW79O9V9Wt9F9NW9UWV9HtW9q9V79Pt9P9V9U9sW9T9H9WbCl79IV9RbXDwebcekdKYq:p:1dElbzOk:Q:tekYue99iuQ99eui99Due99xue9:w998Jjjjjbcj;sb9Rgs8Kjjjjbcbhzasc:Cefcbc;Kbz:xjjjb8AdnabaeSmbabaeadcdtz:wjjjb8AkdnamcdGTmbalcrfci4cbyd;y:L:cjbHjjjjbbhHasc:Cefasyd;8egecdtfaHBdbasaecefBd;8ecbhlcbhednadTmbabheadhOinaHaeydbci4fcb86bbaeclfheaOcufgOmbkcbhlabheadhOinaHaeydbgAci4fgCaCRbbgCceaAcrGgAtV86bbaCcu7aA4ceGalfhlaeclfheaOcufgOmbkcualcdtalcFFFFi0Ehekaecbyd;y:L:cjbHjjjjbbhzasc:Cefasyd;8egecdtfazBdbasaecefBd;8ealcd4alfhOcehHinaHgecethHaeaO6mbkcbhXcuaecdtgOaecFFFFi0Ecbyd;y:L:cjbHjjjjbbhHasc:Cefasyd;8egAcdtfaHBdbasaAcefBd;8eaHcFeaOz:xjjjbhQdnadTmbaecufhLcbhKindndnaQabaKcdtfgYydbgAc:v;t;h;Ev2aLGgOcdtfgCydbgHcuSmbceheinazaHcdtfydbaASmdaOaefhHaecefheaQaHaLGgOcdtfgCydbgHcu9hmbkkazaXcdtfaABdbaCaXBdbaXhHaXcefhXkaYaHBdbaKcefgKad9hmbkkaQcbyd;C:L:cjbH:bjjjbbasasyd;8ecufBd;8ekcbh8AcualcefgecdtaecFFFFi0Ecbyd;y:L:cjbHjjjjbbhKasc:Cefasyd;8egecdtfaKBdbasaKBdNeasaecefBd;8ecuadcitadcFFFFe0Ecbyd;y:L:cjbHjjjjbbhEasc:Cefasyd;8egecdtfaEBdbasaEBd:yeasaecefBd;8eascNefabadalcbz:cjjjbcualcdtgealcFFFFi0Eg3cbyd;y:L:cjbHjjjjbbhHasc:Cefasyd;8egOcdtfaHBdbasaOcefBd;8ea3cbyd;y:L:cjbHjjjjbbhXasc:Cefasyd;8egOcdtfaXBdbasaOcefBd;8eaHaXaialavazasc:Cefz:djjjbalcbyd;y:L:cjbHjjjjbbh5asc:Cefasyd;8egOcdtfa5BdbasaOcefBd;8ea3cbyd;y:L:cjbHjjjjbbhOasc:Cefasyd;8egAcdtfaOBdbasaAcefBd;8ea3cbyd;y:L:cjbHjjjjbbhAasc:Cefasyd;8egCcdtfaABdbasaCcefBd;8eaOcFeaez:xjjjbh8EaAcFeaez:xjjjbh8FdnalTmbindnaKa8AgAcefg8AcdtfydbgCaKaAcdtgefydbgOSmbaCaO9RhYaEaOcitfhaa8Faefhha8EaefhLcbhCindndnaaaCcitfydbgQaA9hmbaLaABdbahaABdbxekdnaKaQcdtggfgeclfydbgOaeydbgeSmbaOae9RhOaEaecitfheinaeydbaASmdaecwfheaOcufgOmbkka8FagfgeaAaQaeydbcuSEBdbaLaQaAaLydbcuSEBdbkaCcefgCaY9hmbkka8Aal9hmbkaHhOaXhAa8EhQa8FhCcbheindndnaeaOydbgL9hmbdnaeaAydbgL9hmbaQydbhLdnaCydbgYcu9hmbaLcu9hmba5aefcb86bbxikdnaYcuSmbaLcuSmbaeaYSmbaHaYcdtfydbaHaLcdtfydb9hmba5aefcd86bbxika5aefhadnaeaYSmbaeaLSmbaace86bbxikaacv86bbxdkdnaeaXaLcdtgYfydb9hmbdnaCydbgacuSmbaeaaSmbaQydbggcuSmbaeagSmba8FaYfydbghcuSmbahaLSmba8EaYfydbgYcuSmbaYaLSmbaHaacdtfydbgLaHaYcdtfydb9hmbaLaHagcdtfydbgYSmbaYaHahcdtfydb9hmba5aefcd86bbxika5aefcv86bbxdka5aefcv86bbxeka5aefa5aLfRbb86bbkaOclfhOaAclfhAaQclfhQaCclfhCalaecefge9hmbkdnamcaGTmbcbh8Jindndna5a8Jfg8KRbbg8Lc9:fPlbeebekdndndnaHa8Jcdtfydbgea8J9hmbcbhYcbh8MaqTmednazTmbcbh8Ma8JheinaqazaecdtgefydbfRbbce4a8MVceGh8MaXaefydbgea8J9hmbxikkcbh8Ma8JheinaqaefRbbce4a8MVceGh8MaXaecdtfydbgea8J9hmbxdkka5aefRbbhexeka8JheindnaKaecdtg8AfgeclfydbgOaeydbgeSmbaOae9RhgaEaecitfhhaHa8AfhacbhLinahaLcitfydbgQhednindnaKaecdtgCfgeclfydbgOaeydbgeSmbaOae9RhOaEaecitfheaaydbhAdninaHaeydbcdtfydbaASmeaecwfheaOcufgOTmdxbkkcbhexdkaXaCfydbgeaQ9hmbkcehekaYaeVhYaLcefgLag9hmbkkaXa8Afydbgea8J9hmbka8LclciaYceGEa8MEheka8Kae86bbka8Jcefg8Jal9hmbkkdnaqTmbdndnazTmbazheaHhOalhAindnaqaeydbfRbbceGTmba5aOydbfcv86bbkaeclfheaOclfhOaAcufgAmbxdkkaqheaHhOalhAindnaeRbbceGTmba5aOydbfcv86bbkaecefheaOclfhOaAcufgAmbkkaHhealhAa5hOindna5aeydbfRbbcv9hmbaOcv86bbkaeclfheaOcefhOaAcufgAmbkkamceGTmba5healhOindndnaeRbbcufPlbeebekaecv86bbkaecefheaOcufgOmbkkcbh8Ncualcx2alc;v:Q;v:Qe0Ecbyd;y:L:cjbHjjjjbbh8Kasc:Cefasyd;8egecdtfa8KBdbasaecefBd;8eascbBd:qeas9cb83i1ea8Kaialavazasc1efz:ejjjbhydndnaDmbcbh8PcbhaxekcbhaawhecbhOindnaeIdbJbbbb9ETmbasaacdtfaOBdbaacefhakaeclfheaDaOcefgO9hmbkcuaaal2gecdtaecFFFFi0Ecbyd;y:L:cjbHjjjjbbh8Pasc:Cefasyd;8egecdtfa8PBdbasaecefBd;8ealTmbdnaambcbhaxekarcd4hgdnazTmbaacdthhcbhLa8PhYinaoazaLcdtfydbag2cdtfhQasheaYhOaahAinaOaQaeydbcdtgCfIdbawaCfIdbNUdbaeclfheaOclfhOaAcufgAmbkaYahfhYaLcefgLal9hmbxdkkaacdthhcbhLa8PhYinaoaLag2cdtfhQasheaYhOaahAinaOaQaeydbcdtgCfIdbawaCfIdbNUdbaeclfheaOclfhOaAcufgAmbkaYahfhYaLcefgLal9hmbkkcualc8S2gOalc;D;O;f8U0EgCcbyd;y:L:cjbHjjjjbbheasc:Cefasyd;8egAcdtfaeBdbasaAcefBd;8eaecbaOz:xjjjbhIcbh8RcbhgdnaaTmbcbh8NaCcbyd;y:L:cjbHjjjjbbhgasc:Cefasyd;8egecdtfagBdbasaecefBd;8eagcbaOz:xjjjb8Acuaaal2gecltgOaecFFFFb0Ecbyd;y:L:cjbHjjjjbbh8Rasc:Cefasyd;8egecdtfa8RBdbasaecefBd;8ea8RcbaOz:xjjjb8AamcjjjjdGTmbcualcltgealcFFFFb0Ecbyd;y:L:cjbHjjjjbbh8Nasc:Cefasyd;8egOcdtfa8NBdbasaOcefBd;8ea8Ncbaez:xjjjb8AkdnadTmbcbhQabhOina8KaOclfydbgLcx2fgeIdba8KaOydbgYcx2fgAIdbg8S:tgRa8KaOcwfydbghcx2fgCIdlaAIdlg8U:tg8VNaeIdla8U:tg8WaCIdba8S:tg8XN:tg8Ya8YNa8WaCIdwaAIdwg8Z:tg80NaeIdwa8Z:tg8Wa8VN:tg81a81Na8Wa8XNaRa80N:tg80a80NMMg8V:rhBa8Yh8Xa80h8Wa81hRdna8VJbbbb9EgATmba8YaB:vh8Xa80aB:vh8Wa81aB:vhRkaIaHaYcdtfydbgCc8S2fgeaRaB:rg8VaRNNg83aeIdbMUdbaea8Wa8Va8WNgUNg85aeIdlMUdlaea8Xa8Va8XNg86Ng87aeIdwMUdwaeaRaUNgUaeIdxMUdxaea86aRNg88aeIdzMUdzaea8Wa86Ng89aeIdCMUdCaeaRa8Va8Xa8ZNaRa8SNa8Ua8WNMM:mg8:Ng86NgRaeIdKMUdKaea8Wa86Ng8WaeId3MUd3aea8Xa86Ng8XaeIdaMUdaaea86a8:Ng86aeId8KMUd8Kaea8VaeIdyMUdyaIaHaLcdtfydbgLc8S2fgea83aeIdbMUdbaea85aeIdlMUdlaea87aeIdwMUdwaeaUaeIdxMUdxaea88aeIdzMUdzaea89aeIdCMUdCaeaRaeIdKMUdKaea8WaeId3MUd3aea8XaeIdaMUdaaea86aeId8KMUd8Kaea8VaeIdyMUdyaIaHahcdtfydbgYc8S2fgea83aeIdbMUdbaea85aeIdlMUdlaea87aeIdwMUdwaeaUaeIdxMUdxaea88aeIdzMUdzaea89aeIdCMUdCaeaRaeIdKMUdKaea8WaeId3MUd3aea8XaeIdaMUdaaea86aeId8KMUd8Kaea8VaeIdyMUdydna8NTmbdnaATmba8YaB:vh8Ya80aB:vh80a81aB:vh81ka8NaCcltfgeaBJbbbZNgRa80Ng8VaeIdlMUdlaeaRa8YNg8WaeIdwMUdwaeaRa81Ng8XaeIdbMUdbaeaRa8S:ma81Na8Ua80N:ta8Za8YN:tNgRaeIdxMUdxa8NaLcltfgea8VaeIdlMUdlaea8WaeIdwMUdwaea8XaeIdbMUdbaeaRaeIdxMUdxa8NaYcltfgea8VaeIdlMUdlaea8WaeIdwMUdwaea8XaeIdbMUdbaeaRaeIdxMUdxkaOcxfhOaQcifgQad6mbkkdnalTmbJq;x8J88J;n;m;m89J:v:;;w8ZamczGEamc;abGEh80cbhOaHhCazhQaIhea8KhAindnaOaCydb9hmbaOhLdnazTmbaQydbhLka80hRdnaqTmbJbbjZa80aqaLfRbbclGEhRkaecxfgLaLIdbJbbbbMUdbaeczfgLaLIdbJbbbbMUdbaecCfgLaLIdbJbbbbMUdbaeaRaecyfgLIdbg8YNgRaeIdbMUdbaeclfgYaRaYIdbMUdbaecwfgYaRaYIdbMUdbaecKfgYaYIdbaAIdbg8WaRN:tUdbaAcwfIdbh8Vaec3fgYaYIdbaRaAclfIdbg8XN:tUdbaecafgYaYIdbaRa8VN:tUdbaec8KfgYIdbh81aLa8YaRMUdbaYa81aRa8Va8VNa8Wa8WNa8Xa8XNMMNMUdbkaCclfhCaQclfhQaec8SfheaAcxfhAalaOcefgO9hmbkkdnadTmbcbh8AabhLinaba8AcdtfhYcbheindna5aLaefydbgCfRbbgOTmba5aYaec:G:G:cjbfydbcdtfydbgQfRbbcFeGgATmbdnaOclSghmbaOci6mbaAclSmbaAcd0mekdnaOcd0mba8EaCcdtfydbaQ9hmekdnaAcd0mba8FaQcdtfydbaC9hmekdndnahmbaAcl9hmekaOciSmeaAciSmekJbbbZJbbbZJbbacaAcdSEaOcdSEhUdna8KaYaec:K:G:cjbfydbcdtfydbcx2fgOIdwa8KaCcx2fgAIdwg86:tg8Sa8KaQcx2fghIdwa86:tg8Xa8XNahIdbaAIdbg8U:tg80a80NahIdlaAIdlg8Z:tg8Va8VNMMg81Na8Xa8Sa8XNaOIdba8U:tg83a80Na8VaOIdla8Z:tg85NMMg8WN:tg8Ya8YNa83a81Na80a8WN:tgRaRNa85a81Na8Va8WN:tg8Wa8WNMMgBJbbbb9ETmba8YaB:rgB:vh8Ya8WaB:vh8WaRaB:vhRkaUa81:rNgBa8Ya86NaRa8UNa8Za8WNMM:mg81Ng87a81Nh88a80a85Na8Va83N:tg81a81Na8Va8SNa8Xa85N:tg8Va8VNa8Xa83Na80a8SN:tg8Xa8XNMMg83:rh80a8Ya87Nh85a8Wa87Nh89aRa87Nh87a8WaBa8YNg8SNh8:a8SaRNhZaRaBa8WNgnNhca8Ya8SNh8Ya8WanNh8WaRaBaRNNh8Sdna83Jbbbb9ETmba81a80:vh81a8Xa80:vh8Xa8Va80:vh8VkaIaHaCcdtfydbc8S2fgOaOIdba8Sa8VaUa80:rNgRa8VNNMg80MUdbaOa8Wa8XaRa8XNg8SNMg83aOIdlMUdlaOa8Ya81aRa81Ng8WNMg8YaOIdwMUdwaOaca8Va8SNMg8SaOIdxMUdxaOaZa8Wa8VNMgUaOIdzMUdzaOa8:a8Xa8WNMg8WaOIdCMUdCaOa87a8VaRa81a86Na8Va8UNa8Za8XNMMg86:mNgRNMg8VaOIdKMUdKaOa89a8XaRNMg8XaOId3MUd3aOa85a81aRNMg81aOIdaMUdaaOa88a86aRN:tgRaOId8KMUd8KaOaBaOIdyMUdyaIaHaQcdtfydbc8S2fgOa80aOIdbMUdbaOa83aOIdlMUdlaOa8YaOIdwMUdwaOa8SaOIdxMUdxaOaUaOIdzMUdzaOa8WaOIdCMUdCaOa8VaOIdKMUdKaOa8XaOId3MUd3aOa81aOIdaMUdaaOaRaOId8KMUd8KaOaBaOIdyMUdykaeclfgecx9hmbkaLcxfhLa8Acifg8Aad6mbkkdnamcjeGTmbalTmbcbh9cindnaKa9cgecdtgOfydbghaKaecefg9ccdtfydbg8M9pmba8Kaecx2fhDaIaHaOfydbgCc8S2fh8AindnaHaEahcitfgeydbgLcdtfydbg8JaC0mbaeydlh8LcuhAaLheindnaKaecdtgYfgeclfydbgOaeydbgeSmbaOae9RhOaEaecitfheindnaHaeydbcdtfydbaC9hmbaAcu9hhQaLhAaQmbaeclfydbhAkaecwfheaOcufgOmbkkaXaYfydbgeaL9hmbkaAaLSmbaAcuSmba8KaLcx2fgeIdbaDIdbg81:tgRa8Ka8Lcx2fgOIdlaDIdlg80:tg8XNaeIdla80:tg8VaOIdba81:tg8YN:tg86a8KaAcx2fgAIdba81:tg8Za8VNaAIdla80:tg83aRN:tg8SNa8VaOIdwaDIdwgB:tg8UNaeIdwaB:tg8Wa8XN:tg85a83a8WNaAIdwaB:tg87a8VN:tgUNa8Wa8YNaRa8UN:tg88a87aRNa8Za8WN:tg89NMMa86a86Na85a85Na88a88NMM:rJ:A:z9z:;Na8Sa8SNaUaUNa89a89NMM:rN9Gmbdna8Ua8Wa8WNaRaRNa8Va8VNMMg8SNa8Wa8Ua8WNa8YaRNa8Va8XNMMg86N:tg8Ua8UNa8Ya8SNaRa86N:tg8Ya8YNa8Xa8SNa8Va86N:tg86a86NMMg8XJbbbb9ETmba8Ua8X:rg8X:vh8Ua86a8X:vh86a8Ya8X:vh8Yka8S:rg8Xa8UaBNa8Ya81Na80a86NMM:mgUNg85aUNhUa8Ua85Nh88a86a85Nh89a8Ya85Nh8:a86a8Xa8UNg85NhZa85a8YNhna8Ya8Xa86NgcNhJa8Ua85Nh8Ua86acNh86a8Ya8Xa8YNNh85dna87a8SNa8Wa87a8WNa8ZaRNa8Va83NMMg8YN:tg8Wa8WNa8Za8SNaRa8YN:tgRaRNa83a8SNa8Va8YN:tg8Va8VNMMg8YJbbbb9ETmba8Wa8Y:rg8Y:vh8Wa8Va8Y:vh8VaRa8Y:vhRka8Aa8AIdba85aRa8XaRNNMg8SMUdba8Aa86a8Va8Xa8VNg8ZNMg86a8AIdlMUdla8Aa8Ua8Wa8Xa8WNg8YNMg8Ua8AIdwMUdwa8AaJaRa8ZNMg8Za8AIdxMUdxa8Aana8YaRNMg83a8AIdzMUdza8AaZa8Va8YNMg85a8AIdCMUdCa8Aa8:aRa8Xa8WaBNaRa81Na80a8VNMMg81:mNg8YNMgRa8AIdKMUdKa8Aa89a8Va8YNMg8Va8AId3MUd3a8Aa88a8Wa8YNMg8Wa8AIdaMUdaa8AaUa81a8YN:tg8Ya8AId8KMUd8Ka8Aa8Xa8XMg8Xa8AIdyMUdyaIa8Jc8S2fgea8SaeIdbMUdbaea86aeIdlMUdlaea8UaeIdwMUdwaea8ZaeIdxMUdxaea83aeIdzMUdzaea85aeIdCMUdCaeaRaeIdKMUdKaea8VaeId3MUd3aea8WaeIdaMUdaaea8YaeId8KMUd8Kaea8XaeIdyMUdykahcefgha8M9hmbkka9cal9hmbkkdnadTmbaaTmbcbhYinJbbbbh80a8KabaYcdtfgeclfydbgLcx2fgOIdwa8Kaeydbghcx2fgAIdwg8Z:tg8Va8VNaOIdbaAIdbg83:tg8Wa8WNaOIdlaAIdlg85:tg8Xa8XNMMg8Sa8Kaecwfydbg8Acx2fgeIdwa8Z:tg8YNa8Va8YNa8WaeIdba83:tg81Na8XaeIdla85:tgBNMMgRa8VN:tJbbbbJbbjZa8Sa8Ya8YNa81a81NaBaBNMMg8UNaRaRN:tg86:va86Jbbbb9BEg86Nh88a8Ua8VNaRa8YN:ta86Nh89a8SaBNaRa8XN:ta86Nh8:a8Ua8XNaRaBN:ta86NhZa8Sa81NaRa8WN:ta86Nhna8Ua8WNaRa81N:ta86Nhca8WaBNa8Xa81N:tgRaRNa8Xa8YNa8VaBN:tgRaRNa8Va81Na8Wa8YN:tgRaRNMM:rJbbbZNhRa8Pahaa2g8JcdtfhOa8Pa8Aaa2g8McdtfhAa8PaLaa2gDcdtfhCa8Z:mhJa85:mh9ea83:mhTascjdfheaahQJbbbbhBJbbbbh86Jbbbbh8SJbbbbh8UJbbbbh8ZJbbbbh83Jbbbbh85Jbbbbh87JbbbbhUinaecwfaRa89aCIdbaOIdbg8Y:tg8XNa88aAIdba8Y:tg81NMg8VNUdbaeclfaRaZa8XNa8:a81NMg8WNUdbaeaRaca8XNana81NMg8XNUdbaecxfaRaJa8VNa9ea8WNa8YaTa8XNMMMg8YNUdbaRa8Va8WNNa8ZMh8ZaRa8Va8XNNa8UMh8UaRa8Wa8XNNa8SMh8SaRa8Ya8YNNaUMhUaRa8Va8YNNa87Mh87aRa8Wa8YNNa85Mh85aRa8Xa8YNNa83Mh83aRa8Va8VNNa86Mh86aRa8Wa8WNNaBMhBaRa8Xa8XNNa80Mh80aOclfhOaCclfhCaAclfhAaeczfheaQcufgQmbkagahc8S2fgea80aeIdbMUdbaeaBaeIdlMUdlaea86aeIdwMUdwaea8SaeIdxMUdxaea8UaeIdzMUdzaea8ZaeIdCMUdCaea83aeIdKMUdKaea85aeId3MUd3aea87aeIdaMUdaaeaUaeId8KMUd8KaeaRaeIdyMUdyagaLc8S2fgea80aeIdbMUdbaeaBaeIdlMUdlaea86aeIdwMUdwaea8SaeIdxMUdxaea8UaeIdzMUdzaea8ZaeIdCMUdCaea83aeIdKMUdKaea85aeId3MUd3aea87aeIdaMUdaaeaUaeId8KMUd8KaeaRaeIdyMUdyaga8Ac8S2fgea80aeIdbMUdbaeaBaeIdlMUdlaea86aeIdwMUdwaea8SaeIdxMUdxaea8UaeIdzMUdzaea8ZaeIdCMUdCaea83aeIdKMUdKaea85aeId3MUd3aea87aeIdaMUdaaeaUaeId8KMUd8KaeaRaeIdyMUdya8Ra8JcltfhLcbhOaahCinaLaOfgeascjdfaOfgAIdbaeIdbMUdbaeclfgQaAclfIdbaQIdbMUdbaecwfgQaAcwfIdbaQIdbMUdbaecxfgeaAcxfIdbaeIdbMUdbaOczfhOaCcufgCmbka8RaDcltfhLcbhOaahCinaLaOfgeascjdfaOfgAIdbaeIdbMUdbaeclfgQaAclfIdbaQIdbMUdbaecwfgQaAcwfIdbaQIdbMUdbaecxfgeaAcxfIdbaeIdbMUdbaOczfhOaCcufgCmbka8Ra8McltfhLcbhOaahCinaLaOfgeascjdfaOfgAIdbaeIdbMUdbaeclfgQaAclfIdbaQIdbMUdbaecwfgQaAcwfIdbaQIdbMUdbaecxfgeaAcxfIdbaeIdbMUdbaOczfhOaCcufgCmbkaYcifgYad6mbkkcbhAdndnamcwGgSmbJbbbbh86cbh9hcbh9icbh6xekcbh9ha3cbyd;y:L:cjbHjjjjbbh6asc:Cefasyd;8egecdtfa6BdbasaecefBd;8ecua6alabadaHz:fjjjbgCcltaCcjjjjiGEcbyd;y:L:cjbHjjjjbbh9iasc:Cefasyd;8egecdtfa9iBdbasaecefBd;8ea9iaCa6a8Kalz:gjjjbJFFuuh86aCTmba9iheaChOinaeIdbgRa86a86aR9EEh86aeclfheaOcufgOmbkaCh9hkdnalTmbaKclfheaKydbhCa5hOalhQcbhAincbaeydbgLaC9RaORbbcpeGEaAfhAaOcefhOaeclfheaLhCaQcufgQmbkaAce4hAkcuadaA9Rcifg9kcx2a9kc;v:Q;v:Qe0Ecbyd;y:L:cjbHjjjjbbh0asc:Cefasyd;8egecdtfa0BdbasaecefBd;8ecua9kcdta9kcFFFFi0Ecbyd;y:L:cjbHjjjjbbh9masc:Cefasyd;8egecdtfa9mBdbasaecefBd;8ea3cbyd;y:L:cjbHjjjjbbh9nasc:Cefasyd;8egecdtfa9nBdbasaecefBd;8ealcbyd;y:L:cjbHjjjjbbh9oasc:Cefasyd;8egecdtfa9oBdbasaecefBd;8eaxaxNayJbbjZamclGEg9pa9pN:vh87JbbbbhUdnadak9nmbdna9kci6mbamcjdGh9qaaclth9ra0cwfh9sJbbbbh85JbbbbhUinascNefabadalaHz:cjjjbabh8Acbh3cbh9tinaba9tcdtfh8McbheindnaHa8AaefydbgAcdtghfydbgCaHa8Maec:W:G:cjbfydbcdtfydbgOcdtg8JfydbgQSmba5aOfRbbgYco2a5aAfRbbgLfRb;a:G:cjbg8LaLco2aYfgDRb;a:G:cjbg9cVcFeGTmbdnaQaC9nmbaDRb;W:G:cjbcFeGmekdnaLcufcFeGce0mbaYTmba8EahfydbaO9hmekdnaLTmbaYcufcFeGce0mba8Fa8JfydbaA9hmeka0a3cx2fgCaOaAa9ccFeGgQEBdlaCaAaOaQEBdbaCaQa8LGcb9hBdwa3cefh3kaeclfgecx9hmbkdna9tcifg9tad9pmba8Acxfh8Aa3cifa9k9nmekka3TmdcbhDinaIaHa0aDcx2fghydbgLcdtgCfydbg8Jc8S2fgeIdwa8KahydlgYcx2fgOIdwg8WNaeIdzaOIdbg8XNaeIdaMgRaRMMa8WNaeIdlaOIdlg8YNaeIdCa8WNaeId3MgRaRMMa8YNaeIdba8XNaeIdxa8YNaeIdKMgRaRMMa8XNaeId8KMMM:lhRJbbbbJbbjZaeIdyg8V:va8VJbbbb9BEh8Vdndnahydwg8MmbJFFuuhBxekJbbbbJbbjZaIaHaYcdtfydbc8S2fgeIdyg81:va81Jbbbb9BEaeIdwa8KaLcx2fgOIdwg81NaeIdzaOIdbg80NaeIdaMgBaBMMa81NaeIdlaOIdlgBNaeIdCa81NaeId3Mg81a81MMaBNaeIdba80NaeIdxaBNaeIdKMg81a81MMa80NaeId8KMMM:lNhBka8VaRNh80dnaaTmbagaLc8S2fgAIdwa8WNaAIdza8XNaAIdaMgRaRMMa8WNaAIdla8YNaAIdCa8WNaAId3MgRaRMMa8YNaAIdba8XNaAIdxa8YNaAIdKMgRaRMMa8XNaAId8KMMMhRa8PaYaa2gQcdtfhOa8RaLaa2g8AcltfheaAIdyh81aahAinaOIdbg8Va8Va81NaecxfIdba8WaecwfIdbNa8XaeIdbNa8YaeclfIdbNMMMg8Va8VM:tNaRMhRaOclfhOaeczfheaAcufgAmbkaR:lgRa81aRa819DEaRa9qEh8Sdndna8MmbJbbbbhRxekagaYc8S2fgAIdwa8KaLcx2fgeIdwg8WNaAIdzaeIdbg8XNaAIdaMgRaRMMa8WNaAIdlaeIdlg8YNaAIdCa8WNaAId3MgRaRMMa8YNaAIdba8XNaAIdxa8YNaAIdKMgRaRMMa8XNaAId8KMMMhRa8Pa8AcdtfhOa8RaQcltfheaAIdyh81aahAinaOIdbg8Va8Va81NaecxfIdba8WaecwfIdbNa8XaeIdbNa8YaeclfIdbNMMMg8Va8VM:tNaRMhRaOclfhOaeczfheaAcufgAmbkaR:lgRa81aRa819DEaRa9qEhRka80a8SMh80aBaRMhBdndndna5aLfRbbc9:fPibeedkdna8Fa8Ea8EaCfydbaYSEaXaCfydbgQcdtfydbgCcu9hmbaXaYcdtfydbhCkagaQc8S2fgAIdwa8KaCcx2fgeIdwg8WNaAIdzaeIdbg8XNaAIdaMgRaRMMa8WNaAIdlaeIdlg8YNaAIdCa8WNaAId3MgRaRMMa8YNaAIdba8XNaAIdxa8YNaAIdKMgRaRMMa8XNaAId8KMMMhRa8PaCaa2g8AcdtfhOa8RaQaa2g8JcltfheaAIdyh81aahAinaOIdbg8Va8Va81NaecxfIdba8WaecwfIdbNa8XaeIdbNa8YaeclfIdbNMMMg8Va8VM:tNaRMhRaOclfhOaeczfheaAcufgAmbkaR:lgRa81aRa819DEaRa9qEh8Sdndna8MmbJbbbbhRxekagaCc8S2fgAIdwa8KaQcx2fgeIdwg8WNaAIdzaeIdbg8XNaAIdaMgRaRMMa8WNaAIdlaeIdlg8YNaAIdCa8WNaAId3MgRaRMMa8YNaAIdba8XNaAIdxa8YNaAIdKMgRaRMMa8XNaAId8KMMMhRa8Pa8JcdtfhOa8Ra8AcltfheaAIdyh81aahAinaOIdbg8Va8Va81NaecxfIdba8WaecwfIdbNa8XaeIdbNa8YaeclfIdbNMMMg8Va8VM:tNaRMhRaOclfhOaeczfheaAcufgAmbkaR:lgRa81aRa819DEaRa9qEhRka80a8SMh80aBaRMhBxdkaXaCfydbgCaLSmbaHaYcdtfydbh8Aindndna8EaCcdtgQfydbgecuSmbaHaecdtfydba8ASmekdna8FaQfydbgecuSmbaHaecdtfydba8ASmekaYhekagaCc8S2fgAIdwa8Kaecx2fgOIdwg8WNaAIdzaOIdbg8XNaAIdaMgRaRMMa8WNaAIdlaOIdlg8YNaAIdCa8WNaAId3MgRaRMMa8YNaAIdba8XNaAIdxa8YNaAIdKMgRaRMMa8XNaAId8KMMMhRa8Paeaa2cdtfhOa8RaCaa2cltfheaAIdyh81aahAinaOIdbg8Va8Va81NaecxfIdba8WaecwfIdbNa8XaeIdbNa8YaeclfIdbNMMMg8Va8VM:tNaRMhRaOclfhOaeczfheaAcufgAmbka80aR:lgRa81aRa819DEaRa9qEMh80aXaQfydbgCaL9hmbkkdna5aYfRbbgeciSmbaecl9hmeka8MTmbaXaYcdtfydbgCaYSmbindndna8EaCcdtgQfydbgecuSmbaHaecdtfydba8JSmekdna8FaQfydbgecuSmbaHaecdtfydba8JSmekaLhekagaCc8S2fgAIdwa8Kaecx2fgOIdwg8WNaAIdzaOIdbg8XNaAIdaMgRaRMMa8WNaAIdlaOIdlg8YNaAIdCa8WNaAId3MgRaRMMa8YNaAIdba8XNaAIdxa8YNaAIdKMgRaRMMa8XNaAId8KMMMhRa8Paeaa2cdtfhOa8RaCaa2cltfheaAIdyh81aahAinaOIdbg8Va8Va81NaecxfIdba8WaecwfIdbNa8XaeIdbNa8YaeclfIdbNMMMg8Va8VM:tNaRMhRaOclfhOaeczfheaAcufgAmbkaBaR:lgRa81aRa819DEaRa9qEMhBaXaQfydbgCaY9hmbkkahaBa80aBa809DgeEUdwahaLaYaea8Mcb9hGgeEBdlahaYaLaeEBdbaDcefgDa39hmbkascjdfcbcj;qbz:xjjjb8Aa9shea3hOinascjdfaeydbcA4cF8FGgAcFAaAcFA6EcdtfgAaAydbcefBdbaecxfheaOcufgOmbkcbhecbhOinascjdfaefgAydbhCaAaOBdbaCaOfhOaeclfgecj;qb9hmbkcbhea9shOinascjdfaOydbcA4cF8FGgAcFAaAcFA6EcdtfgAaAydbgAcefBdba9maAcdtfaeBdbaOcxfhOa3aecefge9hmbkadak9RgAci9Uh9udnalTmbcbhea9nhOinaOaeBdbaOclfhOalaecefge9hmbkkcbh9va9ocbalz:xjjjbh9caAcO9Uh9wa9uce4h9tcbh8Lcbh8Mdnina0a9ma8Mcdtfydbcx2fg8JIdwgRa879Emea8La9u9pmeJFFuuh8Vdna9ta39pmba0a9ma9tcdtfydbcx2fIdwJbb;aZNh8VkdnaRa8V9ETmbaRaU9ETmba8La9w0mdkdna9caHa8JydlgDcdtg9xfg8AydbgAfg9yRbba9caHa8Jydbghcdtg9zfydbgefg9ARbbVmba5ahfRbbh9BdndnaKaecdtfgOclfydbgCaOydbgOSmbaCaO9RhCa8KaAcx2fhLa8Kaecx2fhYaEaOcitfheindna9naeydbcdtfydbgOaASmba9naeclfydbcdtfydbgQaASmbaOaQSmba8KaQcx2fgQIdba8KaOcx2fgOIdbg8W:tgRaYIdlaOIdlg8X:tg80NaQIdla8X:tg8VaYIdba8W:tgBN:tg8YaRaLIdla8X:tg8SNa8VaLIdba8W:tg8UN:tg8XNa8VaYIdwaOIdwg81:tg8ZNaQIdwa81:tg8Wa80N:tg80a8VaLIdwa81:tg83Na8Wa8SN:tg8VNa8WaBNaRa8ZN:tg81a8Wa8UNaRa83N:tgRNMMa8Ya8YNa80a80Na81a81NMMa8Xa8XNa8Va8VNaRaRNMMN:rJbbj8:N9FmikaecwfheaCcufgCmbkkdndna9Bc99fcFeGce0mba9na9zfaDBdbaXa9zfydbgeahSmeina8AydbhAdndna8EaecdtgOfydbgecuSmbaHaecdtfydbaASmekdna8FaOfydbgecuSmbaHaecdtfydbaASmekaDheka9naOfaeBdbaXaOfydbgeah9hmbxdkkdndna9BcFeGcdSmbaDhexekdna8Fa8Ea8Ea9zfydbaDSEaXa9zfydbghcdtfydbgecu9hmbaXa9xfydbheka9na9zfaDBdbka9nahcdtfaeBdbka9Ace86bba9yce86bba8JIdwgRaUaUaR9DEhUa9vcefh9vcecda9BcFeGceSEa8Lfh8Lxeka9tcefh9tka8Mcefg8Ma39hmbkka9vTmddnalTmbcbhLcbhhindna9nahcdtgefydbgAahSmbaHaAcdtfydbh8AdnahaHaefydb9hg8JmbaIa8Ac8S2fgeaIahc8S2fgOIdbaeIdbMUdbaeaOIdlaeIdlMUdlaeaOIdwaeIdwMUdwaeaOIdxaeIdxMUdxaeaOIdzaeIdzMUdzaeaOIdCaeIdCMUdCaeaOIdKaeIdKMUdKaeaOId3aeId3MUd3aeaOIdaaeIdaMUdaaeaOId8KaeId8KMUd8KaeaOIdyaeIdyMUdya8NTmba8Na8Acltfgea8NahcltfgOIdbaeIdbMUdbaeaOIdlaeIdlMUdlaeaOIdwaeIdwMUdwaeaOIdxaeIdxMUdxkaaTmbagaAc8S2fgeagahc8S2g8MfgOIdbaeIdbMUdbaeaOIdlaeIdlMUdlaeaOIdwaeIdwMUdwaeaOIdxaeIdxMUdxaeaOIdzaeIdzMUdzaeaOIdCaeIdCMUdCaeaOIdKaeIdKMUdKaeaOId3aeId3MUd3aeaOIdaaeIdaMUdaaeaOId8KaeId8KMUd8KaeaOIdyaeIdyMUdya9raA2hYa8RhOaahCinaOaYfgeaOaLfgAIdbaeIdbMUdbaeclfgQaAclfIdbaQIdbMUdbaecwfgQaAcwfIdbaQIdbMUdbaecxfgeaAcxfIdbaeIdbMUdbaOczfhOaCcufgCmbka8JmbJbbbbJbbjZaIa8MfgeIdygR:vaRJbbbb9BEaeIdwa8Ka8Acx2fgOIdwgRNaeIdzaOIdbg8VNaeIdaMg8Wa8WMMaRNaeIdlaOIdlg8WNaeIdCaRNaeId3MgRaRMMa8WNaeIdba8VNaeIdxa8WNaeIdKMgRaRMMa8VNaeId8KMMM:lNgRa85a85aR9DEh85kaLa9rfhLahcefghal9hmbkcbhOa8EheindnaeydbgAcuSmbdnaOa9naAcdtgCfydbgA9hmbcuhAa8EaCfydbgCcuSmba9naCcdtfydbhAkaeaABdbkaeclfhealaOcefgO9hmbkcbhOa8FheindnaeydbgAcuSmbdnaOa9naAcdtgCfydbgA9hmbcuhAa8FaCfydbgCcuSmba9naCcdtfydbhAkaeaABdbkaeclfhealaOcefgO9hmbkka85aUaaEh85cbhOabhecbhAindnaHa9naeydbcdtfydbgLcdtfydbgCaHa9naeclfydbcdtfydbgYcdtfydbgQSmbaCaHa9naecwfydbcdtfydbg8AcdtfydbghSmbaQahSmbabaOcdtfgCaLBdbaCcwfa8ABdbaCclfaYBdbaOcifhOkaecxfheaAcifgAad6mbkdndnaSmbaOhdxekdnaOak0mbaOhdxekdna86a859FmbaOhdxekJFFuuh86cbhdabhecbhAindna9ia6aeydbgCcdtfydbcdtfIdbgRa859ETmbaeclf8Pdbh9CabadcdtfgQaCBdbaQclfa9C83dbaRa86a86aR9EEh86adcifhdkaecxfheaAcifgAaO6mbkkadak0mbxdkkascNefabadalaHz:cjjjbkdndnadak0mbadhYxekdnaSmbadhYxekdna86a879FmbadhYxekcehQina86Jbb;aZNgRa87aRa879DEh8WJbbbbhRdna9hTmba9ihea9hhOinaeIdbg8VaRa8Va8W9FEaRa8VaR9EEhRaeclfheaOcufgOmbkkJFFuuh86cbhYabhecbhOindna9ia6aeydbgAcdtfydbcdtfIdbg8Va8W9ETmbaeclf8Pdbh9CabaYcdtfgCaABdbaCclfa9C83dba8Va86a86a8V9EEh86aYcifhYkaecxfheaOcifgOad6mbkdnaQaYad9hVceGmbadhYxdkaRaUaUaR9DEhUaYak9nmecbhQaYhda86a879FmbkkdnamcjjjjdGTmba9ocbalz:xjjjbh8AdnaYTmbabheaYhOina8AaeydbgAfce86bba8AaHaAcdtfydbfce86bbaeclfheaOcufgOmbkkascNefabaYalaHz:cjjjbdndnalTmbcbhCindna8AaCfRbbTmbdna5aCfRbbPlbeebekdnaHaCcdtgLfydbgeaCSmba8KaCcx2fgOa8Kaecx2fgeydwBdwaOae8Pdb83dbxekaIaCc8S2fgQIdygnanJL:3;rUNgRMh87aQIdwgxaRMh8SaQIdlg9DaRMh8UaQIdbg9EaRMh81aQIdag9FaRa8KaCcx2fg8JIdwg88N:th8ZaQId3g9GaRa8JIdlg89N:th83aQIdKg9Ha8JIdbg8:aRN:th80JbbbbhZaQIdCg9IJbbbbMh85aQIdzg9JJbbbbMhBaQIdxg9KJbbbbMh86dndnaaTmbaChAinJbbbba87agaAc8S2fgOIdygR:vaRJbbbb9BEhRa8RaAaa2cltfheaOIdaa87Na8ZMh8ZaOId3a87Na83Mh83aOIdKa87Na80Mh80aOIdCa87Na85Mh85aOIdza87NaBMhBaOIdxa87Na86Mh86aOIdwa87Na8SMh8SaOIdla87Na8UMh8UaOIdba87Na81Mh81aahOina8ZaecwfIdbg8VaecxfIdbg8YNaRN:th8Za83aeclfIdbg8Wa8YNaRN:th83a85a8Wa8VNaRN:th85a81aeIdbg8Xa8XNaRN:th81a80a8Xa8YNaRN:th80aBa8Xa8VNaRN:thBa86a8Xa8WNaRN:th86a8Sa8Va8VNaRN:th8Sa8Ua8Wa8WNaRN:th8UaeczfheaOcufgOmbkaXaAcdtfydbgAaC9hmbka8NTmba8NaCcltfgeIdxhTaeIdwhcaeIdlhJaeIdbhRxekJbbbbhTJbbbbhcJbbbbhJJbbbbhRkaBa81:vg8Wa80Na8Z:ta85aBa86a81:vg8VN:tg8Za8Ua86a8VN:tg8Y:vg8Xa8Va80Na83:tg8UN:th83acaRa8WN:taJaRa8VN:tg86a8XN:tg85a8SaBa8WN:ta8Za8XN:tgB:vg8S:mh8Za86a8Y:vgc:mhJdnJbbbbaRaRa81:vg9eN:ta86acN:ta85a8SN:tg86:la87J:983:g81NgR9ETmba8Za83NaJa8UNa9ea80NaT:tMMa86:vhZka81:laR9ETmba8Y:laR9ETmbaB:laR9ETmba9e:maZNa8W:ma8ZaZNa83aB:vMgBNa8V:maJaZNa8X:maBNa8Ua8Y:vMMg85Na80:ma81:vMMMh87aKaLfgeclfydbgOaeydbge9RhhaEaecitfhLJbbbbhRdnaOaeSg8MmbJbbbbhRaLheahhAina8Kaeclfydbcx2fgOIdwa88:tg8Va8VNaOIdba8::tg8Va8VNaOIdla89:tg8Va8VNMMg8Va8Kaeydbcx2fgOIdwa88:tg8Wa8WNaOIdba8::tg8Wa8WNaOIdla89:tg8Wa8WNMMg8WaRaRa8W9DEgRaRa8V9DEhRaecwfheaAcufgAmbkaR:rgRaRNhRkaBa88:tg8Va8VNa87a8::tg8Va8VNa85a89:tg8Va8VNMMaR9EmbaQId8KhZdna8Mmbina8KaLclfydbcx2fgeIdba8KaLydbcx2fgOIdbg8W:tgRa89aOIdlg8X:tg80NaeIdla8X:tg8Va8:a8W:tg86N:tg8YaRa85a8X:tg8SNa8Va87a8W:tg8UN:tg8XNa8Va88aOIdwg81:tg8ZNaeIdwa81:tg8Wa80N:tg80a8VaBa81:tg83Na8Wa8SN:tg8VNa8Wa86NaRa8ZN:tg81a8Wa8UNaRa83N:tgRNMMa8Ya8YNa80a80Na81a81NMMa8Xa8XNa8Va8VNaRaRNMMN:rJbbj8:N9FmdaLcwfhLahcufghmbkkJbbbbJbbjZan:vanJbbbb9BEgRaxaBNa9Ja87Na9FMg8Va8VMMaBNa9Da85Na9IaBNa9GMg8Va8VMMa85Na9Ea87Na9Ka85Na9HMg8Va8VMMa87NaZMMM:lNaRaxa88Na9Ja8:Na9FMg8Va8VMMa88Na9Da89Na9Ia88Na9GMg8Va8VMMa89Na9Ea8:Na9Ka89Na9HMg8Va8VMMa8:NaZMMM:lNJbb;aZNJ:983:g81M9Emba8JaBUdwa8Ja85Udla8Ja87UdbkaCcefgCal9hmbkdnaambcbhaxdkcbhQindna8AaQfRbbTmbaHaQcdtgefydbaQ9hmba5aQfhhaXaefh8Ja8KaQcx2fhAa8PaQaa2cdtfh8McbhEincuhCdnahRbbc99fcFeGce0mbaQhCa8JydbgeaQSmba8PaEcdtgOfhLa8MaOfIdbhRaQhCinaChOcuhCdnaLaeaa2cdtfIdbaR9CmbaOcuSmbaOhCagaec8S2fIdyagaOc8S2fIdy9ETmbaehCkaXaecdtfydbgeaQ9hmbkka8PaEcdtfhLa8RaEcltfhKaQheinaLaeaa2cdtfJbbbbJbbjZagaeaCaCcuSEgOc8S2fIdygR:vaRJbbbb9BEaKaOaa2cltfgOIdwaAIdwNaOIdbaAIdbNaOIdlaAIdlNMMaOIdxMNUdbaXaecdtfydbgeaQ9hmbkaEcefgEaa9hmbkkaQcefgQal9hmbxdkkaambcbhakaiavaoarawaaala8Ka8Pazasayasc1efa5a8Aaqz:hjjjbkdnamcjjjjlGTmbazmbaYTmbabhecbhLina5aeydbgAfRbbc3thQaecwfgXydbhHcjjjj94hCdna8EaAcdtgEfydbaeclfgKydbgOSmbcjjjj94cba8FaOcdtfydbaASEhCkaeaQaCVaAVBdba5aOfRbbc3thacjjjj94hCcjjjj94hQdna8EaOcdtfydbaHSmbcjjjj94cba8FaHcdtfydbaOSEhQkaKaaaQVaOVBdba5aHfRbbc3thOdna8EaHcdtfydbaASmbcjjjj94cba8FaEfydbaHSEhCkaXaOaCVaHVBdbaecxfheaLcifgLaY6mbkkdnazTmbaYTmbaYheinabazabydbcdtfydbBdbabclfhbaecufgembkkdnaPTmbaPa9paU:rNUdbkdnasyd;8egHTmbaHcdtasc:Ceffc98fheinaeydbcbyd;C:L:cjbH:bjjjbbaec98fheaHcufgHmbkkascj;sbf8KjjjjbaYk;Yieouabydlhvabydbclfcbaicdtz:xjjjbhoadci9UhrdnadTmbdnalTmbaehwadhDinaoalawydbcdtfydbcdtfgqaqydbcefBdbawclfhwaDcufgDmbxdkkaehwadhDinaoawydbcdtfgqaqydbcefBdbawclfhwaDcufgDmbkkdnaiTmbcbhDaohwinawydbhqawaDBdbawclfhwaqaDfhDaicufgimbkkdnadci6mbinaecwfydbhwaeclfydbhDaeydbhidnalTmbalawcdtfydbhwalaDcdtfydbhDalaicdtfydbhikavaoaicdtfgqydbcitfaDBdbavaqydbcitfawBdlaqaqydbcefBdbavaoaDcdtfgqydbcitfawBdbavaqydbcitfaiBdlaqaqydbcefBdbavaoawcdtfgwydbcitfaiBdbavawydbcitfaDBdlawawydbcefBdbaecxfhearcufgrmbkkabydbcbBdbk:todDue99aicd4aifhrcehwinawgDcethwaDar6mbkcuaDcdtgraDcFFFFi0Ecbyd;y:L:cjbHjjjjbbhwaoaoyd9GgqcefBd9GaoaqcdtfawBdbawcFearz:xjjjbhkdnaiTmbalcd4hlaDcufhxcbhminamhDdnavTmbavamcdtfydbhDkcbadaDal2cdtfgDydlgwawcjjjj94SEgwcH4aw7c:F:b:DD2cbaDydbgwawcjjjj94SEgwcH4aw7c;D;O:B8J27cbaDydwgDaDcjjjj94SEgDcH4aD7c:3F;N8N27axGhwamcdthPdndndnavTmbakawcdtfgrydbgDcuSmeadavaPfydbal2cdtfgsIdbhzcehqinaqhrdnadavaDcdtfydbal2cdtfgqIdbaz9CmbaqIdlasIdl9CmbaqIdwasIdw9BmlkarcefhqakawarfaxGgwcdtfgrydbgDcu9hmbxdkkakawcdtfgrydbgDcuSmbadamal2cdtfgsIdbhzcehqinaqhrdnadaDal2cdtfgqIdbaz9CmbaqIdlasIdl9CmbaqIdwasIdw9BmikarcefhqakawarfaxGgwcdtfgrydbgDcu9hmbkkaramBdbamhDkabaPfaDBdbamcefgmai9hmbkkakcbyd;C:L:cjbH:bjjjbbaoaoyd9GcufBd9GdnaeTmbaiTmbcbhDaehwinawaDBdbawclfhwaiaDcefgD9hmbkcbhDaehwindnaDabydbgrSmbawaearcdtfgrydbBdbaraDBdbkabclfhbawclfhwaiaDcefgD9hmbkkk;:odvuv998Jjjjjbca9Rgocbyd1:G:cjbBdKaocb8Pdj:G:cjb83izaocbydN:G:cjbBdwaocb8Pd:m:G:cjb83ibdnadTmbaicd4hrdnabmbdnalTmbcbhwinaealawcdtfydbar2cdtfhDcbhiinaoczfaifgqaDaifIdbgkaqIdbgxaxak9EEUdbaoaifgqakaqIdbgxaxak9DEUdbaiclfgicx9hmbkawcefgwad9hmbxikkarcdthwcbhDincbhiinaoczfaifgqaeaifIdbgkaqIdbgxaxak9EEUdbaoaifgqakaqIdbgxaxak9DEUdbaiclfgicx9hmbkaeawfheaDcefgDad9hmbxdkkdnalTmbcbhwinabawcx2fgiaealawcdtfydbar2cdtfgDIdbUdbaiaDIdlUdlaiaDIdwUdwcbhiinaoczfaifgqaDaifIdbgkaqIdbgxaxak9EEUdbaoaifgqakaqIdbgxaxak9DEUdbaiclfgicx9hmbkawcefgwad9hmbxdkkarcdthlcbhwaehDinabawcx2fgiaeawar2cdtfgqIdbUdbaiaqIdlUdlaiaqIdwUdwcbhiinaoczfaifgqaDaifIdbgkaqIdbgxaxak9EEUdbaoaifgqakaqIdbgxaxak9DEUdbaiclfgicx9hmbkaDalfhDawcefgwad9hmbkkJbbbbaoIdbaoIdzgx:tgkakJbbbb9DEgkaoIdlaoIdCgm:tgPaPak9DEgkaoIdwaoIdKgP:tgsasak9DEhsdnabTmbadTmbJbbbbJbbjZas:vasJbbbb9BEhkinabakabIdbax:tNUdbabclfgoakaoIdbam:tNUdbabcwfgoakaoIdbaP:tNUdbabcxfhbadcufgdmbkkdnavTmbavaPUdwavamUdlavaxUdbkask:WlewudnaeTmbcbhvabhoinaoavBdbaoclfhoaeavcefgv9hmbkkdnaiTmbcbhrinadarcdtfhwcbhDinalawaDcdtgvyd:G:G:cjbcdtfydbcdtfydbhodnalawavfydbcdtfydbgqabaqcdtfgkydbgvSmbinakabavgqcdtfgxydbgvBdbaxhkaqav9hmbkkdnaoabaocdtfgkydbgvSmbinakabavgocdtfgxydbgvBdbaxhkaoav9hmbkkdnaqaoSmbabaqaoaqao0Ecdtfaqaoaqao6EBdbkaDcefgDci9hmbkarcifgrai6mbkkdnaembcbskcbhxindnalaxcdtgvfydbax9hmbaxhodnaxabavfgDydbgvSmbaDhqinaqabavgocdtfgkydbgvBdbakhqaoav9hmbkkaDaoBdbkaxcefgxae9hmbkcbhkabhvcbhoindndnaoalydbgq9hmbdnaoavydbgq9hmbavakBdbakcefhkxdkavabaqcdtfydbBdbxekavabaqcdtfydbBdbkalclfhlavclfhvaeaocefgo9hmbkakk;jiilud99euabcbaecltz:xjjjbhvdnalTmbadhoaihralhwinarcwfIdbhDarclfIdbhqavaoydbcltfgkarIdbakIdbMUdbakaqakIdlMUdlakaDakIdwMUdwakakIdxJbbjZMUdxaoclfhoarcxfhrawcufgwmbkkdnaeTmbavhkaehrinakcxfgoIdbhDaocbBdbakakIdbJbbbbJbbjZaD:vaDJbbbb9BEgDNUdbakclfgoaDaoIdbNUdbakcwfgoaDaoIdbNUdbakczfhkarcufgrmbkkdnalTmbinavadydbcltfgkaicwfIdbakIdw:tgDaDNaiIdbakIdb:tgDaDNaiclfIdbakIdl:tgDaDNMMgDakIdxgqaqaD9DEUdxadclfhdaicxfhialcufglmbkkdnaeTmbavcxfhkinabakIdbUdbakczfhkabclfhbaecufgembkkk:moerudnaoTmbaecd4hzdnavTmbaicd4hHavcdthOcbhAindnaPaAfRbbTmbaAhednaDTmbaDaAcdtfydbhekdnasTmbasaefRbbceGmekdnamaAfRbbcvSmbabaeaz2cdtfgiaraAcx2fgCIdbakNaxIdbMUdbaiaCIdlakNaxIdlMUdlaiaCIdwakNaxIdwMUdwkadaeaH2cdtfhXaqheawhiavhCinaXaeydbcdtgQfaiIdbalaQfIdb:vUdbaeclfheaiclfhiaCcufgCmbkkawaOfhwaAcefgAao9hmbxdkkdnasmbcbheaDhiindnaPaefRbbTmbaehCdnaDTmbaiydbhCkamaefRbbcvSmbabaCaz2cdtfgCarIdbakNaxIdbMUdbaCarclfIdbakNaxIdlMUdlaCarcwfIdbakNaxIdwMUdwkaiclfhiarcxfhraoaecefge9hmbxdkkdnaDTmbindnaPRbbTmbasaDydbgefRbbceGmbamRbbcvSmbabaeaz2cdtfgearIdbakNaxIdbMUdbaearclfIdbakNaxIdlMUdlaearcwfIdbakNaxIdwMUdwkaPcefhPaDclfhDamcefhmarcxfhraocufgombxdkkazcdthicbheindnaPaefRbbTmbasaefRbbceGmbamaefRbbcvSmbabarIdbakNaxIdbMUdbabclfarclfIdbakNaxIdlMUdbabcwfarcwfIdbakNaxIdwMUdbkarcxfhrabaifhbaoaecefge9hmbkkk8MbabaeadaialavcbcbcbcbcbaoarawaDz:bjjjbk8MbabaeadaialavaoarawaDaqakaxamaPz:bjjjbkRbababaeadaialavaoarawaDaqakaxcjjjjdVamz:bjjjbk:vgoque99due99duq998Jjjjjbc;Wb9Rgq8Kjjjjbcbhkaqcxfcbc;Kbz:xjjjb8Aaqcualcx2alc;v:Q;v:Qe0Ecbyd;y:L:cjbHjjjjbbgxBdxaqceBd2axaialavcbcbz:ejjjb8AaqcualcdtalcFFFFi0Egmcbyd;y:L:cjbHjjjjbbgiBdzaqcdBd2dndnJFF959eJbbjZawJbbjZawJbbjZ9DE:vawJ9VO:d869DEgw:lJbbb9p9DTmbaw:OhPxekcjjjj94hPkadci9Uhsarco9UhzdndnaombaPcd9imekdnalTmbaPcuf:YhwdnaoTmbcbhvaihHaxhOindndnaoavfRbbceGTmbavcjjjjlVhAxekdndnaOclfIdbawNJbbbZMgC:lJbbb9p9DTmbaC:OhAxekcjjjj94hAkaAcqthAdndnaOcwfIdbawNJbbbZMgC:lJbbb9p9DTmbaC:OhXxekcjjjj94hXkaAaXVhAdndnaOIdbawNJbbbZMgC:lJbbb9p9DTmbaC:OhXxekcjjjj94hXkaAaXcCtVhAkaHaABdbaHclfhHaOcxfhOalavcefgv9hmbxdkkaxhvaihOalhHindndnavIdbawNJbbbZMgC:lJbbb9p9DTmbaC:OhAxekcjjjj94hAkaAcCthAdndnavclfIdbawNJbbbZMgC:lJbbb9p9DTmbaC:OhXxekcjjjj94hXkaXcqtaAVhAdndnavcwfIdbawNJbbbZMgC:lJbbb9p9DTmbaC:OhXxekcjjjj94hXkaOaAaXVBdbavcxfhvaOclfhOaHcufgHmbkkadTmbcbhkaehvcbhOinakaiavclfydbcdtfydbgHaiavcwfydbcdtfydbgA9haiavydbcdtfydbgXaH9haXaA9hGGfhkavcxfhvaOcifgOad6mbkkarci9UhQdndnaz:Z:rJbbbZMgw:lJbbb9p9DTmbaw:Ohvxekcjjjj94hvkaQ:ZhLcbhKc:bwhzdninakaQ9pmeazaP9Rcd9imeavazcufgOavaO9iEaPcefavaP9kEhYdnalTmbaYcuf:YhwdnaoTmbcbhOaihHaxhvindndnaoaOfRbbceGTmbaOcjjjjlVhAxekdndnavclfIdbawNJbbbZMgC:lJbbb9p9DTmbaC:OhAxekcjjjj94hAkaAcqthAdndnavcwfIdbawNJbbbZMgC:lJbbb9p9DTmbaC:OhXxekcjjjj94hXkaAaXVhAdndnavIdbawNJbbbZMgC:lJbbb9p9DTmbaC:OhXxekcjjjj94hXkaAaXcCtVhAkaHaABdbaHclfhHavcxfhvalaOcefgO9hmbxdkkaxhvaihOalhHindndnavIdbawNJbbbZMgC:lJbbb9p9DTmbaC:OhAxekcjjjj94hAkaAcCthAdndnavclfIdbawNJbbbZMgC:lJbbb9p9DTmbaC:OhXxekcjjjj94hXkaXcqtaAVhAdndnavcwfIdbawNJbbbZMgC:lJbbb9p9DTmbaC:OhXxekcjjjj94hXkaOaAaXVBdbavcxfhvaOclfhOaHcufgHmbkkcbhOdnadTmbaehvcbhHinaOaiavclfydbcdtfydbgAaiavcwfydbcdtfydbgX9haiavydbcdtfydbgraA9haraX9hGGfhOavcxfhvaHcifgHad6mbkkdnas:ZgCaL:taY:Ygwaz:Y:tg8ANak:ZgEaO:Zg3:tNaEaL:tawaP:Y:tg5Na3aC:tNMg8EJbbbb9BmbaCaE:ta5a8Aa3aL:tNNNa8E:vawMhwkdndnaOaQ0mbaOhkaYhPxekaOhsaYhzkdndnaKcl0mbdnawJbbbZMgw:lJbbb9p9DTmbaw:Ohvxdkcjjjj94hvxekaPazfcd9ThvkaKcefgKcs9hmbkkdndndnakmbJbbjZhwcbhOcdhvaDmexdkalcd4alfhHcehOinaOgvcethOavaH6mbkaqcuavcdtavcFFFFi0Ecbyd;y:L:cjbHjjjjbbgYBdCaqciBd2aqamcbyd;y:L:cjbHjjjjbbgzBdKaqclBd2dnalTmbaPcuf:YhwdnaoTmbcbhOaihAaxhHindndnaoaOfRbbceGTmbaOcjjjjlVhXxekdndnaHclfIdbawNJbbbZMgC:lJbbb9p9DTmbaC:OhXxekcjjjj94hXkaXcqthXdndnaHcwfIdbawNJbbbZMgC:lJbbb9p9DTmbaC:Ohrxekcjjjj94hrkaXarVhXdndnaHIdbawNJbbbZMgC:lJbbb9p9DTmbaC:Ohrxekcjjjj94hrkaXarcCtVhXkaAaXBdbaAclfhAaHcxfhHalaOcefgO9hmbxdkkaxhOaihHalhAindndnaOIdbawNJbbbZMgC:lJbbb9p9DTmbaC:OhXxekcjjjj94hXkaXcCthXdndnaOclfIdbawNJbbbZMgC:lJbbb9p9DTmbaC:Ohrxekcjjjj94hrkarcqtaXVhXdndnaOcwfIdbawNJbbbZMgC:lJbbb9p9DTmbaC:Ohrxekcjjjj94hrkaHaXarVBdbaOcxfhOaHclfhHaAcufgAmbkkaqcuaYavazaialz:mjjjbgXc8S2gvaXc;D;O;f8U0Ecbyd;y:L:cjbHjjjjbbgiBd3aqcvBd2aicbavz:xjjjbhOdnadTmbcbhraehiinaxaiclfydbgocx2fgvIdbaxaiydbgPcx2fgHIdbg3:tgCaxaicwfydbgYcx2fgAIdlaHIdlg8A:tgwNavIdla8A:tgEaAIdba3:tg8EN:tgLaLNaEaAIdwaHIdwg5:tg8FNavIdwa5:tgEawN:tgwawNaEa8ENaCa8FN:tgCaCNMMg8E:rhEJbbnnJbbjZazaPcdtfydbgvazaocdtfydbgASavazaYcdtfydbgoSGgHEh8Fdna8EJbbbb9ETmbaLaE:vhLaCaE:vhCawaE:vhwkaOavc8S2fgvavIdbawa8FaE:rNgEawNNg8FMUdbavaCaEaCNgaNghavIdlMUdlavaLaEaLNg8ENggavIdwMUdwavawaaNgaavIdxMUdxava8EawNg8JavIdzMUdzavaCa8ENg8EavIdCMUdCavawaEaLa5Nawa3Na8AaCNMM:mg8ANg3NgwavIdKMUdKavaCa3NgCavId3MUd3avaLa3NgLavIdaMUdaava3a8ANg3avId8KMUd8KavaEavIdyMUdydnaHmbaOaAc8S2fgva8FavIdbMUdbavahavIdlMUdlavagavIdwMUdwavaaavIdxMUdxava8JavIdzMUdzava8EavIdCMUdCavawavIdKMUdKavaCavId3MUd3avaLavIdaMUdaava3avId8KMUd8KavaEavIdyMUdyaOaoc8S2fgva8FavIdbMUdbavahavIdlMUdlavagavIdwMUdwavaaavIdxMUdxava8JavIdzMUdzava8EavIdCMUdCavawavIdKMUdKavaCavId3MUd3avaLavIdaMUdaava3avId8KMUd8KavaEavIdyMUdykaicxfhiarcifgrad6mbkkcbhAaqcuaXcdtgvaXcFFFFi0Egicbyd;y:L:cjbHjjjjbbgHBdaaqcoBd2aqaicbyd;y:L:cjbHjjjjbbgiBd8KaqcrBd2aHcFeavz:xjjjbhPdnalTmbazhHinJbbbbJbbjZaOaHydbgrc8S2fgvIdygw:vawJbbbb9BEavIdwaxcwfIdbgwNavIdzaxIdbgCNavIdaMgLaLMMawNavIdlaxclfIdbgLNavIdCawNavId3MgwawMMaLNavIdbaCNavIdxaLNavIdKMgwawMMaCNavId8KMMM:lNhwdndnaParcdtgvfgrydbcuSmbaiavfIdbaw9ETmekaraABdbaiavfawUdbkaHclfhHaxcxfhxalaAcefgA9hmbkkdndnaXmbJbbbbhwxekJbbbbhwinaiIdbgCawawaC9DEhwaiclfhiaXcufgXmbkaw:rhwkakcd4akfhOcehiinaigvcethiavaO6mbkcbhOaqcuavcdtgiavcFFFFi0Ecbyd;y:L:cjbHjjjjbbgHBdyaHcFeaiz:xjjjbhXdnadTmbavcufhrcbhkcbhxindnazaeaxcdtfgvydbcdtfydbgiazavclfydbcdtfydbgOSmbaiazavcwfydbcdtfydbgvSmbaOavSmbaPavcdtfydbhAdndnaPaOcdtfydbgvaPaicdtfydbgi9pmbavaA9pmbaAhlaihoavhAxekdnaAai9pmbaAav9pmbaihlavhoxekavhlaAhoaihAkabakcx2fgvaABdbavcwfaoBdbavclfalBdbdnaXaoc:3F;N8N2alc:F:b:DD27aAc;D;O:B8J27arGgOcdtfgvydbgicuSmbcehHinaHhvdnabaicx2fgiydbaA9hmbaiydlal9hmbaiydwaoSmikavcefhHaXaOavfarGgOcdtfgvydbgicu9hmbkkavakBdbakcefhkkaxcifgxad6mbkakci2hOkcwhvaDTmekaDawUdbkavcdthvaqcxfc98fhiinaiavfydbcbyd;C:L:cjbH:bjjjbbavc98fgvmbkaqc;Wbf8KjjjjbaOk:0iewuabcFeaecdtz:xjjjbhbdnalmbcbskaecufhvdndnaiTmbcbhocbhrindndndnabaiarcdtgwfydbgDcm4aD7c:v;t;h;Ev2gecs4ae7avGgqcdtfgkydbgxcuSmbceheinaiaxcdtgxfydbaDSmdaqaefhxaecefheabaxavGgqcdtfgkydbgxcu9hmbkkakarBdbaoheaocefhoxekadaxfydbhekadawfaeBdbarcefgral9hmbxdkkcbhocbhDindnabaDcm4aD7c:v;t;h;Ev2gecs4ae7avGgqcdtfgkydbgxcuSmbaxaDSmbceheinabaqaefavGgqcdtfgkydbgxcuSmeaecefheaxaD9hmbkkdndnaxcu9hmbakaDBdbaoheaocefhoxekadaxcdtfydbhekadaDcdtfaeBdbaDcefgDal9hmbkkaok:3ldrue9:8Jjjjjbc;Wb9Rgr8Kjjjjbcbhwarcxfcbc;Kbz:xjjjb8AdnabaeSmbabaeadcdtz:wjjjb8AkarcualcdtalcFFFFi0EgDcbyd;y:L:cjbHjjjjbbgqBdxarceBd2aqcbaialavcbarcxfz:djjjbcualcx2alc;v:Q;v:Qe0Ecbyd;y:L:cjbHjjjjbbhkarcxfaryd2gxcdtfakBdbaraxcefgmBd2akaialavcbcbz:ejjjb8AarcxfamcdtfaDcbyd;y:L:cjbHjjjjbbgiBdbaraxcdfgvBd2arcxfavcdtfcuaialaeadaqz:fjjjbgecltaecjjjjiGEcbyd;y:L:cjbHjjjjbbgqBdbaqaeaiakalz:gjjjbaxcifhkdnadTmbaoaoNhocbhwabhlcbheindnaqaialydbgvcdtfydbcdtfIdbao9ETmbalclf8PdbhPabawcdtfgDavBdbaDclfaP83dbawcifhwkalcxfhlaecifgead6mbkkdnakTmbaxcdtarcxffcwfhlinalydbcbyd;C:L:cjbH:bjjjbbalc98fhlakcufgkmbkkarc;Wbf8Kjjjjbawk;lOoDud99oue99vuv998Jjjjjbc;Wb9Rgw8KjjjjbdndnarmbcbhDxekawcxfcbc;Kbz:xjjjb8Aawcuadcx2adc;v:Q;v:Qe0Ecbyd;y:L:cjbHjjjjbbgqBdxawceBd2aqaeadaicbcbz:ejjjb8AawcuadcdtadcFFFFi0Egkcbyd;y:L:cjbHjjjjbbgxBdzawcdBd2adcd4adfhecehiinaigmcethiamae6mbkcbhPawcuamcdtgsamcFFFFi0Ecbyd;y:L:cjbHjjjjbbgzBdCawciBd2dndnar:ZgH:rJbbbZMgO:lJbbb9p9DTmbaO:Ohixekcjjjj94hikamcufhAc:bwhCcbhXadhQcbhLinaiaCcufgeaiae9iEaPcefaiaP9kEhDdndnadTmbaDcuf:YhOaqhiaxheadhKindndnaiIdbaONJbbbZMgY:lJbbb9p9DTmbaY:Oh8Axekcjjjj94h8Aka8AcCth8AdndnaiclfIdbaONJbbbZMgY:lJbbb9p9DTmbaY:OhExekcjjjj94hEkaEcqta8AVh8AdndnaicwfIdbaONJbbbZMgY:lJbbb9p9DTmbaY:OhExekcjjjj94hEkaea8AaEVBdbaicxfhiaeclfheaKcufgKmbkazcFeasz:xjjjbh3cbh5cbh8Eindna3axa8Ecdtfydbg8Acm4a8A7c:v;t;h;Ev2gics4ai7aAGgKcdtfgEydbgecuSmbaea8ASmbcehiina3aKaifaAGgKcdtfgEydbgecuSmeaicefhiaea8A9hmbkkaEa8ABdba5aecuSfh5a8Ecefg8Ead9hmbxdkkazcFeasz:xjjjb8Acbh5kdnaQ:ZgYaH:taD:YgOaC:Y:tg8FNaX:Zgaa5:Zgh:tNaaaH:taOaP:Y:tggNahaY:tNMg8JJbbbb9BmbaYaa:taga8FahaH:tNNNa8J:vaOMhOkaPaDa5ar0geEhPaXa5aeEhXdna5arSmbaDaCaeEgCaP9Rcd9imbdndnaLcl0mbdnaOJbbbZMgO:lJbbb9p9DTmbaO:Ohixdkcjjjj94hixekaPaCfcd9Thika5aQaeEhQaLcefgLcs9hmekkdndnaXmbcihicbhDxekawakcbyd;y:L:cjbHjjjjbbg8ABdKawclBd2aPcuf:YhYdnadTmbaqhiaxheadhKindndnaiIdbaYNJbbbZMgO:lJbbb9p9DTmbaO:OhExekcjjjj94hEkaEcCthEdndnaiclfIdbaYNJbbbZMgO:lJbbb9p9DTmbaO:Oh3xekcjjjj94h3ka3cqtaEVhEdndnaicwfIdbaYNJbbbZMgO:lJbbb9p9DTmbaO:Oh3xekcjjjj94h3kaeaEa3VBdbaicxfhiaeclfheaKcufgKmbkkawcuazama8Aaxadz:mjjjbgDc32giaDc;j:KM;jb0Ecbyd;y:L:cjbHjjjjbbgeBd3awcvBd2aecbaiz:xjjjbh3avcd4hxdnadTmbdnalTmbaxcdth8Ea8AhEaqhealhKadhAina3aEydbc32fgiaeIdbaiIdbMUdbaiaeclfIdbaiIdlMUdlaiaecwfIdbaiIdwMUdwaiaKIdbaiIdxMUdxaiaKclfIdbaiIdzMUdzaiaKcwfIdbaiIdCMUdCaiaiIdKJbbjZMUdKaEclfhEaecxfheaKa8EfhKaAcufgAmbxdkka8AhKaqheadhEina3aKydbc32fgiaeIdbaiIdbMUdbaiaeclfIdbaiIdlMUdlaiaecwfIdbaiIdwMUdwaiaiIdxJbbbbMUdxaiaiIdzJbbbbMUdzaiaiIdCJbbbbMUdCaiaiIdKJbbjZMUdKaKclfhKaecxfheaEcufgEmbkkdnaDTmba3hiaDheinaiaiIdbJbbbbJbbjZaicKfIdbgO:vaOJbbbb9BEgONUdbaiclfgKaOaKIdbNUdbaicwfgKaOaKIdbNUdbaicxfgKaOaKIdbNUdbaiczfgKaOaKIdbNUdbaicCfgKaOaKIdbNUdbaic3fhiaecufgembkkcbhEawcuaDcdtgCaDcFFFFi0Egicbyd;y:L:cjbHjjjjbbgeBdaawcoBd2awaicbyd;y:L:cjbHjjjjbbg8EBd8KaecFeaCz:xjjjbh5dnadTmbaoJbbjZJbbjZaY:vaPceSENgOaONhYaxcdthxalheinaYaecN:H:cjbalEgKIdwa3a8AydbgAc32fgiIdC:tgOaONaKIdbaiIdx:tgOaONaKIdlaiIdz:tgOaONMMNaqcwfIdbaiIdw:tgOaONaqIdbaiIdb:tgOaONaqclfIdbaiIdl:tgOaONMMMhOdndna5aAcdtgifgKydbcuSmba8EaifIdbaO9ETmekaKaEBdba8EaifaOUdbka8Aclfh8AaqcxfhqaeaxfheadaEcefgE9hmbkkaba5aCz:wjjjb8Acrhikaicdthiawcxfc98fheinaeaifydbcbyd;C:L:cjbH:bjjjbbaic98fgimbkkawc;Wbf8KjjjjbaDk:Pdidui99ducbhi8Jjjjjbca9Rglcbyd1:G:cjbBdKalcb8Pdj:G:cjb83izalcbydN:G:cjbBdwalcb8Pd:m:G:cjb83ibdndnaembJbbjFhvJbbjFhoJbbjFhrxekadcd4cdthwincbhdinalczfadfgDabadfIdbgvaDIdbgoaoav9EEUdbaladfgDavaDIdbgoaoav9DEUdbadclfgdcx9hmbkabawfhbaicefgiae9hmbkalIdwalIdK:thralIdlalIdC:thoalIdbalIdz:thvkJbbbbavavJbbbb9DEgvaoaoav9DEgvararav9DEk:H8Modui99lud99Aus998Jjjjjbcji9RgD8KjjjjbcbhqaDcxfcbc;Kbz:xjjjb8AaDcbBdwaD9cb83ibaDcbyd;i:L:cjbBd1eaDcb8Pd;a:L:cjb83ijeaDcbyd;u:L:cjbBd94aDcb8Pd;m:L:cjb83i9WdndnavmbJbbjFhkJbbjFhxJbbjFhmxekaocd4cdthPalhsincbhzinaDcjefazfgHasazfIdbgkaHIdbgxaxak9EEUdbaDc;WbfazfgHakaHIdbgxaxak9DEUdbazclfgzcx9hmbkasaPfhsaqcefgqav9hmbkaDId94aDId1e:thmaDIdtaDId:ee:thxaDId9WaDIdje:thkkJbbbbhOdnar:YgAJq;x8J88MaA:vJbbbbakakJbbbb9DEgkaxaxak9DEgkamamak9DENgxJbbbb9Bmbarc9:f:Yax:vhOkaDcCfhCaDcxfcxfhXcbhzinaDazfaDcjefazfIdbgkaxaDc;WbfazfIdbak:t:tJbbb:;NMUdbazclfgzcx9hmbkcbhQaDarar2gLar2gzcbyd;y:L:cjbHjjjjbbgHBdxaDceBd2aHcbazz:xjjjbgKcbcbadaialaoaraOaDawz:rjjjbcdhYaDcuaLcdtaLcFFFFi0Eg8Acbyd;y:L:cjbHjjjjbbgEBdzaDcdBd2aDcjefcbarz:xjjjb8Acbh3dnaLTmbdnarcb9kmbaKhzaEhHaLhsincbh3aHcbcuazaDcjefarz:AjjjbEBdbazarfhzaHclfhHascufgsmbxdkkaKhPcbh3cbhvindndnaKavar2faDcjefarz:AjjjbTmbcbhHaPhzarhsinazaHazRbbgqfgHcbaqE86bbazcefhzascufgsmbkaEavcdtfa3BdbaHa3fh3xekaEavcdtfcuBdbkaParfhPavcefgvaL9hmbkkdnabTmbaDcua3cotgza3cFFF8F0Ecbyd;y:L:cjbHjjjjbbgQBdCcihYaDciBd2aQcbazz:xjjjb8AaXhCkdnawceGmbaCa8Acbyd;y:L:cjbHjjjjbbg5BdbaDaYcefgzBd2aDcxfazcdtfaLcbyd;y:L:cjbHjjjjbbgzBdbaDaYcdfgYBd2azcbaLz:xjjjbh8EarcufhXdnarci9imbarc9:fhCararcef2aKfcefh8Aceh8Fina8Far2hPa8AhvcehqindnaEaqaPfcdtfydbcuSmbavhzaChHinazazRbbgscuasE86bbazcefhzaHcufgHmbkkavarfhvaqcefgqaX9hmbka8AaLfh8Aa8Fcefg8FaX9hmbkkarce9imbcbh8Acbhqcbhvina8EaqfhscbhzindnasazfgHRbbmbaHce86bba5a8AcdtfaqazfBdba8Acefh8Akarazcefgz9hmbkaqarfhqavcefgvar9hmbka8ATmbaKcefhaaKc9:fhharc9:fhgarci9ih8Jina8Ea5a8Acufg8Acdtfydbgvfcb86bbavar2hPdna8JmbaEavcdtfydbcuSmbaKaPfhHaghqindnaHcefgzRbbgscFe9hmbaHRbbmbcbhskazas86bbazhHaqcufgqmbkaharavcef2fhzaXhsindnazRbbgHcFe9hmbazcefRbbmbcbhHkazaH86bbazcufhzascufgsce9kmbkkaaaPfh8Kavavar9Ug8Lar29Rh8FcbhCindnaCceScuaCEa8Ffgzce9imbazaX9ombcuaCciSaCcdSEa8LfgHce9imbaHaX9ombaEaHar2azfg8McdtfydbcuSmba8Jmbaaa8Mar2fhzcbhqa8KhsaghvinazazRbbgHcbaHaHcFeSEasRbbEgP86bbascefhsazcefhzaPaH7aqVhqavcufgvmbkaqcFeGTmba8Ea8MfgzRbbmbazce86bba5a8Acdtfa8MBdba8Acefh8AkaCcefgCcl9hmbka8AmbkkdnaQTmbaKaEaQadaialaoaraOaDawz:rjjjba3TmbJbbjZaO:vhkawcjjjjlGhPdnawcdGTmbJbbnnaOaON:vh8NakJbbbZNhyaQhzinazczfgsIdbg8PazcCfIdbgx:vhmazcxfgqIdbgIax:vhAazcwfgvIdbg8Rax:vh8SakazydbgHcFrG:ZNhRakaHcq4cFrG:ZNh8UakaHcC4cFrG:ZNh8VdnaxJ:p;c;188Ng8WazcKfIdbMg8X:laxJ:983:g81Ngx9ETmba8Wazc3fIdbMazc8KfIdbg8Ya8Ya8X:vg8YN:tg8Z:lax9ETmba8WazcafIdbMazcyfIdbg8Wa8Wa8X:vg80N:tazc8SfIdba8Wa8YN:tg8Wa8Wa8Z:vg8WN:tg81:lax9ETmba8PJ:p;c;188NazcUfIdb:ta80a8RJ:p;c;188Nazc8WfIdb:tg8PN:ta8WaIJ:p;c;188Nazc80fIdb:ta8Ya8PN:tgIN:ta81:vgxam:tg8Ra8RNa8Pa8X:va8YaIa8Z:va8WaxN:tg8XN:ta80axN:tg8Wa8S:tg8Ya8YNa8XaA:tg8Ya8YNMMa8N9DTmbaxaRaxaR9EEgxakaRMgmaxam9DEhma8Xa8Ua8Xa8U9EEgxaka8UMgAaxaA9DEhAa8Wa8Va8Wa8V9EEgxaka8VMg8Saxa8S9DEh8SkdnaPTmbayaRMhmaya8UMhAaya8VMh8SkasamUdbaqaAUdbava8SUdbazc;abfhza3cufg3mbxdkkdnaPTmbakJbbbZNhxaQhzinazczfaxakazydbgHcFrG:ZNMUdbazcxfaxakaHcq4cFrG:ZNMUdbazcwfaxakaHcC4cFrG:ZNMUdbazc;abfhza3cufg3mbxdkkaQcCfhzinazc98fgHaHIdbazIdbgk:vUdbazc94fgHaHIdbak:vUdbazctfgHaHIdbak:vUdbazc;abfhza3cufg3mbkkcbhsdndnarcd9imbarcufh3aEarcdtfhadnabmbaKcefg8Mararcefgz2fh8JaKazfhba8MaLfh8Ecbhscbh8Kina8Kar2h8La8Mheabh8Aa8Eh8Fa8Jh5cbhXindnaEaXa8LfgqcdtgzfgHclfydbaHydbGaaazfgzydbGazclfydbGcuSmbclcbaKaqar2fgzarfRbbEazRbbcb9hVczcbazaLfgzRbbEVc;abcbazarfRbbEVhPaehza8AhHa8Fhqa5hva3hQindnaPclcbaHRbbEazRbbcb9hVczcbaqRbbEVc;abcbavRbbEVgPcetVgCTmbaCcFeSmbasaCRb;W;p:cjbfhskazcefhzaHcefhHaqcefhqavcefhvaQcufgQmbkkaearfhea8Aarfh8Aa8Farfh8Fa5arfh5aXcefgXa39hmbka8MaLfh8MabaLfhba8EaLfh8Ea8JaLfh8Ja8Kcefg8Ka39hmbxdkkJbbjZaO:vgkakJk;x8J88NNh8RawcdGh8EaDIdwhkaDIdlhxaDIdbhmcbhscbhPinaPar2h8KcbhvindnaEava8KfgqcdtgzfgHclfydbaHydbGaaazfgzydbGazclfydbGcuSmbcbh8AclcbaKaqar2fgYarfRbbEaYRbbcb9hVczcbaYaLfg8JRbbEVc;abcba8JarfRbbEVh8Lindna8LclcbaYa8Ag8Mcefg8AfgzarfRbbEazRbbcb9hVczcba8Ja8AfgzRbbEVc;abcbazarfRbbEVg8LcetVgCTmbaCcFeSmbcbhqdndndnaCRb;W;n:cjbcufPdebdka8ETmeaCcC2gz8Ve;W:L:cjbcltaz8Ve;Y:L:cjbcsGVh8FaKa8Mfh5cxhzaDcjefhHinaHaQaEa8Faz4gqce4ceGavfaqcd4ceGaPfar2fgXcdtfydbcotfa5aqceGfaXar2fRbbcotfcnfBdbaHclfhHazc98fgzc989hmbkaDydjegzIdyaDyd:megHIdyMaDyd:eegqIdyaDyd1egXIdyMMg8XaqIdwaXIdwMJbbbZNgANazIdUaHIdUMaqIdUaXIdUMMg8WMg8Sa8SMazIdaaHIdaMaqIdaaXIdaMMg8YaqIdzaXIdzMJbbbZNg8SNMa8SNazId8SaHId8SMaqId8SaXId8SMMgRa8SNazId80aHId80MaqId80aXId80MMg8UMg8Sa8SMazId3aHId3MaqId3aXId3MMg8VaqIdxaXIdxMJbbbZNg8SNMa8SNazId8KaHId8KMaqId8KaXId8KMMg8Za8SNazId8WaHId8WMaqId8WaXId8WMMg80Mg8Sa8SMazIdKaHIdKMaqIdKaXIdKMMgyaANMaANazId88aHId88MaqId88aXId88MMg8PMMM:lgIa8RazIdCaHIdCMaqIdCaXIdCMMN9Ea8XazIdwaHIdwMJbbbZNgANa8WMg8Sa8SMa8YazIdzaHIdzMJbbbZNg8SNMa8SNaRa8SNa8UMg8Sa8SMa8VazIdxaHIdxMJbbbZNg8SNMa8SNa8Za8SNa80Mg8Sa8SMayaANMaANa8PMMM:laIJ;d;1UZN9DGhqxekaKa8Mfh8FcbhzcrhHindnaCaz4ceGTmba8FazceGfazce4ceGavfazcd4aPfar2fgqar2fRbbgXcFeSmbaQaEaqcdtfydbcotfaXcotfc9efRbbaH4ceGTmbcbhqxdkaHcufhHcehqazcefgzcw9hmbkkaCcC2aqcq2fgH8Ve;W:L:cjbgzTmbaHc;Y:L:cjbfhqaKa8MfhCabasc8K2fhHindnasae9pmbaHaQaEazcD4ceGavfazcq4ceGaPfar2fgXcdtfydbcotfaCazcw4ceGfaXar2fRbbcotfgXc9ifIdbamMUdbaHclfaXc9mfIdbaxMUdbaHcwfaXc9qfIdbakMUdbaHcxfamaQaEazcv4ceGavfazco4ceGaPfar2fgXcdtfydbcotfaCazcl4ceGfaXar2fRbbcotfgXc9ifIdbMUdbaHczfaxaXc9mfIdbMUdbaHcCfakaXc9qfIdbMUdbaHcKfamaQaEazce4ceGavfazcd4ceGaPfar2fgXcdtfydbcotfaCazceGfaXar2fRbbcotfgzc9ifIdbMUdbaHc3faxazc9mfIdbMUdbaHcafakazc9qfIdbMUdbkaHc8KfhHascefhsaq8Vebhzaqcdfhqazmbkka8Aa39hmbkkavcefgva39hmbkaPcefgPa39hmbkaDyd2gYTmekaYcdtaDcxffc98fhzinazydbcbyd;C:L:cjbH:bjjjbbazc98fhzaYcufgYmbkkaDcjif8Kjjjjbask;Kxmiue99due99euz99eui99eud99dud99oudnalTmbaocd4hkaqcdGhxarc99fhqarcethmawawMhPcbhsindndnawavaiascdtfgoclfydbak2cdtfgzIdwgHavaoydbak2cdtfgOIdwgA:tgCaCNazIdbgXaOIdbgQ:tgLaLNazIdlgKaOIdlgY:tg8Aa8ANMMgEavaocwfydbak2cdtfgoIdwg3aA:tg5a5NaoIdbg8EaQ:tg8Fa8FNaoIdlgaaY:tghahNMMggaEag9EEgEa3aH:tgHaHNa8EaX:tgHaHNaaaK:tgHaHNMMgHaEaH9EE:rNgHaHMgH:lJbbb9p9DTmbaH:Ohoxekcjjjj94hokdnaLahNa8Aa8FN:tgHaHNa8Aa5NaCahN:tgXaXNaCa8FNaLa5N:tgKaKNMMg3Jbbbb9BmbJbbjZhEdnaoceaoce9kEgoamaoam9iEg8Jcd9imbJbbjZa8J:Z:vhEkarcb9imbaAaDIdw:th8KaYaDIdl:th8LaQaDIdb:th8Ma8Jcba8Jcb9kEh8NdnadTmbaHJbbjZa3:rgA:vgQNg3aAa8Jcefa8Jcdf2:Y:vgANh8EaKaQNgKaANhyaXaQNgXaXaANNh8PcbhIina8Jcba8Jcb9kEcefh8RaEaI:ZNgQaCNa8KMhgaQa8ANa8LMh8SaQaLNa8MMhRcbhzindndnaPaEaz:ZNgQahNa8SMgYNgH:lJbbb9p9DTmbaH:OhOxekcjjjj94hOkaOce91goaqaoaq6Eh8UdndnaPaQa5NagMgHNga:lJbbb9p9DTmbaa:Oh8Vxekcjjjj94h8Vka8Ua8Vce91goaqaoaq6Eg8Wcefar2fcefgoar2h8XdndnaPaQa8FNaRMgQNga:lJbbb9p9DTmbaa:Oh8Yxekcjjjj94h8Ykadaeaocdtfydbcotfaba8Yce91goaqaoaq6Eg8Zfa8XfcefRbbcotfgocnfa8Ucqta8ZcCtVa8WVBdbaoc9efg8Ua8URbbcea8YceGaOcetcdGVa8VcdtclGVtV86bbaoc9ifgOaQaANaOIdbMUdbaoc9mfgOaYaANaOIdbMUdbaoc9qfgOaHaANaOIdbMUdbaoc9ufgOaAaOIdbMUdbdnaxTmbaoc9yfgOa8PaOIdbMUdbaoc9CfgOaKayNaOIdbMUdbaoc9GfgOa3a8ENaOIdbMUdbaoc9KfgOaXayNaOIdbMUdbaoc9OfgOaXa8ENaOIdbMUdbaoc2fgOaKa8ENaOIdbMUdbaoc9WfgOaXaAa3aHNaXaQNaKaYNMMgY:mNgQNaOIdbMUdbaoctfgOaKaQNaOIdbMUdbaoc94fgOa3aQNaOIdbMUdbaoc98fgoaoIdbaYaQN:tUdbka8Razcefgz9hmbka8Jcufh8JaIa8NShoaIcefhIaoTmbxdkkcbh8Vina8Jcba8Jcb9kEcefh8UaEa8V:ZNgAaCNa8KMhYaAa8ANa8LMhHaAaLNa8MMhXcbhoindndnaPaEao:ZNgAahNaHMNgQ:lJbbb9p9DTmbaQ:Ohzxekcjjjj94hzkazce91gzaqazaq6EhzdndnaPaAa5NaYMNgQ:lJbbb9p9DTmbaQ:OhOxekcjjjj94hOkazaOce91gOaqaOaq6Ecefar2fcefar2hzdndnaPaAa8FNaXMNgA:lJbbb9p9DTmbaA:OhOxekcjjjj94hOkabaOce91gOaqaOaq6Efazfcefce86bba8Uaocefgo9hmbka8Jcufh8Ja8Va8NShoa8Vcefh8VaoTmbkkascifgsal6mbkkk:Nvezu8Jjjjjbcjd9Rgb8Kjjjjbcbheabcbcjdz:xjjjbhdc:W:H:cjbhbinabRbbgicC2glabcqf8Veb87e;4:L:cjbalabcdfgv8Peb83e;W:L:cjbaiabcefRbb86b;W;n:cjbadaifce86bbalavabcxfceaetc:F:d;avGEgi8Peb83e;6:L:cjbalai8Vew87e:c:M:cjbabcQfhbaecefgecK9hmbkcbhoinc;Y:L:cjbhrcbhvindnadavfgwRbbce9hmbavcC2c;W:L:cjbfhDcbhbcehqavc;W;n:cjbfhkinabcitc:G:H:cjbfhlcbhbcbheinaeavab4ceGalabfRbbtVheabcefgbcw9hmbkdnadaecFeGgxfgmRbbmbaxcC2c;W:L:cjbfhPcbhbcehsindnaDabcq2gif8VebgbTmbaraifheaPaifhiinaialabcl4csGfRbbcltalabcw4csGfRbbcwtValabcsGfRbbV87ebaicdfhiae8VebhbaecdfheabmbkkcehbasceGhecbhsaembkamce86bbaxakRbb86b;W;n:cjbkcehbaqceGhlcbhqalmbkawcd86bbkarcCfhravcefgvcjd9hmbkaocefgoci9hmbkcbhic;W:L:cjbhvincuhlavhbinalcefhlab8Vebheabcdfhbaembkaial86b;W;p:cjbavcCfhvaicefgicjd9hmbkadcjdf8Kjjjjbk9DeeuabcFeaicdtz:xjjjbhlcbhbdnadTmbindnalaeydbcdtfgiydbcu9hmbaiabBdbabcefhbkaeclfheadcufgdmbkkabk;Bidqui998Jjjjjbc;Wb9Rgl8Kjjjjbalcxfcbc;Kbz:xjjjb8Aadcd4adfhvcehoinaogrcethoarav6mbkalcuarcdtgoarcFFFFi0Ecbyd;y:L:cjbHjjjjbbgvBdxavcFeaoz:xjjjbhwdnadTmbaicd4hDarcufhqcbhkindndnawcbaeakaD2cdtfgrydlgiaicjjjj94SEgocH4ao7c:F:b:DD2cbarydbgxaxcjjjj94SEgocH4ao7c;D;O:B8J27cbarydwgmamcjjjj94SEgrcH4ar7c:3F;N8N27aqGgvcdtfgrydbgocuSmbam::hPai::hsax::hzcehiinaihrdnaeaoaD2cdtfgiIdbaz9CmbaiIdlas9CmbaiIdwaP9BmikarcefhiawavarfaqGgvcdtfgrydbgocu9hmbkkarakBdbakhokabakcdtfaoBdbakcefgkad9hmbkkalydxcbyd;C:L:cjbH:bjjjbbalc;Wbf8Kjjjjbk9teiucbcbyd;G:L:cjbgeabcifc98GfgbBd;G:L:cjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaik;LeeeudndnaeabVciGTmbabhixekdndnadcz9pmbabhixekabhiinaiaeydbBdbaiclfaeclfydbBdbaicwfaecwfydbBdbaicxfaecxfydbBdbaeczfheaiczfhiadc9Wfgdcs0mbkkadcl6mbinaiaeydbBdbaeclfheaiclfhiadc98fgdci0mbkkdnadTmbinaiaeRbb86bbaicefhiaecefheadcufgdmbkkabk;aeedudndnabciGTmbabhixekaecFeGc:b:c:ew2hldndnadcz9pmbabhixekabhiinaialBdbaicxfalBdbaicwfalBdbaiclfalBdbaiczfhiadc9Wfgdcs0mbkkadcl6mbinaialBdbaiclfhiadc98fgdci0mbkkdnadTmbinaiae86bbaicefhiadcufgdmbkkabk9teiucbcbyd;G:L:cjbgeabcrfc94GfgbBd;G:L:cjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaikTeeucbabcbyd;G:L:cjbge9Rcifc98GaefgbBd;G:L:cjbdnabZbcztge9nmbabae9RcFFifcz4nb8Akk6eiucbhidnadTmbdninabRbbglaeRbbgv9hmeaecefheabcefhbadcufgdmbxdkkalav9Rhikaikk;0vdbcj:Gdk;yvFFuuFFuuFFuuFFuFFFuFFFuFbbbbbbbbebbbdbbbbbbbebbbebbbdbbbbbbbbbbbeeeeeebebbeebbebbebbbeeebbbbebbbbbbbbbbbbbbbbbbbeeeeeeebebbbeeebbeebbbbbebbbbbebebbbbbbbbbbbbbbbdiorbelvlbodveribbbbbbbbbbbbbbbbbbbbbbebbbbbbbbbbbbbbbbbbbbbibbbbbbbbbbbbbbbbbbbbbobbbbbbbbbbbbbbbbbbbbbrbaebbbbbbbbbbbbbbbbbbsd8We8YbbbbbbbhiaebbbbbbQe8Ke9cebbbbbbbbbbbbbbbbLb8KebbbbbbbbbbbbbbbbbbKbbbbbbbbbbbbbbbbbbbbbYeJbilbbbbbbbbbbbbbbbbEe80e8WlbbbbbbzlAbbbbbbb5eJdnibbbbbbai8Kbbbbbbb8Ee9ce8Ylcibbbb8Yebbbbbbbb8FdOlAdbbbbbb80e8Ylbbbbbb88eTi8KiJv8Jlbbbbbbbbbbbb89e9td8Kv9qibbbbndlvaibbbbZd8Li8KvbbbbbbJdTibbbbbb9Pe81b9GvoiBvbbbbbbbbbbbb9Re9JbvoWibbbbvibbbbbbbb9VeWi9Gvbbbbbb8WvBbbbbbbb9:b9ceBvbbbbbbbbbbbbbbbbubWibbbbbbbbbbbbbbbbbb;Wd9hvSrbbbbbbWl9NvbbbbbbFbbbbbbbbbbbbbbbbbbbbbFFuuFFuuFFuuFFuFFFuFFFuFbc;y:Ldkxebbbdbbb;W:Obb",a=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 e,d=WebAssembly.instantiate(t(c),{}).then(function(u){e=u.instance,e.exports.__wasm_call_ctors()});function t(u){for(var j=new Uint8Array(u.length),w=0;w<u.length;++w){var E=u.charCodeAt(w);j[w]=E>96?E-97:E>64?E-39:E+4}for(var A=0,w=0;w<u.length;++w)j[A++]=j[w]<60?a[j[w]]:(j[w]-60)*64+j[++w];return j.buffer.slice(0,A)}function b(u){if(!u)throw new Error("Assertion failed")}function n(u){return new Uint8Array(u.buffer,u.byteOffset,u.byteLength)}function o(u,j,w,E){var A=e.exports.sbrk,N=A(w*4),M=A(w*E*4),I=new Uint8Array(e.exports.memory.buffer);I.set(n(j),M),u(N,M,w,E*4),I=new Uint8Array(e.exports.memory.buffer);var z=new Uint32Array(w);return new Uint8Array(z.buffer).set(I.subarray(N,N+w*4)),A(N-A(0)),z}function s(u,j,w){var E=e.exports.sbrk,A=E(j.length*4),N=E(w*4),M=new Uint8Array(e.exports.memory.buffer),I=n(j);M.set(I,A);var z=u(N,A,j.length,w);M=new Uint8Array(e.exports.memory.buffer);var T=new Uint32Array(w);new Uint8Array(T.buffer).set(M.subarray(N,N+w*4)),E(A-E(0));for(var x=0;x<j.length;++x)j[x]=T[j[x]];return[T,z]}function g(u){for(var j=0,w=0;w<u.length;++w){var E=u[w];j=j<E?E:j}return j}function i(u,j,w,E,A,N,M,I,z){var T=e.exports.sbrk,x=T(4),U=T(w*4),G=T(A*N),F=T(w*4),B=new Uint8Array(e.exports.memory.buffer);B.set(n(E),G),B.set(n(j),F);var H=u(U,F,w,G,A,N,M,I,z,x);B=new Uint8Array(e.exports.memory.buffer);var P=new Uint32Array(H);n(P).set(B.subarray(U,U+H*4));var V=new Float32Array(1);return n(V).set(B.subarray(x,x+4)),T(x-T(0)),[P,V[0]]}function h(u,j,w,E,A,N,M,I,z,T,x,U,G){var F=e.exports.sbrk,B=F(4),H=F(w*4),P=F(A*N),V=F(A*I),q=F(z.length*4),Y=F(w*4),W=T?F(A):0,aa=new Uint8Array(e.exports.memory.buffer);aa.set(n(E),P),aa.set(n(M),V),aa.set(n(z),q),aa.set(n(j),Y),T&&aa.set(n(T),W);var ta=u(H,Y,w,P,A,N,V,I,q,z.length,W,x,U,G,B);aa=new Uint8Array(e.exports.memory.buffer);var O=new Uint32Array(ta);n(O).set(aa.subarray(H,H+ta*4));var C=new Float32Array(1);return n(C).set(aa.subarray(B,B+4)),F(B-F(0)),[O,C[0]]}function l(u,j,w,E,A,N,M,I,z,T,x,U,G){var F=e.exports.sbrk,B=F(4),H=F(A*N),P=F(A*I),V=F(z.length*4),q=F(w*4),Y=T?F(A):0,W=new Uint8Array(e.exports.memory.buffer);W.set(n(E),H),W.set(n(M),P),W.set(n(z),V),W.set(n(j),q),T&&W.set(n(T),Y);var aa=u(q,w,H,A,N,P,I,V,z.length,Y,x,U,G,B);W=new Uint8Array(e.exports.memory.buffer),n(j).set(W.subarray(q,q+aa*4)),n(E).set(W.subarray(H,H+A*N)),n(M).set(W.subarray(P,P+A*I));var ta=new Float32Array(1);return n(ta).set(W.subarray(B,B+4)),F(B-F(0)),[aa,ta[0]]}function f(u,j,w,E){var A=e.exports.sbrk,N=A(w*E),M=new Uint8Array(e.exports.memory.buffer);M.set(n(j),N);var I=u(N,w,E);return A(N-A(0)),I}function m(u,j,w,E,A,N,M,I){var z=e.exports.sbrk,T=z(I*4),x=z(w*E),U=A?z(w*N):0,G=new Uint8Array(e.exports.memory.buffer);G.set(n(j),x),A&&G.set(n(A),U);var F=u(T,x,w,E,U,N,M,I);G=new Uint8Array(e.exports.memory.buffer);var B=new Uint32Array(F);return n(B).set(G.subarray(T,T+F*4)),z(T-z(0)),B}function r(u,j,w,E,A,N,M,I,z){var T=e.exports.sbrk,x=T(4),U=T(w*4),G=T(A*N),F=T(w*4),B=M?T(A):0,H=new Uint8Array(e.exports.memory.buffer);H.set(n(E),G),H.set(n(j),F),M&&H.set(n(M),B);var P=u(U,F,w,G,A,N,B,I,z,x);H=new Uint8Array(e.exports.memory.buffer);var V=new Uint32Array(P);n(V).set(H.subarray(U,U+P*4));var q=new Float32Array(1);return n(q).set(H.subarray(x,x+4)),T(x-T(0)),[V,q[0]]}function y(u,j,w,E,A,N,M){var I=e.exports.sbrk,z=I(w*4),T=I(A*N),x=I(w*4),U=new Uint8Array(e.exports.memory.buffer);U.set(n(E),T),U.set(n(j),x);var G=u(z,x,w,T,A,N,M);U=new Uint8Array(e.exports.memory.buffer);var F=new Uint32Array(G);return n(F).set(U.subarray(z,z+G*4)),I(z-I(0)),F}function k(u,j,w,E,A,N){var M=e.exports.sbrk,I=M(w.byteLength),z=M(j.byteLength),T=new Uint8Array(e.exports.memory.buffer);T.set(n(w),I),T.set(n(j),z);var x=w.byteLength/E,U=u(0,0,z,j.length,I,x,E,A,N),G=M(U*9*4),F=u(G,U,z,j.length,I,x,E,A,N);b(F<=U),T=new Uint8Array(e.exports.memory.buffer);var B=new Float32Array(F*9);return n(B).set(T.subarray(G,G+B.byteLength)),M(I-M(0)),B}var p={LockBorder:1,Sparse:2,ErrorAbsolute:4,Prune:8,Regularize:16,Permissive:32,RegularizeLight:64,PreserveFolds:128,ErrorClamped:256,_InternalDebug:1<<30},v={Shell:1,Solve:2,Thicken:0,_InternalDebug:1<<30};return{ready:d,supported:!0,compactMesh:function(u){b(u instanceof Uint32Array||u instanceof Int32Array||u instanceof Uint16Array||u instanceof Int16Array),b(u.length%3==0);var j=u.BYTES_PER_ELEMENT==4?u:new Uint32Array(u),w=s(e.exports.meshopt_optimizeVertexFetchRemap,j,g(u)+1);if(u!==j)for(var E=0;E<j.length;++E)u[E]=j[E];return w},generatePositionRemap:function(u,j){return b(u instanceof Float32Array),b(u.length%j==0),b(j>=3),o(e.exports.meshopt_generatePositionRemap,u,u.length/j,j)},simplify:function(u,j,w,E,A,N){b(u instanceof Uint32Array||u instanceof Int32Array||u instanceof Uint16Array||u instanceof Int16Array),b(u.length%3==0),b(j instanceof Float32Array),b(j.length%w==0),b(w>=3),b(E>=0&&E<=u.length),b(E%3==0),b(A>=0);for(var M=0,I=0;I<(N?N.length:0);++I)b(N[I]in p),M|=p[N[I]];var z=u.BYTES_PER_ELEMENT==4?u:new Uint32Array(u),T=i(e.exports.meshopt_simplify,z,u.length,j,j.length/w,w*4,E,A,M);return T[0]=u instanceof Uint32Array?T[0]:new u.constructor(T[0]),T},simplifyWithAttributes:function(u,j,w,E,A,N,M,I,z,T){b(u instanceof Uint32Array||u instanceof Int32Array||u instanceof Uint16Array||u instanceof Int16Array),b(u.length%3==0),b(j instanceof Float32Array),b(j.length%w==0),b(w>=3),b(E instanceof Float32Array),b(E.length==A*(j.length/w)),b(A>=0),b(M==null||M instanceof Uint8Array),b(M==null||M.length==j.length/w),b(I>=0&&I<=u.length),b(I%3==0),b(z>=0),b(Array.isArray(N)),b(A>=N.length),b(N.length<=32);for(var x=0;x<N.length;++x)b(N[x]>=0);for(var U=0,x=0;x<(T?T.length:0);++x)b(T[x]in p),U|=p[T[x]];var G=u.BYTES_PER_ELEMENT==4?u:new Uint32Array(u),F=h(e.exports.meshopt_simplifyWithAttributes,G,u.length,j,j.length/w,w*4,E,A*4,new Float32Array(N),M,I,z,U);return F[0]=u instanceof Uint32Array?F[0]:new u.constructor(F[0]),F},simplifyWithUpdate:function(u,j,w,E,A,N,M,I,z,T){b(u instanceof Uint32Array||u instanceof Int32Array||u instanceof Uint16Array||u instanceof Int16Array),b(u.length%3==0),b(j instanceof Float32Array),b(j.length%w==0),b(w>=3),b(E instanceof Float32Array),b(E.length==A*(j.length/w)),b(A>=0),b(M==null||M instanceof Uint8Array),b(M==null||M.length==j.length/w),b(I>=0&&I<=u.length),b(I%3==0),b(z>=0),b(Array.isArray(N)),b(A>=N.length),b(N.length<=32);for(var x=0;x<N.length;++x)b(N[x]>=0);for(var U=0,x=0;x<(T?T.length:0);++x)b(T[x]in p),U|=p[T[x]];var G=u.BYTES_PER_ELEMENT==4?u:new Uint32Array(u),F=l(e.exports.meshopt_simplifyWithUpdate,G,u.length,j,j.length/w,w*4,E,A*4,new Float32Array(N),M,I,z,U);if(u!==G)for(var x=0;x<F[0];++x)u[x]=G[x];return F},getScale:function(u,j){return b(u instanceof Float32Array),b(u.length%j==0),b(j>=3),f(e.exports.meshopt_simplifyScale,u,u.length/j,j*4)},simplifyPoints:function(u,j,w,E,A,N){return b(u instanceof Float32Array),b(u.length%j==0),b(j>=3),b(w>=0&&w<=u.length/j),E?(b(E instanceof Float32Array),b(E.length%A==0),b(A>=3),b(u.length/j==E.length/A),m(e.exports.meshopt_simplifyPoints,u,u.length/j,j*4,E,A*4,N||0,w)):m(e.exports.meshopt_simplifyPoints,u,u.length/j,j*4,void 0,0,0,w)},simplifySloppy:function(u,j,w,E,A,N){b(u instanceof Uint32Array||u instanceof Int32Array||u instanceof Uint16Array||u instanceof Int16Array),b(u.length%3==0),b(j instanceof Float32Array),b(j.length%w==0),b(w>=3),b(E==null||E instanceof Uint8Array),b(E==null||E.length==j.length/w),b(A>=0&&A<=u.length),b(A%3==0),b(N>=0);var M=u.BYTES_PER_ELEMENT==4?u:new Uint32Array(u),I=r(e.exports.meshopt_simplifySloppy,M,u.length,j,j.length/w,w*4,E,A,N);return I[0]=u instanceof Uint32Array?I[0]:new u.constructor(I[0]),I},simplifyPrune:function(u,j,w,E){b(u instanceof Uint32Array||u instanceof Int32Array||u instanceof Uint16Array||u instanceof Int16Array),b(u.length%3==0),b(j instanceof Float32Array),b(j.length%w==0),b(w>=3),b(E>=0);var A=u.BYTES_PER_ELEMENT==4?u:new Uint32Array(u),N=y(e.exports.meshopt_simplifyPrune,A,u.length,j,j.length/w,w*4,E);return N=u instanceof Uint32Array?N:new u.constructor(N),N},remesh:function(u,j,w,E,A){b(u instanceof Uint32Array||u instanceof Int32Array||u instanceof Uint16Array||u instanceof Int16Array),b(u.length%3==0),b(j instanceof Float32Array),b(j.length%w==0),b(w>=3),b(E>=4&&E<=256);for(var N=0,M=0;M<(A?A.length:0);++M)b(A[M]in v),N|=v[A[M]];var I=u.BYTES_PER_ELEMENT==4?u:new Uint32Array(u);return k(e.exports.meshopt_remesh,I,j,w*4,E,N)}}})();var nb=(function(){var c="b9H79Tebbbe:neP9Geueu9Geub9Gbb9Giuuueu9Gmuuuuuuuuuuu9999eu9Gouuuuuueu9Gruuuuuuub9Gxuuuuuuuuuuuueu9Gxuuuuuuuuuuu99eu9GPuuuuuuuuuuuuu99b9Gouuuuuub9Gwuuuuuuuub9Gvuuuuub9GluuuubiQXdilvorwDqokoqxmbiibeilve9Weiiviebeoweuecj:Gdkr;Zeqo9TW9T9VV95dbH9F9F939H79T9F9J9H229F9Jt9VV7bb8A9TW79O9V9Wt9F9I919P29K9nW79O2Wt79c9V919U9KbeY9TW79O9V9Wt9F9I919P29K9nW79O2Wt7S2W94bd39TW79O9V9Wt9F9I919P29K9nW79O2Wt79t9W9Ht9P9H2bo39TW79O9V9Wt9F9J9V9T9W91tWJ2917tWV9c9V919U9K7bw39TW79O9V9Wt9F9J9V9T9W91tW9nW79O2Wt9c9V919U9K7bkE9TW79O9V9Wt9F9J9V9T9W91tW9t9W9OWVW9c9V919U9K7bxL9TW79O9V9Wt9F9V9Wt9P9T9P96W9nW79O2WtbPl79IV9RbsDwebcekdOAq;W:leXdbkIbabaec9:fgefcufae9Ugeabci9Uadfcufad9Ugbaeab0Ek:88JDPue99eux99due99euo99iu8Jjjjjbc:WD9Rgm8KjjjjbdndnalmbcbhPxekamc:Cwfcbc;Kbz:rjjjb8AcuaocdtgsaocFFFFi0Ehzcbyd;0:G:cjbhHdndnalcb9imbaoal9nmbamazaHHjjjjbbgHBd:CwamceBd;8wamazcbyd;0:G:cjbHjjjjbbgOBd:GwamcdBd;8wamcualcdtalcFFFFi0Ecbyd;0:G:cjbHjjjjbbgABd:KwamciBd;8waihzalhsinaHazydbcdtfcbBdbazclfhzascufgsmbkaihzalhsinaHazydbcdtfgCaCydbcefBdbazclfhzascufgsmbkaihzalhCcbhXindnaHazydbcdtgQfgsydbcb9imbaOaQfaXBdbasasydbgQcjjjj94VBdbaQaXfhXkazclfhzaCcufgCmbkalci9UhLdnalci6mbcbhzaihsinascwfydbhCasclfydbhXaOasydbcdtfgQaQydbgQcefBdbaAaQcdtfazBdbaOaXcdtfgXaXydbgXcefBdbaAaXcdtfazBdbaOaCcdtfgCaCydbgCcefBdbaAaCcdtfazBdbascxfhsaLazcefgz9hmbkkaihzalhsindnaHazydbcdtgCfgXydbgQcu9kmbaXaQcFFFFrGgQBdbaOaCfgCaCydbaQ9RBdbkazclfhzascufgsmbxdkkamazaHHjjjjbbgHBd:CwamceBd;8wamazcbyd;0:G:cjbHjjjjbbgOBd:GwamcdBd;8wamcualcdtalcFFFFi0Ecbyd;0:G:cjbHjjjjbbgABd:KwamciBd;8waHcbasz:rjjjbhXaihzalhsinaXazydbcdtfgCaCydbcefBdbazclfhzascufgsmbkalci9UhLdnaoTmbcbhzaOhsaXhCaohQinasazBdbasclfhsaCydbazfhzaCclfhCaQcufgQmbkkdnalci6mbcbhzaihsinascwfydbhCasclfydbhQaOasydbcdtfgKaKydbgKcefBdbaAaKcdtfazBdbaOaQcdtfgQaQydbgQcefBdbaAaQcdtfazBdbaOaCcdtfgCaCydbgCcefBdbaAaCcdtfazBdbascxfhsaLazcefgz9hmbkkaoTmbcbhzaohsinaOazfgCaCydbaXazfydb9RBdbazclfhzascufgsmbkkamaLcbyd;0:G:cjbHjjjjbbgzBd:OwamclBd;8wazcbaLz:rjjjbhYamcuaLcK2alcjjjjd0Ecbyd;0:G:cjbHjjjjbbg8ABd:SwamcvBd;8wJbbbbhEdnalci6g3mbarcd4hKaihsa8AhzaLhrJbbbbh5inavasclfydbaK2cdtfgCIdlh8EavasydbaK2cdtfgXIdlhEavascwfydbaK2cdtfgQIdlh8FaCIdwhaaXIdwhhaQIdwhgazaCIdbg8JaXIdbg8KMaQIdbg8LMJbbnn:vUdbazclfaXIdlaCIdlMaQIdlMJbbnn:vUdbaQIdwh8MaCIdwh8NaXIdwhyazcxfa8EaE:tg8Eagah:tggNaaah:tgaa8FaE:tghN:tgEJbbbbJbbjZa8Ja8K:tg8FahNa8Ea8La8K:tg8KN:tghahNaEaENaaa8KNa8FagN:tgEaENMMg8K:rg8E:va8KJbbbb9BEg8KNUdbazczfaEa8KNUdbazcCfaha8KNUdbazcwfa8Maya8NMMJbbnn:vUdba5a8EMh5ascxfhsazcKfhzarcufgrmbka5aL:Z:vJbbbZNhEkamcuaLcdtalcFFFF970Ecbyd;0:G:cjbHjjjjbbgCBd:WwamcoBd;8waq:Zhhdna3mbcbhzaChsinasazBdbasclfhsaLazcefgz9hmbkkaEahNhhamcuaLcltalcFFFFd0Ecbyd;0:G:cjbHjjjjbbg8PBd:0wamcrBd;8wcba8Pa8AaCaLcbz:djjjb8AJFFuuh8MJFFuuh8NJFFuuhydnalci6mbJFFuuhya8AhzaLhsJFFuuh8NJFFuuh8MinazcwfIdbgEa8Ma8MaE9EEh8MazclfIdbgEa8Na8NaE9EEh8NazIdbgEayayaE9EEhyazcKfhzascufgsmbkkah:rhEamaocetgzcuaocu9kEcbyd;0:G:cjbHjjjjbbgCBd:4wdndnaoal9nmbaihzalhsinaCazydbcetfcFFi87ebazclfhzascufgsmbxdkkaCcFeazz:rjjjb8AkaEJbbbZNh8JcuhIdnalci6mbcbhsJFFuuhEa8AhzcuhIinazcwfIdba8M:tghahNazIdbay:tghahNazclfIdba8N:tghahNMM:rghaEaIcuSahaE9DVgXEhEasaIaXEhIazcKfhzaLascefgs9hmbkkamczfcbcjwz:rjjjb8Aam9cb83iwam9cb83ibaxa8JNh8RJbbjZak:th8Lcbh8SJbbbbhRJbbbbh8UJbbbbh8VJbbbbh8WJbbbbh8XJbbbbh8Ycbh8ZcbhPinJbbbbhEdna8STmbJbbjZa8S:Z:vhEkJbbbbhhdna8Ya8YNa8Wa8WNa8Xa8XNMMg8KJbbbb9BmbJbbjZa8K:r:vhhka8VaENh8Ka8UaENh5aRaENh8EaIhLdndndndndna8SaPVTmbamydwg80Tmea8YahNh8Fa8XahNhaa8WahNhgaeamydbcdtfh81cbh3JFFuuhEcvhQcuhLindnaHa81a3cdtfydbcdtgzfydbgvTmbaAaOazfydbcdtfhsindndnaCaiasydbgKcx2fgzclfydbgrcetf8Vebcs4aCazydbgXcetf8Vebcs4faCazcwfydbglcetf8Vebcs4fgombcbhzxekcehzaHaXcdtfydbgXceSmbcehzaHarcdtfydbgrceSmbcehzaHalcdtfydbglceSmbdnarcdSaXcdSfalcdSfcd6mbaocefhzxekaocdfhzkdnazaQ9kmba8AaKcK2fgXIdwa8K:tghahNaXIdba8E:tghahNaXIdla5:tghahNMM:ra8J:va8LNJbbjZMJ9VO:d86JbbjZaXIdCa8FNaXIdxagNaaaXIdzNMMakN:tghahJ9VO:d869DENghaEazaQ6ahaE9DVgXEhEaKaLaXEhLazaQaXEhQkasclfhsavcufgvmbkka3cefg3a809hmbkkaLcu9hmekama8KUd:ODama5Ud:KDama8EUd:GDamcuBd:qDamcFFF;7rBdjDa8Pcba8AaYamc:GDfamc:qDfamcjDfz:ejjjbamyd:qDhLdndnaxJbbbb9ETmba8SaD6mbaLcuSmeceh3amIdjDa8R9EmixdkaLcu9hmekdna8STmbabaPcltfgHam8Piw83dwaHam8Pib83dbaPcefhPkc3hHinamc:CwfaHfydbcbyd;4:G:cjbH:bjjjbbaHc98fgHc989hmbxvkkcbh3a8Saq9pmbamydwaCaiaLcx2fgzydbcetf8Vebcs4aCazcwfydbcetf8Vebcs4faCazclfydbcetf8Vebcs4ffaw9nmekcbhzcbhsdna8ZTmbcbhsamczfhXinamczfascdtfaXydbgQBdbaXclfhXasaYaQfRbbTfhsa8Zcufg8ZmbkkamydwhlamydbhXam9cu83i:GDam9cu83i:ODam9cu83i:qDam9cu83i:yDinamcjDfazfcFFF;7rBdbazclfgzcz9hmbkasc;8easclfc:bd6Eg8Zcdth80dnalTmbaeaXcdtfhocbhrindnaHaoarcdtfydbcdtgzfydbgvTmbaAaOazfydbcdtfhscuhQcuhzinaHaiasydbgKcx2fgXclfydbcdtfydbaHaXydbcdtfydbfaHaXcwfydbcdtfydbfgXazaXaz6gXEhzaKaQaXEhQasclfhsavcufgvmbkaQcuSmba8AaQcK2fgsIdwa8M:tgEaENasIdbay:tgEaENasIdla8N:tgEaENMM:rhEcbhsindndnazamc:qDfasfgvydbgX6mbazaX9hmeaEamcjDfasfIdb9FTmekavazBdbamc:GDfasfaQBdbamcjDfasfaEUdbxdkasclfgscz9hmbkkarcefgral9hmbkkamczfa80fhQcbhzcbhsindnamc:GDfazfydbgXcuSmbaQascdtfaXBdbascefhskazclfgzcz9hmbkasa8Zfg8ZTmbJFFuuhhcuhKamczfhza8ZhvcuhQina8AazydbgXcK2fgsIdwa8M:tgEaENasIdbay:tgEaENasIdla8N:tgEaENMM:rhEdndnaHaiaXcx2fgsclfydbcdtfydbaHasydbcdtfydbfaHascwfydbcdtfydbfgsaQ6mbasaQ9hmeaEah9DTmekaEhhashQaXhKkazclfhzavcufgvmbkaKcuSmbaKhLkdnamaiaLcx2fgrydbarclfydbarcwfydbaCabaeadaPawaqa3z:fjjjbTmbaPcefhPJbbbbhRJbbbbh8UJbbbbh8VJbbbbh8WJbbbbh8XJbbbbh8YkcbhXinaAaOaraXcdtfydbcdtgsfydbcdtfgKhzaHasfgvydbgQhsdnaQTmbdninazydbaLSmeazclfhzascufgsTmdxbkkazaKaQcdtfc98fydbBdbavavydbcufBdbkaXcefgXci9hmbka8AaLcK2fgzIdbhEazIdlhhazIdwh8KazIdxh5azIdzh8EazIdCh8FaYaLfce86bba8Ya8FMh8Ya8Xa8EMh8Xa8Wa5Mh8Wa8Va8KMh8Va8UahMh8UaRaEMhRamydxh8Sxbkkamc:WDf8KjjjjbaPkjoivuv99lu8Jjjjjbca9Rgo8Kjjjjbdndnalcw0mbaiydbhraeabcitfgwalcdtciVBdlawarBdbdnalcd6mbaiclfhralcufhDawcxfhwinarydbhqawcuBdbawc98faqBdbawcwfhwarclfhraDcufgDmbkkalabfhwxekcbhqaocbBdKao9cb83izaocbBdwao9cb83ibJbbjZhkJbbjZhxinadaiaqcdtfydbcK2fhDcbhwinaoczfawfgraDawfIdbgmarIdbgP:tgsaxNaPMgPUdbaoawfgrasamaP:tNarIdbMUdbawclfgwcx9hmbkJbbjZakJbbjZMgk:vhxaqcefgqal9hmbkcbhradcbcecdaoIdlgmaoIdwgP9GEgwaoIdbgsaP9GEawasam9GEgzcdtgwfhHaoczfawfIdbhmaihwalhDinaiarcdtfgqydbhOaqawydbgABdbawaOBdbawclfhwaraHaAcK2fIdbam9DfhraDcufgDmbkdndnarcv6mbavc8X9kmbaralc98f6mekaiydbhraeabcitfgwalcdtciVBdlawarBdbaiclfhralcufhDawcxfhwinarydbhqawcuBdbawc98faqBdbawcwfhwarclfhraDcufgDmbkalabfhwxekaeabcitfgwamUdbawawydlc98GazVBdlabcefaeadaiaravcefgqz:djjjbhDawawydlciGaDabcu7fcdtVBdlaDaeadaiarcdtfalar9Raqz:djjjbhwkaocaf8Kjjjjbawk;Oddvue99dninabaecitfgrydlgwcd4gDTmednawciGgqci9hmbcihqdnawcl6mbabaecitfhbcbheawhqcehkindnaiabydbgDfRbbmbcbhkadaDcK2fgwIdwalIdw:tgxaxNawIdbalIdb:tgxaxNawIdlalIdl:tgxaxNMM:rgxaoIdb9DTmbaoaxUdbavaDBdbarydlhqkabcwfhbaecefgeaqcd46mbkakceGTmikaraqciGBdlskdnabcbaDalaqcdtfIdbarIdb:tgxJbbbb9FEgwaD7aecefgDfgecitfydlabawaDfgDcitfydlVci0mbaraqBdlkabaDadaialavaoz:ejjjbax:laoIdb9Fmbkkkjlevudndnabydwgxaladcetfgm8Vebcs4alaecetfgP8Vebgscs4falaicetfgz8Vebcs4ffaD0mbakmbcbhDabydxaq6mekavawcltfgxab8Pdw83dwaxab8Pdb83dbabydbhDdnabydwgwTmbaoaDcdtfhxawhsinalaxydbcetfcFFi87ebaxclfhxascufgsmbkkabaDawfBdbabydxhxab9cb83dwababydlaxci2fBdlaP8VebhscehDcbhxkdnascztcz91cu9kmbabaxcefBdwaPax87ebaoabydbcdtfaxcdtfaeBdbkdnam8Uebcu9kmbababydwgxcefBdwamax87ebaoabydbcdtfaxcdtfadBdbkdnaz8Uebcu9kmbababydwgxcefBdwazax87ebaoabydbcdtfaxcdtfaiBdbkarabydlfabydxci2faPRbb86bbarabydlfabydxci2fcefamRbb86bbarabydlfabydxci2fcdfazRbb86bbababydxcefBdxaDk:mPrHue99eue99eue99iu8Jjjjjbc;W;Gb9Rgx8KjjjjbdndnalmbcbhmxekcbhPaxc:m;Gbfcbc;Kbz:rjjjb8Aaxcualci9UgscltascjjjjiGEcbyd;0:G:cjbHjjjjbbgzBd:m9GaxceBd;S9GaxcuascK2gHcKfalcpFFFe0Ecbyd;0:G:cjbHjjjjbbgOBd:q9GaxcdBd;S9Gdnalci6gAmbarcd4hCascdthXaOhQazhLinavaiaPcx2fgrydwaC2cdtfhKavarydlaC2cdtfhYavarydbaC2cdtfh8AcbhraLhEinaQarfgma8Aarfg3Idbg5aYarfg8EIdbg8Fa5a8F9DEg5UdbamaKarfgaIdbg8Fa5a8Fa59DEg8FUdbamcxfgma3Idbg5a8EIdbgha5ah9EEg5UdbamaaIdbgha5aha59EEg5UdbaEa8Fa5MJbbbZNUdbaEaXfhEarclfgrcx9hmbkaQcKfhQaLclfhLaPcefgPas9hmbkkaOaHfgr9cb83dbar9cb83dzar9cb83dwaxcuascx2gralc:bjjjl0Ecbyd;0:G:cjbHjjjjbbgHBdN9GaxciBd;S9GascdthgazarfhvaxcwVhPaxclVhCaHh8Jazh8KcbhLinaxcbcj;Gbz:rjjjbhEaLas2cdthadnaAmba8Khrash3inaEarydbgmc8F91cjjjj94Vam7gmcQ4cx2fg8Ea8EydwcefBdwaEamcd4cFrGcx2fg8Ea8EydbcefBdbaEamcx4cFrGcx2fgmamydlcefBdlarclfhra3cufg3mbkkazaafh8AaHaafhXcbhmcbh3cbh8EcbhainaEamfgrydbhQara3BdbarcwfgKydbhYaKaaBdbarclfgrydbhKara8EBdbaQa3fh3aYaafhaaKa8Efh8Eamcxfgmcj;Gb9hmbkdnaAmbcbhravhminamarBdbamclfhmasarcefgr9hmbkavhrashminaEa8Aarydbg3cdtfydbg8Ec8F91a8E7cd4cFrGcx2fg8Ea8Eydbg8EcefBdbaXa8Ecdtfa3Bdbarclfhramcufgmmbka8JhrashminaCa8Aarydbg3cdtfydbg8Ec8F91a8E7cx4cFrGcx2fg8Ea8Eydbg8EcefBdbava8Ecdtfa3BdbarclfhramcufgmmbkavhrashminaPa8Aarydbg3cdtfydbg8Ec8F91cjjjj94Va8E7cQ4cx2fg8Ea8Eydbg8EcefBdbaXa8Ecdtfa3Bdbarclfhramcufgmmbkka8Jagfh8Ja8Kagfh8KaLcefgLci9hmbkaEaocetgrcuaocu9kEcbyd;0:G:cjbHjjjjbbgKBd:y9GaEclBd;S9Gdndnaoal9nmbaihralhminaKarydbcetfcFFi87ebarclfhramcufgmmbxdkkaKcFearz:rjjjb8Akcbh8EaEascbyd;0:G:cjbHjjjjbbg8ABd:C9GaOaHaHascdtfaHascitfa8AascbazaKaiawaDaqakz:hjjjbdndnalci6mba8Ahrashmina8EarRbbfh8EarcefhramcufgmmbkaE9cb83iwaE9cb83ibalawc9:fgrfcufar9UgrasaDfcufaD9Ugmaram0EhYcbhmcbhra8Ehaincbh3dnarTmba8AarfRbbceSh3kamaEaiaHydbcx2fgQydbaQclfydbaQcwfydbaKabaeadamawaqa3a3ce7a8EaY9nVaaamfaY6VGz:fjjjbfhmaHclfhHaaa8AarfRbb9Rhaasarcefgr9hmbkaEydxTmeabamcltfgraE8Piw83dwaraE8Pib83dbamcefhmxekaE9cb83iwaE9cb83ibcbhmkczhrinaEc:m;Gbfarfydbcbyd;4:G:cjbH:bjjjbbarc98fgrc989hmbkkaxc;W;Gbf8Kjjjjbamk:wKDQue99iue99iul9:euw99iu8Jjjjjbc;qb9RgP8Kjjjjbaxhsaxhzdndnavax0gHmbdnavTmbcbhOaehzavhAinawaDazydbcx2fgCcwfydbcetfgX8VebhQawaCclfydbcetfgL8VebhKawaCydbcetfgC8VebhYaXce87ebaLce87ebaCce87ebaOaKcs4aYcs4faQcs4ffhOazclfhzaAcufgAmbkaehzavhAinawaDazydbcx2fgCcwfydbcetfcFFi87ebawaCclfydbcetfcFFi87ebawaCydbcetfcFFi87ebazclfhzaAcufgAmbkcehzaqhsaOaq0mekalce86bbalcefcbavcufz:rjjjb8AxekaPaiBdxaPadBdwaPaeBdlavakaqci9Ug8Aaka8Aak6EaHEgK9RhEaxaK9Rh3aKcufh5aKceth8EaKcdtgCc98fh8FavcitgOaC9Rarfc98fhaascufhhavcufhgaraOfh8JJbbjZas:Y:vh8KcbazceakaxSEg8Lcdtg8M9Rh8NJFFuuhycuh8PcbhIcbh8RinaPclfa8RcdtfydbhQaPcb8Pd:y:G:cjbg8S83i9iaPcb8Pd:q:G:cjbgR83inaPcb8Pd1:G:cjbg8U83iUaPcb8Pdj:G:cjbg8V83i8WaPa8S83iyaPaR83iaaPa8U83iKaPa8V83izaQavcdtgYfh8WcbhXinabaQaXcdtgLfydbcK2fhAcbhzinaPc8WfazfgCaAazfgOIdbg8XaCIdbg8Ya8Xa8Y9DEUdbaCczfgCaOcxfIdbg8XaCIdbg8Ya8Xa8Y9EEUdbazclfgzcx9hmbkaba8WaXcu7cdtfydbcK2fhAcbhzaPIdUh8ZaPId9ih80aPId80h81aPId9ehBaPId8Wh83aPIdnhUinaPczfazfgCaAazfgOIdbg8XaCIdbg8Ya8Xa8Y9DEUdbaCczfgCaOcxfIdbg8XaCIdbg8Ya8Xa8Y9EEUdbazclfgzcx9hmbkaraLfgza80a8Z:tg8XaUa83:tg8YNa8YaBa81:tg8ZNa8Za8XNMMUdbazaYfaPIdyaPIdK:tg8XaPIdaaPIdz:tg8YNa8YaPId8KaPIdC:tg8ZNa8Za8XNMMUdbaXcefgXav9hmbkcbh85dnaHmbcbhAaQhza8JhCavhXinawaDazydbcx2fgOcwfydbcetfgL8Vebh8WawaOclfydbcetfg858Vebh86awaOydbcetfgO8Vebh87aLce87eba85ce87ebaOce87ebaCaAa86cs4a87cs4fa8Wcs4ffgABdbazclfhzaCclfhCaXcufgXmbkavhCinawaDaQydbcx2fgzcwfydbcetfcFFi87ebawazclfydbcetfcFFi87ebawazydbcetfcFFi87ebaQclfhQaCcufgCmbka8Jh85kdndndndndndndndndndndnava8E6mba8Eax9nmeavavaK9UgzaK29Raza320mda5aE9pmqa85Th87ceh8WaEhQxwka5ag9pmDa8Eax9nmixokavaK6mea5aE9pmwcehQaEhXa85Tmixlka5ag6mlxrka5ag9pmokcbhQaghXa85mekJFFuuh8XcbhLa5hzindnazcefgCaK6mbaQavaC9RgOaK6GmbarazcdtfIdbg8YaC:YNaravaz9RcdtfaYfc94fIdbg8ZaO:YNMg80a8X9Embdndna8KaOahf:YNg81:lJbbb9p9DTmba81:OhAxekcjjjj94hAka8ZasaA2aO9R:YNh8Zdndna8Kazasf:YNg81:lJbbb9p9DTmba81:OhOxekcjjjj94hOkamasaO2aC9R:Ya8YNa8ZMNa80Mg8Ya8Xa8Ya8X9DgOEh8XaCaLaOEhLkaza8LfgzaX6mbxlkkJFFuuh8XcbhLaEhCaahAa8FhOaKhzindnazaK6mbaQaCaK6GmbaraOfIdbg8Yaz:YNaAIdbg8ZaC:YNMg80a8X9Embdndna8Ka85aOfydbgYahf:YNg81:lJbbb9p9DTmba81:Oh8Wxekcjjjj94h8Wkamasa8W2aY9R:Yg81a8YNa8Za81NMNa80Mg8Ya8Xa8Ya8X9DgYEh8XazaLaYEhLkaCa8L9RhCaAa8NfhAaOa8MfhOaza8LfgzcufaX6mbxikka85Th87cbh8WaghQkJFFuuh8XcbhLaEhCaahAa8FhOaKhzindnazazaK9UgXaK29RaXa320mbdna8WTmbaCaCaK9UgXaK29RaXa320mekaraOfIdbg8Yaz:YNaAIdbg8ZaC:YNMg80a8X9EmbazhXaChYdna87mba85aOfydbgXhYkdndna8KaYahf:YNg81:lJbbb9p9DTmba81:Oh86xekcjjjj94h86ka8Zasa862aY9R:YNh8Zdndna8KaXahf:YNg81:lJbbb9p9DTmba81:OhYxekcjjjj94hYkamasaY2aX9R:Ya8YNa8ZMNa80Mg8Ya8Xa8Ya8X9DgXEh8XazaLaXEhLkaCa8L9RhCaAa8NfhAaOa8MfhOaza8LfgzcufaQ6mbkkaLTmba8Xay9DTmba8XhyaLhIa8Rh8Pka8Rcefg8Rci9hmbkdndnaoc8X9kmba8Pcb9omeka8Acufh85cbhYindndndnavaY9RaxaYaxfav0Eg8WTmbcbhAaeaYcdtfgzhCa8WhXinawaDaCydbcx2fgOcwfydbcetfgQ8VebhbawaOclfydbcetfgL8VebhrawaOydbcetfgO8VebhKaQce87ebaLce87ebaOce87ebaAarcs4aKcs4fabcs4ffhAaCclfhCaXcufgXmbka8WhOinawaDazydbcx2fgCcwfydbcetfcFFi87ebawaCclfydbcetfcFFi87ebawaCydbcetfcFFi87ebazclfhzaOcufgOmbkaAaq0mekalaYfgzce86bbazcefcba8Wcufz:rjjjb8AxekalaYfgzce86bbazcefcba85z:rjjjb8Aa8Ah8Wka8WaYfgYav9pmdxbkkaravcdtg8WfhLdnaITmbaPclfa8PcdtfydbhzaIhCinaLazydbfcb86bbazclfhzaCcufgCmbkkdnavaI9nmbaPclfa8PcdtfydbaIcdtfhzavaI9RhCinaLazydbfce86bbazclfhzaCcufgCmbkkcbhYindnaYa8PSmbcbhzaraPclfaYcdtfydbgKa8Wz:qjjjbhCavhXaIhOinaKaOazaLaCydbgQfRbbgAEcdtfaQBdbaCclfhCaOaAfhOazaA9RcefhzaXcufgXmbkkaYcefgYci9hmbkabaeadaialaIaocefgCarawaDaqakaxamz:hjjjbabaeaIcdtgzfadazfaiazfalaIfavaI9RaCarawaDaqakaxamz:hjjjbkaPc;qbf8Kjjjjbk:Seeru8Jjjjjbc:q;ab9Rgo8Kjjjjbaoc:q8WfcFecjzz:rjjjb8AcbhrdnadTmbaehwadhDinaoarcdtfawydbgqBdbaoc:q8WfaqcFiGcdtfgkydbhxakaqBdbawclfhwaraxaq9hfhraDcufgDmbkkabaeadaoaraiavz:jjjjbaoc:q;abf8Kjjjjbk;Sqloud99euD998Jjjjjbc:W;ab9Rgr8KjjjjbdndnadTmbaocd4hwcbhDcbhqindnavaeclfydbaw2cdtfgkIdbavaeydbaw2cdtfgxIdbgm:tgPavaecwfydbaw2cdtfgsIdlaxIdlgz:tgHNakIdlaz:tgOasIdbam:tgAN:tgCaCNaOasIdwaxIdwgX:tgQNakIdwaX:tgOaHN:tgHaHNaOaANaPaQN:tgPaPNMMgOJbbbb9Bmbarc8WfaDcltfgkaCaO:rgO:vgCUdwakaPaO:vgPUdlakaHaO:vgHUdbakaCaXNaHamNazaPNMM:mUdxaDcefhDkaecxfheaqcifgqad6mbkab9cb83dyab9cb83daab9cb83dKab9cb83dzab9cb83dwab9cb83dbaDTmearcbBd8Sar9cb83iKar9cb83izarczfavalaoarc8Sfcbcraiz:kjjjbarIdKhQarIdChLarIdzhKar9cb83iwar9cb83ibararc8WfaDczarc8Sfcbcicbz:kjjjbJbbbbhmdnarIdwgzazNarIdbgHaHNarIdlgXaXNMMgCJbbbb9BmbJbbjZaC:r:vhmkazamNhCaXamNhXaHamNhHJbbjZhmarc8WfheaDhvinaecwfIdbaCNaeIdbaHNaXaeclfIdbNMMgzamazam9DEhmaeczfheavcufgvmbkabaQUdwabaLUdlabaKUdbabarId3UdxdndnamJ;n;m;m899FmbJbbbbhzarc8WfheinaecxfIdbaQaecwfIdbgPNaKaeIdbgONaLaeclfIdbgANMMMaCaPNaHaONaXaANMM:vgPazaPaz9EEhzaeczfheaDcufgDmbkabaCUd8KabaXUdaabaHUd3abaQaCazN:tUdKabaLaXazN:tUdCabaKaHazN:tUdzabJbbjZamamN:t:rgmUdydndnaCJbbj:;aCJbbj:;9GEgzJbbjZazJbbjZ9FEJbb;:9cNJbbbZJbbb:;aCJbbbb9GEMgz:lJbbb9p9DTmbaz:Ohexekcjjjj94hekabae86b8UdndnaXJbbj:;aXJbbj:;9GEgzJbbjZazJbbjZ9FEJbb;:9cNJbbbZJbbb:;aXJbbbb9GEMgz:lJbbb9p9DTmbaz:Ohvxekcjjjj94hvkabav86bRdndnaHJbbj:;aHJbbj:;9GEgzJbbjZazJbbjZ9FEJbb;:9cNJbbbZJbbb:;aHJbbbb9GEMgz:lJbbb9p9DTmbaz:Ohwxekcjjjj94hwkabaw86b8SdndnaecKtcK91:YJbb;:9c:vaC:t:lavcKtcK91:YJbb;:9c:vaX:t:lawcKtcK91:YJbb;:9c:vaH:t:lamMMMJbb;:9cNJbbjZMgm:lJbbb9p9DTmbam:Ohexekcjjjj94hekaecFbaecFb9iEhexekabcjjj;8iBdycFbhekabae86b8Vxekab9cb83dyab9cb83daab9cb83dKab9cb83dzab9cb83dwab9cb83dbkarc:W;abf8Kjjjjbk;7woDuo99eue99euv998Jjjjjbcje9Rgw8Kjjjjbawc;abfcbaocdtgDz:rjjjb8Aawc;GbfcbaDz:rjjjb8AawcafhDawhqaohkinaqcFFF97BdbaDcFFF;7rBdbaqclfhqaDclfhDakcufgkmbkavcd4hxaicd4hmdnadTmbaocx2hPcbhsinashzdnarTmbarascdtfydbhzkaeazam2cdtfgDIdwhHaDIdlhOaDIdbhAalazax2cdtfIdbhCcbhDawcafhqawc;Gbfhvawhkawc;abfhiinaCaDc:O:G:cjbfIdbaHNaDc:G:G:cjbfIdbaANaDc:K:G:cjbfIdbaONMMgXMhQazhLdnaXaC:tgXaqIdbgK9DgYmbavydbhLkavaLBdbazhLdnaQakIdbg8A9EmbaiydbhLa8AhQkaiaLBdbakaQUdbaqaXaKaYEUdbaiclfhiakclfhkavclfhvaqclfhqaPaDcxfgD9hmbkascefgsad9hmbkkJbbbbhQcbhLawc;GbfhDawc;abfhqcbhkinalaqydbgvax2cdtfIdbalaDydbgiax2cdtfIdbaeavam2cdtfgvIdwaeaiam2cdtfgiIdw:tgCaCNavIdbaiIdb:tgCaCNavIdlaiIdl:tgCaCNMM:rMMgCaQaCaQ9EgvEhQakaLavEhLaqclfhqaDclfhDaoakcefgk9hmbkJbbbbhCdnaeawc;abfaLcdtgqfydbgkam2cdtfgDIdwaeawc;Gbfaqfydbgvam2cdtfgqIdwgH:tgXaXNaDIdbaqIdbgA:tg8Aa8ANaDIdlaqIdlgE:tgOaONMMgKJbbbb9ETmbaK:rgCalakax2cdtfIdbMalavax2cdtfIdb:taCaCM:vhCkaQJbbbZNhKaXaCNaHMhHaOaCNaEMhOa8AaCNaAMhAdnadTmbcbhqarhkinaqhDdnarTmbakydbhDkdnalaDax2cdtfIdbg3aeaDam2cdtfgDIdwaH:tgQaQNaDIdbaA:tgCaCNaDIdlaO:tgXaXNMMg5:rgEMg8EaK9ETmbJbbbbh8Adna5Jbbbb9ETmba8EaK:taEaEM:vh8Aka8AaQNaHMhHa8AaXNaOMhOa8AaCNaAMhAa3aKaEMMJbbbZNhKkakclfhkadaqcefgq9hmbkkabaKUdxabaHUdwabaOUdlabaAUdbawcjef8Kjjjjbk:reevu8Jjjjjbcj8W9Rgr8Kjjjjbaici2hwcbhDdnaiTmbarhiawhqinaiaeadRbbgkcdtfydbBdbaDakcefgkaDak0EhDaiclfhiadcefhdaqcufgqmbkkabarawaeaDalaoz:jjjjbarcj8Wf8Kjjjjbk:Eeeeu8Jjjjjbca9Rgo8Kjjjjbab9cb83dyab9cb83daab9cb83dKab9cb83dzab9cb83dwab9cb83dbdnadTmbaocbBd3ao9cb83iwao9cb83ibaoaeadaialaoc3falEavcbalEcrcbz:kjjjbabao8Pib83dbabao8Piw83dwkaocaf8Kjjjjbk::meQu8Jjjjjbcjz9Rgv8KjjjjbcbhoavcjPfcbaez:rjjjb8Aavcjxfcbaez:rjjjb8AdnaiTmbadhoaihrinavcjxfaoRbbfgwawRbbcef86bbavcjxfaocefRbbfgwawRbbcef86bbavcjxfaocdfRbbfgwawRbbcef86bbaocifhoarcufgrmbkcbhDcjehoadhqcehkindndnalTmbcbhxcuhmaqhrakhwcuhPinawcufamaoavcjPfarcefRbbgsfRbb9RcFeGgzci6aoavcjPfarRbbgHfRbb9RcFeGgOci6faoavcjPfarcdfRbbgAfRbb9RcFeGgCci6fgXcOtaOcFr7azaCf9RcwtVavcjxfaAfRbbgzavcjxfaHfRbbgHavcjxfasfRbbgsaHas6Egsazas6EcFe7VgsaP9kgzEhmaXcd6gHaxcefgOal9iVce9hmdasaPazEhPaxaOaHEhxarcifhrawai6hsawcefhwasmbxdkkcuhmaqhrakhwcuhxinawcufamaoavcjPfarcefRbbfRbb9RcFeGci6aoavcjPfarRbbfRbb9RcFeGci6faoavcjPfarcdfRbbfRbb9RcFeGci6fgPax9kgsEhmaPce0meaPaxasEhxarcifhrawai6hPawcefhwaPmbkkadamci2fgrcdfRbbhwarcefRbbhxarRbbhPadaDci2fgrcifaramaD9Rci2zNjjjb8AaPavcjPffaocefgo86bbaPavcjxffgmamRbbcuf86bbaxavcjPffao86bbaxavcjxffgmamRbbcuf86bbarcdfaw86bbarcefax86bbaraP86bbawavcjPffao86bbawavcjxffgrarRbbcuf86bbaqcifhqakcefhkaDcefgDai9hmbkcbhzdnalcb9mmbcbhsavcjPfcbaez:rjjjb8Aadcvfhlinadasci2fgxcefgDRbbhoaxcdfgqRbbhrdndnavcjPfaxRbbgmfRbbmbavcjPfarfRbbhwdndndnavcjPfaofRbbTmbawcFeGTmexikawcFeGmdascefgAai9pmdasc980mdascifhQcbhLarcFeGhCamcFeGhXalhwcbhKcbhYinawcufRbbhPawRbbhOcehkdndnawc9:fRbbgHao9hmbaPcFeGamSmekdnaPcFeGao9hmbaOcFeGamSmekaHamSaOcFeGaoSGhkkceh8AaYceGhYdndnaHar9hmbaPcFeGaoSmekdnaPcFeGar9hmbaOcFeGaoSmekaHaoSaOcFeGarSGh8AkakaYVhYaLaHcFeGgHaXSaPcFeGgPaCSGaPaXSaOcFeGgPaCSGVaHaCSaPaXSGVVhLa8AaKceGVhKdnaAcefgPai9pmbawcifhwaAaQ6hHaPhAaHmekkaYTmeaKmekarhwaohPaohHarhOamhrxdkdnaYTaLVceGTmbaYaKTVaLVceGmekamhwarhParhHamhOaohrxekaohwamhPamhHaohOkavcjPfarfce86bbavcjPfawfce86bbaxaH86bbaqar86bbaDaO86bbavcjPfaPfce86bbalcifhlascefgsai9hmbkkavcFeaecetz:rjjjbhwaici2hrindnawadRbbgmcetfgx8Uebgocu9kmbaxaz87ebawcjlfazcdtfabamcdtfydbBdbazhoazcefhzkadao86bbadcefhdarcufgrmbkazcdthokabavcjlfaoz:qjjjb8Aavcjzf8KjjjjbkObabaiaeadcbz:njjjbk9teiucbcbyd;8:G:cjbgeabcifc98GfgbBd;8:G:cjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaik;LeeeudndnaeabVciGTmbabhixekdndnadcz9pmbabhixekabhiinaiaeydbBdbaiclfaeclfydbBdbaicwfaecwfydbBdbaicxfaecxfydbBdbaeczfheaiczfhiadc9Wfgdcs0mbkkadcl6mbinaiaeydbBdbaeclfheaiclfhiadc98fgdci0mbkkdnadTmbinaiaeRbb86bbaicefhiaecefheadcufgdmbkkabk;aeedudndnabciGTmbabhixekaecFeGc:b:c:ew2hldndnadcz9pmbabhixekabhiinaialBdbaicxfalBdbaicwfalBdbaiclfalBdbaiczfhiadc9Wfgdcs0mbkkadcl6mbinaialBdbaiclfhiadc98fgdci0mbkkdnadTmbinaiae86bbaicefhiadcufgdmbkkabk9teiucbcbyd;8:G:cjbgeabcrfc94GfgbBd;8:G:cjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaikTeeucbabcbyd;8:G:cjbge9Rcifc98GaefgbBd;8:G:cjbdnabZbcztge9nmbabae9RcFFifcz4nb8Akk:3qeludndnadch6mbadTmeabaead;8qbbabskabaeSmbdnaeadabfgi9Rcbadcet9R0mbadTmeabaead;8qbbabskaeab7ciGhldndndnabae9pmbdnalTmbadhvabhixikdnabciGmbadhvabhixdkadTmiabaeRbb86bbadcufhvdnabcefgiciGmbaecefhexdkavTmiabaeRbe86beadc9:fhvdnabcdfgiciGmbaecdfhexdkavTmiabaeRbd86bdadc99fhvdnabcifgiciGmbaecifhexdkavTmiabaeRbi86biabclfhiaeclfheadc98fhvxekdnalmbdnaiciGTmbadTmlabadcufgifglaeaifRbb86bbdnalciGmbaihdxekaiTmlabadc9:fgifglaeaifRbb86bbdnalciGmbaihdxekaiTmlabadc99fgifglaeaifRbb86bbdnalciGmbaihdxekaiTmlabadc98fgdfaeadfRbb86bbkadcl6mbdnadc98fgocxGcxSmbaocd4cefciGhiaec98fhlabc98fhvinavadfaladfydbBdbadc98fhdaicufgimbkkaocx6mbaec9Wfhvabc9WfhoinaoadfgicxfavadfglcxfydbBdbaicwfalcwfydbBdbaiclfalclfydbBdbaialydbBdbadc9Wfgdci0mbkkadTmdadhidnadciGglTmbaecufhvabcufhoadhiinaoaifavaifRbb86bbaicufhialcufglmbkkadcl6mdaec98fhlabc98fhvinavaifgecifalaifgdcifRbb86bbaecdfadcdfRbb86bbaecefadcefRbb86bbaeadRbb86bbaic98fgimbxikkavcl6mbdnavc98fglc3Gc3Smbavalcd4cefcrGgdcdt9RhvinaiaeydbBdbaeclfheaiclfhiadcufgdmbkkalc36mbinaiaeydbBdbaiclfaeclfydbBdbaicwfaecwfydbBdbaicxfaecxfydbBdbaiczfaeczfydbBdbaicCfaecCfydbBdbaicKfaecKfydbBdbaic3faec3fydbBdbaecafheaicafhiavc9Gfgvci0mbkkavTmbdndnavcrGgdmbavhlxekavc94GhlinaiaeRbb86bbaicefhiaecefheadcufgdmbkkavcw6mbinaiaeRbb86bbaicefaecefRbb86bbaicdfaecdfRbb86bbaicifaecifRbb86bbaiclfaeclfRbb86bbaicvfaecvfRbb86bbaicofaecofRbb86bbaicrfaecrfRbb86bbaicwfhiaecwfhealc94fglmbkkabkk:pedbcj:GdktFFuuFFuuFFuubbbbFFuFFFuFFFuFbbbbbbjZbbbbbbbbbbbbbbjZbbbbbbbbbbbbbbjZ86;nAZ86;nAZ86;nAZ86;nA:;86;nAZ86;nAZ86;nAZ86;nA:;86;nAZ86;nAZ86;nAZ86;nA:;bc;0:Gdkxebbbdbbbj:qbb",a=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 e,d=WebAssembly.instantiate(t(c),{}).then(function(r){e=r.instance,e.exports.__wasm_call_ctors()});function t(r){for(var y=new Uint8Array(r.length),k=0;k<r.length;++k){var p=r.charCodeAt(k);y[k]=p>96?p-97:p>64?p-39:p+4}for(var v=0,k=0;k<r.length;++k)y[v++]=y[k]<60?a[y[k]]:(y[k]-60)*64+y[++k];return y.buffer.slice(0,v)}function b(r){if(!r)throw new Error("Assertion failed")}function n(r){return new Uint8Array(r.buffer,r.byteOffset,r.byteLength)}var o=48,s=16;function g(r,y){var k=r.meshlets[y*4+0],p=r.meshlets[y*4+1],v=r.meshlets[y*4+2],u=r.meshlets[y*4+3];return{vertices:r.vertices.subarray(k,k+v),triangles:r.triangles.subarray(p,p+u*3)}}function i(r,y,k,p,v,u,j,w,E,A){var N=e.exports.sbrk,M=e.exports.meshopt_buildMeshletsBound(y.length,u,j),I=N(M*s),z=N(y.length*4),T=N(y.length),x=N(y.byteLength),U=N(k.byteLength),G=new Uint8Array(e.exports.memory.buffer);G.set(n(y),x),G.set(n(k),U);var F=r(I,z,T,x,y.length,U,p,v,u,j,w,E,A);G=new Uint8Array(e.exports.memory.buffer);for(var B=G.subarray(I,I+F*s),H=new Uint32Array(B.buffer,B.byteOffset,B.byteLength/4).slice(),P=0;P<F;++P){var V=H[P*4+0],q=H[P*4+1],p=H[P*4+2],Y=H[P*4+3];e.exports.meshopt_optimizeMeshlet(z+V*4,T+q,Y,p)}var W=F?H[(F-1)*4+0]+H[(F-1)*4+2]:0,aa=F?H[(F-1)*4+1]+H[(F-1)*4+3]*3:0,ta={meshlets:H,vertices:new Uint32Array(G.buffer,z,W).slice(),triangles:new Uint8Array(G.buffer,T,aa).slice(),meshletCount:F};return N(I-N(0)),ta}function h(r){var y=new Float32Array(e.exports.memory.buffer,r,o/4);return{centerX:y[0],centerY:y[1],centerZ:y[2],radius:y[3],coneApexX:y[4],coneApexY:y[5],coneApexZ:y[6],coneAxisX:y[7],coneAxisY:y[8],coneAxisZ:y[9],coneCutoff:y[10]}}function l(r,y,k,p){var v=e.exports.sbrk,u=[],j=v(y.byteLength),w=v(r.vertices.byteLength),E=v(r.triangles.byteLength),A=v(o),N=new Uint8Array(e.exports.memory.buffer);N.set(n(y),j),N.set(n(r.vertices),w),N.set(n(r.triangles),E);for(var M=0;M<r.meshletCount;++M){var I=r.meshlets[M*4+0],z=r.meshlets[M*4+1],T=r.meshlets[M*4+3];e.exports.meshopt_computeMeshletBounds(A,w+I*4,E+z,T,j,k,p),u.push(h(A))}return v(j-v(0)),u}function f(r,y,k,p){var v=e.exports.sbrk,u=v(o),j=v(r.byteLength),w=v(y.byteLength),E=new Uint8Array(e.exports.memory.buffer);E.set(n(r),j),E.set(n(y),w),e.exports.meshopt_computeClusterBounds(u,j,r.length,w,k,p);var A=h(u);return v(u-v(0)),A}function m(r,y,k,p,v){var u=e.exports.sbrk,j=u(o),w=u(r.byteLength),E=p?u(p.byteLength):0,A=new Uint8Array(e.exports.memory.buffer);A.set(n(r),w),p&&A.set(n(p),E),e.exports.meshopt_computeSphereBounds(j,w,y,k,E,p?v:0);var N=h(j);return u(j-u(0)),N}return{ready:d,supported:!0,buildMeshlets:function(r,y,k,p,v,u){b(r.length%3==0),b(y instanceof Float32Array),b(y.length%k==0),b(k>=3),b(p>=3&&p<=256),b(v>=1&&v<=512),u=u||0;var j=r.BYTES_PER_ELEMENT==4?r:new Uint32Array(r);return i(e.exports.meshopt_buildMeshletsFlex,j,y,y.length/k,k*4,p,v,v,u,0)},buildMeshletsFlex:function(r,y,k,p,v,u,j,w){b(r.length%3==0),b(y instanceof Float32Array),b(y.length%k==0),b(k>=3),b(p>=3&&p<=256),b(v>=1&&u<=512),b(v<=u),j=j||0,w=w||0;var E=r.BYTES_PER_ELEMENT==4?r:new Uint32Array(r);return i(e.exports.meshopt_buildMeshletsFlex,E,y,y.length/k,k*4,p,v,u,j,w)},buildMeshletsSpatial:function(r,y,k,p,v,u,j){b(r.length%3==0),b(y instanceof Float32Array),b(y.length%k==0),b(k>=3),b(p>=3&&p<=256),b(v>=1&&u<=512),b(v<=u),j=j||0;var w=r.BYTES_PER_ELEMENT==4?r:new Uint32Array(r);return i(e.exports.meshopt_buildMeshletsSpatial,w,y,y.length/k,k*4,p,v,u,j)},extractMeshlet:function(r,y){return b(y>=0&&y<r.meshletCount),g(r,y)},computeClusterBounds:function(r,y,k){b(r.length%3==0),b(r.length/3<=512),b(y instanceof Float32Array),b(y.length%k==0),b(k>=3);var p=r.BYTES_PER_ELEMENT==4?r:new Uint32Array(r);return f(p,y,y.length/k,k*4)},computeMeshletBounds:function(r,y,k){return b(y instanceof Float32Array),b(y.length%k==0),b(k>=3),l(r,y,y.length/k,k*4)},computeSphereBounds:function(r,y,k,p){return b(r instanceof Float32Array),b(r.length%y==0),b(y>=3),b(!k||k instanceof Float32Array),b(!k||k.length%p==0),b(!k||p>=1),b(!k||r.length/y==k.length/p),p=p||0,m(r,r.length/y,y*4,k,p*4)}}})();var ar=(function(){var c="b9H79Tebbbe9vx9Geueu9Geub9Gbb9Gkuuuuuuuuuuub9Gouuuuuub9Gwuuuuuu9999b9Giuuueu9Ge98e999Gvuuuuueu9Gd99ueu9Ge99e999Gd98ue98isPdilvboberrwDqklve9Weiiviebeoweuecj:Gdkr9Avo9TW9T9VV95dbH9F9F939H79T9F9J9H229F9Jt9VV7bbK9TW79O9V9Wt9F9NW9UWV9HtW9u9H9U9NW9Ut7beL9TW79O9V9Wt9F9NW9UWV9HtW9o9VV9T9H27bil79IV9RblDwebcekdorq;X9PPdbk;e8EvHuw99euv99wu8Jjjjjbc;Wb9Rgk8Kjjjjbakcxfcbc;Kbz:fjjjb8AakcualcdtalcFFFFi0Ecbyd:W:2:cjbHjjjjbbgxBdxakceBd2adci9Uhmalcd4alfhPcehsinasgzcethsazaP6mbkakcuazcdtgsazcFFFFi0Ecbyd:W:2:cjbHjjjjbbgPBdzakcdBd2aPcFeasz:fjjjbhHaDcd4hOarcd4hAavcd4hCdnalTmbazcufhrcbhvindndnaHcbaiavaC2cdtfgzydlgDaDcjjjj94SEgPcH4cbaoavaA2cdtfgsydlgXcs4aXcjjjj94SE7aP7c:F:b:DD2cbazydbgQaQcjjjj94SEgPcH4cbasydbgLcs4aLcjjjj94SE7aP7c;D;O:B8J27cbazydwgKaKcjjjj94SEgzcH4cbasydwgYcs4aYcjjjj94SE7az7c:3F;N8N27awavaO2cdtfgzydlg8AazydbgE7cFFFFrGgzcm4az7c:fjjK27arGgPcdtfgzydbgscuSmba8A::h3aE::h5aY::h8EaX::h8FaL::haaK::hhaD::hgaQ::h8JcehDinaDhzdnaiasaC2cdtfgDIdba8J9CmbaDIdlag9CmbaDIdwah9CmbaoasaA2cdtfgDIdbaa9CmbaDIdla8F9CmbaDIdwa8E9CmbawasaO2cdtfgDIdba59CmbaDIdla39BmikazcefhDaHaPazfarGgPcdtfgzydbgscu9hmbkkazavBdbavhskaxavcdtfasBdbavcefgval9hmbkkcbhPaHcbyd:0:2:cjbH:bjjjbbakceBd2ak9cb83ibakaeadaxalakcxfz:cjjjbcuamcltadcFFFFd0Ecbyd:W:2:cjbHjjjjbbh8Kakcxfakyd2gKcdtfa8KBdbakaKcefgYBd2dnadci6mbaehsa8KhzamhvindndnaeTmbascwfydbhDasclfydbhHasydbhrxekaPcdfhDaPcefhHaPhrkJbbbbh8JJbbbbJbbbbJbbbbJbbbbJbbjZJbbj:;awaHaO2cdtfgXIdbawaraO2cdtfgQIdbga:tawaDaO2cdtfgLIdlaQIdlgh:tggNaXIdlah:tghaLIdbaa:tN:tgaJbbbb9EEaaJbbbb9BEg5aiaraC2cdtfgrIdwgaaiaHaC2cdtfgHIdwg39BEa5arIdlg8FaHIdlg8L9BEa5arIdbg8EaHIdbg8M9BEg5aaaiaDaC2cdtfgDIdwg8N9BEa5a8FaDIdlgy9BEa5a8EaDIdbg8P9BEg5a3a8N9BEa5a8Lay9BEa5a8Ma8P9BEh5dnaga3aa:tNaha8Naa:tN:tgaaaNaga8Ma8E:tNaha8Pa8E:tN:tg8Ea8ENaga8La8F:tNahaya8F:tN:tggagNMMghJbbbb9Bmba5ah:r:vh8Jkazcxfa5Udbazcwfaaa8JNUdbazclfaga8JNUdbaza8Ea8JNUdbascxfhsazczfhzaPcifhPavcufgvmbkkcbhzakcxfaYcdtfcuadcdtadcFFFFi0Ecbyd:W:2:cjbHjjjjbbgDBdbakaKcdfgPBd2dnadTmbaDhsinasazBdbasclfhsadazcefgz9hmbkkakcxfaPcdtfcuamcdtadcFFFF970Ecbyd:W:2:cjbHjjjjbbgvBdbakaKcifgzBd2akcxfazcdtfamcbyd:W:2:cjbHjjjjbbgYBdbakaKclfBd2dnadci6mba8KcxfhsavhPcbhzinaPazBdbaYazfcdcbasIdbg8JJbbbb9DEa8JJbbbb9EV86bbaPclfhPasczfhsamazcefgz9hmbkkdnalTmbcbhIakydlh8Rakydbh8SinaIcdthzdna8SaIcefgIcdtfydbgsa8SazfydbgzSmbasaz9RhQa8RazcdtfhLcbhRinaLaRcdtfg8Uydbgzcd4g8Vci2g8WazciGcdtgsyd:e:G:cjbfhza8Wasydj:G:cjbfhsdnaeTmbaeazcdtfydbhzaeascdtfydbhskdnaRcefgRaQ9pmbaxazcdtfydbhKaxascdtfydbhEaYa8Vfh8Aava8Vcdtfh8XaRhwinaLawcdtfgXydbgzcd4gsci2gOazciGcdtgzyd:e:G:cjbfhPaOazydj:G:cjbfhzdnaeTmbaeaPcdtfydbhPaeazcdtfydbhzkdndnaxazcdtfydbaKSmbaxaPcdtfydbaE9hmekaYasfRbbgza8ARbbgPVciSmbdnazaPGmba8VhPdna8Va8XydbgzSmba8XhHinaHavazgPcdtfgrydbgzBdbarhHaPaz9hmbkkdnasavascdtfgHydbgzSmbinaHavazgscdtfgrydbgzBdbarhHasaz9hmbkkaPasSmbaYasfgHRbbaYaPfgzRbbVciSmeavascdtfaPBdbazazRbbaHRbbV86bbkdna8UydbciGa8WfgsaDascdtfgPydbgzSmbinaPaDazgscdtfgHydbgzBdbaHhPasaz9hmbkkdnaXydbciGaOfgPaDaPcdtfgHydbgzSmbinaHaDazgPcdtfgrydbgzBdbarhHaPaz9hmbkkasaPSmbaDaPcdtfasBdbkawcefgwaQ9hmbkkaRaQ9hmbkkaIal9hmbkkdnadTmbcbhrinarhsdnaraDarcdtfgwydbgzSmbawhPinaPaDazgscdtfgHydbgzBdbaHhPasaz9hmbkkawasBdbarcefgrad9hmbkcbh8Vabcbadcltz:fjjjbhQdnadci6mbaqceGhKaDhLaeh8Acbh8Windna8Ka8WcltfgPIdxJbbbb9Bmbaea8Wci2gEcdtfhXcbhsa8VhwinaQaLasfydbcltfhzdndnaeTmba8AasfydbhHaXasc:e:G:cjbfydbcdtfydbhOaXascj:G:cjbfydbcdtfydbhxxekasc:e:G:cjbfydbaEfhOascj:G:cjbfydbaEfhxawhHkazaPIdbghaoaHaA2cdtfgrIdbg8JaPIdwg8EarIdwggNaha8JNaPIdlg5arIdlghNMMgaN:tg8FJbbbbJbbjZa8EagaaN:tg8Ea8ENa8Fa8FNa5ahaaN:tgaaaNMMg8F:r:va8FJbbbb9BEJ;As6nJbbjZaiaxaC2cdtfgrIdwaiaHaC2cdtfgHIdwg3:tg8Faga8FagNarIdbaHIdbg8L:tg8Ma8JNaharIdlaHIdlg8N:tgyNMMg8FN:tg5aiaOaC2cdtfgHIdwa3:tg3aga3agNaHIdba8L:tg8Pa8JNahaHIdla8N:tg8NNMMg3N:tggNa8Ma8Ja8FN:tg8La8Pa8Ja3N:tg8JNayaha8FN:tg8Fa8Naha3N:tghNMMJbbbbJbbjZa5a5Na8La8LNa8Fa8FNMMagagNa8Ja8JNahahNMMNg8J:rgg:va8JJbbbb9BENgh:lg8Ja8JJbbjZ9EEg8Ja8JJ7;A9s89NJ:L9t9s::MNJ;ob;jZMJbbjZa8J:t:rNg8J:ta8JahJbbbb9DENg8Jaga8JNaKEg8JNazIdbMUdbazaaa8JNazIdlMUdlaza8Ea8JNazIdwMUdwawcefhwasclfgscx9hmbkkaLcxfhLa8Acxfh8Aa8Vcifh8Va8Wcefg8Wam9hmbkcbhrinarhsdnaravarcdtfgPydbgzSmbinaPavazgscdtfgHydbgzBdbaHhPasaz9hmbkkaQarc8W2fgzc3fJbbjZJbbj:;aYasfRbbceGEg8JUdbazc8Sfa8JUdbaza8JUdxarcefgram9hmbkkaqcdGhvcbhsaDhPaQhzindnasaPydb9hmbdndnazcwfgHIdbg8Ja8JNazIdbggagNazclfgrIdbghahNMMgaJbbbb9BmbaHa8JJbbjZaa:r:vgaNUdbarahaaNUdbazagaaNg8JUdbxekaHa8JJbbbbNUdbarahJbbbbNUdbazagJbbbbNg8JUdba8JJbbjZavEh8Jkaza8JUdbkaPclfhPazczfhzadascefgs9hmbkcbhzaQhsindnazaDydbgPSmbasaQaPcltfgPydwBdwasaP8Pdb83dbkaDclfhDasczfhsadazcefgz9hmbkkdnakyd2gsTmbascdtakcxffc98fhzinazydbcbyd:0:2:cjbH:bjjjbbazc98fhzascufgsmbkkakc;Wbf8Kjjjjbk;:levucualcefgocdtaocFFFFi0Ecbyd:W:2:cjbHjjjjbbhoavavyd9GgrcdtfaoBdbavarcefBd9GabaoBdbcuadcdtadcFFFFi0Ecbyd:W:2:cjbHjjjjbbhoavavyd9GgrcdtfaoBdbavarcefBd9GabaoBdlabydbclfcbalcdtz:fjjjbhoadci9UhwdnadTmbdnaeTmbaehvadhrinaoaiavydbcdtfydbcdtfgDaDydbcefBdbavclfhvarcufgrmbxdkkadhraihvinaoavydbcdtfgDaDydbcefBdbavclfhvarcufgrmbkkdnalTmbcbhraohvinavydbhDavarBdbavclfhvaDarfhralcufglmbkkdnadci6mbabydlhrcbhlcdhvindndnaeTmbaiaealfgqydbcdtfhDaiaqcwfydbcdtfhdaiaqclfydbcdtfhqxekaialfgDcwfhdaDclfhqkadydbhdaqydbhqaoaDydbcdtfgDaDydbgDcefBdbaraDcdtfavc9:fBdbaoaqcdtfgDaDydbgDcefBdbaraDcdtfavcufBdbaoadcdtfgDaDydbgDcefBdbaraDcdtfavBdbalcxfhlavclfhvawcufgwmbkkabydbcbBdbk:SEvxui99duv99xu8Jjjjjbc;Wb9Rgw8Kjjjjbawcxfcbc;Kbz:fjjjb8AawcualcdtalcFFFFi0Ecbyd:W:2:cjbHjjjjbbgDBdxawceBd2adci9Uhqalcd4alfhkaoz:mjjjbhocehxinaxgmcethxamak6mbkawcuamcdtgxamcFFFFi0Ecbyd:W:2:cjbHjjjjbbgkBdzawcdBd2akcFeaxz:fjjjbhPavcd4hsdnalTmbamcufhzcbhHindndnaPcbaiaHas2cdtfgmydlgvavcjjjj94SEgxcH4ax7c:F:b:DD2cbamydbgOaOcjjjj94SEgxcH4ax7c;D;O:B8J27cbamydwgAaAcjjjj94SEgmcH4am7c:3F;N8N27azGgkcdtfgmydbgxcuSmbaA::hCav::hXaO::hQcehvinavhmdnaiaxas2cdtfgvIdbaQ9CmbavIdlaX9CmbavIdwaC9BmikamcefhvaPakamfazGgkcdtfgmydbgxcu9hmbkkamaHBdbaHhxkaDaHcdtfaxBdbaHcefgHal9hmbkkcbhkaPcbyd:0:2:cjbH:bjjjbbawceBd2aw9cb83ibawaeadaDalawcxfz:cjjjbcuaqcltadcFFFFd0Ecbyd:W:2:cjbHjjjjbbhLawcxfawyd2gKcdtfaLBdbawaKcefgOBd2dnadci6mbaehxaLhmaqhHindndnaeTmbaxcwfydbhzaxclfydbhvaxydbhPxekakcdfhzakcefhvakhPkJbbbbhQdnaiavas2cdtfgvIdbaiaPas2cdtfgPIdbgX:tgYaiazas2cdtfgzIdlaPIdlgC:tg8ANavIdlaC:tgCazIdbaX:tgEN:tgXaXNaCazIdwaPIdwg3:tg5NavIdwa3:tg3a8AN:tgCaCNa3aENaYa5N:tgYaYNMMg8AJbbbb9BmbJbbjZa8A:r:vhQkamcxfa8AJbbbb9CBdbamcwfaXaQNUdbamclfaYaQNUdbamaCaQNUdbaxcxfhxamczfhmakcifhkaHcufgHmbkkcbhmawcxfaOcdtfcuadcdtg8EadcFFFFi0Ecbyd:W:2:cjbHjjjjbbgvBdbawaKcdfg8FBd2dnadTmbavhxinaxamBdbaxclfhxadamcefgm9hmbkkdnalTmbcbhaawydlhhawydbhginaacdthmdnagaacefgacdtfydbgxagamfydbgmSmbaxam9RhAahamcdtfh8Jcbh8Kina8Ja8Kcdtfg8Lydbgmcd4gkci2g8MamciGcdtgxyd:e:G:cjbfhma8Maxydj:G:cjbfhxdnaeTmbaeamcdtfydbhmaeaxcdtfydbhxkdna8Kcefg8KaA9pmbaLakcltfhOaDamcdtfydbh8NaDaxcdtfydbhya8KhHina8JaHcdtfg8Pydbgmcd4gkci2gzamciGgPcdtgmyd:e:G:cjbfhxazamydj:G:cjbfhmdnaeTmbaeaxcdtfydbhxaeamcdtfydbhmkdndnaDamcdtfydba8NSmbaDaxcdtfydbay9hmekaOIdwaLakcltfgmIdwNaOIdbamIdbNaOIdlamIdlNMMao9ETmbaOydxamydx9hmbdna8LydbciGa8MfgxavaxcdtfgkydbgmSmbinakavamgxcdtfgPydbgmBdbaPhkaxam9hmbka8PydbciGhPkdnaPazfgkavakcdtfgPydbgmSmbinaPavamgkcdtfgzydbgmBdbazhPakam9hmbkkaxakSmbavakcdtfaxBdbkaHcefgHaA9hmbkka8KaA9hmbkkaaal9hmbkkdndndnadTmbcbhzinazhxdnazavazcdtfgHydbgmSmbaHhkinakavamgxcdtfgPydbgmBdbaPhkaxam9hmbkkaHaxBdbazcefgzad9hmbkcbh8Mabcbadcx2z:fjjjbh8Padcd9nmeavhAaeh8NcbhyinaLaycltfhkaeayci2g8JcdtfhDcbhxa8MhHina8PaAaxfydbcx2fhmdndnaeTmba8NaxfydbhzaDaxc:e:G:cjbfydbcdtfydbhOaDaxcj:G:cjbfydbcdtfydbhPxekaxc:e:G:cjbfydba8JfhOaxcj:G:cjbfydba8JfhPaHhzkamakIdbaiaPas2cdtfgPIdwaiazas2cdtfgzIdwgC:tgoaoNaPIdbazIdbgY:tgQaQNaPIdlazIdlg8A:tgXaXNMMaiaOas2cdtfgPIdwaC:tgCaCNaPIdbaY:tgYaYNaPIdla8A:tg8Aa8ANMMNgE:rg3J;As6nJbbjZaoaCNaQaYNaXa8ANMMJbbbbJbbjZa3:vaEJbbbb9BENgQ:lgoaoJbbjZ9EEgoaoJ7;A9s89NJ:L9t9s::MNJ;ob;jZMJbbjZao:t:rNgo:taoaQJbbbb9DENgoNamIdbMUdbamakIdlaoNamIdlMUdlamakIdwaoNamIdwMUdwaHcefhHaxclfgxcx9hmbkaAcxfhAa8Ncxfh8Na8Mcifh8MaycefgyaqSmdxbkkabcbadcx2z:fjjjb8Axekcbhxavhka8Phmindnaxakydb9hmbJbbbbhodnamcwfgPIdbgQaQNamIdbgXaXNamclfgzIdbgCaCNMMgYJbbbb9BmbJbbjZaY:r:vhokaPaQaoNUdbazaCaoNUdbamaXaoNUdbkakclfhkamcxfhmadaxcefgx9hmbkkdnarJbbbb9ETmbawcxfa8Fcdtfcuadcltg8Pa8EcFFFFi0Ecbyd:W:2:cjbHjjjjbbg8JBdbdndnar:ngo:lJbbb9p9DTmbao:Ohmxekcjjjj94hmkaKcifh8Famce9imbamcqamcq9iEh8Nadci6hLcbhAina8Jcba8Pz:fjjjbhPdnaLmbcbhDavhOinavaDcx2fhecbhxinabaOaxfydbgzcx2fgmIdwhoabaeaxcj:G:cjbfydbcdtfydbgHcx2fgkIdwhQamIdbhXakIdbhCamIdlhYakIdlh8AaPazcltfgmamIdxJbbjZMUdxamamIdbaCaX:taoaQNaXaCNaYa8ANMMgXaXNJbbbbaXJbbbb9EEgXNgCMUdbamamIdla8AaY:taXNgYMUdlamaQao:taXNgoamIdwMUdwaPaHcltfgmamIdxJbbjZMUdxamamIdbaC:tUdbamamIdlaY:tUdlamamIdwao:tUdwaxclfgxcx9hmbkaOcxfhOaDcefgDaq9hmbkkdnadTmbaraA:Z:tgoJbbjZaoJbbjZ9DEJbbbZNh8AcbhxavhkabhzaPhmindnaxakydb9hmbamcxfIdbgQJbbbb9ETmbJbbbbhodnamcwfIdba8AaQ:vgQNazcwfgPIdbMgXaXNamIdbaQNazIdbMgCaCNamclfIdbaQNazclfgHIdbMgQaQNMMgYJbbbb9BmbJbbjZaY:r:vhokaPaXaoNUdbaHaQaoNUdbazaCaoNUdbkakclfhkazcxfhzamczfhmadaxcefgx9hmbkkaAcefgAa8N9hmbkkdnadTmbcbhmabhxindnamavydbgkSmbaxabakcx2fgkydwBdwaxak8Pdb83dbkavclfhvaxcxfhxadamcefgm9hmbkkdna8FTmba8Fcdtawcxffc98fhminamydbcbyd:0:2:cjbH:bjjjbbamc98fhma8Fcufg8Fmbkkawc;Wbf8Kjjjjbk9teiucbcbyd:4:2:cjbgeabcifc98GfgbBd:4:2:cjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaik;aeedudndnabciGTmbabhixekaecFeGc:b:c:ew2hldndnadcz9pmbabhixekabhiinaialBdbaicxfalBdbaicwfalBdbaiclfalBdbaiczfhiadc9Wfgdcs0mbkkadcl6mbinaialBdbaiclfhiadc98fgdci0mbkkdnadTmbinaiae86bbaicefhiadcufgdmbkkabk9teiucbcbyd:4:2:cjbgeabcrfc94GfgbBd:4:2:cjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaikTeeucbabcbyd:4:2:cjbge9Rcifc98GaefgbBd:4:2:cjbdnabZbcztge9nmbabae9RcFFifcz4nb8Akk9pee98abab:Igbabab:Ige:Iab9e9P9q;U;G9c:t;58::I9e8N8Es;O:h;a9w:;:G:Iae9e9c86v;H9t9v:LZ:Iab9e:b9ExpFF;F:;:I9ebbbbbb;WZ:G:G:G:2k0ed98ababab:Ige:Igdaeae:I:Iae9e:NS87:m:h;n;g8::I9et;N;k;I;5bI:;:G:Iadae9e:Y;79U:jzH:bZ:I9e93:S;l9u9v9v;f:;:G:Iab:G:G:2k:K8Flqud98zul988Jjjjjbc:Wl9Rgv8Kjjjjbcbhoadc99fcK9Tgrcbarcb9kEgwc9O2adfhDdnalcdtc:q:G:cjbfydbgqaicufgkfgdcb9imbawak9RhxdnadTmbaqaifgdceGhmawcdtaicdt9Rc:O:G:cjbfhradc9:GhPavc;adfhdcbhoin9ebbbbbbbbhs9ebbbbbbbbhzdnaxaofgHcb9imbarc98fydb:3hzkadaz85ibdnaHcu9imbarydb:3hskadcwfas85ibadczfhdarcwfhraPaocdfgo9hmbkamTmeaxaofhxkdndnaxcb9omb9ebbbbbbbbhzxekaxcdtyd:G:G:cjb:3hzkavc;adfaocitfaz85ibkaDc9OfhOcbhdaqcbaqcb9kEhmaic;:FFFrGhHaiceGhAaicitavc;adffc9WfhPinadhxdndnaice9omb9ebbbbbbbbhzxekcbhr9ebbbbbbbbhzdnakTmbaPhdabhoinaocwf8Ribad8Rib:Iao8Ribadcwf8Rib:Iaz:G:Ghzadc9WfhdaoczfhoaHarcdfgr9hmbkaATmekabarcitf8Ribavc;adfaxakfar9Rcitf8Rib:Iaz:Ghzkavaxcitfaz85ibaPcwfhPaxcefhdaxam9hmbkaic;:FFFrGhHaiceGhCc8VaD9RhXc8WaD9RhQavc;Gifc98fgLaqcdtfhKawcdtc:G:G:cjbfhwavc;adfc94fhYavc;Gifc9Wfh8Aavc9WfhEaDc9Nfh3aqhxdninavaxcitgdf8Ribhzdnaxce9imbcbhrdndnaxce9hmbaxhdxekaxceGhmaxc;:FFFrGhPaEadfhdcbhravc;Gifhoinaoaz9ebbbbbb9W8::I;8d:3gs9ebbbbbb9W;b:Iaz:G;8dBdbaoclfadcwf8Ribas:Ggz9ebbbbbb9W8::I;8d:3gs9ebbbbbb9W;b:Iaz:G;8dBdbad8Ribas:Ghzaocwfhoadc9WfhdaParcdfgr9hmbkamTmeaxar9Rhdkavc;Gifarcdtfaz9ebbbbbb9W8::I;8d:3gs9ebbbbbb9W;b:Iaz:G;8dBdbavadcitfc94f8Ribas:GhzkazaOz:njjjbgz9ebbbbbb;aZ:I:C9ebbbbbba;a:Iaz:Ggzaz;8dg5:3:HhzdndndndndnaOce9ig8Embavc;Gifaxcdtfc98fgdadydbgdadaQ91gdaQt9RgoBdbaoaX91h8Fada5fh5xekaOmeavc;Gifaxcdtfc98fydbcL91h8Fka8Fce9imdxekcdh8Faz9ebbbbbb;GZ9Mmbcbh8Fxekcehodnaxce9imbcbhrcbhPdnaxceSmbaxceGhaaxc;:FFFrGhAcbhravc;GifhdcbhPinadydbhodndndndnaPTmbcFFFrhPxekaoTmecjjjwhPkadaPao9RBdbcbhPxekcehPkadclfgmydbhodndndndnaPmbcFFFrhPxekaoTmecjjjwhPkamaPao9RBdbcehPcbhoxekcbhPcehokadcwfhdaAarcdfgr9hmbkaaTmekavc;GifarcdtfgrydbhddndnaPTmbcFFFrhoxekcehoadTmecjjjwhokaraoad9RBdbcbhokdna8EmbcFFFihddndna3PdebdkcFFFehdkavc;Gifaxcdtfc98fgrarydbadGBdbka5cefh5a8Fcd9hmb9ebbbbbb;WZaz:Hhzcdh8Faombaz9ebbbbbb;WZaOz:njjjb:Hhzkdnaz9ebbbbbbbb9Imbdnaxaq9mmbaxaq9RgdciGhrcbhoaxhPdndnaqax9Rc980mbadc98Ghma8AaxcdtfhdcbhoaxhPinadydbadclfydbadcwfydbadcxfydbaoVVVVhoadc9WfhdaPc98fhPamc98fgmmbkarTmekaLaPcdtfhdinadydbaoVhoadc98fhdarcufgrmbkkaoTmbavc;Gifaxcdtfc98fhdinaxcufhxaOc9OfhOadydbhoadc98fhdaoTmbxlkkaKhdaxhPinaPcefhPadydbhoadc98fhdaoTmbkaYaiaxfcitfhminavc;adfaxaifgAcitfawaxcefgxcdtfydb:385ibdndnaice9omb9ebbbbbbbbhzxekcbhr9ebbbbbbbbhzdnakTmbamhdabhoinaocwf8Ribad8Rib:Iao8Ribadcwf8Rib:Iaz:G:Ghzadc9WfhdaoczfhoaHarcdfgr9hmbkaCTmekabarcitf8Ribavc;adfaAar9Rcitf8Rib:Iaz:Ghzkavaxcitfaz85ibamcwfhmaxaP9imbkaPhxxekkdndnazcKaD9Rz:njjjbgz9ebbbbbb9Wc9MTmbavc;Gifaxcdtfaz9ebbbbbb9W8::I;8dgd:39ebbbbbb9W;b:Iaz:G;8dBdbaxcefhxaDhOxekaz;8dhdkavc;GifaxcdtfadBdbkdnaxcb9imb9ebbbbbb;WZaOz:njjjbhzdndnaxceGTmbaxhoxekavaxcitfazavc;Gifaxcdtfydb:3:I85ibaxcufhoaz9ebbbbbb9W8::IhzkdnaxTmbaocefhraocdtavc;Giffc98fhdaocitavfc94fhoinaoaz9ebbbbbb9W8::Igsadydb:3:I85ibaocwfazadclfydb:3:I85ibadc94fhdaoc9Wfhoas9ebbbbbb9W8::Ihzarc9:fgrmbkkavaxcitfhHaxhdindndnaqaxadgi9RgAaqaA9iEgdcb9omb9ebbbbbbbbhzxekadcefgociGhrdndnadci9pmbcbhd9ebbbbbbbbhzxekcbhPcbaoc98G9Rhm9ebbbbbbbbhzcbhdinadc1:2:cjbf8RibaHadfgocKf8Rib:Iadcj:2:cjbf8Ribaoczf8Rib:Iadc;4:1:cjbf8Ribaocwf8Rib:Iadc;W:1:cjbf8Ribao8Rib:Iaz:G:G:G:GhzadcafhdamaPc98fgP9hmbkarTmecbaP9Rhdkadcithdinadc;W:1:cjbf8RibaHadf8Rib:Iaz:Ghzadcwfhdarcufgrmbkkavc:GefaAcitfaz85ibaHc94fhHaicufhdaicb9kmbkkdndndndndnalPleddblk9ebbbbbbbbhhdnaxce9imbaxhddnaxceGTmbavc:Gefaxcitfgdc94fgoao8Ribgzad8Ribgs:Ggg85ibadasazag:H:G85ibaxcufhdkaxceSmbadcdfhoadcitavc:Geffc9Wfhdinadad8Ribgsadcwfgr8RibggadczfgH8Ribg8J:Ggz:Gg8K85ibaHa8Jagaz:H:G85ibarazasa8K:H:G85ibadc9Wfhdaoc9:fgocd9kmbkaxceSmbaxcefhoaxcitavc:Geffc94fhdinadad8Ribgzadcwfgr8Ribgs:Ggg85ibarasazag:H:G85ibadc94fhdaocufgocd0mbkaxcefhoavc:Gefaxcitfhd9ebbbbbbbbhhinahad8Rib:Ghhadc94fhdaocufgocd0mbkkav8Ri:Gehza8Fmdaeaz85ibaeah85izaeav8Ri:Oe85iwxikdndnaxcb9omb9ebbbbbbbbhzxekdndnaxciGci9hmb9ebbbbbbbbhzaxhoxekaxcefciGhravc:Gefaxcitfhd9ebbbbbbbbhzaxhoinaocufhoazad8Rib:Ghzadc94fhdarcufgrmbkkaxci6mbaocefhraocitavc:Geffc9OfhdinazadcKf8Rib:Gadczf8Rib:Gadcwf8Rib:Gad8Rib:Ghzadc9Gfhdarc98fgrmbkkaeaz:Aaza8FE85ibxdkdndnaxcb9omb9ebbbbbbbbhzxekdndnaxciGci9hmb9ebbbbbbbbhzaxhoxekaxcefciGhravc:Gefaxcitfhd9ebbbbbbbbhzaxhoinaocufhoazad8Rib:Ghzadc94fhdarcufgrmbkkaxci6mbaocefhraocitavc:Geffc9OfhdinazadcKf8Rib:Gadczf8Rib:Gadcwf8Rib:Gad8Rib:Ghzadc9Gfhdarc98fgrmbkkaeaz:Aaza8FE85ibav8Ri:Geaz:Hhzcehddnaxce9imbaxciGhodnaxcufci6mbaxc;8FFFrGhHavc:Gefcafhdcbhrinazadc9Of8Rib:Gadc9Wf8Rib:Gadc94f8Rib:Gad8Rib:GhzadcafhdaHarclfgr9hmbkaoTmearcefhdkavc:Gefadcitfhdinazad8Rib:Ghzadcwfhdaocufgombkkaeaz:Aaza8FE85iwxekaeaz:A85ibaeah:A85izaeav8Ri:Oe:A85iwkavc:Wlf8Kjjjjba5crGk:ediiue98eu8Jjjjjbcz9Rgd8Kjjjjbdndnab:8gicFFFFrGglc;A:F:K;Ul0mbaeab:7gvav9e:d;i;j9T8W9F;KZ:I9ebbbbbbUJ:G9ebbbbbbU;d:Ggv9ebbb9q;7h;5:;:I:Gav9e9J9I8A9H:0z9r:::I:G85ibav;8dhlxekdnalcjjj;8r6mbaeabab:t:785ibcbhlxekadalalcL4c;Q9:fgocLt9R:::785iwadcwfadaocecbz:kjjjbhlad8Ribhvdnaicu9kmbaeav:A85ibcbal9Rhlxekaeav85ibkadczf8Kjjjjbalk;piiiue99e988Jjjjjbcz9Rge8Kjjjjbdndnab:8gdcFFFFrGgic;A:F:K;6i0mbJbbjZhlaicjjj;mi6meab:7z1jjjbhlxekdnaic;r:N;T:dl0mbdnaic;K:x;Bjl6mb9eKR9e9u;7hDn9eKR9e9u;7hD;aadcb9iEab:7:Gz1jjjb:mhlxdkab:7hvdnadcu9kmbav9eKR9e9u;7h;5Z:Gz:jjjjbhlxdk9eKR9e9u;7h;5Zav:Hz:jjjjbhlxekdnaic;v;J1:hl0mbdnaic;G;B:;:fl6mb9eKR9e9u;7hYn9eKR9e9u;7hY;aadcb9iEab:7:Gz1jjjbhlxdkdnadcu9kmb9e;sh8Zu98;zO;aab:7:Hz:jjjjbhlxdkab:79e;sh8Zu98;zO;a:Gz:jjjjbhlxekdnaicjjj;8r6mbabab:thlxekabaecwfz:ljjjbhiae8RiwhvdndndndnaiciGPlbedibkavz1jjjbhlxikav:Az:jjjjbhlxdkavz1jjjb:mhlxekavz:jjjjbhlkaeczf8Kjjjjbalk:Uebdndnaecjw9imbab9ebbbbbb;Gu:IhbdnaecFs9pmbaec:b94fhexdkab9ebbbbbb;Gu:IhbaecpLaecpL6Ec:c9Wfhexekaec:b949kmbab9ebbbbbb9Gi:Ihbdnaec:49W9nmbaec;jrfhexekab9ebbbbbb9Gi:Ihbaec;W9Oaec;W9O0EcMsfhekabaecFrf:T9c80:g:;:Ikk;mQdbcj:Gdk:WQebbbdbbbbbbbebbbibbblbbblbbbobbb:d;5:Ib9e9o9Ub;88PXb;r9x8Nb;D80;1b9I;B;ab88:z:vbc:qJb9J9r;:b:7;E:Rb:39H;fb869U8Kb;s9n9cb6o;GbD;Q8Ub3M;rb;R5;:b8P:X3b;O8::Nb;181:cb9e:78Ub:C;P:eb:08M9Wbc9:9Fb;w:r85b9t:d85b:C;085b:l9F:eby;5:9b;48F87b;EF:xbs:yvbH8V;Vbq9A:lb9T8F9Tb;p9:BbD;l8NbS9p:3b:E9MZbR;Q9Fb:68N91b;L;R;hb8997;Xb;385rbM9s:kb;79R;Qb8F:X9Fbw9D:nb8Wi9wb97;8Sb;W:R9Rba:8;pbB;0:Ab;J:P5b9E9H:rbwE;Mb:f:zWb:GC9Fb:nn9Obj;yFb8N79nboo8Xb;k9wXb;j:O7b97;I9Gb9R:m;abY;e9hb;n9N;dbD;O;Cb9z:dIb:l4;eb:M3:wb9e:V;DbY9x;rb:L8:vbvrFb8Z9:Zb;c8Y;Ob:y9p;Eb:7998Yb8M89;db8E9R;Vb:F;49Eb818F86bu;Y;kb;X:h5b98:qhbf8K98b;v9U;6b8WR93bX87Jb:1C;gb;dY:Db:T;e;cb8S9ncbxb9Db:g99Sb;JGRb:B;g:Ab8Z9Ibb:0;s98b:0:N:xb839v;vb;x8:;2b:JzKb9n4;8b9K:DIb9W;x:Rb9J98;4b96:W9xbLX;Nb;a69wb87;w;zb:N:eUb8K8J;lb;w:k93b9A9u8Jbb8F:5b;XqEbY;o;Fb:F8XFb9M8Efb:z9x9Hb:S;79hb9:u;ybgW:3b8Y;O:jb;M:;9Gb;V;e;nb2BDb9DZ;ubQ;E;xb9y87;Eb;E:BMb;sgyby:g;Ob;I9y9nb;g;k8Ybw;JQb;G99;lbL;a9qb;Z5:NbK;G9Bb8UA80b:dO9Ib:d9ieb;1:o9Bb:T:Wub8E;P;Yb9i9kJbz9N;tb:Q;D;yb:U9F9cbf9H;obqy:Kb;t:z:0bo:M;Yb9C93ub:J;c:db9H881b:k794b:V:m9Ab9V;x:9bR:M9Jb;0:;;lb:n:b;Vb8M;b9Nb9v;kTb;k;zBby:O;sb;c9H:nbO;j93bl8MCbOS:Bb;e9z;eb;i;f9eb9n:Y:rbbL;Zb;uJ:Tb8P6;Lbp;vzbb::;8b8EN;mb9W;o;UbA8:;1b;S;Xjb:Z;N;db;h;4yb:tvNb;bG8:b8UD:ZbkT;Zb1O:Cb:Ra97b8U:1:Fb9hM;cb978Y8Vbx9v9TbV:N:qb9R;N8Fb8X;l:wb95Q9kbc95;Ib;0;F:jb;ON:xb;I;M:eb:z8X:xb1;T9Rb9F9FBb:7pPb9i:A:0b9N:K2bGV9cb:n9D8Yb:FX:4b:8;LDb:n8X8Lb;3t85b8Wv3bmxeb0w9Ob8S;U9yb9h:Q:qbt;Ndb:9;w8Kb;399:Mb9U9iVb:FQ;Vb:oN:Mb:0:r;2b;r9t9rb;pq;Yba:y8Zb;109:b:Y9J9Ob;D8:9Fbn9Dib:f:jub9v9s8Pb839K;ab9T;yzb8Y9i8Yb9B9m91b9oG;ubT9u9UbkD;bbI;19PbC9M;vb8Nr:Db9Dl9qb:087;Bb;Q4;fb:h;5Lb69R99b58N:6b:w9P8Pb;g;m:Sb:TC9ub:q;Ifb1;z:jb8SV9qbl:K::b93rNb;Z8W9Wbb;88Nb;QG:Ob9M;c6b9K;G89b:x;D:db:JZ:xbJNpbm:g:mb8Xc;EbM85:Db;D9W:mbL:3;Nbw;F87bX838Rb9Cj:Gb9Aj:tbzHMbs;O;yb2j:Vb;BF0bU:qsb9zK4b9I:LXb9H;l:7b;h:j:5bzn:9b;s;Ylb6918Nb;R:2;2b;Bg:7bqC:Qb:j8M8Vb9K:d4bD878ZbPN8Ab9r86:Qb5:J;cb:V;T:Ub9C8MOb9T;c9nbR96:Cb;a9w:xbiZ:dbD;W;2b8Rn:mb9T8X:zb85:0rbxaXb;y;d9Bb;1M;eb;g:T0b9o;k:Lb:N83;nb;M:PBb:RMNb;D9c9ObY9J;Eb4:m;Vb9O:l9sb;8;B83b:U:H:Rb;FX8Xbb:U:Hbx;7;Ab9K9n9Mb;Tv:3b8PW8Wb9x9w:;b9hF86bf;5:5b91::;Zby:t;Fb:Rj8Wb9M:m;2bl;lXb;6gob;z;K5b89:Z:Kb9xE:pbB;nDb9o9c;PbA:::Kb8Z8J:1b;W:Q8Ab9pW:Ob;s;b:LbkZsb9B94;nb8J;54b97:llb:jLVb;g:M9tb9V9U;Ib;V;Rbb:B9k9yb;e;A:3b:Q9M:6b4;p;pb;rd5b:X;XRb:m:z;bb;d:T93b:g9i;Ab;39D:Gb;gj;0b:S;W8Vb;D;S:AbZ9C:8b;q;E9Tb:q;h8FbI;B:2b:J8L86bb:V:Ab:T9t:tb:29xlb8PR:0b0j9:b;Ar:Nb4:QPb979z:HbQOIb;C:3Rb;6;Lpb:j;B;:b:j::pb;K42bo:P;8b8:j9Wb:f9UXbp:hFby8:rb9H9N8ZbIK:gb9n:9;Qb:Z;N:Vb:p9T9Ub:v9N85b8X:;9Bb:e;x9ib8W;FQb;hRJb8L9H81b;j9W;ob8W;l:4b:;2pb:Kb:Ibv2;Kb9A;D:Gbh9V9hb9IO;sb:59C:eb9W9H6b9R9w;Gb:z9seb9q9v83b8E;v:3b8Z;X;ebA9U9Fb9D8W;Kb:f8U:Pb5:Y;db:H8YBbw:3:Kb;Q:X;ubQ;3hb:p9P;Kb8NF93bxijb:nnRb9p;n:Gba:L:zb:Z:I;tb8V9Dqb:0;59cbH;A;lb99::;qb:B;B;bb:RL:9b;k:I:bbwf9Cb8U9vLb8Nb9vbuC;Wb;Hr:gbCk9Kb:wc:nb:h::;Eb;ApIb9R8L:2b97:j80bv;Z;:b:5:;:Eb9Of9pb9kI:Ob9p;e9AbR;4:8b;x9A:yb;0;h:vbm9n:nba86:Mb:K9x9FbCZ:XbjU:vb;maebG;D:gb;j;E:2b:;9G;1b9nWHber9Rb:m:W:Sb:Y;a;qb9r9v9ib8E;7Pb:vV;db:Jo87b;an81bo;C97b;GT;mb9o8P;6b;w;k;ib;O;Zcb989K;Eb:B9K;yb;z::8Xb:K:x;db939y;ub9P;J;fb;W;AAb:68688bSKSb9v919Fb;s:9;1b9UM;gb:S8U9DbP9e;Tb38:9cb9H;e:hb8Pp;Pb;N;w;Zbg98;kb9V:r81bw;G;fbF;x:nb9Uf;Ib:Wp;gb:tw;bb989Dtb9R:T:Yb;n9U:Db8:V97b;gHfb;3;p:Pb8P7;Fb:1;j:6b:3b9rb;I:Ymbt:68Kb;L999Gbt;y:kbmX8Sb:bKxb9:9MNbe8PQb:F964bpp::b9wT;Vb;z9:Bb;S;zAb:l:6:5b;e:x;8b8X:O8Nb;X9U;dbN;fBb;y:O9wb:0:O:1b;p;mPbO:jRb9V9x80b8S9w:jb:z;o;Jb;wa:5b9R9E:Qb8:I:CbH9F;mbpk9kb;H;0;7b:o879Tb;I:g8Sb;P;u:eb;8:0:Pb;V;U;rb8U81;jb8V859HbUh9ebE;z;ib:b;8qb;79kfb8V3;yb9t:0:eb9o:z:mb9ug;mbI9v;Cb;a;g;wbkY:wb8A9W:4b9P:v9Kb8M9A9GbZ9s;UbuHsb;0:1Hb;8;l;1b80:8Rb80:8;Ub;O9D;mb;D9E9Gb9N:o:BbM8Z;Vb;jL:4b9H9y:Bb;H9x:8b9r:d;gb;y8:zb;DG9ibR3;Db:VK:Hbh8SSb9z;Z;xb;z96:yb:E9u;ab9p:g;6b9wo;8b;L95:Ub:jgBbU:Tgb9N:t;Cb9v;O:Qb:c8MUb;k;N:Bb9rm:Kb:z8Z:Xb:P;xPb9Pv9ibW:Y;Wbu1:Nb19m:xb;5;rBbhM:Zb97:c9kb:y;phbn:F;Cb;C9h9vb;Ht86b9N;R9cb;::D;Fb9E;u9Fb979N:Kb:6:S96b9v;2:Ib8R18Jbc:69vb9z9UwbhI:gb859h:db:j;J;Mb;L:E;ub6;7nbF9w;Pb3s;kb;f9z:kbN;68Rb;t;b;fbs;f;pb;B9A:Ub9h;f:gb:fJ9Ibh:g87b8S95Nbz9H:hbI9m97bj8S8AbJ:;Ob18M:qb9488:jb:O;e;Kb;L;B97b;e86;cb8M;0;Qb;39N:kbmM:;bW:J8Rb89:t:Xb:998kb:K9r;Cb8N;D9Jb9P;H;Db:ANYb:O8P:vb9O;oybD;T:0b9e:Fab9o:y;kb9W:c9Jb9:988Jbs:58Yb:N;1:obC9w;Nbh;Xwb:1:DIb9V9:9nb:LY9rb:1;5:Rb:c;F;wb:w;D9HbQBdb;e86:Fb:d:I:HbV;T9Tb85:n96b:c:4:Pb9R8Y9CbS8N9Bbb80;Tb;sb93b;8;09vbe9z9nb;GGjbbbbbbbbbbbbn;7h;5ZbbbbR9et8:bbbj:yS;488bbb9G9r;m9487bbbj:dE;W85bbbna8L96Ubbbjg:c;JBbbbb5;Z9P81bc:W:2dkxebbbdbbbn:Bbb",a=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 e,d=WebAssembly.instantiate(t(c),{}).then(function(i){e=i.instance,e.exports.__wasm_call_ctors()});function t(i){for(var h=new Uint8Array(i.length),l=0;l<i.length;++l){var f=i.charCodeAt(l);h[l]=f>96?f-97:f>64?f-39:f+4}for(var m=0,l=0;l<i.length;++l)h[m++]=h[l]<60?a[h[l]]:(h[l]-60)*64+h[++l];return h.buffer.slice(0,m)}function b(i){if(!i)throw new Error("Assertion failed")}function n(i){return new Uint8Array(i.buffer,i.byteOffset,i.byteLength)}function o(i,h,l,f,m,r,y,k,p,v){var u=e.exports.sbrk,j=u(h*16),w=i?u(i.byteLength):0,E=u(l.byteLength),A=u(r.byteLength),N=u(k.byteLength),M=new Uint8Array(e.exports.memory.buffer);i&&M.set(n(i),w),M.set(n(l),E),M.set(n(r),A),M.set(n(k),N),e.exports.meshopt_generateTangents(j,w,h,E,f,m*4,A,y*4,N,p*4,v),M=new Uint8Array(e.exports.memory.buffer);var I=new Float32Array(M.buffer,j,h*4).slice();return u(j-u(0)),I}function s(i,h,l,f,m,r,y){var k=e.exports.sbrk,p=k(h*12),v=i?k(i.byteLength):0,u=k(l.byteLength),j=new Uint8Array(e.exports.memory.buffer);i&&j.set(n(i),v),j.set(n(l),u),e.exports.meshopt_generateNormals(p,v,h,u,f,m*4,r,y),j=new Uint8Array(e.exports.memory.buffer);var w=new Float32Array(j.buffer,p,h*3).slice();return k(p-k(0)),w}var g={Compatible:1,ZeroFallback:2};return{ready:d,supported:!0,generateTangents:function(i,h,l,f,m,r,y,k){b(i===null||i instanceof Uint32Array||i instanceof Int32Array||i instanceof Uint16Array||i instanceof Int16Array),b(i===null||i.length%3==0),b(h instanceof Float32Array),b(h.length%l==0),b(l>=3),b(f instanceof Float32Array),b(f.length%m==0),b(m>=3),b(r instanceof Float32Array),b(r.length%y==0),b(y>=2),b(h.length/l==f.length/m),b(h.length/l==r.length/y),b(i!==null||h.length/l%3==0);for(var p=0,v=0;v<(k?k.length:0);++v)b(k[v]in g),p|=g[k[v]];var u=h.length/l,j=i?i.length:u,w=i===null||i.BYTES_PER_ELEMENT==4?i:new Uint32Array(i);return o(w,j,h,u,l,f,m,r,y,p)},generateNormals:function(i,h,l,f,m){b(i===null||i instanceof Uint32Array||i instanceof Int32Array||i instanceof Uint16Array||i instanceof Int16Array),b(i===null||i.length%3==0),b(h instanceof Float32Array),b(h.length%l==0),b(l>=3),b(i!==null||h.length/l%3==0),b(f>=0&&f<=Math.PI),m=m||0;var r=h.length/l,y=i?i.length:r,k=i===null||i.BYTES_PER_ELEMENT==4?i:new Uint32Array(i);return s(k,y,h,r,l,f,m)}}})();var Rc=128,Mb=128;var Ce={shaded:0,meshlets:1,lodLevel:2,instances:3};function Nb(c,a){let e=c.length;if(e<=a)return[c.map((h,l)=>l)];let d=new Map;for(let h=0;h<e;h++)for(let l of c[h].boundaryEdges){let f=d.get(l);f?f[f.length-1]!==h&&f.push(h):d.set(l,[h])}let t=Array.from({length:e},()=>new Map);for(let h of d.values())for(let l=0;l<h.length;l++)for(let f=l+1;f<h.length;f++){let m=h[l],r=h[f];t[m].set(r,(t[m].get(r)||0)+1),t[r].set(m,(t[r].get(m)||0)+1)}let b=Xt(c.map(h=>h.center)),n=new Uint8Array(e),o=[];for(let h of b){if(n[h])continue;let l=[h];n[h]=1;let f=new Map,m=r=>{for(let[y,k]of t[r])n[y]||f.set(y,(f.get(y)||0)+k)};for(m(h);l.length<a&&f.size>0;){let r=-1,y=-1,k=1/0;for(let[p,v]of f){if(n[p])continue;let u=Lt(c[p].center,c[h].center);(v>y||v===y&&u<k)&&(r=p,y=v,k=u)}if(r<0)break;f.delete(r),n[r]=1,l.push(r),m(r)}o.push(l)}let s=[],g=[],i=Math.max(2,Math.floor(a/2));for(let h of o){if(h.length>=i){s.push(h);continue}g.length+h.length>a&&(s.push(g),g=[]),g.push(...h)}return g.length>0&&s.push(g),s}function Lt(c,a){let e=c[0]-a[0],d=c[1]-a[1],t=c[2]-a[2];return e*e+d*d+t*t}function Xt(c){let a=[1/0,1/0,1/0],e=[-1/0,-1/0,-1/0];for(let b of c)for(let n=0;n<3;n++)a[n]=Math.min(a[n],b[n]),e[n]=Math.max(e[n],b[n]);let d=Math.max(e[0]-a[0],e[1]-a[1],e[2]-a[2])||1,t=c.map(b=>{let n=o=>Math.min(1023,Math.max(0,Math.floor((b[o]-a[o])/d*1023)));return Ab(n(0))|Ab(n(1))<<1|Ab(n(2))<<2});return c.map((b,n)=>n).sort((b,n)=>t[b]-t[n])}function Ab(c){return c&=1023,c=(c|c<<16)&50331903,c=(c|c<<8)&50393103,c=(c|c<<4)&51130563,c=(c|c<<2)&153391689,c}function Fc(c,a,e,d,t){if(e.length===0)return null;let b=[1/0,1/0,1/0],n=[-1/0,-1/0,-1/0];for(let O=0;O<e.length;O++){let C=e[O]*3;for(let D=0;D<3;D++)b[D]=Math.min(b[D],c[C+D]),n[D]=Math.max(n[D],c[C+D])}let o=Math.max(n[0]-b[0],n[1]-b[1],n[2]-b[2]);if(!(o>0))return null;let s=o/d,g=3,i=[0,1,2].map(O=>Math.ceil((n[O]-b[O])/s)+1+g*2),h=[0,1,2].map(O=>b[O]-g*s),[l,f,m]=i,r=1,y=l,k=l*f,p=l*f*m,v=new Uint8Array(p),u=a?new Float32Array(p*3):null,j=a?new Uint32Array(p):null,w=t?new Float32Array(p*2).fill(NaN):null,E=0,A=0,N=(O,C,D,Q,Z,$)=>{let ca=Math.floor((O-h[0])/s)*r+Math.floor((C-h[1])/s)*y+Math.floor((D-h[2])/s)*k;v[ca]=1,w&&Number.isNaN(w[ca*2])&&(w[ca*2]=E,w[ca*2+1]=A),u&&(u[ca*3]+=Q,u[ca*3+1]+=Z,u[ca*3+2]+=$,j[ca]++)};for(let O=0;O<e.length;O+=3){let C=e[O]*3,D=e[O+1]*3,Q=e[O+2]*3,Z=Math.max(Ib(c,C,D),Ib(c,D,Q),Ib(c,Q,C)),$=Math.max(1,Math.ceil(Z/(s*.5)));for(let ca=0;ca<=$;ca++)for(let oa=0;oa<=$-ca;oa++){let na=ca/$,fa=oa/$,ua=1-na-fa,Ca=c[C]*ua+c[D]*na+c[Q]*fa,Ba=c[C+1]*ua+c[D+1]*na+c[Q+1]*fa,_=c[C+2]*ua+c[D+2]*na+c[Q+2]*fa;if(t){let ya=e[O]*2,la=e[O+1]*2,pa=e[O+2]*2;E=t[ya]*ua+t[la]*na+t[pa]*fa,A=t[ya+1]*ua+t[la+1]*na+t[pa+1]*fa}a?N(Ca,Ba,_,a[C]*ua+a[D]*na+a[Q]*fa,a[C+1]*ua+a[D+1]*na+a[Q+1]*fa,a[C+2]*ua+a[D+2]*na+a[Q+2]*fa):N(Ca,Ba,_,0,0,0)}}let M=Qt(Yt(v,i),i),I=new Float32Array(p);for(let O=0;O<p;O++)I[O]=M[O];Rb(I,i,r,l),Rb(I,i,y,f),Rb(I,i,k,m);let z=.5,T=l-1,x=f-1,U=m-1,G=new Int32Array(T*x*U).fill(-1),F=[],B=[],H=[],P=[],V=new Float32Array(8);for(let O=0;O<U;O++)for(let C=0;C<x;C++)for(let D=0;D<T;D++){let Q=D*r+C*y+O*k,Z=0;for(let _=0;_<8;_++)V[_]=I[Q+(_&1)*r+(_>>1&1)*y+(_>>2&1)*k],V[_]>=z&&Z++;if(Z===0||Z===8)continue;let $=0,ca=0,oa=0,na=0;for(let _=0;_<8;_++)for(let ya of[1,2,4]){if(_&ya)continue;let la=_|ya,pa=V[_],Ga=V[la];if(pa>=z==Ga>=z)continue;let Wa=(z-pa)/(Ga-pa);$+=(_&1)+(ya===1?Wa:0),ca+=(_>>1&1)+(ya===2?Wa:0),oa+=(_>>2&1)+(ya===4?Wa:0),na++}G[D+C*T+O*T*x]=F.length/3,F.push(h[0]+(D+.5+$/na)*s,h[1]+(C+.5+ca/na)*s,h[2]+(O+.5+oa/na)*s);let fa=V[1]+V[3]+V[5]+V[7]-V[0]-V[2]-V[4]-V[6],ua=V[2]+V[3]+V[6]+V[7]-V[0]-V[1]-V[4]-V[5],Ca=V[4]+V[5]+V[6]+V[7]-V[0]-V[1]-V[2]-V[3],Ba=Math.hypot(fa,ua,Ca)||1;if(B.push(-fa/Ba,-ua/Ba,-Ca/Ba),u){let _=0,ya=0,la=0,pa=0;for(let Ga=0;Ga<8;Ga++){let Wa=Q+(Ga&1)*r+(Ga>>1&1)*y+(Ga>>2&1)*k;j[Wa]&&(_+=u[Wa*3],ya+=u[Wa*3+1],la+=u[Wa*3+2],pa+=j[Wa])}pa?H.push(_/pa,ya/pa,la/pa):H.push(NaN,NaN,NaN)}if(w){let _=NaN,ya=NaN;for(let la=0;la<8&&Number.isNaN(_);la++){let pa=Q+(la&1)*r+(la>>1&1)*y+(la>>2&1)*k;_=w[pa*2],ya=w[pa*2+1]}P.push(_,ya)}}let q=[],Y=(O,C,D)=>G[O+C*T+D*T*x],W=(O,C,D,Q,Z,$,ca)=>{let oa=F[D*3]-F[O*3],na=F[D*3+1]-F[O*3+1],fa=F[D*3+2]-F[O*3+2],ua=F[Q*3]-F[C*3],Ca=F[Q*3+1]-F[C*3+1],Ba=F[Q*3+2]-F[C*3+2],_=na*Ba-fa*Ca,ya=fa*ua-oa*Ba,la=oa*Ca-na*ua;_*Z+ya*$+la*ca>=0?q.push(O,C,D,O,D,Q):q.push(O,D,C,O,Q,D)};for(let O=1;O<m-1;O++)for(let C=1;C<f-1;C++)for(let D=1;D<l-1;D++){let Q=D*r+C*y+O*k,Z=I[Q]>=z;if(Z!==I[Q+r]>=z){let $=Z?1:-1;W(Y(D,C-1,O-1),Y(D,C,O-1),Y(D,C,O),Y(D,C-1,O),$,0,0)}if(Z!==I[Q+y]>=z){let $=Z?1:-1;W(Y(D-1,C,O-1),Y(D,C,O-1),Y(D,C,O),Y(D-1,C,O),0,$,0)}if(Z!==I[Q+k]>=z){let $=Z?1:-1;W(Y(D-1,C-1,O),Y(D,C-1,O),Y(D,C,O),Y(D-1,C,O),0,0,$)}}if(q.length===0)return null;let aa=null;u&&(aa=Float32Array.from(H),zc(aa,q,3));let ta=null;return w&&(ta=Float32Array.from(P),zc(ta,q,2)),{positions:Float32Array.from(F),normals:Float32Array.from(B),colors:aa,uvs:ta,indices:Uint32Array.from(q),cellSize:s}}function Ib(c,a,e){return Math.hypot(c[a]-c[e],c[a+1]-c[e+1],c[a+2]-c[e+2])}function Yt(c,a){let e=c;for(let d=0;d<3;d++)e=Tc(e,a,d,1);return e}function Qt(c,a){let e=c;for(let d=0;d<3;d++)e=Tc(e,a,d,0);return e}function Tc(c,a,e,d){let[t,b,n]=a,o=e===0?1:e===1?t:t*b,s=a[e],g=new Uint8Array(c.length);for(let i=0;i<n;i++)for(let h=0;h<b;h++)for(let l=0;l<t;l++){let f=l+h*t+i*t*b,m=e===0?l:e===1?h:i,r=m>0?c[f-o]:0,y=m<s-1?c[f+o]:0;g[f]=d?c[f]|r|y:c[f]&r&y}return g}function Rb(c,a,e,d){let[t,b,n]=a,o=new Float32Array(d),s=t*b*n/d;for(let g=0;g<s;g++){let i;e===1?i=g*t:e===t?i=g%t+Math.floor(g/t)*t*b:i=g;for(let h=0;h<d;h++)o[h]=c[i+h*e];for(let h=0;h<d;h++){let l=h>0?o[h-1]:0,f=h<d-1?o[h+1]:0;c[i+h*e]=(l+o[h]+f)/3}}}function zc(c,a,e){let d=c.length/e;for(let t=0;t<8;t++){let b=0,n=new Float32Array(d*e),o=new Uint32Array(d);for(let s=0;s<a.length;s+=3)for(let g=0;g<3;g++){let i=a[s+g];if(Number.isNaN(c[i*e]))for(let h=1;h<3;h++){let l=a[s+(g+h)%3];if(!Number.isNaN(c[l*e])){for(let f=0;f<e;f++)n[i*e+f]+=c[l*e+f];o[i]++}}}for(let s=0;s<d;s++)if(Number.isNaN(c[s*e]))if(o[s])for(let g=0;g<e;g++)c[s*e+g]=n[s*e+g]/o[s];else b++;if(!b)return}for(let t=0;t<c.length;t++)Number.isNaN(c[t])&&(c[t]=.5)}var zb=24;function Bc(c,a,e,d,t,b){let n=c.length/3,o=new Map,s=r=>{let y=r;for(;o.get(y)!==y;)y=o.get(y);for(;o.get(r)!==y;){let k=o.get(r);o.set(r,y),r=k}return y};for(let r=0;r<c.length;r++){let y=e[c[r]];o.has(y)||o.set(y,y)}for(let r=0;r<c.length;r+=3){let y=s(e[c[r]]);for(let k=1;k<3;k++){let p=s(e[c[r+k]]);y!==p&&o.set(p,y)}}let g=new Map;for(let r=0;r<n;r++){let y=s(e[c[r*3]]),k=g.get(y);k||g.set(y,k=[]),k.push(r)}if(g.size<2)return null;let i=[];for(let r of g.values()){let y=new Uint32Array(r.length*3),k=!0;r.forEach((p,v)=>{for(let u=0;u<3;u++){let j=c[p*3+u];y[v*3+u]=j,d[e[j]]!==t&&(k=!1)}}),i.push({indices:y,free:k})}let h=[m(!0),m(!1)].filter(r=>r!==null),l=h.filter(r=>r.indices.length/3<=b*1.25),f=l.length?l:h;return f.sort((r,y)=>l.length?r.error-y.error:r.indices.length-y.indices.length),f[0]??null;function m(r){let y=0,k=i.map(N=>({...N})),p=b/n,v=0;for(let N of k){let M=Math.max(6,Math.floor(N.indices.length*p/3)*3);if(r&&N.free&&N.indices.length>M){let I=ad(N.indices,a),[z,T]=Qa.simplify(I.indices,I.positions,3,M,1e10,["ErrorAbsolute"]);z.length>0&&z.length<N.indices.length&&(N.indices=z.map(x=>I.toGlobal[x]),y=Math.max(y,T))}v+=N.indices.length/3}let u=[],j=[],w=a.length/3;if(v>b){let N=k.map((B,H)=>({p:B,i:H})).filter(({p:B})=>B.free),M=new Map;for(let{p:B,i:H}of N)M.set(H,$t(B.indices,a));let I=N.map(({i:B})=>B),z=ed(I.map(B=>M.get(B).center)),T=Math.max(z[3]-z[0],z[4]-z[1],z[5]-z[2],1e-9),x=B=>bd([(B[0]-z[0])/T,(B[1]-z[1])/T,(B[2]-z[2])/T]);I.sort((B,H)=>x(M.get(B).center)-x(M.get(H).center));let U=I.map((B,H)=>{let P=1/0;for(let V=Math.max(0,H-zb);V<Math.min(I.length,H+1+zb);V++)V!==H&&(P=Math.min(P,Oc(M.get(B).center,M.get(I[V]).center)));return P}),G=[...U].sort((B,H)=>B-H)[Math.floor(U.length/2)],F=new Set;for(let B=0;B<I.length&&v>b;B++){let H=I[B];if(F.has(H))continue;let P=-1,V=G*2;for(let Z=B+1;Z<Math.min(I.length,B+1+zb);Z++){let $=I[Z];if(F.has($))continue;let ca=Oc(M.get(H).center,M.get($).center);ca<=V&&(V=ca,P=$)}if(P<0)continue;F.add(H),F.add(P);let[q,Y]=M.get(H).area>=M.get(P).area?[H,P]:[P,H],W=M.get(q),aa=M.get(Y),ta=Math.max(W.area+aa.area,1e-12),O=ta/Math.max(W.area,1e-12),C=aa.area/ta,D=[0,1,2].map(Z=>(aa.center[Z]-W.center[Z])*C),Q=Zt(k[q].indices,a,W,O,D,w+j.length,u,j);y=Math.max(y,V*Math.max(C,1-C),Q.growth),v-=k[Y].indices.length/3,k[q].indices=Q.indices,k[Y].indices=new Uint32Array(0)}}let E=new Uint32Array(k.reduce((N,M)=>N+M.indices.length,0)),A=0;for(let N of k)E.set(N.indices,A),A+=N.indices.length;return E.length>=c.length?null:{indices:E,error:y,newPositions:Float32Array.from(u),newSources:Uint32Array.from(j),firstNewVertex:w}}}function Zt(c,a,e,d,t,b,n,o){let g=e.extent[0]>e.extent[1]*2?[1,d]:[Math.sqrt(d),Math.sqrt(d)],i=Math.max((g[0]-1)*e.extent[0],(g[1]-1)*e.extent[1])/2,h=new Map,l=new Uint32Array(c.length),f=e.center;for(let m=0;m<c.length;m++){let r=c[m],y=h.get(r);if(y===void 0){y=b+h.size,h.set(r,y);let k=[a[r*3]-f[0],a[r*3+1]-f[1],a[r*3+2]-f[2]],p=[a[r*3]+t[0],a[r*3+1]+t[1],a[r*3+2]+t[2]];for(let v=0;v<2;v++){let u=e.axes[v],j=k[0]*u[0]+k[1]*u[1]+k[2]*u[2];for(let w=0;w<3;w++)p[w]+=(g[v]-1)*j*u[w]}n.push(p[0],p[1],p[2]),o.push(r)}l[m]=y}return{indices:l,growth:i}}function $t(c,a){let e=[...new Set(c)],d=[0,0,0];for(let s of e)for(let g=0;g<3;g++)d[g]+=a[s*3+g]/e.length;let t=[0,0,0,0,0,0,0,0,0];for(let s of e){let g=[a[s*3]-d[0],a[s*3+1]-d[1],a[s*3+2]-d[2]];for(let i=0;i<3;i++)for(let h=0;h<3;h++)t[i*3+h]+=g[i]*g[h]}let b=_t(t),n=[0,0,0];for(let s=0;s<3;s++){let g=1/0,i=-1/0;for(let h of e){let l=(a[h*3]-d[0])*b[s][0]+(a[h*3+1]-d[1])*b[s][1]+(a[h*3+2]-d[2])*b[s][2];g=Math.min(g,l),i=Math.max(i,l)}n[s]=i-g}let o=0;for(let s=0;s<c.length;s+=3){let g=c[s]*3,i=c[s+1]*3,h=c[s+2]*3,l=[a[i]-a[g],a[i+1]-a[g+1],a[i+2]-a[g+2]],f=[a[h]-a[g],a[h+1]-a[g+1],a[h+2]-a[g+2]];o+=.5*Math.hypot(l[1]*f[2]-l[2]*f[1],l[2]*f[0]-l[0]*f[2],l[0]*f[1]-l[1]*f[0])}return{area:o,center:d,axes:b,extent:n}}function _t(c){let a=[...c],e=[1,0,0,0,1,0,0,0,1];for(let t=0;t<24&&!(Math.abs(a[1])+Math.abs(a[2])+Math.abs(a[5])<1e-12*(Math.abs(a[0])+Math.abs(a[4])+Math.abs(a[8])+1e-30));t++)for(let[n,o]of[[0,1],[0,2],[1,2]]){let s=a[n*3+o];if(Math.abs(s)<1e-30)continue;let g=(a[o*3+o]-a[n*3+n])/(2*s),i=Math.sign(g||1)/(Math.abs(g)+Math.sqrt(g*g+1)),h=1/Math.sqrt(i*i+1),l=i*h;for(let f=0;f<3;f++){let m=a[f*3+n],r=a[f*3+o];a[f*3+n]=h*m-l*r,a[f*3+o]=l*m+h*r}for(let f=0;f<3;f++){let m=a[n*3+f],r=a[o*3+f];a[n*3+f]=h*m-l*r,a[o*3+f]=l*m+h*r}for(let f=0;f<3;f++){let m=e[f*3+n],r=e[f*3+o];e[f*3+n]=h*m-l*r,e[f*3+o]=l*m+h*r}}return[0,1,2].sort((t,b)=>a[b*3+b]-a[t*3+t]).map(t=>{let b=e[t],n=e[3+t],o=e[6+t],s=Math.hypot(b,n,o)||1;return[b/s,n/s,o/s]})}function ad(c,a){let e=new Map,d=[],t=new Uint32Array(c.length);for(let n=0;n<c.length;n++){let o=e.get(c[n]);o===void 0&&(o=d.length,e.set(c[n],o),d.push(c[n])),t[n]=o}let b=new Float32Array(d.length*3);return d.forEach((n,o)=>b.set(a.subarray(n*3,n*3+3),o*3)),{indices:t,positions:b,toGlobal:d}}function ed(c){let a=[1/0,1/0,1/0,-1/0,-1/0,-1/0];for(let e of c)for(let d=0;d<3;d++)a[d]=Math.min(a[d],e[d]),a[d+3]=Math.max(a[d+3],e[d]);return a}var Oc=(c,a)=>Math.hypot(c[0]-a[0],c[1]-a[1],c[2]-a[2]);function bd(c){let a=e=>{let d=Math.min(1023,Math.max(0,Math.floor(e*1024)))&1023;return d=(d|d<<16)&50331903,d=(d|d<<8)&50393103,d=(d|d<<4)&51130563,d=(d|d<<2)&153391689,d};return(a(c[0])|a(c[1])<<1|a(c[2])<<2)>>>0}var cd={groupSize:12,maxLodLevels:24,maxGroupKeepRatio:.9,simplifyRatio:.5,minLevelReduction:.03,prune:!1,tailSimplify:!0,minRootTriangles:4,voxelLods:!0,voxelResolution:64,aggregateLods:!0},td=1024,Dc=c=>{let a=[];for(let e=Math.max(4,Math.round(c));e>=4;e=Math.floor(e/2))a.push(e);return a},dd=()=>new Promise(c=>setTimeout(c,0));async function Je(c,a={}){let e={...cd,...a},d=performance.now();await nb.ready,await Qa.ready;let t=c.positions,b=c.normals,n=c.colors??null,o=c.uvs??null,s=Qa.generatePositionRemap(t,3),g=0,i=0,h=["LockBorder","ErrorAbsolute"];e.prune&&h.push("Prune");let l=[],f=new Map,m=N(c.indices,0,null,0),r=m,y=Cc(r),k=1,p=Math.max(1,m.length*2);for(let M=1;M<=e.maxLodLevels&&r.length>1&&!(e.tailSimplify&&y<=td||e.tailSimplify&&e.voxelLods&&i>0&&u(r,y));M++){let I=Nb(r,e.groupSize),z=[],T=e.aggregateLods?j(I,r):null,x=NaN;for(let[G,F]of I.entries()){let B=F.map(D=>r[D]),H=Uc(B),P=rb(H,t),V=Math.max(3,Math.floor(H.length*e.simplifyRatio/3)*3),[q,Y]=Qa.simplify(P.indices,P.positions,3,V,1e10,h),W=new Uint32Array(q.length);for(let D=0;D<q.length;D++)W[D]=P.toGlobal[q[D]];let aa=Math.max(Y,Fb(P.indices,q,P.positions));if(T&&q.length>V*1.25){let D=Bc(H,t,s,T,G,V/3);D&&Number.isNaN(x)&&(x=e.tailSimplify&&e.voxelLods?v(y):1/0);let Q=Math.max(...B.map(Z=>Z.error));if(D&&D.indices.length<q.length&&Q+D.error<x){let Z=D.newSources;if(Z.length>0){let $=(ca,oa)=>{let na=new Float32Array(Z.length*oa);return Z.forEach((fa,ua)=>na.set(ca.subarray(fa*oa,fa*oa+oa),ua*oa)),na};w(D.newPositions,$(b,3),n?$(n,3):null,o?$(o,2):null)}W=D.indices,aa=Math.max(D.error,Fb(H,W,t)),i++}}if(W.length>H.length*e.maxGroupKeepRatio)continue;let ta=Ve(B.map(D=>D.lodSphere)),C=Math.max(...B.map(D=>D.error))+Math.max(aa,1e-7);for(let D of B)D.parentSphere=ta,D.parentError=C;if(W.length>0){let D=N(W,M,ta,C);z.push(...D);for(let Q of B)Q.replacements=D}}if(await e.onProgress?.(Math.min(.99,l.length/p)),await dd(),z.length===0)break;k=M+1,r=z;let U=Cc(r);if(U>y*(1-e.minLevelReduction))break;y=U}return e.tailSimplify&&(k=A(l.filter(M=>M.parentError>=1e30),k)),await e.onProgress?.(1),nd({positions:t,normals:b,colors:n??void 0,uvs:o??void 0,indices:c.indices},l,k,g,performance.now()-d,i);function v(M){let I=Math.max(3,Math.floor(M/2)*3),z=1/0;for(let T of Dc(e.voxelResolution)){let x=E(T);if(!x)continue;let[U,G]=Qa.simplify(x.indices,x.positions,3,Math.min(I,x.indices.length),1e10,["ErrorAbsolute"]);U.length>0&&U.length<=I&&(z=Math.min(z,2*x.cellSize+G))}return z}function u(M,I){let z=0;for(let T of M)z=Math.max(z,T.error);return v(I)<=z}function j(M,I){let z=new Int32Array(s.length).fill(-1);return M.forEach((T,x)=>{for(let U of T){let G=I[U].indices;for(let F=0;F<G.length;F++){let B=s[G[F]];z[B]===-1?z[B]=x:z[B]!==x&&(z[B]=-2)}}}),z}function w(M,I,z,T){let x=t.length/3,U=M.length/3,G=(B,H)=>{let P=new Float32Array(B.length+H.length);return P.set(B),P.set(H,B.length),P};t=G(t,M),b=G(b,I),n&&(n=G(n,z??new Float32Array(U*3).fill(1))),o&&(o=G(o,T??new Float32Array(U*2)));let F=new Uint32Array(s.length+U);F.set(s);for(let B=0;B<U;B++)F[s.length+B]=x+B;return s=F,x}function E(M){return f.has(M)||f.set(M,Fc(c.positions,c.colors,c.indices,M,c.uvs)),f.get(M)}function A(M,I){if(M.length===0)return I;let z=["ErrorAbsolute"];e.prune&&z.push("Prune");let T=M,x=I;for(;x<I+e.maxLodLevels;x++){let U=Uc(T);if(U.length/3<=e.minRootTriangles)break;let G=rb(U,t),F=Math.max(3,Math.floor(U.length/2/3)*3),B=U.length*e.maxGroupKeepRatio,H=Math.max(...T.map(O=>O.error)),[P,V]=Qa.simplify(G.indices,G.positions,3,F,1e10,z);if(P.length>B){let[O,C]=Qa.simplifySloppy(G.indices,G.positions,3,null,F,1);O.length<P.length&&(P=O,V=C*Qa.getScale(G.positions,3))}let q=null,Y=1/0;if(P.length<=B){Y=H+Math.max(Math.max(V,Fb(G.indices,P,G.positions)),1e-7),q=new Uint32Array(P.length);for(let O=0;O<P.length;O++)q[O]=G.toGlobal[P[O]]}let W=null;if(e.voxelLods)for(let O of Dc(e.voxelResolution)){let C=E(O);if(!C)continue;let D=Math.min(F,C.indices.length),[Q,Z]=Qa.simplify(C.indices,C.positions,3,D,1e10,["ErrorAbsolute"]);if(Q.length===0||Q.length>B)continue;let $=Math.max(H*(1+1e-5)+1e-7,2*C.cellSize+Z);$<Y&&(Y=$,W={proxy:C,indices:Q})}if(!Number.isFinite(Y))break;if(W){let O=rb(W.indices,W.proxy.positions),C=(Z,$=3)=>{let ca=new Float32Array(O.toGlobal.length*$);return O.toGlobal.forEach((oa,na)=>ca.set(Z.subarray(oa*$,oa*$+$),na*$)),ca},{proxy:D}=W,Q=w(O.positions,C(D.normals),D.colors?C(D.colors):null,D.uvs?C(D.uvs,2):null);q=O.indices.map(Z=>Z+Q),g++}let aa=Ve(T.map(O=>O.lodSphere));for(let O of T)O.parentSphere=aa,O.parentError=Y;if(q.length===0)return x+1;let ta=N(q,x,aa,Y);for(let O of T)O.replacements=ta;T=ta}return x}function N(M,I,z,T){let x=rb(M,t),U=nb.buildMeshlets(x.indices,x.positions,3,128,128,0),G=[];for(let F=0;F<U.meshletCount;F++){let B=U.meshlets[F*4+0],H=U.meshlets[F*4+1],P=U.meshlets[F*4+2],V=U.meshlets[F*4+3],q=new Uint32Array(P);for(let O=0;O<P;O++)q[O]=x.toGlobal[U.vertices[B+O]];let Y=U.triangles.slice(H,H+V*3),W=new Uint32Array(V*3);for(let O=0;O<V*3;O++)W[O]=q[Y[O]];let aa=hd(W,t),ta={indices:W,lodLevel:I,lodSphere:z??aa,error:T,parentSphere:[0,0,0,0],parentError:1e30,cullSphere:aa,boundaryEdges:rd(W,s),center:[aa[0],aa[1],aa[2]],replacements:[],vertices:q,localTriangles:Y};G.push(ta),l.push(ta)}return G}}function nd(c,a,e,d,t,b){let n=[...a].sort((x,U)=>x.lodLevel-U.lodLevel),o=n.length,s=new Uint32Array(n.reduce((x,U)=>x+U.indices.length,0)),g=new Float32Array(o*16),i=new Uint32Array(o*4),h=new Map;n.forEach((x,U)=>h.set(x,U));let l=new Int32Array(o).fill(-1),f=new Map,m=[0],r=0;n.forEach((x,U)=>{if(x.replacements.length===0)return;let G=f.get(x.replacements);G===void 0&&(G=f.size,f.set(x.replacements,G),r+=x.replacements.length,m.push(r)),l[U]=G});let y=Uint32Array.from(m),k=new Uint32Array(r);for(let[x,U]of f)x.forEach((G,F)=>k[y[U]+F]=h.get(G));let p=new Uint32Array(n.reduce((x,U)=>x+U.vertices.length,0)),v=new Uint32Array(s.length/3),u=0,j=0,w={leafTriangles:0,leafMeshlets:0,rootTriangles:0,rootMeshlets:0,lodLevels:e,voxelLevels:d,aggregateGroups:b,buildMs:t};n.forEach((x,U)=>{s.set(x.indices,u),p.set(x.vertices,j);let G=x.localTriangles;for(let P=0,V=u/3;P<G.length;P+=3,V++)v[V]=G[P]|G[P+1]<<8|G[P+2]<<16;let F=U*16;g.set(x.lodSphere,F),g.set(x.parentSphere,F+4),g[F+8]=x.error,g[F+9]=x.parentError,g.set(x.cullSphere,F+12);let B=x.indices.length/3,H=U*4;i[H+0]=B,i[H+1]=u,i[H+2]=x.lodLevel,i[H+3]=j,u+=x.indices.length,j+=x.vertices.length,x.lodLevel===0&&(w.leafTriangles+=B,w.leafMeshlets+=1),x.parentError>=1e30&&(w.rootTriangles+=B,w.rootMeshlets+=1)});let E=Ve(n.filter(x=>x.lodLevel===0).map(x=>x.cullSphere)),A=n.length?n[n.length-1].lodLevel+1:0,N=new Uint32Array(A*2),M=new Float32Array(A*2),I=new Float32Array(A*2);for(let x=0;x<A;x++)M[x*2]=1/0,M[x*2+1]=0,I[x*2]=0,I[x*2+1]=1/0;n.forEach((x,U)=>{let G=x.lodLevel;N[G*2+1]===0&&(N[G*2]=U),N[G*2+1]++,M[G*2]=Math.min(M[G*2],x.error),M[G*2+1]=Math.max(M[G*2+1],x.parentError),I[G*2]=Math.max(I[G*2],x.error),I[G*2+1]=Math.min(I[G*2+1],x.parentError)});let z=Ve([...n.map(x=>x.lodSphere),...n.filter(x=>x.parentError<1e30).map(x=>x.parentSphere)]),T=Ve(n.map(x=>x.cullSphere));return{positions:c.positions,normals:c.normals,colors:c.colors??null,uvs:c.uvs??null,indices:s,meshletCount:o,meshletBounds:g,meshletInfo:i,replacementGroup:l,replacementStart:y,replacementIndices:k,meshletVertices:p,meshletTriangles:v,levelRanges:N,levelErrors:M,levelGuardErrors:I,lodBoundsSphere:z,cullBoundsSphere:T,boundingSphere:E,stats:w}}function Fb(c,a,e){let d=o=>{let s=[1/0,1/0,1/0],g=[-1/0,-1/0,-1/0];for(let i=0;i<o.length;i++){let h=o[i]*3;for(let l=0;l<3;l++){let f=e[h+l];f<s[l]&&(s[l]=f),f>g[l]&&(g[l]=f)}}return{min:s,max:g}},t=d(c);if(a.length===0)return Math.max(t.max[0]-t.min[0],t.max[1]-t.min[1],t.max[2]-t.min[2])/2;let b=d(a),n=0;for(let o=0;o<3;o++)n=Math.max(n,b.min[o]-t.min[o],t.max[o]-b.max[o]);return n}var Se=new Int32Array(0);function rb(c,a){let e=a.length/3;Se.length<e&&(Se=new Int32Array(e).fill(-1));let d=new Uint32Array(c.length),t=new Uint32Array(c.length),b=0;for(let s=0;s<c.length;s++){let g=c[s],i=Se[g];i<0&&(i=b++,Se[g]=i,d[i]=g),t[s]=i}let n=d.subarray(0,b),o=new Float32Array(b*3);for(let s=0;s<b;s++){let g=n[s];Se[g]=-1,o[s*3+0]=a[g*3+0],o[s*3+1]=a[g*3+1],o[s*3+2]=a[g*3+2]}return{indices:t,positions:o,toGlobal:n}}var He=new Float64Array(1024),je=new Uint8Array(1024),Tb=new Int32Array(512);function rd(c,a){let e=c.length,d=He.length;if(d<e*2){for(;d<e*2;)d<<=1;He=new Float64Array(d),je=new Uint8Array(d),Tb=new Int32Array(d/2)}let t=d-1,b=0;for(let o=0;o<c.length;o+=3)for(let s=0;s<3;s++){let g=a[c[o+s]],i=a[c[o+(s+1)%3]],h=od(g,i),l=(Math.imul(g<i?g:i,2654435761)^Math.imul(g<i?i:g,2246822507))&t;for(;je[l]!==0&&He[l]!==h;)l=l+1&t;je[l]===0&&(He[l]=h,Tb[b++]=l),je[l]<255&&je[l]++}let n=[];for(let o=0;o<b;o++){let s=Tb[o];je[s]===1&&n.push(He[s]),je[s]=0}return n}var od=(c,a)=>c<a?c*67108864+a:a*67108864+c;function Uc(c){let a=new Uint32Array(c.reduce((d,t)=>d+t.indices.length,0)),e=0;for(let d of c)a.set(d.indices,e),e+=d.indices.length;return a}var Cc=c=>c.reduce((a,e)=>a+e.indices.length/3,0);function hd(c,a){let e=[1/0,1/0,1/0],d=[-1/0,-1/0,-1/0];for(let s=0;s<c.length;s++){let g=c[s]*3;for(let i=0;i<3;i++){let h=a[g+i];h<e[i]&&(e[i]=h),h>d[i]&&(d[i]=h)}}let t=(e[0]+d[0])/2,b=(e[1]+d[1])/2,n=(e[2]+d[2])/2,o=0;for(let s=0;s<c.length;s++){let g=c[s]*3,i=a[g]-t,h=a[g+1]-b,l=a[g+2]-n;o=Math.max(o,i*i+h*h+l*l)}return[t,b,n,Math.sqrt(o)]}function Ve(c){if(c.length===1)return[...c[0]];let a=new Float32Array(c.length*3),e=new Float32Array(c.length);c.forEach((b,n)=>{a.set([b[0],b[1],b[2]],n*3),e[n]=b[3]});let d=nb.computeSphereBounds(a,3,e,1),t=d.radius;for(let b of c){let n=Math.hypot(b[0]-d.centerX,b[1]-d.centerY,b[2]-d.centerZ)+b[3];t=Math.max(t,n)}return[d.centerX,d.centerY,d.centerZ,t*1.0001]}var Ne=1,Hc=1329940310,Za=16,Ob={Int8Array,Uint8Array,Uint8ClampedArray,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array},id={positions:{strides:[12]},normals:{strides:[12]},colors:{strides:[12]},uvs:{strides:[8]},tangents:{strides:[16]},meshletBounds:{strides:[64],deflateRaw:!0},meshletInfo:{strides:[16]}},sa=class extends Error{constructor(a){super(`three-virtual-geometry: ${a}`),this.name="VirtualMeshFormatError"}};async function Bb(c,a={}){let e=a.compress??!0;e&&await db.ready;let d=c,t=Object.keys(d).filter(r=>d[r]!==void 0&&typeof d[r]!="function"),b=[],n=[],o={},s=0;for(let r of t){let y=d[r];if(!ArrayBuffer.isView(y)){o[r]=y;continue}let k=y.constructor.name;if(!(k in Ob))throw new sa(`cannot serialize field "${r}" of type ${k}`);let p=y,v,u;r==="indices"&&!a.keepIndices&&gd(c)?(u={name:r,type:k,length:p.length,encoding:"meshlet-indices"},v=new Uint8Array(0)):e?{entry:u,blob:v}=await fd(r,k,p,c,a.deflate??!0):(u={name:r,type:k,length:p.length,encoding:"raw"},v=he(p)),b.push({...u,offset:s,byteLength:v.length}),n.push(v),s+=Ie(v.length)}let g={generator:"three-virtual-geometry",keys:t,fields:b,values:o},i=new TextEncoder().encode(JSON.stringify(g,kd)),h=Ie(i.length),l=new Uint8Array(Za+h+s);l.set(i,Za),l.fill(32,Za+i.length,Za+h);let f=Za+h;b.forEach((r,y)=>l.set(n[y],f+r.offset));let m=new DataView(l.buffer);return m.setUint32(0,Hc,!0),m.setUint32(4,Ne,!0),m.setUint32(8,i.length,!0),m.setUint32(12,Kc(l,Za),!0),l}async function Ke(c){let a=ArrayBuffer.isView(c)?new Uint8Array(c.buffer,c.byteOffset,c.byteLength):new Uint8Array(c);a.byteOffset%4!==0&&(a=a.slice());let e=new DataView(a.buffer,a.byteOffset,a.byteLength);if(a.length<Za||e.getUint32(0,!0)!==Hc)throw new sa("not a three-virtual-geometry geometry file (bad magic bytes)");let d=e.getUint32(4,!0);if(d!==Ne)throw new sa(`unsupported geometry format version ${d} (this build reads version ${Ne}); re-bake the file`);let t=e.getUint32(8,!0),b=Za+Ie(t);if(b>a.length||a.length%4!==0)throw new sa("geometry file is truncated");let n;try{n=JSON.parse(new TextDecoder().decode(a.subarray(Za,Za+t)),jd)}catch{throw new sa("geometry file is corrupt or truncated (unreadable header)")}if(!n||!Array.isArray(n.fields)||!Array.isArray(n.keys)||typeof n.values!="object")throw new sa("geometry file is corrupt (malformed header)");let o=a.subarray(b),s={},g=[...n.fields].sort((f,m)=>Sc(f.encoding)-Sc(m.encoding));g.some(f=>f.encoding!=="raw")&&await Ue.ready;for(let f of g){if(!Ob[f.type]||!Number.isInteger(f.length)||f.length<0)throw new sa(`geometry file is corrupt (field "${f.name}")`);if(f.offset%4!==0||f.offset+f.byteLength>o.length)throw new sa(`geometry file is truncated (field "${f.name}")`)}if(Kc(a,Za)!==e.getUint32(12,!0))throw new sa("geometry file is corrupt (checksum mismatch)");let i=(f,m)=>m instanceof sa?m:new sa(`geometry file is corrupt (field "${f.name}": ${m.message})`),h=await Promise.all(g.map(f=>{let m=o.subarray(f.offset,f.offset+f.byteLength);return f.deflate?qc(m).catch(r=>Promise.reject(i(f,r))):m}));for(let f=0;f<g.length;f++)try{s[g[f].name]=await Vc({...g[f],deflate:!1},h[f],s)}catch(m){throw i(g[f],m)}let l={};for(let f of n.keys)l[f]=f in s?s[f]:n.values[f];return l}async function sd(c,a){if(typeof c!="string"&&!(c instanceof URL))return Ke(c);let e=await fetch(c,a);if(!e.ok)throw new Error(`three-virtual-geometry: failed to load ${c} (HTTP ${e.status})`);return Ke(await e.arrayBuffer())}async function fd(c,a,e,d,t){let b=he(e),n={name:c,type:a,length:e.length},o=id[c]??{},s={entry:{...n,encoding:"raw"},blob:b},g=[s],i=c==="meshletTriangles"&&e instanceof Uint32Array?ld(e,d.meshletInfo):null;if(i)g.push({entry:{...n,encoding:"meshlet-triangles"},blob:i});else if(b.length%4===0&&b.length>0){let h=(o.strides??[Math.max(4,e.BYTES_PER_ELEMENT)]).filter(l=>l%4===0&&l<=256&&b.length%l===0);for(let l of h){let f=db.encodeVertexBufferLevel(b,b.length/l,l,2,1);g.push({entry:{...n,encoding:"meshopt-vertex",stride:l},blob:f})}}if(g.sort((h,l)=>h.blob.length-l.blob.length),t&&ud()&&b.length>=64){let h=o.deflateRaw&&g[0]!==s?[g[0],s]:[g[0]];for(let l of h)g.push({entry:{...l.entry,deflate:!0},blob:await yd(l.blob)});g.sort((l,f)=>l.blob.length-f.blob.length)}for(let h of g){let l=await Vc({...h.entry,offset:0,byteLength:h.blob.length},h.blob,{meshletInfo:d.meshletInfo});if(Jc(he(l),b))return h}return s}function ld(c,a){if(!(a instanceof Uint32Array))return null;let e=new Uint32Array(c.length*3),d=new Uint8Array(c.length);for(let s=0;s<a.length;s+=4){let g=a[s],i=a[s+1]/3,h=a[s+3];if(i+g>c.length)return null;for(let l=i;l<i+g;l++){let f=c[l];if(d[l]||f>>>24)return null;d[l]=1,e[l*3]=h+(f&255),e[l*3+1]=h+(f>>8&255),e[l*3+2]=h+(f>>16&255)}}if(!d.every(s=>s===1))return null;let t=db.encodeIndexBuffer(he(e),e.length,4),b=new Uint32Array(e.length);Ue.decodeIndexBuffer(he(b),e.length,4,t);let n=new Uint8Array(Math.ceil(c.length/4));for(let s=0;s<c.length;s++){let g=e[s*3],i=e[s*3+1],h=e[s*3+2],l=b[s*3],f=b[s*3+1],m=b[s*3+2],r;if(g===l&&i===f&&h===m)r=0;else if(g===f&&i===m&&h===l)r=1;else if(g===m&&i===l&&h===f)r=2;else return null;n[s>>2]|=r<<(s&3)*2}let o=new Uint8Array(4+Ie(t.length)+n.length);return new DataView(o.buffer).setUint32(0,t.length,!0),o.set(t,4),o.set(n,4+Ie(t.length)),o}function gd(c){let{indices:a,meshletInfo:e,meshletVertices:d,meshletTriangles:t}=c;if(!(a instanceof Uint32Array&&e instanceof Uint32Array&&d instanceof Uint32Array&&t instanceof Uint32Array))return!1;try{return Jc(he(Pc(a.length,e,d,t)),he(a))}catch{return!1}}var Sc=c=>c==="meshlet-triangles"?1:c==="meshlet-indices"?2:0;async function Vc(c,a,e){let d=Ob[c.type],t=new d(c.length),b=he(t),n=c.deflate?await qc(a):a;switch(c.encoding){case"raw":if(n.length!==b.length)throw new sa(`geometry file is corrupt (field "${c.name}" has the wrong size)`);b.set(n);break;case"meshopt-vertex":{let o=c.stride??0;if(o<=0||o%4!==0||b.length%o!==0)throw new sa(`geometry file is corrupt (field "${c.name}" stride)`);Ue.decodeVertexBuffer(b,b.length/o,o,n);break}case"meshlet-triangles":md(t,n,hb(e,"meshletInfo",c.name));break;case"meshlet-indices":t.set(Pc(c.length,hb(e,"meshletInfo",c.name),hb(e,"meshletVertices",c.name),hb(e,"meshletTriangles",c.name)));break;default:throw new sa(`unknown encoding "${c.encoding}" for field "${c.name}"`)}return t}function hb(c,a,e){let d=c[a];if(!(d instanceof Uint32Array))throw new sa(`geometry file is corrupt ("${e}" needs "${a}")`);return d}function md(c,a,e){let d=new DataView(a.buffer,a.byteOffset,a.byteLength).getUint32(0,!0),t=4+Ie(d);if(t+Math.ceil(c.length/4)>a.length)throw new Error("truncated triangle data");let b=new Uint32Array(c.length*3);Ue.decodeIndexBuffer(he(b),b.length,4,a.subarray(4,4+d));let n=a.subarray(t);for(let o=0;o<e.length;o+=4){let s=e[o],g=e[o+1]/3,i=e[o+3];if(g+s>c.length)throw new Error("meshlet range out of bounds");for(let h=g;h<g+s;h++){let l=n[h>>2]>>(h&3)*2&3,f=b[h*3]-i,m=b[h*3+1]-i,r=b[h*3+2]-i,[y,k,p]=l===0?[f,m,r]:l===1?[m,r,f]:[r,f,m];if((y|k|p)>>>8)throw new Error("meshlet-local vertex id out of range");c[h]=y|k<<8|p<<16}}}function Pc(c,a,e,d){let t=new Uint32Array(c);for(let b=0;b<a.length;b+=4){let n=a[b],o=a[b+1],s=a[b+3];if(o+n*3>c||o/3+n>d.length)throw new sa("geometry file is corrupt (meshlet range out of bounds)");for(let g=0;g<n;g++){let i=d[o/3+g];for(let h=0;h<3;h++){let l=s+(i>>8*h&255);if(l>=e.length)throw new sa("geometry file is corrupt (meshlet vertex out of bounds)");t[o+g*3+h]=e[l]}}}return t}var Ie=c=>c+3&-4;function he(c){return new Uint8Array(c.buffer,c.byteOffset,c.byteLength)}function Jc(c,a){if(c.length!==a.length)return!1;if(c.byteOffset%4===0&&a.byteOffset%4===0&&c.length%4===0){let e=new Uint32Array(c.buffer,c.byteOffset,c.length/4),d=new Uint32Array(a.buffer,a.byteOffset,a.length/4);for(let t=0;t<e.length;t++)if(e[t]!==d[t])return!1;return!0}for(let e=0;e<c.length;e++)if(c[e]!==a[e])return!1;return!0}function Kc(c,a){let e=new Uint32Array(c.buffer,c.byteOffset+a,c.length-a>>2),d=2166136261^e.length;for(let t=0;t<e.length;t++)d=Math.imul(d^e[t],16777619),d^=d>>>15;return d>>>0}var ud=()=>typeof CompressionStream<"u"&&typeof DecompressionStream<"u";async function yd(c){let a=new Blob([c]).stream().pipeThrough(new CompressionStream("deflate-raw"));return new Uint8Array(await new Response(a).arrayBuffer())}async function qc(c){if(typeof DecompressionStream>"u")throw new sa("this environment cannot decompress the geometry file (no DecompressionStream)");let a=new Blob([c]).stream().pipeThrough(new DecompressionStream("deflate-raw"));return new Uint8Array(await new Response(a).arrayBuffer())}function kd(c,a){if(typeof a=="number"&&!Number.isFinite(a))return{$number:String(a)};if(ArrayBuffer.isView(a))throw new sa(`typed array nested inside field "${c}" cannot be serialized; store it as a top-level field`);return a}function jd(c,a){if(a&&typeof a=="object"&&!Array.isArray(a)){let e=Object.keys(a);if(e.length===1&&e[0]==="$number")return Number(a.$number)}return a}var Wc=8,pd="three-virtual-geometry-cache",Ha="meshes",Va="meta",wd=512*1024*1024,xd=3e3;async function Db(c,a={}){let{cache:e,...d}=a;if(e?.store===!1||!Xc())return Je(c,d);let t=performance.now(),b=await Lc(c,d,e?.key).catch(()=>null),n=b?await Yc():null;if(!n||!b)return Je(c,d);let o=await Ed(n,b);if(o)try{let g=await Ke(o);return g.stats&&(g.stats.buildMs=performance.now()-t),Ad(n,b),await d.onProgress?.(1),g}catch{Nd(n,b)}let s=await Je(c,d);try{let g=await Bb(s,{deflate:!1});Md(n,b,g,e?.maxBytes)}catch{}return s}async function vd(){if(!Xc())return;let c=await Yc();c&&await new Promise(a=>{try{let e=c.transaction([Ha,Va],"readwrite");e.objectStore(Ha).clear(),e.objectStore(Va).clear(),e.oncomplete=e.onerror=e.onabort=()=>a()}catch{a()}})}async function Lc(c,a={},e){let d=`v${Wc}.${Ne}`;if(e!==void 0)return`${d}:key:${e}`;let t=globalThis.crypto?.subtle;if(!t)throw new Error("crypto.subtle unavailable");let b=c,n=Object.keys(b).filter(m=>b[m]!==void 0&&b[m]!==null).sort(),o=[],s=[];for(let m of n){let r=b[m];ArrayBuffer.isView(r)?(o.push([m,r.constructor.name,r.byteLength]),s.push(t.digest("SHA-256",r))):o.push([m,r])}let g=Object.entries(a).filter(([,m])=>m!==void 0&&typeof m!="function").sort(([m],[r])=>m<r?-1:1),i=new TextEncoder().encode(JSON.stringify({versions:d,source:o,options:g})),h=await Promise.all(s),l=new Uint8Array(i.length+h.length*32);l.set(i),h.forEach((m,r)=>l.set(new Uint8Array(m),i.length+r*32));let f=new Uint8Array(await t.digest("SHA-256",l));return`${d}:sha256:${Array.from(f,m=>m.toString(16).padStart(2,"0")).join("")}`}function Xc(){try{return typeof indexedDB<"u"&&indexedDB!==null}catch{return!1}}var Gb=null;function Yc(){return Gb??=new Promise(c=>{let a=setTimeout(()=>c(null),xd),e=d=>{clearTimeout(a),c(d)};try{let d=indexedDB.open(pd,1);d.onupgradeneeded=()=>{let t=d.result;t.objectStoreNames.contains(Ha)||t.createObjectStore(Ha),t.objectStoreNames.contains(Va)||t.createObjectStore(Va)},d.onsuccess=()=>{let t=d.result;t.onversionchange=()=>{t.close(),Gb=Promise.resolve(null)},e(t)},d.onerror=d.onblocked=()=>e(null)}catch{e(null)}}),Gb}function Ed(c,a){return new Promise(e=>{try{let d=c.transaction(Ha,"readonly").objectStore(Ha).get(a);d.onsuccess=()=>{let t=d.result;e(t instanceof ArrayBuffer?new Uint8Array(t):t instanceof Uint8Array?t:null)},d.onerror=()=>e(null)}catch{e(null)}})}function Md(c,a,e,d=wd){return new Promise(t=>{try{let b=c.transaction([Ha,Va],"readwrite");b.objectStore(Ha).put(e.buffer.byteLength===e.length?e.buffer:e.slice().buffer,a),b.objectStore(Va).put({size:e.length,lastUsed:Date.now()},a),b.oncomplete=()=>t(),b.onerror=b.onabort=()=>t()}catch{t()}}).then(()=>Id(c,a,d))}function Ad(c,a){try{let d=c.transaction(Va,"readwrite").objectStore(Va),t=d.get(a);t.onsuccess=()=>{let b=t.result;b&&d.put({...b,lastUsed:Date.now()},a)}}catch{}}function Nd(c,a){try{let e=c.transaction([Ha,Va],"readwrite");e.objectStore(Ha).delete(a),e.objectStore(Va).delete(a)}catch{}}function Id(c,a,e){return new Promise(d=>{try{let t=c.transaction([Ha,Va],"readwrite"),b=t.objectStore(Va),n=b.getAllKeys(),o=b.getAll();o.onsuccess=()=>{let s=n.result,g=o.result.map((h,l)=>({key:s[l],...h})),i=g.reduce((h,l)=>h+l.size,0);g.sort((h,l)=>h.lastUsed-l.lastUsed);for(let h of g){if(i<=e)break;h.key!==a&&(t.objectStore(Ha).delete(h.key),b.delete(h.key),i-=h.size)}},t.oncomplete=t.onerror=t.onabort=()=>d()}catch{d()}})}import{float as Rd,floor as zd,fract as Qc,screenCoordinate as Fd,uniform as Td,varyingProperty as Od}from"three/tsl";var $a=255,Ub=$a<<16,Cb=Od("vec2","vVgFade"),ib=Td(0);function Sb(){let c=Fd,a=c.x.add(Rd(ib).mul(5.588238)),e=Qc(Qc(a.mul(.06711056).add(c.y.mul(.00583715))).mul(52.9829189)),d=zd(e.mul($a)),t=Cb.round();return d.greaterThanEqual(t.x).and(d.lessThan(t.y))}function Hb(c,a,e,d){let t=d>1?e*d:e;if(!(c<=t&&a>e))return null;if(!(d>1))return[0,$a];let b=$a/Math.log(d),n=g=>Math.min($a,Math.max(0,Math.round(Math.log(Math.max(g,1e-30)/e)*b))),o=n(c),s=Number.isFinite(a)?n(a):$a;return s>o?[o,s]:null}function Bd(c,a,e){let d=a.viewMatrix,t=c.meshletBounds,b=new Uint8Array(c.meshletCount),n=a.scale??1,o=(s,g,i,h,l)=>{if(l>=1e30*.5)return 1/0;let f=d[0]*s+d[4]*g+d[8]*i+d[12],m=d[1]*s+d[5]*g+d[9]*i+d[13],r=d[2]*s+d[6]*g+d[10]*i+d[14],y=Math.max(Math.hypot(f,m,r)-h*n,a.near);return l*n*a.projScale/y};for(let s=0;s<c.meshletCount;s++){let g=s*16,i=o(t[g],t[g+1],t[g+2],t[g+3],t[g+8]),h=o(t[g+4],t[g+5],t[g+6],t[g+7],t[g+9]);b[s]=i<=e&&h>e?1:0}return b}function Gd(c,a,e,d){let t=a.viewMatrix,b=c.meshletBounds,n=new Uint8Array(c.meshletCount),o=new Uint8Array(c.meshletCount),s=a.scale??1,g=(i,h,l,f,m)=>{if(m>=1e30*.5)return 1/0;let r=t[0]*i+t[4]*h+t[8]*l+t[12],y=t[1]*i+t[5]*h+t[9]*l+t[13],k=t[2]*i+t[6]*h+t[10]*l+t[14];return m*s*a.projScale/Math.max(Math.hypot(r,y,k)-f*s,a.near)};for(let i=0;i<c.meshletCount;i++){let h=i*16,l=g(b[h],b[h+1],b[h+2],b[h+3],b[h+8]),f=g(b[h+4],b[h+5],b[h+6],b[h+7],b[h+9]),m=Hb(l,f,e,d);m&&([n[i],o[i]]=m)}return{lo:n,hi:o}}function Dd(c,a){let{replacementGroup:e,replacementStart:d,replacementIndices:t}=c,b=new Int8Array(c.meshletCount).fill(-1),n=s=>{if(b[s]!==-1)return b[s]===1;let g=!1,i=e[s];if(i>=0)for(let h=d[i];!g&&h<d[i+1];h++)g=a[t[h]]===1||n(t[h]);return b[s]=g?1:0,g},o=[];for(let s=0;s<c.meshletCount;s++)a[s]&&n(s)&&o.push(s);return o}function Ud(c,a){let e=new Int8Array(c.meshletCount).fill(-1),{replacementGroup:d,replacementStart:t,replacementIndices:b}=c,n=s=>{if(e[s]!==-1)return e[s]===1;let g=a[s]===1,i=d[s];if(i>=0)for(let h=t[i];!g&&h<t[i+1];h++)g=n(b[h]);return e[s]=g?1:0,g},o=[];for(let s=0;s<c.meshletCount;s++)c.meshletInfo[s*4+2]===0&&!n(s)&&o.push(s);return o}function _c(c,a){let e=a.viewMatrix,[d,t,b,n]=c.lodBoundsSphere,o=e[0]*d+e[4]*t+e[8]*b+e[12],s=e[1]*d+e[5]*t+e[9]*b+e[13],g=e[2]*d+e[6]*t+e[10]*b+e[14],i=Math.hypot(o,s,g),h=n*(a.scale??1);return[Math.max(i-h,a.near),Math.max(i+h,a.near)]}function Cd(c,a,e,d=1){let[t,b]=_c(c,a),n=e*Math.max(1,d),o=(a.scale??1)*a.projScale,s=-1,g=-1,i=c.levelRanges.length/2;for(let h=0;h<i;h++){let l=c.levelErrors[h*2],f=c.levelErrors[h*2+1],m=l*o/b<=n,r=f>=1e30*.5||f*o/t>e;m&&r&&(s<0&&(s=h),g=h)}return s<0?[0,0]:[c.levelRanges[s*2],c.levelRanges[g*2]+c.levelRanges[g*2+1]]}function Sd(c,a,e,d=1){let[t,b]=_c(c,a),n=e*Math.max(1,d),o=.001,s=(a.scale??1)*a.projScale,g=-1,i=-1,h=0,l=0,f=c.levelRanges.length/2;for(let y=0;y<f;y++){let k=c.levelErrors[y*2],p=c.levelErrors[y*2+1],v=k*s/b<=n,u=p>=1e30*.5||p*s/t>e;if(!v||!u)continue;g<0&&(g=y),i=y;let j=c.levelRanges[y*2+1];h+=j;let w=c.levelGuardErrors[y*2],E=c.levelGuardErrors[y*2+1],A=w*s/t<=e*(1-o),N=E>=1e30*.5||E*s/b>n*(1+o);A&&N&&(l+=j)}if(g<0)return null;let m=c.levelRanges[g*2],r=c.levelRanges[i*2]+c.levelRanges[i*2+1];return h!==r-m||l!==h||h>4?null:[m,r]}import*as ee from"three/webgpu";import{bool as pn,cameraViewMatrix as wn,faceDirection as xn,hash as nc,materialColor as vn,normalize as En,select as rc,vec3 as Mn,vec4 as oc}from"three/tsl";import*as qa from"three/webgpu";import{Fn as Pa,If as ra,Loop as xe,Return as le,atomicAdd as ge,atomicLoad as Ja,atomicStore as ne,bitcast as kt,bool as qb,dot as nt,float as ia,instanceIndex as Wb,length as me,localId as sb,log as Yd,mat4 as Qd,max as re,min as jt,normalLocal as Zd,normalize as pt,numWorkgroups as Lb,select as za,smoothstep as $d,sqrt as rt,storage as Oa,uint as J,uniform as ot,unpackUnorm2x16 as _d,uvec4 as fb,varyingProperty as Oe,vec2 as an,vec3 as en,vec4 as Ka,vertexIndex as ht,workgroupArray as bn,workgroupBarrier as cn,workgroupId as Re}from"three/tsl";import*as de from"three/webgpu";import{bumpMap as Hd,context as at,float as Vd,mat3 as Pd,materialColor as et,materialReference as Vb,negateOnBackSide as bt,normalView as Jd,positionView as ct,sqrt as Kd,texture as qd,transformNormalToView as Wd,varyingProperty as Ld,vec3 as tt,vec4 as Pb}from"three/tsl";var we=Ld("vec2","vVgUv");function dt(c){if(!(c?.isTextureNode!==!0||c.isCubeTextureNode||c.isTexture3DNode))return we}function qe(c){return qd(c,we).setUpdateMatrix(!0)}var Xd=[de.RGFormat,de.RED_GREEN_RGTC2_Format,de.RG11_EAC_Format];function Jb(c,a,e=de.TangentSpaceNormalMap){let d=qe(c),t=d.xyz.mul(2).sub(1);if(Xd.includes(c.format)){let y=d.xy.mul(2).sub(1);t=tt(y,Kd(Vd(1).sub(y.dot(y)).max(0)))}if(t=tt(t.xy.mul(a),t.z),e===de.ObjectSpaceNormalMap)return Wd(t);let b=ct.dFdx(),n=ct.dFdy(),o=we.dFdx(),s=we.dFdy(),g=Jd,i=n.cross(g),h=g.cross(b),l=i.mul(o.x).add(h.mul(s.x)),f=i.mul(o.y).add(h.mul(s.y)),m=l.dot(l).max(f.dot(f)),r=m.equal(0).select(0,m.inverseSqrt());return Pd(bt(l.mul(r)),bt(f.mul(r)),g).mul(t).normalize()}function Kb(c){let a=c;if(!a.colorNode&&(pe(a.map)||pe(a.alphaMap))){let e=Pb(et,1);if(pe(a.map)){let d=qe(a.map);e=Pb(et.mul(d.rgb),d.a)}pe(a.alphaMap)&&(e=Pb(e.rgb,e.a.mul(qe(a.alphaMap).g))),a.colorNode=e,a.map=null,a.alphaMap=null}a.normalNode||(pe(a.normalMap)?a.normalNode=Jb(a.normalMap,Vb("normalScale","vec2"),a.normalMapType):pe(a.bumpMap)&&(a.normalNode=Hd(qe(a.bumpMap).r,Vb("bumpScale","float")))),!a.clearcoatNormalNode&&pe(a.clearcoatNormalMap)&&(a.clearcoatNormalNode=Jb(a.clearcoatNormalMap,Vb("clearcoatNormalScale","vec2"))),a.contextNode=a.contextNode?at(a.contextNode,{getUV:dt}):at({getUV:dt}),c.needsUpdate=!0}var pe=c=>c?.isTexture===!0;var ie=jt,Fe=re,it=Yd,Ze=Oe("vec3","vVgWorldNormal"),ac=Oe("float","vVgMeshlet"),ec=Oe("float","vVgLod"),kb=Oe("float","vVgInstance"),bc=Oe("vec3","vVgTint"),$e=Oe("vec3","vVgInstanceOrigin"),$b=Math.ceil(Math.log2(128)),tn=(1<<$b)-1,Xb=65535,Ye=128,lb=64,st=64,ft=64,lt=48,Da=6,Ra=5,_a=2,dn=.15,jb=1e30,Te=5,ze=0,gb=1,Yb=2,We=3,mb=4,ue=2+2*Te,ye=0,Qb=2,Le=4,gt=8,ub=1e4,nn=2,mt=.82,ut=.9,yt=.75,rn=1.25,on=2.5,ae=class{constructor(a,e,d,t=1/0){this.make=a;this.itemSize=e;this.maxItems=t;this.array=a(Math.max(1,d)*e),this.attribute=new qa.StorageBufferAttribute(this.array,e)}make;itemSize;maxItems;array;attribute;used=0;get capacity(){return this.array.length/this.itemSize}reserve(a){if(this.used+a>this.capacity)return-1;let e=this.used;return this.used+=a,e}grow(a){let e=this.make(Math.min(Math.max(a,Math.ceil(this.capacity*1.6)),Math.max(a,this.maxItems))*this.itemSize);e.set(this.array),this.array=e,this.attribute=new qa.StorageBufferAttribute(this.array,this.itemSize)}touch(a,e){e<=0||(this.attribute.addUpdateRange(a*this.itemSize,e*this.itemSize),this.attribute.needsUpdate=!0)}},yb=c=>new Float32Array(c),Xe=c=>new Uint32Array(c),Qe=class{constructor(a,e,d){this.context=a;this.capacity=e,this.maxBytes=d,this.meshSlotCapacity=64;let t=b=>Math.floor(d/b);this.vertexData=new ae(Xe,4,65536,t(16)),this.vertexAttrs=new ae(Xe,2,65536,t(8)),this.meshletBounds=new ae(yb,16,4096,t(64)),this.meshletInfo=new ae(Xe,4,4096,t(16)),this.meshletVertices=new ae(Xe,1,1<<18,t(4)),this.meshletTriangles=new ae(Xe,1,1<<18,t(4)),this.meshTable=new ae(yb,4,this.meshSlotCapacity*Da+1024,t(16)),this.meshTable.used=this.meshSlotCapacity*Da,this.instances=new ae(yb,4,4096,t(16*Ra)*Ra),this.cells=new ae(yb,4,256,t(16))}context;entries=[];meshSlots=ot(0,"uint");cellCount=ot(0,"uint");maxBytes;capacity;vertexData;vertexAttrs;meshletBounds;meshletInfo;meshletVertices;meshletTriangles;meshTable;instances;cells;meshSlotCapacity;levelUsed=0;countersAttribute;lodStateBase=0;controllerActive=!1;drawArgsAttribute;cameraIndex;shadowIndex;computeNodes=[];positionNode=null;version=0;needsRebuild=!0;indexBuffersReady=!1;pipelineState="none";dirty=!0;hasCut=!1;dedicated=!1;disabled=!1;static bytesOf(a){return Math.max(a.positions.length/3*16,a.meshletVertices.length*4,a.meshletTriangles.length*4,a.meshletCount*64)}fits(a,e){let d=(t,b,n)=>(t+b)*n<=this.maxBytes;return d(this.vertexData.used,a.positions.length/3,16)&&d(this.meshletBounds.used,a.meshletCount,64)&&d(this.meshletVertices.used,a.meshletVertices.length,4)&&d(this.meshletTriangles.used,a.meshletTriangles.length,4)&&d(this.instances.used,e*Ra,16)}add(a,e,d,t){let b=this.entries.indexOf(null);b===-1&&(b=this.entries.length),b>=this.meshSlotCapacity&&this.growMeshSlots(b+1);let n=a.positions.length/3,o=a.levelRanges.length/2,s=e.length/16,g=Math.ceil(s/Ye),i=(l,f)=>{let m=l.reserve(f);return m===-1&&(l.grow(l.used+f),this.needsRebuild=!0,m=l.reserve(f)),m},h={slot:b,data:a,vertexBase:i(this.vertexData,n),meshletBase:i(this.meshletBounds,a.meshletCount),meshletVertexBase:i(this.meshletVertices,a.meshletVertices.length),triangleBase:i(this.meshletTriangles,a.meshletTriangles.length),levelBase:0,levelCount:o,instanceBase:i(this.instances,s*Ra)/Ra,instanceCount:s,cellBase:i(this.cells,g*_a)/_a,cellCount:g,uvScale:[1,1],uvOffset:[0,0]};return i(this.meshletInfo,a.meshletCount),i(this.vertexAttrs,n),h.levelBase=this.meshSlotCapacity*Da+this.levelUsed,h.levelBase+o*2>this.meshTable.capacity&&(this.meshTable.grow(h.levelBase+o*2),this.needsRebuild=!0),this.levelUsed+=o*2,this.meshTable.used=Math.max(this.meshTable.used,h.levelBase+o*2),this.entries[b]=h,this.writeGeometry(h),this.writeInstances(h,e,d,t),this.writeMeshRecord(h,{maxDrawDistance:jb,minPixelRadius:0,enabled:1,shadow:1,occlusion:0}),this.meshSlots.value=Math.max(this.meshSlots.value,b+1),this.cellCount.value=this.cells.used/_a,this.dirty=!0,h}remove(a){this.writeFlags(a,{enabled:0}),this.entries[a.slot]=null,this.dirty=!0}growMeshSlots(a){let e=this.meshSlotCapacity,d=Math.max(a,e*2),t=(d-e)*Da,b=e*Da,n=this.meshTable.used+t;n>this.meshTable.capacity&&this.meshTable.grow(n);let o=this.meshTable.array;o.copyWithin((b+t)*4,b*4,this.meshTable.used*4),o.fill(0,b*4,(b+t)*4),this.meshTable.used+=t,this.meshSlotCapacity=d;for(let s of this.entries)s&&(s.levelBase+=t,o[(s.slot*Da+3)*4+3]=s.levelBase);this.needsRebuild=!0}writeGeometry(a){let e=a.data,d=e.positions.length/3,t=this.vertexData.array,b=new Float32Array(t.buffer,t.byteOffset,t.length);for(let l=0;l<d;l++){let f=(a.vertexBase+l)*4;b[f]=e.positions[l*3],b[f+1]=e.positions[l*3+1],b[f+2]=e.positions[l*3+2],t[f+3]=wt(e.normals[l*3],e.normals[l*3+1],e.normals[l*3+2])}this.vertexData.touch(a.vertexBase,d);let n=this.vertexAttrs.array,o=e.uvs?xt(e.uvs):null;o&&(a.uvScale=o.scale,a.uvOffset=o.offset);let s=l=>Math.round(Math.max(0,Math.min(1,l))*255);for(let l=0;l<d;l++){let f=(a.vertexBase+l)*2;n[f]=e.colors?(s(e.colors[l*3])|s(e.colors[l*3+1])<<8|s(e.colors[l*3+2])<<16|255<<24)>>>0:4294967295,n[f+1]=o?o.packed[l]:0}this.vertexAttrs.touch(a.vertexBase,d),this.meshletBounds.array.set(e.meshletBounds,a.meshletBase*16),this.meshletBounds.touch(a.meshletBase,e.meshletCount);let g=this.meshletInfo.array;for(let l=0;l<e.meshletCount;l++){let f=(a.meshletBase+l)*4,m=l*4;g[f]=e.meshletInfo[m],g[f+1]=e.meshletInfo[m+1]+a.triangleBase*3,g[f+2]=e.meshletInfo[m+2],g[f+3]=e.meshletInfo[m+3]+a.meshletVertexBase}this.meshletInfo.touch(a.meshletBase,e.meshletCount);let i=this.meshletVertices.array;for(let l=0;l<e.meshletVertices.length;l++)i[a.meshletVertexBase+l]=e.meshletVertices[l]+a.vertexBase;this.meshletVertices.touch(a.meshletVertexBase,e.meshletVertices.length),this.meshletTriangles.array.set(e.meshletTriangles,a.triangleBase),this.meshletTriangles.touch(a.triangleBase,e.meshletTriangles.length);let h=this.meshTable.array;for(let l=0;l<a.levelCount;l++){let f=(a.levelBase+l*2)*4;h[f]=e.levelRanges[l*2]+a.meshletBase,h[f+1]=e.levelRanges[l*2+1],h[f+2]=e.levelErrors[l*2],h[f+3]=e.levelErrors[l*2+1],h[f+4]=e.levelGuardErrors[l*2],h[f+5]=e.levelGuardErrors[l*2+1],h[f+6]=0,h[f+7]=0}this.meshTable.touch(a.levelBase,a.levelCount*2)}writeMeshRecord(a,e){let d=this.meshTable.array,t=a.slot*Da*4;d.set(a.data.boundingSphere,t),d.set(a.data.lodBoundsSphere,t+4),d.set(a.data.cullBoundsSphere,t+8),d.set([e.maxDrawDistance,e.minPixelRadius,a.levelCount,a.levelBase],t+12),d.set([a.uvScale[0],a.uvScale[1],a.uvOffset[0],a.uvOffset[1]],t+16),d.set([e.enabled,e.shadow,e.occlusion,0],t+20),this.meshTable.touch(a.slot*Da,Da),this.dirty=!0}writeFlags(a,e){let d=this.meshTable.array,t=a.slot*Da*4,b=(n,o)=>{o===void 0||d[t+n]===o||(d[t+n]=o,this.meshTable.touch(a.slot*Da+(n>>2),1),this.dirty=!0)};b(12,e.maxDrawDistance),b(13,e.minPixelRadius),b(20,e.enabled),b(21,e.shadow),b(22,e.occlusion)}readFlag(a,e){let d={maxDrawDistance:12,minPixelRadius:13,enabled:20,shadow:21,occlusion:22};return this.meshTable.array[a.slot*Da*4+d[e]]}writeInstances(a,e,d,t){let b=this.instances.array;for(let n=0;n<a.instanceCount;n++){let o=t[n],s=(a.instanceBase+n)*Ra*4;b.set(e.subarray(o*16,o*16+16),s),d?b.set(d.subarray(o*4,o*4+3),s+16):b.fill(1,s+16,s+19),b[s+19]=a.slot}this.instances.touch(a.instanceBase*Ra,a.instanceCount*Ra);for(let n=0;n<a.cellCount;n++)this.computeCell(a,n);this.cells.touch(a.cellBase*_a,a.cellCount*_a)}setMatrix(a,e,d){d.toArray(this.instances.array,(a.instanceBase+e)*Ra*4)}commitInstances(a,e){this.instances.touch(a.instanceBase*Ra,a.instanceCount*Ra);for(let d of e)this.computeCell(a,d),this.cells.touch((a.cellBase+d)*_a,_a);this.dirty=!0}computeCell(a,e){let d=this.instances.array,t=e*Ye,b=Math.min(t+Ye,a.instanceCount),n=new Float64Array(4),o=[1/0,1/0,1/0],s=[-1/0,-1/0,-1/0],g=0;for(let r=t;r<b;r++){_b(d,(a.instanceBase+r)*Ra*4,a.data.boundingSphere,n);for(let y=0;y<3;y++)o[y]=Math.min(o[y],n[y]-n[3]),s[y]=Math.max(s[y],n[y]+n[3]);g=Math.max(g,n[3])}let i=(o[0]+s[0])/2,h=(o[1]+s[1])/2,l=(o[2]+s[2])/2,f=0;for(let r=t;r<b;r++)_b(d,(a.instanceBase+r)*Ra*4,a.data.boundingSphere,n),f=Math.max(f,Math.hypot(n[0]-i,n[1]-h,n[2]-l)+n[3]);let m=(a.cellBase+e)*_a*4;this.cells.array.set([i,h,l,f*(1+1e-4)+.001,g*(1+1e-4)+1e-4,a.slot,a.instanceBase+t,b-t],m)}prepare(a){if(this.ensureBuilt(),this.indexBuffersReady)return;let e=a.backend;e.createIndexAttribute(this.cameraIndex),e.createIndexAttribute(this.shadowIndex),this.indexBuffersReady=!0}ensureBuilt(){this.needsRebuild&&this.build()}build(){this.needsRebuild=!1,this.indexBuffersReady=!1,this.pipelineState="none",this.hasCut=!1,this.version++;for(let R of this.computeNodes)R.dispose();let a=this.context,e=this.capacity,d=this.meshSlotCapacity,t=e.meshlets,b=Math.floor(this.instances.capacity/Ra),n=Math.floor(this.cells.capacity/_a),o=e.triangles*3,s=e.shadowTriangles*3,g=(R,S)=>Oa(R.attribute,S,R.capacity),i=g(this.vertexData,"uvec4").toReadOnly(),h=g(this.vertexAttrs,"uvec2").toReadOnly(),l=g(this.meshletBounds,"vec4").toReadOnly(),f=g(this.meshletInfo,"uvec4").toReadOnly(),m=g(this.meshletVertices,"uint").toReadOnly(),r=g(this.meshletTriangles,"uint").toReadOnly(),y=g(this.meshTable,"vec4").toReadOnly(),k=g(this.instances,"vec4").toReadOnly(),p=g(this.cells,"vec4").toReadOnly();this.lodStateBase=ue+2*d*4;let v=new Uint32Array(this.lodStateBase+gt);v.fill(ub,this.lodStateBase,this.lodStateBase+2),this.countersAttribute=new qa.StorageBufferAttribute(v,1),this.drawArgsAttribute=new qa.IndirectStorageBufferAttribute(new Uint32Array(2*d*2*5),1),this.cameraIndex=new qa.StorageBufferAttribute(new Uint32Array(o),1),this.shadowIndex=new qa.StorageBufferAttribute(new Uint32Array(s),1);let u=new qa.StorageBufferAttribute(new Uint32Array(n*4),4),j=new qa.StorageBufferAttribute(new Uint32Array(b*2*4),4),w=new qa.StorageBufferAttribute(new Uint32Array(t*2*4),4),E=()=>new qa.IndirectStorageBufferAttribute(new Uint32Array(3),3),A=E(),N=[E(),E()],M=[E(),E()],I=E(),z=Oa(this.countersAttribute,"uint",this.countersAttribute.count).toAtomic(),T=R=>z.element(this.lodStateBase+R),x=R=>ia(Ja(T(R)).toVar()).div(ub),U=(R,S)=>ne(T(R),J(ia(S).mul(ub).round())),G=Oa(I,"uint",3),F=Oa(this.drawArgsAttribute,"uint",this.drawArgsAttribute.count),B=Oa(this.cameraIndex,"uint",o),H=Oa(this.shadowIndex,"uint",s),P=Oa(u,"uvec4",n),V=Oa(u,"uvec4",n).toReadOnly(),q=Oa(j,"uvec4",b*2),Y=Oa(w,"uvec4",t*2),W=Oa(w,"uvec4",t*2).toReadOnly(),aa=Oa(A,"uint",3),ta=N.map(R=>Oa(R,"uint",3)),O=M.map(R=>Oa(R,"uint",3)),C=(R,S)=>z.element(2+R*Te+S),D=(R,S,K)=>z.element(J(ue+R*d*4).add(S.mul(4)).add(J(K).mul(2))),Q=(R,S,K)=>z.element(J(ue+R*d*4+1).add(S.mul(4)).add(J(K).mul(2))),Z=R=>za(R.bitAnd(16776960).equal(Ub),J(0),J(1)),$=[o,s],ca=[B,H],oa=[],na=()=>{let R=x(ye).toVar(),S=x(ye+1).toVar(),K=ia(1).add(a.lodBlendMax.sub(1).mul($d(rn,on,a.errorThreshold.mul(R)))).toVar(),X=K.greaterThan(1.001).toVar(),L=za(X,ia($a).div(it(K)),ia(0)).toVar();oa=[0,1].map(ea=>{let ha=ea===0?R:Fe(R,S),ga=(ea===0?a.errorThreshold:a.errorThreshold.mul(a.shadowErrorScale)).mul(ha).toVar();return{low:ga,high:za(X,ga.mul(K),ga).toVar(),fadeScale:L}})},fa=a.minPixelRadius,ua=a.occlusion,Ca=(R,S)=>k.element(R.mul(Ra).add(S)),Ba=R=>{let S=[0,1,2,3].map(L=>Ca(R,L).toVar()),K=Qd(S[0],S[1],S[2],S[3]).toVar(),X=re(me(S[0].xyz),re(me(S[1].xyz),me(S[2].xyz))).toVar();return{model:K,scale:X,columns:S}},_=(R,S)=>y.element(R.mul(Da).add(S)),ya=(R,S,K,X)=>{let L=a.viewMatrix.mul(R.mul(Ka(K.xyz,1))),ea=re(me(L.xyz).sub(K.w.mul(S)),a.near),ha=X.mul(S).div(ea).mul(a.projScale);return za(X.greaterThanEqual(1e30*.5),ia(1e30),ha)},la=(R,S)=>{let K=ia(1e30);for(let X of a.frustumPlanes){let L=nt(X.xyz,R).add(X.w);S!==!1&&(L=L.add(re(nt(X.xyz,a.shadowSweep),0).mul(S===!0?1:za(S,ia(1),ia(0))))),K=jt(K,L)}return K},pa=(R,S,K)=>{let X=a.viewMatrix.mul(Ka(S,1)).xyz.toVar(),L=X.z.abs().mul(oa[0].high).div(a.projScale);return R.and(ua.activeNode.equal(1)).and(ua.occluded(X,K.add(L)))},Ga=(R,S)=>{R.element(0).assign(ie(S,J(Xb))),R.element(1).assign(S.add(Xb-1).div(Xb)),R.element(2).assign(J(1))},Wa=Pa(()=>{let R=Wb;ra(R.lessThan(J(ue)),()=>{ne(z.element(R),J(0))}),ra(R.lessThan(this.meshSlots.mul(8)),()=>{let S=R.div(this.meshSlots.mul(4)),K=R.mod(this.meshSlots.mul(4));ne(z.element(J(ue).add(S.mul(d*4)).add(K)),J(0))})})().compute(Math.max(ue,d*8),[64]),Vt=Pa(()=>{ra(Wb.greaterThanEqual(this.cellCount),()=>{le()});let R=Wb.toVar(),S=p.element(R.mul(_a)).toVar(),K=p.element(R.mul(_a).add(1)).toVar(),X=J(K.y).toVar(),L=_(X,5).toVar();ra(L.x.equal(0),()=>{le()});let ea=S.xyz.toVar(),ha=S.w.toVar();ra(a.frustumCulling.equal(1).and(la(ea,L.y.greaterThan(.5)).lessThan(ha.negate())),()=>{le()});let ga=_(X,3).toVar(),ma=re(fa,ga.y),xa=K.x,ka=me(a.viewMatrix.mul(Ka(ea,1)).xyz).toVar().sub(ha).toVar();ra(ka.greaterThan(xa).and(xa.mul(a.projScale).div(re(ka,1e-6)).lessThan(ma)),()=>{le()}),ra(ka.greaterThan(ga.x),()=>{le()});let ja=ge(z.element(0),J(1)).toVar();P.element(ja).assign(fb(X,J(K.z),J(K.w),R))})().compute(n,[lb]),Pt=Pa(()=>{Ga(aa,Ja(z.element(0)).toVar())})().compute(1),vb=bn("vec4",lt*2),kc=(R,S,K,X,L,ea,ha,ga,ma,xa)=>{let{low:va,high:ka}=oa[R],ja=J(4294967295).toVar(),Na=J(0).toVar(),Fa=J(0).toVar(),ce=J(0).toVar();xe({start:J(0),end:K,type:"uint",condition:"<"},({i:wa})=>{let da=vb.element(wa.mul(2)).toVar(),Ea=vb.element(wa.mul(2).add(1)).toVar(),Ia=J(da.x).toVar(),Xa=J(da.y).toVar(),Ya=da.z.mul(xa).lessThanEqual(ka).and(da.w.greaterThanEqual(1e30*.5).or(da.w.mul(ma).greaterThan(va))),oe=Ea.x.mul(ma).lessThanEqual(va.mul(1-.001)).and(Ea.y.greaterThanEqual(1e30*.5).or(Ea.y.mul(xa).greaterThan(ka.mul(1+.001))));ra(Ya,()=>{ja.assign(ie(ja,Ia)),Na.assign(Fe(Na,Ia.add(Xa))),Fa.addAssign(Xa),ra(oe,()=>{ce.addAssign(Xa)})})});let La=ha.mul(Ka(L.xyz,1)).xyz.toVar(),Ta=L.w.mul(ga).toVar(),te=Fa.greaterThan(J(0)).and(Fa.equal(Na.sub(ja))).and(ce.equal(Fa)).and(Fa.lessThanEqual(J(4))).and(a.frustumCulling.equal(0).or(la(La,R===1).greaterThanEqual(Ta))).toVar();ra(Na.greaterThan(ja),()=>{ge(C(R,Yb),J(1)),ra(te,()=>{let wa=ge(C(R,ze),Fa).toVar();for(let da=0;da<4;da++)ra(J(da).lessThan(Fa).and(wa.add(da).lessThan(J(t))),()=>{let Ea=ja.add(da).toVar(),Ia=f.element(Ea).x.toVar(),Xa=ge(D(R,S,0),Ia.mul(3)).toVar();Y.element(wa.add(da+R*t)).assign(fb(ea,Ea,Xa,Ia.bitOr(Ub)))})}).Else(()=>{let wa=ge(C(R,We),J(1)).toVar(),da=S.bitOr(za(X,J(2147483648),J(0)));q.element(wa.add(R*b)).assign(fb(ea,ja,Na,da))})})},jc=R=>Pa(()=>{let S=Re.x.add(Re.y.mul(Lb.x)).toVar(),K=S.lessThan(Ja(z.element(0))).toVar(),X=V.element(ie(S,J(n-1))).toVar(),L=X.x,ea=_(L,3).toVar(),ha=za(K,ie(J(ea.z),J(lt)),J(0)).toVar(),ga=J(ea.w).toVar();xe({start:sb.x,end:ha.mul(2),type:"uint",condition:"<",update:lb},({i:Ta})=>{vb.element(Ta).assign(y.element(ga.add(Ta)))}),cn(),ra(K.not(),()=>{le()}),na();let ma=_(L,0).toVar(),xa=_(L,1).toVar(),va=_(L,2).toVar(),ka=_(L,5).toVar(),ja=ka.y.greaterThan(.5),Na=ka.z.greaterThan(.5),Fa=re(fa,ea.y).toVar(),ce=ea.x.toVar(),La=X.y.add(X.z);xe({start:X.y.add(sb.x),end:La,type:"uint",condition:"<",update:lb},({i:Ta})=>{let te=Ta.toVar(),{model:wa,scale:da}=Ba(te),Ea=wa.mul(Ka(ma.xyz,1)).xyz.toVar(),Ia=ma.w.mul(da).toVar(),Xa=a.frustumCulling.equal(0),Ya=Xa.or(la(Ea,!1).greaterThanEqual(Ia.negate())).toVar(),oe=ja.and(Xa.or(la(Ea,!0).greaterThanEqual(Ia.negate()))).toVar();if(R){let Me=x(Le).toVar(),Ae=x(Le+1).toVar();Ya.assign(Ya.and(Me.greaterThan(.5))),oe.assign(oe.and(Ae.greaterThan(.5)))}let De=me(a.viewMatrix.mul(Ka(Ea,1)).xyz).toVar(),Eb=De.greaterThan(Ia).and(Ia.mul(a.projScale).div(De).lessThan(Fa)),Ee=De.sub(Ia).greaterThan(ce),tb=Ya.or(oe).and(Eb.not()).and(Ee.not());ra(tb,()=>{ra(Ya.and(pa(Na,Ea,Ia)),()=>{Ya.assign(qb(!1)),ge(z.element(1),J(1))});let Me=a.viewMatrix.mul(wa.mul(Ka(xa.xyz,1))),Ae=me(Me.xyz).toVar(),Ac=xa.w.mul(da),Nc=da.mul(a.projScale).div(re(Ae.sub(Ac),a.near)).toVar(),Ic=da.mul(a.projScale).div(re(Ae.add(Ac),a.near)).toVar();ra(Ya,()=>{kc(0,L,ha,Na,va,te,wa,da,Nc,Ic)}),ra(oe,()=>{kc(1,L,ha,qb(!1),va,te,wa,da,Nc,Ic)})})})})().compute(R?I:A,[lb]),pc=R=>{let S=Pa(()=>{Ga(ta[R],Ja(C(R,We)).toVar())})().compute(1),K=Pa(()=>{let L=x(Le+R).toVar(),ea=Ja(C(R,We)).toVar();Ga(ta[R],za(L.greaterThan(.5),ea,J(0)).toVar())})().compute(1),X=Pa(()=>{let L=Re.x.add(Re.y.mul(Lb.x)).toVar();ra(L.greaterThanEqual(Ja(C(R,We))),()=>{le()});let ea=q.element(L.add(R*b)).toVar(),ha=ea.x,ga=ea.w.bitAnd(2147483647).toVar(),ma=ea.w.shiftRight(31).equal(1),{model:xa,scale:va}=Ba(ha);na();let{low:ka,high:ja,fadeScale:Na}=oa[R];xe({start:ea.y.add(sb.x),end:ea.z,type:"uint",condition:"<",update:st},({i:Fa})=>{let ce=Fa,La=ce.mul(16/4).toVar(),Ta=l.element(La.add(3)),te=xa.mul(Ka(Ta.xyz,1)).xyz,wa=a.frustumCulling.equal(0).or(la(te,R===1).greaterThanEqual(Ta.w.mul(va).negate()));R===0&&(wa=wa.and(pa(ma,te,Ta.w.mul(va)).not()));let da=l.element(La.add(2)),Ea=ya(xa,va,l.element(La),da.x).toVar(),Ia=ya(xa,va,l.element(La.add(1)),da.y).toVar(),Xa=Ee=>J(it(Fe(Ee,1e-30).div(ka)).mul(Na).round().clamp(0,$a)),Ya=za(Na.greaterThan(0),Xa(Ea),J(0)).toVar(),oe=za(Na.greaterThan(0),Xa(Ia),J($a)).toVar(),De=Ya.shiftLeft(8).bitOr(oe.shiftLeft(16)),Eb=wa.and(Ea.lessThanEqual(ja)).and(Ia.greaterThan(ka)).and(oe.greaterThan(Ya));ra(Eb,()=>{let Ee=ge(C(R,ze),J(1)).toVar();ra(Ee.lessThan(J(t)),()=>{let tb=f.element(ce).x.toVar(),Me=tb.bitOr(De).toVar(),Ae=ge(D(R,ga,Z(Me)),tb.mul(3)).toVar();Y.element(Ee.add(R*t)).assign(fb(ha,ce,Ae,Me))})})})})().compute(N[R],[st]);return{argsNode:S,retryArgsNode:K,passNode:X}},wc=R=>Pa(()=>{let S=J(0).toVar(),K=J($[R]);xe({start:J(0),end:this.meshSlots,type:"uint",condition:"<"},({i:L})=>{for(let ea of[0,1]){let ha=Ja(D(R,L,ea)).toVar();ne(Q(R,L,ea),S);let ga=za(S.lessThan(K),K.sub(S),J(0)),ma=J(R*d*10+ea*5).add(L.mul(10)).toVar();F.element(ma).assign(ie(ha,ga)),F.element(ma.add(1)).assign(J(1)),F.element(ma.add(2)).assign(S),F.element(ma.add(3)).assign(J(0)),F.element(ma.add(4)).assign(J(0)),S.addAssign(ha)}}),ne(C(R,mb),S);let X=ie(Ja(C(R,ze)),J(t)).toVar();ne(C(R,gb),X),Ga(O[R],X)})().compute(1),xc=R=>Pa(()=>{let S=Re.x.add(Re.y.mul(Lb.x)).toVar();ra(S.greaterThanEqual(Ja(C(R,gb))),()=>{le()});let K=S.add(R*t).toVar(),X=W.element(K).toVar(),L=J(Ca(X.x,4).w).toVar(),ea=Ja(Q(R,L,Z(X.w))).toVar(),ha=f.element(X.y).y.div(3).toVar(),ga=K.shiftLeft($b).toVar(),ma=ca[R],xa=X.w.bitAnd(255).toVar();xe({start:sb.x,end:xa,type:"uint",condition:"<",update:ft},({i:va})=>{let ka=ea.add(X.z).add(va.mul(3)).toVar();ra(ka.add(2).lessThan(J($[R])),()=>{let ja=r.element(ha.add(va)).toVar();ma.element(ka).assign(ga.bitOr(ja.bitAnd(255))),ma.element(ka.add(1)).assign(ga.bitOr(ja.shiftRight(8).bitAnd(255))),ma.element(ka.add(2)).assign(ga.bitOr(ja.shiftRight(16).bitAnd(255)))})})})().compute(M[R],[ft]),vc=R=>{let S=Ja(C(R,mb)).toVar(),K=Ja(C(R,ze)).toVar();return Fe(ia(S).div($[R]),ia(K).div(t))},Jt=Pa(()=>{let R=qb(!1).toVar();for(let S of[0,1]){let K=vc(S).toVar(),X=x(ye+S).toVar();U(Le+S,0),ra(K.greaterThan(1).and(X.lessThan(a.lodScaleLimit)),()=>{U(ye+S,ie(X.mul(rt(K.div(mt)).clamp(1.1,4)),a.lodScaleLimit)),U(Le+S,1),R.assign(!0);for(let L of[ze,gb,Yb,We,mb])ne(C(S,L),J(0));S===0&&ne(z.element(1),J(0)),xe({start:J(0),end:this.meshSlots,type:"uint",condition:"<"},({i:L})=>{ne(D(S,L,0),J(0)),ne(D(S,L,1),J(0))})})}G.element(0).assign(za(R,aa.element(0),J(0))),G.element(1).assign(za(R,aa.element(1),J(1))),G.element(2).assign(J(1))})().compute(1),Kt=Pa(()=>{for(let R of[0,1]){let S=vc(R).toVar(),K=x(ye+R).toVar();ra(S.greaterThan(ut),()=>{K.assign(K.mul(ie(rt(S.div(mt)),1.03)))}).ElseIf(S.lessThan(yt),()=>{K.assign(K.div(1.01))}),U(ye+R,Fe(ie(K,a.lodScaleLimit),1)),U(Qb+R,S)}})().compute(1),Ec=[pc(0),pc(1)],Mc=[wc(0),wc(1)],qt=jc(!1),Wt=jc(!0),cb=[];for(let R=0;R<nn;R++){cb.push(Jt,Wt);for(let S of Ec)cb.push(S.retryArgsNode,S.passNode);cb.push(...Mc)}this.computeNodes=[Wa,Vt,Pt,qt,...Ec.flatMap(R=>[R.argsNode,R.passNode]),...Mc,...cb,Kt,xc(0),xc(1)],this.positionNode=Pa(()=>{let R=ht.shiftRight($b),S=ht.bitAnd(tn),K=W.element(R).toVar(),X=K.x,L=K.y,ea=f.element(L).toVar(),ha=m.element(ea.w.add(S)).toVar(),{model:ga,columns:ma}=Ba(X),xa=Ca(X,4).toVar(),va=J(xa.w).toVar(),ka=_(va,3),ja=_(va,4).toVar(),Na=i.element(ha).toVar(),Fa=h.element(ha).toVar(),ce=kt(Na.xyz,"vec3"),La=ka.x,Ta=ma[3].xyz;$e.assign(Ta);let te=me(a.viewMatrix.mul(Ka(Ta,1)).xyz),wa=La.sub(te).div(La.mul(dn)).clamp(0,1),da=Ta.add(ga.mul(Ka(ce,0)).xyz.mul(wa)),Ea=pt(ga.mul(Ka(hn(Na.w),0)).xyz);return Zd.assign(Ea),Ze.assign(Ea),ac.assign(ia(L)),Cb.assign(an(ia(K.w.shiftRight(8).bitAnd(255)),ia(K.w.shiftRight(16).bitAnd(255)))),ec.assign(ia(ea.z)),kb.assign(ia(X)),bc.assign(xa.xyz.mul(sn(Fa.x).xyz)),we.assign(_d(Fa.y).mul(ja.xy).add(ja.zw)),da})()}async readCounters(a){let e=new Uint32Array(await a.getArrayBufferAsync(this.countersAttribute)),d=Array.from(e.subarray(this.lodStateBase,this.lodStateBase+gt),g=>g/ub),t=[d[ye],d[ye+1]],b=[d[Qb],d[Qb+1]];this.controllerActive=b.some((g,i)=>g>ut||g<yt&&t[i]>1.0001);let n=this.meshSlotCapacity,o=g=>({selected:e[2+g*Te+ze],drawn:e[2+g*Te+gb],survived:e[2+g*Te+Yb],requestedTriangles:e[2+g*Te+mb]/3}),s=(g,i)=>(e[ue+(g*n+i)*4]+e[ue+(g*n+i)*4+2])/3;return{camera:o(0),shadow:o(1),occluded:e[1],perMesh:s,scale:t,fill:b}}drawArgsOffset(a,e,d=0){return((a*this.meshSlotCapacity+e)*2+d)*20}dispose(){for(let a of this.computeNodes)a.dispose();this.computeNodes=[]}};function _b(c,a,e,d){let[t,b,n,o]=e;d[0]=c[a]*t+c[a+4]*b+c[a+8]*n+c[a+12],d[1]=c[a+1]*t+c[a+5]*b+c[a+9]*n+c[a+13],d[2]=c[a+2]*t+c[a+6]*b+c[a+10]*n+c[a+14];let s=Math.hypot(c[a],c[a+1],c[a+2]),g=Math.hypot(c[a+4],c[a+5],c[a+6]),i=Math.hypot(c[a+8],c[a+9],c[a+10]);d[3]=o*Math.max(s,g,i)}function hn(c){let a=kt(c,"int"),e=ia(a.shiftLeft(16).shiftRight(16)).div(32767),d=ia(a.shiftRight(16)).div(32767),t=ia(1).sub(e.abs()).sub(d.abs()),b=Fe(t.negate(),0),n=e.add(za(e.greaterThanEqual(0),b.negate(),b)),o=d.add(za(d.greaterThanEqual(0),b.negate(),b));return pt(en(n,o,t))}function sn(c){return Ka(ia(c.bitAnd(255)),ia(c.shiftRight(8).bitAnd(255)),ia(c.shiftRight(16).bitAnd(255)),ia(c.shiftRight(24))).div(255)}function wt(c,a,e){let d=Math.abs(c)+Math.abs(a)+Math.abs(e)||1,t=c/d,b=a/d;if(e<0){let s=(1-Math.abs(b))*(t>=0?1:-1),g=(1-Math.abs(t))*(b>=0?1:-1);t=s,b=g}let n=Math.round(Math.max(-1,Math.min(1,t))*32767)&65535,o=Math.round(Math.max(-1,Math.min(1,b))*32767)&65535;return(n|o<<16)>>>0}function xt(c){let a=c.length/2,e=[1/0,1/0],d=[-1/0,-1/0];for(let o=0;o<c.length;o++){let s=o&1;c[o]<e[s]&&(e[s]=c[o]),c[o]>d[s]&&(d[s]=c[o])}a===0&&(e[0]=e[1]=d[0]=d[1]=0);let t=[d[0]-e[0]||1,d[1]-e[1]||1],b=new Uint32Array(a),n=(o,s)=>Math.round(Math.max(0,Math.min(1,(o-e[s])/t[s]))*65535);for(let o=0;o<a;o++)b[o]=(n(c[o*2],0)|n(c[o*2+1],1)<<16)>>>0;return{packed:b,scale:t,offset:[e[0],e[1]]}}function Zb(c){return c&=1023,c=(c|c<<16)&50331903,c=(c|c<<8)&50393103,c=(c|c<<4)&51130563,c=(c|c<<2)&153391689,c}function vt(c,a){let e=c.length/16,d=new Float64Array(4),t=new Float64Array(e*3),b=[1/0,1/0,1/0],n=[-1/0,-1/0,-1/0];for(let g=0;g<e;g++){_b(c,g*16,a,d);for(let i=0;i<3;i++)t[g*3+i]=d[i],b[i]=Math.min(b[i],d[i]),n[i]=Math.max(n[i],d[i])}let o=Math.max(n[0]-b[0],n[1]-b[1],n[2]-b[2],1e-9),s=new Uint32Array(e);for(let g=0;g<e;g++){let i=h=>Math.min(1023,Math.max(0,Math.floor((t[g*3+h]-b[h])/o*1024)));s[g]=(Zb(i(0))|Zb(i(1))<<1|Zb(i(2))<<2)>>>0}return fn(s)}function fn(c){let a=c.length,e=Uint32Array.from({length:a},(b,n)=>n),d=new Uint32Array(a),t=new Uint32Array(32768);for(let b of[0,15]){t.fill(0);for(let o=0;o<a;o++)t[c[o]>>>b&32767]++;let n=0;for(let o=0;o<t.length;o++){let s=t[o];t[o]=n,n+=s}for(let o=0;o<a;o++){let s=e[o];d[t[c[s]>>>b&32767]++]=s}[e,d]=[d,e]}return e}import*as ke from"three/webgpu";import{cameraViewMatrix as ln,modelWorldMatrix as gn,mrt as mn,positionLocal as un,uniform as cc,velocity as yn,vec4 as kn}from"three/tsl";var tc=class extends ke.TempNode{projection=cc(new ke.Matrix4);previousProjection=cc(new ke.Matrix4);previousView=cc(new ke.Matrix4);history=new WeakMap;constructor(){super("vec2"),this.updateType=ke.NodeUpdateType.RENDER}update({frameId:a,camera:e}){if(!e)return;let d=yn.projectionMatrix??e.projectionMatrix,t=this.history.get(e);t?t.frame!==a&&(t.frame=a,t.previousProjection.copy(t.projection),t.previousView.copy(t.view),t.projection.copy(d),t.view.copy(e.matrixWorldInverse)):(t={frame:a,projection:d.clone(),view:e.matrixWorldInverse.clone(),previousProjection:d.clone(),previousView:e.matrixWorldInverse.clone()},this.history.set(e,t)),this.projection.value.copy(t.projection),this.previousProjection.value.copy(t.previousProjection),this.previousView.value.copy(t.previousView)}setup(){let a=gn.mul(kn(un,1)),e=this.projection.mul(ln).mul(a),d=this.previousProjection.mul(this.previousView).mul(a);return e.xy.div(e.w).sub(d.xy.div(d.w))}},jn=new tc,dc=mn({velocity:jn});var Et=new WeakMap;function An(c){let a=Et.get(c);return a?a.clone():(Et.set(c,c.clone()),c)}var Nn=new Set(["uuid","id","name","version","userData","maskNode","_listeners","_cacheKey","_needsUpdate","isMaterial"]);function _e(){let c=new ee.BufferGeometry;return c.setAttribute("position",new ee.BufferAttribute(new Float32Array(3),3)),c.setAttribute("normal",new ee.BufferAttribute(new Float32Array(3),3)),c}var ab=class extends ee.Mesh{isVirtualMesh=!0;data;instanceCount;fullDetailTriangles;pool;entry;cameraGeometry=_e();shadowGeometry=_e();blendPart;cameraBlendGeometry=_e();shadowBlendGeometry=_e();blendSourceVersion=-1;lastShadowFrame=0;occluder;occlusionCulling=!0;gpuIndexOf;gpuToInput;dirtyCells=new Set;drawingShadow=!1;poolVersion=-1;ownMrt;velocityOutput=!1;deform;context;get maxDrawDistance(){let a=this.pool.readFlag(this.entry,"maxDrawDistance");return a>=jb?1/0:a}set maxDrawDistance(a){this.pool.writeFlags(this.entry,{maxDrawDistance:Number.isFinite(a)?Math.max(0,a):jb})}get minPixelRadius(){return this.pool.readFlag(this.entry,"minPixelRadius")}set minPixelRadius(a){this.pool.writeFlags(this.entry,{minPixelRadius:Math.max(0,a)})}get capacity(){return{meshlets:this.pool.capacity.meshlets,triangles:this.pool.capacity.triangles}}constructor(a,e,d,t,b={}){d=An(d);let n=_e();super(n,d),this.deform=b.deform,this.context=a,this.data=e,this.frustumCulled=!1,this.instanceCount=t.matrices.length/16,this.fullDetailTriangles=e.stats.leafTriangles*this.instanceCount,this.occluder=d.side!==ee.DoubleSide&&!d.transparent&&d.alphaTest===0&&!d.alphaHash,this.gpuToInput=vt(t.matrices,e.boundingSphere),this.gpuIndexOf=new Uint32Array(this.instanceCount);for(let f=0;f<this.instanceCount;f++)this.gpuIndexOf[this.gpuToInput[f]]=f;a.register(this,t),b.maxDrawDistance!==void 0&&(this.maxDrawDistance=b.maxDrawDistance),b.minPixelRadius!==void 0&&(this.minPixelRadius=b.minPixelRadius),Kb(d);let o=d;this.ownMrt=o.mrtNode??null;let s=oc(d.colorNode??vn).toVar(),g=f=>Mn(nc(f),nc(f.add(17.17)),nc(f.add(43.43))),i=rc(a.debugMode.equal(Ce.meshlets),g(ac.add(kb.mul(.618))),rc(a.debugMode.equal(Ce.lodLevel),g(ec.add(3)),g(kb)));d.colorNode=oc(rc(a.debugMode.equal(Ce.shaded),s.xyz.mul(bc),i),s.w),d.side===ee.DoubleSide&&!d.normalNode&&(d.normalNode=En(wn.mul(oc(Ze,0)).xyz.mul(xn))),this.blendPart=new ee.Mesh(this.cameraBlendGeometry,d.clone()),this.blendPart.name="lod blend",Object.assign(this.blendPart,{isVirtualMeshPart:!0}),this.blendPart.frustumCulled=!1,this.add(this.blendPart),this.syncBlendPart(),this.syncPool(),this.geometry=this.cameraGeometry,n.dispose(),this.onBeforeShadow=(f,m,r,y)=>{this.lastShadowFrame=a.frameCount,a.noteShadowCamera(y),this.drawingShadow=!0,this.geometry=this.shadowGeometry};let h=this.onBeforeRender;this.onBeforeRender=(...f)=>{this.drawingShadow?this.drawingShadow=!1:this.geometry=this.cameraGeometry,h.apply(this,f)};let l=!1;this.blendPart.onBeforeShadow=()=>{l=!0,this.blendPart.geometry=this.shadowBlendGeometry},this.blendPart.onBeforeRender=()=>{l?l=!1:this.blendPart.geometry=this.cameraBlendGeometry}}syncBlendPart(){let a=this.blendPart;a.castShadow=this.castShadow,a.receiveShadow=this.receiveShadow,a.renderOrder=this.renderOrder,a.layers.mask=this.layers.mask;let e=this.material,d=a.material,t=e.version!==this.blendSourceVersion;for(let b of Object.keys(e)){if(Nn.has(b))continue;let n=e[b],o=d[b];n&&typeof n=="object"&&typeof n.copy=="function"&&typeof n.equals=="function"&&o&&o!==n&&typeof o.copy=="function"?o.equals(n)||o.copy(n):o!==n&&(d[b]=n)}(t||!d.maskNode)&&(d.maskNode=e.maskNode?pn(e.maskNode).and(Sb()):Sb()),t&&(this.blendSourceVersion=e.version,d.needsUpdate=!0)}syncPool(){let a=this.pool;if(this.poolVersion===a.version||!a.positionNode)return;this.poolVersion=a.version;let e=this.entry.slot,d=[[this.cameraGeometry,a.cameraIndex,0,0],[this.shadowGeometry,a.shadowIndex,1,0],[this.cameraBlendGeometry,a.cameraIndex,0,1],[this.shadowBlendGeometry,a.shadowIndex,1,1]];for(let[t,b,n,o]of d)t.setIndex(b),t.setIndirect(a.drawArgsAttribute,a.drawArgsOffset(n,e,o));this.material.positionNode=this.deform?this.deform(a.positionNode,{instanceOrigin:$e}):a.positionNode,this.material.needsUpdate=!0,this.syncBlendPart()}setVelocityOutput(a){if(a===this.velocityOutput)return;this.velocityOutput=a;let e=this.material;e.mrtNode=a?this.ownMrt?this.ownMrt.merge(dc):dc:this.ownMrt,this.material.needsUpdate=!0,this.syncBlendPart()}markCutDirty(){this.pool.dirty=!0}setMatrixAt(a,e){let d=this.gpuIndexOf[a];this.pool.setMatrix(this.entry,d,e),this.dirtyCells.add(Math.floor(d/Ye))}commitInstances(){this.pool.commitInstances(this.entry,this.dirtyCells),this.dirtyCells.clear()}dispose(a){this.visible=!1,(a??this.context).unregister(this),this.removeFromParent()}async readStats(a){let e=await this.pool.readCounters(a);return{drawnTriangles:e.perMesh(0,this.entry.slot),shadowTriangles:e.perMesh(1,this.entry.slot)}}};import*as ba from"three/webgpu";var Mt={MeshPhysicalMaterial:[ba.MeshPhysicalMaterial,ba.MeshPhysicalNodeMaterial],MeshStandardMaterial:[ba.MeshStandardMaterial,ba.MeshStandardNodeMaterial],MeshPhongMaterial:[ba.MeshPhongMaterial,ba.MeshPhongNodeMaterial],MeshLambertMaterial:[ba.MeshLambertMaterial,ba.MeshLambertNodeMaterial],MeshBasicMaterial:[ba.MeshBasicMaterial,ba.MeshBasicNodeMaterial],MeshToonMaterial:[ba.MeshToonMaterial,ba.MeshToonNodeMaterial],MeshMatcapMaterial:[ba.MeshMatcapMaterial,ba.MeshMatcapNodeMaterial],MeshNormalMaterial:[ba.MeshNormalMaterial,ba.MeshNormalNodeMaterial]},In=[["isMeshPhysicalMaterial","MeshPhysicalMaterial"],["isMeshStandardMaterial","MeshStandardMaterial"],["isMeshPhongMaterial","MeshPhongMaterial"],["isMeshLambertMaterial","MeshLambertMaterial"],["isMeshBasicMaterial","MeshBasicMaterial"],["isMeshToonMaterial","MeshToonMaterial"],["isMeshMatcapMaterial","MeshMatcapMaterial"],["isMeshNormalMaterial","MeshNormalMaterial"]];function At(c){let a=c,e=Mt[c.type]?c.type:In.find(([d])=>a[d]===!0)?.[1];return e?Mt[e]:null}function hc(c){return c.isNodeMaterial===!0||At(c)!==null}function ic(c){if(c.isNodeMaterial)return c;let a=At(c);if(!a)return null;let[e,d]=a,t=new d,b=t.defines;return e.prototype.copy.call(t,c),t.defines=b,t}import*as se from"three/webgpu";import*as ve from"three/webgpu";var sc=1e-6,Nt=1e-4;function fc(c,a={}){let e=c.attributes.position,d=a.uvs??!0?c.attributes.uv:void 0,t=a.colors?c.attributes.color:void 0,b=a.normals==="keep"?c.attributes.normal:void 0,n=c.index,o=n?n.count:e.count,s=Math.max(0,Math.min(o,a.range?.start??0)),g=Math.floor((Math.min(o,s+(a.range?.count??o))-s)/3)*3,i=k=>n?n.getX(s+k):s+k,h=It(g,i,[{attribute:e,size:3,tolerance:sc}]),l=eb(h.firstVertex,e,3),f=null;if(!b){let k=new ve.BufferGeometry;k.setAttribute("position",new ve.BufferAttribute(l,3)),k.setIndex(new ve.BufferAttribute(h.indices,1)),k.computeVertexNormals(),f=k.attributes.normal.array}if(!d&&!t&&!b)return{positions:l,normals:f,indices:h.indices};let m=[{attribute:e,size:3,tolerance:sc}];d&&m.push({attribute:d,size:2,tolerance:sc}),b&&m.push({attribute:b,size:3,tolerance:Nt}),t&&m.push({attribute:t,size:3,tolerance:Nt});let r=It(g,i,m),y={positions:eb(r.firstVertex,e,3),normals:new Float32Array(0),indices:r.indices};if(b){y.normals=eb(r.firstVertex,b,3);for(let k=0;k<y.normals.length;k+=3){let p=Math.hypot(y.normals[k],y.normals[k+1],y.normals[k+2])||1;y.normals[k]/=p,y.normals[k+1]/=p,y.normals[k+2]/=p}}else{y.normals=new Float32Array(r.firstVertex.length*3);for(let k=0;k<r.firstVertex.length;k++){let p=h.indices[r.firstCorner[k]];y.normals.set(f.subarray(p*3,p*3+3),k*3)}}return d&&(y.uvs=eb(r.firstVertex,d,2)),t&&(y.colors=eb(r.firstVertex,t,3)),y}function eb(c,a,e){let d=new Float32Array(c.length*e);for(let t=0;t<c.length;t++)for(let b=0;b<e;b++)d[t*e+b]=a.getComponent(c[t],b);return d}function It(c,a,e){let d=e.reduce((m,r)=>m+r.size,0),t=e.map(({tolerance:m})=>{let r=Math.pow(10,Math.log10(1/m));return{multiplier:r,additive:m*.5*r}}),b=1;for(;b<c*2;)b<<=1;let n=b-1,o=new Int32Array(b).fill(-1),s=new Float64Array(c*d),g=new Float64Array(d),i=new Uint32Array(c),h=new Uint32Array(c),l=new Uint32Array(c),f=0;for(let m=0;m<c;m++){let r=a(m),y=0,k=0;for(let p=0;p<e.length;p++){let{attribute:v,size:u}=e[p],{multiplier:j,additive:w}=t[p];for(let E=0;E<u;E++,k++)g[k]=Math.trunc(v.getComponent(r,E)*j+w),y=y^Math.imul(g[k]|0,Rt[k%Rt.length])|0}for(y&=n;;){let p=o[y];if(p<0){o[y]=f,s.set(g,f*d),i[f]=r,h[f]=m,l[m]=f++;break}let v=!0;for(let u=0;u<d&&v;u++)v=s[p*d+u]===g[u];if(v){l[m]=p;break}y=y+1&n}}return{indices:l,firstVertex:i.slice(0,f),firstCorner:h.slice(0,f)}}var Rt=[73856093,19349663,83492791,2654435761,2246822519,3266489917,668265263,374761393,1181783497,3735928559,2028178513];function Rn(c){let a=c.reduce((h,l)=>h+l.mesh.positions.length/3,0),e=c.reduce((h,l)=>h+l.mesh.indices.length,0),d=new Float32Array(a*3),t=new Float32Array(a*3),b=new Float32Array(a*3),n=c.some(h=>h.mesh.uvs)?new Float32Array(a*2):null,o=new Uint32Array(e),s=new ve.Color,g=0,i=0;for(let{mesh:h,color:l=16777215}of c){let f=h.positions.length/3;if(d.set(h.positions,g*3),t.set(h.normals,g*3),n&&h.uvs&&n.set(h.uvs,g*2),h.colors)b.set(h.colors,g*3);else{s.set(l);for(let m=0;m<f;m++)b.set([s.r,s.g,s.b],(g+m)*3)}for(let m=0;m<h.indices.length;m++)o[i+m]=h.indices[m]+g;g+=f,i+=h.indices.length}return n?{positions:d,normals:t,colors:b,uvs:n,indices:o}:{positions:d,normals:t,colors:b,indices:o}}var zn=Db,pb=new WeakSet;function Fn(c){let a=c;if(!a.isMesh)return"not a mesh";if(a.isVirtualMesh||a.isVirtualMeshPart)return"already a VirtualMesh";if(a.isSkinnedMesh)return"skinned";if(a.isBatchedMesh)return"batched";let e=a.geometry;if(!e?.attributes?.position||e.isInstancedBufferGeometry)return"unsupported geometry";let d=e.morphAttributes;return(d.position?.length??0)>0||(d.normal?.length??0)>0||(a.morphTargetInfluences?.length??0)>0?"morph targets":(Array.isArray(a.material)?a.material:[a.material]).some(b=>!b||!hc(b))?"material without a node equivalent":null}function zt(c,a){c.updateWorldMatrix(!0,!0);let e=new Map,d=[],t=[],b=new se.Matrix4,n=new se.Matrix4,o=new se.Color;c.traverse(g=>{if(!g.isMesh||pb.has(g))return;let i=g,h=Fn(i)??(a&&!a(i)?"filtered out":null);if(h){t.push({object:i,reason:h});return}let l=i.geometry,f=Array.isArray(i.material)?i.material:[i.material],m=Tn(l,Array.isArray(i.material));if(m.length===0)return;d.push(i);let r=i.isInstancedMesh?i:null,y=r?r.count:1,k=On(i);for(let{start:p,count:v,materialIndex:u}of m){let j=f[u];if(!j)continue;let w=j.vertexColors===!0&&l.attributes.color!==void 0,E=[l.id,p,v,j.uuid,i.castShadow,i.receiveShadow,k,i.renderOrder,i.layers.mask].join(":"),A=e.get(E);A||(A={geometry:l,range:{start:p,count:v},material:j,matrices:new Float32Array(0),colors:null,instances:[],vertexColors:w,castShadow:i.castShadow,receiveShadow:i.receiveShadow,visible:k,renderOrder:i.renderOrder,layers:i.layers.mask,name:i.name,userData:{...i.userData},matrixList:[],colorList:null},e.set(E,A));for(let N=0;N<y;N++){r?(r.getMatrixAt(N,b),n.multiplyMatrices(i.matrixWorld,b)):n.copy(i.matrixWorld),A.matrixList.push(...n.elements);let M=!!r?.instanceColor;M&&r.getColorAt(N,o),M&&!A.colorList&&(A.colorList=new Array(A.instances.length*4).fill(1)),A.colorList&&(M?A.colorList.push(o.r,o.g,o.b,1):A.colorList.push(1,1,1,1)),A.instances.push({object:i,index:r?N:-1})}}});let s=[];for(let{matrixList:g,colorList:i,...h}of e.values())h.matrices=Float32Array.from(g),h.colors=i?Float32Array.from(i):null,s.push(h);return{groups:s,meshes:d,skipped:t}}function Tn(c,a){let e=c.index?c.index.count:c.attributes.position.count,d=Math.max(0,c.drawRange.start),t=Math.min(e,d+c.drawRange.count),b=a?c.groups:[{start:0,count:e,materialIndex:0}],n=[];for(let o of b){let s=Math.max(o.start,d),g=Math.min(o.start+o.count,t);g-s>=3&&n.push({start:s,count:g-s,materialIndex:o.materialIndex??0})}return n}function On(c){for(let a=c;a;a=a.parent)if(!a.visible)return!1;return!0}var wb=class{constructor(a,e){this.context=a;this.object.name="VirtualGeometryImport",this.groups=e.groups,this.skipped=e.skipped,this.stats.sourceMeshes=e.meshes.length,this.stats.instances=e.groups.reduce((d,t)=>d+t.instances.length,0)}context;object=new se.Group;meshes=[];groups;skipped;stats={sourceMeshes:0,instances:0,uniqueGeometries:0,buildMs:0};hidden=new Map;detached=new Map;hide(a,e){let d=new Set;for(let t of a){if(pb.add(t),t.children.length===0&&t.parent){this.detached.set(t,t.parent),d.add(t.parent),t.parent.remove(t);continue}this.hidden.has(t)||this.hidden.set(t,t.layers.mask),t.layers.disableAll()}for(let t of d)for(;t!==e&&t.children.length===0&&t.parent&&(t.type==="Group"||t.type==="Object3D");){let b=t.parent;this.detached.set(t,b),b.remove(t),t=b}}worldMatrixOf(a){let e=this.detached.get(a);return e?(a.updateMatrix(),a.matrixWorld.multiplyMatrices(this.worldMatrixOf(e),a.matrix)):(a.updateWorldMatrix(!0,!1),a.matrixWorld)}syncTransforms(){let a=new se.Matrix4,e=new se.Matrix4,d=new Set;this.groups.forEach((t,b)=>{let n=this.meshes[b];t.instances.forEach(({object:o,index:s},g)=>{d.has(o)||(this.worldMatrixOf(o),d.add(o)),s>=0?(o.getMatrixAt(s,e),a.multiplyMatrices(o.matrixWorld,e)):a.copy(o.matrixWorld),n.setMatrixAt(g,a)}),n.commitInstances()})}dispose(){for(let a of this.meshes)a.dispose(this.context),a.material.dispose(),a.geometry.dispose();this.meshes.length=0;for(let[a,e]of this.hidden)a.layers.mask=e,pb.delete(a);this.hidden.clear();for(let[a,e]of this.detached)e.add(a),pb.delete(a);this.detached.clear(),this.object.removeFromParent()}};async function lc(c,a,e={}){let d=performance.now(),t=e.builder??zn,b=zt(a,e.filter),n=new wb(c,b),o=new Map,s=m=>`${m.geometry.id}:${m.range.start}:${m.range.count}:${m.vertexColors}`;for(let m of n.groups){let r=s(m);o.has(r)||o.set(r,{group:m,triangles:m.range.count/3})}n.stats.uniqueGeometries=o.size;let g=[...o.values()].reduce((m,r)=>m+r.triangles,0)||1,i=0;for(let m of o.values()){let{geometry:r,range:y,vertexColors:k}=m.group,p=fc(r,{range:y,colors:k,normals:r.attributes.normal?"keep":"compute"});m.data=await t(p,{...e.build,onProgress:v=>e.onProgress?.((i+v*m.triangles)/g)}),i+=m.triangles}let h=new Map,l=[],f=new Set;for(let m of n.groups){let r=Bn(m,e,h);if(!r){for(let{object:p}of m.instances)f.add(p);continue}let y=typeof e.mesh=="function"?e.mesh(m):e.mesh,k=c.createMesh(o.get(s(m)).data,r,{matrices:m.matrices,colors:m.colors??void 0},y);k.matrixAutoUpdate=!1,k.matrixWorldAutoUpdate=!1,k.name=m.name,k.userData={...m.userData},k.castShadow=m.castShadow,k.receiveShadow=m.receiveShadow,k.visible=m.visible,k.renderOrder=m.renderOrder,k.layers.mask=m.layers,n.meshes.push(k),l.push(m),n.object.add(k)}return n.groups=l,(e.replace??!0)&&(n.hide(b.meshes.filter(m=>!f.has(m)),a),a.add(n.object)),await e.onProgress?.(1),n.stats.buildMs=performance.now()-d,n}function Bn(c,a,e){let d=c.material,t=!!(d.normalMap&&c.geometry.attributes.tangent&&d.normalMap.flipY===!1),b=`${d.uuid}:${t}`;if(e.has(b))return e.get(b);let n;if(a.material?n=a.material(d,c):(n=ic(d),n===d&&(n=d.clone())),n&&t){let o=n.normalScale;o&&(n.normalScale=o.clone().setY(-o.y))}return e.set(b,n),n}import*as Aa from"three/webgpu";import{uniform as Ua,velocity as Kn}from"three/tsl";import*as Ma from"three/webgpu";import{Fn as Ft,If as Tt,Return as Ot,ceil as Gn,clamp as Be,exp2 as Dn,float as gc,floor as Ge,instanceIndex as Bt,int as Gt,ivec2 as Un,log2 as Cn,max as Sn,min as Hn,storage as Dt,texture as Vn,uint as be,uniform as Pn}from"three/tsl";var mc=16,Ut=mc*4+4,Ct=mc*4,St=64,Jn=[],Ht=c=>c.reduce((a,e)=>a+e,0)/c.length,bb=Hn,fe=Sn,xb=class{enabled=!0;auto=!0;autoProbeFrames=40;autoHoldFrames=900;autoChoice=!1;phase="hold";phaseFrames=this.autoHoldFrames-120;samples=[];offMean=0;lastTick=0;resolutionScale=.5;maxSize;active=!1;activeNode=Pn(0,"uint");depthScene=new Ma.Scene;proxies=new Map;projection;near;levelCapacity;levelOffsets=[];hzbAttribute;hzbWrite;hzbRead;buildNodes=[];renderTarget=null;width=0;height=0;levels=0;bufferSize=new Ma.Vector2;constructor(a,e,d=1024){this.maxSize=Math.max(1,Math.min(1<<mc-1,d)),this.projection=a,this.near=e;let t=this.maxSize,b=Ut,n=0;for(;this.levelOffsets.push(b),b+=t*t,n++,t!==1;)t=Math.ceil(t/2);this.levelCapacity=n,this.hzbAttribute=new Ma.StorageBufferAttribute(new Float32Array(b),1),this.hzbWrite=Dt(this.hzbAttribute,"float",b),this.hzbRead=Dt(this.hzbAttribute,"float",b).toReadOnly()}occluded(a,e){let d=this.projection,t=a.z.negate(),b=t.sub(e).toVar(),n=t.add(e),o=a.x.sub(e),s=a.x.add(e),g=a.y.sub(e),i=a.y.add(e),h=d.element(0).x,l=d.element(1).y,f=bb(o.div(b),o.div(n)).mul(h).sub(d.element(2).x),m=fe(s.div(b),s.div(n)).mul(h).sub(d.element(2).x),r=bb(g.div(b),g.div(n)).mul(l).sub(d.element(2).y),y=fe(i.div(b),i.div(n)).mul(l).sub(d.element(2).y),k=d.element(3).z.div(b).sub(d.element(2).z),p=b.lessThanEqual(this.near),v=this.hzbRead,u=v.element(1),j=v.element(2),w=gc(0),E=Be(Ge(f.mul(.5).add(.5).mul(u)),w,u.sub(1)),A=Be(Ge(m.mul(.5).add(.5).mul(u)),w,u.sub(1)),N=Be(Ge(gc(.5).sub(y.mul(.5)).mul(j)),w,j.sub(1)),M=Be(Ge(gc(.5).sub(r.mul(.5)).mul(j)),w,j.sub(1)),I=fe(A.sub(E),M.sub(N)).add(1),z=bb(Gn(Cn(I)),v.element(Ct).sub(1)),T=be(z).mul(4),x=Dn(z),U=v.element(T),G=v.element(T.add(1)),F=v.element(T.add(2)),B=(P,V)=>{let q=Be(Ge(P.div(x)),w,G.sub(1)),Y=Be(Ge(V.div(x)),w,F.sub(1));return v.element(be(U.add(Y.mul(G)).add(q)))},H=fe(fe(B(E,N),B(A,N)),fe(B(E,M),B(A,M)));return p.not().and(k.lessThan(1)).and(k.greaterThan(H.add(1e-6)))}tick(a){let e=this.lastTick?a-this.lastTick:0;this.lastTick=a,!(!this.auto||!this.enabled)&&(this.phaseFrames++,this.phase!=="hold"&&this.phaseFrames>5&&e>0&&e<250&&this.samples.push(e),this.phase==="probeOff"&&this.samples.length>=this.autoProbeFrames?(this.offMean=Ht(this.samples),this.next("probeOn")):this.phase==="probeOn"&&this.samples.length>=this.autoProbeFrames?(this.autoChoice=Ht(this.samples)<this.offMean*.97,this.next("hold")):this.phase==="hold"&&this.phaseFrames>=this.autoHoldFrames&&this.next("probeOff"))}next(a){this.phase=a,this.phaseFrames=0,this.samples=[]}autoWanted(){return this.phase==="probeOn"||this.phase==="hold"&&this.autoChoice}proxyOf(a){let e=this.proxies.get(a);e||(e=new Ma.Mesh(a.cameraGeometry,new Ma.MeshBasicNodeMaterial({colorWrite:!1})),e.frustumCulled=!1,this.depthScene.add(e),this.proxies.set(a,e));let d=e.material;return d.positionNode!==a.pool.positionNode&&(d.positionNode=a.pool.positionNode,d.needsUpdate=!0),e}unregisterMesh(a){let e=this.proxies.get(a);e&&(this.proxies.delete(a),e.removeFromParent(),e.material.dispose())}wantsFrame(a,e,d){let t=a,b=e.isPerspectiveCamera&&!t.reversedDepthBuffer&&!t.logarithmicDepthBuffer;return this.enabled&&b&&(!this.auto||this.autoWanted())}beginFrame(a,e,d){let t=!1;for(let i of d){let h=i.visible&&i.occluder&&i.pool.hasCut&&!!i.pool.positionNode;if(!h&&!this.proxies.has(i))continue;let l=this.proxyOf(i);l.visible=h,t=t||h}if(this.active=t,this.activeNode.value=t?1:0,!t)return Jn;a.getDrawingBufferSize(this.bufferSize);let b=Math.min(this.resolutionScale,this.maxSize/Math.max(this.bufferSize.x,this.bufferSize.y)),n=Math.max(1,Math.round(this.bufferSize.x*b)),o=Math.max(1,Math.round(this.bufferSize.y*b));(n!==this.width||o!==this.height)&&this.resize(n,o);let s=a.getRenderTarget(),g=a.getMRT();return a.setMRT(null),a.setRenderTarget(this.renderTarget),a.render(this.depthScene,e),a.setRenderTarget(s),a.setMRT(g),this.buildNodes}resize(a,e){let d=this.buildNodes;this.renderTarget?.dispose();let t=new Ma.DepthTexture(a,e);t.type=Ma.FloatType,this.renderTarget=new Ma.RenderTarget(a,e,{depthBuffer:!0,depthTexture:t}),this.width=a,this.height=e;let b=this.hzbAttribute.array;b.fill(0,0,Ut);let n=a,o=e,s=0;for(let l=0;l<this.levelCapacity&&(b[l*4]=this.levelOffsets[l],b[l*4+1]=n,b[l*4+2]=o,s++,!(n===1&&o===1));l++)n=Math.max(1,Math.ceil(n/2)),o=Math.max(1,Math.ceil(o/2));this.levels=s,b[Ct]=s,this.hzbAttribute.needsUpdate=!0;let g=Vn(t),i=this.hzbWrite,h=Ft(()=>{let l=Bt,f=be(i.element(1)),m=be(i.element(2));Tt(l.greaterThanEqual(f.mul(m)),()=>{Ot()});let r=l.mod(f),y=l.div(f),k=be(i.element(0)).toVar();i.element(k.add(l)).assign(g.load(Un(Gt(r),Gt(y))))})().compute(a*e,[St]);this.buildNodes=[h],n=a,o=e;for(let l=1;l<s;l++)n=Math.max(1,Math.ceil(n/2)),o=Math.max(1,Math.ceil(o/2)),this.buildNodes.push(Ft(()=>{let f=Bt,m=be(i.element(l*4)).toVar(),r=be(i.element(l*4+1)),y=be(i.element(l*4+2));Tt(f.greaterThanEqual(r.mul(y)),()=>{Ot()});let k=f.mod(r),p=f.div(r),v=be(i.element((l-1)*4)).toVar(),u=be(i.element((l-1)*4+1)),j=be(i.element((l-1)*4+2)),w=k.mul(2),E=p.mul(2),A=bb(w.add(1),u.sub(1)),N=bb(E.add(1),j.sub(1)),M=v.add(E.mul(u)),I=v.add(N.mul(u)),z=fe(fe(i.element(M.add(w)),i.element(M.add(A))),fe(i.element(I.add(w)),i.element(I.add(A))));i.element(m.add(f)).assign(z)})().compute(n*o,[St]));for(let l of d)l.dispose()}dispose(){this.renderTarget?.dispose(),this.renderTarget=null;for(let a of[...this.proxies.keys()])this.unregisterMesh(a)}};var uc=45,qn=1.03,Wn=1.01,Ln=new Aa.Vector3,Xn=(c,a)=>c*Math.pow(a/.82,.25),yc=class{viewMatrix=Ua(new Aa.Matrix4);projectionMatrix=Ua(new Aa.Matrix4);projScale=Ua(1);near=Ua(.1);errorThreshold=Ua(1);lodBlend=2;lodBlendTemporal=!1;lodBlendMax=Ua(2);lodScaleLimit=Ua(64);triangleBudget=0;thresholdRange=[.5,3];maxErrorThreshold=64;lastStats=null;statsInterval=10;frameCount=0;outOfBand=0;thresholdTarget=null;thresholdWritten=NaN;statsThreshold=1;statsPending=!1;frustumCulling=Ua(1,"uint");debugMode=Ua(0,"uint");minPixelRadius=Ua(.7);frustumPlanes=Array.from({length:6},()=>Ua(new Aa.Vector4));shadowSweep=Ua(new Aa.Vector3);autoShadowSweep=!0;shadowErrorScale=Ua(3);detectedSweep=new Aa.Vector3;detectedSweepFrame=-1/0;occlusion=new xb(this.projectionMatrix,this.near);freeze=!1;autoUpdate=!0;errorInCssPixels=!0;meshes=[];pools=[];capacity;maxPoolBytes;constructor(a={}){this.capacity={triangles:a.maxTriangles??1e7,shadowTriangles:a.maxShadowTriangles??4e6,meshlets:Math.min(a.maxMeshlets??1<<20,1<<24)},this.maxPoolBytes=a.maxPoolBytes??120*1024*1024}frustum=new Aa.Frustum;projScreen=new Aa.Matrix4;size=new Aa.Vector2;computeList=[];dispatchedPools=[];skippedFrames=0;cutInputs=new Float64Array(uc).fill(NaN);cutInputsScratch=new Float64Array(uc);sceneHooks=new WeakMap;autoCall=-1;autoCamera=null;manualCall=-1;manualCamera=null;updatingAuto=!1;add(a,e){return lc(this,a,e)}createMesh(a,e,d,t){return new ab(this,a,e,d,t)}asyncCompile=!0;compilePool(a,e){e.pipelineState="compiling";let d=e.version,t=()=>{e.version===d&&(e.pipelineState="ready",e.dirty=!0)};a.compileComputeAsync(e.computeNodes).then(t,t)}preparePools(a){this.checkDeviceLimits(a);for(let e of this.pools)e.disabled||e.prepare(a);for(let e of this.meshes)e.syncPool()}checkedPools=new WeakSet;checkDeviceLimits(a){let e=a.backend.device;if(!e)return;let d=Math.min(e.limits.maxStorageBufferBindingSize,e.limits.maxBufferSize);for(let t of this.pools){if(this.checkedPools.has(t)||(this.checkedPools.add(t),t.maxBytes<=d))continue;t.disabled=!0;let b=this.meshes.filter(o=>o.pool===t);for(let o of b)o.visible=!1;let n=o=>`${Math.round(o/2**20)} MB`;console.error(`three-virtual-geometry: ${b.map(o=>`"${o.name||"mesh"}"`).join(", ")} needs ${n(t.maxBytes)} in a single GPU buffer, but this device allows ${n(d)}, so it is not drawn. Create the renderer with new WebGPURenderer({ requiredLimits: await virtualGeometryLimits() }) to use the GPU's full limits, or use a lighter version of the mesh.`)}}async compileAsync(a,e,d){this.preparePools(a);let t=this.pools.filter(b=>!b.disabled&&b.pipelineState!=="ready");for(let b of t)b.pipelineState="compiling";await Promise.all(t.map(b=>a.compileComputeAsync(b.computeNodes).catch(()=>{})));for(let b of t)b.pipelineState="ready",b.dirty=!0;await a.compileAsync(e,d)}noteShadowCamera(a){if(this.detectedSweepFrame===this.frameCount)return;let e=a;if(!e.isOrthographicCamera)return;let d=Math.max(e.top-e.bottom,e.right-e.left)/e.zoom;a.getWorldDirection(this.detectedSweep).multiplyScalar(d),this.detectedSweepFrame=this.frameCount}register(a,e){let d=e.matrices.length/16,t=Qe.bytesOf(a.data),b=t>this.maxPoolBytes,n=b?void 0:this.pools.find(o=>!o.dedicated&&o.fits(a.data,d));n||(n=new Qe(this,this.capacity,b?Math.ceil(t*1.01):this.maxPoolBytes),n.dedicated=b,this.pools.push(n)),a.pool=n,a.entry=n.add(a.data,e.matrices,e.colors,a.gpuToInput),n.ensureBuilt(),this.meshes.push(a),a.onBeforeRender=(o,s,g)=>this.autoUpdateFor(o,s,g,!1)}autoUpdateFor(a,e,d,t){if(!this.autoUpdate||this.meshes.length===0||e.overrideMaterial&&e.overrideMaterial.isShadowPassMaterial)return;if(!t&&e.isScene){if(e.onBeforeRender===this.sceneHooks.get(e))return;let n=e.onBeforeRender,o=this,s=function(g,i,h,...l){o.autoUpdateFor(g,i,h,!0),n.call(this,g,i,h,...l)};e.onBeforeRender=s,this.sceneHooks.set(e,s)}let b=a.info.render.calls;if(!(d===this.autoCamera&&b===this.autoCall)&&!(d===this.manualCamera&&b===this.manualCall+1)){this.autoCall=b,this.autoCamera=d,this.updatingAuto=!0;try{this.update(a,d)}finally{this.updatingAuto=!1}}}unregister(a){let e=this.meshes.indexOf(a);e!==-1&&(this.meshes.splice(e,1),a.pool.remove(a.entry),this.occlusion.unregisterMesh(a))}dispose(){for(let a of[...this.meshes])a.dispose(this);for(let a of this.pools)a.dispose();this.pools.length=0,this.occlusion.dispose()}update(a,e){if(this.updatingAuto||(this.manualCall=a.info.render.calls,this.manualCamera=e),this.freeze)return;this.occlusion.tick(performance.now()),this.stepThreshold();let d=Math.max(1,this.lodBlend);this.lodBlendMax.value!==d&&(this.lodBlendMax.value=d);let t=this.lodBlendTemporal?this.frameCount%64:0;ib.value!==t&&(ib.value=t);let b=Math.max(1,this.maxErrorThreshold/this.errorThreshold.value);this.lodScaleLimit.value!==b&&(this.lodScaleLimit.value=b);let n=!!a.getMRT()?.outputNodes?.velocity;for(let m of this.meshes)m.setVelocityOutput(n),m.syncBlendPart();e.updateMatrixWorld(),this.viewMatrix.value.copy(e.matrixWorldInverse);let o=Kn.projectionMatrix??e.projectionMatrix;this.projectionMatrix.value.equals(o)||this.projectionMatrix.value.copy(o),a.getDrawingBufferSize(this.size);let s=this.size.y/(this.errorInCssPixels?a.getPixelRatio():1),g=o.elements[5]*s*.5;this.projScale.value!==g&&(this.projScale.value=g),this.near.value!==e.near&&(this.near.value=e.near),this.projScreen.multiplyMatrices(o,e.matrixWorldInverse),this.frustum.setFromProjectionMatrix(this.projScreen,Aa.WebGPUCoordinateSystem);for(let m=0;m<6;m++){let{normal:r,constant:y}=this.frustum.planes[m],k=this.frustumPlanes[m].value;(k.x!==r.x||k.y!==r.y||k.z!==r.z||k.w!==y)&&k.set(r.x,r.y,r.z,y)}if(this.autoShadowSweep){let m=this.frameCount-this.detectedSweepFrame<=2?this.detectedSweep:Ln;this.shadowSweep.value.equals(m)||this.shadowSweep.value.copy(m)}let i=this.occlusion.wantsFrame(a,e,this.frameCount);for(let m of this.meshes)m.pool.writeFlags(m.entry,{enabled:m.visible?1:0,shadow:m.castShadow&&this.frameCount-m.lastShadowFrame<=2?1:0,occlusion:i&&m.occlusionCulling?1:0});if(this.cutInputsChanged(e,o,a.getPixelRatio()))for(let m of this.pools)m.dirty=!0;for(let m of this.pools)m.controllerActive&&(m.dirty=!0);this.preparePools(a);let h=this.computeList;h.length=0;let l=this.dispatchedPools;l.length=0;for(let m of this.pools)if(!(m.disabled||!m.dirty||m.entries.length===0)){if(m.pipelineState!=="ready"){if(this.asyncCompile){m.pipelineState==="none"&&this.compilePool(a,m);continue}m.pipelineState="ready"}for(let r of m.computeNodes)h.push(r);l.push(m)}if(h.length>0){let m=i?this.occlusion.beginFrame(a,e,this.meshes):[];m.length&&h.unshift(...m),a.compute(h);for(let r of l)r.dirty=!1,r.hasCut=!0}else this.skippedFrames++;this.frameCount++;let f=this.thresholdTarget!==null?Math.min(2,this.statsInterval):this.statsInterval;this.meshes.length>0&&!this.statsPending&&this.frameCount%f===0&&(this.statsPending=!0,this.statsThreshold=this.errorThreshold.value,this.readStats(a).then(m=>{this.lastStats=m,this.triangleBudget>0&&this.adaptThreshold(m)}).finally(()=>this.statsPending=!1))}cutInputsChanged(a,e,d){let t=this.cutInputsScratch,b=0;for(let o=0;o<16;o++)t[b++]=a.matrixWorldInverse.elements[o];for(let o=0;o<16;o++)t[b++]=e.elements[o];t[b++]=a.near,t[b++]=this.size.x,t[b++]=this.size.y,t[b++]=d,t[b++]=this.errorInCssPixels?1:0,t[b++]=this.errorThreshold.value,t[b++]=this.lodBlend,t[b++]=this.minPixelRadius.value,t[b++]=this.frustumCulling.value,t[b++]=this.debugMode.value;let n=this.shadowSweep.value;t[b++]=n.x,t[b++]=n.y,t[b++]=n.z;for(let o=0;o<uc;o++)if(t[o]!==this.cutInputs[o])return this.cutInputs.set(t),!0;return!1}adaptThreshold(a){let e=this.statsThreshold,d=this.errorThreshold.value,t=a.capacityUse;if(this.thresholdTarget!==null&&this.thresholdTarget<d&&t>=.75&&(this.thresholdTarget=null),a.drawnTriangles<=0)return;let b=a.drawnTriangles/this.triangleBudget;if(Math.abs(b-1)<.15){this.outOfBand=0;return}if(++this.outOfBand<2)return;let[n,o]=this.thresholdRange,s=Math.min(o,Math.max(n,e*Math.sqrt(b)));s<e&&(s=Math.max(s,Xn(e,t))),this.glideTo(s)}glideTo(a){this.thresholdTarget=a===this.errorThreshold.value?null:a}stepThreshold(){let a=this.errorThreshold.value;a!==this.thresholdWritten&&!Number.isNaN(this.thresholdWritten)&&(this.thresholdTarget=null);let e=this.thresholdTarget;if(e!==null){let d=e>a?Math.min(e,a*qn):Math.max(e,a/Wn);this.errorThreshold.value=d,d===e&&(this.thresholdTarget=null)}this.thresholdWritten=this.errorThreshold.value}async readStats(a){let e={drawnMeshlets:0,drawnTriangles:0,fullDetailTriangles:0,instances:0,visibleInstances:0,requestedTriangles:0,overflow:!1,capacityUse:0,occludedInstances:0,shadowTriangles:0,thresholdScale:1};for(let d of this.meshes)d.visible&&(e.fullDetailTriangles+=d.fullDetailTriangles,e.instances+=d.instanceCount);for(let d of this.pools){if(!d.hasCut)continue;let t=await d.readCounters(a),b=d.capacity;e.drawnMeshlets+=t.camera.drawn,e.drawnTriangles+=Math.min(t.camera.requestedTriangles,b.triangles),e.requestedTriangles+=t.camera.requestedTriangles,e.visibleInstances+=t.camera.survived,e.occludedInstances+=t.occluded,e.shadowTriangles+=Math.min(t.shadow.requestedTriangles,b.shadowTriangles),e.thresholdScale=Math.max(e.thresholdScale,t.scale[0]),(t.camera.selected>b.meshlets||t.camera.requestedTriangles>b.triangles)&&(e.overflow=!0),(t.shadow.selected>b.meshlets||t.shadow.requestedTriangles>b.shadowTriangles)&&(e.overflow=!0),e.capacityUse=Math.max(e.capacityUse,t.camera.requestedTriangles/b.triangles,t.camera.selected/b.meshlets,t.shadow.requestedTriangles/b.shadowTriangles,t.shadow.selected/b.meshlets)}return e}};async function Yn(c={}){let a=typeof navigator<"u"?navigator.gpu:void 0,e=a?await a.requestAdapter({powerPreference:c.powerPreference}).catch(()=>null):null;return e?{maxStorageBufferBindingSize:e.limits.maxStorageBufferBindingSize,maxBufferSize:e.limits.maxBufferSize}:{}}export{$a as LOD_FADE_STEPS,Rc as MAX_MESHLET_TRIANGLES,Mb as MAX_MESHLET_VERTICES,Wc as VG_BUILD_VERSION,Ce as VG_DEBUG_MODES,Ne as VG_FORMAT_VERSION,yc as VirtualGeometry,wb as VirtualGeometryImport,ab as VirtualMesh,sa as VirtualMeshFormatError,Kb as bindVirtualGeometryTextures,Je as buildVirtualMesh,Db as buildVirtualMeshCached,hc as canConvertToNodeMaterial,vd as clearVirtualMeshCache,zt as collectVirtualGeometryGroups,Ke as decodeVirtualMesh,Bb as encodeVirtualMesh,fc as fromBufferGeometry,Sd as instanceGuaranteedRange,Cd as instanceMeshletRange,sd as loadVirtualMesh,Hb as lodFadeRange,Rn as mergeSources,Nb as partitionMeshlets,Gd as selectBlendCut,Bd as selectCut,ic as toNodeMaterial,Ud as verifyCutCoverage,Dd as verifyCutOverlap,$e as vgInstanceOrigin,Jb as vgNormalMap,qe as vgTexture,we as vgUv,Ze as vgWorldNormal,Yn as virtualGeometryLimits,Lc as virtualMeshCacheKey,lc as virtualMeshesFromObject3D};
//# sourceMappingURL=three-virtual-geometry.min.js.map