From d8902569a70e34a12baf61ca88d3420304963029 Mon Sep 17 00:00:00 2001 From: syui Date: Thu, 20 Nov 2025 12:57:07 +0900 Subject: [PATCH] add atmosphere --- static/pkg/atmosphere/assets/card.glb | Bin 0 -> 1545912 bytes .../pkg/atmosphere/assets/index-BwPYqd7E.js | 10078 ++++++++++++++++ .../pkg/atmosphere/assets/index-DiUrG-eg.css | 1 + static/pkg/atmosphere/index.html | 14 + 4 files changed, 10093 insertions(+) create mode 100644 static/pkg/atmosphere/assets/card.glb create mode 100644 static/pkg/atmosphere/assets/index-BwPYqd7E.js create mode 100644 static/pkg/atmosphere/assets/index-DiUrG-eg.css create mode 100644 static/pkg/atmosphere/index.html diff --git a/static/pkg/atmosphere/assets/card.glb b/static/pkg/atmosphere/assets/card.glb new file mode 100644 index 0000000000000000000000000000000000000000..d2032685a41c5962024be1699738f6ba14b6be39 GIT binary patch literal 1545912 zcmeEvcT|(<)^F5N#>&iCuuvR85$PqAP)9_RE>${62|bjA(7|z(5e1aqK@pHHB_JI| z4ISyy0tzJb7J9wU`^K5$cV z9Y!D&HPuwTSj}8rEwQX9FIKdrqos=(7URN-VpXzs!8l@E&!fSV^H=OG9W5+f&fnlu zJMSjUE66J*#LCU;X6fQ;gK-3d1$p^deYjaI-LaOA&?8rES4#_4lmV;Kbqx~-GpwbH zjhVfxiK~;PInLh9h1H0g)zutq#){(q^2rs9_F{E3a{$j+HR12LSsgJJme3dcMm}K1 zAOG@Vb+B}`hNpfRFK6ar!OPDt0BCZ-V9l^FQ3m|HqWq!){32q4Vj^PVNKvF9H$U{h zzdVLl|C36X5DN_Mw!NjMjRnL8)&*w?wx`i{1#IGU+eO6^Yi4h6W3GY0p{*S)T>+V1 zthdcvE#)xw7#A&o1kMGp;>BtMfO7}L0(cz0%(-S}4r2^>cll%bpU-%aK0e%Dtbaqm zKhTBN{TIlBZ~j2}Ur-|812*`Bn`?j@M~sVunf+f$7KB7&W)BGoK!!vLBE^M-MZ`q} z#6^){h5rb`A1nbu2=XIE1%$-~1Ox>Ig^{9S;y?=j-7^6o_BXw9rg=l_hMFp@ma1wRD!(YRq6D~Ewd8Nfsi|pPHQ{GP2?An)I@p*)Q-r`yUkn4* z4q%4=VnJbU);|_R{?7$PzFtuD>jedTV5P>=^boQkpciHiPWG0-wjrCt;9Sfh$wIpJ zcV7tnt1kc(e?J3=;_tr@hETO}FhhR%R~Xd{eQ8gAm*<#fjIx0nSY%KEa|_Qh-QV5 zGBXGI;fisg3GHj10p;cx2Pcf9r6ZPx7*aqG=(afq=Lr0_AjFv&@HGYkykfxH2?>ac z2?&ac3X34cfW7hai_`vyii!w}2_nS=xdnNVU_%ER;KB`f{%#UC4{ZpRCLbMnIibID z_n)cychdnj|B0!8Oc(si?!b)xIvsupVH2$&xFsZ*T@ZWIhiuDiO{aTk{ z|8v^|YpHDMh{l3*Tu>MY33{MrWd#Q!kj%_n&`?YwBrGlhdmP$Y|9LLF*nc})K;)lx z78d(o?ETM^MIb)D-Wv9Z|AKHNQivZozpvRA<%hlTznJhBl#oF6zzSb)_`gC5DIzHR zznK3QtdPKq{4eJJGg?Ryk$>L)-{B>U&cs)$&+`Dzf- zgFokG|IKHaug3hV&ws2_^VK^4{P~Z$(DQ%wx%yBKo8%w#eDzu8Uwr;!JiOPJG4T3- z_nF2A^wa;#{{CO+{^R#QM*Pi~FLVCKn17o8x9j}#n7>;GJp0?Z(DT0=U;Qt}L(l(d z{2%}R`Zx6X@BV(x+t;7Jo(nzy0DjXAgm4M{iues)0bz zjUo_-?tOm%Jb7Ql41ho!bh@tRia;Pcp}%{KEyunGnuWM=^%pJo`03u)2mNJ#sF5Y4 zPgNHY_V2H~)1>v-uZ7Uf2xdZmYSMED_s~8f<`wP(t%U!4cf{k%r|(ZMe);qR|LB*I z=S}PO(H_dyJf@?4^7sFl{>#8Ua?D>o?fteOgv2)tVSV_fHZTm|ECq%E@y$8FIDB&s z-<-q$y<@cYnoywx?U)`$hU`le_;zLk_4>bu@3*)I#Kqr2J=kS^JHWmjVBeA=SO>m2 zSQrMxx6~KL;am9thT)rY_~sn`e-4(0t>$)or*fynf~#9OTZ#?J6WzAW%5hAl%D?}9 z-$W4gac^kyCGK)pgViN`?C!B!=H(a?4Kn^#4mpq8ov$vqc-~uo^MJ4yIsWh z-)!cO=EOHo@y(IajN<$^|M<;6e)EqI0^dyG|L^#b*5-K zVoz)mrYBWNZn>QglPfxOc4GM!_}Xc(5Wa`DZ?;8(w~MF5`_|?P&eq0;V7%VkkLw7^ zs$>T5bs=)Seub{O9eG(_uev?jIdS&v#vGbTjhb4`t1=2W_5ix`_Ce{(n1092WHPz0 z%X({$LZxQmHfI<-g-(DG>e{ps*%Ll9o(u1U2zEUiNI&1n&KP~eq6^SfeY@q2DNOh0JvSlN+u^;& zT?6JyZ-s>=ICzo9txJL#OJ6#)Lf!gY8r#yM(#1M*a{a3npFS;nl8I>BU0(x;*2nCS z0A!PFg)@)w=62JEB;`qYbr&!9*4CcGwMsE$wteg-LXy&@(W2JeTs+k!Q(;86ceOI) z5q4^w(%RiFGN1(EZx{!|=<}lO1**dP>3d=^UT87HL>|^0pY*g(& zF^81#^B|JMrK@!Kb~i8ttP_q%ItZ5R*#}E_<7&!Hg7=(aP{^3*NZv}sIg!ba`6pq( zUIx)NJuW0PgIf3~(Pca1{g`ENFz0wkLf+kn5+yMZ5+-gm`X8`0GT7N>4i>ILSlyu` zWnD`_vw;CMQGqa4Qr*@%K2zOF%bl8NyW6)ZB_pCUq`@3wl9&m82$z5VKBEz|p1}oJ zOd%?BQ=P58J0Yl-ullBLW_C?><{9sJ@o>}3pqQps%(fz;lT~b7UA8z+sRp9kjD8*+ zi+8o-OV}t4V55|!=V>aLdi#LdWxG5Jsa|hK&Iqx!CrGp}6ta^Xnz$8Wn}blE*i>Eq{=kD^r3ruNbZ+_%p}E%yzCadzQR^zk!zU?Wnt6!t6djsDEp`+V2z? z=KssjFzxihap!PDJ`A>wxqf$7-@c9IfzF5=MMF`I>o3WR&jY z+5;*9o!vj>EZs3a?kTlcC$T(VJEvVZG42UQud%{X{P;^wx4zWoKyP1l^)7&(a8Uv` z*(qb^SnM}f4#D8dURPV)TRwNGe6Cz|ZO)6*@<>=)lf5_c;pptg$cLFZlRru17yghg z&R%nW5FJ%;_{Q)ZS;q4hkM5QH;rvUdV&*=p!gBUIznze9zG3+JTHpvN&fq&{Ty=>c7vp$tAZQ_nZ-~LFlMD^y5kF*Kco9(%lB5#@XC1P$gH>%-hg8~aw zRJCpL_-R1@%j8RtQyl(YugdOPg1ALOf{;hYIXro>@qmU~66EBY0A z3V!^M?@V1o#9_4dHvQyOQbYB&Ut)8cf&r{vg->CBRGXcV5!uLlt}c#LB$SZQAy4$s zi{u?l;>sIHP)yaqLS8?5^#mjcr)VA{R6`0lo752MS%rs-BrQ#iRt2l5{I=)!GEW08^4C?EB3$czayd$M$(pLuPKxXH8b? z8uTmYmQAi#d|EDV@3g>4fx#80??KEkUflNSD4onS5-&TZ)3uvSB4t#}F1J!XnrG)i z;$ldl@sXSnZ&>7WDLr1$7#m(|^)9f!Vk2-cLrWQUtA}sWHvZ5d6wz#OV9FLiqF>>D zk-_n7OJIu1{}}VqhU#SOOeQ@uXLRF;=YOJWETWD*0!WFDf^pyvXc*JyEw?|9@#-&} zn2zT}wV0K-FDM)D-cRrtoJv&dO@~I$`$%2}eyxU4A4oCJw@X$h8xrb|9X+BETzMbE zEE{PI%%#E%h(nmP$=?;H#J4?5VRYt5sNmBz&gW2(wgHRz&&@|ei@H8fM_-KNWxSz4 z!M5EDepOr?V?Q7kKb8ioh6Ig1y4YCT((z|^;_*Az+io6mowPA8{oF8^A>0)h4Ec5H zudsfQYeHvZ3|~2m0Wr!ea5jB@*OhG|6FSxi!y)?&CMzn(FxPSukmctvGRU-hS5?NG zJFn`tS}csKKfI7}ZdKKUJxMsexcGfS@NTjE!_3}SX6(dVe%SjQf{flhrr3e0A(l`p zPmC5-mGR*QdQDS`WGC8y2eA!=3Uc7!I(~O&f?HpU2h~#1)~?^&r90OYvb%OH3yOxU zt-lOLq0la`(>^UNDKjuxl7JLi_A?wwulCCvhk_?{n(kD57oo@#WhnW$IW8bDSP+wA zTq&AYHZTdfgR@aI+J6NKWj}}tefKaY(@!8Lr>kPdp>-?=)B8m69c^F;Jn+~}B_$pP z6X9sw)cuFSf^!6X)99~<0}8#@cb=ty^=f`hhXIr8>=F+m$ z!Lud}J0)bE&&=%B7N2BHw+{YUt4?WrJZ^;)u2k`6>dU5?N%c0AK`KS)kqLGNXYzErGk zmCJdaVkltzaGqxLKL7~xJi8LNKJ!V%q+PUJRMO_{Su9TS6p?XT4lWYz7X*W4w`qp` z3l`fn`sQ$eX2zuvlU&8r$mOYPh1dzLHprh3zoZSKznRflfSXe1EwxAPkHx8=srTgMi7yP!i9E8H5Y&V)>g0pnONBpK zk*B}-m?gFQ^|O@D9BR*_QQ%1nUUY>+-e>s+?9%v>v+OR$i5z8MN}0_ukO{Sf?d^po ztc+`WW@fq!J;oC4Nw-luP7=FYPYjp)1}F3cjcD%El{SnSLb3vTes_VA#Env{b)Qm` zjO(d#)73YylUD%B?JrJq1#@k^dd=NAfMRPg21EW(OQlr?CMZNAhr_D4qX*n2Z?%1i z_VRwQ)ru!uS$+fwrO2ieOi;QWnJ!^Tod&?%;rPYJm0Tc>z5AWx~z0!#m~#lkb&NUTAWaZyW4Oc4P_^aVZ4 z&sk$H$Z6Z+i%o>pvElbitY(}@^Ba_o4j~%f?!B=(*|!!*&*Ws;xFQtg6#$3#yW4Iy z$C1{&eP?AP!LXfPamutxX}si;sn?21>;*7nU6Htlj*<)qycgm`>B(q6)iW|f z70WpiiPhBP{KU=F5vPzU%vPZtskUVvi@@|EuOFb~4nv$HXb_yLPH z0rwvjc>0q_#(2ozzjT7RvA)hUBeb5+(jSAH3V0a&=AjsMx~*c2N20LE?{aP$NEJ+f zh9UXzxI2fXUTtRz{V@3TFBK~|i9&}>Q^gCgU%KT^+be!$C8mOmEC)llD;L}EEUl`Y zghh8O29k>Z{X*Zt>&5nGE~5?My#*e1u%aCfrhVVug$!fy$(dNYM-Jp#eO`?z zgAaeF>$LU5RTz#@-W*mT@(H7pDn)m9(vws$d0j9Zj5Ii|^?$bYT~cs6$#gerT)}T? z-M-A}6}$+)9c{!FG)38W1)WsCZl@3!{HAd}C2uex^$#Vpl801YR_<206}xV=hXQ~t zMkkNCnXCdU{jJk5C7qS>4{bfRr|_vdT&RPtp9s1$imjm&&&&bvHNVjG#EywcXnj4& z@A8!Bk#w!gsH3i*9tpi)d|16?vEdm38DSF!rf9NnoifvWZs=9v`01wnM!uo2!+b?h zmgm2&0uwVhIUZdP4gzI@KK7?$0is5gLXA->G-Qooqwp`o&6b+$6T34XsR+bdXcE^o?ftXGTnj02z7jmv=;`7SDu+W{buM=FWa4W4yYekZ0j(M zAw{oEWzu3dQ$`oi`%m9zbcL2w-~wp$Fu{%oXSqDNkPQwb6`d~8M;e^s+e`V`M&%{2 zho1MLfgJP>fIMZ8q@<)o7{A15M$lgzk=Zef#J19Gy-E&-$H>|)i`+xncJIz*5@8zh zuadgpH$w9Y&j#mO~EU90k&<=Y`e41s3;g9^U7}HRi!;7$28jeMaOp54(MiG@Nz48uA`Lb zS%yqnd%LJS%{A6ijw-}sG}{({G#tmpOx-Ta1HmBtdnadO>q{w*#xi?mn(EUZrMGJ- zVTQEY@}m_LQ=j`y+?hHY$=jb4!NsAGa3j&%<>pQ+F{DAtWU6jfO8OWSGuO?32VNUg=lQVIO zfI?MC8%cs~fnR2L0JCi)MY=z!tu4)axur!}^%4cp6)gd4%OPFft^&tF>qwrYhWA0W z;&T;GghhMW+XO~b-N}Y%$`anUJP#w5CuYtqB$PVf=ckZcUB$8QZiM%8mQhUX;tGTk zpPJ2J8BV&_|JP1iLinRqaDvxdZYIRLu8=^yTwXxldZHC;XM>5mq4_T5vVt)|zk$@2 z)}*Dh-d#Df{*f3-N!rO^J06xs-h&vXn*ivaSX4hBa1wzCdQs|Pde(RB;BoP(=}K|G z=Ido;X_`0R2!&{6r5>Tzbr~w@bKP_p^jInF9`IE_UtHk?%$;v@uCeDFeJXp53j|yB zpXIxUszVwBJN$t{jD7+O?9g5QCA{Kf~nV#YiJgVjs9RnzM7GFL) z-cq^hHVX11*QuGo-s&ML6X0ErxTi4Xall^jY!G3I@&G{nc1VWK?-K2MQ6OlGOiPPp zO)L`@(rj45azfJaP|%fLuTNc{WJ-vMFKS^1;Y#|5fA7sYxjT$HAnds7!U?>TaF*^| zvoleZ{7h-(dFq(#kMu#et+$VX@y84uEXC=f$zl2#x z{(3HZb2DAw+Cx4R|BoiTEYZKy`M$!aH4S0q)TCGMRSmcq=&sCAAJQTG@2Px+-mULJ zTB28OB^+fa7|ycZmcSYD)6n}jPqVs?ZLNLAZLe=Jc)B*`B=lCB2+$*H-aP+m%OF^Z}Ckt-VVe@HD`ur733UJX8fIJl)q4YGO#$(BNgcrBdzC4+5I^O!5l9 z-lxW>@iiY6<*j!p!CAT##K)@H1M?+*t)J`3hN>+x7~%fnqhphzT%Vs>C#^5F8~XXE zIacOyb#x@2*@K8q`g#T{DE4Y(uu~F5V`bLv(sgu>F8n|avm^PqIF=H)!j6wAx4OH1 zhcNX8rZg@5XI?;lxfd~f9h8_-OG_hz&RwIDvyxi*c0M2HjC!cLe=Avu_e|Z*#&k_y z4hekGa~-Z!{pBME5j9&+NBr*!{Y<}qaRrnU6!byVbblEHAn&9WUOx6-5mIs;QBiWK z4H}FQ-~sqcel2pwgJUl3?fNRE;qk8Bq^*`Ysc?|w$rJY)|7zzuGdkd6hrhTQHNZ!Y zkbU|!hqXBX6A8Rhz+6#`dvzizOI!$Sdq6f5autwFZgeD3J!`Lej>?4Zy(IK*ac`k%}=k zq>gSOQ%cvKJvCe|qjYpyNJ(`Ts_kyK4>*m4darZMM$v&20mAeT-$2$VjV~fJk4_5_ z7fE(3Dr$3DZBP8!ENnC5O{&Sy2b^`&Z9pgy{5=z0lWIrcNiLEB_Iqm!$g`2JWQ1oM ziH3?+I^#(@!RhTJX-zEq@b|X1nPcs`$DWsxJdLb3ta8LenZn)-Q6$R5PJ zOGG09i)DPpwG+E48M(8w4Ol!RBG48-RJQVVz!|NuGV34+Ny7{XuU7yF&-E5GE!#vi zRhDxxKK;@Jp-Dx0d&cp>W8^E~{;)bPc%;|~LazeC6-v^&?l)((W;yRUi5 z85NeBI}yJgxUjXDCz)s-9K((JiJ#tRJ=UnV%z;0(yTx6QP#8JVw$0gp|1dRarj-FRULRHUie38qy$DlY=+st*5(w@e zDy2HaH>WGt@0G|zj0DGBLLGbQZ@7{PDne+rBhKd z{=cbm_YyaC3?0J)VyFv}w0 zFhbT`0=-PCSSPxXE2!5x`X#injQ(>%BHiHz=zZTY37!o&L_L4 zMNcXcUqP*p_eeXrT(i|lk`9~crz>3i?Lnt)DsU~jZBGCLr{Z1OfY1*Wa0V zUO7Y0{XLiNOrwO~!UIr!(twg}|NTU!MRoouLokq7kgC~Rd1vaM$#(&ZtgztW zA!LiW2?EFyITCNhqmvwXP(Ug7LpE6o{eMOb^P`r-eLQ;dB%cVi_8DML_=~%?-xyi< z^P6~(E$&wYCj-=2U>nhpZA@zV?P`IFO-t)mlTd?uGVk(|Dg~re#|F4$rj0#7j06tN zyRLumvJ9m`)D>WV5gf`OPTm1TG3v0@Mo2E!efC~TA(E$t#(`ae)8O~ueOANAi-e!>+(s9NOShgmFfU-Fx^RBtYSESXpkmG^1Oy?| zyr@GpKjIrWM?6-`Sz0Fx;RJ68F4aWuBeKXmvCH!jro>Cw3Nl;Y;z*KA#G6oWwTN(n zWRsSk%ol(oPG-(;H${9KyZ=PZ1CH57s=*@ogzRx9V8#Jd(VL;*D3!?~f@RdjqYAInZcfJ^(0O;AMT zpJVcSbCu*ZlhXUr5d+s#g2kY;uI6Vk>LVYIT{@PAhU0*~Lc-^d4=N}J#~D&Sl|3|m5a6VaVx zpv#5&PB>FP2Z{u4omZ9eU}f0=v<)~PhbDhmna#0qf5kcHzM0|ixn3TU*zg4~clwqd z0Nd#Yj-1%00N>4DEG26g$H${v0#AmmkH~nO=SUdc00WY%XxP-0m@LXnynV1WJ0}%A z5?qqTY|6`o>)f&LM`=L?7XMmBD6O2|3*7Ugj*E+*hJ5&mv5)A)xP3o!BsBtuquGEr z`3>;=f&;tsuZIKl3{M%Kv$kU*Qx!h8GHWFB9k z>|^n~L}V_n2ExbXrK3?SYaisq(aY{I-sE^F6C3v8o=Iv6@SA(hh*puR`LWQVUQ2qb zoPP9q*vd($9A>HtFSw&;GKAe(Q=4sFAaebN2rf!YoB$R;Z!vbz_;*0zB%Ifszu`Be zwX>u)*O;lj2~{2sBnvFBsE)PnbZm>0B7x~9!&Ni?`z4^LDZP;n<~JO)l$3qFv5~e& z@pJam$<+cL1#vhDBF@@cfrTK$vOT`7SK4kNS>xRXO8+vu)XhRgNb9-b!gsP66T$nk z-+TZ)fG#?~(=%-`-7hU1q;#i5AdUL)I1<#XWVY(|i7&kM0rDM|Us_ffO94qGG=>)* z;}pr8(4Zi__*jtHbkF!)QbUsW(w%sxEejYbTJ6dD5@;B$*C{a9-QWmfVA}7m2Z|~! z?-=OIj6n!|%L%e*+1g7Hq2T=eQo}p;8uSDVx5-T6Geyp+fEZd2%KyIlgb6DTqT`ztvHPASL@^`qdR1VB^(D02hxVNe@A(oI9Y~DSSR%-OlV`oX1b2Mq z{N7eBAaL0w=*uiyA3&BqP{|o(2fM>H1{l0Sy*`-;$g8P}y|$2)t(=-kXu#}{Q}pt0 z`@w?P*$+datC(sr^8U%vDwh@Fth~V{7PLkRpmJ9>jnUF$F0%@B@(YU+V-kKjsXE^GpQT`w-laI+fiFDxlwmEg&j>PYI4~>L1$C zid+FjR=|O^I^%#ZZD&Dz(eOB1+-I#NMXAeYf=zyc(qe!pZawaWMo z&kcc=R)J-)vifeYgqxtuc1J5HIWSOqDHTP)4>5|xyto+z9`TaVY6?>Lm;$wit(&C7lzkNBee z=I7KEb$hT-sgm1hV^E_?OEI?L26%!hPor!wNx!t}*x zstPc*z7arbx3p07g#`P;4KRA4bS(Bt8HSB(RW27VHUJClC1i=KNfBPWeAFs46i-RQ z_`a6GQ=`gVm)gQIbd+oyGSYH#Vl{HYM}m{;x*hIL>{1G<^8EZjC**_BE|crD1!-eM zVsY6^qF_qimju+I=>m<6Yy;6)p_bEJr~_N-T`?NWe%{WpmkCFXYP(GF43@6OF`YS^ zJNi1{l;2Ro+~L=*t%T81h6+r%gvpK~K3Lq-FAc3IzFm}WPeMiK2FEbsmMrucv_sr= zqH`cpR&wsHuk98?enD(YaS9y!rYv-_+b^I3Yc{avH8bEwwl|(^z2TFzL?wD;=%_Gz zzmz&2mO9{TfS-MpA`zj81Yx?zbpGdyLm|&Wi5VQ`pcw{5j0KicrhWaHdZjK&E{Pr! zF=%}%ho84$)mm!e{?%tk5H;Rk5>CLa-JnqisPwyWj>PCPdnfa7GQG;$&N7*4;4#q) zeNeB#>}BuV)^_M-)&+VQm*KIy<#Q8t%_g&|3SLMM?#1#L9OxKChUxQ&uZR0^MiG)u zU_f);&}X^Dd*mFGhi??ry{P#FxADn2ikeX0QYT4BAA6#XjlRUvz5R7Ina97%$SSH;zwfpwek zmSWGd?3y$RN|_e`k1r+(JEsbQMLm|c)SVx`Me+2`per6-wX@tZfE@{)j=Mz3Co))G z^ANRDlUg2RI5k_ICnY-Yl6_`|0BVTwph;-8z42*pM_U~zg}S!M%au;tPn4t@DuI&_ z;g5pbc;uX*a|+5t&EGMD{ZBG7G-j*Pg?86Md_2e#-O4IlpG)Ime)+#aHao^&B0gj8Qo$ z5LQ8mk=9!{T(=fL0QmG5$t78Z6_v=vAPjbtWjCJ>cp}LK3%j(F3jv@A%ILRsH8#!; zWJZ_lx{stg+~i5Gz9QcGB;OTnw==31+)R<~0htI$rNG(tXIW(@71%pqXfYTs84#=^U9XRy_fnnQMyYo{L3PmY-`R$3d zbEOo0YFh|%9C(TL24Pa131KP%syd=k*-+A4z^W!ZTu1IlcY%gS~ubE0hmEHgtU z4ae1r$bMTPDX!bNN*h~6W1n}4*;0POd17`&uxSAw`tKCgaV1n;7C~*_78}r)Eyf00y~z z1&P#dNR*23rp7U?_w}HJs!BMUBQzp;HJgM)J-yNj?C?s=uc~>vVktO;|6NcYdkxC> zaCW=z6kjg68RIJrGFVh%=|YAYZ=>H%E0@dQvXsZhMEA7r+nykx;s*{~E?p%Bd(R}H zpq#&0{)S2Q?Zl|`($q-(oOlVxxt29)6CvoL&{uVkV;_rb#AFtZr;T{5&+h7Y?R@Ik zUT>_HM1@EfU;ojB2+Fj*LhAJ;vkt92Riv1VZA)F_`GVzD6-#1p_W<6{016|>QcQG= zAR{;gr9@|qG&Ku6s7}5UQHjbRV{UW4Rm1H2f@gQ0etSJ{cYA!mn;HsW4-9_$BWTXV z50=Nd4*AT)#M>*nUeKHM^)P-$j?`C`@R5|0YxWp@@-9OUT$!4GhGldDA^W9h(2cOh zIyiJytWPHBmAgG3zr?K`BGn#Qy}P-y6}4N&DoQG1m%tZW**0i-v&BYVqL94$U0bCR z&M@1m+9~lgo}gBI2ilLEU7-@Q(=Bg*%i{q3o3AhdcRwYK2M3|j4V6|3H(uKHcV@35p54`5?#7|5nMKKkx2*D#yKhP!uG2Bww|=y~ z;NU>uHnP%B?6q^uwX`Y=mzW!GSgT3{u^ggF394m+oH~_>BU7zb}LIP-uic_2NpRwipbIaKJxlP+Q*FxQ8 zTPay8B(>ZNv@*GW2$61&++EJM1P!a;h7mRHhNYsp)R+X&J~|L^ z*<<{5@sVR%1+Q{q$7UnZ(DfEYPS8~>6BMxm7e}D3*6=XsYVm`v)`#E0tqX9fCAIe9 zQsfoP?!1~k?6W=}pi7SIFH?C(4GjtbjY>f6<_x$vbs>+Rr_m5W>*>S5kA z1Oa%`*VLvBXf^I1Z<#kzlXe>ep%U4F0OfZ=CGUxGi#2y0N~yWCN2YC5F|Aln&-B3HcamN0`i)Ci z&DpXPq0Ng8P|gx9`n5{1tEdp{KZ?aBZTF^YW<&>5?hU$3g?bPBWVv)il^1&Hx~8GM zTbn)!fIio}(}kh3JgJhQD)xkgu6XYTchHDU50-FbZI!IN1jT|~v3W`e!~;-Ls^zK# z?)S$+>zhcZ?@Z{bGBN%*Q^HfvvbD3|F`6$Q6VF|q7sGZNv{Z;m*3Dplf%R!L@O`zC zT?2-V8$q=bwBA$SRBeqVdXLL-K=Gz#$6HN*CJBQ@q94|N z=hIx&DW-cKwwo)j?Mag1ieY>jfC^CU2WcPMGZ28LHP`l5IDpGXO>&~7m+UNSH3vOr zOHWx!-UE$#qw+ZF6B(39(wao752~y+fhwUa8%UFjS8Pd(WQuD; z#w?m#4h4TZpIbv3cQ@7wBzL_*Byhg|&dHV4!J#J{%qHyv*>8owbz!%;sXV(jwO!>cZ-lrq?wEE_vdeIneoN zxl7N}!chG&3RE&cjVtPb80bHNW+>D?o$l|^!ZITKuRsc)oeh$wV_6!UK;7!Qd1^VM zW>_iy29A26tCbjS;Ic0&$CPAtY1|KpTMY1Xx0l|A3WfY3Se#Br)hm4{Z!+Bjr;h>J zuBnkKan}mAKMw+vNqjZNrQ|Z>rPeh3IK%za{kAqm-`&*^-3BU?UC&W;fAJ@7IE$t; zvy?i~gknG>lW&mP~fsa z>?;6w>y}o_b*tJOK8nRt5)Hx?n4O~}5g%TCrMoZCpp)5Oa&*i=W?8xI<|Xx<$N?N$ z*LOWitvLaYv#@VUXyjJjTtSZAq3d_4jq-GD5(oo{vWa9nvbg?1+Q33ruClWJm4gW3 zi_jU84id@Xmo^SLR{h+=9eXDcXD9OxcL&4tc@*H6>D$M0sjY~y?~`fiav zl%dcC)=!c^5vArKTzm|WFO3J6ZrB-2CTG{KY3E!t*|yd7ozYcmsY%XopKPqN76(<% z217q16Dup_{m9Jaa{(?3@8rOya1Iuo4u_~_ZG9Te#SY*aSn~NUTbEU%!BTQ;n2_LP zTiAwhRbKpRwVyV)2%yV3RKr{0BxVE}WJHi8kvWqB!7tZbEkzLT)N}C(F%A6=`TWtN=tt>QGjW&3?y?xhoU7_g3CE~|8#FSb}bHjwDTinkMR6WoD1>dV-i$|@eieG~(p7zk?!8K_(zikN*jmML$0e!#P682ec z%gaD)`d@6+|rlZB@@1F$~5tuW^zE{rdQASneu?s>CC$6g*Y_w&NK(QAQf_Te|p9ghN;SK1@WVr8w62|ZFUi-kc zbn)4b55Ntn?*=>@L$?~rRa=IWC)~wOcoAb4&&^2*B<&iS*d9oqA_*v{rIlbVUnl_$ z9NAjfg!uZ?z};HQEZp+)Y;k`XHLKbar1O%BZs~JK~*qsck;!NkkiY*mGUEv8ccS(Zi1T$Kby4bFiJeJ zR078;C^w!^hDvZ1+~>MOtU4lpSsm@p&-3=U;aHxNHGW!Mw`wIQ*n2{$Ql2=>ukX`h zErMa@g|3OI^FsxM`A`DrIXCo7t2SRFmErnxlorobJKsKVfJ2ndCMCbu~ZuD16U6#Nj!40yrZ|bgV?ofu9 zBV2m7S(e9}goy3^5=L;z4OXDx3wqUN?B{q-Yn<XKYfmi0&FGI#=0Jec1(Lbb zbx=?(v}(Q{8!IfoJQ|jCE0#%O@Ekq$^+$K{-OZ84oZLJiN|H=$N{9xiK+C4U_wNEM zYVWtjySBW*E#pSZ_?E^t_;@%`2j-<5OLK&h*2*pAiKfRA+%`zS%Natb4}VYn5x5l>Tt4})tMJ*S@(Z%rtKG^=J!ni-!tlQEjYA|D(e1s7X^} zsw7wAwU_ymjvm!rtXGQ;&Ep_4Nx+gF{vN)8Ti87i9)3i#=N`tlkWF;3f}Ie%`;>oZ z(8T}`EDm_prYDMFdF4QV;M=k_+2HK}G`0JV@P{8C0V}8dHv&WrbWP}`S4*p=2YTaU zcN6&Mf*uKvX(mncp$@nvgV%2cB%{qka3O#;;X^QmT)=IT--fNE8g>u!Vv{!BwtG)J zlmg{8n>SaS`)3B%v#KT2z~*;O5@#F9D&V|^u>65Gw^AuB?9vEB8QtvWZf|+(>GD}2 zmHF1vr>t4gS1+qSd463_TtVZfh{E_2_TmkLvo@`c98He&o-4J8yD=&?vn?&$FR3`U zJMWV7CCWSQ&Llb-g!0rEuxBL{4$ho^D6Vx<@77y};E>wpMXSC{GTajg^eGx+Jo7<7vcRCpKL z58LZz*{6+qP#+7sFY&wn<}9AL*c7E><=B$x`68u2+1TAo61+L0Sk)59Dn6B6+goN? zFbQ7PsNo!T2D&<5)g52__)36*mx-^Vd@+Vad17?Wi=1sbeNYTA)W#h-^|}v9)rRy` zbq|E?eAOxPVIr|-prl$Vl258o(3MKc_D4-&13?12Sg}PosjcwoI~*z(h~oo2OrV#3 zsmsswlCL=AYFk3`3KYS+WBe<5XllN&WfU`kW zkTx}vN9c?R-eh}nar&bfirKS%XS-Q)bD$y9-04^S=FH=OA&xl6hTPSH*vXkwQxZdG zTZK&YV@ma^<;O21s6L@2nIuLT3tuqN&C!V=GWSOawY-E(&lA2=?yifDmyV+Mbw^*j zCIMI$V~V!6S~TUlKk{@Hl6KX;9I#b$`5Oa(uB#e2aZO#LVE=2hW~y69yh-iN;Ot{eVW{@CCwhL*obtb#yGd z%RI+#96l^>?Cva|xZa+bnc}p!Y{MOa7`K6fmSLlyBT+WO+!A?Ny4BK&m0tbYM1<7Zm)wwTAMXnSysiyLCIT zEEU`XkeJ+h!Y6}PtO^cfJ!6vp_?#ma7T0ApE8v{**mn_{dW6391>AB&)<|zFG|rf44(*WL6TRG0C)~%6LkxL4dl+v_HUNeg z16gg#3;}Vii#Tuz*j=HKSY{)VrTTioeVLFy-6yUNtsWa|KbD#o49sIh{Y3quGqDy# zGhf)TwoZ<_W_HhUaBFze+=Hx?-nT2>xrVY-LNpxy_GlOo2vF9& zFcczpX9QL7hY8dKOb{i8FGu9(!#=id#dXxyyrxFJoNUw~;)|Q?a{EZn0m{asoB+gm zk$w9t4;i%DQ9dZM33YeLnZzaVxXeGEk{vuDFUbD_gk=84@GS~b+NGaxs+Cxj{LTh| zt+yu=bx8fGTt{=o*5V>J_p87jm0C>{(3~4pllu?|Oq+GMo=BhekpMv7ruP*Qq4~y;%yDOCWcQkI8(h7PTY$?0{!EHP8kGp z>0uH*WlWb?@X|E!CwDwVuD7|K?>HlHi2jOj8Hyb+oMs(em-SFplykexKc(nH25OH& z)_fwkaIka&(v8RLXBfFVoC4I($v-XH6RdiZ{bHs+4 zbuK9@7cCCBauvGj0>)&ILjRmD$#&foJ3xsSGQff8+Vn@5@a$^Siw2H^NuSID zj`X|^o{?LBy&9F;k>8GR_ZxJ4lC)*PUcEL3Z-&@_-)XArBT#Kb60{8%Y{9XB@b`pk zNr!Mmq5YqU1K}5lm&21gkcfm+(uX%|-uXhDa+e--@h_lpM;6ILtJXRh0f2|F=12=-Q2 zC*0M{fe(_UqtHSKSsBhu04U;v46NCR?YEIZ7cju7OgV}@ZfjG8?d>?^-TkFS1qbSJ zJuG$O1@|&j=A|11Ih9g!Y8JS{uqPLlj0^Rww%^N@eh$1#3yvN`BH9>`XAui;W?)jx zN`0y~SvJTfgCJ)0-)P8X@S04%E?C_38=#^yfi`yBS~TdsVAV0O^2x=T2bWZ!D=qPg zkpB3`UIM6cP2D-J?iNxpAg6M|R}c7DJoMeTtGx4QKx$q`egU(XKtjRwo>NQumja)E zqMkt@Y}Fv;^2xPk6i<&#%`37!EB4Ev;KZxo&TEC*I3S?mt5D*b+=_f?J!*F);J^nN zZ%GgdU|=Qgl%JSJ4}TYNgV6^F$Eg9b5QObB1C$)tX|UjWx-cG`kWQJj=U0Oc#Q)A} zd5F#wAQ~@7quct#ji*oORAp~6mPUfdPPXva$!FIO;hh1GpKUPTG<)eM4vgY zl-_*Tn&;j}g-_Vj9K0OJCd2Ksxmp6syu4XZImGE#NV`5zE?zVMvHq>F`UfCZahC}c z9{!Fg=5Zcs{~X%0EM|9pH@7)a>Pv9_*nl6<@9%rN4J=T@3Ev)g@!(pDa(T{;eZeMK z+G)L5CLj$lZJJMZZYdQiT?MsBrWtVZymFE#UC?&Z3#{krb!e(PtD;52U2EMZcPxbA~c z7uf5z=-68%hUCH{Gf`DbUXI)j9(JiGTFVhl+u5Bv(+JKV2>N-fw|FW_^}h;>ek>gmQDC zOr4{!Ft8F-Y|=~pOuTf)T$Gt_@6l6S2{%Uux}ExZU+5?6Z|LpIHQQ1|9`}))TOzG; zD=v*LK!!$6yP*%P+9UmM%|UXVMP`v!CNVQ)-RH_&vz`Q>S(~r)a%jtz<~PrSZr?rtW?n7?%S|wbwfeM5I4Az-uF?~&&f-j* zx1Xp$Ap;=`ywxdC!_3(sgcKPYdovj+y#4Xu;dnSyd)hGlVNP(qH8J;E)xh!Ywsq8N z&aWf9#yjG-d}+DNb=%}xG9c;n)=-cF{s&cc_k6;AuCcNnacocY%DWNiG<3^NT(lK7 zzdHf2uSlK(WM9>e9;d47i6u==-UehmryJ{RBMZ4+Pby#RB@$*>IYD=Ta^jJ+Ah_J725qw|XV2J!-Y5FGK#iB`@E5JlVyuG%t;zU$cplt32 zfZaeBz)m4JvD|z=Z&f0i-^WvYhwncDl}wBX#)^V4CIsz|H1NuQt|3`)Hm9BsY_**K zu+A@yKRlSj0$}Y72%uy}`U9|c^bbTN{pXPsSh!MtU9M~VYm!#xi!3HabFNupw?_>l zp};&F)B)b4Dqur;h}0|NeJ7`q1qClB{$-Ny_~BHi?M_-{pVcli?VQ;s>Rij;?eAoS z0B8jdtg7)z%S{gD^E#PgVuRYru;q#BAXGM_dH>X5mV?0uz?mi$FDwPJH{>nADo3X9 zNZ<0f<*KqebQmtJ|j)?Pjfb2@oWNJxO6x^wfa%pu4WIAZY;+!{foIGZorqX#dUL9zu-5tzUTmahbac~1tV4NnXp zO4=l#BQ#Xd^&%_Kx83GYw2`k!w1J$~KeK_bT%wMVo;Fe}jKdJi_b-fzw;q}?Vg}lE zH|u#2>PC1yzIUPXqo#Oaw@mD?Kxx7yKF}47D&!u;vW1SJan47f`2>p%kxAczSVlUn zQ(JA03@7uPV6W5CQ8(-2^2!W(cXOfx#7-GjlA*Mz+dJ%Hnx3?Y$(D}XVFm4&2e-?Q z1F1x1F^QIUpLlFnPph>MhV}Hq*0al5%IwL*oM)4-)H}04_GwuHa~uZja!42<`b?|` ztit%X{Ztt>*xa?5a*E5qvE!}2+w$qF&EbLNtu~K}mS_R6EBGGr2-F|!qc>Z&Ay05b z<<66UU$&4!8A$uE;&63a%Nw)j@nK==c0Hc^GIexynU_sXpT>9D%Re+TVNlwe-g)!3 zEVadXQx_XD(3XINU+~#Lz4ipsu8wk(eOtEJv5i^U=!ze;CMW0YVuqE^&^y#sSSUtC zhm?-0Voy^o%~QkF3&ElZJqO9(!Qxz?@aE5aWVxCp+HNQo2^t!*xD<5{5l*%O(X`NP zG2cbcqr+RtZLR&9;^KW0v9HXubrj|ITJnka$%GAD+evd7o;eJC7+{FN1+u$ARGJu- zoNf1pq+s{vX71SD%EJyFW|xYHy|TcPe(@&9H-{pQH%wv&JPz??Oubzy@hdq=AT%LB zZQ4{!XIklJEh1-^S)FV$JSBYNc)h+C#gsvkU(~&GC*jydW$?Bzs4L{@rT#$PRqb%q zP7NvUIUwy;NFaUHGty~@a&eq$iqI`+WVaqYLvfAG(ql38?w;J`(ni_Sk>6l(^j{~{ z_}Pdy7xCkl4?TOr4TZ=c>8iCSD;K70Xu0?BcpeS%hrJTd%MF z#xr^%>y~N9UB51uFO)qVl>A9dspbpgvj&b(vhYDTke0SGvXxldekD_DWF(%&w6W83 z^e{y`R?iM!3m(xdV53&ol53L~Boh5oXaWxsj;k@E%v?2aB(&!LUi76J+(#@iPi`BE zinu?0Xn%6KD;w@^Q$OKT4R{!eMR%ysjKd@ECIi2!TirKoWv3s2ryy8dZD`!fO^56D z&d;w(!6@^@bU$|uBR?0Jz-{@+U&nucsA68&4_`vtxC;kR|$1^Ht5uhV2<<(=uC|P0f>6UqxkMRrUmW=ntXXzbkwTTN4EPgZIscKO( z_t>>0zQubX7`zp!nD|r0{13gUpHvF$5^E=39v(Byx9ws)2zCKgg!6XtTf6b{F6i+_ zL5O|?2eYv1x__Au>}$8dFMSOW)JuIx)hg^QknghVOLEm)_scomu%W1UzNrb`l8lgd zs-hwvn<6yEYj3m0LBRfpgYC&D6}uiO04uS2uDHv-FKM`88Gr3C2Nz|eS$YmUlMyf4 z#>~4YOq_oJ+mT%b&WB=`JddS&6gCb>6d>Cb(-pYAjqR0`m$R>>7f)8->vn0u1DgzI z-WmnFi6|YVbtqUr&5jAaJxChxRvnsN_|Uh~;v1O-Aarose6D%aGPXpmW-eGMrM69n z>jhHtU)IVv0-Njo41T>b$Nf#_g=72)r{;R|ga=Ku+p8{$ifE1~hK@Ibz6x}drjmET zd}fUP`l{i5q!p|J^|f7(z8vjqvtV9!c}{n(nIE^0vxbs#>D_hb-c~AzvvgO8SIjY0 zJcsu`RvL?k`Z`z$bxT0x1354-;dD?nCCsL)K;EQ5?d)6%Zzh@LDSw9gdVQa^%ZwqO zW!tu6&lNHaM(|#6q=`yXeLMdFEg79Y!K(!8AO%JL$Zrc|Dc&vua>{kMEbu4P<= zP~?Uh`qTpv*;O<+fN3dKC+oXCh>QoJ@gY;q;pShMaDzc29PczYyRlRU9{^WU` zRSyOtvr(re^VluT@l6lcNA-Ozo>7pSNvG(ZykW9F;Wx#A9+}xsJszV2Jys{P4ijs) zu#<&j&X-WApj!N}%{LNxnt4O7=(Onhj2HISHi<)#xwLnYIxx#9P( z*Pn?;<;8wjm03o95{in4CftDma(lRIM1^)G;P?n1HDi^zJ0fmx%pCK`RI2Ly*VY*| z$+L?{xE#zx)2o>rWbAvkp}&2=QCWHz;pc72z9+l|PMmjf^J z!JVRs)nFPmA>zfNOQ;=*pUk#sDPOzi2?$MZv?xd$*0;XmtReGCAZaDh=-Gw&xer|c zSVtmg;Z}pIZpEF*TJx7{vphK0Qz)LPBQWS;pG5!80q+;4ebQuqcipnEUWV~CdkKUY zM79KP@}?xp&_=mA0QnwQ$3X`FVvSayzpwVL=3jrosh0smuVSG#rODBis;i~7YLYi) z7nvUc#fa+X_gS~y;V(IdPtJ@wdAjaZN=5`I^HD=B=+9KB^lD%!yD`Pg1fYl=4QtFl|##OXUJ$6+1PvxG5E3A?1F&mrAD)ZVRI=iT0aB1hGA zkVhaI2s>4n5CfQw1t0NrYXBQZUIyNTU=vleJnI9w2Xq&kKmInEyQlHJ)_!F+r`67D z|9ulNneL|HXpLtSK^X6ItPIX{Y`(Qc-prR}HiOiM#Ch+LysoJ^MsE&5v%c!W;`>X| zwA;d^c&G?^@bjmSntX-bx$?wBw>KD{J%$uE1s*G4{L>%tuo(j)mN&-pl6-h87E3Cc zKR#47aueXg?_0tv4|sVZHulL?QL2kf{#-8Jx@Hw=ODT}~ia#Uw^8nfA0m9Y^}8vMa`v;wEZA_%A4w z7>qEOW=Fo~ov+Dz19~5i-;J8Ei@i@}N=Z%{_AP`YFJ9i%L0wZt#U7gu(XcJzQljwQ z80G=+>3rF=)`cMc$+#^yRDi9r~(5EeWMc7(Y#Y8?g>5?Imgq9rJ zzBYZUO+Z?=K#i@Xj$nB(6tejs@3{hEIhV&sX@$f~NuIoliuLa5cynGhOD$wpNU&o( z<|Zg@*4c@*_ahIHB#PpiMA5r`^Gs(w76?SSIVHIn5`~RhyV}VyI8=D3nuEpE@}ndG z_~mEJkyMj-b3q@H%38-v)$eI%HkyR;93IZfNlTJho}PumG18*nEVrxQ0%?r&;UZ!) z=1y?u!TP?IWlsC3=#}dm;LYz1Lt4!RV46*k0tA6Xa~Owmg_@#(2G4vqp=&B#!?vaN zt|4G)(Xgq~Rq_%ZKQ|4p-qScT zC^>`t?qeANk}IWEm`2+hfP9#qmm$oN95`z_c$=W5oUD=GWhS>2Wg40Gkhr1mN76 znq0_VmIpHw732keW8q!r|DoL`ivBf1+Np+Xk#Hk6F6Al`4qsY^I<5KgZp@rA^z|qm zQ*r2qGB;fGcdUjjyTL+p__#&mvVBLc`limh24P{1G%_1h^tb^DsLPm(NY=6`j;`<0 zc6k%v>gio)92eM}5Zp$negiWZgOxX-=29Yk8W5;4&zxZ6*>UgLHRH#PAn6(bn*1Da)fdk# zNNgNNDw&Di6zf3}(v{Trb1{|5??i-a(kw}I$S&_ZVipBesO`ADye%00b4D5vEoOJO z2aM@xv1zeL^5t!aIy|Tw*GUnLHgFZ;5XV%mXVod7+>aiE=;x+Qkhp3KMCLsNLC52t zn^tJTEp?ywU)n7w%UfjzsV(AAj|0MyPaarUS)XXw>cIxDMsZ>cG$vQ=KEJr`!luAt zOvLW0t5}LAn$jLu6bf?jD%KH_dhj*)uV9@0!FNLQ;I<4fu%Fei0Vs%>5SF9d<8w9Z zD)2$^==Ic`4#7O%Dz%gLa*q@PuXemL*_RkXt-WmV*kELVoJvC?VNU*y9-D^kgJ70I_9%t7|`^yASl+7}lKJFH6)&i03n;@8>jKdt%*0@iH9UyzE zDve`9eQcD+i>;G(+`9@^(5+i&_4or6&B~XvjtP91Oz)%&y{d5|hOP{>agAVALT zVQP=5x1d41On3Keou}PCet#$uVyZ8V|2%|qph1a| zwR{8`PG9Xah>s^NFA`|qf(BEEB@YDznAsIs9hmE@5Qcal@h*$!)e8qXPO1~ZgFaQo z6MPvlmjx(Y@f?+|@ZWh1KvskAj$P#WYAuDw>+Gu2C2u3n+Ae~zW-~(MK*+jf3xhT_ z4(KP|BN3UF)Em~a(wyVS*eGUb{6sjxwbL7fYffpdOkxQ6AkM+@-yyS0d-dpNmybLa z#g|{$rR-bK?P*$1@37DrZdvhm0e&STCU#Yu(X3F?nBT5GJYF(8{5BBGXr?1KNzVvH zmQ!lwGn7xrm8{Swx}RnD6jVrZC`AfA%|sfo5}Z%#Ba8a~itYB9D_1*TK+CIOJ9bp# z{6>yEv7j z!}V*_-{vWea}^bW(r(+3XdC@gYMZ+s+Bm0ho|)NIOy+C4)Fwf;Li?`hu0l#fbdp}A zMUp`*D~4C>&FbSfo6JQ&j*q0qA9Cu-Vscyw_(G`iv#F|%m06m=FU{BRN_u}qrd`4f zBr+jHGGI4eX0LJ5!1?(Y|I49n*F~u9wOB5**qGrxc}`%eEk~#YQc`-dua`$3X9q4A zZk?0ZSkN^`98lghIbnCwE~dG|qGcpao(tT|pete;-{+4VWOJtv!%UchRUkbJ&b>t% ztDo;xNU1tw=wT)k$PyouQ-VS{1|xCSskvqir{xwtC2A@Eg+h;wqj$5UK%w7gQLFeN zA!j{~Gjm`-9jg9WjF(#bwOx3;=cJ)TB6vTd#ad!CAne#a{`OH%OiWHJ=nRz#vGH~Z zjf0_-W*){TVc3OS@OR~>EBT&sP3E*t>%rJ~l+$=c20``^iu;+X>y<$nZCKe&pP@V) zr4IeEuH0}br$z2o*6!f3Glea|PoKSLJ0kW`$f;*0qQkM_H1~3Ub_VaCM{TdjM}U)i zL|L9Y9fJTCp8c$H;o#t4;)5&FTWToTC37R_FNZ;U4S8$s<+H6c$dF03c#&sx1kjyV zv1eBkNZwS(hNcLQp#W_{)xEvkLV4HE@SO>JWYz|S03Q3Hh{2j<=!bS|F^K8Dm9 zhx^#z4=E{0c}%>OrB^cTqB-OOMvh~DQyAfZ?=b} z(*wDC6aD5^Uesk88R6T@<)YNZW8-d^U;9(iPX?rsjm`cnb4SuMCZ|E>2#@K2lGYm> zZMQECgJIxQ_aQLEX8oiF$Z&NmJ@9iSm?m?*CBkHJHL$4`z!DzE{(^*G)V~b~_8t~! zn98ybex@cWZ)ED28);WK_UPQD3!I1hnV3Re`?4AwPXv-}sUJ>+5@n}5HzeNQd1^)1 zZB`9DF&e%T0b!gm6P6GNRzKNSybfo4PvAb3u`qX{oJbu^K3izh5q%Isn`QLQa{{eL z8z2*?89J_Ys}PR^OK#}2z!sn0W8&;}^Yf>GwQ`6zgD-!U*eEt~@oBAAyPCPf%a#?U zzy9bCKgVK5NR2IBaIpXjy|NDZ2L1oA11*dK&%ZmLI(W^BABw~+_AL?0=Ej>KA*?o; zqy%}LX61`LVUX=5-Bk<1wVb~M>i*W&I*6Nzca(Za>DkFX+}$7zvHv?jzNGC~CyW_VA z#WZ#6hcR=c=9yFUpRwICaeKQ_tcZv&qrYWQ78Nr=ri6ObGoN-qA)gog;Zx1=bw>+1 z-B(sbUmgq&79L8C4_)FYUxEf1zLWu&aR5QXMR2b?9&e zL{n|P;N?o5>-yi&cbU0-(jMPjSZ;=mY7bIM1uuXy+wId{uJ0U{H<+v=Xml(|AUnZt zszpaXw%fJqw5uJDN_b=QZb_LgmBPjNQ{{pe_n7(8rv{cj_+5!iuX8I37G|tmU2c-+ zrngWpzGU9!;zTX;avHczIDGNohp z?0Jy5bcuT>6g#WykB8`r;DxHH9w-?y0A@R1$Nk+-x=`2~}?b#N7XQ&L5uF9Me>srHX` zmaX!e9%RN66J+C!Ry;o{_6`;Ci!rgq+B>OpXlCjhvt(y^vmXDCl`5kHV5j zSMNuXFAS{w_P6dp} z*)A5-WlzE+t}-2b#sl3}Xz})7i84`lpQxM!M%XhK69VQ=nVy{_6z!9adBTr*?qwBG z{Qum0P#sYqbgEg5iv_ZXGt9|Ev0dm70haPQYJv=iB)3n4Udm6S20m8^!aoGwtZ99)A=CyZx1>JY`z1;%$ zMPZLaggj%=Xehx6vqMKs(vptFuPn{^Lb9S{%)4(eABk(2BJ$O^q|s+?ya5bulx@B* z+R#&kMgEO=14?%WYp4?iOcXxU=b}tAl+Ef+7(21W>Nu8&ID^W|`2PlR#5>^b7-2^s zYrQ%7feETM1h!60Bd&Tk=QAi2$xrz6T*#-JWvmO3d&&N4p1DwAkL$h-0cIFPzM!dT zhCShT`ZPiUzg{*%fl}CGINksuN>m=le`i1WI1YCih|UR|?78Mm`smGG^Wl1Ww=0?P z;DIw1@5@K^A^h)yu+)Ar;m?7)QtYh*^Vo^P^!~r?Iujct6xR&CAhcc+*^tXCs-y4A z-(=pV3V4FYhH)!bFn1=Z4mN(e%)o^5uYd3!FLg3fQf6K40ZYmH&8G8s1dE@u1&UMl zwp(RNA)TgQ0&}OVZ#R+;+l_LBp`c{BP>JIKR$Dx1kl@n|N4^U6S5wW2O?>i2Whhdl z4BM6?)qj_83JTOm_%Y;H_yu&Nz0FIXdrQWHCdjs0xXD#24O&G?05-f44>0#KR_lKWW{1RgEh9MPa_}{0Wp4@e+mYR zOQ1ugiAvpol7pJ|S=#LwnPa(Q5*tBLtphVZ1$D;vJ%Fb(Q6L8<2`N|4F^^Y*DXXDG z#LA4(@<(UbeYz8zJ9HjK4G$5t)7A;+-vPK0IgOypg!ecPp02LmgB+wUE$;-DbQBLO z#GS{)sTT?dRH`};+!jOjl*&Mi7VdG)3;o{nB^Wx)p+JLwgk{4~CQ;E=$j!x7J}H^I z)dLad^y9MEeu1p^VX`P_=cfY#QmY|(2*M~u5S}@XP0|f(Bf@lQgyj8wu!~^nuELC) zPG#{kwa6~_te*s?K7n~F9d@7%8h$f5z7Gekk;m5g_s$A4K7=~9MP5Ry;{OL0UFUl{ z)2@-)a}xX%(}86Bm=~xRxS%RphbyLM!nQI)`8M1_&4ebH{76^m!nj2kqVyJD*AnnY zKemT)NISM^Aw3`X4VDVJ=R(Sb5x{}g8;1wi`7<0BZ5L56pwbUZu?-r1x5a|?nXe$N zry!RbH!6($gE~gCkh>4vUc@-dUAs5eM6)1y1&7PHNeGTWnLPe~VB9F^DL6l_d+$Hf z_9w1?#e~}X*HHF0>ChF1tZYxpCrjrutiPzd|2v3zFUR}py}XSd)?NSp!h}fc4{S0Q z=*YNCDIdBvcR0tRGplpR?2>B2``&{m3wCxLtG>6tdec_XbsKVTAG@+||NdY*vG5VO z<-WjUdmoxIKTg4a@|M%ubw3TIw(>CY2{#-U?sK8xG-i%b-JNgR^CiGy9 zaSi(hS0LAK)31#BlIAK}3Lr8uaRi-))a;MPOBHr|^2?q-1_ns!m=rkD6-ktQ#MgIV zPuy+r^$-OAJ_90R-kWfHax%`2Grrz}U7t0@vOthAtmu3ri4EDs3s;T=)@*=e?d+mz z)Wt(IiiwaD@h)Go;?JgBbCH3}Y$#eA>DqNc4t${qF{Pb5o~6*=+kc;WA_jMrQkr|* zs4Xt-9cZHoYS^7Au1N|uyz)1twgIQl8FPkxlr{V9uRwv~PdgD`;d(PXZmw}rOFoIZDeAo2O;f>LVq$d$Zd{E!<@eUU|J&tH zz)N*>3{>g)XhW&E5-NA@ZUH_C$2W8NM(wJHsyQHJy)ZR2*kDxRW1d?7>J@keGi*9# z@L*XRY3Ja_-dV0wcXoano3ljd{O(>LPjO8&gHcQ`$rha;B$HIie6`w-HTS&@1r(7cYOYvystuGw*&m+=FN2L9V z!Ag2LmLD&jIP@{O7bqPBrfsYOjEU?w_6Jqb|t8Y|uc}H;xFII zPd+zRtgcnGcccI9)HXfhIMiyaSe`Q=k)6ipPC1Wi+AC?iy1LwdtJj+`MHZ9urS0n@ zU4{+5RILjO9T^sQ zKVQ{t+}~wMJ{E)?H=f!wxgvRLv8iBLS;0%DdNyvm5pY47$gR+gN{=vX_HrgP!+PPJ ze_g&mEQVM@Lxz@p_n%KQ!h6jVdwUoDW+59%Mf|bcDD?B}cs9(<3&!1cI< z{p?JQ!AId3r2eDDL*bKlEZ06gC!1ROEk2rKVVN5W3)C69%^HPw=o`HfIhdj)W#8%P zOBKla-r+RXB54F0uB>TQlnq7X>;NdA5}4~)2Q_3Q9|j3|56bAD2xt7^5;f~a8)**^x7pkBg@va+BQni*XHUJ>rQUhxD1A>- z44iCN`Ggm761~sQGa~Hs8@dX--1<0tjs5^Us~rqw8A<2UkV%n%Z#aVw(yO7Hj!L*Dug7S*o?W$E8!$&P(KnNv$sK4~ld9@j0Oiz_PH z+pu&L%D%h%4sTEvee=TU9q&oI1Qo5sln6D};{si68*ne@G2XZ5 zb(c$aDeX$9tpKSvgVhbc*ZWW!yT=&mmdw0;rurLu_orc8(oy)A!%No*=@DM#uMZIt zrJ!=>tQ@CUS2gD?cDR>5POm%& z?sjD}4p0+e&g{c)eF2qvVsgC^e)EeRT9d*{uM^d4T6ziT8AG`ZN_o=TEDWy6Fnl$lDKdMDtHedf_QSdQD2$6 z)98^rE0@&Q`ma}bRU^~WO&v3&NM9yO+zP=tN)|ogLJOLRjXlyLUjdG-f^?rW*YdB? z74r?uY?7T3q20a`Iu&!zvmV`&gxY7wo)(}*`{gHhDe7vDNp-wRS$R4qJ2R~S=Rr+B z`m_Ag^Sq}y&53T@jUz$I8WMfwg@x)Rk(ad+&GVW&U3OY{&QGc5#dKv1eCSo4 zD^iJ5U)1q$Ke;JuH?-rO>}@5Ga=A1aU2ZWNS>y4EYcthA92&yxQ?xulDqo zI-fR1a&Pxs@QIF+!kIf=6m)bw= zs#*^Y3cO)dAoo>##r(OL2_k@ zkn_Z-&`xwi!^j**{s@f-0@~>|I;PU;HSDeF>Ev80A}$cdvj{hqZSogPTRjNIAtA@7 z5~(k0XDJ)fmc11f%Q_a%l3$0KFc#mjwlt)4ZGyu<0;fnCRMoz4Cle;7eo7`8>NR{{ z==P$vrBb@#WmBN|>1Rzie+C);vD4jO`hyDEWv~%R- zy(2ZiKIaDmpnlh|ZfiE7UB|-vN&V>8dtEg=(q9_S3I8e_bUy8p8L_z|Z#Xpcq~l<4 zRnd6yfE~-0(eO09ew1<{^GJ@olkcH4^%eI$A<4d5nsm*xxW2%)VXCZV zQ_Cn3G7;%7Kp>tg+(WN?qSNk@Ag@vomkG|YPB2NWx2&zk3 z=?kWRDbzM=A9qbn)wdQE2RjCDwjmL?p{EzQlp#&@q4LzZ=qcseSn;K+d;dE5&4}IS zoKYqr9hCy|C|_A7P)9c48vT&u*~emFn!Dcrc3Q^^2#}Ar1oKFRLt{%%(o3@=NF>u5 zU{xdHUlOJnllPQ>12n%sJ$Nu_U2l2cQqwZMpSg-&$*c^j>f@I+JUopBHJhe%k~$o| z#aHxmS)L?=Uk?9lna{7;iSR|Sh*m#nRj45|$Cw#AXp*8;V9U|i=k4lqNS3h5FHDm5d6+~x=r#LV?BvL8i{@-lKVJHZ0%`C=shv;V`x>hx zp(4>RM46w_tINP)jn__1yD)w>=0`4ofsvzY{#BQgc=<4M`^0KtPxVKpj!){xdnjrx z^Ku)3D*mfi9Df#YDc|MG<8KBveTU_@665BAoxM~lrKhVX4Y{^mxk%XN&P7I1Nb7K; zzXfj?QF<6CB&xd(=TPw4lMH9bm;(FO^j%?bb@P&_?3ylWv8yec%dQ(YpgagE!Gll5 z>-e^qcziI2IOAp^)4HJ8IyeF+?^^1m;aUeVD6|V1#e7=q5R(EmU`tF2kIb={93R{B za#QUbwEFU1wGKSg=J!w-^d~^|n&R4$8i-Zj>Ft%WZi%nwa^r+l6JC#%{DN13^f6_5 z&RP^#T3Kqb&b81G7~C0b$MP!<7jDTZqVt!Ga~SH{Zp_*(_Zp;idN(95z4glvmTeSI zTJB;lqL#OT=ifDii}f2+6*EGkHZKH~7^mR&K;t-#z}nR@Rpf$nfc$purY3Qo@!6Ng zpS-@mdMm?NHlx3jB|CkO*$xcn5ECxe8CQw<9waGj&QXtK-%Qnyv*rl%A*SbiZ zu6pj~C@y*S+6fg6y!-WikcK4%+$T0+*C6y<0X=j42~#zN19H3xU3wNXW9fpFoT;!- z&e|EhkP%rOF3Rl7{)Cwb;wIWxlLn+(IGMiT3*2@>Y#_lM+-JC-)(Of`OuNCMOr~?Ij|7#uxurE9&L^eEF25$Vxsj22+%0@IkosQ%7frv!4wnJ|1avq87Gs- zWT;9`vgz@Z5btq5*lxhrSVgkwlY6*GHHu}bC=*?roiq2=zsm%|p73AVFK&xgW?NnT zZbA_$l^2Q_RCPF(iLm6%MeqnWWgGZ(Fsc~cE0y(InP<$epMsbByOVELc5en9=8you zu2|ciPeA89v5H47!8%(G4+3p!JTt`A>&nLyC5HOpe)RUXq7}w&53@d-zY(fPuv!7s zexR2VY-LF68He)(NH%386}t+Gu~5l3_rk!97ER}bh3d+Tj1rkD@}LAvp{U#^70PZ_ zu$iy@H1B@>&q&92J)mbV6`t8E78fLhM~+i6EcpX3kM?kxMH@eeFsd>recGmwGjNFS zHd=G0pVr(#h-}+NB4_2dH=>o)RDsNa zb+{|9e@5Bs1RL;-nI93imrV!~N`S0co|b3PUCnqp`B`)n)QFClM{>HDyNa>ff>WcFtpo(FrDIxWqzEhLRNn396?8kkJhE_ym9z^<-LBi^8C_#oylDqQ|meeCI_pb7AAi2gJVfANfrjuoL&V;S*Yi3BjR{e(&_OS`JRaTfSJ zkMv?(^WpY26_NMwRUMOB58XH3`iZUf4`m#53Eu*~OncOBr$BQI%#R`AED{B#W(V%n9Q8 zX1PYf4fStrk>kqBaYZXe?WQ-5ut|M}6wIvJ&?LQZ(^;>Y`+yPdwE(I6a^z?<}$59NBw%a53-thszlUWzR>K2EA=;{O-~=YRS7Y|7?bhD~r|x>(pU! z28P0a=BK4`7%}jkbeEfdJ1~7bypNGs#>SbTPMfl&WF8@rZXPb(-qd(mRo3hN+sv*; z4fT^WBvGc-XrpscL}lrP5-BC{p$YyxH8TU}fzx*L{b67WbW)@mqMM%fWH>b_-)XgT zyQrl~II`ej>sfr(poOv0HJ21Um=e4-blTMUb-fy2$Lv>HdvgGA`DX5)q2JN=JUk<; zl-N@PVN+h+V&_9{OP%1aa>+Q7o*`9MCKOR(btB`fflkiyf>DKsVMxd{q~L6t8oG2& zOj7sRU=rwd#p*vz`lFAI{;@ctB3}uLcJ5QZLp)_(;0Nc^;NWPan5VW*m)+%Mg`qQ&~>!g45_ubmSFAnu~di#6F|X@oh4c<^fmO|3%K=ruv4X zd0Mn|f)BZbA0efOpO3G0YOrN8?CJ$C=;G5)&o7zHCO4UvJ#S7+icJ?i(V>zdmDv2f zi0UG{I0q%)hLfq;jUhZo&+~ausI(e+!*HG@BudVv=~&W{7TLn%eSHN>`HSXKbwj3+ zB+}3`0}432;BX>?KJbQK|5;*ONmz*fT;$u}@FgcHp=VRYOlufWMl!Q^+NRTr z|CSh-m6Gh(xI)%Rcay5?m8E!3m7m~SP7rfxjaA*oGv1UE%4}{rG&BIKa>e^+%w9SW z(2(jxajD6*F+QZ)O1PACyjGlDb;{*ad3J=ltXKA8e4C4}YqeM6J3h09IjSS3C%;)erS=WO`tqjmYH0KAQe(7Xc7!072NWh71@@tRcf1 zGOTe$z=1VFSR;frLRcdNLOrVp%NmG*vH==m zT7wuE)?kQ%VGV6osbY;%)|kT@gT-)QO{QRASQDeGobmsxIZ!-afI7nJsCxR(%d79K zq0kx%;nqYdh6HQ+HU@?@eH#PAn!b&JVU0Pgf?jQ@&bnyC1# zofpFW`xO4;yZlerfBydC`O2T3N8f)u^Pk@<9=>ydgJxFS|KEI<|LOYw?)#5+uzvq} z{y)F}co!SPPtW{&9nF39<1Y`EX~mCU|Mfq19q#?-2R-}WK98>dchCQG?Z>_U_TB${ z=D%yFVs#|{kL~>DGyl=fzwg3z^!?|*|JywOdH2UV=>CuIKmY%88$W;l&-Q-&{`uYi zYI76r7u+`7Ciwdu_bYBIZU_9k1BWtF*5i=%xdpcww*kk5+X?^f#4+PG;@07QgMWX+ zZO7fyR99yHjU6gp;+R!cPG7{~n15|zcny6jFRV~jzrkjuu(d211dIP~ zxiHppp80qO2Oc;#vIm|!&-P|l_jj{HW(b%@)|KP{Lcu& zt!c2Z7;8cb!^kxa76ZeY2D=J|H4PSn!y0o~V-Ek5G+6(p-ZG)|ER%J6Kcttg2zdFL z*52H?wcPTYUh7q@^w@~wU-uFsn~6s^;MSpvl-Or8stk>N6mX~nHTGHmZ`G6S3jc1_ z!=c*4*yoq+|L*Ghuc9bxP2$#IiCaS=a8$2R&;LBO;oq0#2F#1!LN}^n#m}Jqju)JE z0HwZA734o{OqQl9jQp_8$j_D0rMJIMq1zwtpsEfVBzAP)#u(=FbLeJsV(|BO7&H7l zSuz9l>2SkYa~?vvbnIcWXzNn|wWL_+cVy zI8lmyutL`Sv~MHYCB1LMIdsrlVD|g@6eEJkYu0{rwN?e|Qa^Z7Ig1=8RUbq}?@yy* z^f<-^>H47WPG6|`w<#WW=M^&bsy{%&Bj-DEc+?X3j;Y6*B8~`@2z$aQWFSvLi zV&1pu0TIQnM1&E~mui!;Dd_dJ<}GKmva&sJe*kxI%~!NnP63QaWp^(61@pDGiBQpL z^tk!DzhUYJ`Km8<6=xfzlup6vD!6`W)Xt8bgXxq@cikAM#{^U;T;ZY{mALF(dbghM z5L83N;l3f-_;^q3nzQbn{gH)gl}Pw}#vVQ8mNs}>3;zog#l!i#qM4|S*gb%Hz?mDa z{Dok;j|FwIS%>U9oA+U!m({)zPU?V9?(ZOu_JwKOI^kr~EE1VWpMSKk9JM=*E#<+G zU)m|{ukYqqL=kd|{89v`{DxibLQO*)&f`}!n&cO+N`}v@m%T&EWZf}6e-(|>{2&_r zdgUsc%XiDfuHpA@v-ldQaaL`@!Y>%Txr8BtdIEE9Si>8OdsQ9d97ba?7M|zPO?^J} zvPs_oJM#9V6WaYRFUOvSlt4Gm%x2xUFX?TUOf8Q1a(DiNiC%@5_^-!lc1uG=w ze>wd7-HH$HZ|Qv|Low*`L#$l%x+f;3qf5dy2o3yg&X2VXxQov7BzrVCG&-IpSLv2qbjGcWEi#w zy`R6*HTVtd`XetIq|n{FlTY%3u>AJDL1<=tks*^$oQg~k8slOS1RON$ECs7kwMytr z13_=Y*_uJ!s;QE}dG|&y3{-nDs2Ifzm1{tKQ#deQ360o$U$s#o>i`c+4MJvrNz~d) z#RnBi*faj}XsYgt59EoL{`QmMltvwlAOxwrv)wOYGYkfYOG2QXxb=KVct65bTnJjG z{%fL)c>CWOlMbcmT7M)AymI>eyiY1d4E<6tHUIQ`lPjXkSR-brW3|k=y(`@-7Z+{V zv6ku)cEnr^J?1MMBi!I<-G^$L;&6BOqXF>RJIm#IFHMn~OE>+FJ^l?1M2%=UWJe;% z*_qH|+rRZW?wN=!v!->4IEe&C0-aO6E+J~<16GlhvsvY&bDkmDFtlohslyhht znpc808;z~L>?o)U{fDlca;tte7^*(8m6l+1fF%1m-sK?+|Rs)-3aED2j; z(_;IQy%=PQFz`MJBss&;De$3Tr;$94`+dnpPg!^ex`d-4wKT?Xdb$5xLji{Gm0qi; zXBu_X*P@FDJ!Fiv%wwv1#MeM)wJj-=Iyet3bxz3HVigG$Dlo+4=u#1G#^$0UnCT)6 zZGX)bPFKF_2zu;cG1|tHR{bRqV7f@&Ss`8<}b{FQPhp6x^^rMDAc*#>~f_I(F zk?>V$i=0FYPD&{E!0!RD;m|(Rdy`>ZemkJL@xSj_?H=qq>LvUhbzS)t;a=)K><2C% zL1AmonFoHX->j+F&^|^XoccKX&YeP89lZz->g1a3pnLE>I}ex{G>o{FvC0XPQdChE z>cJw0E0S>aSTAiF{jTIggH=rbeQ*`G`Zr@uoUWNK+s>1ZEz@Ir^hl2v^YFi|V4P_5 zs`G=@8T)6Vp%(9E`_YIHYDDPF2lu&qSiz68h$KeUDSKC^hSNdV?)=R8f%xy(s7_<| zm9l=^{{y?9Z2CZaH+KIsGF2WL2LHJK3_;_m_L1sU;40Xn5n4swoje8q17E)nkWo16 zW>UJi3cW1s`JKD}8QT#kAZJsdh{>kmw;`mP@ zUEy(&z>oX62n8)i3@)$i`8;=ODXa!lC_W>;@bPrrk3q7bPA|_{)h{=;|1(Z=G)}F= zd*pw{DTc;zBjlG^d&1Q9)uAKC?0=;Ew(IK9_Cj5DoWdLFA6|dW9KRo zkH*4*Ot^QTCakt9vK}?DUFZ5gOa1`O?lJ!*jOuZI2(-IQj$jk-mq!CSlko4W#YRY1 z@@L#zeRu^O2UmI2;zv`BsHy(klpmwPWTiu0*pDfTA;3sb^!~vM>|`PJ?W@%_L$G^8 zmww!1`~l#aXfyordlrGqds^t9HO2Lz-<*e57myRl)rqiGhU?Ij^9AF?Xsvk>kHkLv z{$I05=X=od<3_u31?3rD2JK3i#`q8uJ|fBOcYDW*K6t?c#-<2-l?n$Gy?!CUNlduP zT0{u`&C`2&TE3Q_yorE3is^d~FHv({#ar*lfw>Q4xj#I-q3eQdZE+H z1EaQ3?C^t+YWHyRW1-Hy1k3xeD1c%pLg z7^O_3hHwnA22l(qze#g^TfX8NB7#V0Rcqw$SNnU;o&D5IgE321~ zn8G=wqI<;CC3-no8e+rNRBBw50Z_4@C$Q9${{c zDv2E+)L%u;orW%PkBEE}6dhXp;UK@7=F@$rgs-BTy^o1U~;qf4k=% zJB%7hz#2(Uh?Sci+5{lOk=-qu6XM~;O1^QFCU$w)aPmR52U3bK_UwN{ z5S?L*t5id9+Lw@yiC2tbami{QP?sW^7`fy2M(=HT(fr~!1ilAIVBqfSMV)zIaf4iZ zA1xt9SdUx|y$_mvFiL0JjsSqUjQFcB%PhJ11|e>NJ+y0ob(LR~+3zC=G&Q*k?IOTN zQ+eNh3Wf7tW}F7Z;6dCJLLdJIwGUNp*c=-h!hv`c_$R|U%6vBoUPGgv!oYn_@DfYS zJv0OnKD2@oX1aThaSLGsFqXrn4IDy|ZCn7o<0OLMu#5M|yJHx>8E-=fqIu8j=ug;t;j_#jzj3~zYd{BrQUU! z&wL2+Dz6}b_VZkqd5s}rr3ChS*D>yIt3$;+_zjH8|8$;a%#J+HT_a+|(Vcq&* z-R8V^x5NGXvv8hjER)uQW7WeCj1aOZ~gOz{3cOOkc zrzzuVk=~4hpO3I1VrrKN+uLo`-~K|3sunYQ>h5`n>|yPJ-wNCaxN4`L2OQHahK_NL zhQW1PWFKL2!hp=*cYSenwnz)YZQB3h ztz?$4zEznIJh%^!&4Ky#RjIy5XuOyK488TdE4T1&o{+42iRP#vh`nn3ZubIqZZEDH zV!YbU+evpE`Tn*%^HTpO!eCY^0iCsoQ;mr}ENQ>EXHUi;OkN#|G*A}VY}L-0?wHSr)#EU^z$@6ZLW z$v60-TU4~lqqQX}=DE8&J9~8)lcVD1i-t&l8b&mL)2vM7PdavI&hr`?jOnWH;{7oR zVaK8cH>DVi71tyF@z{hd?Z!1%S!IvDOYr1l3}R9r^*#r5^xUJx%28uyk?itB^Tvrh z{c^0RUDX4dhGqy_gTx(8{cp6BqQx%sS|I$c#yk;@vgg07Um0_`$Vjj80kZQKL<7cc zc0E}i)DK@)xr6_JDNAR^Tnmj3moza)(LKr;=~r7r8fYGMxyag3kj2pPaw~ax$g5Ka zu3$eKfUZw@V5q(wg?dv$1_=hP5csLKq-sBEe+TP`hCe`oJ! zYgX|F?&0RqO>iXi-bNJkm<2v%Q}%i=GJt>WF`lxs#UZ|UDH7S&@A4Ub`J!QN&|)|^M)vKR|~%#Cm%{P%ie zb>$~sbySvj2{$y-L zDmP!SznnVQRm^cG+Kj$Xo<;T)I9pN8;Fc@|fc3LubZO%kWSrFU8+rAtyx@+_A`li% z77GXojm{YM^B!L2PSBm)r5Y^`re`goJCgkR6yf&c|3%Z22SUAl|53ftPFhCUBCTYZWM3-LqNGjsWiXZO$cS--qip^$x<#Efi{k|Ddn$Tr5<*WbN&-mib&^ZDG*UCuf8?B|RqT2S(T&j6bP ze`6zv(6%UwCP(6ypLuKtkK7TFbO+m;Xj$@KQV%O1Z?JVC2|jlIa;f{L*k#v` zz~XZqGkC{zY=xOfccDS{h~0hnYcl_x2l&74gJ{XeF;|9wy6}`;dAupVEON1v4FHaL zB9^wRDIzg-Q9O!vf&vBkIkcz21{scj3;cIudjVY^5RqCzA(Ai<+X74SVLZ*rtz;9c6$E$mNI?t0SfC;P6!{3@ZMbJ)ypoXA+AZ%Q08r^*>*~5=BwtmsB4YuO&?skb#^L^GyBuAeK`)d zluW)d)JnewM#RQJYWn_3-EDU2lb?<9sf3`hQ+YV(GanB{lX`221=-F_Gt{$YvXm1o zUN9j&1R(rah9m`zRLwC2*xpt1xlivCz*HDgNuGrC7jR!LmHH$mxwvU$m#mYOoQ-PR zXr~HyO9?{k`e^Ig?&>p68x|v_kotu*4Xj)7N~`CnDBIKGFUUO4AXeBSpp^Ak_{E*kuv;7R1|?^Sl+N*Z9qwyU=9S8B z)^OdVDN%JAy!pOI2$I-#WnYoy$1l z_MK9!eZ&uXTQMjQ+a7~lWAJ>H%i2Uz*wF<={`Mr z!(ZurxnFx+Kv3YQWo%@`L|Z`Y*7CY+q4Bb|D$@9ttgE2Hr4l84{e5%D*VHl6@qSnq=jYu|yC z@B?4{e3d2`VNBr&LAWamq%G7mx%vnS&Nc)vyEMy!M>Uy|BZlcJ%kA23S`XQK!8idV zhz51P^|RR;FP^}9D4t{x*ymUPOs5O);KmZr&ev6bcgrPD)@E;4f01o@hvHV21>W(L zP__MG1D-RToGiMVa#DRB-*rM&=E-AO^lQD#Q^e`} zWyqi)`J#3HzWvuw>1b0+SxTGuu8VMMd(dQda=~Fvs-=GA=PE}Gg~r)QD>ZYUlmp{UN0R?Uv>pe#`bI z%UT0Jrz7>+)U*EaErA@CceN4)Pb|1PxNF+p_Hp^UR5#>}VW$p z67O-#yp3D40I8K{771Lb3AnZ6Y_g5zzfh2bAnRdYx9x^=?$D&sL5A_&n!9*E;CvUc zd(g(2vjoroGlp>YKbNV~7R_Wjmgk~I@09CBCqJ7J0prXYy|3b&^L^L?D@lz^jTC>}?C*+B!|#8LxB|oLiLlgxxT}<_|5f4SP=1*$Qapn z(tL}41d}_XThv-H$I$;5Y5~|Rim(U?j1KINVdVx`sW*U!0>}am<#%V!<;g4+#~*6; z)buQ&FE2|awGEWODO=#_DEsQ3M&6o?)tsM>tQmn`8XS@{-}pV4g=*)^lv$>mBG3j9 z^mJ1ncC=;;54E_)dO!$Kkr8&%p)SwZwoY62)X|Cw?;GzSvFITS-!8Z#Hpyn{Cr8y| zB*wmV$z@^1#cE{)TGZG$GDpwGsj4TH67Ef@WDXZC5cBs2vgs;bwuCG-g0-&~gy@1Q`IDqyP!^N$gGKq|#Tz=S66YR<;9*Kq4(q$DLh~ZZhE(@OUDk z!@LgKA0)S>p;AbI+O^pse#*agmwQ?~@T#1pW@>DMDvTBs{?@B{$6_rb+m0_5#z~e( z*_I4L+#*%Z+P%X0P8Q9fIJ%Uef8_54!%pC>#zYWY02Cj&O(ux4)i`o|VCSTC5VAT9 zraR2GjSt#g$!e+ppFVk4&&os~SSn>7yh!`Ghf3yHC;U_Won;CBwftSoMUA4MPIWM8 zlN}5V#gbnQ(*|byfAto`c!v-2nZW>o#5O$K=4A&{*0`^TXt7@sq192uu_2;-Td%%) zaxg@pB=Uw_j>)8-iY`A;G5afoLzG$!VMRa}w$5G1VhrkJ<}@UA`x|rpE&XaoRfKx= zHI327dOgAbuoP|JNXuS3Fk8B7bbs_y;B#MbY+3?@AOXWX*#5lC;Wmo&P(;7ahfIwl z8aXb^My`mQ=Z9?lAz^3eB9cHM{{1tDYVb)6d2Po84R1LhD*ZjcZGZ(Czp@b9U*{Z($^* z`;z6gz>sLf&EJGhIK@ee|IGgwKj$5;fiH{6`5&;%09InZWpzR*Qi#Jv_Y!~AmZz@! z!x%mC`2xO+PS+1Jt@+#7cL?fJ=IZzLZ4!clyH}!R4ZKzf=Nx(Y#D0K(;w%5oI2ES0W9bS`H7A~ zs(*mPw-?fP6QM8_Z-r+Eu?AEd)+y;%(|!a-S5js8BB$-vM<*v z0Ah4D!Han*@t{@buaeG zNoX7rN$#Hq6McUMO|4*w8Y|^fSB3gKs<+jdy$>j(yDovR2hT#Gcv5hH-nu7?Opvao zNoD3=b6YC?UEiI4R2{`bq#FAL1qj;#5wvpe58EV1fk{^uLB^lx&~ z-o-@2wtdidUWveQYU0COmxIs4#h;C>wQ)3(T58w$Pxl3f;!LpLrar{{p5)Ork~;7) zzi`j&O)4r2N||N(PR=deZ^iK6v%EWEN}V#7+Gox%z@nt6SO}m^j?qu9|2$stE5!Zt zDXWcAT_p+=1^O}l^G3efl1JOX2zf=w?r_Z`J%bhpvlN~wor(?$+s(q0NBOgZXEk3< z*Qf0TJ3#(L(q2&?s@pV6B51>eU%BP*l-|AL4aDCwt#(^Deq&?o5oMUG6Ag6&?39{N z8(zzB(M&}A)}MKoo~&uNZDQP^0O!+pCw*^@z$p=Z^q42kB}vPdj?tpx1@uDX%<3)! z;Gt4obhD z!61yt(;YD5&s*HGvWz7gW;TQZ!^3aX(;~g&t*gTx-?FjcWk$gt8;2wzfNjcP9isf< z&sUdB^iwAjUk$Mr$zIxWwLhkebZ^K?2<0G&h4P#$w)G9k;jM;PVU6V`)MYKUA6QZG zlbt5md4fr5`q09Ki+UbT|;ui;Db%sH)Jft^|M&t^f$2^guxp< z1cpn$8ihaOALfO8;l87i@8$Gm`9#EXfD{Bt8;~hnm8y)S8_cQr)NEErF6n%Sm|sqa2L?Euo&$B@jZj3ZVNBX1{DZE|rd7yp1Dh9V={t)y)9%0r~; z@PeLZ5f5i+grt;d=bhYYK~Hu|=tQ(671GmlA`-{m1Kcu(n@3>D)pQF%<(Z@%JUi@=AiDB?z+g_8%6==w zZY*YAn^+4~{n$i^bCN*N&k==X&Rg|j%^&z5en&JLq=RCh>VmB(LMZItU-@Eh^~$x| zuS;0pg6`dW?f)lU8rgv=DBE)VdQQLpp4wLGSciAWME@_-sP1n!z)>gx5Mc(oA#&%* zL0QcPb8)o0^thSaPmt=T|I_#aYO@ozc=dKDP;Yg07DUH3TKHX`y%|wvocIQ8;5#xL zL)UYr_`h~N51IH}5qP|-GoK1AaHI-I?A=?I$!ZDQjc3lq9~6HC`7dc2sw!u6Lk>t9 zm4!>O`*RqOKXjuI$+m)Rt--U7c{$9gdcy6~KAAq2_=IxsnwPt`x>!xhvZZ98`tnqX zF(IZnrG#CldKjjt>1fst#qR@BEh4VU$%(e$sWB7rfU`W(G3R%;ojgaZ&DLo4EZxzf zFHARN10@R!f&7kipP#c-5-%#Z#Y(D%;c@p)q@`hM#BhfP+>z-=$o4i-@VyJ!(Oy36 z2D*Awi<=s2P)a6MmMHE7S!4GzE5!f24TIUkHSR4DU)gJm9P4&>SvbIZtm-b8S z4sqJ>CzWkMqL2MDwS?NaeKXHRUKlc7nGyo}{Kv%r5lEom!rvnrdgnDnx=#1}T6L@#TOrtAsngBeOJO%XX{z{sc^p>Nwy*HHh)pY$lT_BOjYG6z3@s8XUU07#}NL)m;-g`42LS4#}2 ze0aLduKpEY(Z~FROT(H2u>d{-Ft-f*D{(z1^3ix(+pkwce}>!c_)LE;>zphq8%-2% zfVa^X%C8jCk-e5=_W6`OT~X2_^|76d+nbUYMPm2Oq4$}m2sm%+rE$k%RgW`Ovx7?y zt{Br_4W9-Sk2&OiD05qdk!M*C*a~K>tM<}Wj!%zhun1K z72CqwG^M;Fkq=^hgt@F6Q@DScYguMx00ty6c2It*vQ*oUta9 zC$Pt%igk%_uY{nrpEjBkm$vvp*%rLyxhCPu#-T!vZKp~^yDpx~Nszrv&x5xbnFW-M zIlbJsz|pyyAk^PA?Bl$#54^HNUYnJ;9m$WL&;+}jGgXUB_4Md&e-zec(Ww zlxsyJ5%D6Ha!L(VXkmuN_6F{k4l6&=THqD_ee^2?s^uU$$=n; zoQm}4Mygh_7cF<%t-Z{d{)CkvOTROhoM%+lkNYsJ)(;6w9%e|8Zixg~Y7jzq{_%A& zWHabzqE{T%cV?vdKV*QFtdBw_eC4BVz(vjEJuCCS+v1w=4}Xuy*sK^&b32IeB+}5@ z`u6~p)r6;(`(<=S{qQk=Aw3c_R2U5S6Gn!G5E4rC$MknzWbOI+(p9hIOjLu(nql43dJtICGXvKXj7ZrKP@H z$37sQ(;w7UeByrtxZFUQsyj5``y{zTD!Qzyh`&M>zY>fK(hGhye2cIrjcEBQWop}W zMyFXSqzYr%;SXKgfIM%Ay3w0eP5{aS9XN*OiMMaWRLvP)X`68h=d$N^XBbzH!?cI) zgOG)sIYFi$IY%x(TytEDIQz2y{1I7VZGOTbmpnKp5h8RGyL#J{QR+dKZWu?}p=c(; zn?Aa8;MS{q(QHpAWXq}4K!5V4dTuW_Y&%mta^Zwl&5x-pQ<+0s3_myITe34k*tfuR zz3@WgVsOdEdARZ=)rJcW*VJnw3*4b8S_nBNX>TY;HNfngX06-jCZ(L;S||UVWD1#< z=jS190R=?A3Nk&ye9g}{kUX6$TwW#1c5zFme4pKixkD6`n0zT!&ulF2Pr(MSakD=M zfi;paHQzbC3|8re7O6E3f4VJBS1U7V>t@eUS(_jhamrym6fMXp^l*H%uvhTpCf4Z) zj*fcV$$PH@07-Ns!ul?=6mL9nnYXi0}57{R0 zlFTOPg>uXU^VesaF{bE#Z0G1mfiJuf(5Xhc1V%)NFb>k1Cw>UfS`U`bEToo1=C|#I zMs8h?F&ik^qyq|C$wtJgpN6@tAR%DPyU-tdF<#zeHBPTx%~A)L z>8%`}SS9ht!%LnG_TV!O^qC;hy;}ar@;8H~gwDjY2p0tF^4D$&sKwDsT8+8ZDD#zVoeY!id4g${!}I#;DT$#QKU zW)I{rS<=o)gje@*?J%`M9wl_&uAJrA$M0A9vUhqH;Aal>K78O2r}}&B||qpgb(&rtx}Y?=lDHbx&iee*3`bSx!gjgnrhP zmue(9JUriF0VeI(DRPhoHA!@(#$e7@u`@SniX)VB#8c?(s1Caw?8gD7(_D(iX(!?L zI!qE`59Mmj*!Km5I8Sn`WM+LP)r^USQ9!tMqg8FezUy{g$*zkC+ScEOJ5=|0oEvsG zApQ>rYz*sy00()Mk@k7eqq*Z6U7)`$bh}2f%xQZ1P1eoaQGm+9o^s^#%T*$fyTbAk zxT5rcTO89IGlo*7w_NQ6t6Y;l>fd2GFz#Do0Wgf&&LS%hm)y!B#Hv;jw_X`8TISCc zj9nsKphYNn12P4(%2|avu_<5K_!61(T!vqbuT0t@Q4L~H*5!-Q z!zZFg!N|cXXmK1BVlsthCg>4CpA&`S=L+;VYG%td-hPpnAH!S%o{m#B_oKWVFZi4D zKFt{O3!oOpy>k*Vsp#~3Du(dA3}JmV?p8DBW?eym%j}3I*i;x$-9Fvb0!66H9kYQzUY<1UMMzc z$4Ax*dpVEELnkJxg(F>YNOlv6GT|)vCZ!8@9mrylgt=XX-yYnlgQ-x1P%BB{w;IVm zfGf)vjTfeMKQlbv>JnslJ&D^up1xiSCQ3nt4_`Y2LglW0CSG4GJM+I=!JHsv$3S*a z0!t66`n@csap2cK5Hix2_(C}4iHWZ|91RpjAA2oa9)A7E zfB7F`kpcHb~ltC5>Hx*Rb87of-&iIe}9sOc{+IW8;Vlz z+8k!vOI4~m6!W|qMv06l2N^n!sXfZ=2&g}P9ljtVA;1{K$Kb1G1*d!7zFgRCQ|OCz zn#D-}f*E-fLAZ%OTBHg9NgIYt&rA!C77}g2*JZsa`%CYqq7nEEaK2AO!h`}%#RT}W6+iyM<3!25xrk`wt4rSc+57%_y?nCz!rfdg0jzjd_rEHal54c&8yGk_pC4Mi}WoGZhasAHY zaLB*_w3ma!TG=JkS;orJyrZC92**sy84us;T0`sWf2TLI{jw`(1zo;}*akyWmzOO? zvJgDUio%K8sEbExCp8LX1U1r&oaj&wYvXx=%zx}7v|3ewpr)8(bx%^Lm= zAcligjTG_Er--3(9Iuu3YqlE1$)X-eUZflF>_x)Tb||eKqwIjh@k_RL!mvq8D4V_5 z`ZD#-IyaRAU@Ybhv2&^8_~p*<7}*!A^Cwl{Q&(6?w zvjts9m?*Dv&5Ph)`BwEj3i@DUkUZbMo~)aV>FnT_{~c(q@D-*$U^*M&;@9lRFx>Q? zCb)g;fD*xfw18d6Y46wI^QJ2SohG&(1$}hH+F}#`oS!jRaBt3*xx&`QoWe_Lz)h#b zKpJ^=Ye)V0#rEd&H2PxuY=-cRFbM~ImRwa(v8n$JEN}|qXut8$`LRY~&Rll#?gV3u zQMw#(5~fhTqB+j};c&tnL z;APXv0{2M(85Xji%lKWU{wkK6=n{I)7vivIKzwTs2%nHzc$W8k;U07SAm_yct-!&k z=o5IceA!|jx9dDWiW^kfDAK}ZlX+K{R2{@u3DkFz=V)I)09;8RDf&~f(mTSMr$`7qVEXwCR-c7miwNs$ToATP;{knclW9#eEkp^?9)+Rsvu7Q zoAb7ZlWE&+kgjkGpyCQDJ`>FS@IA@d^%WN`5AJ&=QIJIwy@&bxH!AB7U?(5msa ze3qLK{SE($cb#yrmFCP!2M&^)yfQTZ$4|w`H3e`wF226DgLFJe`E5a9KB=ycn zz+}335r}i+GTgvCt0wiGlpU#Enjm>}&c)G!p}iu==w$tQL-=jGC#enaJadH0TkE%C z1QW)TA?fbsl?H=Z|Gb=jKc|0SRzg2AGwCm=OHSn_yMB_2&Gn~4$2|rEWCAil+Mp_Q zhR5C*kh_j&n_Z2`TzAg9G^QY8ar)Mu2^!Nz)%U&YMLyo~uv3n6=GV&b(>m)@7hUuv zONNhT)Gb=B;So4#{oJbL>;67l&6OOZmG>l_nZ8~g_h$)s9#PrnrrMF&SQ(40(TcT7 zOJ>1AFYPr#?AayUR=~w*&?A89cnhyiX{C~TEuy`aS78*d+M(&&pqgD3KOC^&xAg1y zPTIPI{Zqb*^Pl_9P!@B4R1YrDTeK3(VUQW6+z8Y(O1KoxD}+qw9Fo$%CHU-)2F!no z;DtU?)>tjB>I3N&$@~Q}=Vyn@_zfNC9$-^ zwTA%*_D4#u!X%EM0c+;k*Z8FT`;-w~C%7D+9<_Yyp+c&b4fysBYD!=PgK;5*I8-__1}NmV1C7)YJNrWhqkawryvM1 zSHt@waV%#i*H4T<+g>niR>F{LDxC-EEHCP8HE-_$RAGGqL^>|7@^~T9uCMN1Zw+0foaMo{tL9Y z?=bO0-_7fmM8%WxuKyL!+b#vaub znFoApjmilZ{oWbndZ;d$P%`fUVkWp&UdBqLa@*5VrDou)dn zXD-pFfjUe%gW{HDHAPqNgv!m7htobB*@!KPlsd$F`gi8jHxq6|a(BQSWf(>f*~zJ8 zU&jwfj;T{b*$#olouxA(@m|TA)Q@6E0M6x+`<@h;-4GF^@w@Ksb|R@cvu@wr`^hWi*cq^n>N#@gXTY9awDdn7Sx`v+)Ukx zkp>ZNGla|gcJ|&k37uew7DhSl84PDDK@6ZsH@0j@UYG4%nv@v&Jati%sI9L%?|6Bv z0%$TQ7r=4anIwM?Xzo+I{165Ez;;l_~Ca*qlhsK_B%+jhN(9Z%_xj9_Y z+SFMMb8rQ@8ma!8#1|GbKA+iB8cIjOH1;r)tvl_5mFwd@I`_P?oMP6Lj}2WA&|gmI z9}QAd1I*+*s%>7BT6nQ&t0BM9C{TkK5vKxRh%P7PYNa>HLw9Z=GosaFdM3)Gy8@gA zWmW=tzNI;CW^>AZqvev_$$0%^&J~UMJBzO88b|zUbef;enQ2HY)&|TKSsSF>Jgdot%i<(q z{|#JyhuY-ALn+O~bow1oErBvJXv`?KYKE6AzAG#%gv8B^VlqRMe_6ma$XMbt;p)2=h`P3ANb4+1p{=8;kQvV)&hD`@@51GZ;P zxtBDR0fH3`2Fj;Eroa#vXq;Ggq)~ZvqzIF*`x(Eo+-y4#s3^_Z`X<=nCUBh#_RH1w zzARyyk(3>P5Bf2T6j|E}I`nt!rLL~D{WI_99|2^v7EnR3ac>RkW2})-!v9y@;ono< zYm)kbg!Mrov;9i$@)2T8zFDB{XbXc|5c?P^Nt8=&I^=aBbX0Fz4mmSL9#Do`fgZTs z5LEK71c`^kI2d6MCkI^nZs-od_A8%k*$EUGJ6I)PeGjfJ@Dla*;B_sEtviz=ROLR806oBSpCHnE7AjDhqlp(IdE_w`-zo!m{#Pr0Vf6Ga z1u<)_%q6hrP4Lq*V@f1_vN&)flctdq2^Hp(_JgWsN(>!*D4`Ak^tM593KOx30b6~7 zLUN&}Z)92`%g`FN)%hNc+e$f-4Dg_XI!G9#=#Rus#c^WH))vq_K~)o~EhPQxyLNMJ z)5>wC7ToPPN=g29I;27{kB?N~e-S)0fjHAK!XLe|RmTK5n9wzl_#d(Qrs&ryZ!B{n z4s6Q~LGm=pam2<^a@pC>n|f_EuvaE|V8ckJW6pw1zJpanpttdMy?$!L?vp@TfEG#6 zP}EVBeK8vlAPYK;)L^d)GXc`lpmj+)U+InA9*+Zm^U6CVGaR zHH7L_?QYZD6#|ogt;UAj!hwO0tXQ2@C;!4)3;2NW;T@*TcWsbcAC3wAG5=+&!YOo+ z@$VX9(uGa-ab&=|5QJFWV}Rf=k_!9-mmvJllImK_v!D@7$BWHfdg6^{La_6fR)h$l z_`t1hs=NFL&Mbh?bG9j=>gZxQ@eX|CjSBn@R{mJVJPX$YNTTK+@D0cTMAz$J&YA@% zFhR;H?8HG@V=D9fs8)~z@SA~uC~yLFHutZ9|M7C&x>p^6jvH(o(G~nZ-b|RX$wguC z2T79$KKtJQ?O3-8B**T3%KPC!UfQhdKm9}S9dC1GzTpiHk5+$wM&Ao=7pgR&tUn1` zCt>=CAKXfvbcsoa!08r(ldWx%3UOg_$wq-xSWkI#KnOCGnNV7IG!KrEatz|41OCz7hoUx2H@8y$yt3u-p$ z%^6ds@PoVZADlP6whNivo;0&uE-V>>+bRI8yC=iI?|@Q-M0*6+`6PuH`$ne=flxAB^v^$7Vvy8DaoY==~j|kDJr0R zumgaq0=aoV#zZYvU!IPu2VraBP{=)wK|7FiB6rKCtgIKB&LdT`BMY14Um7y(8Gwo< z4nxGmzKr8wg$2ND#G)Vo1fo+ebrmZd|GCXtBeMfcqKjawV|S1a+F$t~_KVI=$t2cQ zd*ex$AfS29uQg5TxS7DEmt~`7)I9>2L-bq@yk;l^$KX@~Uv>S3Yj9g|#x)GJqa}L7 z1~$wyWO{BnRv-v?<{+wPTCU!GG<$3pM8GFVsR9P0-u{y;Vw~(z>gqb_S{8Wq1l3*K ze;%YWIDajK&MtRbt%4scS%jlMY5_r~2hy$&DsYH#BSl8Xi-F-6=JT*mpG`5s)>Dt|0 zd*C<;)U*Pa(Dlnl!O$S5*B%H3;t;I+a(5&XBRJT2nA0$=J76`>c*M5(?dl-T_x`@C zfsyNfZ~m_b+`j%o4(1x+33$*=)Zro6AT$6kx|MPO3Pv3{IN{wqnc8ygbKAtRZlx=b zs5V-mA|Qup-0I9VlP1jK*i{tE;UZH2d(r@G$)%&H^!g7`VK{svb|)tZ$PUyH>q&?! z+&tzZlP)L-Fx`92JZRB)QZuOjLqumncLJYlu~U|KGmtGQJ5lzHb>{%k0R zIq-Y*?<(pzbF0M`N7`mk0l=1l*wx21yRZmXCZMZJFQHiaSK=vXJQJS>X50y9lqkU~ zSl;C8-lR+d1cH(sbbLXrpRBaX}&n z5~xqKs%DL^goAz;2ftjf0nl6zVf-XwaEs2NW}qFU!00H(&lgZCO_<_Gb+{ea@C!TU zwx7CD64UKliw8SER~EyP3J!s_QAm(`!1Z`F2)~l7K~(FkE>`jBIKTm~ z2au831`Zs;b5Q8G5ebV+Y@uPkklvp! z?al!h^5kWhqA=JPX#E0N4*GWq1~0JfS8UZf*JxsmEl{6AZd)v@U^lZ0>=mde2>CBU z|6p|urhs_wAkB1W`Xa3@6QKt&Rf@E9(w?oDlsr_MH4r8IJXh%rlV5=(LDKlpt5Zd1 zk#4}7^3iB0XO%jJ&*lQ4jiUnSu(mx+cH_wsa5P}+Lae!-31uODm#4&9E4PiWl24;e zxmYkFm6J{60IeXkwdK{M2h+)TtIqLA$CxQFVGBZVn81Dv*VuZ?3tnu>D6;(3qXV5w z&hY6RH*-vkZv@*jgxKxQc*!xZh6m;~(sB)byM^*LvoqR3AK3aRE!*;N>9wV#s)O<2$>bUu>1P}Bdu%5 zRRiMWZ%8y(rS4$@M)es(9p8a`)<6|zikh#PRqL_Tn@jDpUghH8Vxgi~pyGjSVMq*VXkTrv_n1{qS6~-}oBfu9M@45c}=lc>1Y#!xMfMErsH9bi( zBOOfraMl?rZwSB!qbd?wz;~(yze97Km~4NqRkKeLvon3BD0&1?Fsf)@J>KpOde#yre;Ts=kfi8FjH@UL*40JG zv(``-Bas^_J%@p!jUs8-`jNylGoV&fad&`|8xw%04%x%ql2x-wFNY-L+)~5OU zxI7gkUH)(g5QPB}-x7iZ4XkNWWblRk+zh~o&OJ0o$R-7?AveA!U(>6PmVt|fdSOVA z{6a!-C8xJx=Tx$jbj`N{ifDiwKP9JHVcBSsxmqHVg>$(89y=f`9uUrZs|+*@5XA*& z&e7)S5|b)BlJ^?espw(7IY}i0`&Ga>kv0@=-=R2#_th%r_-KC&SIy!7skqDbbvH)n@k*2sSJp1$#StuNfR%$bKN6d@YChdS`(0Z%hS}!P5 zm1;KM_A4poSWhwlA&L-S7o3Z41(|*?ol*r!zS&u!$uiSk=aflPXCv*2o#j~F-XBNhUcvq9$ilP7{w6DE)wp3# z=ppJK(Blgb?>}z~GyN8m3{!!xdybs_5WR7NZ?4=HWu_Ty*HhhsO$a+}79Ir|nwSDA z0=?2YKT&E=j#Rw0t6v4H-rH+>?*Wt@DLcTHNw+3jQnfBqv# z0AVY@yq_Tb_#p_0LpB&9%lwU8V@My_bc(!E55$Rn2P5LlaH}P}i~`|s2WRAJxV>ge zo%mF-UDzkPvM7}HAPJj`>fE+nbc{>efCZd3`>BNxjriyfu$PpC4`#m*TI?WENW40u zpryvQie#urot1KQf6V}#i;O}Oi7dHpzelqnRujY$a8L0He#!@~E z4*vuD{?<`o8$d8WCCJI{->>Wl_`3XR zc!O-5PXE2|VkPcPA6{G?v!9GW?Qto{_kC)&5>GM6AVSn+V~l-a$vtz6QyCWE z)F|%x+I1hM8}V0Ky8-BkO(gig>+-qY_Zh}jp)Ez~DQTm6MW@K#!Rp@VlC>43QD0-! z{QY}d5+OJC>iW{Bm@u zP}*k&z_o1YPXPGOrJCxWoXBjE0~A5qMVHp*&z=^gLEyO|x|_j&vyr zPI$-M_={X~d`kP5uciN4!APJ{Nx%|WQgnpwW5W~b=gq6#6EMGoP>z&~lNEPuPWqLJ zv?LEO1u|fNe3L)HPjMt3V2Xd8ILKJO?)ZC&HMW_XmS6>jbjJJ&vf;zNe`!r|KW1*1 z9Fc5uKG6E8^xyLb8PrbY*l>3-fOttLrF3?eem!l7FTHMU{_1s`_m9L0j z3@q3~es`S>An*A(t6%TQ(k$QDZC!4LY)cx=hv5m9nnToR?5L<^`+*O4Vf4)MEIy4o z=LJ$LfygF9UN4awm;bIjo};vya8tBurgAQZCiLeu0O^0R&*5`qWjFrs#%$cuAFmkS zq$Mt0-5nZZsAFhKp{C%!({}!oXL=v5lE~>)2#mzjrj8cr2PA?aC?aJ_}G2lX&Juzska^r-Bz`I=sOhaUT}Mc zycpLR?;Z6_^T7<>5N0XwGO$L;A>FO|6`KUUy>Yxe3Cs6+n)7$^;9^|$Uz52kwNW*I zBWwY3qhp{GM10>G6?XMhE2MQ^FZ{O+b{aYcep&RB;0XWyIs|b>V!t|{5XjvT5G(=a><{H|3a7!ebyX0cRU_e? z#Xb=}A8jxTl?X+Eq$$lC3|>T_(=msjdwX)0@9l7PGb{5O7={V}DfV=uGqZCe zfei^qy5FYJCA<>BYNSATy^gBxerURQk+UAx7&n|TY$K!DYydYo0poaK+k&P&GD)Su z?VKB6E7$<+J4pH|>3mHbXej3jxAj^;oi{}r9`cHqlu_*%Ka1}zh#Z3@7SR%d z0a#6u@6U)~cLQfCkR!2ByQSFFX7g+9QVpVjPPyk;fOk zNyXdH8X@d-2xrjyP^EipZoec0&dAfXH^=p@OA6%>xXY`uGFLB`3Shjhynp5tg{see zNPIlCVPIlxHyh}Q@+c)wLgUK@Tw|jn_=%B~Wt9ayNPz}N?!E|Zi?zD=?#4LW%Gk;} zi7hK&-xT-@5u_%?)9(QNH+d*gpFKLb&cnB}zHg2Weym^@^!b63yNETv4I4q>F6if- zZ*Q_jjD%@fFfG#gct7QU>Da&SY{+Ue6XSW}EUzzyiEtf)G&^~|95ln!3 zMPZ#GBE6yXg{>@^+TLVw40~ve=4)~FjPLWbD6ZW1vvon$Sl|Uvb9jjGoBMZh-!He!?de9tKlYntpXVd;ZjpL60AD zXPr4M5MP^K(Cwow)D_He;Q%fpr@Da}l``(%q za`+A>0{z|r3V~qtqnqDW9Lx$CXSe2+X|jMGOOl22e6NhUp=2uZN@VY{3U7LpAakj{ z(fjc3iF4ls*dBULS_C*X(zWbs`~5RZtXA!$8+^6mdT&-jor(jX^w~sf9&~yh^15@K zSlq)m(#pUK!SlWA9A;O1iwnu0n&HQ@TR)R_8+?5hH!KNWXUU|y00WtSO!e-_obe5} ztc2_TyEWjUabzVSkK>(`n3g=o8W{3%gArzL#I1TXwa*9Arz;|Z%5*2yJ+9~+FFl|^ zRG}?Oqb~V5&_>2t{!uBP@=#p!rSr?u+frJ5PdoR8Kvy#B6$GCdQl!Iw2$tMS8RKOA zZcJU^st&sOFF$*ewVPcyGpSa${U_p>m(@ zMz)u}n6zuC)Bllz6W45L84 z47)VX2?}D=kBV~EOyP*%zqN`+a4K)#7gJkT0Q%5`a3-f}f$6Sj$1`?j`Y62g;MU7ra>(@83>b!r# zU9iwigo7_3uQRqtSmm!>3@79DmB*fKiw0k!vK7GD*A+v??HUbTUf80%qj%C2Yo^={&g+`%+}`K=d@rx}`!t~CF@p}4 zI)P|Guy`O}nBr;IzutRmYb}kIlaFSn0pQhAms-`WS@1eq&?vB*Ky-lj1XjZv7w!5$ zv+qKe{cC@2z|zc4s(kpC8Y8V|byQWo2AmEk2s}>vl}%he?4{mGV+)%pvuiP*PJxmg z<1ajp7s1p2jN@2P4q)fdrHwzZKn+n;P7WSfvpCbrcK4LGp6?YDurp-*%hfD@C&x$s448Y)IQ8w-r!9B zq~K2E>4 zKzaE!{Og?~(rhk;dKCj@2*@)uCoy|h5Tc=P>vwf*BS5wK3Y0Hb`4XjY-j#1?XP{8I$mMg!lLr%nY_Mf@rS;kmxB1P)QRdbYqno-iJyytF{`WE$8?p>r?~ zNZ%tJ;Cu_b7c34tct4bIASQd=TCQP`0dU1B*1OiZ+)Cvs4RH;?8#v#e~RBP_%Yh)LeGI89|O|fs5Y4JY+p8@ zn2eX6o2`JW3Oo#3!nCvOqNin~DM>V#732pWw50v+Jl2oXFywpJ@IJ%%F23hF^ZfVW z7s9SODNc@$=<8k6-$i6+z3F+LCLI8GXg)a`Zo`cvSGtb-z)`IR7uLzZ6c1nN^k4*c zuARm7?+OQ;uE*oU;DUSqky*fnG&lIa|x;b6%nV!8xP@ICO`4zrQ( zdI7js;P!uHSXWAEI|`QO*Mh=m{yS)m#wg$y|1&0^8fp7n5v)ehu0ZCUK1%Jpwrl6x z8Jg5l=K>Qe?fQomyx(~(Er|}$Mrex)LjFf?o@|GMB}1C729%0oTEqNk3@K1I_5I`p znAehE#{lj6R};>_jya$s(gx!Yk&kwy01cK0;$vw$9?fS2lp~tMIdG?S20v_H%ER(b z9Ss!+rRN&H#m=C>o1W3~R|k$a!V6`Gsa|rlgrA(F^)mg4ACSKd zoQIpZ1Ka~~!En1ee$jLZ;1~O(wQ=XV)y0jL2jE@MYg*c25R^Ous4sD6J98^8n6*p9 zq`+JJyPcW~Xm6xpynwnqSP$2{Bao`?=`zH>gexDU4Wt?mttH24Qx|Bk^E+BXKVYGI zx{nMv{8J}kvZtj6g#r)ldH}xAjvs^qi{3iJ-Th}LV_vb7X9GGbvu$jkH)MBm9#YsS6)YRDMH$<@i2d+ z`IW%Zyf9da?}WQW^Dx6NY+1y^Uc|spw5HjJh-Xg{YGDlw=rFW}1#G!}un4!~J%-My z&4GLWbPZH^3Rc|zO}yCm&f^4d%z)}?!JLrP%N7yq)9C<;0)9jDHbOk+IU+8K@HEl9 z2$0RWEa3rwMEu9)1CkN+4prhk;40@}BP=)pNR*>XuLXSCK@J0jLf_09K(MXX$?LS- zzqB*V00$p>9Zuo<)kWb0Kl-&s=6+gxI0g9I^JL)7Vj}Cnyq``G-hX1nWRU3~2TiD3G-rM!t>FAW%?ZTk1Ce zEdqCgVPO|O*JuI!^y7b&KtS2QxCZ?3KXKB(h5wcP=KpDw0;vO-$GlJw&+gz%>f0E4 zufk8-GMuE^Gj#v9P0;@v_uchx>v7M&ZCdQKg$Tc1kmf{&KdJ4=uHaMPzdLh`_Chlk zJ4!123=KF16%BPLPbb&fgMvC5Vhuu1!HAH$&YkroOMofNd55qaXyVu~41lIx|LNs$ z>HpH!{(a&9{~7-~hJVKprh)&LjN&iZ{3V;eWbf)<62qhL zR}0t~1?c~?n)Y`L|L!R;4g9wk+QTMb1Qc7i&UtmC|NgE0+rk~j^gl5W{pCFWCvcuI zC&GRY^N_btWN0Rp+P=9i0zxcuKw zG#U*%?(koIUho(B1aANen@=^)%7j3a<*J4?j!3V3ZD6(_1@`%_D&QY{uRtEF20 zNN_We2K$H3eF4vap!3bb@E%b5fOe=2#Al-$p0)wJ>EIY!T5|&HI1Vn@Mq6?ObTPxt zvO&_CRn()@fT3YMKEcUT0qk(C=M&8h4}FDWPHESU6dM>dSXmB-2?LBCEvPy0G5>bz zdcOLIFUbA*51bp?b^alEfaVtsOsRQe103=VT`&4l?JZ$&Mlvn4O`!bX!Rh``_qYvE zv=eL$?U!mEIQvv08B|$Epw(O#v~V*(FMagL6r#&_)q56(f{xvw`DmY5HEkRhp3)nE zpT0rcFudZ9pX|e2X@#3SO@nfbJx#r^QEljdJzn45%oHBaX&NME>{g=(`0{B7W*Kn! zGu-W8G_zV=>n<2oK}y+q<-2M^RPC1NIO6bnzw&J9It;0Rs3Ttkz(43yWsBf8Pg5;R zU#Wge)I2Czbfqr4ZVfY^#8mZ9!mdP~9G>yIRLpm3(oG;L@35K8ugDYCB%tt`PHN>i;ef}yy zwoO71bI2YzYQ6cRKrQ&U_ks3x5IQCM1OB74x-$hJX*(EyujIKAy=N1D%73kg9pk(z z>d~y8y)L)FxbM^KvnqinVK?>bEo0I*d)IjOb$u4cJ!s)KeFt$rFcc=})tv4n;)ljjtzEczn8(G%OcQ3Rz+n}dtK$8@UZmW!Hf zZ~1t{S_$!=sAeS(I9X{5SM)Ee&n=(7nrxZ7;{9r%D(%zCu2?#&A2-(~-!^U!Q+2wn zA0YwWEAUj&cHX<;hs}o0qcbOFRQT-DawKoY62hwQAW)ZP5J3T1yiLp(1A^;p*FJ|? z1)zpi*Jc``spO!~%3Gd?Pg@f{R8c>zP~UgEzZXtpkdm{Y^7@P}&kpAIZpSUjK7j6? zIs(o{|7|9MdHl`JUg_$?ux)`VaitUO2OLycPQO@M9P;>@H6C=|>|qLZo4eIr1es~M zCY_K57>yYdu4Qw^a;P=hm35+_QDxmfHZ6Qpf8or?fo9u)@w4Be_;LFVw+WAv7(Y$D zuGKm%CBl7VU^*l6rl0X$nzaOqg~8da{)FU>V;2~{(cv!zX5HH|?NmQ|Idj92 zzkcp`tP*KB=aYdW(}x<1&wejI@sl$id)JCONFaRy{L?W&_^pe%i7{FAg-687g>F+F zrWrEkDZc0F@1x-gk(|Fj7=(!^4IF*K(EPn=)XI|Gy5^~+x%!pf^|Plc>9X6baGHg^ z^QCH(3+N<<-@Do=b=}I>j%70{Whr726_w(c(Z7Y|5ZeWY5^-bE*>!xLijp`Hj(MR*6`PT99WPcb9(JJEy!*6gD#)X9 z6PNRb7$6xgY1$b$tqMr0l5oC1gyG4enamb1j}Joj(y%#ylMJL-zVe&V ztWdktUZ*Vo`E<%{1@a3f-Lho~wntIlD6gj}bS}MJM`I5m4|ixqScnB2R3ZT>3soLt z%SqIl;(v@U^?$7pN|aT{;xlazUFC@B_0^ZZntoH$+oqrr9g5jHUD!JEh7)x_W<01Q zBX1%L+tZzQu63W<`*^+zXqGc)d%tFqAR_U2-b=PurjaSwm`a8_v%7D8ChN;u)RoKS zdT2ns02!IC9}(HRNJ;j(m#U7PtS9-8b6qZFw{q!z$X$7O2s)wj@W?0cCBr_^w*-S! zQST1JwBAL`zz~DFvcV*kbzgPik%%Ar)Fize=;Cubt=CJPrWF>O`Q~2|9C6X!GnM96 zq7=))2+0@5?YfH9!vSciRz#c>5JXm5*Y4EZK_I8r+;4TtM6*?=l$aKZQY0(ZR<<0k zDBn~zuvwl&G9s8m-;CA`LD}e-xU1;O?H4U8{YS`LtCaaY6Lj|I4Psi8$3C^`J(EFM zm2oV6_m>N7n3%EeI&ecMl+u)NmRTbZ(2f{=lkt@lKU%O`4tfA8PE^&levaG2moV7BoqBEqb^- zxp%Ty&ax{Ev*mc8F`@rZ8AzaSLm70(ZK0dT==0j0T%W!M8=L0Lw4htn;?*wDxwJOJQY%RO9lZg<%U{Hbr{n)kjrJsJND{|7t`%M9d&0&S%Q1 zEMm=q0#1LEd!F}_P$eYgu!~2-dif_IWLjrtxzb~07qM<)b7AaiOYVeD2ek48!)?=w z4)Nm3nHo0A&eGeYEaca>l7X9pK4{&M+|n7Hvab>*YV z--f3M_G3>&=VNO2Z52U%A!-62P$G%9qI*$_PVv}Xi*B`(Ut(x_y#)p8jp**-wDrS<4Ku?v8ulFGuJ>j{iAx+ zB+Jiei^M4W-gN(iNJ4H71dKVi5GhVzeN88y^>ZiZ4Xe&9;Gfc^tAI_b)iHF{U@qPE zcMD_l?F_7OJC1H6zm^X78RM}|ani?U8MnKtfw~p1`}*XCBimRYJG1%;Og2V=Xg&3- zk+63>D5HtlZNJ=*^EJjxd#9vT{L8ak4kY82izeJ~T)KxoLzed+#a>QutbMsE52+jj z`}5b_$)tsj^Wzh~N->l&C-x*g%tmiKeM zvZ6DBt(w2kKUUJCMrZR{cb=P(HalDNi7O2Km8xyOG*|fB7-D!_RsA*;NG-oS{7?il zgqo`@CQmq;>6;Ab=S=ozKTM`w2RTgKTw^z|Q# zAg-xQ#r-;EMYk!v5+RYn-CXKK|E)BuMFMh+Cx25q%Xizh^KEz5OVcvhy;JiZ$WmRF ziM@bk&A2Rvk)keos5Vtpm*{xI>sR@Goe?l8U1v{wwsnZ^Trqvqy>zGNqI;O`TC$Ng zeX2Kl=k!v;LWlvno7utx40oH?LPnVuc5&WWo)|rUb$7ZawiD9jj`UkTDg3D&y+o9TKWBG z8zp{g-;_cS;ws8%X1)g35x#EUv{j1EiDcT8Z|2#f^l(M6To>}u5@Zv5UDmmKf%ter zh_|xacA6_iNaw}My{!zvOUt!-N*_>@>BrY3JRdQ!6b`zRQ$Xqs+t3-BVN{u zP+3Fh-Elxf1y0{8uT?RyRjDYQS(a(O^(B_uM&lG~um+VKY(x@*8AaQjBG7`CJw#5I~ayF21Oq+DQ!Ac^ln{pB_UEpEs2rMgz;WRiE ziGIR`254c7X4ebgo;Ftix4wca{{+)4$qR7y7*mNL_9o4;+H5dk9X;{)uTR zp`*w4RWF`#bN746xF}!|PI(bJL_n^TY&}q-aCIbEurNPtntlS-a);(I%m_8()*UP( z(RI(55GL@R>-_fGinS2fIP?@q=+x>9&o%ltf0o^QvS0Zbvs-h1Vc@~* zGS_SJK0EIQCsn+P&z4BMZo+{$>3p{~XSZ!AFAP*)tQ<3a*fq)z@*LSjk+mw=@uK7Uv3OnHxeB8e zU2m}7Za8e#y4}+!#LUu3Sr^l9Uy|R(6ufuZE?JR9;1{Z#*j>_atq&;fPl$D1j(oQ0 zpX(v7`Ppo2b}iMJpTD)AtIy$!j8pX>G3M)~r&FS>Z$&yEdm~@g%Iddsu?5(rrM*h~ z*L!Xqs4kCi?kp4H;c1$XOa9EftB#M}k{~52v#?uX;Ox*kofKO_-|F|Us$c_w zJN^g<@E05L*areETtEwIm%-#?KV4{6>Ur7$49W|I4 z^{A0}&qVLnpDQ1nW-x6*wg;2nX6NHFzN# zF%!RhZO5SK>F!*shE((syPM=BGf4(1k?}J&tZ0pz8Xv#seH=yoU|Mc+5v5db=9A8S0b&y(fOmK)nG{#>7_7q_ zwXqOSZnU19QjJs9rUkxqi~Nylz@F{=kbJ__ojdo_H-r5XwZ5K*A|8X-%*xwzb)HjB ze^9wRjruBq2}_Y)t!0ZJC6wgA*?3~%_7|0l%uQb{9mpVevq~cys7q08h{E@mkFC1N8@E>m$P=y$+s~2xoiM7134i^{bKL!-3P^ z6b3%ozNqQrHq+wiGidqhUYOvk?z6GMZ=B4EIuNLEWa5d0gDLg;30r7)3vPcAmmEXM z%;AO?OC~nS_pmn{SyM~nfP_t$v3nlY{&+(zGE*Pt82>JWZn~XyS(oa%m9+nY6bP+- zCl-#8qS&u(+~HMvETwvRY5J2=6{C)lAwjaDNe8s$)A1_|PLBioR$b+9^O#ua`>Ygi zuZmE+*(T{ax_EA4%knU6<UGK!qEo3Q$ZrAub zbiH{clm>`-Gu97#0sk4}ZW9iIX>$TM+k1iLun33m zr>2aFgVA38Lg7r`hH3IBciZXtY4s1W1gp`OwwPV>F`-1R#x3DjV8?5>39;5((A2sf zq71SaL_fg@*obQoxnmqm_?reZ<}Vaz_=`pj5N0kCVnOZIe5y;{O92;x_z5HyUL~Ed zj5Kj@7}YD0G!E2DmY>@S#BOB`uhMmMH-QuWuU0N762f>Z7;L<6%x<1Vxc4(@Y)n7B z&PqUrX-zk#8O?33eOYHnjA<8%~D*=hqu^Iko@hFK$( znCg5;E6BkXk=?WwaFs~io}HiEN3o-W9B$)UT-q#p(kAJ>@2TFzx}+T%>Yk0tT9UG6M%PeKg{NBve;Pavevt zF)jt<-KY(=-+vRx>c&K_dSFw!7pYO_n9S?f36Ji;yWbX6>As9RzYH~_ybr~eAA;YX_Gfh%T+%@Sl5;nbI!fj zZ?itA>+J-B^jd&Qui#y+ZjJzHg}lYRF+_peJm9>EADf z%`s{k%?-y)T&Y4TaRI{UvyJvxeKD+)%T)Z8(dI1Z{E!)`O?`j7-4m15Yj5~bF^tQE z*kf6W*puFz!By(g>0m*}Punm;Mdu@y7Dw174(brH`c|&7j?bSD5~=bt#=oHm$_oc1 zF%l2*6*Jf;yWU@x7*M56ziry8hG~HV)ROE?mONnsI z_Qd+(vh4K+k}0rj)#}WsDtSK`AMu04T7+J5XZX2?B=EjP*~QoUrcFT)mN z9rO^QY!lTA#A%y2r|IdcLVBB2*f{&Nb@up6>%5}@&z$HJCKd0t}Tj-9Ys zDEUJYGEM0<>CkN&MDcY1Sr9#(N=aG@9Lv1LE~zIOjk!-c;g&|2T+4F0LQbpPMI_8L zhgd^W9IrC4Kb)j$8w~<}uTk{+JpMR4sQVe~`uu8O5aHcax#?-Q&0KezJ%$cSHgn`$ zh{&{_vE%HupNibz_McSuoAdt$VyUHM`#^0s1c99>zT#S8BoIPy$Hwz+u%n)@B)H)L z`%9E#nZl^22g>K+viTZEZwWi%!cf3a5m*wJ+0$MWb5FQbAk^Osq|;iVN53#0*f$uU z%0W1H?c63p${yTTa26eYLbR;JiorX6d*uH&NtXb&qjJ_ zctIG_td?f6#5I>&0m^|of&vVECs$O9oJ|JjtlwJ6DFv|h67QIZyQFDtedOuTUAElE z0Es>B3|)UrdKbxpy0(8}{>-JNz7?hl#zuJ^>%@a>FyVf&=r2@xiBJqrsN6d-Z$HOG z446I)eQLUBv9I&WgOqkT`nqwBTFBv0&bBq`#8*G7$Zu82vwb#Wf4p+PN9NBV=aGjp z?@n()z*Iq0z$e#(@W`|_l6e{Em1ll~E z_O~3pRuCzP#6040p~E6iQ;Z&3KqAXZ_Zk^$46gwZJNVa;&yZKM4CfMs{5$)ulZuKX zqd@8SACe*v)3r4(TpEe?&Pz;dxWxn6P{j6;B;-%y({3t-30k$C9?$Z-Lgoe*bF<8K zx45vStLt>DMlqUTTKoO=$1Tkv7vZXqx7rM9G9GW|o~Pu#ZJf8LjV#lL;y&XzicB(w z>k;!!fw&LPYFi5vV}P8q@{pPYatgHX|$r`FqVurSWugj&q0e-`@%; zFDm?)Tct&8t)rC7P776iGq? z3QWJ`lHq6Su;2Bbjtd#WyC6{}Kn!};0*h0E)r^&)vmEb(tTO$w9(@S(yR!V#-+1}wwjgEtDUM!kbO?Re z^K)M%olP*j`}=y2`yMwGLYmH{o3LcL@qR0y=)AZp&vZubI*AUN6k8z`%nDlN?w@Ek zmeuTvF7)Z}k2S^fx!u!4<%Dw!uhFSpE2d9*{IvWMr--|-(rRyIK*3RL4)etJLEIl_ zCP=gB;FD0Ulg^{bt5=|dFo(JR!4EIQbZ_=RpP%X-&AAROXAfmgr_KRKFCAyPdHGYj zp!CL}?}(|~HFDp|+Nzf5#MWKk!zW`#2&%1lKiS&y#z#MdGX+XC-V(n3k#sAYgrUvQY^G>#+d^d$hr0BNxh)NYg;#wy`VU_AtO9D(J7}C z5(K?+2I!4$eVv^U3rFc7Ge>Qaydcm2b=(b>iS1l3Q3M()KjVmsc|$R zd)FE!@18?KYD~B85Z=q_<1bF>bTQ4?c7~%&jCrj0kBdKf|Bb%x&<#9>X}C6~)zbR{w)5jt z*?>K$C{V35QmLYE<+|^t8{)TVC9Cq;4+G3B$GM&HeZ$oVaiC5MSz%?U$22;hTeQ0oGMrQDujEC$E;d$pXEyGNsv|u(< zMnacRhs)Ta=RWB9QhCLw+sK=M-wLto!}kqcfLIBj5yr5~;?5OiXx|KmzWV%NvG#|1 zWhsQy`+&Vvi_^YA=D0xJ%fYSQ=ktFWP7rRFt*z=oam^Noiaathxy$n0(!RYB<+`8F zm~i$%DRa)VuG8a%xj(lr2(pNJ0pn+4TqfetE8o7iG@@p4yLo2rt>vI48(UO#Z>*(zE3m<-4wJs}OEXH4Qb8G-R=p!Cokdj4DIbUpBe5`cPdFnwb(-kT*U* zyUsPW$vn}njxsjJh7gr1q$ugS4nAN=dHRh-T(a5Qka@Y{{@&QA{O|0|42e-0qlNV+ zT#WU*8EwYBlIRz2eB#R4L_62X|6J??!rqtMpOWh2sz?^KwTh6%=+_`^3(NjzkJSAX zqA|tiY%w_)1AIN{i|#}6^*E~wew$iA0ktdJVuGZELJU+pH8!M0r>fAAzyS<=gY$R$ zK@Ma8<XT_?`22p}3Xl#9 zxIc=0cy6*@N)H)nPu6=Pqt|h>CgOFhhDU9Kw({3j0(h(oA_0m3>d-g>grAS2t6?<@ zRmunPY~xuEFYcjNOSr{q!7o`+miu^V+Yd^VqW6ZbWMa#H8yp}?JRv^0T4_nC_r0^n z+WGNa&Lgo(iF>Dp{5e1p-Av{4MSUw=jTSse4-21bvd6938oahhqBEtLrZZS!urw9I zrc{GJk_jt{9SB=ewy!eC zMnd>7M4hg;0di`Z4T>pQugt*p622BBPU@j=(j_v2UU~2F^czoh5068IW`ns`G55E-Z7jL}7t()XnD_0W^YHWa!X~PyOjzYEQ9kVy&WP=`% z<0=3@2PAXVic!YS*C&Y$wSlUL>$HL$5qWO=OV(Cc6gb$RvE;{3fqn7blcn-%<@kj# zDS^7!4FXD&`Cwlu)UhAv>@A`ZMUHE}R?7q*y3&c`SwL1s#Di^3iCvMi=9G&r^_ck& z28a)-M#@%xiIJ-+>2jziElpdNq}MJ`wx#gp4%Tk3529wmHNg%pb_K0=N$8d4#!*ts zb^8kEGZa5q>vFj2j{b)6A79&GYfu$~lpm`J1RfMEe8ayqCe1-OZ##I;|K^-?4PfuR zi?J(g6^oh5QBp*SZLpJWsfG&*KnDB9x4Bli&X9uYzp*&pad-MNe?k-Z>4$~Xl_B)w zkR{mup4BAb=Oj9XxXxC5-+eB|AP zV*6Hkw2ySSc#u^|-%N6X&%VODt3(y?eQB@y8tlm;rojQSHw}B#+ch9wnXYYc2Dpp= z3A?Y4axo$2Eh!LPVpVl#5W9#_ksQ#aOwygwm0uDrd0)FNTmp2aIv>gk_V>=b8Y?=)x^(!7B!;f2^mE z_bXiU9q~V1H~?+as|BarN_hj*yJfP{FD7D$p#=Z1JS6t{8zJmwtY_=7L3$|}tP|ar zkVm~AozAzh8A&6q4KlA-@*^s}ORnW7R}IGFtx3}E>M#(1M;~PFeLh@18FqvFL|$}E zbs_7>8`aCsVViOY$`Vzy9JuYXe1X#(iiEfJFN)7(Q-rKliG$Bt9g`GHEbO4fV^se~ zUp9z_^RVv?g#{QwAq<#s?kwjmj&>*A zH_5hkpQ})h&fZjpjCd<8tMgIc3k2%+aRkwcl<@P4juamnEdG3mYaw4~+aw1Vb+6Y< zK@|Mk7)H**!6|h>K~M|ZI0_sc-BL(ARY=_A#b^5q%M=%rLzFx$s9htk+s;Ib(QM zn^o7e&G4nldPmY|n*}1?q8sUREE;vOh(B7J%t}``H0UuUA}Bkr1BXj2w^cI~ z1?te^3ZZo0noBv$J=9o~bEh|m_oVQ1q`XKk79H|oq8`;s>_d@MYOWU$-SpAN@a6Kz z>cU#&w>K2L<9fM(lRj0HyAkD)&?1uD@#!#B_wjsI>Blyz^`0r0QA1+l54MGT-}De9 z+8qjXoh7}M^uRt~pS6MPBGd%x%2I}pIUme8r`=R0?fE<(*RV%|lUR$4?2YUb{p7^1 z57<+BN4d;sDH{%d;(m?6+GViYhSuImo5V@hs`vx*3h>@O0W>e1rJg=!74<5&Y#++i z!>G8O4?{6jj*y>dKj^N^p2_O%(y zriyAxZCUGR{AhE3u-AT72nt{)SZ|7-2+K7mo*r{C9@NsQd2Y9rY{ibk+aI^P3bPss z@}G4R9Fx*QwL96{fwfW2K?PAuUpKkYazt||Wm#6b?-^akj{(Ddfv0Y@*uBo~8^RJ& z*0neD)7KgOE%-p)pUPJPAnLWQPTpZ}LSX&V*Kw^Q(hN{y%p-@*A>5sJ4H66daT}%M?MViw1&eToLTomjsn@6P zw_mj2-yLuRf>Dcs4qY`e4+0e}U#u6?`%BDm=l;|OfRF9c5FCY{R0@2-Y{2viJDvA- zTzvZ@WU*PaU;HKEZRccuAhNAs^b{NLSK}~}z%J_XZryE}ybNLoB*GIi^RIfMPpVjT zUU#-6#F(C9T19(9W_f1aGj|4BJ|2U&XPNR??cHj&O0sN+GzpI%_so=xevb_S&fk>- zU#x>kqxS?Nld&=O*Y7_3qMF?|2u#4rz^-q&a6$_FJARYg>)$s_u`&QwkM(*lWH=_5 z)U~j5pb=^Edkq*izWC3rt?lGL!J54?**zW%~o`E z(HvhGKJ=}Pd>+EevM$e;chLVyD2tRWZXP_aQn4&>X-4k1ax_Xbe4Q%b%s5vl`ZaRe zg%0ZLEJtYRj2aCutZ?iy`((9$P&{4IntGRqdLe;pbw>4D;m5Q%kmR+Uc-O&a<_bH( z*NzLD@2)+P9L@^4p1oML>Hlb^fDv-ND9Dy>j=SVZfBv$XDZFV%1{+DvXyM~2$(EO5 z_``>R3b?i+*~YMs5)au_JANK*&M=GeVVQ2nrE29)5sXdtz$hwo-Fx zeMrjE{G%U4TZTHL!4GKrXZ%A0t(-+gR=aI}#d9@5zptJ!FBTs(vk0si>b3vrfg2=- z-1lP95R2A-39upfOodc+Fb6l`O+$+>P(pZk2o-03=dmpUVaP8v<6gaLuo zIOA-7_Yt@b|JRPT`_g=D+Qj2-BKlxaeRKCno3^q zkg$1a zhF7VAaiVL153sDC;)3$_BCLl`01e2 zj|%B)+TM?8cAwWIW#`XscX}BEjDfCAi@0W4p8N~#LP(6+c;d0dN`>IhYE`yN znVuDO4Wi@i_DiZuHx|U1Up08KNT6SF*%N?A=t1FqeMuE=H8bALN4}dU9aa5+JnXWe zRmrw;dPM5D0Q4==davXu7d@mg80wTITRrPZf6F)c*4^M}kSdub35YA=1FM=!(u=JVuX4FV6km4p9iX?Ro5D=A(4h~izI zq!Uv&ZIRHcwnIoBSC)fT!oRT8IdPrYU(L`gw&A>Sw50Z&6eeFy!3NXjnWrJvHD8rr zN^+W;pT4?Uxtxa=509Cok4pIfY!;uKTJ?48E1Y7jIbCp>a^iogZr{Y#c9u#=x(o`z zVyY||2lkiS>u z*XCH)*COgF2Zt<_Z}Sk`mjOJgND7#xHf^J-`NFUCuv-L5{A$^9`t4MFT*AMaY-Swe zdvzOITe6hwb;@N*7giIN4mJjS7XOVSs|`aAUirKO&z_<`{E5EaB~^^J*8q>S-&!M zuglRecdJkG-1thdA7zKmQk*9J7s9wC2Wd(t@XLdM2mock3E_T4b2h_6(T+Z11;Txp zfKr-1bX=X>8%@eejke~lOvsyTZyENuN-}dzq)X2~zp;fkfbD>ip|I3U-zlC-C$*dY z%N-scx^z8vY{+2~R%>THmv!%}4_QoBU34!c7?Uq~m0o*j)vLbI;YHzsY(^Zf0Q(!V zdUkF$7ANtPvyo6LY`A|szk4z&(^OuVqB0V_%tr^st!nG~=nRRvAH`mG7<0^jrJt*6 zm8l_6ccbZu$6UPonh(dU3s?tW5NuOlGqMfa7K+ynEl&D(iZYX*v6yT-r;T2v_!zTG zP94Q|_HLtZl_^6uDdb$QBu?wz)Bv=g>XMw>lpsZryV)KA1|8-zv0>8G&0v|5Z88(sj`TKDJMpkww%~Ce`SLoS@6mEt_dB=M8FMr zutu7>ntm&yj2N!H4=d+Ln3`F9T-GAhePiXbcI^e$oGkTX~z zJfWh>OL^qWGV#7-o>w!@n`r!w)JHC5kdiD8_3tVHVDZRZMK-ot($KH**A@0g{rU|r zuRJJ<)W{28x9Hu%}^TrRd;+ntPi}PpA3I+)GzoF#i(M+xB zPxXWHLfN{FHdU75UPt;aPwM0Q+mBW^4()-A289dWC2)R$>ga)-_(}3=l_v{}a+*S3 zw~Owx>8Be7E*VvfM@;xpV*Vqw+wZ#8`<%qn7f&A|O95~K_8e^R7$X6H%X~cQ(YV=7 zzn4a)jkt(Aa>oN;R{OytPf-YrOBX7&33$&ye}wwWkp6 zAc78aek0lo8J)1?)ICLI8hBtvT3FU999Ww*_P)^ik1^|m5qGl%J8JJwq526qv`h-h z&jEl_P|L22QpV+1`tO9b`POF+6d!=NA~ENnn8UWuls9FK*a=->)Yty`K+ey#wsq3y zTP!``%Zl5tY78`BTia{T9tDy0r-b90vT&@|PhBm0x}+~v8rN2%t*AXc4`bCnO*27> z)p>%cwv_3Chk4dQF8v9G41uRgY}0QCPNYgbod1*ajH!qo^jx5!s)@|Hs+W*O97G@E|9j*#07sFIqF)bm54n71jvYk@rhZ3D(pwNJBOu z&SlvN!_g!`y}jYM4-OWRQ^J8b)ex$RQ7ePm3(hXSMn(R>3&(FUES^((SJfKyuFS!~ zweB7Ud6uji-9W#NXgmG0osL|}Nw;3pUl`1k zf#?}iT4Ap@c&wz6ZklJ)ack1F0e2buZoPuo@bsjG0E>F=GlqrEA7$|(+|%LQ=)29L`@rg)%_}2!Jf$u1R{wA;|2={ADxfy3Fek%SpI}mEUpPZ zeV~>B>iPb0PaX>;q6Gxpn4P25et$h%$-ZmBK!|^ssqzlz6RsMIBLG z!PGpMH{n4rE;w{V5Uv9W3K2F`bJ4pQ+el!ja~qKEVP6IjUW$}EiD3+Z(qN5wMT;|Q z-8U7YifL>tY(&xN)x1|m;H}sKK74;U+J%`{C@^Hvu8C96(WKBDr^1L_b-G#XR>w&EkDVrB2JcjS$=}Jvb z3F5W$G;ubyE{I+~y(ho3*S=T=*l}}*daT`TTO~%r(Bb{7Yn^Q4p0PFBKFdQrQ6Ma= zZ^6pKN2jTLWmk2N!Gau5&Pc=@^ev&0$}{#!jx#PtRS8o6f|>Iun5I%d>L3>Vm{ zV@Kf)5%)DgF~_TUK0jsKqI8^XPzYXTX-;X+Vrz0fvE~gquU3l)2sz{aFZSL%9O~|U z0G{@=sZ`QJibk7JDhV@{$|K>CB#CJukBX6fnMEZ_DKZ#knN}WqD3fhQDcjH#S%;az z*apL3#+dCrGSk!dcU|wF?|<*P>blI#`Fzef_qq4`KIfiPJtgc347y3rxp}hG@wK-l zFc*%@418xw;oroWas+fl9=_JN2!l_q95}uha`pc4l0Zo2u}=#wtv6t0M?F3Dsif)a z?oU%GV#+-(3Ah4^bEb5$9w?WxW)Rojj9jt%6&q;eRvcOcNW~4FT(?*^`b|n@?&7@r;J_24{BF)2{|FuIO`qqb!%NY8_bSek^4L!sa&DZD{R$jw zgDY>%@lT=zckqJrLAtuAaDpe$j0c#SnLkMKUxBE3n0oimrL)B+Ru37kB1xB_&gUK{XF8u60gP*A@N@ z(sp?fq_wc_j(=t}>}*Bm`8(-XJWO#sfJ2N~A9IAl4A71@Qsr8Eq zi0nbxo6G2}rXkoceaQM#P3LRLZ5z}E)&#HpxkvGcm+_+KlG{7l^P=gBbShv2*Auwt zsf^~5+ML{WSBmmS+cs#xl>6;cn~!Qeca}LWg#-uLjQI=}+PSqF`kS_EHbHl_7uFSC zJqX2`&6ulRxd$+pPZ}N_-Z%BUlu1ru!h-jiHNs4cY&7K5Da4$LkTKxz2jpsI> z^bx-q;;*IFhmoEX`|e;-@Igx*%GwR;~FFdSot^|-a4%tGFI`Sh*4aAtDDQVI%UeE-1d^%R4?r&DiA>xO5zx=%n& zj#FpM{n~Nf;B;LKg@!1Hg>ih7PZ5PJ2Nb%AuFgJft7zKU$sDBTxX&EO8@B|&kgjFN zmlU-sI7=?_UD^(2T)&mk@j>$pqf?WfI&)Zj#{GGJ3Nxx6u?6enevey;+pJ@&dW3ls zD_S``__{0n6y&@L5IOaB_RV{*eQ2?vWIJ^3_NU~(8SL{tqq^TP@R@YTqWIp}x~D@u zI~B6u!GH~RADmRlJX|(KdZ$$T)HfhqNt3bF%Cqy`X9=_LGUI)mccRVbUwk&h{a`5w zN~DzgI1C;WTpf^F*7A+~A42*oqCpskwBo%r78EbfT86?vo-S>IuVL=Eaqs)6aEMoW zW3AwM2xf$+WtBj*9}`Cvz8dU0ZAUp#c5kdXqc&rSKs>j+*bb;Z5xJT75v~ctp@@x) zp?r2$1yvaqp0-mJaxPmtQW|UXSyxRp&hhNf6&K*}n7CZMg%MI)Wpn1{f=lVvvW+HIDXXy*s~sqFq;yzBHYcLp;yFl<+Ji+yc|qUV(dCik>A3Xhh0WAdML9?aRf zH|QfgJ?9O{Enck__c$|BI;1`0n2o-F8PK8h+}}6NVXHpnc9sQjSuKmQ*>fg7EJ>YC zQG*q&aLV;m16inV&dgwZQ0g(&;kG#?NX>rIz_4iSa4ECe-c2iPta%U|#0A;8z?=0i z+OgD)U2C%Y-mP7m-3^Zw{Y@4n*g&J5Z;SL>`;9ui`I|t|ALRww{=oTjqAuLzo+sd~ zsxB<()^?u=a1?Z6o0W9D8(2gi^SXCJ&Z~p19&X(vP*+@hHJk4g%zAE<3fv_*p->P}4m+m<% zv;hY;OD<~MkD;$sDNN>O>SY}e+rj{0X8}Q@+*{!l8R=3QNYouvJVFd@b-Wj0u<#|Q zeFHd|A;>_vHy(6zQPy?U-JYyd{?a}hTa~HP2@IQ+D0Ot~8smpM3%7lVUkqvf+*_f> znj4UQel6}y-Z8OVbExE;a~Y-nzIW48M}vg-$3lM+3*?etj zc~wp*pZMV3n2#T-bFHuE+AuSr!(2!Xh%K(GwqJ~7sD&5U4CJg!f;n8cexZqekXl?= zTC-=}W)J~@MF0)vT*jtKlcO1KzMGF49=2Xvs}>hEG7g(_$s)_ahz&9lA01IWV(`43 zCJwl^qIB~!ZD(jsN4z6<=g-O3qz*Fenp@X7ke6h5NOv71p7zlfB#{9@xgd3@O@GYU z$FDESB7lncB7E4je@n=s;JB+N4Hw$10G`XX;zb~C@obmdgIDdBmal|p%;<=rdoC#k z=)8Y5&k_;LzZeOB+pvV9FoyS1v*PTo&t*MV-n*OqVQWF89B_wC)1J!11x5d?E>uQPK7_LFCDa6g& zXP@_G+^g3J1oqf+xYeG{Vx`8r;bPTiil1B|DdTm!r{1M6?RqV|jPCSNG#WV)R4VM@ zb@*pKBAq%8CXke`mY)DKKh^eci_P*WShbuFkHY@5Q|FJ&h@vTXSJ;R zOdwz8`+0*b%^mf@xRVZ!j_kpF)A`S`r z3yxHufg0@CfF~>rXnB833%R#p(Gdf{EK|JxCXcR2ySVCn(@DN3eT5%3^J4_L!r$6v z%rVCT9d|>qE`AZDm&Td$jL!_0rcY=1dx50=;d4zj&V|{g+R_@!QC$`YM8u7?*?f}z zWt^7+fv|1XR@y%ZJZ646My-}IP`s46;jrS|{x7Ug19NsdXXz|z>;n$eUr7kc89leZ ztbB0EAtA3x(LNf*eY84A%^U~w748`R-uB2;KZHMzPxkc8^7u)rbr zwic+%T-URK3GFSZ@l02GlRm3s9@u&gl3c| z+sS~q{@cD>hgKrWFzozvH(`Q=bE2h5)8;|?t-yhutzx!X+rc+i4E&4SD(N(O zw$t;)HJw#zlvkaCGjU@t6er(1FND;cC@S{f8Wvk#aT75l)?`*)FQzQGlsxp_Eu0^z z^;j}aIVI(yvgTPhG&^fAw%(lK8@bv%S9e6&RBGd^P`4NrcK#uVSrRyE4N?ixOgcu{ zBpldnM&GQzVm;k;+AHy6#8Tn-{uEFxawB02_6pr|Dd**<$Z3@1?!+`~J~tsbLaaH*C<3J1za$XV8gSD)#bG#Ap~@c1 zHG0fL1%H!Ot?9SsLH1W11V-$bhvB`TR@-?x2X2;pB_O0WhsD%Z+T4F4{Z3>(NRF+# zeF`yE^kPLWI6Mgw@58!xfC&DZ;bUrD;a`>}WY@P^&U`Ox!J5DUEB^pac`gFz{9l_0 zKBD^Hr(jiZa`?ZGU*`dF{a*_N7V&?dX6~hs-7PlrW&fPpGnbgjn-Mr5DgXQbA5;d3 z|Bt|{gUNfPA%tAJ^Z&k;34np@Rr+)1d&78>33LA3-|-V#Q3~KJ|L<+nL4|M=wEpY@ z`5zRxB>6X{YCaIbzn?fCdVKzPLhL_7P;gqps{WiaZlr(OS}$s&W)sue4-qp_l_$7* zwyjA_cQ^Ds?;}0XLT||!c{$=xID&QD$dEK&Z4qxA9HES0ufL){<4!X($Z(5!pM8*- z?GkF#Pz$~LccN<9 znJDInelwHoQsEPIi_>?@2eAjY&duGA^Uj06S5+inVpKPahhFv41{gQG2PO7~ zX(fC?4=rzi@_e-Q07r?|Kj?Fdsw=(r%<^ZiA15kLVLBkPe!Kf5h9*fAPVsMUfTyKO zLl4r5M)Z9qp9W0mcTTs3_>FXbBeKirok2+^oZK3kyV6+-nFDVzk=E-;%*}DV{FKI* zl(1rA0R}frd)F)cxRA5z^511CtD78gm?3{Qk3@EquCG@UGP-R$ag8{$PRjEU|Kh=E zd%gokT90Fpu&VW{FM9()X2DzDjTXK&#@@93Tn7MrM=_ZzK^fAv^S7A_pAt=KPCsM`@*{w-mcsAHTV02L#_@{5&tvJ#+joQ^*Y(?+t9InpqPQI>Fm0-;ja%TVc@QY7rEDc zrC8U;QS1KwuWn^4mX9WeDAciNAKS7 zKTj0D&0#Jdy%fUz=YPO|(=N{Nxnb&`-<`*c1BP6_7V*KoCM{-X4wcVaUE6*1f5zb$ zb-v#zc)qf>d(NNVuls3R{CMkfYfady+HUPXnc;(5D;Bf%ZUzcZ*!lahkHov>5P*Dr zdH#0Sevjv(=*286kQ7Ue57#>)|224RL|px2wfs|#Tk*#<=LYOnM$KH{I@>bWq}^_i z63a^5u5YrZ@5d-8T#OT(^*Q@Fr~grcK#FtQUc4_}35TJc`@hq;rAzo9x{MtMYneK_lF7A0@7`7jac&D-zP3WoW=bnk~TV2;JRhgY> z*k1e=;xemZ>guIdx|r5 zJJ9Hn-P7X1{cQ8hO&Q-hQ-Kw<(UTjk$Om^I%;>oS9+^YUW>?OUj7#g9hM8nOK zEUYt=-=j5#Q9hdDy6RU=c~E5gMTul*dQ4*P&;4$vVsS+6#GukBSQH^y&GNIF$AEwj z=CM#Vj~`y5LbMpJJhHd8<%Osxw&mq!2ghr=rBQ?=PD}@8g7vmFQ zN*oq1UmBz^4sHFlE_l>zd2vYj@we$Qa8sYSM8l+M5A7CS%s8v~U!SZYcWr2U$Jm79L`x13ED6vQQh)yMQA{J9lME6~ljUPPT zu-LG~@T7npcJ_%~EbKPsNe`S|4NtkF#)Pi=!PlrB$4bu40?Fg(saR=)cN*$)RV0`C zZNPsC_Q|BQ?DCNhOFTq50`4(F{BwxswvNQI`sHplXrZMWy%OYmIJREnX4FSbQ>)Xj~H(H_)xJ$w{L;x8P$`P?J#)uYT2xypweO!8az>2P`P$pv3HBkD&A9bdxMfs0aH!6-=S}H7tg2^dS}X1sTDKdR2S}_?~L% zsknm`A)=`7#<7;48l#?8F{$Py$3)!ECcj<=`TOFfXf>D-E*YB;tcLO{tqYtBU-hH! zpG{1BeZON=4&A@53OAItKv0<5+-J?I8tlhWux~=dK^Ga!8ga+9GN->HMt{}e2J9*; z7DCL5e@3x)aNI6PNxPfeIXGc~CdO4o@ZDS4;-c4mQB(0#rA9rZSXTj29H&LeEjl^H zRd_9R^2%KyW09BO?LAQ$^bV;Qp|VgPU%xgU?-L9QnWEbI)u1|iKMAKm;8|elnZE`3 zHoe)3EaHxS-*i>PYnVV3y3eBbCDjr47-`(u2b;~l5!}zl6JhhGs5T#k-7G_dm^}8r zTeVpms>rQ5Tnkm<#VgzE)$gg~v~MGy{w(9B2x%WBM%u^MKmd^Hb(b+o{2-(uKcQQ# znY?{f4}Nkr4{_!J_ufhhc15Y$EF^m~-9oh}@71)IjuFxr_g{7|rc{sA@OAw+p59)q z?3NK=A}BgBm*`qBE8?a_bkEQ;9#B#fmDNRftDptb?=9|0sFkJ9wheHmW;FZ$5w6xnFNYsvqW~{bgr06yP%PvVw4D z88nZKSbF=GgN@q0CK z8p_H&c%N8GPGNjDN|iGT{{_K0WOQ7OOi%bx>XSJaS91Tk^BKnkMEJ{v0`dj(Ok%me zU|OSMHE)+qBf((U<&iqJsM}07s~>BgE?w+9+0XpyZJeI1+rE9ecYjsfGAnW>KC4jo z4O;wR6Rg_u5|3;iSD4%I3YQ;(iD@C^QG%IlyR2T_sKFuR#v@OiQ@G!?GGSqE``=|7fH;cQq;TX6VRv_DMp-3BmAHR{f(5J-F8! zj!hkp)f@^N#{kjQtYKrk{>kqp{ntAnmv*ME>`~^kj~Kx_*D{pt`9Y@1>OZ8( zO;~Q{n|BjyUWi^4c#9WphF0rUc#isso2W(3^ zA|oM;Ibw;K-*`6a1x^4dhyTQE%2Ey>a^E*_9gWTW!K>t~dx_Yg+mDK}w_9HcD)Fl9vLd=Y%G zX|FgLoYkKH0^Mc_@0>2Wf(ldQW{SHlvrUQ2%&^IZ39n^i-4XtBW5BD4eCDzaFh=6zyNd+YRZ~!EBW>@eC}O>*J0Z0^86pE!$l=cvih@RC;FE ziYFu9yA~%se_)qSu6d&;B6w$NDqXu0w3RGZyx*@eCx}|2dMG~ZH;&tx_~(I=JfEUN zEgq$RaV^hTb5(e;h)FD0vsSNjzpZk@vw{^|&5wFE#6-#E6p$%i9cULABx8mi5fZiu zmr2o-`h~7Uq}+jN?_Gg2<>IoxkQ}&}xzg$!i};tX*-($atbJp*NO#$^lTRgfYa^xa zO+>kMuup{710}5>JA0-Dix0T0Yi{2z7{(^7liK!@E(YRza^AU6q9NDFA%I$STSvOdP!x$%f7S^_p_K9YK}EM)+vh8JC1uscz;`kSPVl z5nhdic7yP=PwN)krv;+`gOXCa?#Wn80%@Nnvi;{-9v)`aLUU`nqj%`yF;oosu;^^* zO3L9f2aud5?@HLGDYZP8{nkv9+-M?T)sOxR_O59O=NfFfl`8IjI&lo$29;AraDYA7 zpL4seTWZw$O@7_4oSCqz7M0)>EzJ(B_L&xhPTdMYk|(zOnmFXr!NFzte(6=8fHr_2 zT0gp3Y$YqK)4rpUnuZCtUZt)Q4aAiwIahS{i9zV@uXK*#Vb33ye0OKxobPA_ubF>G zbdw)$8Tvy)lv_sSl0glehG3Vmy{OsTWnkJ{>EEx7w_?*?3}+f)M^|Y2`O6t>8-GT;~DNlaqpq z`GVCC`qun-(8t*AtTOGe?j@a65v0I#7EI^Yi4zV<_YOy5D`r7jc)%+%PpHVidze!8!9E>Pyk3==6}(L}zj_KwyC?W4S8GO-PJofF{qxX`lyVjkm!q26 zgKs-7AT1E+n@shHQQ<8w&_=~HPxiFal%}1N-y0Z}F)Ilnk#XQgiYXe!Yg!8zq6q^N_Q}U0Teh8i&w%JMI0D!2$CHUIBS4RDK8|s)#A-{3OGOy2h=>vC_v*Gb}Sa zdq!rpaiBQ;qmoEuh|93S9%2?VoQ~&AHe+h@d75uRXEZ2WZ4sPlY*E{4nJ#%m!R>-*wgs!{B!m|keyW!aYXzP8|2^?L>pcSBdQID?lF zg05vHqXCNqy6BHg)>kX?=^EI{mMCz?2e?#mrfIhXC?9+D`fY`CsPB~9Tq|rTQS^k2 zqK&`lTisQ~*uY9$M%i7`H9aK|=1-GZWLBZsBd$5&truEp_61HU*$>70O(hqSQFt^v zR115`g-jF$ED-1hc`A;8R8~9OeOA$Xav23(gnIH!&9Yv$=Y;I6e6dOBV)9UEqv>&h zjh0b?7DBuQcha&qZ9PIw_(=f#gi}G<=a6)2=Woa;`o!d#N@}hPrnQTx1209~?KNT# zN#qOB+q!-qkCo#lx z(TKayo1To~Ty(%^egu~_skI9CM0^MSYcz<5r1lkh;IXv8K-@4{qjS8p&hEItb-o}1 zVT!j+p^#2fm2>x8C1&xTqY6ia4OeF;89Z(qABw{7F6p7q?{c4E&WA2s=$*gf2BC3* zAOf!LGQ8(9Rv3rdk=3HYsP61{iQOR>{!7LbF2AZ?6BBU%XB{UZ^K?_zZb4^ z`?SWzS67bl1v+x8-G^1(O9*dt0b)Y(qR7*E$FG{c}|p&QC2*s ze+n2bl6O@y1nF~meEAGqCGdv>iP0!NTO0`V^%@Vf(%|>1rCg&WlxeKjtfex)+8T^#p%CBnSAFu6~3gCL%p~u zTGD1ye&S6FYKtArnNs#@ruZCa#2a%nA9$$)ed4t`PR81woQh?l3Nf3ks`io|DG0nK z7+OrH%`D_nHcL@(W%6C5Y*Ta=w5x`_{fnEM6;`7A9I&!mpBOC>&+%I41e$Lq`UJ+Jvd%&muA8OCwQbnz^rr3ol9r zB4BuDEfo5ITOT+Od^2>4o|V>xCuL`&?nuyRr!!cC_b8@g4xLPEX&UZUM9Y;b4+hyO zAr`sa75dg2Q(Uj!ZTa2MVkdw+jqh*jd0U(x*TUas)*8j!Rg&6AVwxe(^-+Uz&^kvF zX4RwM@we51XW*t}bFJEzm+Pk^#3ePje8x8N&_Qz_%MCSLH%w0%D=13qI1>UECps>ky;cnxh*9gnME!{ zEZZuRM9l$%SDd6T660w;fxZ_-hT^Jm{g@2mf)XQSS2SjuxgSn z{OVGLIW8X__F7X~P~72L!&ex>lS@?|X?CWa5cD>!r|kOVC4jGHA$29uCcwDXd&wr` zh0LN%`QCmEI`lC6HJe~MW6%P;t|j~&-zJ5Zl7EPDUJpJAyLv)EU|8y9=AMXAd&!m~ z=^+F%MwF~xizEIOi!!0MKuv~!`Udwov+DUNI?@jAq)^fU%WT}YmuT4OA`>nNIosK$ z0;dhYB@iYaP8{j~ED|#vYrzFm7E}bu7G30))sZ{2C$Frf^!1R8?Hb1R@^ioW$bbqs z+UWc0Z>c?e>Y!#gh#fE zwiANPvJsnZZ_M!puJ{eLn6RZYtC2%U|ocQz&2`0 zTk(n&!|z;yH5^dVAubz~Rf93z+27dHSrhIx)M-7|O~U3b1f+qhA9@b+tVl@+-r zY{QgfoO8?oHTf+x3fwD-%&7(?=<4IdIz%xVeGOnZ-ClP z{>1C-U!y=g0@j&IYKwOjcCP$vnVyYj{c{Q%RpFX)F{2=_jY=R*plBj2w2@mj%T|T<;K9Y?TS8uCOc6B>Uf{1a;RxFZ}!#Y6Bu)@U#P2qx&2K` zpe>Z7SF?|;IfNYLs&Y{mrK*e*a7z8 z$SsZ5*EKroQp-^1p|q8(lEXy~Cj`o&9eU%=iRzK@H~dbV`GCKg?v=1sg;9_zQ!8}L zeL}_UQagu{n75s-GfFZMD9H|(s-OD}U{CJ!on5h(h5squEu++%`+}+Z8M?defP=&+ z&x~xoiAGl z3k1u|Dv6$_uxnT?g0h;!a^sa?s@Svo0I<+4Lv^IUd?05MpM>$vs*7|qW#fETDZDJ* zWgN{Z?qTW+uw3>Q*hjCNAvw?eZVHS{HP(ILugZLA_CRU#f=%}o<7H@88fPj%faC8m z)85u)C4{UnuWKqnv%e+e9yX4|-3)c`OvInA)pO0)x4HQ-!EB41F{7J+f1kcAsFs=1 ztFvKF$^*^czkruI#}t~8S&eBui4VPK;-T&9NPUKa@>y0=zP&R_e}}LJYC2={rJWS? zj%{(Ae)3}b?7)z|R15BbirRLEP$^K}Wp#rFfIiG$xwWWeI;5&SX`*z^soHo;m!hqp#Q8FP1dGykPt69U$1O*9SjXaWEY3@OeVLj=C6~`gApb3(^Z?*Z*9WGTQCmovTGHFD0s=o8w=_s@9C|zg{zk4e zGDpbBekn3AN{+(OK9$PyH~?sN32UTrO%0POFVNhP9fIB(&0C=G&rAz0n$|UrM&@Ya zI4jolFnxE;ehs;p0<(i5nVL12{L+ANlIy|kUG%2(U$vz{kN2l9Y$6=f)-qDaRDNqu@i0@!Hxe_OdR|W%+J81H#=aLjXONutvjTF zYLIORgpqSx0Lopty)Ulm@~)aMdx`RM3$9D(7Up(=s@ZSkJ^CG>#mXMS9k~akHur3i z{^Zee&0WBM++?aa-`@r^$^ITDpZVvlH3)fU$R@`<^5oretHtuPaF6*VchTcDa;k(V zSBA*m4%u{DF4A=ycunbwbFOt?JxYduwUWKQ{N7$U$>}zL$I$DJ%J<;Wugcdm{erix zlqZh=SUg|8b%*Yx9VP33`0q_^%eYs5j~k*Xlem!o9!UUMFf&sy{*4#g{BhB_ivHk! z#b3?i^6$Fa<*WW!9(xNjX;e$r>Bq-}|DKmm?9$10^5IGK@|*Ifbhf#D*VTplU9uxApRUMZw9CluLR zch-5${XI#mS_wBj$1}OYt}()I8Ar8Xld^cPs&ydDYZ!)9AjsL znE60v?bJS#-{UE>i!M=CvF-&tIxgQ6?K2T$xhDb|xtku4*3QfcWF%Dw#rq@lPy#*4 zP?$>ZOkR#*t8L2N)iSIKZo47e36_KDOdAw7#ibc-|AO51tB^c+*z51@eTfq#D9$X< z2h^Io>pvQDG~_-MWmIV-CUKCZMbv0|6DtP6O>?j=Z8@lP3}7b&PMdo1?48E3YO0Ha zO8#5cX&bt&AZ{n-09qxWcTcIqugOA!?KZ%!B8Q$nMF|JT$P`<}_%|*nc~$mHCsheo z`Wyfx*roy9w9;d;We2OY9a#Iton~Z9Im03s=Z6^Oa%HL{r1i`dbmCymKAv;j?SnQ? zLA+;N2fM{^pPcaCG^7UZQ;{}g%ymP)&JBgN@(L9M(|^gy`Hh*b`0+SVth1=|EG8#c zc$PA4tNP*M`Ft79{aD)#d}NwKYMe$})3}cPFX?I0fVq$Ul5dFrT@V;YFq&;m51g(; zrdir_mFghOe)DGkmo2w0Mqa66xR6-})9*_^U56m&G-=f;`uzyW0ZGZSR?76hLLSZ(or)uGAV>Z~Y{pvR zFg-72zy8?LP7aKm_(dxSb*10)$T6RsI>0NSY)ED0f+V9ma!7a_EvyjHBs+i6%4!zk zN!rHQH~pCVF1_KE+82K25u^iay4bRb&$8I`SV1Opf}i{&oJowid;z}qBgQGkarUW% z$HPXIMK|fW{K`*gkozk6xhCwuMmfnsu3g#GPiK(1RlVsl#7KAycQ(gO~qUE z)eDlBjtpZ*Sxz)0;UUOv;mstv0+#udtv2B)-_ajkaV&P#saQ_#JprHlR>osTHEQ(+ z#tSH?tS3!vSg8RZ4R51-LxC)ldavH#>uUYll!B$5wJjo#SWjY#=H>n-9f-lhv|cKM z%WvALtG9QqWQkmiUvp}4{5cwPunDh&LuLb77=lSx%YO{EeOQ5h5-(kACDD{KObDle z7pEn?LmZTT>yNd5FIjAJYOaxVf4E$= zDt&RfjyY-Ts(ZQ`u#SZIC?mNJaVUCqAC706%K8m+k0WjwZ_~M6ZzIJQUy4pk+h+Gw z$I=aTjX(p5=(23Li%5R@bikggF!^SA><6h%Y8JCG^w>d_;{m^y_VPM_7O^llX7KuE zR@g?GJ*m66iDLSD7y5y>$=qo7RU+J`(GpgRP;M*Hm~0lee-mW0ir4*; zaC@pzOx%GJ|IK8nf@U5U$)x6h5JK7G|&U|4m0p zr|{TrF5ny%6qQCl^8!Kwd6NTHJD&5@7geCmqM6qs(uUNS!|!v@2>C+*b~v9w<4Y$i zzm=so_vJRCEIvkcPkVX`iq<0|VU&X($fp~cO&g8M+>z#bXL%)oIe-=z8U7mk}pa-#J&y`j1;5l^(p-KCR_|3?oWy2`7l#1A-4-2 z*AMU zf$!wiPzqfti1$fY0thd!{*8tN5Lpd!nWcW%Qob$h-2R zXvdhiX7#vptr+W5#cH-SC?;!}eW4Wk2{)C!HI(qgJSVxx`VrzgJd6eT%y)(U`hu|- zE-9cmEl6R^*)D+5`%ZJ1IhFJq6-^3np!iT~9W>FJL$a&l-|~RnmRNWr?)SyN#VwLk z$d7Vx@ZuKOmyT|+$w2}E);L1_h8fwt2lqve|G|D6I2_6QI<(al;h|rdR0aAf#8$dE zY507zqnwodk4B78Y%5}eCT|=N!x^-)BorxU7eV*%o^K8w2qaxthhi3Pm6L3NUW&J6 zeu^*C@g#QBPf~YKWeXF{_~5mnTMKc2^s1Z<=`5uSi-ES%l$%3mlwg7)1XTmPn+vB( z+FuEijFh_Y8s>5>v^?pp7~ORX4;CXfMN1z~GDf;hr-l`#w2i$jL-_g|If~LVA+V>~ zcE1gWFCG3x0_ab1Q1eftw#^+N<9qm=xAIRKJ*SLObyWPW#m|6DS<{VU$8d+AK2*At zk(1Lt83P4uNs0*KZ+7%^;NwJ3bn*D6SFVkn$DYU99L(p(sBhhQr@I$wF>!8$e$T%2 z^X&)rR;&KLrA~UGm9JMF^DW=i%;j)ns%zu5l%z3XH@-q&VNZcuL$Ba{j#qL|BxfpV zqPU@y%;DR|Xqd(@Ubz(>gDc(P-_PH4WUn`8&S9;E?0dqx;9N6$oy!vbIkMu?jZ0Z( z#Jdj>((6BkX1VN=sId)m18~jYY1zN!nw<*gm!>!GezoJ=Tf&zBwN_uaHCGbp#Rw}q zrbS7Q#$5UbIbD37$Epd;pD3Hak)3qURh!8lH{Hn!aU#c zJllT*ncuxkr)?<}R6Ni8BIoiJ*zYl2|Dk@mb+zTf2W7H#~&Mae@Q5OESs&Z=t~g&Vi6E@Mb^e?c1flSM%y2wP!i$zIJQLs_4Z0Xw3*TbwiI|BmxEo!dn_`mME zcQt&j>#?Omi-Rh)%8HG|%m2Zzq4z6l#2|XNfV{F?G0PYBszqUX(S&g}Cn&OOOxc^) z>Eb9k^I!K3#aYp6feX)-E6<%e7VQ{_@E8di7`HDO7WJ-~m$5@N$dcLpL;`#K-_!=; z)*hQWUx+&)EDtUl^}jE%8C~XY`Qc<`ElT&w8W*bH>I<#PcLb{c1MB3qTzjPJ0<%SRC9Dna=!`EwDC_WmE8&Uem#hqq- zWd)C0thiI`cSa%Hd)EcWwov};9TOVmbhra`y*bErfvEi4#A~-c(x(Hf>Bd@$;^x{v zUc2GsK0);*wL68ex7~Vwvb-2(F2#z=7)on0nWVG*lIu%^9nE(I-~EbYx}KJw3- zdOEcEA#^;_dW7GDtCrH1AE2AQEBzBcp6@B#tWkhE=L$jo>#25#V$|e^G~OGlmatgy z^C-r;@b3S<)|l?Gv*i@S=+H~V*tJyAw8E4mkS{C&7@tUi2`**_L zH_PvF|Dc)%otT=$5whz%W52~8gq0bcW|on1 zPin!&TyM4WV~${7h`6?cr2bVX=@Pcye5~QY&;JAKtZ3ZYZ#Nfr{$$-YSd-a-KXPA^ zyKzd@ZL{(F3x953!>Cd{52cIT@C>@B;~DNp%I>0;uR6z#|7REI#A6Qx$4Z0`ZQdx) z<<~awCyj_Nq=x>>F~&Nve-hmOw{AB>(fdorT4D?1VIgclK4$h`p{G)CZ9Ha&`iaqS5r|z16p9^_6!sn0w0W$!D^9wh$U-B+IKPo4gO!tP%+}7y?%UCS89SV*L8|5d@ufMlidGobJ*R4d4j$kTN90#TE7RA z#mqEhzwi9d&xk%ll4Xtoz4!kUk{~&=9Md_H|3cA`-CF#x|8>z1b@zDO{|m*{sa%f! zSGax13;l7cw_9>P|G)mRS4y))(?|&~Xt~-QEQWPX_@CdL^yVIP0?QWfc*xNb1|j-S z+&alo@%4d@*wv;prEc{y{#Ua3aPVU8|GJ40=Nrpj`2WkkoGmQnBFX=~o1AMgzMuZD zdzD(JQU34sIo;~{9Ygfxha0uP=J`0+|CnoJMVRe>`35vz6Kepq)bRIwT)YhWZ_7^2 zeE#o^=5)RBzrW)Azy5j|SgM4llzBFY|B8kWc>-&3r8_m$h3#KIcU=Ph@oR78 zQ7YpG%CXw}^5h^6o5csBw%zv(Xexc<+W+PC8XEe)W|j8{F2_b*PHK zFfQ_LLeD#fhk5e$i~*NEHKqM~@1;<4Vjlaz-<_O-F7Le*WwsxhF(+HvKi;)7qI>P5 zqDok53bO5f&nT66Q1}G6PyVqjR=3O0abo<~*NtqW`!}ldT=fN6xku?kI-_ld z7qK?r`--g3`+U5Wo%#5!$YWxJpOd9P<8=)la+1eKd9GaIfRow#p8RW@fn4g-L|0Z} zJa~Gm)rG!UT1fwU5)@@`kA&?SOOkGF<(LL)Ir~CXaDR>`l$3KzeWvA27yHZPR7|+i zZjX~z=3Tfa2j&Br;)Ft#j;PX~QQ z;m3PLH{X>;p7<9Qu_vhA6F-@v;CxD8ACH|+V!)UqPaVZ)ZrfA7xf!QG6=E)Ee(!ys z3T$U%WQTNGi<8aZ#?(##dkA2Qye;F)m5+|+E4q~cPtH!f^2X_8b4BuvDQhg)_#3}| z%j!P+P^NTzM^l{5Hhs*@h+>LH7A#rDhY2rE>4xc;im$7rS-Qyl7(sLz8;cOZvi+U= z$6YshcRAu?BKPd$pGmh?t}a%>&L6NDR<%}DdAJbmY(GAy1gKmNe^sTX)# zhHS6(@NMHN@tPc=nlG#pZ-JZ4DfrAX@GU$}VhmN;Z`uHs>J1zRUHAhSzcB^Z^!q~! z6GM)T>XCKXRzCXzX6Fg|N-$6vse5SYE0{EW;QUzVIuGbvqZPVXDPT2sQMqSFv`$UT zBNS;z#mk4VrJ-R@-q~i?vv~L!K3{$5PaxM6m$&9Vw7319Ez<)p{ZXH0`{xqzece4S z-w}(Q!a+EtR#s$ns_%jmwDV3gI2M8j+uK1od-B9g7{5Iw!PTl!pQUk6rOs0BL8yJ7 z3em+#mnZvst0vl1qX<_AQK9l=R_Qd@!Ffb?^<pKlRiaX8RZ$|04>%&HHx@La! z#9Hcg=GKQM$)Y~0oUgubIQtu~ zeyfqueTc%RnAy!*M7fOXqSdkfxn7>zAl&t|ty(YVSnYeqg1}(a&Y;^u9ZIXFG+CKT zPy06P7@PeGF#Yo4?^nY{K_bnSq&K0dM(gRi{(+6=7{A#H0?E?I*n!>1&eyUowwt#^ z_441VVF(`qn@P-;Q5IST8+cxHv+@tLU4cz~gz@H@K(ZZVc)D?qv9y}_`B)$j~?=KL-+iEng{0erW zl&i=9uPwcKAo5)ZV#RNozMrXfubAq?n`b3wdwaXS5ApT$v-6=hI1)v@`hTR0A2STN z`-Z+0I%rELF_vX`{tJF+Yl9;D-Xf8{@!fRdE{T_G#YrG$@f=*SrfF)Z6*1r))%m^C zGUyW+K$oPLo8w81Gt|-cj6DhE`Q+MIL@(CbU%FHh^Q#xa#yI z7sTFuY&okA!)A~^78(oo(2gLL5lw-e!aTJK*hkG?Z6EK#Txg$uvg?ZFq}>9$uJQmD zbBzQbK4pOD^;Zfy!Gfopi%`^u8UeAtr5CipT#=>t7oA}Emp*0tmx`>{hf^6Qyo?6q zkh7bI1$dfn;3YYR`D;sYx!4V{B1I28#^>X}gJ(`6yCQlI;Q}dSK|Bn%hPbHMHH9+P zGS$M5_6!UjtQRK_?XtAMUDdAKqFY>V9r=Nb13ZGs-)(-8rqFJDF6P(xEJs)p@~JJl)??l-SpnZt zn#eotdW_e(*)~PZsk3}srugrj=L3TmKjMAlHTO$zP_8{&ZDB#SF_%3D)Q5hHK-m-* z{Fcd|&ZNuLCdRGoU~*>W&I*O6RL0$lkPRA8dw>b-VqceRQzPs&hW^${>s;lva#g|c zi)z8|&k+t5-*!T5PTN)=1C^>B)uW%v5QU$=XoPsja=0XsF-D(&Tv%dC}$NGmndg z;2wR2c*bT7!N>W(T%$u#Z7 zDO%p7o4!^Z9KeN8iVemzS=)g=qH9Nm@U|mPMV=&A&|lmd8phXAB#4`78?IM+ypQ`b zs$dfJ{rK!G+fzoeF*e0^=XYk2QB`4pc=hy=wNqbC>7;OmV_s749?j4E)WRZTWzo5# zk>_%wpng_}=!RUuaGF-cV1amrV5uJ0XzK~Y)?b5nEkG=%3f5F09h+T~q2MCFIj}0# zk_8`pjD&H|qD@vLXGauA8F??{noiuC>e0)myr6B;Tr#%s%{O>I^&_+5dwZX;S?S?= zab(ves-*|gpn$mJRA(3vb@qqvELKYE8{FUk$6*O zSf7Mk>75SvK+pUr^5O1Jqnwx2HsE|AafrWSe*>v@5M@4&I@@Cm>wS_vl<2p;8)cIf zxO8WbyZtGoJ+G3574eF_IIMs26nEE&xy~phi>?PA6}l|u-5B&7n%zJKX+!DIVJL3s zdj)z5^fK{;0;-p0C(X=Eu0H_J4VJ3Fie=_wDGl}gcsEi?8yfH>37b}ZqieCU3x z81~vEoMsY_?-lXb@-w@=c$nFQS}DH<7b|4#bmVko{1dPISVr_{hDL>;o_avt*_SOc zu>1bWtnUk?pG)#2xu;cltuq2jVAxJKHQs%qT`HUjq#(TA@kEuq%{I-Pt`1jBnw@8qo>**&PJkDR>fzj!%}7vuDY0|Bjt4Letoyn;V&v3s zF(jz!qSkpKB%iX*LA3K|by$X7^T+ZD?_`O}owM)$>x`)YzF#BM#4zqKp0lY+d<|>e zBAb`JW~xL~`$@Qpmb_^48_iC+s-Bqnu_t-@zO7}0tB|8BbggOk3qsp|@8PI*ef!%P zLK8DN`BtJwKf=zff_>z>sojfKJUx{LS~FWe^>1qX7SfEBg{_?0SeRi_?(&f;2`%?f zwi)S%#}b1$5d4_Ey}(?uXQ<3}MZHVHpZ2k^=Y3x{Xz7lVoZVkS01{~g%lAiH&D=B{ zqkHb9b8Ap>RdG;YT=AOoKxDkZ`8?(T+_21WbfLv457tRmWr>S;9DU+{ODcAv@D(qW zvs%~mEwM!rhK=VhjS&cNF_L)QeJ8@1JfgrGIuLiy)*|^7rtxbCw4fm&foNz& zPW&opU-TQ2PKA)Sgpg*X6QhGbN3#!{FSfLF7yv3h`dCdMtX`fpseiG$MfK$my;hsf z{ie2-5}U&p#sTh*ag%Ap`^z{Vh}8_jUtp$89bLk^hI1HT<&PCYKmhs{4)3x<}V&{p_We)n2({C=zLVJN(wgKyjo&9V?M*FYfSL;W(RR2bjEc0V+Dd z8MQ=}*(gfbcnpyZn3L*xCpT5chZaZ>TmN-}%U}jRcc{LxnBSTj-l>-2PCrp_WAvg29};2EGL%Im zuB)p05xrlq~8sg)+B_yzw; z*q&bBwymdZaKtz~Ly~}n$IP35r@Lq%vh=;};@k>3KJB4aPd^is_Bdgj$Lfxbkvoq? z?hn+$ErsBO+sHQ@#mCq^YG3~~IVaP@JF+ZlaCpSf4B3`ccr*uz7}Bz^E(zA z(;@EYuWQjrxqJCLS2|7Jc;DY*n&I}VHE`kEtk!E|U-_T~*D7x{nv-d_vX;r_ zn+1TzXRCvK&c86S1jy@W?zFNRW!4I@ek%i&HB%mC5U9F^2+Jl!EDPv*lA43LJ-yXY z2lb4`BLard!E-;$M6`2>E5FQ?s{AQsyg?w$$ZE)uGNFQVZX zDG#rEIt+;ecGyIsJ>LJ!0_OoWMD{s^;48Z{>9Cu0R<9So!~G=sqXfOg#Z)M-hp6r&f|yp@Y(kpP1$VI#0pX^;sNQ!ytJj0NpijOgX&&7 zFU<`cM8pGISc33a8dAgD0up0`1VRi-Y&LJ@GtG6dz8XhtS%pDLEFp4XcSe2YBKF-a zNj(z*SVvYAEVN0E>BOMGT%8FSwtiI*LKcf7@8>_72?8&`7(b@~5`R_-9B`RC0hseT zASy5ta%`N!(VRbj-AAZBD@v!?y$TJps~(K__e-Vdh{d=@T3_17hpuF)uUGl~>@WQ4 z%-=co?#KlZiu?BV$<*_6QZp_>)ZibJtyE+?FT;vke!|DkR#|wnZ z-WzI}li>3GbEj78){Xt$q$TA0)bUmioxw;etM>2!*1YA!IuCXg1DZDopQWN)Rrr%t zIE$X;g|}3_rX=2W3e3!mur!cB8;lp51!_`uwokv4!l_ZUEI(Ao7gs79+P!+t%3R-x zct`+pD?In4h4*=UN+Yl>9FApsDG@qBS{1-9s>xOn(IMOqH39;!D7*S`Qc@UQFC zab9t)_x7U870>VTo8G*BG-7xduhuZQitx0s7;5J2KPfAZ%fO?7s4Nkfc_)dEutbSb72j{3r@a!=lk2{dXt;nUsc=ez^~dvuWgJj*8^P@>Lf zy4F1o!#*?{CEz{_(fhz^HyLxo7{(utZPHr3(4I_571Ie*h`rTpc<8!ivz6<)FjN3k z*zI`MWHn>m$NMMD$LDa0-6658FuBCG)Un-T@7KyYJ`FsdHxemf4%MBc%-IcH1_n8Y zU;~4Od$}+c236{!l67Y#t09TqKYwk6Fy~^W|1Uj}a(NFWYzA3=Y&<^JY5*}YxiI6T zQr_9))XaFiY{t;I*`OkW*2&mija~@8%iatLyzvf8XYRq+N1^@-0lnM5oqq3<&S`b` zRzd2?Dyt~x%KG$03l3ki_#>aZvI@9iYN~v1#t%{$DulPwXxI&Z*jw+t)YTK{#M8VES#&%zRau@l-7j=;TGX>f?@BUnOILC;3vuC8^eHRg@#NH$%6TiCANxLrrzG-g9qq2OC10_=G~L2SR^_ z2-gy<2!@7C00ns~m zGqfxX36_`H@yawKdN(U=t$S~hPi#4yISwYsZ0?veZ0aV9(cjJrN9AVMQO!NYsr-{> zR>SR(5VTG^7qH}#EGNZu+VMtH_H#;8BOdI+Pr4cPW6L&MQ?lO&;F)Eggaaksnc$xO zh;T3ey*D9fK7FA5To7}MG0~`f#=8L~R=PA*I}~Vy0b9MW$RgfI(~guFSbpow90RQt zm{~+own@c8iI;Nn^D$yKqHjcdQQs8{zcLTQ+bjNg|3go{vN6o@N#Ucx=g~PX>``%@ z$~ib&fpd;ndK z`e6|1foR_Mvzeo}xlnS7^x9CCyC^dOT*!R>%^K_nOKoxSQ2d zs~Il^jcRA{3Yu9Nj>7i%<2c~ML~;3jesKk+=goAXn3#y&h;9O25VWND zt?M5~2J0DP?@Vuson$Pt;>@nJUefFK+1!OQgmq640t3~>4>ImdbfU}Zfme$)o{Ut= z@9p~__8hWdncw3H#n1=5PaR+&@^tJ8dUlKjjx8O^-7i}3<#siILrSDZ)5^ZO4Hs=I?wgZ>h0<)Egved#24(Mw~&KhXh%e>M#}7RI9n?VXioNj+GQMVriFne<{^8j zLx9X03^`ha z+h<6s0k!lW^Fe`x^7~As0lfO1Ndzc-d;88Ig(SYZthfit2HwS@{ao|T1nx?ITGFMC z$hBkY+60Ij7C6;{7`Y^99a?qPnq0M*Eh_fZu^#=#E9QPgzgOC7oWP48#bmY@-{^W% ziI2IToJU9=M5pDfsQaEmJRb7}>BOw`+868%k&+twn8@&(Fci-RJXi72Nyf1 z-Z1kIQ86(wp4PYOJB~j@R=?|1mH@cp&#@1MJ!JCI*0@(JWeR&00cPr#nj16FO{(x< z=XVP|I(pV%W;DD1|6*!}C}=$ocjLvf7A6H=S04oa>;3}G~@A2e(S{E^0|(|Wiy zCzm7qZ-*Cm0x)9)aHez~@GXhO~IBsRV3g7EkxueEwUjB%ll8&P}_-UGooOMV~{ z#j5$k8992<9hZ3_QtA}ZlOTQK+PYBH=+oA}(^i9H1J+^qHj0E;3?fW?+NOC6+FDwb%#eo@On~1(du}`MG!px z6ah17xNyQ8egS(gJ~`Xn`?A|nO3CTt<1QN|6y8P2i!3S5uDtPlv&Shiz5AHjZ86X9 ztHY*_tMlr3#ivHrwyC_O{Twy4*V}XCjnZ~3$ca4FE&$cV4 zeh*WY6|OfBK`*E5$=7c|BBw;kt)Preaz3`%APZDNi)O-3EIMU&zxqJ0!E}!^wbAAN zk%m!>%>!qQ(QLfOkzCFRQF1!br#Y*0nR$g*Mlj4Ni|>JmG4?gll7>Ty>g`UF zZAWpu?q3qZFRyE+et$%S3%sr-L&cn{ETC0&SUP|>szjjItdJJ5eahG>km;$7S=k_B_{Hn+Z#2amcZR zC4s^TVwqT3igQ$}3Q_B8`qCD;QaxGbF~<6k5Dkx*@+y9M(~hmaY;hSbfH>VzK3>w^;sw(}4fA44XJ9cjWY zCX%J%Y(Ie-`TMI0;}xe0J{5nCp6o7)vA@$Ph?aZX`8Ma3*Srgc+1vVTd;fS7yR#HJ zIoO8p9yS(jy)Ioi^C%1xTC}vVh*ldO4%Sr~t6e9Kj6a)NS6!)WG6S*0LK)V-QAixs0k313wxaJSamj|APv|W_4Jdim%C?4$c3)m)D^?R zb3&c7&6nB@YksCX=A@nuDgjoXymJ&FetyX>=O&2cwmR;sVq;sky{MK1nJHMYK^6Nq zlZUQV{>d&y&?fXK2at4?B1bTp;N^koHD7;)QuCXc<(d%-EilE>A5o@-g>07!*%)b_ zmD9!*{EpCGnYV=)@C~ab@|8gf15^YpQ0x`jv6@hf`XE~zF6e@ytN`aAT_=xFKeXZa z@%4RkNbALpXF4j$%VYjLXBOh%;HyYW>iSFdC-itlZl@!K8}iXP-&}Q3Rc|3ID;(kj zwJjlVWv+|L6t5|b#P37aq%9;3qGCXVFNXyv;7d9{m5TI=$yEU~S_7h$lH!x%Iaish zS<$?9`@cM(<^E;ESCzhW-T6r?82`0bMB<+a;Xt^r^rkNMIQEhD`G~eKT22`9>?Mcm z7G=vDvmlWKv9eUs3z&fZq=RSk0>>cjtmeKF88l) z@Ui{g6E>xZNOlnE6<1??zx@?jCuv+sl_(IlV$ex@IP6F?jGhRi=T>ZMoqI(l!QH~h z#e_5ZxOgI|w(WcC%Z)+cSv;*4MCdtU0q2wFIot@zN0My^7Sex`mG&a(yG0I-YCVpE zBHm)0Xu>@A%pP-*dM35yH33z?(?jLxciVhdH#7X@lJc#2;Sa{V zs(GcJ6>YtavBuj zxSNvLqTDy@0jlH!cj*^g=2fYKWpZ!(SS{~&3#53otMugpQxoOoUqLo!6Cw|aKRmb{ zQT#8BIQ_YjtSoaEn=ukLmS>+k&&_@s0mTrw4J+@bjT?~hnm|*DAy)gQ)W{f1ahuSY zV7KNm85(?{AbiT==uWY<#`p++U@>v{UG;c0gu8ki&E4jphyzFy?QgVLXX^4BX;uUy zAS_`e+er92qS1eBOZ?)q$ZJMNKXO^w==)$VE#tH|)HZesz+8{PKS7mY@2V~vXG_qE zcissx(8vL(s2d#|<0#%QHV={VR(v7p8OIa3G)E!FjMMXhvZaXrX+1)qUS#V{(C#8l zu1))1g>f0?;%^?dCmYW$_Za!!r=DoPsUG6YEh$g3#Ds7|y zCJ-`T`$9x-d;|R)k0hmeG#1IGIH{56f>_9mzAEPqWUrEF`NEf8po@g)$9TDR`T+>D zFLw01*OOvdMMR z;wc`F9D%p9?{OEc6r#R-p+*(^pid>-5Z$y1|7dHtdx{`mtk?*S3%Y(Z&)lW&x}`S@ zCSgCD`QmZL?9sz7=pvWi`U6WMWEsfQZ*@(e9y$rkU}O1s;r_9u6!*ciM1`fVwXbwH zGc_(&e9`pZxc6*oS6C=5c;=i3BCctXt;sRWah!! zeey@$LG7C|6)z-S&l#0Mg-UIUuRr=3al8ux>FQZfb<|TF(O=O!b@$Z299{o5P?E2` zQQ3bC48o;eQoIPt#(W0v=@{w(EPcH|6B*3&29wP4C$oO;k&f@9(oQ%%MXqP#uvL$C zD?`MV5}D^>y+I1UIM51WL^7g1XTM(}7pw3_mEOYf4 z|Ay5>Cy!U1e~S24$3JgBy-HYzJ(rVH92KwV`^~QL89{-Y8CwT|D$rz#{zs9GXJx9$ zRQGl_YAeWGfCWcFkVI&H+@|WYhvbT$Or=V6T&`h2EhAgAprb&xI^TAN;KTfcS2rGy zF{(&~NPMk8z8Ok{)k^`dnC`J7LOMIEn4MhCLxkFWFfN@QJNQ?r30`&h42n$5e$i{E6iUFHd?Pl~0*-?mz?yQ#3D*cO`!1P{DF=7#=BWX<3<_ zh`(pq6#F+sTX*X(rh@{m(j&hm)6~y$C(xxCmzQn2j-RN0kdu2n*|P)vregE-+lsq+sj8HzQ_ZJW5+Uo;D88^h6e>0F7z>lE{tNkdAiYGGr~QgO03= z^8l6aICE*M3;B+jhh+T^|JVbx5gfqo05&|-q>HbPjU?Dl<|B7b9W4W+6$w)POVpi! zHy^!R8*Bd!ZP#5*7BhH@PQru(w`YbzTXH$@22jA@M0?q&%B`S_jNOg$cBCGm(7T;K zp%NR&&WF2e&L&=Nj7g=k;e@Syn5qSQqG0c*dttAiVGs z*if2*$C)0j4tfT`Nn52^X!*&u4&^Mv&zLMrzb@DKMf;w8uH5vQ5i2*p(`qfFc|y3h z!LpK8LcX|Oz+yM~1!R-v>JxcQF-wR5MajF!$Cu-V2eg483c#dkaWQOi*NLsgAn{6j zXz@z{-~3K?WTS=%y>jH3%fg(S{D)QrK-X&{c4cV8p5!hh=VI36$QKf%O36N6h-wOPPHUwu8@enh04S@6g(( zpz6U>q8YDi?@9&Sd|ry>u|VVI+VoWQQ7L|`D`grNB&2lkZ;}%g{4Tk|jEYou>%Np1 z2|{1w9E77X>9Pi zPCLxNY&Cmo3b}?4>K=1vYmsVjYs|3lT zxZA+aQ?1o9{D)&Q|K&^K;DdvE`@F`rvi+)&!gMWFAMT#Y4?Y=x#1_c((+vrL0qE-z zhfdq{PVRoO;av3s6ZRM#093dyBx(jpJZJWgb!%DTBI{6}?iPNHfD#xtQY8w8ZEx!m zx4ycgWZXoTrLap;fsU3(_erz*9cjoPBzUSwoK1D-Ld9NN)G)00=JX#_vIz_1~+#KG$k**ua}J_w`_rF1_~wBWQH-pUVjWOg$*Gw(RNeyLGDAU5S|=08*Zi10Zj*vZ<}QG9hu z{rbF`(Xf%b8hgdbJv892!Z(bTRVsdNLdqs>pvx6eD zi7wDfR9+0^EgftobSfOwytALP-daMsGFY%g@%8Kos&j9gy7L7F-h2#9Jl{~}r>(QH zVl758szw%{CMjcBvK{tIFGsL}kNCSQi(+_$DA->c85PO{a>1vi=rrHyDzqnpI0)LA z71AqZd>0^}iM983l%)QSq277?^`&sP+ge2C76HCR^p$x*5F^+b|R`X;QP-p=r#GY zh&oBEQh*Q3JfQ_^;Mt+V=!{bt*Ifmop;tz_lz6{&xkEo|=lg1}u6T_4i3IH@d!~&y z_v*@f%oXZ+@VtGx{rHP6k85Kv+Xifi+HkigW(=sk$R; zXnFHItM~SL2Jbw+MiQ#ttn7D?C6;kwmqORX`;X3qj}Z8^Ab8E&%`Lf$Vyrph)II1{ zCYZ!DE3&LfMOf#Ha`29xIn(wFcb8zX!G#u~*0<$4nJS$^kC7biA=EmN#iE6iLVan;W)a+x7FtL@TwkQhTgXSL+F`hTPa=Bi+ zyx7?fykjrr2T3Bt0T}>S8YjnO(3jmE)n)P_bP$T0=3YJJI zho>}JNPyURUq|j!z4>cUmSZZSw3B(a#|SZ{10`aeC7=VRWbC*v5z1*JBQ=!zsin+` zHIm@5k#M^pS?0jP?47w|M{)4n+Nkx(>%#Jlj9?#7%T?s)^AKDfxQfvjR%77$c;8jP zWd^TF4$*PEc*lHyGqQ0MSW(cPS%-#bL$8hqhwnd z`JV=b8Lh0o2x%bg1k7;XyzhsfKGCnfDuDb^0De2J4Su_yxD_7Pe1j@0Or1JMlE68s z{ZwfnBT0XMkhFZYsNDRzfPjsEtFtBM48jhua4R)=mdt`W0_{vd`3q8Ri`d2scyrLPAf4sKLupqU^Y~>?vq7ZuzER~; z>)tNd%=c{j_&ke$w&@pFJkiD|+7u!h1zT zy^F%rH-t*h{Up-TO7~hsW76m^z7u-O<65;|Te%R>Ov7{dr7Z8gfa}HWq~;cxA%`## zO~KY4ti8U_2j)(`eDPQ$_BcbaW4Woc|CQ$I9PjR5X2m5#!7QSUWep9s6tecFYHGu; z(3mt|Oq^J7#QQ$9PNC{;VH;(lU4u`$Muc8o`dX9iW&>D4n1Ua9yikAmMWBo(nDM86 zcmPu9F$?zIbg^_no`mKkHx<&4?Tqr?d>)veb`Fq2yIFObb3Que5&og?b^ml_i##0R z%Tq~C=Dl_r-@Ojn5)B<8iZkrtx}@(7}J3He_%9p)hC(duWkh{fs8vk3h4SViW`T_=r7Hv&Swu3W)JN z(a-Te7lJ&muFMG{3A;qFt}npBk~)`=Lq_YqF|6EzXCs#IaQ2rXgdtr%K~K9SOllAl zbY?co@c`?79lXV4jFEJdzmcyUYQ$tma~@yp2_l+NlXK+$7wT*evBHP?jE;5R@1 zAS?pR4X~0Geg(C5Ed~EIG+=9nBC^Z#+zeTw^b?JI%?GoD0I&ZuOSfz*Quy`D$p}fE zr9RHQJGA^q=#Q*$dcEu_GQnFNVqfLn1RZb5V&XuP>Cup zCTZ=8MG;>6&&uvzt*k(eQ!`nIha_QlnCRx6oNB&~6WHmZm{Xl=3WMT`LlWYRnDtXy zT6w~qX52D!a=wJ!YN1GjL)_tnP>`8*@2ljx6s;t#V|Z6|!^EVB z)?DTlrT&_`6hl?JPjBzob^I2hJ$&Fn;8tvv6(!{6A)jQRMSb?{1W zJZxTr*YBUjn#doV*0+7`92&;ikg7N`N_bOuq-$3FPM|*Xn)4X^XzQb;d`t?3kFx#R zu)+>hfU=2H5knXlWGJwc))c%-Hx_=nS+7XN0z9x=vuk`z8N!Tu%QLJtxDa^$ck${U zp#MVYv0xV4XhN_+8sg^J%8&P&@Pjq*ADSf3b20Sw*2O8b{C6L2Fa?X*Ev^-#%P^aG zYED)uVe>ig84X>=kqKsDdZDHlq2$L!>MW()+2S$F1oMaU!!Scn>t>B<2db7Ev4_Vr zG`d!-&%g$EP{j0~;}3L$0{*k}x38=ZR0{X=<;WSQv+Y4HGejsn&8&ew!DGd7rI$ke zSf-CO`x!;`yHi5xog0BwR4eE7l5U~1O$f;Lmpe!n^xCN3&dYj4oe#^&8=z3EBTr=s zzG#Sab{1T1LVsD1(y&>QotPy~5r6Rc+^17Y;=Y!bd(;j?;!fPZZD_Z@g5dXk+}}52 z?`_B$*Rx2vlIv~%=-yu(pY6`d%?i~CViHVcQOrJ{Z9X~-`g}gXU@5vk&L4C@GxQ7p zA$2w^c4ZB{-)>UAxIX_HUZYMJIHE~wSgU-9yNi%9uUgjY&$w^~G;GN^!X|HJK~}EC zK0fQGz*&uZUJ}E^BA>znSk}-NAr+75Jl~lT@#o z^eViWOD#y{d?Ics*^`V4&G&vtm?JfUF={JOJdQ@6FQh&$Y`(dY4r-m!;!KDjRxjiS zwPR~0Lb7VO@pn$7utzg}7;Kmfrq#iEYxbO7F%5(s(@7`Nim_2R&kR_UgPsN4{+n$$ zoqTUy9{&~RS_UXb3UP%iW9dBQ*iZCp6%%?O37eF|;<^jWNsU_Qv=tpLZq0MEgsJ~R zE?fIQt*{~eO$&4cdM`5lnOM_LdCc7U;ZQjQGir7gS^4Hca#WT+MFQ7-gF7ETQpWi- z{Sz=j(Jojv6@m{08Gk{~R{K98k^KdKYKrYsXz?45Jxxp0x5=4=G>{RPY(U|7K?Lg| zYBDiJzQG!q7SvHY+}G&WzQ2jx8WWBIAVV}|cfy#AmoEnU2-4s?- zTGFrm%mBm6rFQ0_I-b%_ox`&HxX$bvy!G|$N}Lxj5dJ3*D2CNmvjeyO1^FY|tMGcK zSr=|@L?BrQr8)fi)#hzWGnuw@h-X52XI&7 z8-YJeC#obg3w26EskIlHO9K1OKExs96v^p8Y+dL)>vqrG%&h7?LbJxboUE#Y=mO~K zx-prB#d~cPagv7*gXEr|)fD245xXKG{wXf%QK${6w&GtEu4cZf z_ILVIJNe2myy(&lkkuKPx%ko_#p7*3<4F>+ZTr>G$OdaHh3~qj&=w@KlO66*&EBDt ze9hio*9>~EIWpQc_KFAJ-6KD7lulu7sI z-GTI-VzOv_+6t7&SGAQ=b;tnJd&M&2D`!O4l42DUKrMgDU!#DZVS&u_4SsO_Z8YEk znw{gn?win~K8phgoE`K7uo(NVcutc<-UE@p0MvbDz$biw0jD!aL}2z>QK&U>eFOMA zdUN09xZ|wu9jFkNG(D&{zPxCD7C%lX5`FRB9c$0bdS*+`Vn(#FqO7XwOHQPR>amNu zNZ>|%ysK-V4p#0uJou1jO9e2?$w`$LK8e5c9^}MvTy7f!+h5ms^hN(06QG7iS+(NS zxl`;E7D4s2k#C)0ZOnW@l+Vs4#bWup>V4X(ygb%+lF_RY=3;0H7tD^Sv6m6%OhMs& z-(e)C_i?g5>-L+!e*W9vUwtGy>d}bq6Pz^31XEb_Z}ndhihmu_>Dm>fcpY_M3`!8G zCmBs_R3UGuk^N%6qiN+!V+BE=c??s!*z&FjAZ{9b^*9ppJ!#_eTV1lU9R?Y}M+e)E z4gq(Ron>9r&`^nTe?fxoOiBdSCru-y&Y<68M_8nOI5hU?g%)9tll{NTuJO?SmQb|Y z)oJ2Xw|&56cD>2F{oCQWh+-0{UbvVJiAdmD`2t^7NOb{g4|lj~Rsw@ur0xW~+a;On>oduq}m~=_J8*;<{@z z(pJe~&M3O^`F7T%hlWUvJW-R63Rm@x|H&Hz_6{kD_72|9)XzF>p}y)PL(z{$I2jWn z6rop_B->+1tBOzz2KLpZ=(UW?H0{{Wax)6%7LjHk)aBzf=Fe2NjrVaeM|8;k{IK$( zK|7maQQtwWvz4zm6oq#JCBZP+nTM^epw~W;-4AmC{@lO~%V$Vs$SI3;bQ<|jtaCEo z2y5=5RRM^o?Ncr@s_l1H)so@+vp{(z#CbQAoI8%S#xBF?Zy-1JzNFA<#`bE*^ zzT$zM658JlY6d1hf|;EW55T-MT-&yllqVbO3k^NOPE^BHpXVsE=m-8EfCQ4@_#b<4 z62P_9zVxZQv#M9@*l)2tBmQ9yKKvn1c`o0KM(pn8;|6^=A~!|}gO^mz%{*o1&mmIs zFd|c}nq?r%yiCaX9O@{#sDGscFo;#jQ0Iu7pH1fvJ6#ijrSaT( zXb4vS@F+pEj&p{7e&o9II8+XJdI05*0`!y5{_`+iH%Im8{uVXN0;EMqhdD0Z=4htzh^$|7T>{H-!uP}3~r$ZEQR*Fd~CBd>O)4pds@>b9`>9e!# zGT_B^ETL8d$Pcwy&$c&N;bQwX`_F;1l@EaK1WNkj&B!+xC%v4yM8}sil>dNpEgA5B zS*9)P0J10*MJgONExf(3z+#&l(N`5d)PmQ5K+b!Uap^RFqCm@j-9UjqU~L2WnXUtq zdDCU$It}{6w^cVwREI+{y3eXTLFfLoGQg(R<}O@;$x8)P0#`)SqO)`M=TP6zk&Yd= z{&U?4;JU9sc1>XSs7UPPUmqm_mc_%sBo3Qo;dW=?w;dg`*FPl~dzy$f?`52JVKiwo zjfsQMt}s6XT-Gxuss5l_lJmG37Vmq)i+qVhU@-E0ZP0z#=XBpEsg8NM)>id@;qyaY zWj9-SynS%OZh#oj*An;t^3=Y<%Zv!MF?QGu95qc%O+Gsz+7NmH)tCcuXVN_bbCG^E z%RWK7q@Fqm25l11LeQ^#_uM96ElM4#fb(AmDpw~=K3B5-j>3QT?vgNbbc>XI0gClp zv*IQ^$-4ISUllKHqk!f@6bh&_TfV(HT$Mr`vuodtmrH)kjgux7DYrCUx|IdIT+w>{=3-I?qHg>Xyp#gYHxN2&A&eHmoJe6tq6b!} zTi1f|qOG~qj2L=b_atbq^cwY?~QL)-o4k-5%4|8Vk6=9V}h zkR_(jeSN^UW_1fl!Xw{5UecjQKx#;&1qy4;dfbnRK$8Aqln(D2*Wx-}ch27TO+E@} zI1aR|KH6#YJYuz(6rI3405k)BTIE1L6JsqUh-uW`!-pM9vt9qXO>Aj8|A(uu4vX@8 z-d0f%5KvHQRzgsa?py&S1VI4-rAtH_ge8_;rIiNh5(E)Jx?|~1K{}RhSejj8_k9RI z-{1A_}xB~*ZLX}#TJKF{oo`O z2&kUAmeAYT$q}`)_LSQP?jl;{%s^I?5m8fRd$|WLPRO}qq$Q7ge*{SH%NM}%X;KQp zm%ORAVi+$dy4p0=oS+E45e=dzY?6$uEKWZ>?Imlps&^Y2$PVniA1=59To}^rLPtX@ za^j@qvW7g3I%_PJ_mAT=DeAffcIeMWeC%2CT>Id)0ayd_Kh-d^v>Ed$2su z(cHyKh<0$4@{aU#K>7V;>g>uCDEB8>r`B;jy@ zsB&}eYuYRB$?t9h37hv!EaW^mBZi7u<>9@Kn^Q*{pZ)Aq0bkFP$-w&D^H6Li-8D5V zxE^YBA>;(o|^vN4-61eFBY4loM1{(eC zfVmpGA!23aHP0afJj%F|>>Scm{{;Gy+!<0I4EW56RRbyG{F`fRDmQ@OR^ah-K_JS` zxFF}j(p=FGc5kKGH{8pGwG@OSRBZ#nQQ|XofP3hB7j+iz*8ULEE_u`lpakT4#8$qx zwls3281?25anLer#E!_n{6ocOl;(_kB>G@d&oP(fl+20k-vq6mI9+07&{YE3(+)om zSodh_J+^d8)@wX_HV; z2)+q9!?$-xtq_6c41=4PoE~cU3*u zt3vF5A5#DyH|2Yyt2O%?YMG#M*JGh*5tCE0qr|R93eZMhP3>}`5^JvyV!(2>q2GN# zlC4zABZ^qO(TaQSgZ*p~D*tI6?Tu}d0mI+vs6>B|g14U?_;@n#bUK`wA6&0*0uhWa z$@GCo#Ma0pobhv0y%MrU^~ra}MlCHrDrD~^iY$N1biMz;Qkl0kM9_-(pcqA^4ROVJHXdjX2n1&;0XXsRFBMo*3i!rvA^%=4E`Aa)o0D-~`3VHn)N?Ig zq!F};oZ-1rZ1D!O$jUv@lzMkA^q<0bxW5>f=Bb@E}ViKalW_*vzM5A)h|@ z`~>HA_)r}nd5uatPna!gPl5N$-8Bn&9lsOwr`T#CKl3{7Y_n(LwgAMfta_!y3LxfP zqj^81B8kX`#hck8Ug+MS$f|#GoaP2pUP>|c(*ibk)|SN@e`^Ss8jTDoqzk^-jzmQPF5_d0U;5(OJMXD~(3kJDaH8)AMelzd?; z;64&L?~wJqBXoWfItO~22dG39&^Il(&)8TB)aEW4O^6Mb5mr8TmvhqWYif2nR$+h|k~H zz?++X00Sg=)w_6itkf?$DJd^iD(vI-c3wE5g!L+B<$Y>;+obr+zeNiF+j7r9!OInV z%q!=zdHUsF?r5dQ2LLr?RBiy0w~$6*f!Z`hAp8`d=KW_3ebQ8OejSFBBxEWLO5tgY zkxCSrf906~&-H-N$*K46^~gxTUq4~i^O5>@&t1?vd`ybaFeAf$IWty!!;hc}$eyyS zvqf+cMr_3jC?{MGB6*>IdEN}r@kWzMB9A8*B#P$Fjcr+rJQL_koGpO~`{Yfq*c0Yu zU}q~_AQ;%iau|7#*8f6)(Ho#d3asuKGkVW2{E(u2`#tb&e2zv`aTFrt6ny*g9&mVl zAxh2HMbU5lw+qqthp&|^Dg^+3DwH3pKQiQs9Iy-@T>dD;xuoI_F4Q~i6MrixAjN-^ z=KFg!4ESu#8ApSE+`*?2R@&ufPSKBb zXo3B=u~J!idH2iP+vBU4l)$a0M~D^rGrPwhOWNDA z9P~vaJmjyVGH=g0oRHD|8fFOaF(4C`gcpH^Ad^W9!$l9P9_a(SQfVshd|wy(4?Vv} zqe!+kelD|X0#csGFDA&yyu?Vz&ZKNn)iF+k`!;le{|y4vhZ#n2%bs z703sMpAKx_e@$h@h@-tF)KJlys+T(I8xH2eu5F^3)G`u@3cFeK)#v`6_6(#awwg6VLBB46##Rr!pkOE~ zi1)0>e^vn?e1(}5cey+VHJ8?IK&nC3Q0|AHM&AG#spb9{ShoYrZF)c#eRR7>U;~Ga znvC|F^7lNn)9&kZQgXJZ=l(>gLYZIkuNL5Pp_cuAJ1TD}!@Rb?#~bxL87kFy_%vYp zGh3UoC@ELjM;F;lqjQHAr2QS-N;W^S$pgITdg?uZ1l|1s27qr(m8a*KDa9O0^<6>= zFT?si-%bVxsUnUAp%trtPPCf2@$Z7(&UmC9+4G0&n29iy?Ybh|+HPPmxGrDwWFO@p zIQtQ+m>&kElRW3(W-D7P?iozlbd;kYP)^V$+z*&xQC=2NF4 zTfI_`Q{>r3I6ZL3-^(Rth1upM01bi4#Os57UIzg70$k?x=~5f9J$g;P;e}cegML(H zH98a!K}ksMHrLD?ns4~rug*V#QBh8x*p0p~+l&ugG~2Yz^8fuj;%MY|o`pKjgpb-~ zUsSvNOJ`uj)VQO9Cgn!!xg~hW$%legig#u00&9ZTnzA@3#EgZh{h3mr86Tcf}4($@QJ3;3px;)AAiQ zWE7i;$sbqQ$WSRQ;nnp}Q!^SHtSgTF2+9EPIOL?t+e3k}C7Ge&i(aT>rC|?bp~#cX z*v(((3nr$PxlaW|O29eT4U+c@0+0s;3_lMg#`|uRex%s+vV!qreBZpm^>)qm zaCshWkgcvVj&lRGS5^~p3+apGl6y~P^1JJkw9Zy3NSv9wl}t9UN1o})jNfZ!*V`3t z8PjJTwr@CMg^SR#H`#-<#A=xgLEvz_rHrdI*6eY+b6iHffzNz=(=sb%*{u~&Xe34( z4~3grv-7y*4T>4g$J;269&dk@rteDKR-j?j!*Pb9&5`whC)HOZBd7+!cr^Rn<A!pqIDUtGN;_U`r5+qv*EIZIC|0z2Yh~}4pKi%@@(xQrZ78&MN z5%jkUQqNgh|K-k63wp-5Y|dEf!`S*9@aFiQZp zvd*Jw0u#;D4Hfy1uh-rLuM`V7cyzp%!p1}RF-kq&mGkNk6*3xLU0WTDaBDJSStUCF z#h=YbQQpSR6Z#3|hcx+k3&DY`c~A>*RUig>p6OIMo#Os&4}<52K6Lwqgb3*bnET!g zv0QFR{jtgx0Y4$6gLEg4Yz7tQIa#82dI#|#6VF%779*^39_{j;dAL3*-pzYpHP-16 zX{12aty49maX&>HdTMRNl_VHGkkPShH&{Z?imo#MmO!lj_C;?QtMIS7vKgGb6vaW; z&1HdOcnyQz;)|hT2Xv|CiESOh4@@n4jMkKNC&CD;vZ__k+ZxSKNm zpkOM{Y^(9{%VR3(xa$^7ALhTi|2U`eeZ!%rs_V>ryrPM2NHh{dWGn))W!lvoSK^S9 ztp=-;-rI3e2ajV@Ue$7T&8^0xdy*%BQl3y{U$A_Ll-$Nfd0K@Mk%!C~#t1xHPcHGZ zBw`5OfT7WUR2w1l-Z}b(I}F!L_F~oEBEC^W;8Ko&q-B_rM9a z7=mqxu$P7;8C0~SMvqdOPx-aQqY;W3$}U1kBZ$2*I=UfJD->>ycRVaU<77H%uO7%@ z<0dGW>~j0A6hjVJyM#{dp&F&0g2Rk-j?8(8CH8SCFDDh;7r9%#4V-S>k|fsa~TXs+SznwtyAf!)?C*=VUOXtY|Q)a zHQs^bgtaC`tEi-YoFM4@-Gya;61`CH z=w~!qpJGe?n=KQQAX%Zt`z&XviS#hHDD$L1Jn;I75KGRc?;(u(JGp7U|GxQ&t z((Y46qH`T`~C z6-tJGW;XjqT$c!1X6^RkTWc~e+gRY=*rGAz43g-UFPn=1nQcUOd(p4w*)tzwdQP3Y z>3ZuM3AVGg<)Tb*a8i61@NrV*bjVb&3(D^_C~5ZlyKQYGcp|$)2AVZbXe>pQeS)5J zPEv7`ghk0QXk(qQhe}AVOrYxMG#e(nqi1l=vq&wbD7NKkkw>OW2C8tX<;l&BiPM7b zzTv1*{Ba04`?dS#(e%;Z0p1g4r))0R9cT^pPwHUi_f?h_bMl<3TkW}30T9^C;&jhS zw;m7fmKt|WsOdaoj>fr;%nsJF&V@K|dPtEklWof1n&rn}#m`c1L6QJj$P^`>W)qg} zh?8wWyU=yJ5~@z@L$YluX%@uqKS1!V{h-j9YS@13fSOBtz^3}7m?I-w8ufi1rgX!ulUk7 zzGqj)0c#1C1&c8FY2mKX!gg$ID%Wqlv!F|oedhNPP-^hW?rI9g#b2)e@bJEBXdBIW zt7M5xMt=Uqx&UX7GfLxfQ8P1QDADUKgP#h&X^Ir;`FuFa`XYlLJ%XYLH=;X zmtaB0oUJ_4(n!uaMfLQWT42FHVhJ%ORkRGlY|S8rxa$+{6BogBGeX1t2FzpZmTFV- z-X0Z(|IoNfz(I0CyFI-0$5gy|c#X>yplWYz8nG9f@4Jds%aSxfy{#g%~|shwTb(i83faH zu6`j~^YdTfGu&;-P&XhcAop3ct15GYQA!j-YF@M5kS%I|Wh9ynC>8-ybxlh3$ZO|= zwxQPxMd>L50^Ik;P^vToIR{o5ATm2sx!D)*-LGz-nStmRbDRQ_aALQ`VNt`eiI+Ji z@8tejq%TEH{VK$MehRM$Ulz`0+V&$|TJiki0Bk-axr8eZJ~*?;J{PB@*9VkU5EL5r z?Iu}oBKR=HU6FwDViPirIm*q3A27@h&J2g2wnTKDA7X|Qh)RX;Rw;ej(DOj$l!pthVsEa!qqS2c$z_cP&V9N>ihVKt20aF4Ul0ce9u!*ymCOiR zK@SM(^!Q}j7F#42+ujG-ai@b@P3Ubng1r%q0p`F95F4d8;My@TT2!I2q5W`ll;>e` zSN*SnxxwN)hhNVYKl9Q)_maC0#_OreuyA8#)Y;P40Fp)T$l4u9`qgm54h0Y%EhKB> z9u>U$CQ1O~13R;o>OmNl6Nx&a>KZ=-#eDHX4FEqE3-^&qKN~L1+oP+P>Wpc!+p|YZ z=T3n9@vkf@?C!lsP&&ZA!RTztt-oEiivSHz`Tf>~^Z`jml-%UzI^TA##ka#Qw%Uz} z7kcz1a@jVY*pgU^D}VN8oD;l;2UjuZl#FS{Mzpe&jIaM0c~SGh6M zKxXVT6Bo(l=f2@3Xh}vp8vs7MyA9{3uyJ@=-5e&`_2~89ON8VR9#A*+^XGMY*ueX; zlY_K3&UX*JPgk=!-|9R%mD>eeD0lrCd1qPY1h~%;!*z%$h`l*F+OZp+vDB&TrxUnE z;|Ii{`$rbexFONa<{?>o-bUk7Mu=2;Z$u0f1f{5+-_qyXD+OsqdB~rW!9L=2=jQ2d z(apc=e!*J+LBr95%<9H%YYz{B*$P~V>`anFK$#X##%O?|*CCM)A8H#yLMs=gwa$Y< z0pF)bSB@twm(O#b`VWfvNg)#?9a?k}%`L{8;gk`$4cfA~_<;uZ#}+J>7N*z}nJCmG@e>nUfPP>-_RP_}KTZI4$;Ai8cm0p*XFNF$G>!HZeV|h714jICem%{@0<#dmKcL>4ibhJn~I# zL;#p@qHP-dP2g^kz;^AAo}GPe>?IY+YtNJ#$ZD;IFF}x&=l;Ut>si^B;;1TMLL1fG z*}bq7g{wcFo9&0x)Phh|{Z!oaS@*lfB~Vff$Ed8S-TwMCC>MdXwcXG}nh?FItPe1T z(;U@VnNs+E*t6({iG#=PM_5$glW#e}AQq=Jc$3p$9 zpP%?|(+XekZyI11>U5>|_s~q*h?!bcR@N*D&O;o9H5vrCOUeDNg#9cLof_xMRdY@5 zPccDui*x|>^N~t96Ax3g(#3xD>7o?LzsCs0;CSYCj%o_C0|9o{ZC&Hu3bYehLi4Le ztI+leIZZzpv4gM4oz_ z&42X$IEs^}WpD3vv@AiaXEk<;bya?bi`^$khL8py%23;!kHO*7;AjDrS3ODfgS1>D z!tJ(`Hx4G{e=)!AEj-ifH0JX@pR9}o`RNg^0xa1m?fg8VP(KbZSrEe{%6&)0Hy%;bXS6?(s}(T7z%9J&Y)_b%pi14SMR!; zRc2^hPI9NUFoGV~%hkT&APPi?3}gV+k4-BUu&Z%ievKeMYKb)b|` z;`q90;WSB@0=l@2YSNjc$4Q^WTF^)QTbf7lz~*;?#d`6{yP89IX==cgA8A5n#O^|8 zEBWE^nG7uG0Pd8xX+K=r;EO&7SsE?K4 ziB=vwI(svRK2}#s|1|ICD}Cmn{P<{{>rIGdJH3E_Lb*ONml6KwiMBDo4YDy^b4b@K z%84}kJ&Q&S_ztQPTEmX#(mXj|3wzd6d|8lDRmIT;1WW_LcTEN1Mxtg}gQ6H;sld*D zF7|4BN5ksKBME_IjgD?vc*5CQ(rBK~p~~Vl9>~_qkjrvtjuiVF54#UcR zg-^XYu~kU_|G)X9D|K3gkduQIj*501bfTRunbm#89rTtnXzfw_74w8YxRRjwdb#uG z!Zco7$hOsL!PW4tac-|BFO$8sP~YJOf=v(6pakMrHIaX}lY zEpHo1o*y?@IXi3+-dxtXV55yl#gVkJ^n-Of?hCU4Lneugk`v>m#nu>Lgjv4*`gIT~ zk*#~JBZ}-u^h_{nhUcr4C)vLxDLD;%tGmgkNm)bWEFzd?pJT-F)rkRXkEgL6z;_pB zw-f4t#jD7SEyR8&p4r-T6C&OLu@>`7RV|*!Pv^%=X!`f#gOiK|j*)pk|%JqXdoyyu2ZcQ(tJLS#-g9oUKrS@8fxpMsV)zRY zVk;L;qN>cXo1YeDGRU5!edz44o~VIRAsg%OhW}|fd(RW}DiUjd>}VdY=<`^HFvX`g z?fSEqk2P-IxhY*}T<4i>%{e^S{LAw7L^0)~tjdb0J9`;3p8j7*t^yBJTvuc9zAK}6 zFHQCB0v0Pm81eYZ!wA!R$b;2Ltqn;>l&Gp9EB97;kK?yiuREnB-Gg%zEH=rZ)29q?i^*gGyQ4&|o zrXxMqvC)kpYrKvq{?(`xr;@b*V#?aj>2K!E&FWHW^Mgo;{R_x;8GlUYFGQQki9?J`E^^=zZkB^QkbcBoVDCvuV>g$h9Ea43iFSQ}O=iT`Wym;0caQb&T zc?ogS+R5q#)5h`}Nnd`=rcbwh_T~;(h*4M2F=wn{(KhgwAUp z<^DJ^j0RZ_$#&e$^B`zz%NQJ~@BrJ_F1^Hls**t4BYw?2eRB4DA4|S{wrVYe$@D}@ zQE@BiJf6uiqX%o&YDlBcf0H8>cU>~?t0HQ=x)OV)gAu}olCuK9zOtH-?5IkaSh|hL zo0!IrVac8i#)mr;t2Pt6B77UqJY%SE!%@Fo_HX~yyK&Y&xd2p3GJ!))>uV_Gsc=M9 zT$~qUpD@=F>Xq9}qkaWbKHO3yhx9y~FQUMbj)=Z^ajEja&?BztC$H>^0B=p+PW4S% z;@7W>M7OHNbcFXC6v|Aq;kC1$Tz53?bDs-dE#P0{`o~pNM8tIkBAC&=yv*kw@+{=K zeX}u@+qbThT#F`FS-HkVX@EVj$?kDD71WJvug2p*s--{lOiaVPc>X;2F;dBTA$3{=v6uQToL#n&JOL`_?W^a(A-QcOM+BMMsrl$07Y7ADx*KJBg862gcgH^EETZA&MZ8pQPq*2%G z^Lds~n`7)kU1(Y@gAaHDw!yZ`?{nN-*gZz8E;U%@zQNW-);#Wrx}=O7@^Dg*B@1O} z*nZ2Tvv1ZZt`O8B~^tYPW~PjXg>}i#I#{Oni@tRP4`mEyPsgZ>ug9$z?j58W%QQ;0+(S%ADT`0pLJ{i}Z0lDldvEb}v? z$P6tp4>A3nbxD$@@X|;Ikl$6SjqiYgm~ev^zz1$d*emP*l$G4@pM`%PFE`3FzO#n3 z#ZUc?*)Px(%nIhVi#>|`8a>@Iebxn@~&2kZU%=a$aIbosvt zx2^~K3R)VC38{||*{RufC)MOGtglF_?A%Gz+Ijrcv#|?#il0&-mLkuV-~w}ZWr1B> zT;OvZ%)Srty-Y7m_DNMtKPvVq%3JFjq$_J)Jh`}zZf>!EzS31NDfgM0PUP?KQtOx# zum2F|io!ox2lkNq6bTd}9h1NoQfqM!^APy!D@r>eDfg5kw;iDVJ@?!-iRKpLcck&2 zFB`%h{;LJ3ujX@enp=CAY@)hi`DXaYN5Wk; zcVIqp&Skq6S1a&PC0&bGe}1j3qp5@0U2`3qc2zslQ*!ZTYK|0M>h~^lROQH%iA_#( z5|GY%^*jN07vGL+b!Z%sNx?5c)#CILrmf(&SjSvSSWMP`W_IbNjQ*+m&r!`d%L9)s z=0Uj2CRppP_g2$(`V$^|GO&5O;DK`$=xK^kG_7sC>njZnu_Esc_gLLFUpi=V8xO(d zWJ5OIf)B07Vs;)IWJexN`MzhFr(~5ra(NC%=BK2R#q5nF*9wJOGge4^)jq!f1D1)$2zsojBJ?y-fZUJ%?joMTBg@Sb;lU&Cd5*G`!|3H+Q{UI6;jCn$Lv(Tx#d0yWYjA z*0Hf9)%hW6)2(iKu38Cr%4pjh#kwAVbeY>+%Q}mjnT*d_B%?w4p9AOG15}9DuC!(Bpchq5$QVe>NiJtl5D`sH9ONzJ+(&hD$|swc zkr#atZi#A|SJEf43XBY6XbB!0J?gQhjp7upaX*{xT-odZd^O-N^?w~FS&gmHqqbr$ zckm%~N~RQ%AppD@*fG_yOX0y1Q1FlGvP`-Tj#ER5&pv8)ICl-?uwaz>mf%!n~-fs_~;7#X?=pYF{`gx}*J?%Akv`+UJG=3G+FK~*7i$Ay{E zjNjA@LlJQQGX{HNq@sLs4S1LZz^52%hD(nEq9_G~+IB`A7W;>n3l-h&F)%T8BDMqI zj2npLkhrfk#!Dibm`-!(dWGAFeA2FnaSP-C@F026rxPuV=gaFrcVSH|tr&-iJXikP zcVfL0JIvVUI0JUDoBpE%0UF;rAUn$GVjuez-Ea|>@INUY!vf+VIb=_yKNKmpbH9Ez zt_P;i_c;0b)8dB=gCSCiFG8{yWGTw$`$4eAf>y`Az-Y}zpe zt)WZ%^iW0%01-E7h-!CTZHM%-{X{S!H5k<@{b3E2sta{hd-z{(1}cneqh{g8CD!b- z*0fdnG>Jom`$Cx~_lWA>!%4y}RenF>Y3<-=i)!K=np8WGzOn8lIV(gZ*vB$DVT0ax zXBt9r!b8xc^qr7WT9}@Cak1PrE(=8VY!H@W4Ddd9LZ#=+sv!IQLT7l!5O~`=&z&S< zP)$cIaM1$u360z=8L7N>rN(Eq&tXSMEJa3y*4y7dlOMB621}w;mXJLxr2$`BaYM@C zs)(C2{O!78yPa%Zvcme@RwHi1tMa#7e@`Nxd$Oi8>?^9anET<|UA{m; zmQip(qhqvWBw%!!XK{M^hJNg;qqgmvw(H%TDx8dqXfm(Lw3MSZ+mbc?v=?zi(RMD?6fh|1YV|Yfqn+`6gaHrFY31sw}+)8uN}&{13{)@Z@Lh1dX-7Rii~g z_REfYw-p~M5<(B6HSJy&EPpT><3Y*G?a?fvV)FP1X@rGZY=miR-YHG)xw8wyKf*z} z=vU4opPqjj`+nx8-R3G)&1MQpt+#lofT;Q<+9yuc~3$>}}=pi*+Oq z)ATeAM}s)1K|BFcR1082;@K<$h$hrtufpTe{!^44|NALc>c9BqOjI3X+?*ed_^URb1R-jvp`N zlR)S1KNUQY6&VVSa{AP{%I{M34NO>b2O{m?tu^HJSYe!SRT$l)BjBgR@Vmx^)TuvU ze0v7WC{b1BbmII5Tz=O#g9nHqr?z5Nzkm+{2FKg7>s}2fF@=&j?{3V4_g(BNzvBs? zYx-Y~WbPt_>`e=ve=s8V`gLfsZLq9t-Lm)6JG;sh6Y^{ggx6{w>dJ8y>jY_>JqrMJo*^JPuaP^!a^ zJu{fwXe`f(L;2{&YC82eZ;sdUCA-_X5EPMc+TXG_*vPszGoZ}z=O5@r?r6H>YYf@Lp<+r&pv#3MJ_nm3PofGR{@vCX?L9O<5hI5tKk9unn z9s}|6=fg_7tbWcGSz6IVRiW{gD$m&8PS`{Q7Cr*b9?}k9lWn(1_~l0 z*~&(YrR8g2IJx&csKG2A=!CO<$`L`7K{ z4Yo&A-_676m35AQ%Cm{F8CKVBkvy;BtU9%AH;vO{YwP| zm|m>qI`&F$I7(64mLBbSw+ zQpQF_T))&uciZ%>H>w_fPP%c&e~z#bc|1wgVkub9OwYj+D2t zy}u5LK5Pi})Z|tV1+a}tZIk>nPTvc@T=y0p1!lAzV@+AuiOp9@G=%Slp>iJ;|H}3F zuC{cr((L7K%Z**aqmsJLRq16tnde5jAyQ-&iz|C2p$k_%X;Qn^gWbP-EBb~ITgiIv zHbJ4s)BYb*4zb9~?gz$X?}JV{eUy(-&l3(7A!Rc&pCu;u?hM0P8x2@u+ue8$-oCB( z1Kn~OlgOciYNr31w-wn+DZq2*h;BVg=m5_2pC2`hh<#lmQ}VM+ui9Exjo`rxrUPyJ zs6~D48iv%=cOzg*mC;L%Q4I!@3q#{2z2fNzSqa##$|t?blSMrI#{i%;sXujHW{W+U zsgwAqUO&rQgZHL{M{&=3%(cYQ7R~aR*dSmbfEvtWw(<ZKVrfOpjfG?Jkpxq-unnn!<8q`hDa_WZ#kv0V9_{Rw>EM)hgdM(}nCr~;^d9Yt zS5EN+69EU7rPesDmtoYa=QY=l@QDQNK__Vp6$m$|dO1C@sn zUf5a6Itv>YqtwjNB#&EcPc!&xmWDH@NS%dGcEfOv6y)`3I8y@WPY{G>B3t2n;D$1Y z=OYS#&!_{TT(zaC*m!sx z=Qod8O9Lpr9_-|XX6|LxTM2z3P46?Yrls%$C5R6wp~LnoT^?becr^F z7|m9Ou~HknP*~)LnV7A<)7}yG|FUTibERgn)RUs$@_sP>eS5a-lP;+9BVxD2>mC&v zaKu*u=VaF_ns4X^pW9BkFB<^Cr>l1J>RxHYfm_$`;BOv`S@xoS{hM2)8)@%3#nGMd z-}EXAyre*DW46H&Vll{Dv9W-|lbatMjJ6R*@!*JS@2vaw6Ewt{KaODif#)|wtW&x@ z|J*BI>Wxmx8-$bPbu!_Wr%CTmtj@$lt_wx<9+FC@)xEgzBr#uEj!9qjak;%DStgvwDL^U+7UCFrt zJCj!2Q0J;8@#>^)GC{E=nBbl3ByHZ3IlP6agKuEF=s}NfKn+I*7(IPu}vV|hW*%zpj$@D~4rQRUY=$*BdH9_ZD99Aykx?`0(#y zt-|AjX#3y45MuL2`9vMi!?sR@9n}h-9`k=sxSFle1|ah`+(t$QZQQRj5WlqLm*1VN z&`wdwnB`*N5=}f>2#hn4jbwG$}(GHF$>v?1YKLl@k zzw%I7r-he|{tT|+_krN-qb(jHY(cvlP4m?#vswykAW&$?g>R|YSm%GlrR(aH56-Hk zlpE-yaGe4+H$YWy_7q{dpPdG3rW0}XpYT{OPo(p6E5q-MsWjO{HwUavPSrmRh{>B1 zXV5*lMSKv_#PH6D%vN#G6D*6;$6~7V(F;1+c}IpjnW15?GI``4X{(iVK@}~J$@MDe zj$ap=+ejR`vt|9QNMB6fwIj``o0zKSeVcq3?nk`6V{~|9AC^cmGV-?brHc8b|2y4N zWvydj%Qz--9rKm)_@yw*O$B&^4xT5RZh%F5D1HSCL>TZ*8L zJUI?+Z!&A+iWe%)q!(3qj7$eMkm22-bN4s5Gr~vM#WkV$r7R!}mdo1W zxB-97c_abTY~u+3Jdl+SJGt^!`4?0ogN#eZ-aw2ISst-mYd8jM$OnqnyD#>dp1cfS z&MA4xXp)<&(d7q%DH`Kk9&7cvi0+lLr7sD5}?AjP-x)3P#7)UdI}7RRd0pcQmuVqRApmEA!*b|OH6Qqe`<)u|N5IA9wAnEAm3?`g>NyPdxwSk_N&_moTG$|2%-E^K# zFwMKXM!MAIbQf!UL+#Z8r%ud4+)zg__2ZdthsD^hIxEs-9iC;w-*ZT&h`M~G@r+ty zZ@MaMOL7n+>(igLpKYo6`)h>%qg0LST=4PvnYF(F*H(9LjlMH=GMkYwb_IbMOt@{! z8M zt}I7&VZDyBVXsY_zQ=GCkK^=8mkzJM8!?z`vVKy*0~-RH_g_ia0{8AEbG>be7LJh| zx%}lz*2iIy~vRpmw`+B*{XqxUK%H)Yr-WU^TL*yX(Pp3wBp&m()<6`m0?g; zlbUOMLd8!L7rn9#D5;ewA~{;ijq6`dL-}8*KeHEA;|JYY$YV`)b976%sV|*clkz#o zQ0e0eO;Y_U?k=ID;KfB?r!bJggDly}70<>aM@_v^g_x1aiko7)8Mqh4*SJkBf~Dk9 z|H4U*5(nHC>4-k=s$>)=z`yYgc#@fV+t554j3DOFiiC#@5qCtHR3F`6TfRnpM?&Ei zrEL8eawkK0(l3vPzr>n0$QJfX?bWuyVzrvH;gAi^z9Z`9EhC1hEw}RHtm66ZeBO1> z0z6I~I;V*~I?Y=-LbvSNv*=e2wXQf16tbmDYB znhyU|kbiA$pZ@AkseBEJlp2mM@{(s@a;VkHgV*3Hmflf`UQwZ)Q_aS+8ul05G10bD zZ?a^$zj>HVV1bENXJjX;(k}q(>6No%GC@Zn*0d!k5to%OJY?`GyT{U(F^+@LmGjcr zc1bLSAD)&;&z~VqKMp1k`B*%d*nA5W?*Cru9?Q7__SHW4kAJW$#5gJcdab5Mh^a+^ zK*@D;i^)O*TTh>|zNV&mc7V>E4j{B08#c57 zGVfN_GTf-U;0urmzIU=-{-a$&g3iIgWxqjCJ_MBjGwb2skCL<<>V{WsL8!D;(yq2vqB{a>Ps=bfpE&bwauZl?Km@Om8oBD z=6ZA9d$h`YlhYqdte3#sjz2n&uZ?Ok^4{28cjVL}sqj}M27hc!yd1FQ0zu6Pcitt7 zx)wxZKkdK64&TYHiM7VZCz%U7N@aZbX-^%*OQwBEBvAq=_Ou(4z)8a2cqSgPe^}9Y zpJeMYH)zgbqeo^pOSR^y&oiUDIWo>~NuB*%(k(DOtJjgt^;?=OQ!3_=@@ zK1m-Nuhf+{Kq(j-D@za(mNh4OW$ARpb+MfZY_HwYZxC?MB>%-}X+M9CPZK8MUblRr z%Wz=A<5!(gk;8gOnVNlS!3zru4XwRTKl$me`7bG?$cTwREWC zd+9hqt|WZ!+L%Z11m~@8YJ39H+Bo@O22({rgxRODpq5oQ&R4)W=0GpMv&Z>sbt&YF zD?G|Sd)gh`d5tmU$Fqwh-4pibxQw%`1Iw@|U0}$_3*<|>Bjas6p@Hm|w*Y_VX#Bc2 zRrG`M%*L_>PXW#EDw9+T+&fAsYGmSEveW|z*zRFV#ok-ElOLXn6k#|yyT@uAp5Ai8 zCbdTo$a+7qryba`?}SEOGfyJTIAF&uGz!G%&pzbFFQKWO2jsC;Xd#3GD8TvCJl_LqhEk#v17iM@iC1^+`N2~zRL_Q>E>BkG{;)w zF!E!)7a{WUq%Q)?$;`y$vi<$HeA3hjf$Pjb4TfSyR8(6L1uB1rXpD%c#Yo*Q3vn5l zk`M1htgB>XdiQj3x}Rbt|)e!sA7MTuFpsc&g( z*KSCvIw+;BTD3Q|_l{ju?b@q4sM>pr9h=%jY*I5e5s5clzxR6I{Ku6)@_atebIyI= z=RW62wY9x-uVMXv0+8rGDwvpnEmWbR3aMhP$w&@lskkKU8ITCjR^$KgKibi0h4%W> zDX(3dU4X3jD*MZT4b@o-Qo@Lnvtt}g1YHPAymx==$#=H^luc_f15I}RF|{~AH*muz z4(rk-?T8>PloH#>jkI7u7!BP!H$1r6P!;Ah6<;cg)HrMn@3(+VCY-&i*O$e~Bjh?6;&Hh5dOtyI=Cs(bcJ08&=Bx6a2XU!5ssAK}L2wb8}x=W?aV|>IX1~e7kjp zBG+?SPgD%ubE?%1HvFpmijpqtvur@`YWlEe)6+Tp9P^MVs^mwXU1t?@gf%l(pn&^L z&_S%0W2&r^jOxv^P&%fC#(dt=%*!X++NBmFUnFsN&`okBe!%>9;DHx-+8yenlPU{( z6;6X&$zTxFDUj=@m|F zYRX+eEPg&uDn@9HlsEY=z*;`>!d+MJ^35&%te1zfu}^x@c`AhWy=1l?dwxG>myQV% z_u-K9w?K+s+B!ce;X_SrdOI}l=<=bqdeyaef~1N8Ehjkal)}^36DtKus#hOAPMti$ zr)HebOY(qxg2jR~qjER5E31tBBSMAShNpkG?#ujtvNqq^4%dP(fiGBPu**vHbcc!? zypS0ln%Zf9xc*&dGpJG|&tnVp+PF)uPo#4ycpsfQ2aMm$X?_#@wm z+ONnP5=`a+q$BP7gU`<1g^(83{__H$8ZW7n)xcw~ki<=w+(M<#4xriTlo<}iK5|Uu z_6(oG;G{e~Y>uh)6~-2h*n{`d$xq}B!q`EZD( zXo*;+cf;kUV!b6y0Lg#ClvEd*2TU8O=BDIhZMjF)Ur%cPN&xW<`TvT|wli)lq3k>? z{MEbr^H`H%PS<6p)XlSCqVy^R;4?WXr0ryX+h&a6(`O!`XpnBHtq9t**SDLg)~S|9 z>RO5S4erCodCURbG|#NLOksJuwDf&ttJ;gnRDhV$#_B|%}k5;msP$Q%{|F|l=%sCRbL4xBwQ1=1r_UC(h|CQzFU0w!Q26IY!4KTJ02HpJc_HUJedS)2^u+3EzFFa6n zGhU~@6vu}tDBK^@2VEabTXb1cvZIbN6v502F+aeEtwS_e;c+16Cz+=cAc7q@2WavR zXSk-bMf2aCG7kFpG}7!7Q54VHUwpqgBTnPuazXJTyu(j2inp`E)_o^Z@yUaiR& zPiA`#MxAKGfKRau-=Eonden*#U0f~cRu1*o104lz5ZiRnTv>)r5JO zvz!NqJQ9qrYeIq9G}}ZRz;vy%Fo$UbV@VnTwCE5z?<4IP3nt|}tDA#Ibtj)^`ZSj< z_NK$eo9fZKhfBRBXM}Na>q{2o>@?QeY7@WRrTAYs{)>L&E0wv|67lhr8u6BcIS{71 zU?QO!3B+I3o2Xwcc!fd?m#-yBHl<6(G}gB>n&subpPw4jq2RV_#&)yRF5+9Rhg zv~pN#XQN;IoZ^s^u*|+eHBq=0_Q9riUF5G2j#zZi`_iYb4Mvu$Q5`gKNnP^N zAfg-*nFA8%Xr7i=%t7v3w(MhN!XoL!aI)IQWhxDg{%nk2T@>qt*B?6~9bG|M+&Rtt z-)ZTobMja^1TOUr`f2rTp(mwkwnmMCe_|djQ}2gq8}oaL%KdU-lI1UszU}CoyP2#B ziIJS94oxohP8zj3v=j9uIAmN;9O97h`6N8-lJ0aRiE7)Mu;=D97$% zq4bUxY@8qAwrV)4MOwrG@lJBjbo+yZ($jBV3A_BQC}_q?)<)b9%4O5<92%x)4jLSQ zJX0w9?x)9VwUrAQgvI(3hI)Tf?;ACyKc2+4PEEA~L0*OjP3~MO#L@-GjkvT8E+-jo z5$4xj9q+H3PF|Tzm_+pWV2W$+wdP(=&easQ_hAII9r5*uqSw)5^?38z z?-(nv;PAdcumT}5M(%;wOHuS?zrXBj;{CJO1a<87nkeu$?^ zS@7=9sLqFpV^vHKpB!#gaf;e)`yS}h{JiAL)0`Zm!|LBBezk73QgI7N5>NKOVjuFb&HCo#<|{w4fwV1k zmwW8AOcdVeCT~;c!lNS@pDIjTR{hT60-;ia)}%^pd<`NRJGAD6yH#oBZT@AW1aBC0 zc6M5h%v(FJ4)}st@O8yhvHX(P9qMRG>gJjzcSx*9SNFp2HyIw%_Mo7Z7sG}{X%-7-9psd~#w7oQvNus@2BHxf;XclH8|T_CP?!(I}vVOct)1kdpFE zRn5OVmidp9b>0F0I1AX7a%Wc}mKN@>aw9+VTy{&}T)j59A=cr!R}nP}9hQ#DHt`v5 zD4+-5x=pC{)fiA#?ud%TPMJ){(!e0A`rD1;{v-`^p(mHhkf*#=p z)AE&rwktrh1cz|pznO&><+QxXPE!m7v#Ny4p3)%y( z8pAIZcE@ZP)i9{1Hzy7cP1@S;Dtiw@Vxcaeqd3ZxQ4Y?3Fxl{bvJ}m;Z-idWMLiqO zPs=5Y@vKwNqje+no6-%kn($WvU5Ap-rh?&vpNI`i?B5{BSZ)E-7cau1$}zrWF!#=w zbj5`f_K{jZXJ_halYPc_bk@e+VC}_PcE0i2)9Et00~Z!q3)?W?A@X)zyJsPWjg~Y6Ic+F}%F}MbFI52Pd!n6-ZhC87fjk!#O~f@SLolp=)9U#7o30tUX?M##iY(+PQwg>y|Ms|d6{o>`y-9@ z_AWD?a(Rh&QoRcXjmC~-j7)7Mh&?p39Pmc@WWs^#HF=VFx{)T?1%Bz$B+0(%3sOg; zk)-7E!fE+qDgp?4{lQ`SR8;kl!A3!a=i@24Y_I_eZyYjidvInGq}=B?^QJpXEh6eS z?Y1ZV-)s4ofK}Vu0gifj+q31CMUdWSaq+VA>-?2ZY4jGhEXJ!q) zoG~GU@LfzzxJ<4;P-bT` zeOQ-eO0IKzUHuS&+hspHa(#U|zZtO8N~n`WbjY`VR*332-DetRi143#0%)HXBNuM2 z+ivRDzONP|3zlHvVx=5RpYXH)2fXS2;a%m_tvxZgl&>dwLcYv?>6Z(WJScXmf>=z9 zK+dCg&!zNIqkRfL-Vk3jk@jo(SkpnpiKpc#EjnOJqfNBoDk0qRfC7JgpI_0&byDW9 zQ+3hU6_0?PVe*`3qZ?4g(ip;X!k8O;tn(RN*uj9jeSH8H*i7W?OiNF+v?O>B!>BVG zjl2eVh?%?$@ime@wO}X683wC=JaOidzv2tGOZ*_>t<+hA1;qa69_Wu5DDNN?6RXpg z4buIWqQ5`;_fF^y+8|>aglat@%6-0>e76_upaqs%!JOAFUCwkKk^pw^Sg~Ih12f#< zoz8Y<^)f76TMSlJm0-zgd~moPmqF!<{Lv^H&M8v;1*RgjG`8Hg&-$tl+H&z|EJj`` zdEqU|H;soD#~Tk;-Af-lbK(V`Qx zENNA`XNk}|Ab$GMm4VYYvtr=Ms!m7xkgX~(*{z><>JIds217q6NKnZe(=XK5RXz&5LVm(T= z0#P$)RRL2JJ*40qxX30n8X*6Ov@O8-ukhYjjL8?su5IAVZf#I*Rz(KVJJh0GWIo#K z=|3Yb^ZXyvOZ}H2zu0JuIh;S2m6d#hF|gsxFR-TZoWi|Uu>Rqz*hdo@rjVPV?t581 zx1}OCZOP{w;8ZE-F4rVeeL{3qYYV9eZCUq18KwuYr=D)6i+|=8;d(8BRA<(w*;ygJ z>*!96c7}o}b`PCbNaanogd-@!ar~{44949^92*&a&PZ%=k`AW|n?nudt*j5V_LcbY zV+OVs&;Fgyd;cD*l2Tp1U2yTk7j*h%`3}LiX7pNkUSl#Yrz=#0E8U4G#$qqj^ILL! zxo-qV3y_!L8m(+)d$>Q~C(+c#+yx}oA@C(#<@GH18@V0#Law)#&a@02TRB+P!27m8 z7evxeF6ihMo%Twh^Ih)tj-j5GZEMoT?kz0%(oA)77yoIFhHb7Y8Xuuoc9hT75m&7; z9ZZQTyV?(!e({3Y*}w4drT0G~PZzFf{=EXQw!inT(icIx>?}3Vyb3^o=aC^L20Yah z@hBC0i<2~P+#plGZSEtq*kZS>W8lfofZ|o(Q~J||ZPwv>>zTp4M}A{`v}k97Per+G zFynxO>)4#Zu*qVRF+QB@PL~cecvf!~1yhg|jHmBoTj_>-}N`{0;S}~mT@I6FG zvC_X=$S)|^gWvP>u-+;D+ZuNx>2L3tQd#7C8NUJKO0>J@ggyJ<2^ThfrMLA%1yYz< zhJ8+Ycljv-bhJv&EtO1d!`!;CP#8uKGAGoVDZN2_ct3KAY7AsHDJ1CypjHhM(&NE< zJQWQKPd$#w8RI)X$J<5Sr<|bcbZv>g0Y&3j5l??6 zDLZaoBk{QfdDg|BG1Nx-_6ix3d^}J`E?y&jvPfW|X#!o&nqqrk}oV`(~R~ zOMS@vryn{1e|3jH=ev zdIr9zYz;4Vi&fLw5FBj~!C#(1KUjG=BiI(77UVqiyS*jn&wXz;b6U#of{CzpuVm^;+(JO)1=yb$-3L z#M*McqXs|SMKt$PRx`uQ>)pncAA&Jq&ro=BHye2@GqF9Kf37aanTp}v_1Ef>{tNPz zivP(&)A+uO*{@u8_`{R1A5x1X9cuA$f&0$8#*|XI1Nk4`>xI)HXy|=AL367y;2OA^ z(famno4o^rx^NHE^FYD@b}vfuw{Ag>BEc4HZvwCf|J{r``GFm&5jyi*^f=rlmTsrM zos?~Alk)ia&-H<^?64o6eEEgqz{4kKavJtPG}WdE_g}LD&*T$w*&igPUBsq#@V#J!g8 zN26?r-cV3uHnpE0tP!7_!BBRA^~Yo7Z8b}$3(k%|-xsP>p2w*DdBI;4UWEP5cS>>2 zI*;<~vAOTwrHbQ+V3E=<7dKW1NB2MKl$DQxAe8UB6_E3fu3Q)0R@AtO^62Q&)&jrH z2Q7w=of`{Lcb(g@O>Tqtv0MyGl`MN0R9u#Q0>TirWQ2zV*V0ipVcyR&CqJQvCwhiCfA?VU8bS>OHq64N_ufWBgqOYW6PIs(Fd zn^KW|9MD>ym~uAUY z9H*(m_iF!SC;~%6tJ{M?%5g~ysr8QM;`n|^t_SbfD!t{tfU1I|qFaD2FCku(+k+p? zE>c7{=UY2R@B3r-MP>FMUf#FlyJ)Jz5z+tIL^gr!Jkz1ZQ=Wg?(q6vKm|VPtM9<)F zcd=1NbdNqyI1o-j@45w#^@a!p$ZiV7M>Wai{0MK_!Upi;qmL^5+#hphF{GnYUEs2n z|D_!7E7gh2-#=aLH`$r3z|4ktEAif?zsJ}1Exr>ZL)73YEtUeS7|>RVK;Jv!iKVZh zh6=W^9^aYV+`F_wwRC*`J|-0tpl*40gF^XdR^U;|H|}YJa$%jxiiYLa*OIEYUuzrr z>QUi`1w7K^ z*D38D$^oi|0|7Kn>s~&TPoNh(7q^R4?sKpknkAy=qt0N%X<(JT621Lr+PCax>=>Tx;( zUyOej&%fjkysc~04>nK`nximH4v@5gb^lf|h8RbOYkp%c;YV|j9{%m~T~^yWYLiY+^Y zSk6q%I-0g$Wn3o6Bn-0G0Go(hxfGzMu2ycxXOJ=dRa#R4p?>{54Tv^ zB5An`&R7y~SBt%j2a+}%tU)9u7QZ!H#nO^C=nF6kI?m6iGycgTy27rLp;=w3QkO9V z6Rx8fVrTPC=oLAvcRGsJ*$1O=4TOS2_u_q{!rKy4v@WYzziWdmM#Zem47_-U=bhyT zuyh`~cNb8`Bd^LlZ8U(T@}IyS`$`c4z<5}VN$=>ax6tq7Xd@Av`}5o|SgDfkk#HHq zw570COtc92Zsza0R(u1KMbd*pEhd4~5QUbD&GiPO=dM@Q6fO8~V*J=4qd?7o`J<~K zt`luY?*-Lx$ z2l`O!x$&I~X2I2od|Ye|3wo^NH15Bq zQ%PnyM~4mtv~+Cx+{i#>GR)k8YKyqE)RQ$1S~7fkOTJHV+WdZEpW@8YV>&9o++tF4 znniCZ@9=x|E@Bir4P;IYoW>i^a{x9ra_CqpnL1eF#p@AL%pkzH)A|f)n}>jCB7Atj zgKYPQiYP31{p%(Q>z9i%B8F$ws`BGB~XWP*$d!Q%p^-v}O+vDTEIH_|_Yg&WW1K8bsmY{eh zXZ%F(gDG8^5Rnd3w(#$xDfvZ%KO!dPsvY5EamWkVJuM$ZNq)g_qKJ^>l(X}ZFZ4XC zUHHsRAjilZDAKYoFWTczO8ou-bpauVWDIgfN^xuaO~~?ciX*-`kttzV;Z7cuz(~(U`HczEXGSEyuDAvcn%g_$2Up{N(l% z)}}lT4fOj~u9EeM+oz3$0VX_K^RYqor3yZjlQ(Ny8HO87nx<45FWI{DN-cMr?Y&LO z7O?hrr^76Pplp%+XQC#4=Y*mAdL9*vaiFU$o)p_UfM(ycnoTt}tU+U0OJ+>-9;ohA z>*vUuOQU|VH?-o&s$k~FrigtOK|{L}a-zL1RY6O$;d*ZI?kMS03Y4Y(mk5)`tpe^h_cdb5=KVS zQns}}a;x{0u;+jOmf1*3sDscCq?Uayo*{L%6smaQH&-BDHlGFvvoLA05VP!4jlp@$ z2Ziku_`^lL+R5?E&2FYo)AN!6xE|J1a{wKHv0h#^ceqzJMVa!0Q_Iq{6hkv43v_{C znZ?U1O88F)Oe8Vs?!8-)S6AAakc}ciYT!1T(l!R|sR0TaO-a)_UpR`N_I+t1zL4}M z_U3&zoaMaI$Y^Xi1aw7K268M4(9o&J{U`9v`|!_s$@OpS`ADy7ajXtjoEki?ei{aMFkinTQ2O_|Iqy3w>lI3zs$6d8Q#X>!R!_&Ddvix;$%<-09RcJ*6qwRh)N zmR6Y|=I7c0^T>-m?QF;u%Ydz28Mo_WkTc-XwwJMO^nr;1F5bqd#g+f+PngD377+j% zF7G2)WxWJC0gJTv#FL-+B-I~3*gh7Qy;$g?Wk&8A)y8~C%oBwiHAhQ-a5RQAe-b#G zOC)&!Jlt{=`}-aTJ8`G!p5NEAj3NAdnG1wkEzkUv2)$JEaQm%Dg&uXvzCY4W1~7+ATsY+@hfdY zc@^n_L#nqvej%By?rJIHS8W=dTkxgk2OlT-K2S2@nd}r<$|>cT-qKpHqVt1plGON# z5jJ=@pQ2{FDw(rw9-xunBJ`BK<#}`qovG=->3EHauZO?LKN#Lyn6`vkT51{_Z4u1W z{!>%$Ayj%6w)*sSLdplHaS^~I*5~BE#h{Cdlc{Kl573>jb`kHEvlT^(>qFFr19KGz z<6$m*K9N~4cANR)V{yl5*8)1RzU2xBd@HUd)x>%=8`3h zVJFS5*uV1Vk(_U@x0f1}XgB>euoR&`=ab9QOUq;dNtSr>2UpHehJD)drMNNpc#z~^ z>8X?6EUL4ra+pW}&ey_yo$e3D>Y4Zctn%^M);s&H5QX(7&vYB+g*X}Ub+*}t@84~i zg>@QhEMr;N%<1LTfp;A`1gx8?0+h6PrRAVmBeG{{Z{9C%S zF`O`YDCO(wyKR2T6uG(!ZQ-6%Lt9e(&AyM^NACFL2Koa zv496e)5(wGIUW(%mWKakD>gBoieCO4AxstwGp_GD?20mZE>&cs4UU2*?mcg*OYp!@ z>x|##Z{=r^^lUB3SZYS`dK@>%UL)et+(DlvH|1aJ^_H1f(c_+aESNvx|bn&d(hfD`+r1)0@OggMjtvS&(UYqVD z5B`tgxt{N@FU9v&+1jpyQfl4VT-9tp3at}yy4sj09keA&VvgBo_r-Kt+7V0puL^}0 zgINHI3PCevf_H@v*`K>#6ortNZQF?8E!FX#%cfMjXLX1=PH4M{kG6aAJelwFpSpXh zUa)$cz)|k6bPK~)`BF^v`pdQbi5v$?uv2!+d`H>V4xta$tqLtv!uEehhfx_BQi2=N zsypNdYe@iPR@x!3uN|Gh?X0EL_J@q8eH(wMq+aM1zA$_{=i-Xc!6xK|=2GZEv`yYc zaC&jfhlIaTj%<1G_}jVso! zXE0=!Wjg;jES9r)(nR=dkK^ZT7h?aU(P`z&X6chnb^PV@rLyq36E6v}KNbzvlt36G zHhKK?!Nc$Q5Mpmw_V@ML5D|X!cJDd-LBfB&%=G@WB&s?{7POf7;p`60-n0%a-U8@M z4GwrOa(e>#$kaHgBO~LQLs}3yC9}>__8yL&8~Rv}V_DKNP?8h_D12ao_SRY~!)}le zR1+mb@R{u3;BcxAjz+s-kQ5W(nDHEbuJtTtlvr)EA)b9M9RE?VUOg!vre0-xAr6Xv zOV<rq4EOrvY?NphkA2r~06@X7p-%-2(% zh=EJ_yEBLrAMdl6eYuu1s-JT++wiJ102p^VADftEMs#tP*cYmGEV;^fU+vB$(5T~r z6pzuvX*vv@+2#E0CFfOTVOMjz*1{X%K+gj-5U_K(|7BP1lBX2p&1N@rH^>ij68Ax8 zq41A(QqT}c9?V($P5W^5YrHl7-h#S4CpUZxx`UAHY0B@ahIQKAc z^cs5ij0Ckm;IZ@vs_PwksB(eXwe&>2%s-5SGdWvy1yV`h9{@GE&yuQ~wvCa&1)V|BA zbFMnnOzo1nNQVLfe)vRud)>X&M@jh`j;(KwB({Y@1N>I3wv9(+;0h@$7Tjj0u6bGa z(sR=ChspBO>GBSe0}kN**R1oYqvwWczc+Xf&e^4%h_O#4WJ=~&Oc)>+Zh8X&>c}z` zuK%w1v5GsY7TAaz7>f2#Ut;M^vF^}sn{PHX4?^xP;m2Fp=ftA)=6^asvxy1{_!tq{ z&xUD4cJ`mw_ZnUa^KeAYSQs_NB2BX{xcv?aY;3r$rY9fGTXVAEp6E1O_1Gb5-1hva zRh)|H_)Pn4+31!Fo< z?qOHJ1r!df2P@dzKJy!?7oR_)eUVJ`XZD^=XXYI=0p;3P1>1|DCf+9bN5Xump6i3i zy2Ev*Ar-TgA6&h^!iwq#O-h5tSDCzy@V!C1pLNxcYgz`+>YhUMhsSvMi~KP^p0w$) z?0RV3%XCSgcod?b)s#t4t6p%V)2kgFas9<}y9~H`mbYvZQ0Smdk?e5Ih{kk)D^?Un zQ|rt-$yRHEO(sGb8KT?8rP~UzGSW_*lb0SQ)w1kc7pLAU2V*+Y&cwN~EykFHS0(bx zs=Jv^!fnzx0%zy-`kKMdrwHw@rLp6&xx9{{_7-MBqhotD@9fJ=nxHZ*Eh&E-dDNQD zsx$29GXIwdQh?x{&<4Pk=53FGSQJqNbQn z{SI$C+avtNhaAk>?PAHLtjga^cJ={0_ONvPMsm$I5(ELwI0_9WfU)k8ca@}+w(C(n zEY&}pU0>`2{+_A=5tHK!h70e^nG_8IYR7a&owPC-y0drxl6R5IwsG{x)8G&BG#z4H-EsvE=8+_yx)ZiqtqQ z0Dgyy_;n#UKY;1%BytD6bmMqXZ-MHYW>DD{H{Ta>C4%KPW`=eoA#nB+V^p9$UF-Lw z=fBf3wZf}6H*%9V${>oX99>=S(bi&UA+q+8FXy`Ynxt}hPg`!+lwO*Y_%=SG$`cOY zqSxSFC_d+qZ@$vt_BJevTO^hpy(R@W*_`mcWO#11VO-$8$}@IAC^BH?b4bkKQ*>s<)aP?9Cg`d7rcgS5O}8-9bz4$ZQ_OdejypVO%C- zIRaqo1Yeg&3TjlTK*9?g0`nTzqWSPTpw+^xJU=VM;E2d0f9mX@AKv$1`mRcH#oAD* z$;x8}d{*HrdZrZkg16l0T->9PeS4+3YyvDkrR7rJz(gKwO3C|a8hr?Ut55>IG* z^7GQS?h_;nn@x03-PmneT@*NJ`DUQZ?!PM*Ixk0j&wcK2WwsW!dvWiiPMG$fL(_~q zH{r*XrKY^Kmd}eJMyEKh0@r@r{*yC{7TNs{WQan@rmylJen>9Nw_U@~2MnwCwoY!6 zkQo$@1876$FFaIbaxB&d`N@g?(^VME_?;8p^4_L+`SQ-Lh~R2dJ)Zc>WBTD$5XJek z2Q`iH3GMidmI2p$c~?_GQ_!0z9m`+z6U2LUpeWp4=6Z z>-fD&YU{n2YPJi*mwfH*lDO0e#5zUYP5>=~!PgbS=iA}$9q6`rfmXw@DGf>Wk@Kfm zqWXGEpjiC3Nuf>8XMc8Kp%8itkvUvZQS~tol zTf7;PnyC)ODG}2@y1L!swdE~I9i}14H9rYq0zawJSCW7kI9a*Ty zk5W6zT-;!c>VRuQc=4hG0)`tk-}U zKl?HyC+gjq+YY{bjhqgfcx^SCmT$_R)ghgOATbL7U@`mf2G`t=-(JHAx%tv_K)!wQ zCftmso8d+%tn5px(WqpF7c-}l_gEXO#!NTaXP(CXBU2t{pG2D z<>)-i?Ju=85A7DjeI9n6STE4vvgBndozzdU96c>w5|K(N|}Ae%pUq=KzNE>C;wJxUP|jd@cPwhvK^R;qV_zo?YwCrA^&=F}ElD#sa5^ z3kr5m&W|U+Z^w%o^D40DF4{Z5woe9nKS%2!Q-4~fUuFcGFgq!tx%oOYwtNb#m@a*g zw;N@W4wdVKcCws6gqp)4==(sS9V#)anQb=_tr{Df993@9`9D-QdRhg3ZU*iN?QDN{ zD)}%P+Zj|Tj>l04*pHk{T!~3)rOB0P)!RNYV&bNkT&4a5%gd@GEp9Aav0(n?0&!s! zX?giNZf>rJ!0$&XT`Yq0ofKgsUY%D5ub_Q-^)`W0M<62l<=k%(Gyy)$oc@)4j=r_y z*LHUif? z9BfyZ6Q-%n>!=stI4A1avBKlvmGYF!Q?XIx=j6KhuD!UR>7{`8*hgFK%B54+QG`)j z(^?~n%YR!(NqNQ}+^f8M>etm5!5}glphdL59}i}LfKv=ExZh_OI=`sRzCui%x(LDg zJdW0*xcOBRf+D~-TQ|d0cIy2p7Z79peqf>gi#Zvv-k;nPt=mdfj*~|w4CP#FA4X5f zdE0QGaQ1{#0gw!$ZGMFnDnt$weil}F64EzKQXb5C;F*eF4A2oYNqPHsaV#D?RV)4Q ziS`^6LY!}oWqG|iflW_OyG@1ilnz!X0h!u;jomthM9eH0bZ{8?ksC-idio`_iA_Q5 z9Ncm81zqcVXiuFL4sqa{npgL7DqYu<7I}tTp5S*&H+X7@N#ov!j0YZ zUPa3jx%)5ZCJTYw`GQK%)OnEUF?sg>w@4aYRHJ-j$%7SMV`*n%vf`%*?=KyfY z&pE=JsPQj5JLzK6z(*5pJ3YYOq1-&@c!_f;BD&rl`@Jk}Z-0MJtDBR{XNAt{z99%X ztaH`A5&;DD2L9krN15Fs;R+xcmaD_;uI>-tM;Y>k0!X-T|Cpl*o5n4;J53HCVzWel z*sf3W^QYahfwe!f^TB+67j^FR-x12ufjs2mIN6F@rz) z8(=C;bn$cOf2(zQx8J@CYg^JhSX1=oe-9W&5=D#`5Cib53qSmo1thnZ2QnRZm;BBK zypbI_;S@hRzOQ$5c#|Ie+TkzLZWS^%xJgZntgRtkPXewfz>3|WW$Wgy$-a#hD8*Fx zwTmkS1&qZ#;fF3ab~8Mj9W~ILOr(t-Ki0bY5qHq8u`A`iC8C-KU%x(Q6=fRv@uSQ} zTprl8N_GMDu$r!`r>%G<;1j-}9F1Et3A^j@hE8T-pi>baum1wkKX6 z?cv|$)!$66QWSX`H|ufaWL_mcpF*YoN#1Wlm@j_3h_cp!mGoOhV|g^G%<^ldgADhzRI1jNy6pm+E0 ztI>SPOMebxH0}CeJr6PO+Jy}XHPD=&hM0ucfthQl$H2kYm=w`pd57=jHrQuSUev1; zp3P%-DJYU3MRhC}p2!u*re&0=`AxaqAvnZx-g`LlSK~A%wd;37dc2+jo_vtJr+KhQ zcJRhP#QmEGG5WyNsc^kRZ#I0`$9kx($<W5Y*2Sqy+C$RjO=jmGc~@w^cYdi<*s_ZCs;M#MJaJv9^$;|rV-KlZ*szEa70%CW>WMSA_zUw{9tvjaURJMy( zYUM9N7H}k4_tK+BU$)ep>eQJX>|$~Pc1>lluNY>LtASG;Wn0?LBj|elvCG|vl#SEy zh4O=0&XJZZy_;NDM?L$un5L?7B|Ag0HzvOhwk$m1z5)dkx*QJd!>e-pd9-&h-Y;GA zhFZ^EB7I**ShRf%I{U=dMj`VjbC7?Wj+ymMYD#?cR)DJy8HNu!pUx>(J2bBig=-J< zk1vd}h7zoEMeG^3(AK^I@jvv7{QeukqyuwAxX6wQo1Q`jU;Bvo!L!7KC6S$FvU|y0 zaUhLTY-W+0!@cAG##kY}FC83Y`ktt~ufzO3aZ$RLOataAWAA^6T{P^{6isV0EEB7B6$62WR+~_bX zpi69OZq+-mBHFFk@9&%os@PB&DP6Pp8X5M8I9-i|z`laMKkhgIg$wBVTiTC;+ zB!>-nt+Q)bph>PMV^20)RH$a4BSxUj-6kJp=_XI4Tg9bHCeI< z&zQ*>T42P=sm7ql9&v-r`oqCzXHDK#>wbna7Hm4QQu{X*5-7gC`K1heVcG8vH||;N z3z>*!+h{)9=@wIIp+lR)o}X@UToKjOXl4E91ps;KPGr~Rad>h_w-4AFH8E~Azx>%S zGk2;(W&q<)51go3s_kNzmz*e0P**lT5cxPg;S$az>w#tv3Bh#E>ck z39)Q)CM|7}Egj0Ug^TqGIJ8Dg$_~W=alojvF&=|>hI1%N8=S=yE?wojXQT=_1>|iN# zPd=!p=A^f-lBelbrbug+By>Gz-98UbYan>g6T!dwhaQ4+FY4{GY@$hI1){mOb*u#5UuRr(uC63 z^5I&?Vo=g>f>C44ZXxKqTv-x!8IU|^P%9Wwur9(Ywztalwu6UU(GVmpcXUHvd$Ivn zel?*)X3{c-N+f9zDaN+>L!q`te+n^r4F{OA$wm4v&_LZ3^xXaLVbYGyPIpJMD? zdB6)zvEOcaIf~$C#$o$L!U6cQi__4|v;nZKb*k`m-r~~#RA90K@Ud*$)lOIRBe-R9 z;=1e~C37^C#IAoeM7d7Z)JqgvTXU>1_x$(XmMHn9vE#|d*yKFL&oL*fA!%5jcmBj% zaaX)7RGR^BS$_Ao2J?S-`s%PIy!UMysf`fnQV~9McZVX4fHb31LOKRWqojgLr?hl; zcXtdnx?|L6c&C1U@4vgQ?b&%xvWrxQUmib z?C?!u?O81W4$h4KgYDa-;YUpag@|zN;&S8ua7|_A3}2u82$pN%SYSxstJkzElbYVX zYyUNakA=re**`#f4+@#g@2!buBRK1?lMdlOZGAyyPC>3Bt$K;=bt~UUJ-SpS!|>j$1uFf8}+qhR?wMNBsBnP$Ff- zzG|PYX5B%HHqyk{BV@b_`J+XVB2udhG)Xi=zjm3r>so5QCn;Ft6V6szB*`er%Yk=7 ze@tWYsh7E8RzN^qqsUTkv|D0hSDFr#kUv|>zb6lt^5f#iX4tm2R^rO)P$vSvaYq5n zgdduydj)G1~)+(zB%5EjFl$~}y_Z%X=fWGY|;o52jawX`x6VvXkX z2z9y)@JFmvcueP2sU=rai|Fp4~e^Su%0U*z=58_&eFPv7yom|PgVV;P9- zgp@iQj@M!4L$!pJd7_yx8 z8n6kCptDo%H1A5S+qM|JOE&BDip6f8G4SNp7#=&udO`N?bRucI1`k7Vz}Hn`JuD5y zq3S=^wIxSn z?@6PX<0PxM&A05SX^gzz1hptYGzJlq7B&rd9N-vECpw%H9AqnIWb9HWYku9QaNzU9 zvaV%wr_oN=wWu%Jr!gAACLXU4kLer1k9QQW@xy<~!EZ;Ru8{iOrlRY>sK6ltD4I~C zNt=Bi(Aw^Ml4P|Z9ZTyN+N{YanVlirI^8m?lIp%h!gVO_2{NRPqSOocAK9@r@z5Dy zGCyrQE&7Iug(`_8aj*GfrJx$EB`v&8t&B(ERh2*+&G!1o`} zzsn6rGJ(bFz|k}nOiyoK2`iaB9D+K<*00qilDSg`gmgOBb6y}^hB`hXktFB)ou85~ z*VmBco9$a{9N-6Ro3C#W(k+>qOlQ=PSLb&_alYr!Sn&rp)q8&qj}F5FCe>i>d|5~> zA)S*dJyPb8#}jg8L!_RqROZv?i08&XbZ+#Ot)v(L!w;zEE75Cz8ez-$2B;K@%f3Dx zz0!PcFhl3}v{mcg|JC0RMO@k+;}Yr8F>*hcaeHiGjmV^ z*BDEKf7GIbHH`C-LKo-S+f<(5#r+JgaS;GlnZU}pvnAPvyB(WoeYa%}2FO01ZV0C$?gZ!KIohFjn1**z zw^xv(waE-g%Z<9WL==fOau?jp`f8tJ6}wSuNz<09eg|zQz40vcbFl*dxqn5=lPH+w za03m;j~oZW`)3J|@@HB* zp#0PUoXhYHhxwmp_ajfbBbcRZ#kf4Kb>G-2QTz1zO^~^)RNet63^|=0 z-+s#dx@7)dUncfQU4O8b%#-_}NI===BfQhzNg7TUI2qQtr~B?#hXqmfF}sxt`Oyr1DiYfk5``hS9RgT?xkb_ z(oqYbr*HaWN{=o74nN^DK!xylgS_^AnDAbHpi)LTHl(k7=g;)VrulwGH0*Us#&IVC zQ(X@+W>A-apv*heS?)kqxE|0^p!cr&E>hbb3+L<&t05BDo|J>}+a zHq!hhm0rE>!h@{LkTaKBK*4^tY_1z*7E+41x*Bnd**;?@nj)Mc;(QsH8v0>A%P3AC|JHNi3x-niXN-%>39GdtO4dj z8fuNVVzfdC8}K3JxOGj~^*yqT0^Q>w){pV1`)zZCJbBT(Hmn=C%OKMgOP0q@1;twYekFF z$pOF8&E}Dh%Wf=41Geo~FmXG+)SY-cfN7tO&Se%b-xK|rum_0Z%))paXW-grB~cEA z)D!Kum>slMl$R^5<8)Ge^KekHAt%ARoe*Ogf}!R4p|7j*h`uA+!#5+=|$d5MKlr1ZH-55B4f0qiqkS zS`@7lug_{G3q7rbJ?+<#zrr521p$w+=jl8k*Ukd&qrUhd%O0KHKwWNuR&pv3{#6Mx z=3fQu;xLo8+=~6Tq25XB+{2IqXY2}en6#V~S)wxAPvh2I_WQ~SZz|9PZlya_IyiQi z{vb}Js4r8-6d1oG%CqQtNHfQ~ofmM@D_Is8B*SwvYN}nPS)Ml*O1CA$)nA(57WkH| zV{bS)z#I)zK8{f5vdkAYq}!Dq;$5}mSEAn$u_~u0?_L=q#g(q^Nb~`MWl)FY^sl@) zSzLlI;Do*)X@;4!QVntTV}M{P)-Vx zdeQZyEVGJ|7h(mTU*7%a%aQo(3U|{|k~t1WHyX}Pdlsn73;~p-b23A=t2=DIq@qAI zBCZz`w1-L1uiBB>VjTqkKkW2QviXDotqT}@v7hy8iQ<>A@RH|t@Y3!1S9l`Y^j!lPL=X4U`a}X`KDv}$=^K{w>EUhwwXTx5R(W5pea7GE zVjW2NHmEA#{4l}N0am#?cnBZG*>)JJuI8*|wPj%b6T0|023e4g$?YtV_}|x<)gy+$ z-(Vm$$GP;GB6z7b)Fj6yiw-#|*$6mhF_K@Bn6MOiGE)$D@49E^_#{-9HX_H}5=ibz z3^TsMSk7RhNA3#zNCBBnP2a*?M&A8LUpQY1n|P5O|I5~A63Sl zrHa-$f}jBdUk^m~U`N)|`=KvhuN=lHtLT7kmEx5l*T~Yv3(Ed6K}pREiq>QM*I?}g zC+*|vTo}aOM=bBAMa6z+0$s$jGlkmn;qZ5+W8>3*MJ|D?wK)+nH5F@z{YPV~gW<^V z%epCUliqwlhIz_AAiEJh9&8|gJe=q(v7u7q(pq`Bad1}I)Y3LJDIv0Wr}3+REm3Fl zk07mZcp|^OD(Usa!ZJx9<)X&GDc9zU@B(d%bI z`C68ki=LffSTPiL2R0zk6DW?o>EhLV~v8&ynbS5Geb1 za$zT6VFJVBN2gPy>4HoD5X94@g=uwWPC=I77jc?2)JQ~XR2 z#}e-sBruKFsYc@B%@e;xLiIP zSE@841Bwp%>(RjPp>S2bsJ}bR=aH*>l`19ia}eFjY2L$&v875fV&EE=E3JxZAcO6f zsX9F_bGLml~nyqSgrZhvI|6fAxrV zhKjh<9?amow-yC>$VpJ}+ko!YX0m1|3flGSUoaAfL=SoFBV#wgV*;CzMETG-P^g3l z%$jhHzq@t`wcHO^{VhGvd00J9HLSb%p?69%J?uDui+7)<$>Xcb@`r=Xx^@EKbic2i zM=P}~%+=9!AevKF>s1%W!`Eta$3W4&oeNMKM)B2)euLGcp&hK8*I^?}uz-gka^y^u zXZLpg9z~isPI|AJRTYEI`F55lcpAAsjJw|D9HU1iwUI(as4FK~0$QhLS_DL!F2^?7 z<~Gju!lKKazfz2>hQLQ}-Bjr#Vg#6;xQ%@Z_92{kMNpO>m$xwcx1sZwOP0EuA7|F+ zQ;5bD@!;aD=zxu7QYx=OD_H$l3>tjh^6J&W$#d;Ysa6iJ&eAkzC{BJF(Btj=y$W}t zXGk6TN2~EZblURfJUb}adTsSw^Ivf*c{6gfD`SEH*9#=X z>_v2UqBSvv>!24jhu>{12vfWG+i~IpyQ@{|z~VsN)aHJR7(6jc?BecwHMwNW?HY_H z%iJfq(2axnQ)p!Qs1KI!q!QP|d9t_Wi1gO0t-D=|umHI5QXT$pcW0>Z@IB22VP7@@)>fv4SVe8)xfXj z^=|iyiSM2@TAOiXpi@`E_C-zDPgn2CDAM7CuCJC+@=HIh9kaIf!RcEqMb3|b6wB~e z^OiI4Q1@21Kk$mE&>+++LJg2i&GEC}a8zSv_JaG9W?!bdagkIY*a$C!8`LV&iZM00 z+_0?G<;@h~sjA>?HR3ynxMc}Dv$Oq!#oxJtTfui-VI5)7c}DI+Z5gDo&noRG-2!HT zJ*_u-7Uulo!Q7ui$6NN)D86!sl1hs8h^NG^U#Ef<-Y%U5zadzI0%_Oi0``?BQ+h)D z^`9VnQrc?@p5z5|GkE%3@16ixCpCe0_k5Q2Rhh6SztuTX#VI^S(KCQClFxiKLG@?x zje2jkUd0Gm5=DUykIt@<)9m-}Z--*q_;6}JgnGj|ZwS;4n~&)wBxrpuex2zFM8=4x zZ;0M>4#vQ7;fiXR+x{iF@2mU6!&`fKTN1`!9CsoP2@SQp3F$~TYjf#%gnm;(L7Yne zayK_b?VT|-<=+nav-ReEndu}Xp$ntzO=%%$-i5@Nrx%5H&DZ2hpG3rddq^Cp6#5!x zF7ek}KNq%U{2qG#K1!uo@JZ3%JVzn7#_rpYF#IqlD;@lbTF2Zz^vLqqeT_}M9pYD# zt%EZsC?ukzEApbMmxQe^E+}#WwtIVg2f; zdVk>_FJlg`k0ugHzwKyPEZ&eXBRZ4$%WYnLSk(H+ChyJ7J>DWJ+goOq?oM&Ht&sTb ziKc%Y$SHsJ!gvTWcf4}YXWcblM*o;JsK!^$#@i;r*yDyyF;3^?l2Ekzx7s1O;koFS zs}Pe7-Q81Eu$MZBf~k+CeWX$jAsq;oUGLBu3pQW?Mcl^9TuEZ66e4p8z8|6a;mc=R zpRpq=2faD}KXAJp*#EB^R>t|;*n!1n==O?4RrqpD+36Nwkvn&fmh!dQ))?+}^>F|r z@hL%ZF=4iKb@-a{`xgEfJV({-{F(rZg)e-%bpU}67Co+M!so3RTdE*r-Sf;ticLR{ zU`J5Oj_)YOk7g(iu0hvMc!%WFutsbQa`+Yb$EoM7Er;G$zRRH}NRF^xIWZ>tHfF(E zkINb5Tr6S_-|+I5gu#{nj)$(Ya`<+UBo=$Iw#O5SlaQK><_Qe!gP=0ejYA5x!`U_` zCC^O<#nn1?a#tS9Py0f#PyBABGN4}ZzboneodPsS{>_v^OifALiXfPRO)*!GYL|ZoMI+i}j zs?*xB_-NGr{cv>Sxo^;Q>^tu0+4(eU^W8hF=SxyLe;b>p1}GhYEFQX8=cn z>rd=OO0RxIYu0uc?6({1UYoNIHMe;5aqv`?d_`w5 z{wK2(Wf>W0e!aa<{Zf*lQ`+rg$%Kg0x~jm#IEPp|2=hICA`zjRz0xY)9%g1-ovyb`d|C{$NWPt_D#hbn!#VqbApM0i>~n{ za4uTq_u42gkltVOCJLepa)0kyE_#R566HmC6eaE6w<~7M-*_gI<(Y@(jIEcD{?0d|< zj832W?sJZzYlZ+>`U{cb&#(f5m?V$^8CqJ;ou?h?R&?-SjoU|-@X8M zW+HPnM>FS0+~-G|8f;UdwX2D09oLH@IkpQe$7rv(T~AkY>=Vz<$C@h-xzg<}DWZHS zd(+%j`W$Vn?ogW2gHJ#_#Q}K!gU2$l^&?RW^`x(8af}>;WN)W0Sr}YNn4*1>VmWD7 zuy!TrsQsQoQH_SI(sVX1nUE#yZNuRzDF|qCtL7WPV;@T^XFZXzQ0r=JicM3nHjpzD z8Q)B{eyZ!Xf-K0bho#zD$Imj$ui<|P*7J8ppDXk%+B}T>ICJ*UjL92NR6$CPKhet+ zFU&~P2y0EzE{LDAu3x@qq@#uUavvU(aD`SOGh5%)>0w&Jt4$=sqH~*%+_t!>gwQ1J z;~s~@t)W;B%#gooa>$2x716w!v4t{p?Ll}yx7Jmn8<-R!~-^+W*&=V@i)DBqi zxQ-4V$65n;ao#G>TLj*^8#VAGT?||B=!{;AUHWyEijS9J*KtZxU$D!F9!nDbR!tSO zdztDi1}L#DzOWhotmn{K8Cve>2hm<%Sa6>C-pw(+3jGWpOprat5cw?r;$dLf8EP=j zm4C6{xU4RO@;W*w$ltCTi?|n$A%sxo34_QR=B@Vc#M(_11H7xEi$2iNx7BGQMld%e-A%LYZXa!toRAoU zhHTvs7PTp-{!GEk_b(Y(I{ULQ(m+N$)BCX6;@+vLxA!M=g*20N>0sPE1e~6BC1&@j z7H8&pDuMdhyP>%WKDdu5+(gKq`gN@+R6O&$_bGB^f0p-=urnE5N1u-y2+h6^Z1yt} z^~L+Pv-TnO{WCP2jaasURq&}36i^&*J>Ki7m@nudo&CwWJsC`pBXv!E`N(^RKO z{rlEG*ker=KG59ljl2^PdM96;7!8lZEQd@l$i~OVPj{ZE^Gt<;uv*tgI} z&@}~y2gD6>I{K5!tSM83j;4O& z&qniVA{0=_j;|q9pbywkd>|~>*_)p^8E`l}1ky!9jl`XtnyQP*{_KiP{17RgbpUrNM5FQA8&^{-= zKex}UPAER6?1@aNILQ?LzgmDs-}N5ph34QO5ESK-T{(5zqpL7~WzZ9q5O9s0dair- z-}G!PZFhcN=VhzX0hP$z8i*^04C5pWQ!*p4HWQ1(8gL#tkX1!mvXFOPe zkn^vFhU~BqaAQkkRW3>-8>?CwJYfVc30NE z{R>^o$EMZPDz30ClF|tr&IJt4W(;0yX%&?r&+WXqS>G!0Y)->REb8wWAziA}Je!EmO@VR34hoot zP!&Na5{%&bO4%sysZV_Dt62aw8$c?Xh7!LsAQ4V;=pR=G-~rgtuDzY_K5_+gv@)2! z#W6nyDIYN9toUiogX?+N`U}Id_~RmPGU}-3<8sqI?bqXY_OxbvKl(#1o%Z(p@$r<= zVP<$?fI#`kth}%iI&qm*raAW`SK@H!EYHKoU7**&AV@~`dvfH_N&DQ`r-ys)xo2J9 z#!SZ2<#b`G5CZG;4qr*pq_d2Z_L_Y6O0f3m&V1K)-`X;>@QwMA4= zl$X8FKXVS*k$9C{6z60Cih&Ypm-OPMFzkILGk`$IPaS8 zWL~NMS>0?ptbF>X(IKFSM`C4vUH~#@q~A{_dDK;~P}W)NfDg73tXRqCvVsSS11BzO ze{f%X!E4wR4G1pcaZjJZF@G)l67A8CgoV`rxMsv5WXVGnz#G`nMhSprjJrep%kK!_ zeX$eiY+=^M=v51V>^x~j+*BTlFhIv9E`7=F-!lp!6qhHY0e#7}YOfpLDE|C|cy?o1 ztO@DHb1#!cvfmE*Oh|~R7(nvlY-}?q9~T_$j~zE9{`!Gj*_xuQR>{7m!ILHS$gsBi zSe!sf#>GlHmSv(|NY(OXUu(K#{joOZshxuj>1uMeB|6glFes8v)!LuSIJYCFw-oi0Z3PPY?)M(Cr-1V z1B?sGHJu$Y#L>gg!%6#pkwb3GG@IzmM&+y&F&v}@y|0MWExFQhxKq-fqnmgcM~0o} zEtH`+m4tN5v%`in@y}ZQe`8K{$_q&<)#QTC>MbbEP_2>$$;N{%R7rYE6m2L890=}0P)(oioTIJ~VHrhY|u+Fc-zLzA1 zgM2*c#ngfyF%R1_3wt#x7?9NUevE+-*xD_=H}wJIpL&&O3`*@d!~U7%uY_XfnmEI+IJls z$`O(eYC0t$ov4|@CJQ{Ow^VQhzq-D^^Cc%B4e}V`F_2+$#6%d=mJ!rZ8+?@$etKbD zODMX}vvuz+p`14D4uR;6g4%Z?9an=`(?bZTNXB%gw5&hn#D+z3b_zY%82%T{!)g34 z_D$p@*@UFUIwgtK!^3w~i3^3~2)fVz+dvx9j4= z6jyz+qL+(+F>zDoc>+CC-S_hziO_d(FtK09zbjrhq`3+vir`TmN$*!-cpQA1d}oZT zsAUs6?E4^mWTE>i3tU(HJCIRwV_wP8LOWx9CG@9$I)T%aJ2_9te{DW#ws^2WYbG?! z#t*Kd%LOC&V*xSW`aGn)-)&#D~U5`9h zpSwS�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

G@;jD=1VYMhMQ4BjNrW|3&8$s&p;v z#`5~`dylnE9ntkq)f_?dsm1a#7XwDEppH$o4Pfk%KCa#g2wOLDQe9X;S97D-|H50N zQ|j`b1)ZdSxxbw*Gbd|0IL{+X|9$xn1qpg~)Jiz2sxyPQx{4gd%1J#kIo>$G(PhUOUOwMN%o7i4i;RmxW}<{@(*r*7#sBKUB1QUGBJgU;!6RMtlFh zkPCTsSYCe0jz>Fn1JbjZxM$K#YwNufpLke{ z2MtDs1Hzt_`MelrVjp6D!_5D3GInM{Gk>rCl3u#?uINeOa(0>FW%TCN& zJ_t3?fD8TyKRi0ToBbeeQxVWNIrrLbx0%a$`C5IM&bGAyc7jM^a(1f&jzILEH=?bT3MpR9FS@y_PKh9yw0<%)Sne^b#~Nkxn7~#&ASJkS1QmWN z;*n+t4^tvSJG$_PU_R6$Xv60-8b$@qr0@ffCLVE9Ts{BVzR;+$lVAHLwyJvdJso*E zf{jsddR?TY=xCc~+&zPAQIDh{_$vvTNBZdM1gHJ$jlyN3X5!G|$f~8SyVg?Xkg!@x;)jngVa4kBrNb>~uZ7RCh$z zzBLaN?207Qx*GBDqbtaciBQ&{3?h1Z4(h-gv3f)y>JZ$Itw6x8>>SUUgT8&jE_PK! zgimf8+zr-Fs|%&Q+fe`nNBB@z{`400$1Me?Akg&RYhWTJX~5L zY|!*fbw!`l^(67DI}f7<&eR?YIy+Z>Y;WeS6=PHyE4Pc@FUp&vSEbONy{!JmF^S@ zSeDWim;)3PZMCLq>zl_en>fd=w~ovD2?ivUBZ1gRhlMv~nVv`A4XaWY%j!^0Y2QC2 zhN8O1E5+3q{AqJ1>6`t0VCX<##YpQt^^F`og$AHTq@h z4_!m((}2ZC)wR;vMzk+&^!8O)MT(E8=-1sRuF)lq?&S&md8_d6`fe6EHer#iG2p3j z2_naRpaSE3geK|VpivP{v`d$_;kBKx=ImprBFV&%_=Aq1)@NLC@aQg+V&U0$IA^Lwbw>GE;M^<3$b_$AOOXNW-kO zN4K+$)7zF@nz@2X!&(@J8>cZ9)(5UyhZTs}@mhH?vbgJbcquaXnCK#-Ua^YF!p&XX zjxLmL6k)+A_`&!G4)i)?s;M4Q`pWUt2+FcIbAILW{rA}cfusAUXVAV6=i7+)KY&5F z7cCt}Mer<=&s`okLNlF=+56O_yK3(U7+|M2cfX8K;8yZc;%e2ud zzGSi0Z5Vk;r_^LYNxnZcn0ezuP4!ImmBgQJBB#xRxgkLBOTHz-MZAl}K08gEKmQjs ztoFC$g&E&O(hegh+*`^$mOdLYg{8Kp$l`RPzUs#0M zLekzVVJVEV60_f%{b`CX$Ll8$mW4vt2UBe;3>$L?9)Ln4;5?G03{JDA<}>(3qnt|2 zlow29W2<97$icPug39w1{lWeN`|-6#6&go-0hR1Ik`3fpu}$qs?9F~ca@1vG(wCfC z<(~45FIvOdygsrKLu^;2_|MXtjXZ}rPuuDqbBKGSqvKUpl>VA^P@B85UIkK4?$I{`aQ6Kts7XiEn=J+NM}&(#_+L1Sa<} zPQDRs=y_1Bdu(&rSr`zA&U61?@(K<>R@oHXry-gJa6 z!3ZaO7qqv|*Q9q?^CYYeAw?Iy01(+ zDBIGBy1NNVT4zMg+ni(8@4Mw59G_o+s&jn{6 zLne2VZ?JnV-TXMZ!H=nU>&Y?TTGv{F#QZP=+_m37XcKipkwkcdGw909$$~b6GAc3thY@dE%}?T2?X$l-SQouP0GDJ+DMysn zQe0e}nal3xD7~($7K`ga_{#5zWXG#0BokwM&ukAz1+{2p4 z{V;Op3LYU7?^x-&aLY|`;8zlb%Du7M&D`t|84hU3pvH5=(c<$z%SGL@^NkS;Y=?$Y zY{=dW3e>_9U>4aZTY?=girNO5A0@kprqZd&na`(pQw(S%I?h}_D#70v##sIkh=50{U3PUc2g>~H5}z#yXRC>Bj-Im&+@ zx&x?qc6MbgH9y+i2UhJJpvD~iLmJiFs`h%W(O^4QaSzwwHkY)A;V^<>(w7%7&H)2N z%3rko<-WxfM?%F6VOeAxH^>Oc8vOerg$7O*^XLRYFJSL($PRo zJmOt(RA_kDo2qw*`B_+AF;d8qL{&{n!!Oa+wh1>yuoPK22S^zl+=(5sYgq7Af&BB4 zEsb?}a{o2)i+VHPM?N1JLJdQ1{Kp5I|LV%x>k@!q%I(S*@DnTV=}6O{S1a3p?Kb|p z^W$h7T_y%IX?P1Nv~Ng%Q~r8#iyyhcWZ6P3LOMYvJb42~_cC*2sDq>aSe*WR^lv~R zh+RU*do;rHrk8z=$<+?%N2M-b45)O$Z$Ek>zE|vGHp^|+#@8zI(BISj9MINNn)tr& z-n_^-eD6qpfok_5srQTO)b5jXcg^T51l=cvVQ9ui|Lu2fH>i@?{t~!Qs6WY0Xwsa< z^u~06US@U$IJqr#Qn~`Nxf+s>U-@8sCu@=;)g*g*i7Y2NzrD{6LynWBq%g_@(ZPJ1 z#Bt%0ZeQ97{kREeHhj3_IGu!;o8)`Cz4XH0UEgkg>X6=Jk*!8sO%dzf-l^LGj-MR` zuk+*OAHHx;m|NzcYL_+$JGLR<8BU5xv>AHC+AVT96KMwJ{=yxxbDQs^*Rev!qu;<1mWmtmEq*#>li!$A@F8VDo>}Sjis3 zYrNtBS~2rN{AE*pEzjJ>D9hfm;vf_9%>DcByLM_mGZfW#3A+og3SanUvzW}1Vs;=z zxR`+O8}jQZY~!yl=}jmpEe~rU^HdzS!AsQOasfa|8Dca7`6H1b8ix6S|c#nDkSBz2=#g6R{O8aQ%4xBpLhJffseRrBm9Sn=QD-IA}C^_ujnZ zRkhNw8zOKz>rC8{d6&iR)~>qyB^8-_T3fy^$;_Ux3B9;dC4Q!IHTxb(ZKu!ygL<}xj#5*%nm41BGfki4od-kbso5g%!&RigQ2mNF@R&# zd@$Uq0ZrlfrovC8sB&8Cr(oBh@5GnnJaXgp%e9|1RcA5;sxO{V*Sxp8{D4vVTnI)- z{^gGo3Jvx10!WSycN;Qt&%GTb%a;&Qk3k(*qQ4uRt3J5Z1;fdiHfp$Y%&EO0gWz{> zLrmN5uXUQQbg;g=b5n|v{+3?sKI28kHz)^7T-}BQduz*d4gGp`;@4By|M<4B8I<(T zSz7GUNbIx!RM6;WHxoNT937ZZ;POJF?TjN+Vj`YfV4PBX<@<)-@eu7FSz5*w%p|@f zRUEM<3EjGqHvwet0;Hia!gaBfKlunw&??9>pc4?Gb zeqE({Mk^tnYG7Zb1+{yR$gg^Vw_wHI#^wjWzg0^TyWQtOe*h+;2NFLr1pRvcYI}3F zfNpheKjV4Lr>(Zh0^?JW>+H2q6=oDbn92{<_9gY4TALa?nF~+W7+d^&lCkNh0nYP+ z13*@T+QWq;`ucZ#Fcis=-EIC!mtN(02FR&Yvmo~rbcG?*&O0?vWsP*;o^iF^yi-_K zfx;(5k>)t8WlSTvFetoAnDcdr?5Kn!mbM zzM5yhVxt(6`B}Yk;zD=NB*-z@Kd>zIR69J>|4Qbq-(y^z9euz}RH#wnu`(r{AwUL& zDyqwT>J`x&uU==9W@4k^jVfWU+AkiPa6*47pK36`_clZL5B@BdV6|>1vV_CarsFFK zJ`ie69dIsuxZ?_hj>>nG&`kLK_jI`E^({k82WhQ2k%t0YT_)~LrvW-0<=k1Q;kAlY zZXC>YUln2Na%Wnl0kn)mghWzn2-~-_Zy+=I6 zj>cXk*sEKI?>Y)22Pg`sS|?agVxaI&|BooLKDCrpJC)lP3n6nmCtEpzHIEm^GYW< zN(AIH+rv;CNU7Ad4K$pOoaRugb31B&p>y|SrL`RVp?iiS5|57QDz% zZrdp#h||GaAChbQ`arD!T{B)8KUY=?2)x(Wf^G%|VY9d>m$At=7@d>GY1>$hEfw4) zGuiP4KK5&V^%ydinti?Z&f6w>(fUIO|I|}BFPaB&z=&{X(qZblf<*rxQ(qkw<@>x% zH!O;DqY{FEfHaGMia{wU-5?zTOE;^Migb&DG}5uuE}^v29ZN{FAh5u)`##|3`#Z1y zcn*3F=YH3jyJ8N zU?pq5_iQd}{qjUS(Dzp~me>!R-RD^^n7awl&~xI;0>axLa-P5>*E?6o`W94kMhvO{ zh@uE+bMu>mLn2V7z*3~5gZB?`9h9nwd(>J+-(5v`k}L664p|#^HZm@m-|1mW--?z3 zpASO!grJeNR~YHi26g!-W+~z^=_d-9;2OmYf;I$f)2uScNU+q{7GDYwx0xB(FH~Ke zXb5B|4%3jdF?xRz61&!Yn0E@utW&|Q!^Y_=1&60ve z=hWvvBT{_#G78;~^k>lPNvw;ipmwP?ik~6~UBy~0E7x1>_8^tR{8?l1$Z@;y;onXb zdAT98Q9R|x3)HSTf#ykQz&?Vcg<-$Qq~<8=F(FA6L0PdU<1?$(#R37ZcPEw(`KE7I zy)g-trT~GdpI0nJ+XzAqIdzBGLw_dnn{q533n+%S1rQ|;X3S8m3OHZ#|GJPdkW1!dogr8@kZ;z{YlToPS0Ez*=A_z<8$#395WTog#z#=Ag6f> zPFRv)Hjc(AfW8TSd{Lm|F<*7kaocg}uP#Cx1k7aSYx*;B1kuEu(G;G~4ZYjJytXY2 z@Q`YD1V-KBTOMNiT_ojCO#Scv{4%ybnECVM&Ti-+-L_+KIbbdGPlYTPTd;0?!8k3( zVAzS@WDWW34S=e}I@T5{I23lfT5JUMuRAkjwx6c2_~4*XYCER%+hRjfirX>L$h`Np zXte{ncyr`(UhZ>KOAqf#ct?lNkLL271WjIlz7^F!8F`mpWeuY64(MTsjh<Zh|5#MSxeAb#W88w`<^D}TM?D43dZ}DY**-IU7cyz0+tNd5DsqFqqnG|mG7);X zEtmm(oZUjn>wUs@3F_S7EyllKWRh*RNv9m3PdBRVe^!tMc}Zqg_7@;^uVTV-!|)_U zy#kd!HkFd2jU?M|da&{Lb*!TQ2|K$@TB|!o?sm&{0`d;p_ixBr-hTeZ#Seea^M2Bu zzOS5kylQ!Kdc1pR{*l%TT6d)z4<9sf`FK73Elw|b;|1|?FN)jQLS8Hi5nk>^7_oAUL;T8&FA2m7-3ObJZ)qQ zHtmYPeHEP9wtFQq2zYMhS*Tjb;|M793w4;)Vm%Ngb0GPja zY~+dT&>{2Q>%JIjdpHf3vN*LGzO`{;hrn?_`}((9oMqz~{@${4CR$lb*Ww0eza6zN zH%_xsPDJB+h}*N=EbeqZCh0b`u2$!gMP&j*BN{oeh3jiZI#qfNg} z`WO%RJ)t{pp|5pu<8O9fp@d5ZLf|*G1Q}k=hzXw>{a_*}ioIC!E20~Bf#Q!qJQh{~ z{VVc%)`ETObJfLP(50%u1X@M|#}^Nowo9Hz?+4Oy(9|s$BnF0Jin@PaMM6xyd@5e6 zY)#QgB#JvT>Hm^ja(+|SgkTp8me5UlBI0mS_V&fK zyZ(pKT(YtCPGyr>^F&pk^jQ2_2c_sWSOSLHK=_`sFMtGtp1TW_&XX{<_T(<-Ii)WU zi}_^aHoX$(Xk6hD0(phwD`3ht0}s~IdE-%&F=Y9-&N+x%U$b&I5M2g-VmF4-V_ zYA?!G_Wb+@J1wi#__lU!nTQ~vYuf9MisUOU&4KDE9L=W2l*39Dhj(7Ojif{(WE>F? zJb&GskgJ0-wbd1i@QYet@>JYb$QpV@hI_h|-$>kGL@Xi9>s6FZ!bI$U`mhT}^tpy; zwB!Y`j}&9$JsQ-!FySN2)qXTi^OlknlRF8&L+}-%MleWw?Ib4F)1G*sx?xwb{Bkmz zm{ZM0&k#H^&rG;AlKYK}rC|8$gth5pJrl*exQYHO2S0yQ7*A>rjYy2ek2O+(DPuef zi%u_ob65U%nqNWcw?kj1^DM&-BiOq;otc_lSukZ?%=;&E4 zM*^AA_EJFVNRkwg4xJJY7u@GOmP=t>Add%)O`E6ku9u}9ss2RQllPoZCedOj380dTT{VC114OH545Lb2{u*q0N;<-8KV-$>_ehtR+Is(Dvn zJI^JkY2_sxdK9@LnEUi)mu`Sy;#Tyu#GlG64Z85f&#l9` z1SJQTX1j<==L#~T5i$Zff^GU%IR9WT{0wTCjyXm1Y6fhJ=SLR}epA-uFLkw?;uB+BNgmF`&D8O2EYp|Tj7vGlWmm+JCs>J`z6)giw4x-Iz!oIK)IDcCEp#xhJcQnJxh|Ln6B zcb+~xSbFjcRbf%BRAxB*g*?Udh{V&RLb>OI8}9z__q12R1mDH529koKaU_~In^c1c z@7<%l@#akC-^>(_8bpCCA^+c5+Km_@X4oknshVGqOg8+KAO3dDcr>vJ{^kR84n8Z6I57QzT0{}Ngvfs+dCH%%HiC%L*tYl0l{M)xv};` z<&^45#pc6;yQNLQYdo`@qNV=}eMQ$zU1?X=;KgsWLurQd6fSnp-tGa!0M|WfEa~Q7 ztG`2@9ZS}O!?zl&rHy|zSt1~!O1;NI5Nq(BZNJ3bztPd^_P=xSF9w@Avm2Spoe68L z2-;*{JbZX(p_NTqB9U0CiRm8FZloY+T{xJDlb-nJ&jcNiLr+@WUki(f$Q8@_BrQ1y z@w23+;u6h9Qo8-u8M(YX__y5r?<**2%KcgRpGL9pb@7eOYcu@dB|H}bz!Ia|%ze1x0=8Y-Ns}}#f(7s@& zBb;mU__at5n_u>tUcJ#_iebDS4d)VP;JqL9cgCXKcmILiH?zVsCxSzW`V2OV=gAD! zRxoe1_c!v{mcmrJy`%J=_tAOZ$avuHM)1m+7ymY|^ayqmp`g8Opi$9zeR|F?@)bu2 zj|pO-_0r`&S@mf8%w@%1Iv~opz$(!`UC)@E}mp7`aKAwXjzCd~=wGYtc04P<&X56r?tyCvQuycpa8 zd^R27`W_wVgy84OFZiF5(?#cP#m7(s83zG97Q;vQ5X^OPy7~HotjVJ;mlE(+Y{ebG z$$oJTdmX(r{gW-TE=A6JzO(*0I6~nyFGNI8?ugB|knY(tHBnBM_j0%1FLLQ#@k&P_ z9Jx%vOlC1~w8P_n<cc@=!8a{`b12DXF8 zDPvi`n@<`1!N}k0%u3rt@4ON-sTJ-Wo$La}5376=eOp_xcVqV3HbN zzY*!VM%G6g$enxtFnUdJy6^Vn^#f?Mo%>j3KtnC3#B)h@{o-@78&JxFX!9)&w70;Q zm~fem81Qs>ylt@h@fqZYF)=C4r~0xJ4&0$+M&qlyYkS2tH`p}DP8Mq&lP_E2nap}6 zU@INg$Zuk;>3}reRkA?RsIUZ?aFTG|WT$!Zjk3sDz`ubT10xmIkiGyZN`~F0Cf81()hy13p;Mpzpgi1@g{;Bp(W=C_J53d9nWq85*f$d?vMJM6@iB9b$-B%lU zCH&4Ay@8Q|{IC4UJUsfXytW?n&;*PXfsD`iVVM-Ddt-$J*f(s#(#Ckqa^{#5(KDI( z&GGm8`h(Uzy>$hG8iT^(ob!y`GfoB1IQqM#n%R|=`_ox1lSMTv<(P&-G@Dl`G9VYP;*Es|mP%Y*Gxc z?hGYw`a>W@MsR7Y5q42V8I(q>8lPU-xY20rvoRpS>`7xhL+Ox1Yys<`Oq;5N+{K`& zV_1h`JHpYJ5>2(jw9@-pkWNLZd58O<&10LO8D~jPGYHc|RTZ62r`XAV)iehVGbR9x z{a_>ow!9PrCFK7`%8ShBtGH(6Xwr+(7o`1J>O-r^zbeFnW}QVn`}f+Olnj>Qf*2={ zt8F1-Y*@HXL5{RpJmAvj1`ebNMPiMWR=Edx@Lmw zCbfs>fDk0UN2i07IPDpvWQ^!<`2hv+_bexaEgU_`R7t9o&}hAWL}F1}lvR4^^LW` z&6451bM`)4hi*TaQ&~X;CKs)2OtM+3a|%Ru{kKI*6pka0Ti(rM}H>Ug9e zK<2%f?tmv1u$BUuNZo1*nRkb%R?KS}Rw16RqUuT#PO3vpT5jri<+`e7#vf?RS z)JYS?V>7Ch8a*%IF=QGBeR!=KyzcpT9>Y~?NKH&!u;cggy0hO!CwpH|D7uiV_FhD` z+lya}-K4Tm$|_HF{WNmV#i{t{Z z9iPx&oiLXfVtB(HT*e6G?QUGHlH&}qzWG=oekMZoj|6QFmyjg~LEK!ul=3>@B!EaU z2t%};?MSft$KL)|W{R8%sR@oi0TDS z?xX;Du1@#*XHl%smw)uF6_6W%Sjwl!SS8^fZWgdqsymLi`7xK-eeGDEz^#ka$z?DE zW5r=DG?tdqqh-`=#(uU06!ks*=L7vw7K)-4BR3|$kJJp;&TtF7>yw>TMMJ$rrZU+6 z#|6k$b$t7-6zvHtG}s)d|L$li3zLt8>Z?bnXQ(|tPN01Ph8E2I-l*qdJUhYc{Nf8` z>Gp@&4*ZQoDaMAs(q^i0-(w8lxWI#c&RO*!|$h)?@j7$s68Z$)ijf=$Zo$rW82uE z;bTtE!|K%?N-lrl24h}n`;m0bL3UCEN60#B_N*x&Gu62h%Kj<=N1Siz_kCllywdJ# z(RIyYQj=!U@2bv!P@?i#6yFP{X6e7N8_1jD)@o%0x$T5z3bCE5(XAFULp$b&!0uPI zr|)ofVPRady%8vKuYq(Hy72p>QDd9!j+Ag#dUCz!qPISc>RO!iD6; zjXr^FBS;p{+6pat<8WBwp27B)6|_KEjofQ0ZGqMB!T`m$i*)Na7GeTtsY>C9>zq*f zXg=QGdtuOT=gL+M--lfFCEmY%G5}OFmI$=(W7j}2X-lDA;{8-dm7@0JF&_ej^GC#E z%{$vSWzITx?m4ddJm+3E8EzK966Qi4cJICf8Z_8_*o6Q+rH5QF``fKxou-HaHUS!`#F;ol^699Pze z^A+L_JyY<2e6`1SY9loKs?(++*!7h+Cg<-Z z#E7aKiw!Yc>5=UK>!R$*rbLGRR?*bwkKbYtJTlQFW81B z(2Cdb3e#-fRt|7}`@WOKsl!FiuNPr(w>;71@VLFUEC5)~%SFgRNA$-hVX z5KB17CL)CHFnh{DM;Pd*?d{9sG)t&JhXqoKssud*6p?B|%h7!SQlL_l_p~iRMn5y} z;)Mi~x&})ziq)qlH(OW?i$?mtgu?SxmNsk)b54L}&wc$D?|`6!z_|zhye~acr{Yph zUYPjNe%h1JM`)7TIUA}+U83m)>v5bn>h?~R00G&sHeveyP=&3^8OvnzP>hdzW4ptB z)+uFWF3E1-6_OVygT<~p(iTz!B6dJB7IhGbf`%C9O1A?HrAQS0*K{Y%tMP#%769mE z&UjdKpR6gvdI-I?XoFq-dt3cEd9sEVgQ<{|?_YThjX9m=GBnH%m$O$;Zv?HuAvxRf z4QSHGHYYs6WfL__b%uE^>~LA$gZ3paHyhBCZ@PhZSROt6;sJqGx-*ut^hA{8qYt3* z7WxI`Mabn`ZBpLjhHLW>HoqE4*5+aaaAWE2!ml$H&2rjrf)4F*3>eQ%P^D9&Z+xpL zhZ++nivt{DmT`6+nGy2el6 zHKI*LK0MDch0ngzL$7>S^bWBY`h8lQlyD*b@R8VhUYwTey(hS#W{~J& zxW}R3a0kO8vA8)H998Its2z~FBxY$On-O{H!J*o|Zom8tYNun2$*Ch(JpZ_3&)={x z;@2OGvyLl=6`#cf=Kv^Cl|e0)FmYie?kzUvVvX{N5q`6e%Il&uM%VAD>P{UUwAXfB zwK*9{uU(r|84bGX-fFmQ_oFvyyP>(gXbL^*I{qv2nGV=4ZbGN4uxuZSQXjGzV5}FF z!f`h^E^^8NsiPsxoukym(GX)gl`}sS2w5vZ9!4*=v+#~SGNYfaGjVaRm))a~w6Y z%@8lx|6>QY3X|N0_#w0T(ELaQ>Kaz^Xw?FCfAaG`shzm>cAYN$6j3liB+4%2f48tG z|0neHZ~z7oWt?yJ$uE8GGnq_G&4b;)C)O-!(>MH1%K-1)yHB;$#4`tqn5MR$OJdGZ zszDvm%$yy^>{>e3^JavykId2Vvo-i`merLt9+(SDSYu6Gn_%D(5Q-R36_SI~s^z|iYLNUli`(PAn8R%LWBCC^dRF zyrRJA;_EOEr6m@^G^BX`d-#}e#VPVFS(AJNeeytfsv`Dx;p%bfu*HQ#P>{%{BiEy- zi)f&&gPxw8`LeI~mu*s-ghYY{LkqmhJMle~P|C&gRkxuLV;Dxk;5z}3zagJKebWSy z6>&16n&O0qFod?n0hr2$bunCIso94K@|U;uV*BY6GxEm9#W!a;uGOJ)E|Q$1Wx&f# z-$ei6uPwT&{v-;-q*#4hd339N>TY&17!X_ez|!&RMvTv{Wvci@1PU;X?%%6vY`w>W zQ6Hl306{<^-jJ{xUT4;ylX3s{PS+{@;dEQqQdpV)VsaYBb6qRg3pPga?w#?JuQcov zg@QIW??HbyV5T}Ek8W4`vEB&mMn?~ETfN{Mc?5u+KlV?Y`_6Yb!$0^a=L~9{tL=)G z;L$KzufyLD>~9oS?z8)?$`96S=Rjk;5>o8ofGndtZc-H7T1SpVBDwDXzKi0@b*(@s zkgG%h9=LR4-JT4SYPy)@y9M{}K0rkEpPraKk&`8hI;lt{+!?eTtz`Uxb89S8(|oeH zFQ{O?h@?L}D?}bY(7-Q!)$yzOMBH(#*=;|8{3RTo`;^Y~36_Mx#KsmIMUpdh2z;T< z+j1b@3$nfb)xGC@9cy=aD`~Et`L9DlS#_$g))Xb=txD4UBzY*MShagbY%wLH2&35%IPdYT^aDv~d`l&yzflb+pmkH7QyqXFJRuv{bH9G_ zqcFkn9#pz)`Q?vE{F`m&ljYo%vU57PDW?Rjl+j&rd#t+zRm+Xd9!GBgXEAYze3G?5 z8AA4Pf10iA+-_kA zM%2Bcw%B@BEtw4{WRPa`qNm*xK3UIuI`vmrz>2RfhX@bE8>1LOzT%0m8p0qyDNnm} zPYK2ziAv(a3s$)jsFOL&Ea%U3JZ|5X!HR-~s7Nl}RXJCrMITe&5stC5lizVYzfQv@ zssw=^I|UstBuqD0#-WT3qI0duOGsX&)~(P@*7oU0K2`;qiZL6a6y0+UgSW-D`*Y#} z(*u3g5Z|?4U5EL+CbS)5p*E^ldM(h|`2cz>KhnmxggAr82IdB3wbLNQt1W)Z+bh0D z4eb<8Ni|O%t1B3^;d^*!&>+LZFyhFq31~#qe|Kcv6NQ3mF^TZKi2PUnkRJSO{=)z$ zm8yNiqh*i1h~sXU4`v3RmRf=!BS?cNC+OTlhGMS!y2l>lTG=CD$-k>#I^}Q5K9_D-XB}3)`!n%LzWAVDuY^zcEz~RoDA&>f30rzwoN@SHwwkALDwl5Q}L#0`iil7|9$l^ z%^@SacnmArYRY4hJ%p%r;SD%2=;EkcKo~@UNvdr#iktV{OarlCh|jYwj&+?`j*;@9 zBgr_LyO!gVn|yzd`$1G@|LHY0%AorPqlVqXOGeS`m*ta!O?&tM_~sBQoO z=Nhe#G83nR_P?kf)GCUdOhW<5*Ni;Sj7azwalUlB?ed3w?OPn?ri&w#c&&`GBP0*D zVwm-M(Z%65_)G}F8Cf*az7v%|yQwhwk<>Ksx6bwK*R7k~_~H$oLk|q98EDqiE4lN8 zshf6|6t;xko(t81Pc+$oR-`VwAhDwL(#JsmfDs8|w7=iY+GwUw9#3%0|i6~YQ zW#pIklDHGdz>nlHqotz?i)|*3vV}xOJ~e1fWTh+Tr%#u?TBic_K%Gx*Vy*Ki@vGPK z5Ra~#5t+lt`Nsk_J*p3^D!II`mp7&BSK+WzAPVkQPUU(D_71j@R6R3yBjyB7@^N!& z30bse8LUN1)f!c*$=AL*cL!}=xOkkp*&Umvxw4zIGC&b`TAv@zENP@qR%{ zfL5vvsh?8L$sH`D(6a&WU|jTWvGA_*`M|7M1>@)ZclPWZZ}W|~HY*Z7=6VBB+w$^e z2%Cb`+NksSP3t&;B1WxHt7MI1PxHDIbUq&OChF?|r}` zZddx&k|VPQwV|k`r8NcK+e%roZG$oT|BS5dz%4*GfEx%rKL4bQKU60J4~3EuKA43~ zuKD$AlymG;i>EF8LQxl^Xm5?K_Qsubl$b2Sy=m!~4J-gwsSfpJJXtCsb~<&DI$Q{5suKzM{qk*W z=-R->gpb4pxV|Gcg;=k|FMgswdLe~Sn^EPL9h-@0j!Pfd=Au8Y(u;6qC9_EkEInDX zTtV-62Z?mV$%>mg1L6h1$JcKaotF}6O>KA9=3E}_N8^1ixyo`p^gL{v7khm7`$PcG z49>>i!~B@#oq#p?ZzZs6azLr-(&pY4yBsqFlDuei1Ww8}r&IC1L1 zF{_&JP(m#|+qLC7`@tS+K%~eqPnRNsws;p{?B_-Oe|n~rO`kZd^i%R(%fTx-)s!LlsZ zHj;8HmQeem!^TLE&B;I}Iqfok9SsOsZ`ALp*WwnRh_zDbh|^Gjju zuiS7c7_ar6N?*zw9Qe)bn|$s{L-l0A1;l?hsA{crF6UxaEdpd$+IsWnn!e+1Q*O`L zNqUYwzqO5dj2XTl_#?xH9S0zDXk`!t#v7wKLzKAIk)Pj)oCVT?ZE?EJy&2NT$VC(z z&a<@_sNjkVwz`>r%fl>YDYA6tIwlNJ4Gt=UN2<=9v4c>hd#p zMoa@tr9yFO^fZNOrZ}i>Pc&Zxj>xllj&=WKb1T+`SReDVrWo`|6x>Dzv{>#XTD>;4}jlXtoMRks5hj3!CI?3 z(N^Iuzv$L053wS~A>=QwlDtI`x2Mo{d)+;^Qv^DNuRUynNhg@!sxStyqwygAJFUB-m8;>6@d1mgjvh#0MNJ9b8(wJ$KdD_8qJ|P5syTYs&&)Ej zQKg*ZZ%0p9jDHgMT+D!4$>8oW$qfc~EVw}BTndFM@H25$N=vKF31 z)C`H4uY&+#Uc-Zey4A0TL*dc8q5A1c)&{GYDR18r3CB;=_{Xy&2-SscHVP5u6ECYj z2!6#MpI3M_UIsG8fFLlwTb;TWw&h`#Kl-D(nB5i$B})yvlcLuuw+e4erjkre*_y&! zo$Czx^)slIRe+K-`4ZjrUIdzdn>(HUD%W0>PfbHbral1pduTGg2&AjF2)^p7=vBCK z_60Z`YY>Y~sY;7{#TXE%5FyCW8-%%G+oFRao&P}msKbD#JY>o<4uo`Vd{?z*A$n+P z|B;AWi9Q%Jf`V|%feeLLv$Ld9H_@4hwePZC_Vd01QssRSCFez#+{E7IVz#h*iD~C( z4pZFmLM1OECh%Q6)Wzf!)B8BWOq_Q24@iJKskuDs2lBoJrrSg`h@lfa_^DoU*!Cs3 zxgetby>3F%(YZyy%j>uJR9-5)jqTuAhCAGox@?oDE9V4iAP8>&&x$ZrbY2N?BitI1 zsIiFh_RF{Rq;};lCA{S}WkIl=aBE6Z8mXm~uk8V8srTP-O^y;Yq3c}V+wPl{7%zD? z`9Ezyaj7+MGQfxj<0$&Z$*?gmvO*SYB{wUX6SX8|$2fyBmm0#F$3K>($c`FCCPG$O7GI8D@vaq0~vnpPuqvLLseE85DtdOijpNunVXYW`5xJ`&XFC-O?md)xEQU=T#UkOqlBN zQZA)f3#FATB4m0L^}tqApUo)etNKHIIHR_V9;gxLAY9%3)y5X9j`pWOF~)UxlCGfu zrjll2ky`H9m4au5o15!bzXG(F9eCpzJt)ivpV^}|IhaN>Un6s%)Fo=ESphVt7Q|CW zG#8aW!|tBh=}m*URmT!VyW39KPqRr2o*lp6Ii=5Blf;ohX-)yX6ku;D8Zwd%2G2*J zEG#B>zW(!*okO7jc)u4aBR;RI zQt87xV6ug#lv>6wzk~kvxb5Gt2ndk>Qny+Zeb(`9-p$>Y-oi!?U{6)bvHD?u_?KjX$1=ViqEY#dXI3!G!y-ibnd)aqeuMIj51N zg%u&X8(I(|haRPM4cLrS(%Q+J@N*KS>XqI(^EJse_$t0=NK($sbcupz}|51Apk1J#@;G%d;K_ zZyq2C$3C3u4DR^rBZ$ov(fG2bAeb6Bhv&wraO&R7?$D)NZ96-5Y6!`bd*ej%!Gb z?@CCrfp3l0$$PA>&fc3R762)yFccu8%RV~F1RU;+NFr3l&9|9IdZ?GSP*z+>(jU{o z9?^c%;F$P#_sTW^cfyVD&}B(Y(7f|xwe|AxT_ZOJk})zMo_FCx239&nO^a{;OJS}L z1HGzL1M%MKy@yWpLyt>e38iQi!}QkSj>3#CTe)GS5XnzyXnUv;xtJt z5`=H2s9N%sP9Uv~xT<=_?Wdh!vz)vT&=r}k~Vb;CM``Ly<6=P0ni$Gt}P<02? z-zbnn6iqBwGWd-yZp-7=-z)wZKzy%Z!$X2)8qWrM9PTro z&eW`JjQ#?sijL2<+0D}E|G0ppjVpb{OPU@5qAsEUXoSDtce9@gOPR*fWj9m5%-{!n zThTj!{UC3C2dU_nepsDtHPSCxuoW{vGLZ4hW>JWDJA-0D9u)4cbRi3zaQ()EXcj9wtNU#5h4#K_KeG!<6!HrB(F}}*At3idx;`#xzH0D*bRGXmW`EZjm8R4 zH1wg>0rX&%;b8KL-973VpH!K4J%C4;uhJ~?r&fYfc!#7mU+`oW zu*|TYk^$8okA{AO#0mzuGe~^cgYLQA0?~|qMi1-#TXjAJeR2v!>k1U{f5SdS^j^pb z2}cIX0Mue33=NohD7Pw4?R=B^hk?ChIz2E}~04}pJz%D*F` zeMOT{t)gHpJAlo#MBkZnALykLNjI-bB>4i+#qOTnQzo?x7h(805vk`yrz^yDOU?}^ zL+{^?h!piBN+vmZaF#xzIAnRR8rfHZRJ1?4M#Vz4UR#9Ogou^}O4-6onEMUHsjI|t zYi=kj=US+6xG1odx6rt_ytrQt%s}3W?s062Li2x;vcM!O>|b~^ESkDF$tAcd2D3<( zhUecN{>F_8%s23O#VQmCg_{uOy{ck%eaS3u%6}&`wz)ql^tqY&&&=z)2H?oMlrPnz z&obG>MX;Th`P{tA$)&%c<#cV0kJ0(BB~n5oj&$az^v3`zak8>8d;faJPae1@M|Avk zjRzqS@P?Da3W#Ih`S3PX1ZoLousIm%wH0*UsJB%yhSJXp78h{kdyq9he2ZK;?9MSP zD1OGOm?Nu?iE}0u<7H!8=kkiVvzvD2-rFsy-AD#Pwf2`&8N@&_I~rjVW&)*C4jUl( zlFso%&bU&cucoNYLLyv_W^v1X=z(84v*XJ)@b?zFNe^Go<)#G^p9P1<6`c=t=1B#!WtZ#Kr0996Hf`_U~229@m zMgI#MktpBQ`UliV75eU+vj5K9ei<2m5r~V=^YKRQ6)HY#`zmYgCEb-}o#qKtOfwE81 zC4QV2U9`RFSxk*kj)^6L7RN^>N=JZsOb@chIa(~(!sS75oJQWGAzWQoo4<*2HNoK|%_ks4K7Jw5x7!C$FhWaHBdq9lodRtFX1-;D$*qrr}m>f~o^465lpMcSR zDYQ7E5dYoj5DBPxZKV&X)-h{g?!9q#Uu%XzV77EqaYC15RzB^zMaQNxza)B2>ZsU^ zfm9Z==rir_23-6P$JQ_O0=6hhdkP=mRcv%r7}ONY)#uxTy!e4*5DK33>=o zGb{lv`#+)h;!N=&fvrCO-Awe`%%>a`MOA~7G<}k(4*Q>oJfq{w8`+ftl2ERikv*IR!DTaPGNkB>I*zdE3INYhYUB9}A13&!vkv*Ytw&t6N zfJ~q+Y|O!MR8=(t56s=6)78^yZ+aE1GN(6eyGftfzy=79f!t@j z3$Flg4yueUv$|PI=B?b^b{(4W=U-IL-;D-V2pj)K^^*XKHc2~^qS$7eN=I;mcRDRN zFZoolf|uj~fIa!l`)GtQhbN;rpCV0(J|a)WHa~67gyOr0#AG6@jQ(9$cK!GD7e3 z82pQ1ncJN}-c4l6#JL$tHd@e1@?S?nM__&a`eeheU{#$PHeDy}HxJc~jw2f0Q?}Oc ze#MzF!pk0Eqj3z;MM6HZnsaw19PV2LB5v$DD^g|4a>`1UOmCuNn->$E`*Y4TC+`zJ zd(JIMk}k29r-v{{n?u&wMw(tdTya_~sRM31aZTwrfxS0VkTi&eFYQ4qZ(WH`0~e6a z358^+{%#xJ=|4NW2lURTN1Kfc`krgiMnpX@U|J`lS5f-X*!I~MrnM=-O0-rQVPb~x z*KS12=X|H*LrhamR#P2NYH)TUe%{@rqsue>T=YIZrjy0mu=LKq+ztu!J=wTY+B2Ag zw_y<0wUSY?|FRy3yPAijOAM6t0rJ$PhwAi@q7r4Ja>eOQ23u2q!iKCij`#?o!@w8U zAT2$(kS@#V6<*%!zltRD*&Ml%oTA^}8+HJh=8^0E^~Z94?NPCSm*XhWh8D2vyCDnI z8jg9sv1=cO30#wrJGJc=nZesrhqeV!2tXI1!oy(tml>n|xI+M*^+!EbRL1!;k2;Wv z_u#09lZ~%eea(StN}sJ93uqrqC(2uU;9}@ zylwgk&uA_6`1I@7wb>xS7!Y;jH+~>M6~?78bFvb0a~Hq=m*vWtFmdt&{U2R=Gvq&p z>W4c>p~{ZkIjo$agdL{uo|~CKK>ZDu7T7Y4_X#!ZPa|a}bRg$0gSImx0|_Z8?GBs{ zfnPFKgLd{424x0Q!-mLOC#7Qc=*-i!c>ohNVR)n^FOSk-NU)u<$#eyHr6cMNYW zc1Qw5_tSMgo|nIXhi-I|n!LRi!(HvjFW?`ddv~#p#x^M6p}lU->(xWuZZnDZTQk(= z)96C;RSId3PA5@H8p)2jIhS#v3dV~10P(aLQ}?aZy#@OtJ@IE;M^@tnHXd_B+LH%* ze833uu}FBns^;9g?)6DuRINjr48UWdHDh%cgLAC3JIK7ew+_r_1Gp{4YG#zwgNZY4 zt!qN-Ka<#Wn({OD!eCA+!c|C@0RFM**839g0C%3`wfK(Z+t~BX(R+8@PId{Q$d#P$ z25PA<3TfP(v*aC(Cmq-@pGcwLY2a1Ki^2ZCkGx#IEp7n_A+*4Vr;O$2F2$P)Y`y2fb~OV$J8Rnftuf zLia6TU6zs=j~+fqV29agtr4fNR!|hU$IlkL?;90Eh+EX>v-yJ%vHS!tYV}0CAyHxuIC>X_8jhB@hfLR>kkpi@g zx`jzv!&l0g*kVW|>VEP+ZfKEgMm@Ss^GWVR+q&|!wOd)Zk*Z$*J=?DquYITkq{oBJ ztZzv;kWEct-?wP%_NYGUXpCi^Mh)$IJN_9i-3;RdCT~~RC8PPOg~LmQ+?v(pmLrIS zH3M&$HVo_RPjp`5A7KuWl^g9qUw`lhx=rfU@XchxI0KiX-H;R4kUVxS-l{d{2f!p{ z$yr*CxQ{Ij4&!jM)CiB580b0b-30*JYE*vLTFDGR@2;AlC$6PbW5O-$e~R}K@KRR# z@G6nPuKn!M{wBoq^<*6GTp;$M!~v1~)i&#n!0E*?uwI6I*~+rN%!M83L(&oE<^5M& z{wx2$;&g|WH^%3Z*fCZO2zx!3`LDxv8{h>eyrsC7!4e=jSWY*y4cl+`+nZR$IZIXF8z*Vc}gc{$Hj?h0}(!g<5E&aYo5Bj@%P z`&sIU-*ok9mHeJplpY=2P<>E1- z?5Ur@roPwifD;lBt6@QbjrHsPm4~KG2DCX8L0><~rplWdXj8JFRoj15TYFhS7ZQ?}AZ$X~tsy*4Lt`wK{Q1!+!Z z*i!1aL)_x69PNYKo1p63`||5%20r)|d6H{KSq18NU&sX$z`K>hM9C_pG{$T1@bSZ) zg&UnlWghBrE?hr0xE+Ungxp}%gA$kMA|PKsy?j2uO~@B=jB zN)_%uDp^i?34DXmRxf}?g-^XqpBoCh{K2R9jPa_)NHw}ry|w!^mIs02OJCCx()xu2KzqMY~RCl<|4JY%iy4Msoo)8{2w)q%b5@~z>c}k7{;Wq_7t+|X$G|^zYjB5rwCjp~B|M^Q; z5Lmtg{dRp=o^5QSw^u$ku037)LNMSZ4N-`nFbHdq=T2gB0eYCTGb@v(W=sEm+#@M= zo?UO70BIW&gK}YP-2W%EguQU7T1D+7aOo}n$Xb-*s6oEa=6=^`% zQkg%C320m1(X{Ui$&&$(3Iluohj!1Ll^3r1f~YXnUOu8JzXEa2o&7Tld3l51s=W;V z-j&xSPj+C127cDN5a9QK26oA>=lyJDT+>=l(Lg`IOtTsJO*?SzZ$NtPH_*u+iJ#rx z?Lh@U)LgI87(fZvsd#;h@zmC&ChwjP1Ror*y1u);^(4)_BTrX;*Kr7mM$#(X*t&Hy z0-fm%;}n14K>0fxhfJM;a2pv%FRu2xp;S%ENytQTLoA#HAWAYn$im>F2M z-m2Z~?FV}iBVo0zL0MC3>{Vn$<8sEGiSY1@E=clr8=-$`DoMHXkj+d7QLU|SObDb~ zLUXHc)kecsry>C0NYqcvRQ`KWOG1JO96XedH!wK@ z?Ie|luAqp(bEHW_utwNn>i-W#F$vg~8l<7;QKLee-Oo?xkIrY_@ZnB^bq%GF@-hMM zLB^ccgE(g92TkP_y&u-K7SfdZbw#5JS0|2&AgY;Z`sy{2VI2r}kHuLcv)V}dD>ir& zSwc7N2#Kq2O?OH0p%N4i&!+?PXQuw<{G5fX#Ibt zI6esv;$&)H@pHX2hdds6qjNy-{Kx78JOdsguO$FFV+BoSej z;yD;VeRNNxSM)f7_zdZCl2~V>#KRLrxxex|v_N{%(#-4j99PKs?gX40KGhouF0Vd> zxSE5zQWcvH+1GR*G|K4NKEA)d-ev*$yb*f#u~U1`O$^p5RFv}4njC@zmTvCSZ07DK zw}Ls5wz(2Mt5Wy+3+~Xg%bwrCoex7FC>sQ!>$s9wlwL%tA;b%$=ogs>pf2aJJ^xN? z_S#ZEeOf0{Z&j#(3W6FO#IU(NrkmY6>4tnqfjM@rTBalmUJ$F>Gg+weD_?`Q`F=0d zT;R%Ivsvm~>v;_J9lu@u2{H4yzv3{@$;yN`KVU2A+nmq<|1-?tMyLy3);}Cj>NW9M z=M@G>^^Rv7EL45dIj$@ZEY14ac=lk^=yW)$KIZ!V@zSvW;!=MLwm8JrEa3jWvNDnj z1qlrv`||S(%|?mz#+5h5kA8}>P}Tm*hje-IKa0;2LPc3jmhz5q?0@_WbvZWrO-0uq z{nb8|#4Bbn5%g8ApuBj64Lt6r)IECRwB5p}H;Ppt4YtvZWFqVi^p%fdR|C!9e!t)g zawYo7&5e~czYx`4E_b~_Ue_yG$hg0ZbV}FJ_!GYBNMOb+hHGJ=w6Uig`oZ7W_<+&9 zWxkEbG3&-fm&$nbU@D`^B|50bd(?}zu52sS@P^zd9hzI35Co(bVl<>%B_$(4&$N0X{+dFc>m=%G?+~QN@cY~ znTC`uM@zerTCLVO^MVkC9>}5QIad^~xUTw;0`~C;Envwqy=rx#y(>bLnj5^`*%J|i zH=d2V14YBF)IiS8lQhmdqx9~PSnDLZ?_d@~W(1=f@h@#&jHIGF!~xt^&0U6rr??2lb38=z%0C z&g6Utly-2vhXWW8wp3N}2oeB`w2AySPu5Eez9Em5Gxz$)mX8;-x*K~`2L3c(V@uel z#aP{N1-#gH;LJuxJ8QPk)e%CQyND|FoRPWw%deyVg45w=yx_mKZlD#u2(AfMofEF| z|KV{ZEd(2`L0p+^W5ejgL&~Adwv=vSwUY-^X?lpkmR;Yo6{nRtegBG0F_}vXAb1oZ zN3NTb0#`H+9A2d;Rd&~NwQdKX z!XoXM9_euJ@lw&u?fvfI2vJ^v$NP8Rik-yHS#DCust_4IG-NOzuW_6FV!EH{kD*qW?GVTo7w@71g%C+9>xz8t zy&wmbOh1Et{N=jYeTW#+^EYH-z%H?>Zfm950e_QyiZS z6>24+{U7<0J)tAZ)ZbvDEqATc>w6mJjtrunP0lSC#He<TsXUM?sw@8@WQdc^#I%{WmTw%rH57V9?rM6&j>w>T9) zdCt1nU$#)ZM_R_8&{W5M9$GZZeJvdaN;4X9lWIPq1*`U_3f@M|pBoY}Z{4ONep!a< zpo`|HvvwQ>msOLkvE~r~=>ip#IjM}|lge6)c8y$cZutlA7tXh||IF_6*($i|s{oLk z&{uQmtp2ua0VFF3W6}(!Jt3KF~X|*{o*KDMaruQu`BP+W^Tw4NyPuH$RrFVb` z(13>Mi{=$4r--y=|14OQA+IT0p46NFShMK}4^NSj5Nd1o?HXx($tbevUM!Yw;bW2UD_-WGH2 zQ%URSodoCV&5A7Y&v7OO99tEKjgJM*%rp#L?%8_Hx0LKKCH{pfcCfXHJu;-F?C_^; z@wz1wd8JyFc5#AYaEk7u>^@e^|7*=PRr2qKl{yk7&N# z^)YLY}&gBWa!pk1|EG<>)Gy?=S~38SZ@?ai1+O3hbn?Y7Jo78+QYv0?RqBCN5J~derwBC!KllqE zkOZ19yXVhr(!aBloOO4=03m0=oi08RUexAUd(M>QM-bH|Cb$?08~PI+#jM)nk(Ni= z-bnmipZb99>!I2&zC63XZ$B17xXI$5H(SjB&VKQ@O~VgbqOS7p(zWR8-W$c3QD=-! z7)*XI&+bqy&Wm97?<>r1#myZ9x&QaF>p5<*_KN|9XTxXuZK$_zH}AWhEGQFrI-9ZA=!o_Lm|q@fb$C(hD%SsA~W=tjB_+sYHk zI0^OqqbWp}Mm^d#E{8p)R|KM?+Ut=w%2hE-KOw?aYigpK2>>5pCMP{6 zGe>%13cy*5&Cxmy2}hSO$8^#8%)a_W7Wc9iyKTZnrF7vYR}~ zZDpJPcvdUQT!sG-kHb@~Wk}(~=zKWFpUd3XB z>Sy2+&FB{usEWJ+Z7h|sWN%rvp9P6a{Mj&Qb*YG}>a_?=CrW0^-+qnyR+`3~Hln$8 zyC-JO{1S+K+uauq zRqM1ThuigXfI~?9(0RQ0b-p3vx+ly$ESP4h%!hUL(=cjN-c)|4rclPL z6}kW=!2(jbY-YqxnM^8#7|Zh0@&5c#{-w7(>1HEIT(>Jd-zUK7DF2t2W1O-NSKTj0 zx^*-{&MF7+8[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

JZn~mFalu%d+am691t;ND?*RDwr!b4}$7jqHo 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

K7KV3uvYxkr=o8s3$pEBAjy zU3WCq|Nn2#EHWbcF!;@W%5yd?AD+7ekezH*jXU;ukD#PJjy~f2g!}ksVNQ*AL9KTn z@Ww7hf&S^C98+sS$>zh-(x~CzLbSb$X(e3CABOHv*Zb4skU_FD;*+YEye0ODz;pbtt*@B>X1Uc29W&f&I5wf;sBMUoi|4;2= z)65{@V>|{C!=L0d&Z0Os3Wll)IO^v(fAgwugxyL6S0~O>G($Ji;)&_kl-iKrXg7~_ z^I_caW%hGz-e^+28II>q(nB>S?5k*QUm~?Evbndw&Pxk`zJQEa-eh~?IEiaMbB{_l z;Z*QY;`<9({sN1;>U6%p)aOqMCNmQdvCs3sj%&)YIwzt&D?%iohEX6eA~kS|s2>=& z$)x^Pv@+<9Mg@SCEnf|)9c1s8S2Jg-cpUGVgH(YYtkR==utxe-1Ht^6H%eRpVLD;< z9Gl!?bq&2?Fa}lxf#5?u&|QOjB@#>1@n0p#5D%=#89P*BAsxfpOHlt<^4r-kwQRU0 z39@f-b2>e9y{cep-Xt%PD*}~d4OBdQUX4r-^Z<7&B3`=}0^B4E^~^^^2Fu zf|(`%Eg1StTeCn;tAp&Lvds?N)?&SC1+b%mzquMU*5Fmp4}oV1NRJ-50%}4=fLgNf zC|+J`=x?Xd`z&7vc6!WMD`Tos;&2HVv6p*drYIy=t0z8du#(V8$m{A(R#EJ|yU}!5 zy*upFvA+syeL%OcYYuEg3;xJZEBF0PmV9u6fE`kA0eb)>3~SoLc$du?W7k&hRpew{ z8Azyeim({nELyd0x3fla+h_{?%1MAd&TV2zcoKM(H3F3r&?*r%2e64^I~Uarq(`Pk zPNc^wCz3-d#iQ4KZRYTTeY6;^z!?NW)bH=Fu!)1_<}~hrKCMNC%@Yr}*J5$W zLL+j>ePv2h;_#Ti>G&BuePig3?Z$Mb|8eP2z(>no)qn6gIM|iCeYldB!3I?t>A(!A zl=R{b>0pbJm*7Ruv`lL=*lvWs^y2x#x-=jLgK`_wSxFT@05fP~^(riI_I!>0hi-O3 z)-en9YTuw7jd!D!$vztrV%?Grb?WDuor8B+prtYflTi-{R;a%8yPDX??C4gNlg`W- zcGshnoQR|+Sp-$ZuKb%cZGoi0qMPvf^XGT(-c4~u*Ej>$`fk7O@Y%!^EPR4+Qk$Gm zsLWAJJ6x7-@mqujb$(loGDFZ__wMPA;|U(#F*19eDHuzW+-G%+2*T1d9?`L6QW1tv z)wwZ&CgBR`7#kWJr(1)hQG{1+d1~$8j zC>a{wA4uY40t@B)GI;;Hoj9Ma!tt~-9+!V47*}8I?s71)T`OX-HbAE9?-T0&`=ZZy zGbUGYr1MiztG5u9<0-%QMejLLQBe$bD_{14b?=J-MPCbIge6deVbkMfM5fqJ;Cm0P z4KXlf7Or6;jfR=25AegGvW!6;UR7^o+dJH#4h}iBlT{B?3nl6NvGydiQvJn=1GXo* zZ~5PYuUpcJ(GA>P&R)c;Tx8n`vwx(k?RtFhyc|#li4<5b zx=TlGx^#8^eBNjH?-+xMrcnAS|M|%?sUvz* zrfhiL#|PwuZhPIA(4MXBV?0v2hp9?Q9VdGo=5<(i&D%jkf@-GHV{yNK9vlE=JwJBm zT$W96&pn?UG*}m>2q4_;mH$<;uoSlz(z3z|WB%XM(NLS;TZ+5|)d8!oVysi6w%+qm z9A{L%8MYj$bmtD!kAv93B3-dK#vqK=#h}>4Oc{T4l#@>%^n40j7&0XZFsp z`m%yDlKEZSj{>OCX_`+0 zzC77_CYYC(r-{3ld&_D5X3#F4Yd6KMsG+}1VqRrLKmp2gR?$0nl=u-O0^A14lx+a$ zaa%(<(EazsXDm}7CJenR`e`F!*^fMhN)2DIB|b>#i>@C;Ej*S6;Fs@!;joLH z?_#HK!B=QD6d_RN$hI^DIf<^(XVuhiH4lY@Wq4jC1F*)!{bup)mD)hm5Y^$!Tee$g zrc(V>Em-0=Zz8Tnj_;8~kkEByui-~qw^v&4o*i{6ni2v{(5bwNDi*}9(voW{@12(Fkanz+QOyN=Wm9v=>^D*cCBi4xeF@_W?5z#{9{3cP=MTsSjr+e zt-GQqWysUb`^`@9j)R2m@|qwzq(E(?4#(rY4rZ`Hi001s%cng96h*O#GUF&`1R0lN z;UWV0<`k2wCen&y81X?h>iywPpy7$iBu-abRIpLe#) zy@*7J3`iM8@q#@ILyyn)=|#Mo$dHo&^{<++;+tme^c?^p4~ug2ApjpRIX|hV>am5{ zm|&4u;;otdp0GUyRzMGIPL|sO(=fnphyJepCtT_J2&JD5DOmWe(UgC>WIy{VvmQn<_FGV$}E`2>g87qtv|7wR|gX zFn;3XS*u@NxTivz{$&ZaVaW%i;U_f~9;2_vr62p+_LhMS?!A0QD_mb86FG6vQm!CA zXxk8QB|Id?IU8a}H>;wVu(TK^e9-i=w3=8i|xKEcswqyTC{w zC>xM57`80J$NjIZf2$8P+``SD9sggnQy@2q{!DP~V80@yU(-IFC8#{|G268hx44{- zx$nYX#IC&cV8>q_Ef8z@i<_^ssiJ63p^F2^Om<`rS6IC_);89;?BcLoV?@;GgOUh% zr0Ce#*m@<$sTSH6Fu}Fq<+Pk(oqLbrZU&+2tP*fG+(Sa7@Z;CM5?#wR=;d0bYw@5{bjr5gxe$+>I!G=H08$}&GjT-a*^<7zivm9JO~D%%tB8HUTYD+cmn45hR^I(IXQsG4NZdCq0)NbqG~U? z0{NtuLf^{O9~;ZQCb*^WmLMxbM2YPQ<9{vbaL6T9iTGhd{~|a5H|jW%O=pBEoy5U3 zH-Ix2d+lLxlZZ=IfgXj++3mr}Dktk}egij9I&N!NBclF)QrgHI1z`C0x=7Ml>EV3F zO}?<*sEqg{+_Z=tP9W{@Lh4%aG44as8ydE%_>qr^_Cs&A_zsI=IMN10+ork4brn!E zlMdU>R3|5dH*b1+z`5!3F;=8m>!{!9E+5na-%t?Z&;_~Qzu+~FH{d&kg|+m^Y>5$K z0}3wvYc2uovwrLX!fDBmwMdq)atwfc%3!a}iHlLuk$uVEuR+A`FT;i> zA>0E#E%G)~{G5uVRTrl){ndw@|DKt8Sx5fLX%E2~<5BhUx&d1XA{D{aNFT=!#`O7D zh&YhY@z@QHKajx&H~13v!xIxDp7!()>-OZ-*1?7S9{eF{Qux2%>)wMuEM+g%T(BgK zNH76hV3h5lcy8_7e9XVTiw`)YX(Qb_PS`>1L2 zOHom~+lp)Szs3QU3eHo*n(5lHiK11-MCYyCltsgC2#QjK(L*jvIKqdp+de_^iQ6KD zZJ#5l8mOkbxYosM+N>Ge)u{JZj4zLq9#AR4Bg;Zg2mn1R*_83gLUeDC7I^a=xtjlC z-|Saci#j-Z6w>zSicOkh(Eyh2=p=Qd^B=VKtV-8&denGGyY|$Fn>JIjY2Dbx2EaW0 z&8b9@!0$R+9jAIWB<=Avj|_R#8~t3ZzbeP&)tk+-P~m2Ri88?;QUf_5N45t>lb-f( zpAQ|tyFZyDBLXlBBaFW`LtXEdwNUGniuuGzC-d_!@6>gM?X}Q{?Fk7A-maos-Cg|C zeYms6H&7Y5Lq(m>!7;$$a0Pabms4%}Ria{K=7pni#-!cVK)0`9+FS2)qu{k2O~h!u zq!(l0$0t@zZ83@>)}qI_^%C&5uM|$g4hUY=t!`UY2{eHz3^{%#RPiga<^N1kPFheha4O6lZ@` z&4O}mQ&AKCkj_o1F6(3?4vJc;C(P-q z>qpoRa4dof;Y-pajaMOrfflCn~YSVL&N1@jhZFpq`itX)oi;7rp#iaFaiI^eU&t|(c?XP-w zLu#B=5=-YpQ6Y#hGnr5bv|WZ9tQWr(lHEG84*_~O)NHZaG>kphIppyWN?TX7~1(bcOFY7pVFwIHM&#p+}QM&IHavG;GtPQzNsMU=FYJM;Y z1>E(~M^hFnZq-3HgHVzgPv6&{^fs>a|IjP`6e4xZSd{f|JTSX##U{#4Rk@NaL1v~B z%MK(h6psSPrq)Q$+HSnA383_0(QBp#n*6{$B4t&$+p87`sh}VjgF4CJ*pPUuSm8&~ zZA95Y)i)sP?=~A~c7ClmBC&MH^F?DoY~sUFUrJ!|4+TcQfR>ufTUa>V%ok2K)!ZoJ zKO(&7&4sriV8vH_*VmB{hpfNc(6$4cLK1ZltRi zqGHafH`}kKV7*Jpt)6x+aI&bx>)W#Jv)(LLvTl=tgzV!PeMq;MtKq z%wJSr^G7sXJ?lgoE2*k_76{8-9!)n(1?A-Az*d+{D?ZU&4JjHOU<*O#N%JvUvIvYB zO4R0S6da(xzg?o;8G&wD7Th@zNAhadN2Ql9b#p@{Ynu;k($a?AxVLc>9F>LAm)mlg zpyv@jd!h8FADc0x8Z32Jx-3Wp1=WoIs2i6Ogjc1q>)q@My&{ytN~fhnMOggT1<4&T zpkQBIlAGJE)sMGWiM~g+MoOH@MPBr=1Epkm__|nxL2H|%pchJiV@_t5Hf*7$R3X?~ zJD=Qo8oy~j;WjBv(qm+80Z~0=~rfP`A#0Ib7O_px)@u-iiwSv^~)q!L{6w8Xx z(4qYPaZ_$J9p>4sr;UZSe*7w_8Y9v-j3v_+7m4mW8zhMi-zH$+ihO0ZEd7aH5JFsJ zv$YF>T zz^Yeh@Mjx_aW71uM2n z8+e>PCSs_i-EN%>HtMGDym+pp8+sjY5CvJf;pv^!NOPn0v4JDtXzlFYE-spbLwjgw z=z;_R)|H~Pe-eu&*|7x*fwF6edx)AqY=`+z4`FW-cTNN@ZKW&Goqo6vnB4X4XRfnJ z+2K&fkj&?VOhh<1J&~T4VX*(#47$AnN*SP_yVB^h!<^8kgum*ur3PIj0wU<2RVK-5 zXM=N|WDgtiV=N(7Z6FDqN=U z>bQpZAEN|7ddB27^9U-Ovg`O}`HOZO{HTgC8&>J|_z7(ZG zE1oRKhOfW`qswPo7V5!bivnh{5r4Xe2{!SazgTV(voVW6;Ix8+-1Y~T}6m;g~RfjM0VSpI$ZrLjpuft^FiHuIim~tq7hr zwBJ3fWDYFdQ2@?ip*0-om%CdSvjxw>VC(o z6%8yq@igtNjV?EO`pqE`!j+c(*i?@n5xVDLj`g^MZ-VIy#A6mG9dy*v#XC4C;FC%o zi;gt_>hK;nrS)*Rh=qz?vvn0seQ61BO7OHTEHI4PeFQCL5~tyF3A$wO!+(c#hHVS( zl??9{1c=^?Uu&y6mS5 zj;^m?RjOQT53bX@X~7#bXswu(l5|v`L9jv(y_MyAjfC!}72iD)TCuJQ%U(NsdvmbT z_vgff0?&Vt24uxi^O4K+#}{mI*-Y@iUb&I`bT&MZ)83JJa6$+fPqP)~Ru6;WJywz$JpQ23%a?V_pV#h_c@BO|u}YG>{0>e|u2t%eW8DZ(x4 zsA63iXJ^qI^1=cb*{kO9s>WB&;X&sSX;*6wT@TD&KzM%3yqPIB8x-QY|h39`r zn^PY2T8UZl;S$WAtZ9+>n|CQe&*Cf%e$mar-fU^9Sz4sZnbJ|>!vx8okZ|&Z7{)IG zb2}>56hl^jI0`=u$%+w2kfxiR#lKLZ2oNGtmUeUOcLmkjobl-_1|fJX`gA zZj8VAUZE1}FZz%&x}n|O!KdkjWI5uDZ=X`+zGvg?C~F$_;G8d=^+O6{jLweZd zH&4*=ha+9lbvbx%+2&_^T1PJ*!M7g3YY+NDa518$!R8`>3ixK}HZ-Zdo;SHLPv+&N zO*Ri#wI`7tNj7C^cURAyN@ z4Pr8ymXcJ?dIQ9hrY}Uudn(C+Ec}Jx<^w1HS2Z8@1L#WwjB4BL+*2%j<6w?(nZVO7 z62QGCFujNyljeCUW%|U?*a1C1Jhv=fk))rMg|xr2 zXNK;H$>h9Jt|-r8S=UaapRO(+kvh%_+egLFoZO-M8LjOQosD|?pG$o`)Ee~q1fa`> zgHd>6W24<`?#F6zUSjko5g~!6ZyCHc{W1z6G@sth0&6 z+Pj!)rAS)VX+3w_NDYVz>yc zLHchBq;Qa9`_($4>Q+a@t+;fdqtepdPgL!rc?J2W%}0JTk~7LKE~M4fUKfmRK|z6N zdX?8O30GHrpTQB%E7=le^OxkQg$Q8pvNK%G?qmTcd4AxiB6ONN@_WhoN5-A6(MIzh5^0772lRP*+oAt14jT00SnU7 zGfpGus2^wp@5J@$HGN6_{rd(QN>|Ey3S~~fVK8M$L7*fEagtpx^d66CNaEpC-<D#ix|LMYY%U4LTlz$+lQA69%uEz_C;fM6j`KA2cbowDakf+`2XsG4OnPf zRaFJnT8cuCd4MXqu8bfcz%)UDwV{FI4AU9_>Io1?6@&*oZu=F<(^tF+VMt9XC59X1mhgP zu2iaSrqxh;B8!H|9=3FeGBIM&jPR06Bv)+UVvCqHP?drJN{^*30=`tGqTiy4K<3vi zM~Vi=k_lSDcOIqGCe|{S&f?#B-)vJyzEH3?HnryOjz99RH0%{Ec8|VOHSih|Gk@z< z?i0%dIJ?PoAIdZbvZa3a?rWwOW;=AhHe=%Z8tTd-cBsBvJSR;FB}xP){clYSO4+|R zwb&4LsuLRiTXomTJZq{`zwH&In~k&GgM7PXCwV9^=M@s9>SMU>;7^EimpX*(@xsbW z`TRjhc!<65y?21V0VsJCWoj9vj2eAay)^xfmx4@yWYaaQ!?bS{D=8{9vuse(SX>phU%u<2` z(f@?39>7r;*L#6{191b5q~Av%yd&(UT%YDxK~aK@iZ3F7@-Z#Bd9aEmImgQ#JoaoI zK09wbXO_~Df9tXCb-#-v+3iO}a*RFQ5(Axyn@<0@o*w8+a4SCip~_*y=4X2Dr`flO z840*U@~1Jlp^JSFIs^p3w2vEp(ciW56nMs!-CN^48xplV^>ac;Q`c|+cn*I~j$7zQ zf;Gqw;(4ybyWTYg1zQ#9W4~9BUDSs;|D%K<8#iN8L=8y3(i7;9T>S$wm4nW&z_(|6 zbD3U@lIvA{_r&+ziyGQ_p`EyuU?iVFiON*sMY@_ z5#_W6kJg@=#Emcy*J7vbi4$O+`*nS=i)Jc zKc&r+p>*Xs+sKKMCxs(VxbPTzt6DXwlejWZP*B^)5~m+ONmaZt1lyKlm&p+$a;xgE zbB3^1J-W@RK68CmFww&;$+oy{tSC_0ux^J9{)I`MN0+l?eq@Zc&rkv=lqtktRY=G9h&MG=QgkX8ho-729(P!10l92f;={3wAg3ih3)|Bc| z#tnq9@w1klLB^r&|vQqzeOpumBnL%W; z0}eb$Qb3?hx8<6u)W+!CTz6aB6%cP=3%ckq*<23{(LXn3mqekUZ&^>Zj6UH2+qRq* zG)dQ{Ho&jgw|S|RlgNn(YM2^8rt1B6olo@hBNfBduh0LnrNd8wi3glRV1^t4vh1KB z>3Sm)IO;B~AVoph=58l_!`5^jWJ6I|(B7*WN>U0|4Rk}>v@DfUi3me#UFbKh^J ztB5izEq-A6-;`dmjGhuB{9U8O)55U_=UN?@z1nQJBQCCz*Xcy*ngjwQa!)ngGdbiN zBmPu#IIBI3s3ABzKaN|JJ}295Bz+U%v4w2So}V|lV0q=_LaQqNLm|jh_4n0W1(S%A z@ zOLdhwQGjtIYwCI6($%8A;_b(0ufFiEr(-lI%$u@Y?`sY@3(PI|`Lu$l zfLNE7#(-#aAb=5t>_6~?u7t8F(Ld1NVXXZ@EP;X-mAd z*40TZ`Efwo+eBJlCMUG{9`0x~*^6pgIy}*Iien3?b_S3g=+XxG&M(Hd@Lk{wZs020 zq}+i)PnB>1jtu~cLg{ebrfX%*6VZG45d(2(C7^U{L^_+qAzXyZwE_MP&yu`JN(wXY z#I>lH62%h#dq6GdP{3;qJJ0<_ZWeqPHNKy55@`ReNB8>7H7ERV<=t{gs|*AU;7U_I z(tN#hiE>bB+#2M*6szl;oSgjH*Z_L74+E>eHpiyC?;?-TtK7!ke||X4+J&I?Zqfyi z`}yZK)4r?_jbCp6)zI#zlI*SbrdbBPLcT#qZ6WLZmQOxPr>6>udH`O51$3b`@o3TNe zY%V4H2c=Cax4w!GPi@{P4-j!u0b{c9EB!T}9`azsXN}tpjmtMlWZ4p#(uaVPSxq7F z+J65nDf|Uz1T#6|?RQV#K79ZL4NizG_otm!i%k>M$Rpqr1y?#@U{!(WL&!RNCU9_p zv=Dv`0HpKm1lgA4UX?oJ{q;M<^z28*Iz}opGxK4>OR!Ey9>DST@xlMforQY~u7nzn z^UM%?IF21+D@#@QxrzQ7VZtAFZJjCq*ziq^{Q61#i)#?xH#9l_?hHS8KSXE>s;d)$ zPYsy!er<0vCn|vd_ODG8ez+49X=|3#)*i|%AOZOSP5QIRPw|=P(fcC_e$$4M0jP_9 zq;8We?DLzl_Vd_}D*i=nw$>W2+Cy)9%*cA!uh!R+n#HL+?fLedJqz@nCI5q@n6bj*)t~ zd?Cf$oDi5p#7bWlj(-krD0(A&6)Hl*OdX>l^6Wvp{dIJosXy6wU^wJUz1i8>dGqGY z_X^;6N3|blu=@UH1xyf!)XDc3!-3K!tjC2xA@CqN5U!CGFfls`0vzE|7>}C2GK4U>HZ*J3Ou)AQarI^Qt#T^&PUQ*RYqGBbx9g&=Xa4vwh)IYxlQGZ~Lb$YZ@ zeDOx<`G!QIpG8rQ0tY8w>gU432+)5TP3G55cDvEw;u*h*Fs?eRa3*8$_5xl2CFu~N zPOsiTdUqP{KWxCw@KxVqtrqd)8n=Jy+HUSOCZ?Ayr_J;*_wLL11@0*cNWM}y)Wh<+ z;tb{3?9VpfOmVO0U}8$Ujz=C4AQSFU-!bFHKn-lqDagPO0`{s=jkq7^EYCnHLFeNu(SHHcY%DQUr)F+l$GxJdMY33rYB=?5?Pgjy zpkx0Yb-p8W#fo@(9%o3T7S>KaO8ik*Cc0#e5Q<&CMH2Du=>w2D0Cc4w8@J1%LL=&g zAxt`fp#|HNDs-I4`3Kznn3xzKfW^hb+xYd%%+>WhNPyS@LbSEf7en7;0Zn$GLpEGn zow@^m%5npc^A#SpkfZ>ibZfB5_X5`fITs2n|AEY&Y}e2liO_D4G=A++vyN5!L=|#A zOh6$Qgd8lS@(8`LPc#xjwA4$yj^9FYS^Yc|)dZ1%9OM8AXL+Hcqv~x{V>$})eR>%p zx7UL4+_$E3r@vjDC<}k2s3anS1np7V>yC=jAJIofLfv_B9fFf>iYD%BwZ^8T<!(&LSoB`957}D9#8SOPrcK**m*W>SGV)w3JIC+w_z{ zdV1JF0&B#6B5WeG*iF!S^SHm9M+iTn0#q1XZNkP-w)0}PXL6zS(jKYym~9BN9&Iaw z8CFPZ7(yCRNIKLjO~1NsebVbwjLA++JYUXE=f`BSaeIDWSH_nXvFkDP^pdeHBv|qH zH}}2!!(KUeA+Ne93@CVk;!EQgnCad=&jW=LsQN)phrw93@-68-NQ$rFqH9W05+&fM zK#9+gfK*nouzpEX%@;r(HCcO}g4hk$>YKRQL{Kk*aTtPvqgmy}S zojw$gG-*Ec(Z_#Hx`jLSt^f-uAsG8(#i~!4^7~OMr!PCaOMFwE*=g{M?2V;u2Rr37 zEX0WTqDfn-hyMiM`3FmRfOTi1cAm2GzcJrjve%}7!6eE4a0g!DTVaE;0Z4KZceZpp zh>im~j?`$?fB@R^)>WID?Wv({Nz7eprv*Iey9<%*O5XwtOm?sNuH5!r2#nKW8#4Am z_Rfs6qnnSKuCLQb#%Ha^E9C=K_``H|a#Ky?w8=kHBzt<%%2cI~lLs^tzP>hoq%ZgQYnw>&t#z(@wFYR*_bGFWEAg(}z9`G(<<&+5NdHmB2Zkd1Ce^ zjqf8Ktek>|=bp55U;|`(xpUJ@rJ?ArZoUF4hfOMF;FZ`FyCt`0+KENSaoznCYnpRA zS_s}#%T}IY>t|3NDF%F?C0qD@Tg30@js1WC=C|-wB_HBaPA3E-wP4~dFl~ap+!A!$ zIC~&tWo9z{PqQl~xjo>~9RhIe0L=F=edx#dc=tQ9$MS_^zF9B03a9JIqz+g$9|es* za~)H5-RmBibqahD;zpd9dHusnm>#hFEKIi2adGXd!96=FA)Hvr=RKx@2vV((z z{KGpyZaY2sk0}2XGOVe~TZe#pbqz)ttu!l;w{~9bQG+vR@2N=%!R7m z4ro|AIkU9Zh6)ieF)>?71=7UQhIU5eHX?59O@F<2djUh(>xLhmp@C077!lWPk&oWB z6}x{11yB^&`*UG1s&}_8a&LjbVC2Jbv0!7UBak6!vIcGByUuypWPr&UQuTT#otMa< z(>mFn5GM|gUhD5svK$13bpX8&aBXR^J(Hk&OczHM)eWG`e4t1EYxIxKuNXngu(&vK z80KOlaYnl<94!qd@z#~c-*Ftr;ZSzJ)@A3fHIYT@t6oDxoG5A8MIuOxkF{0Zq*g=C zlk&es{*hGjA_(g+1EcySKe(PhW`BagD9XeWC{t`suu^jF-=jTvna@E&|E7#9d^zmy z-QDSC1QXpPhyJx>(^m#!+=fC&9cWtd1q@PHyJdWw;KC}YU+YalOzbs_hWSJGH~vK5 z^q&nB|7u`8Gnri^=m;RF@&ILCiIvLpHuJN^Y-zaZc{hFKXXicpxul6SBQ8}{7kZ#0 zSSc#ZUj065`S+0Yy;A=7bwb}3UBZ>+3Kl>#ayYwKo;HkwT{6*vjyfQ|R$PuL&#F>? zL`^d@C%-=a}8`yDX$~-|J?$l=TjUPLhQjGw6{zClUP{)D1d-5$ypSIr4b97o74uW^8Mc zs=3u2HMAg766A^cN~i!Lr3lmGM7;DEII_pb$H5o@l8^~OSP`%kT-f!&y}wA_=~`~b zTTE^hV7jmKm8TsWNij0xK1HyOMIR^k zLxvshe24SHup;fEzOO0HN#+gND3ONU*DLaM;=K3F$h(Cb7S`7=sE3!&O&q#K)yL;3 zj1Ya|2RtuaqhAJwGnqXNTj$$rII{wD#wPK=8fF#8H*WxqludssKQ>`AGwm{KcddAB zjlZ0yMeXbl(rm{h97Gs*--mRTmOrE+8J%c&>(lZlW@|3!eY;F@!W=;$cKIQdu@#%u zMMDFCHAHRP?no#B2*Wy(K4v*TKq41O=g+s-ftjZofI}PfcULw_#lafHLSOG4DU}S7 zzL8xXp!oyB5Wo)lUBrq}`L`NgU>u)7e4C^{sVm5{^XOZP(yMmAw>eSDe1`D3T-E6hXN^WSr;xe@`Wf3toC1=_EO>1JE{IO+NrXZZHoZoDO+OaPmta6~)X zx;)io5m~_eETFldpeGNs`P_*f^SM}YO_JpS89(d$kltMKGQ9Q%=Qw9WX$TQ!f3knK zdB24!tzUExD4m(1FYsu@Zh(POe~*c2HPV-?3xrZJ0_X8X%-{WCK~W9bB2cd~3L*#rdv_M`vw!w_3>F-H}NxxP6R z$$gedsj&PIR2e&G=SN_cCy5{km*qd*{RdE|XhYi$1d80sYL%=GEFKW`SYz&|>L?-EdAvp%e@k`>J_BGTp4a%9Oh^DPN@kt=^lpv@+# zHq+{NjprVVy6&mLf7U#rg}Vm?Yk|_dZx$;n+pY>MtFGQhPk=PJ3&t%dC};xeX3yZ-yBYn_tvSF zF8TfO{pl&2YX^=T7e|C!TGa&TYC)Wx_K8%=UNeNB!@x?4zNRYW7G!{Os?`+rQxk`T z=JlElzpJw2GgZ>h8toCv9^#>)k)e2tEg0b8O*`}^8#aaVel?LqjiaW&+H3DL+#(b; z^6M+$4Hg0G{8md{8p2BvKJLI8U1Sv^zRjb(4;=b7QAAGn!E&;yvh(3u&JQn#-VMK! z!i1LtgK**i*Ywle1)yYl3Tn=rWI%?mJkDnLa>Ie-AuOFP0J=yU(bCY|19k zQ@=_NE$7g7c|>U^V;``xI`E(!|6N#iDyF=obdfCRFJoEL)&~nO zUwuVQrck*~CqzXQbpBCdbiBfP{TAQYgHxp`Ar50g%;D;W#O!F>X_2^r32mMRd(JOrxMM>L4 zn0>u708PJ?78SIVCA~Q@&~&DESMv9t>^=%D_EVNBe_05|M}Uzmqz|P{b`1K`iw}U9 zL5x=6I^mygy>@K3XM@r0R)1k9B#F3BM|k5n zf@nAShX7}@ujDAHN?|;11cB0Nz(jmG2H3V$3UEX0CzV`!STzax^yLc}lG8UzMJ4kI z1__-CEv}+Hyq=`nWUChu@KUF_KWa`f{wy0vl7{LfP_f1&7KPyDOohzXXxn=~w|>-A z_4#uC)Vm8st^+#yVL~4-Y?&5s;_K*FBhdrfRrwo9ocx9NUBV>&1q^Hbw&ol=^h+ti zuiYd~cBxgvZ%IRac&Vv<{!?>7B(0cDleg7LzrOpl(ppW^vN#_ef!X2K?L{6ht)nW_ zO`fs{xYd>w6r^27`L4>vRd``kDn;X7(3dW5Hv$!9`f!t1fZ=@*+4{}JG%_neoiCLG z1X%DyQ3<*Y0Mj^g`lA&QV7sWa>H}-B8Oh!8!#leG=CZ_VG0L*&ijSxmfHg#Ap9)eV zg-e(4@FMhJ4x)<5Rr_6Ih^cxMzv`%o0FA(t3Z@? zAMEdDzQYS^EBpi!RGjX-6Jgio$S+`)!F&Lo9Fx97+D3@?B%KNXy?6wa_);Ha!xIJ| z0N;0-xPh9RV?3V?`dd5!K85K9Y{=8XuW@@D_bgGYXj|R>{B58FZlDVX!|6{aM&YHx>nlHc*5Fk zLz&+XF~-Jem<6Nbt}~YI2J9NgB!Q9P8QaSGTZp!(x>G0bT;HHk)wf9Py_(W*nfuYc z2(ckF^)n5|e?x%&X&eQY9SBa$LITL_mN|OSN@k z$p-u{|7n)wZa8{cg9UHw&CFABG^FK2&vEeEjEF zB|)K%cVyqrU&}F;_pPFUTf%DN!y_lX#>j#-Tmvd@P<7dXj#2MN!`qtfC_DRCz)6-h zGeZr^^_SvEvbgTI-JdK~_I$sJAjM^jjXAxl1)nmR6TS-eWRq)AV@MxJcxik0E_Fc( z=ArRi^Gy=sgub;A1G0Bv@18#pi9O9o+)n~4sz|i=L}G}&E~`MJm|xkv{K;SuH}+w(86=CL3jrOWY1?~jTMTcxYapJHjL;&!Gmb1W zf|Y;ZE%T(;h0X{h1uYjZQz#~2>Ch(qmj>HN+*lV9O}i+?=_Q zE>M2lqo!MX#2v`!s8jwKoTX_q4tKP*^NUwpMSxj!sz#9cR_2zKKA6(qK4;Q;d|?jsck5FuZYEe~%LDY|UrG zjE!e1;5?0`U1bP#<+*!5N3H(>O{|)>_A>y2v%W1aD+3Hn?EiYMTVUo|S^mcPjZ=HZ z^ybW@>XadC5?r<6e%|AA9ZSl6O$i%D8$1xImMf}HEN#4Ng7%7xjZe~G8Q`N(sVNGh z=f6Ln<`+J)@&3uBIL~5x)BuFiwFO_tW4RHq5@o^LU1DNw)0I8MaioTCV4&2E)z)pF zslN5jPJ?w&qUfWA*^|*ZXScs!hRTeE;-t$UzZgLZil%z2 zZ5+X@CM#;XwzB^u=$tC>MDrPQ-c*&FWcJxW9L!f8#VS#D3)tEu&Q|yVm89+(;OGA! zOco;KB86hxE@m4`JMVjJtnrcvK6WuJag*0Ao@{Int~K@LH^M zwm>gxkVaip^b*M0z~{#^ylHFk5IqKpYS*&c|L#^wh&5v{R!NGk#6rvCS*(yf z3%pAKqUHA4!#c$@p4+blykhUbpYIt`^8C|oLW0}KL>J007Wnj9tt?LW$$Aj0Nq>{5 z5kqHA|HEI70GxlgJvRVWfTp0F4M%@`f}qlKTh3-@ldWYWUfJZkOkbNc#v4dZhkrps zA!SX@>Ge*955D|82zVyt5`q|2ze`sWY2Mtqkkk2H9wf5yH2V18B(?{l5Bc-&OuMVx z?6|mXHMAEh(MsLSOQV` zKbo#Q9Ln_#*C}KPSz9pevdf+|+U>GMmXLkV&LF!8mF&w{vS;77k*y)iD9JJy`!<+i z!Z6JIUe&MbI@eWyoOASj@Atg-b3gZU-=3RM?}U;Yu?QJyTf5K8KLpZT(yN^FB z59VHu^fDIZ4tVi}Umeh?nLd=jN$(Vus`Z_&I5QW@MC`KJg{7)3fuuNr8NUiQUoG^T5)mh!B=&T(Kj5U@4TuB zF>c^hw1=s&}u|mi<=(aZ5xopid!GvS_3-}2ANGAYu1#pqQe|#F@dOh-=!0687 z%L;D&Tc@-e>n!FQxnk$v6#^WAI6m8A7gJuLzza>2 zC|f2`K|p@Rc_7w%8`@)KT-NfVUq*phSJ&z}ByiHg{U^Wj2G%{Tlw?P|cW9RTftI`}^nH`&YQM6v3iQ2-Tc@dF} zZvF+Ddu2(%dY1}WndNqW$RMkrU@|jcR1g@f%!L|^y+iWV)Kxe}*oY}#eVW9AWh0Fy_2nPFV5K_Ua}iYGzVtSIfGKp+2QZ_M*q1=6+qBC8*e%RYqn+=K~9 z=jCe@$i1@N0k8b9IGSwYq5ejbedG4>2u%(`Jz9yY&Haup^Vpm+;nKMl6MxlK#$#`zg9^1H$8^!8K_wTjA ztozu86UnOguezWdE8MJO{jg`_k$wOgK)2f9y*JW?K=4HCnPrYP&3yBz(+lq(Cwud& z-!tayORNKAP0uG$usw2~eO<0V=Yh(0N|x*ov1S|hIp6xeXaUv zKsO`RHGli!rHeKWh1RP-ZmgpMBmIdCRnFuq(oIdE3wrs3Lfze)j=`RuQzYo{VCQDK zvy()$=-k#mq+g$M3n&qx*fkNw!`aT8A3^&z0;p>OY3wo_geHRd=5c$_Z4OkcPsLkK z|34nC@!_dVhOpqG52I}HR<3#PGPJQ`jwv19Ls^bEPMnyHb3SCJgP%X{i!t4qKOu7Q%@F)k0)i_r zbs8Q3HH}xD;Ei#{?$EIVH!X36;rS_cyb)yL|A z)u?Fo90MnB#1>%GG$1r#ZxHifukNX-DHvMI{l#)%4{*yP{?5N=oz7!xpnw-+X`TzR zEP3jRc{!d_rS58aJDD3fhN0TKp}Q@5@4tQgN-!6@RJXyVHYq)IuI^@I%uJU4>P(X5 zQU|IIq(zM=CQ|H*Idh3B{`WVCaeQD8z+b=P)vvsD3>%v@`1pXl;>=3$&@KU;C3F7ezKE;-6HP zv(P8))kbZ0=XoxuG>3nPOea&EoB7UJpTL_RQ1U%k2~j-cK(S zYy2_~D0Zw&KHnvJgiQ9q<*Vi9vBWxdcq59=pi5spICQuc^ru#Jt>@KR0c%8Sn13Re zWzTMd!eSW>M$xJS8PmmAxD;gag$W^FQtjaeH#stK>FcnQ7T6oPQ3~1)Ko<#u{FO4y z@b}sH$6vbHVFnm?l!P&DEC=X$$J+PAGna>lhacTqz_r+yNiCOR3PdHc>Qx^!&(BEF zXTJ-XPj9Bdyb^|7<%$D;Ymg_$9Bp{f)}fG_E83hL3sR%|_OHi-S9kur@GMl?(ZsK` zk2al;0p8D=P`X+@{>uIU;8*d(I>!pX`V>|)nqj}CV{gD7#Abk!EJ(2hEEe7Z*NZBL;SbYQ?L2j#%0Gv~N)@4Z|9>{0*sFnI5h9io_+P5}X53Jj@d`jd zGmzDF621Cmss5)Ppcq6Zx~ z?($Re>2+v>@1O1&0shrPj-E^U+hUS&e=%#H)w&NSdKF`Y zmD&z5Q|@Lcx^6(Hn`&b<{)vlmn4^pZ?_64HsK6*yzG`iHi3U%k1)L&AD3ngr`r=H%nUJd3tPaRC?^( ze-+$f!7qQjtWtT@|-$poHq^cAo?i86#wY zCaz~u^%C*@Ic6Qd%sY(C{fP{`OV*%kV&I(%xl9_mqD|fA-@Na8*kIuPPC00q=VMhg zC&e7tYj~T&3^~2^^xVHLX&)FauIEG*we&82-8_}~gsq5AY46)z6MI~3qmhvmQx7bg zmaB`(bVMu(7LU+%cvAjN7nj$F>sIzwNzf<|$q$hDe~aV^Xci#h^xT}hV`&MMrN;(H zg6yq*S;-_@xubwCYXw>`-_eI3T0$2>u-QeGvn@^;t;5aFj$%UGVba*uh(ByOTg21d!B1lYRLoX)O;E$fyG&zY~4%J`m?<-{aib zsqM-+$KR)94+f4bG=gElH`7L5irgHd&jdtsj@C_%cPTvWCpk+8I)b3nq3ieV4UO9x z4r9kH)QP)*XnpaeW?@g3Vho(3H}`W`x~SaduDy?}Dfri;{0EG!6Q8~?ueYW-?ouU6s$JZ z5|-Va4qrN;%)xH~W-Q2@Rs@?VLH|0R=`L_!P zGi9J&e99^mn*5b&U}jdkpv1^+UW~T;D8OpmqP`mc2c%20!(6Be~$iWA}PJU zOA<4BcM4L#{1vu1b(%_=zYpX^Cw90-jo@|Sa;i5xdq*@e}NJ>T(%}>s?FKCBY^r=$-ZZq7JP+q0_@H&yQ_Bb@R=98w}6Fr z1@%%|+Qnn=0@46=^mVhr4ifL6dC z0Q01jJyg?1%hdH({NuW5kO=6d4-ywL9ZM>!XZSp$gYhuTezEN8+y#00y3^IbgSF*cjBEd^HNK3QiYMQID{*K zcq3CNE-d&?MZ!R0TmGD#CUy~M9L!J>$~=d2!KaVS3d(;wSNkvK-eVf1t;CJh$u0T+nOZJ~gQuHJsq66E zIj-b`LV|F>k2HSBf5N688zDs>+Ju3Xa~DMkCD4%JWh1Aa(pVZ4&b32Ow;fkE08y08 z7?4T1b@CsLZWRj*rekBP{PvurWn@&$P~KZoldqzSV#`awtW91rJiMPLK}2ANPr(fg zc8ljt_rHy9At3w4Ozbb=OwO7-^{E1?vr4@D~s}W!7 z&SHM0crI~rN@Ny*9iXcEIFKt~;yD~G_>BAY__e~sdg_RK;I1etFV6!Q8zg?(eplwr zxB=ViSrltb_u0I6rLdScVtd&fEl?PYTvnq6@sXhJrZ+W%&8(VF3N9zW7M^i)KgMU_ zapOh#1Q7+S&(fB`aqJR6Kic3I%`BKI0(_b0N^$IC1Bx2JRzPgyAn{y!5%2Q{Xw4A= zY=2&SEG*QebdDwr_-y~RU`kE`&$3l4>*H5Xmc*D8vic&Ow_D!uxB!jP-d26CzwU$( z%W~Z5ZC0yKH;#OKIPxj{7ahF&L{7G7e~#4eF7{T5u~!MqgpgFhHtTVfF}DI57-wgp zH>FV=2HBtZ*1ZE@TPV5qh`~^0&PFBJ7^=Wr&e=N&Wz3IA1+QE`P0BE@E zYVYn!)!f2wqWim~+A(^!PLBl#^cjGr9=iCHCnEQezhE<6YMKVwB;?nQj3?puZYuGW zaooL#I1ql=xtQc+av8tCO%uFtb6rWzBlzoAN^q#D?^u;Vub5s=+EY&0ZXXNro($ct z^WP;_D5s!@jRtFS6?|ECH+9$1&Hz^P?rw+%K^Z$3=#uw$8`D#`O{FVxzeS(rK=5SL z0E$#aBJD=T}TfQy}w|wI2Myvw-axJFm7HMkUt0CB9QW z!uSQDap<|$qf_fsUhkmr*I0W>Do%RN?Z)kIqL;1=jh)%q!L8(i{v>_bhpTyaeL1R6 zav1)}n$VF7kfI@!Y^hcw_VfwE+)etNXdE@XSo9Icv*C zaxr0R1V{V+|Bo7EKmOj^s|G~`Xh8EnyJ*t@uPHA$b6Mlp&=~wI-cEx7iuD^B$$NZL z6zu$`6aiECD}+@IR_sB{-d37(^Ko-ISg&aB2)wZodwhKJy4|CdN>?I0?Dbq%dTs-> z9=x0a+gPP`-Ts6WA5BJ%6m-^^jf)K5c(J#sS>)j_l3+y+x@SZVwg)x3%|&RCU#B=R z?qMV%r)ypdjL?&i@ydCGbFNZtf*o3x41`3WgCy_79VEygrt;i+H=7FDqHh0KuAkGfEa#zd_N6}g2`9C zxxTOVi|6UwrsEri6eo{tFSgO@`pCc;48f^2SESr#=YOa7ak&dd)1o`wFT>leG#~<;U-tk}r?8;SA>r z{BrScc|B!l!;}Ci2j()fbB7BK5*k3K$R^8A3;f;s5#~#KYYw~n!7$oXmgBtRThKPC z`k`=_1}IHfKjuQZL-TeCuMmBGh`+Yn5^;+gLA`4_l3YyO$`$zd6i|^s7E<{PtQmvr z-aK;+tSfTG{TmtMLE}>m`%jdQt0Fy0dB6G=T-#m7M?bd|vO{84E$m?KtH>a^lE4T^`0@Ipr9h zA>tqik13w=OL3hsk{!;6ltBHZ)VP1weys9Tz^>>63yaX8AP%tH9e#Fc+ks7f|4EM( zhA`Sj7E2Q{2^_rFefg~rixCY4J9>1iE^K40U~;LstS%8OgZQkxM*#DX?mcmM`5j*| zrCSTYWpuU8YGkD1)s4e7eSpPuCw|RyX7HQ-8eCGtusdK5UOzq7bjBU4sq^7=iI1-< zNu*uN82q4W)w^V5G%8CT8Ch~(by)5#nIlmLiszlpESZckss z3|O|eg6wb*K=M=M^Ow9gKwC4g3J#Se-Kvm#>f(mKt>7& zIUG!%%qD#WJYjYowq&(F1 zk-ryKSA}8A^IG)<%_SNcZcTQZ>AryqFeF#e$V?pR%-vi=4=r5u4*>QoUV z$}{8F%*bgfOUEcYU>Fd|vcm8&E z_D(JHr#EPwTf(rzr=2G!Tc$QxvF!sMA-vE&8n!~6l8QRY=;-!QXCnl2_*T9x2#5f2 z6*j3i%~}{EG)wjT*4eH8fOK~})WsNrpp?s>+0P2cqdPH`e*A;F9sgO>{pYWH()g4H z#t756SE1gg{|4!-%$Ukc_9K^qj}28 z!vh3UlxdcaIyZkX9GzV)2oWZ&e82ot&LL$2grw=0-AZ24Q^5uW&GNLjiJ29Ci?pf+10gUpoG>%& zz7`s}(liK23=`}hdyFpl-2RM|d|j*VP>I}3&-%*I$u@gEf9p@lqeUN*e6|^o*>nq# zaVR0;w-icZn0j6-SYn4!r^DV3r=-~-!Srpn_+P#qmpG8h>hK!1c)uSQP&3;5)mI>{ zmR&$4Pf&#I!6j|9{m+YE#El~n=KEG>;3)mxMU|JB|gk^D7 z|DDg`73s1QvnhPurxJu-v> zR{3Fpi@HloNw*S!j48GZVOuXJA?d%gWE36|GWyX>HvQL*nQ)-cEJ^)J>oUa%E|Il` zQaSH(s1RF76k*Zwneo|ToV|GA=+WT1Z(Fr+>o8m)<$8v?_AM6Rumtp8U02xR5PQDt ze~Qj7OueA8Zjox#J}S6ee$squ6Z7RoqHF_5B@cW?uY0)-GlFZb@YmI?ca*S`MBCmg zFMOVWEB+yl`kQwZDF^~-sm z=`j}X{_fIbNed(}_?MZSEe;|VV2>c)%P4d(>2h9wJ!4(5b6u)fnt+blgW(!=BAVFt zZe@c9C#tX&qEjLsK=cZL`Q`>;JGZO836ZNF1u6jZoIO3BzymQTdapf>-0-N8yPM8!GQ8yKT!V(>}ciz?;Xyra02a%|V)d$r2%l`K}b z0EVIXk>E0Ow4;aR*Z^k!Qs-X9f775=5IkjU+)PU;&HRd3LUAP}6>u)7Non{MsOA-{ z4^3u4)-B%fY^LaLVYPSwD{sbM`2#C&`~f@Q3CnsyrAsj~qsC>Z#-(8{r>(My@%*Kb zO`eRf6HMO}=pwGZQ;1Y-`R|soSxd1~`Ta9(=ltO^&40#iSGtVxvT=r`UneIyR8&;J zRxoP!cN9~N9r+8@Odp)?;DGCM#%@4;3tiwAI|xPS&WXz}g05-HTMwQ$YMscR+P&jr zp4zr=47rh{hW)Yb&CqA3T_Op>#d}|hq;it8s>VU`o)=jHbLoNneng;hv*V-eL!qM& z2!_!?#wV&&IS$NA@3)VS(M>i>T#sta}yh_pYC5^fw$} z>mE?k`z2X8nx=@_RZZ04<$OzD*vJwss9%2YQbazV`pxN2!-{!_os+QAqb46VXzsbm zwVfG@+KV-xOrO&_nVkU7c(3v^PVG7c67$wkTb%A5LTtcB4+@YvaAbIVU099Tc(l1m z?zlAsw`JFSXMx+t97Hphw}nGEP_NCOR2SwCb(eo&CyHm;Qz}M#`}bzA-g4G`F%^iglYi z`QeH8>J7qB#0#61Y2E^c96eeSf7ZmLgu)46J7!qQW=c?UDFZAIn%s)+T_BuqBH^qN zRE}slLxE`D)*y`Ur>8V)_lyJs9eh8)h=jNo29BhaHu9Y^%q-DmE9aXAxdwqG%eLS; zrpRzLX88lHWSAFWfjdNR5sr29_Y8uN-oWO&Dsxre#>s!AprDG$xz**)*(t2~+Os(Z zdr#IWUWAV6&Gp0);OnKQZ(L@q{kXt?dq2yg)ppv&(TCmB*T5?RJ4*)+af5-L<|4fD zLQM{Ok}jAa3>8WWd0u_t^j<8p0~HGtrmo_9w$&|t%NzRq3?vS5>+JFq@Rw`v~E^Yu#r=f6me7&>u=Tw|5 zgP?J+kpGh_8L{7;WbQKZd%?=R;70<`9jfVQ+v(1V9Y3c2*zysK*jkKwWKovv!VNe# z5a(G3Y-6h`8v6I6lUzC2HJ=$i-S0O2O?VFp@@kpite2FgA>+yG__Y#wT3Q;gHRQu( zjWnHOCw*6#p9dx8Egi$=k2@$>hp;>hd0STY@s*@pqcX6xSZjDzjrN{Hyk1|HQC&(J zURW*6;TJbo#PoC)ZF|gUQoS#A#0b_57cf6i6}+}9{E`7R5K%qb$xEpC4?Zy* z%dVQ~QcokdcGSH@sTUzVLDUO-7S9iGj}9-%Khn~4J~P`na%0xPyB0%{Q@G6@*>Kk9 z)$s>1caD~?IVmwQ83rrRE19|-ssAyHiG+dEPwz_fEYb%8iZ^MN*7Ss$s8rxIMFY>< zxNdV$M4=A)A(lwItyr3aQ)1BwW})hW`_3$KBDUMz1Uh?xG(sjtAL2Af9I*X$KG5o6 zJHu#s753w~6!zS_OnJ(S!74lyyVn6~h(;p^bjrh+bmUCtVxG@E976BQ)6LI%v5u9q zJZKj-r~AF5!kXz;iQZQYf(}8MHzO4 zQe{HLK`Rj%Zg$_y-<#{t2@GYt`qTJ#6xmy^k9c~N9DAymGc-<%zDU+P^P-8uk6saR zPIvwG)wg=_nk3RX@os=V-yFmyp+|3J(`P!CZ?{wLcX89vz~cwhO8*=(cH=9=kLKpC zg4Iwj)-L;0B|$1@pJ*fz&0t}n*u0Lo@yLzCd*3n{ravThL)ug_vtClpCkmkE=<{DU zbrH>FDy4=6&n7=v8i0pwUa6jND0nDu;=O4bFl!y~5qkh{LjdG#G}?`avatm#??aBX zyoo4mfS)O`)@9@3VRK-?oK$;o_`~YnHc|q5K@JPOg*?z2^2kt<@2gyW zlIgq6(r0fkCJ+rALGqrq*KK5FwC3d8k{-zKoJd9HsSKg9@dK33IbG72^Br~JrN4d+ zRMiDKhy_#J>^8?$KBey1e|W7SZvHgt%&EgopY5osk#KpsndXw2vz?Jvo!s%gw?Y|8 zW;!cRGj;s68NcH6Nb9b4h|lu0#l>$Rhk!oIw=nf$Os^g*PMWg`o0RjPiFXG3LYglf z)U>_6ah`bJ+?puy4qa=HBc7K#AC3hd>Aw8h+1citVy(J1M+xZYTf*kJ|MqV19~eER z(Q!Gz%q*y}v9XzE?n>bo|1}<1IoUTklU_bB-J6SFu!FDs%aCTU0wJVyjo_4;zcq#4 zKj%xcZ%lK^UslLQ-?VhJNGF8GE{{2KQ}4@#=+&0R0p!*ejG!2>203IB9bL{HJh6-{ zIUI}gIb26}JfD8$m9U*c2MpwK2N*8ck%P;?q7N6IR^?DbfuMc3TTZ5pRgY1Sz%Q^q zXctoprzHBU^=k9;3s@L9mNnDY8piv!#yX<37&n`EOA`^`!7ui;V=9d(jTtga08DNg zwbLx&(c1AVrHl!06DV|+s7FS5rElWoyye5LwB+29p~RVqx7enB7oc16Fh)zTn<)K* zx?NL|!PczcB9snlfj~(OXNni<*;FFTpy%)Unz$5PLXD#Z9#GWce}ykQ)t2o^M_=aZ z(`96^F{RjUeswkghSFiBz=liyV0oapxWr1-;`8<3^NtJNALLxvp!jp=R-y^;I7@@i zrKPt4{oQEv6~76k24n!U#%Z^?f_$#F%kny<9R>0f-8mhNZWrO$$)CksFWg^7GWc&0 zzt>Dre+a3Y=Zdk4e_EtetH+%ZnQJ>0bhsI|jXumSxAeAojXjud>zh1e0&EO1KunwT zD3E3P;8&JgN53Q1Tv;Uy#xiprX-fDJ1gnP+@jCaOu%`8IdYJL>2n9?)Jq- zqeN})*h;O*_0w3c>T0|W2Jo$l!!;{D)+j}p{k|ktLxEc?!I-D0X_~RLfzmH>Eww1+ zg2k4&WgZkSTF#jdN|j@`TS4K!SL(+FryV&xgeNGxsR`#<(no z$JP6j z)`+Lvw%rXA5pX78tsr>K@dUz^FhwSk5rnZ@3P%=!RKt^{zsSUB07m9-c6NrylKayh zcQGf22jv$VWu)ZkIln-8j=CWcRWBR`Y(yb(5gC+UTv?1H9b~YN1eQb6m?&^x>b~s= z-^Y@?ElxlN0~k8@gkLk%U%T>8x;B@s)f8pcX|NrD6R*er`Z~|V?#Crn7grio%%dn+ zawrW+#y+u!; zD+WR)MpETfvHwRl#P?V#x3BtodJUc%7Za2h%R&gNt1rIp(F(~-x47?V{#Z*Ra7rD9bYpISTmhbY%7o0>AD=DRD6OesJrlLzZb zwdLIL>iBxnU|e;b$=gB1x2O)#vS`RNV4=%Xy5HKc{$pd6b3fy&?_xi;;kqp{`~vKEFCymx@l(zMaXnh8@pb+R|G+X;jf0`%vNEcGB+O6 zqA^=NvW0Ptd}}PU5|wY8p}ed9aP8E$7+u63FaKjooQ&?aG$AwCnb;$>-&}8veX;({ zW8c{GwT=#Jhh$%q=l#}h^)SVjoN2}{5elOtsek|Tkw-Vv&$YqfgZ=&e#`XE59#Xz6 z^1rWmAAl!Y|9U`;Fs~54;}N#FnB`cH0Yvq9GhPYvIh5K85n`J;Ke1yVAt7OlGSN@- zp+IQi{8@EJa`!iiFNWgH&O`LRc-6-f~3wDv^&Jnj}=OAvEzOhI23l{Z)sV-iNx0pM3(E7$b^5D6j4h~4`qO!$PDDF z8o!**uGoy#2)sC$p?&^Rbalh|+_tue{r&wku+;Nl)*imicb;Pf-Cgkmv1624%9ijd z!LT(b7(!9;?V1ysHF_2LyAyp^K4}qqh(n~9K8qSusVu|^k@GY}F1(d{T;SYR3e*9Y z0#7Y1`zIz!Kf(}=V8%0ufCKjZW%7dc9oNH^YjW_`+^ph@y)T2mzrVur;7Zbfh_p!8 zG8}iq#D8A4kI(*DVi?Ak0Ee`k%nOBx(_K>+N$Cp zLK%toy?t^#U$wf_$xhEQEE=;rARg7enWj1u9o^}Mt5EVWrRH1Ix~%(~(_Jy@ zeX*zJgcRiNmR>|*rv7w~C+DT;?d|Q28eD?L#|=^kmehi_V%#}nIf57hr3%gEeMHWv zjZn4N$nZlUR#r260Sr%hLiA0(1Nk8xJ-vveq}TAiTG#yHyy@YShv5;P9x(orfrE$d zqm#-++A2cLE~=`%y)7-GDxEMX(MAL?EXLvy_XQb|epCNVP|pqBoeWE}Mgl9(SPxFh zf7I7K&l&dq9HCl))(}U5Sg)?Ac{|_KvS;iZ$X~n=bPLej?o}ybA*cN5&eDH)+*LGs z>0^n9Vd-w&14%RMljyx%JFj6e@UsE6-ilS~&3s#@l5hsTIcN4?|BfuZpl;Y+YoKkp z*L)cdO$~pcWVYkfQa}dr;q9EJoqaQQcNto%UUYJwyv=3E>P7U%z9P}r)w-E9*nN+7 zwwcs&)DdX^uwC8xjC-J3S8tt@gMytZdFIfJxToRbJj(X(cH>BtR=4=v7wES)(*7H*2)6*hHMQDQ~^~B$Odd3LF z^BqKGVU?+CHkOcwf)N5fTmCpB2;!ugZt#iez@F%H(x_pbyHr!!I9bT(I3^cO_S`Uz zj_^GTDVtlNlUd2!;cCGyqJQsjN}Su!(U~oCV3_TsA#9Ft{`>sB%oy9Msyh1n>1qu( z%B;KM-hR=CQndVL`n^jz+tQF?*=~Bo+Oieifvf0UD+VR)1<0CFNfO)`DTU;~)V$Ao1t;$-Ww_BsX_#oCDjdbjuGhx=E9%+70hK)r<9V5bf? zM>DWQ6#D{p{^+j{l9KFIV>9;}#z|~{;vT)hEo{hg@bK<;aZ5kz*Xo!99CEL;B&4C3 z63f@XE@@Fj^OOdb=O;sfT4eTdyVpz69r`k!l`oD=;I!s{|0Ni&iG_L zDj6}iv<%zd_c;bpR9l^$xNL^rw}j@|rsEs9NP}nL6=iwLf8p7~XtV~{hiFGi}U3(Mhvn*s7Rk*lky@C7zI+pKI%lOrL7_pn*KP}@aa z2UJ}jfJw!l%bO1uGyp2A58$Gw?}#Ja0{z3jQA35tI$sIqa0)^+-R~lAsmShh6}8Gw zK2lX2)_GcV{gi*}@15QEYC=y-e&t*UNVN1=`qm7Lr<$k0YR|-m#Evguew^$~A>sJc z{A}BaI=vm@gJ(xr9}{;6v&(_=0slVr`_JB%6lDlcQzew$!AHDiXyBT0e+Uno`cgZ% zCqv8Fkwpr)HAV5$HQ!qAYem`Q#Xfr%Q;vUItFj8NPLZD?uKY=)iXnu|?vBO=b zweE~C9o6wn&$~=t5OU`p99G=_M{0CGsp9DOw{JAdNSJj%K&D=ahrZ|>0x^q%p9PMf zQXVu*RcU|# zmWc9;ufps_tBo4G!>p>idxkC}^0_apU^|7)*CSXFo%c?)Y?KPQEUtN!4fH=i>LT$5 zhEIJq#9{M@keMSrBx2emIW-t8byQ3|H#IdhS=>&zFunC7nq|AORsQFrK@a1#0ZP8U zlFwz%nq@kgI%kK)PP%Y#8x}GTW;2AWR~W*_9Uj)}m4qD&uv<5lckgvW2`wNG$g^23 z_d7Tonu1A1dL?2P75f5ob#pcUfvU>tPU(9jPX)--%38WwLG6(VWai%7DS7$S;w)R^ zsrJTZVN#jkev`<^%+|*&{1>x3Z<=R<)?RQCqz}Vk`ZDFgD@x>(yL{=i3>lK{(y)@L zcE8b6>qpOZ{#J#_Of2zPVmF`}@Ob>*&(r{SvBJo}S&AOHfRsi5YJNhzLQvzKFg?CA zH|Dpbu3ftZbY_5`EUWf^mYQ=*mb{*}g4r0~Il}w97$sSiu-5Q;wPuM((Olg_B*f<1 z%DNt$CNIIr_u%t>0k1WVx~(fVW?FnQ5%%Tndw~jvUl_hfLhlL7kRDb(8~Q$rB2j^` zV;u)nbO1?19z=r7LXJd9TSA8{DXPBZ414cI)IvzpCgBlOs~f#;{u1HCRXI^xn>65x zdUBoVyQ~kY&Xt3kW(h1aHdi@Z0I795Iy0vWEjE?29urprM zUyS87xuZvFamydGT&5G0_cJEFE|c$$)_kYiD@DUQLdt6x?hz`OOjb$0qfzXCTDvRs zz=GMf))4ewqLPx2fcVME6&+jFxo{mia|+ilIyA~%x{3{R>>RIdUnfB2zlPCfVR*ql zD^xx%=hjD+8?u4KoHNFw`(uybZ=S7dr8_{%wZYQ2X9bPPu;!jY^w!Wy4% zE_A33<{D%bmT#v%m$m~g_+#HOr1gz3l1m8%E}jjZ1M~5)$y9D<6n)#)^R~WdA=yrZ z{I*(he&uMy!Q)#|!CcYr2dvI>U3^i|2J@c$q*p%QWb%9O{&`Jc1N#+$0ODOR`HJek zI$|eoX9=mRX6W?k6fPXa0Qb%hy)WHG)$s3Ys~DaS%fvEo=+_$N8J0dR9}RhMJELx= zsVujcH$`=+jE(QFT5(G%eyB$K2E#4Gp&xR^+q(>&-7VM!IM6zO~SaIB^$u>oGf*W_<9yKKI}b^=a_DvY&z z=U;WSY7ew}maAH@t)_KEVq_e~=b2-gRbP%HsxT_53}chJJHt?+q7K>&1tPaX9}ahd z3>XK>orl+Ge%Xr?xXGtY0_6%5VW~~~%T$yz1pzbw|C$8)V=x0&(J%r*VF57kEqG4n zaZD%lrI;?zYzd2qbp2d7@0^a!)hQdYslmw#(d3J(fs}K%rTz;*2MnGsKRP0`yRV>xZ zH7Osq5woc^Jg!36F5w0S>u>+cdsjv%MQZ@J{_obArS>5DC1VB$DzRqKZ_jC^PZUlM zW^`fo#jYCBPRDIezSwFp`rzoLA9Q$+wwhJ*Cl&2nbD&spsD2&tf{yeol#u+lyl`9x zIaw$P3i%Ky^Gkj1xCyuF2Q99!z`H70b&?=u`+zxeyi;Gh^RWCMqTd7Wv+6 zj@C_NP<&DTdG)Z-I`fmJ_i4A2P#2CQtLg{2-@BYp$*y2zqbcras@D^--N+w^4cv!3 zxyf`m9JoteTOdL=KVi9D0 z(iAs|r$C(p1zy2*&~`X|y}-4;JXXmQs~&r-2&f)^%ZuoAE4f7j7H&nY2j8g|@FXbr zBaz?}Mu0mCKz%@4Y4Il5NTg}05QSOFM==1PeCWMiq{CaBE~)1BJeok|v$+os)MkX} zbw((*%u8iRdLKHrH|N~?zD_tgJp8K}S6Wwy`p>Q)thGFti4spG_Hpmz=#DGLknxRg z+DByu*tJt|>rd`g2DQVwUqYBeyHy7P~_4u;2 zvI_TY4L~Ss7z1C0;BgfCaKL3v2Zznvd{8pCX~1?k4r_-Ur3BmBeNd>mdB^eH2N>}49v5IhhI(#Q6S@A$eY-J zA$H^b1Nhnz_6mGh_~716BgUL!n#|=&gR+W-hW;h1H=d|iB_Cbg+iLM(tzaZUwlUo;~AQYu_d5K(Qu6;@``x4@d2`%-pP7Ki}gO zF|&8$bEtkoDXr_`bY{)0kRf%5r@)z+kuqU z3E)*rLzH<(CH(gMur@OXEOTzHpC7Y8<-Z9OynN#5zCBB%+|q~&+0oTpTz zlcU3{RWee+Pm9D4iN%0vxrPP@m7ve4rvR7}sfBg8bm*tf%N06_S zhFJ4et>ycqV3W5E7Mbl+s|57JP*mGf%d=&Wx9Y6&Gz6w^Ud^i+Z>XqeLtxlYY=-3N zO&`%IjZk$)H0NLh!;R6Oe=6Oa@R<+-==a&!*eV=}v8;clkBasO^>9{^3n}Nw6`#vG zuw?nq<$NFerq-Nhjz71j+w34zgO&a7*Z5y zlDoQ2gCyU@MN1R^9bG+recO5zs*X?eud_@jBg56=>)6vmPuexV_fOIEz zih8k`cM-eb6n9%zBMRamlOKZRA;^1gw)+H{OFm%T-g|DzMY$N&G;$Mb(m_~RmMKx~ zkoX-%lj`fndTc<&aMi&;i1p9%|Cl|XvP<xfBxHza>q8mcLZ07Z9^R}C=6Fvr)UWihE8@zlaNH*)J*7=G5A^emRtIp1*RhMHLMc}*< zp+dml`XO{IQGRkVMt~)>!IY`z7^s++12<8iaP#y`q-7VZsH+PfmOJ4`RSY%=ptulR z2AUcvd#ZN|8%cWR%0Vb;13jAs1$wkluf8~z`{vCREVhkj46J+PjTZu1__pzK&x&v$ zz8N0V9z=Rng@j|ZOGX=gH>8&Zjm&I)!gNHsD|4Au)zmo(@5+CSMEGFRV7c#*Tl-0- zdE<7DMABEv!*XI;S*}M~9}6v^UQ&R3zqh}cxc7%l0wOdA2M0}lHlC!u8bbk)T|DaXH>4q5$~Aa7 z(=WEZb;A)lp5%W4X#D;IQd@2qa@aw_;MubmKqdGv_gu_AI84T)V7J^RgH`26(?7y} z0D}rdql!4)m7(R8QMmfQp~EMk&9#rO-_f?;wE<9%WBMTI!NkX^V&2z zV^#Wnaq;xXx42Er^yV)-AtUiOZw7bAFMs-{FL?h-H8MgK54X2PM$3!=7DZR)Rpp#k zJoKABh4nLKlulhTf%MK=pcKClP04&>X}l#R&)q8A8acrBf>z;Z>4<}Qs+F+CwAclR zLdWl)UDr_9tSKM`tFuK(lwmxSzK2Ye$-Ixmw+7Bz$nGrg1gsze6ZPT0AF|XaF*c9~ zv0p&vsX(B@{T_aC9=B-9#s8U5389^sj96Z&l^nz?9L;EKm5{d~qWFD?`L7Aej%EcI9*9!y5UdHSQ*JFTgewzdF#&B4_L>FA;8=jYtc(4lh{lC}1 zl=WDAzB*iR$Mb(wy?H#8d)PmITBHyaMfNs?kew`1C|M$VmShQ8vokmniY(WVS#WHn9o;&4 zZC3Z1O-{~m+O_Ial?uH3HMx+Hwb|Uy4??)Sg38OK_;DTg%D)O2ZPVw?WUqTd@|-K+EQa$(jvN6n_J)A=@!Ua+LIcsZYRJ^y-Svky4?1|Gq%+6% z@^Ozb9&Xgr4QM+t)r>PBN<84&pKiiCA-9={*llZ5pV=$qe^PuGrO0m(7U_chqerw< zcd!)W&^jp`t9r%g_y~C+k@CuPJtkRt>wiYyH&i4_Ox#j>ogQrkwm_UAHG4^#NkQXV z51o7Fb_Cne?fgdSsGQ^@r2O(jVaP#uCXStQzDN4K$wxM9*sBJ_oD>Frg`04JjvU@U z`;}%FgNF~tw@E9;)jn{(U7A}bEzb;Z>TRUp13jzxj*nR>Z!g-4K5yOVL@1}}J#Ze% z(_1rth)=F-h1Y7=OEo^8&J?0>A$4+M*>-rPqg1xY&$IsKZYvF=pox{AUyvJDdtuIr zNcQ9prPCwF2x<0Q?UktcE6@5tU`o<8lHj+t6(6096SIEer;$oK@F!LB&^_wrazqA0 z^)LiK{+i4!OKHXo6J(|?IEtPA#`zmsOXSBdhP+?PsuXjKYfIP=SnfA>y0F+z*dPs0 z(FBcW(g{tg%Cv=+4vHJ}b`TpTBqVe*?LH@al!`gR;5&EKvHbOtx zZXKhSs{~k4uU#Sh`Eei{#1L5Qxv|jL?fpJm@#PUa4wIFTxN{0WhT;V^z4B`C9*n7v zP^`_(?hJz(oE+ymunwH=7Jqzmi5Kct(!4+5YWcl^F!}mLqJ(!M-Ofua`z4-gyi(tD z{@brxvvxN)bWxtVb@l5YkC=}QGPtmJK4%|=rlkS2PCU^V<)0kRD5%YU&IK=YxlIUS zs5jm@1s0GJKCG3vc)8a3Sy>EZK^5;Hf>Gor7o}3h{X^QXRmK2u_ z&Sd-JO)!6Q<7}=~VMR$t-I#E%(MgQQ$Nr@poiN3;o6^b3=rvzcwIbaJr|3JEVdw(T zz{(Irli6p6!Rbt1yNAH4pxvL98|$3i8w(dC%zy2Cwz+DntgO7~696(Ew7XhQgV1Xm ze?)rs%c)(;JVDb{-%}%VpAE&JrRX1@8E7P9r=WnXS@xcL$mi*UxjPKlsQ` zbj;m$q8WFZf9`J~j#}{b7i#l2%hUF{{mp6f&+q2mMb2FTBYvJ_!zF0qQ$Pt;|7Ufy z(+=n>vxguI$K^J=KeT&DR~P#j%;&38 z`0t=cx4og?+A!)v`olES-QE3Aui31^?UhkA?ROBLz*hK&-sl^qj~^3`$Lq|!2_DIx z))I)5^4z6j6fn&!GrSnrF68I-b~c?J-Xd$lK`XdE%l$rqbv(kA@oFqDrb4qUzq5SB z6+uAlT;-1Bm;~CqdV7>(Pb$J%q#~-jpl~uKAR09{C}Clj=f%EIyFE?$N>=qj_b z+QWLogFnHRqvRb5(=4tY1A~_?s?_LOLOT~ZVpPM8`i8-a=Bo?1eVVahe4Z1g+iN&t zkNm6?ul=IiDgAz_&%+|gY$vFSOBoHYi-_SI>I%>1BRbCw3B$>Yo*OnCyLUFnRrOB= z@TsB)iHXRO8ysS5Q`{IiAGYHc{@yv#oh#6XCdmh+#K)gE%KPJh>B;3?U8|Mww-Dmq z&B=PsX*$&)FCB4go47|Cu-!~mQ_$t;MBxkji6KCJ`<+NrVmp_Jh)D8>?k6@MQt6wc zgk{BQm%9F0E^A4zpaS=7d%LhxQsocQJ^eoZSm=}ihnVQ=zPsr|4Pz}H`zF(NX(B!b zpjy18pG8oczIBQFM_6DIF~*g;T`!+eW;j*gH}lkMGQ7YkQQj=)&&G;oKx7=;LAQc- zLdE~nWuQoXbQ+)ptFJnsgc*~heb*bw+o#?G>qQf~mC>vtV;t(G%nM z_m*iGpZju@ATj&|RhIKO#W`hj_w=`Z{g0m+_lA|DuwJN#Y>C)v6BKxJZQ!$8$~51&t$p^yc;hbj-&c|8QP~c3j#Jh0u?%fnj4_TShnIn> z_VosU{$4AI7h>OrZK&k+K1Xfe+o;AquqkFh_Kr|N<|sgx5N9*7LV9@24NL(rRJa{} z1UZfM8*j9fRgSe-ePs$+{!u53cJJqplk(j?1KmJ|PEK^Em6X3**mzIOD*LaS?9Z|K z0cL_`yD6SR@CKjA?@_HOyJDb3jkfmUJ{K^06Dx;-*wA;bc)m4e{R-V_I%0zN;;WVo zu9o{WG#-Q}0r~;(xN>^%f~2Iz{VNhP@d^kb}A zaOlGDon7{=br~6y+DOJ~W$WmuW{k87CS}RW$#pC(EnR!qd*t)y&tTbdVWq^bTvv;! z4U}tYRt7BW%A1$+12=2Fo&6ElrVDU4Fqcx|vUi=F=$bB^oVcYxy~RyJ5>cT()wRL* z^qrFydI^Bf8CM`8mJ3g}#?F-li-dz7fnQ){(X-|@Z|oqh-g~C*gJF-ToBAzukoZE% zG$bDARjOAyD5a4jqT||>7I65ra@Gzv*!8x$zAg-KO8KHa$`5!b_?j}*vhwuDdC&n%jdOaGo zyt}33*)?Qxy;F|Iaec>Gr~G-Q!z9Y{tA#|$cp_El4TsHAs}}z+4uYTG2B;~Lc%q{Y zZzLQ2^2{^3?}R8i?(**emiLl!bW3i*BM~Z3M~dvd4DE6UU!R^AB2PxheDTsDCf1|% zeYkWl8Er^4OGk> zuH*{52bS3CGL&t#(|AumTL(D-^U{M=*<*o->{9MdDCa3^T#YQ#0>8@AjD}0t!V<5X zS@vRRQd~-?aU(IewLPuc$zY^);DL4%v`va~ngIbE@oLQKx;7<7zvm)&zLhwz0DYOE z%@pFInTGI;^%0H-JNfO>1H>{`^>lb6Opibl=aS7BP}qx&uGysmv6bjZ4sUDD-%Y9Pwfe2#f0;M?*hwhJ1wicpu>h_F06%xSR z-b%rSn#8TaITH~IicVjI5&9{XAW#0v`8O7My_8N^*WWuONPFZUs=@^tEprQtps!Cl zh2`bJnORy@fUNs*95HiCfhl0s=KdAIg;`<<{#H2+YO4}Lxp{uuJ!C|LeT-J)lJeUW z&C!{QG&j!e4O46wks5*3)RMw74Sh4mWrJBO@|Sr8a)PKxXUK&dxi;0!?c z5DKX#U@3Nt#_}Ht`DS12j>o%q`tk9}_3ounZ;tcTRsy38U;g*dQgAV5dY9?7-@Z_6 z9^H~Ti^p9^ZF|gg-AFGHs?D=Xe+S(d8xzg$Yxq_uYx(&pd{w;CpiW;;ECsKDKV3%WKMIH|J2O~Ml1TIL^u>9H& z!gRHs!E@RJCG}I*@r|*%;$evf?;>oOlf(b0xL%+19H@sKy;Hv3 zX?Jd~gL`)YH9Z|Ln+j6q!9Oh*=k2@Niw3swdjx&J6a7cFP@#%)rRY$?{a{@}LZ&(M zu>|CpH+!*9Q1RMHAkEj5lQSBXOhss55ZmW*;SztJ>8+WztzjlY0}^3&9o-1W$ng+qK-#S`jgJ3M zm1r0(D&`3&AX+|^M+ER4S2(Cv9xWM1`HPrx%oT zG@dvAO!QI3Dd&INgCR>Tl$FWL1djUY*YNfFhRLgd2 z5oFPtOzQj7=~>YhZkF$BYyH*gXO2dCO1Uk_mFM4c5qW=sL+6Kn%QU%Hq2is`Vo#+a zvBYQAu5{MC@~m35ey6WjE_Vav;IXX%*JG?;wT5)^80kq$1#Y@Q;mnKn+V>$si2U9; zaLj;X7Ous2R!R$lC+lI@GEbP2?R3M=7S_*^U{4f4gJ}1JcI)2)s3C6zMC~;`h70mp zIji!tn0rAKcE{`0?ZZl1kZkHx&92)L8ZIWPUN737t!nz$Y~s=Gb9@L6dmFvh%OPjZ zBP7&+`|&D$)cLrg!ou3zf*RFAgDQvjkXR4ma>T?XA=#758>aZ`e>o8-#CiV}iL*%E zU}X!OFA}NE!yxH0)*!39=aUi&W8*u}$t2r7z4IR69||8ILc{nm2q#cSZRuf&^$S0v z<$V_~0!IZT`P=qSQXZlo&#H(ekn$aMRk(u8|3lOs>d3y&O0x}&i zh~;}u&Qq%=fZ9#B9Wdo+x`iI9lZ#aY*(sFQul*mp?X`2!pu&M~!yYp%9=>D#f?&Rs ztdZ3+y<(Gau04jXo@7_7N-kfdFYPNZ9c4lxYM z&e1Mq+hErhW}`r_mUJrW#X-DBS_l4J`)XVz@PuIOE!eT$iRQ92q#JBiX*y|8aZ!>gcT7TQ^=M z>Ew&-5?ZlCPh&=;1rigln9BPGQpX8A;ElVR^*~KC!WH2Yw!147Eq`-wV~7HZNPkx9 zNIiC=_&4rkhgsEYa`_L)?F9wwmhh!pK}mAn^C`DRf;f*Ob+;t$x2|c41dZE1AHUbn2_jP081%NoA+vc_erUXo+kaYfQc2%}C zpN<2r|IW#0@I3=1wcv3>y6KC%zZWXBaN_{+e7UpeLO0Iu!Y4VCf{n}#Rzx(Ol z^i5%;AiV26w#_-H)^K&gmFDCsz#+GUPh)$9B(kFgmz&DNjjIr`U{B$FWBKgyYZ!1m z2Bz?__FxJq;+Qp)_=i91gb3|UVotJ6=v&WYT`fm>% z5`S68gHzez1_s&eZqh8OKDNAZD~A(LJ7tmF4No`7C@+M}tisMZK=6R@jB9(N#+Ck# zK=iEQ4KatTdr<8FWtyR#)@wIf;n*ehK?Jqy&+&KtN08!SQZk2yU=%*{&6xQ^-@5h1 zC_6I-QQZ^BNvCd;9n)LhsfqRLU+m9^TcI*p@;o}3pJwulhGOt7H+t+8naCn$n33T!t z%`P8H*79*5vU!(Z+ywz>;iYsMx^?Ih*wr}$$O8vOAnfE7zV81bra9|8JM(wZlb55h zZ#6Q!cKaokb@2goDR>uBD~(>IUk`4Gn5LJzG95rNR8|RxJ08IyNIjCQsIXFLAH~p_qU?O>1Q?hTJdg2>>bw zq**u>bYYE;uNxg5+4BE3a}(Nzw+Dwk6p~U({gZY$X(rEF`QkQAu<`-9s%9Y8C@gp9 ziF)RVmwrJ_<0uvbNoliMg>|7&JEG(mz{bdR|A;$acA~>m_9V!aNuuyZZ#IC#9yQ z;|xpX?*f;h z)^oe(TekMDLW%_v370&8O7AmI+ysH?e#hEwO^CAw{{IJ-3yUwg6l+#Hbs`1}E^2dZ*tiWc*#Zlfbr z7L}{LdkQ{18NGvZd|ToGuLD%4zrP>T5xa;F#c$AV%oT(vUU<(TxE`l`WOpWN1hvf= zZ2h3ty|gm|vLeV^$JDr1Zko#+?Mz-G(d!rl*)pxJpMB3NU$@bByxjhn`h)TUD)-*w z?}D)*(-r@<=?a+Ev`+Gg*fU6gaJPF@fei71@UF$u_;BMxutnyyxYQ7K@YXiY|Mr(t zs7?~p9p+ggxb}#9D_H1$WLAFDGc}oSm6G&$Qtvd}&3X%JvhfPhhu4_bxYjiI;D!M> z4z8Qx0PxPz{rVJ?(-pg?9MSmITB6?)ondU% zQNmc^#RC{Y5$0HdIPaY`w4sSfwH5ionNAJen+yn)sJ@#0HV$FESIAFhR|EF&aEm)q zjrYK1qnYxlw3L{3)IRLvh_|UuEzXzSM-8UQXZx6&If2AlxRvvz_w7jWqL&03AfsI4 z8sYlMT#?UtjE90p(+-g(4sR}9`t{i7dSFH^HUdxp^!A{c0};aQVrcoZ~9&F$v9(VEa@tIjz@cUr6KD0nM1Xy=lTN^{Tl1wK? zuTaq8FM?)%B@l@1byFPeNPR!fE-QK4@ux9y$9XmNIno`u(z`G{=3no1oOjeoMoua1 zE7Q$dmD(G(tqA|;nE(68bQ{Eb1=Z_hci21PJ+9HGsB@s)VPc9#ZtNg?p9}h*_Mg;e z5SMVG9ary}m}rRsx5 z>RmzDtsO&KTbCoOLSlQxWID47vc7lcxHLt*j&8BMe7}ksPJBFD<99ueE}I^MX1Za>D6zbU^fHhpeHs zojg5~+=$O^K07-7a$uF$=f7$mOi6rd>NM<_GWe5MFcK1awr1tVs2@JaUJp4&ihwF`x!$*SKjW z5C;rCT-``yHgfa3>txUz^))KEhduzXMQv7hUoKfArgIvgPrB`G57toaoCZ+ikkbyB zPyX|`(BK;#(O2exBbk3fc`cgKrkE%fO}7yG$p4`vUDt_k97Z7vp=U`{2_@AR1G1XS z<6Mh+}EqNV+E$wK5gF1VTWU4Kvi-68&Z>tsPa_UMFbPl z7B`CBW-&0<0jx>i28k3F6>TWAXnxtqK8(r&0-=Z>dOc_b$Y?}n6|SN$GAPpy*bE;k zZ?Ge5ntc1C_w#VyWaV(w7u5ie^~J|aSx=wKmSCQ#(12_I6PNG)l4CRQyg4gB5>y}2o-!fS$L^pGUjK#YpsByt0 zykWZJX_Ghnq1Rrk0DbjbIOzJA$$FNLw#=Ef$`?pM(B0pFZ~_?mb$HL(6@PHA$;UzG z2{PL|TrqU3+a4xycE!xPE&9A?fvsP!6>Z;gjQE>_?9Uar9fYBaJ250OS&12t|9#)| zij4`jx5%`ARCqq6Beba3->iJ}=|j4_5npE}Y4kl#L3X|a_9BWK@N&J}Bw62g85vig zz%2WR9Ks{GxARaC{TgVy7!}S(e$HsqAV`*Y5llgW8TNP2txnyl)u6ee}Cqltj3 zrkO(GOf38?C~$x>&wyuRiS+?zqIyib8pryLhO&lh(XsBF~2(Qthf3wu4QF4j919E6u1Y^5yRrBQ`|LyBrTD z<+nt?RKU!goSby71jwf$%A&ajccB(cK9fQ=NYEUCwkvz?FQ~Eu>5`#O3Ixwq-12s$ zcg7OeXMaZN$7bv91|1`S(XYgAD_?K>)CWVTlUV%OI0S6~v|0`U6T^_+F<4TM!s1SF`(6{@>}XB-wxyZFVXFQQ*AEGo6kV ztm(*-U-1U_U3z`c`^<89rl)wa?Svl4#ovi;2NicrHuAYuaUol%N9E9oiBfp75Bpd` zT(G?ab54$3kP++T_GVu+(_(-L6#75_4Y%w}I2QH2o{BPqGz4@dB@W}zpnkdezf=Al z&OPUawG74IP3(>d#NF?PC3Nhgbq-gKPsb)kkrX;=OZ?{TS_*jVDF~F3|G$bL7F ztEQ&~)yl<2)ss8QDralPZy;*6+b+bs@m}7FAOAjfaT^zKQa^v5wTb)8i4@plP8D2t z>ttu$+y+DqO-*ru5~g!y1~ymw_#^;1uh#QPFBkehU_uS9QC~WDDe-Pho7J7mW0>_E zBd3@jtBRFgom=TVR8)^J5O9zTcCbHxpxmj;bmI7r{kYFFara8hOvRsaNx7SQOvBt` zE-_D1{hu3)*Mo!v9t;cpuQwcmuzR7Bb)G(0Z!rTtoeb9leInrd-!bSx?_znk9u zo#+P>Hf;X26!tdDn>Tgj`lrJZT2VpBr|KEt^g^-M_ z2kq38&XkOP`$aDfrNCDwHX`x=PNz`s=5b23?OGWMiO~OijdC8H5@Ltl5YG-=1MEIZ z;46pO0(2D^JUI&8dvBUo=N%mQZYO;q`3rn zaL}&V7&^dw)oTaiGDEd;#dK>f(nqrsCG;P(!_aI1{h*!mrKUy$hFCIa$O~@(R(4-} z^OAjhI8yNV?t>f#DDMSp;8W6VgV9`fH#DI12ky>(m%(Zo_WUTJ(!N08dl6vQY?gRY$}bHA?&$E*GBsL{@WX7mdirMm9bi4_{!)tEUQ4SoLPZ?nTIgBy-v zhZ8bSOQ=7t2ywUpmp)h{*OWz&@6ckPcs_kJJ%QalF#6{5@JvM$$a_r@D__BZdMvF9 zH|8ssf=}b2fsX$zz1B-gkNAG!}v|QQ^A${Fgz;vO1g>tDCz76vT?CdEwrmYuRtdy;R z<1+37;sAFO_@+Ro2J*rk)Mb0KfPz}oezXc;uSW?{9j3=toL8zmltybXsL+)OG2Q+@ zCH`6KYecuc*7cp&C8v)O+&~g5AARunW5KyFRZBIoHz&B2bI|k+p2ZU3lz~ANGDE_r z7g*gAxT>bfzI})g{27kL+q1lj8#UVw{~+w2C1i?r*GQ3R0SmyUz_y}nXZn!i1A(~y z!NE_xcJOF`*s7XUcN&X-l4Abs*;}A&$0ea#02@EpI=*4V9WYHV8)vRgTxB322vK`) z8B@FuSFImeG-T3ix|8wN@)s1d+gji43?WVc%&}lKEU_979Yt}N_8r?3dZ)MUsj0X7fKaujsf~E7yX2* zA#_YGJ-2m>vxj^!jy-mu`s>Ypc)M~a5;=(%>!QWL@lXXlERZr05hvk%=jl-c#+C(Z z!d9bIGZuYQ5KP_1av6+QDq-e?Op4$+q5FZI!` zIGgC-FV0t7XF)FE*PKg(mn9r?SIRYoG@%k*ST7G^`Vj!I55VYS`GA~Nn@$6A2AZHT z>=^PQtVC>bdf~Lm#lvv~{rz0F zZxPZTw`w?a!?uziZ3^k1nto=O;=Os|80A)c;=_ib0Vw#79DTCjp_Y_;I7G&wR+*6> zg|CZ;*(Uf_h#=q4Z3XH;Y3NSj}@6eG#Dny7(YaG_LtCw(IL+rB_NArMd>*3=Im4J3miYa z|Id)wFgmd%2lg=6>5jsR3ZFJ1e=mbk3~Fe)4aNFvHZPp6P+m$yNMskfp?h%*#>A;D zn}jA1U;(#O$?RtIP6>*u0Y6kD04!G5)|OX$G*{}V1%<@K05py?GUW?96C47*;kF|9 zmH(i_lO+9LzbaHHieL2$4!LpS7U_1~<+yh3nHJc<3Xq6hUI)l78#B&A%tn0jLrX{h zH?h6$;`gk0dzoX6B8Mqg9l5iK=?}j@!TlP7wVd#`0n=AWvP~+j z>z(+Q%~I}TOiwg8Ablp&I0t(9a{G|sl*7vW%9xV=!Ozai1YP*4^y4Z&tbdW;7k{>q z{@sRg27=VFW1Db>yDg+sAl;HcmKg|zSA(Pj^y~5SwHM!R$OaQe^Wd29#+J0dE#(gf zY9;Odhx7o0i&BNxn_JxRz0{uSe;QgKAj)^QI~?Z3)GZ)~-=aCv z+-)ETe+;g(&yUWnL!S(Vz<|H$`*%nsP9AGyG@Ag26j{;on)+6gmkj&S(d7H!CWp*N zR?LN1H6fucl?$nr_%7!s3QSBr?f_)Zx`nw3-{n7--dhBHuxNrhviKMzVDzrJlh0ow zoIl6F^582|Q;cvJM>e+)yRK04^HVG=>ZAW$J$LUv7>0Y9Bb3ASz^-0gH~=`f^jFt# z~(TklUbXEXxC9|L7YYkXwfq+F$nQ{nwlvH@gQ?1g-Xx1I>#IE?EyOvkZ_)!ttj(N zA&-kyLym`3i1X`E)ys{o9UQJDXn~bA(-uBr*x%svyJFWLw2PS(4kVFyns~KiAm|RJ z0Lh7gjRhzPk6hdGgt-9zT zeXS7}aV$eMc5RFc;&Fan<9Bwjj^xuXa9tbV2Y1Evz?xKkr+|hCCd`UQu6do99^{U>OCTYB zQ(;$RfYSb!{lPaMgx}pfVa=nYzok|HN^NR&#f!eH|LNl|zSrOWAT4Ka!a=cpUDY2yFE;J)TU|j-GLeoGp zN(krx9^C0MF)@|wP4#;201$qJtI%G&TQnjt@DO>f9p0XjaNXWmcIaIm+BzQ+QsMw( zENGx0RRHdBo@n(ful6Mf*CzaS5WsRR+Suv-867 z3^|t1EiXpeGBwZyz3BY{=E`D@m_HsvZ$S=S5|e8B{aftJzDgza?8$fr=x}DK|kkiWoVoL3Noi78lRF9ait6f^} z)1iZ|ohx~)MTA?*oxqf74#p5rkTRzD(hJJ%(ZIE5RNVnrZ$f4_CMMv+k{9auxu9&| zbh%l?f6A`A6O|M1kNnslPtYKguob1x3e zUV*1V5Ad!!1(}BwXc6&dWy>YQsa*k@<$+&z;9|o zH-1Q_Gn^MwPi3I1OV;`xC~ttDaXjC2%UQuLfeTz#Wah58SPYD#IlXp}KH5*B5HJB1 z{DbDJ49~Qb797FVRxbn%UyJoGSbPHq7{aYYAL{80;VS&O)#j16^>i52m2f&cc5sK} z&Lo87Ie8GeXO^lXQ6R!g0L+ z!xg$zxPEic%m7(J1}iOQK!Tb48-f1|tflI)Q|6dWgk0z9swm{Y!gQsqOMqGmS1>to zhw#b0=iN%9-;V9C$bXmv8P|_FC&DM`gkNoA}$Vc*X#BuYhQX zsp*y>1LyvWdEr&%#^^6UcYb9^=lg>jjrsmx%uJtPW$0Kj&3Zw+-s-qP!6f3Md|wTI z^(&J38xpM}M6)DIfgvuhFUxp?Lm~=h@-vj56?Y5ddQ>tV%WQqZ+(QY{Agi z@tBs&PvGg&N3;#hNhh>CNsLT8;!XIQsg5$ezo)XKslJcXYu$9RDncx2>xmpCMGK@`cf)2 zZwe5XvpSF^r7Y1bmYJ zr~aiw;?sN_bG0l5@IcqqgM88z5OK}dWmHG;(x)X_tVLE=Ct9XmFOPu(J>uL8gLlOa z--7U4T3bFQXiu8SdL@1s&fx0}YkVxKA_u#gAfEt~5Wh=?i90rhAocv%Z}0e2BtT+X z#@-AR8!#>&C}7|zxz5*@Y>)2c)+ ze5+rHD)YNVbY*HiDX|x_K&p9O+WDkqpNgOqiN*ux0|^io*Jz~3S~y709=`Uja((UU zb~|czCErs)`kMK+!hM1IfSrP+)Lr`DxEo|+2<)`)n3$Mw$nEBUOhM2s0(&AZA(7+h zk$<1ZK9LRE)AKcN&V$?hRF*9>D02aqILF8c_aofEYW0ttzodeTnLskWFIJPQ->-_6 z%bBTA=0B%X&Z6ukB3+tS(D-=tTJ{TUg{>A363L6qJkw(VfuKkvFph?1f<@n|TE_?g z*IUg+a7B)Pd}@?+tvuvocJ^F^{#;bthj4}0mKRU^`5PQPyO4Ze4sJhgO@TxJXPJ{v zVTzuwufd~N&3JBQ2y7E%z`wb3JDjO*<=4&t73NO?D6sSNAePBXrsKyCSc%PcDY5;d zt973&L2z=J?Nx~1j-n#iv!eo(@*G*e;I z?L=fPvHna)BweoiLx^d@J!U#aLZrNUbpo!(GZYBVOG&cHcP>8>pT^E z7pHG%WMpphg)W^wl0zr#!@JTD zAH#Z{EfWqBHg%(@(ucWH(}6F!(eI zZA>dOZJ~W|D7c}db$~2f7Z+ECRcuh(p#9I&12umTsC2;r)^88?^*->}>hN~k6$2j! zH9V%pa*<>Mi|RzxAtmC_$Kb2x8|;fJ5IXHX)N$vyzER(S^x?uH#`N14Iu35cJdcjP z!t!(HL2es!ryFwDxou3M){lo-{rAYade|F*)qftfxOe7keL+88tIR+L-Tx`pI%Afc7+2+Lc%qR_KOUw7h0^#Njixqxlk~Y!{ zIC{XXHUZv%N&}ozuwtaXnS3)O9fO4ek`>54t~H){c6Rp2fzJAMLjpWs$l7q(*(CpU zp$&%;ly8OtqaB2RZEwqf;sL&5_@==oJ`FCT8Df9@#TmOtU1)TuITK_+W+V5C(WVyW z<`<9~J$8^58p$4f#8_v$&!%{!7(JpN zaCU0S(GO)Q+ycZM*~gFLT@Aee2#7dba$=Bv^t+=1q^>Rb@9FC zKj2rhGA?_NpBx`dHgXrS^}iEE%uNk2Ds#(*6lo-d!l(IIj>vzjq# zT)9P+WUTE0y`L7m1w0IH460+z&{kGM;woswxChj-0%)F|1ajqRUYlTVm zRI6{za|qnR7u+VJyyPCCu;7LHHf$vaL}l1cmtV_+!gJ$y)<~)U zy)>PQH6<;sm{BrnyS^^>ONhNhzgdF$q&-HtM-)CK@UWBb`P$lAUn+c^(DkIdSQ}Bm z1mU2l_0U*nKLtg3VthZvrjO6vC)%rP=Y-lT>2`>h#Ngsn7m>OSm7VE2WX(7CQ-d_k zGy@{-`|V*ROl>dDRmOYsDA^4oEUXp~AP8cu9?>pQHeFrI_4Ny9em>R*1pPHFUHS*m zq9-7ipIxjS9D}&ByojXa zkBtpUP&K`7(j0UOMo8%DLd+a=Bv4iNja|@$Ou>W#0Z;%ZO+Gsh?!EhR@oLJ~NR#E) z4*IMzGhf5&1-v7k?C6zRcRyAZHlP%n-pYHR_-(>YDjx&EaHc>H*Z1i>r5A-n4-0Ne*ms153Z*Dh(A{C9<=Zx`a#OI;99>=D^udjnB;^_c zW>p)H?dliS@KSPn$#8 zX)88M%b2f1L{GYz;I;*BJ|_i1q^KCYUYK~H>$T?sHb4>WE?``tm|U$FH4*i5;k0=NbfW);cZUr2OnwlDB;M=`R`M9wyIgngIJWYzv+|^;iyV51F z7lRZNTx#PKOXRmnSh2}raR#4@Cl~?rkrhWi!z2Q*E z?pkJor7;I^?b^c-NWsVZav(6J3Ie5QU;f2U-Tw;uo$y~kKXP%|YJ4OC3NQHlVKQOz z{k;g(KWJ~dZ6LHW-EIJo5$F}4bR>;}QV+`Vkn2;N&`g02FHnep2f=R(xDlKom_I-a zX>RBs{zt;VG+`Pz@d<(BclfxqYlA3y?i<{l^?$HaITfV@7U5zn$M|6W?*awT?SCuhXA`FH?M7Ee_3*v&%gU4 zl=-7a|H5#lkt)|N0{hFZ<%4dYPV6;Zuz7`T0#tgk%r`?D$Ttu{m~GTCzE4ih0FBSt z6^NyAECo2qP5Rok`M>eTbm~kx_!5?SZ!FP8mZMXD8F8O|)ZfPF3+K(Avxq1^t*e3u z!qXRh4?t-G_7N7RDuwj!zGb;(NyHAio>HFYU=-n&KY=3pQpL9B3HrcA2-Vrr#>Phf zd12-04lm$rjPjI$E<}>`sPy#oNz(3N5Yq9sWx}L05ELQm?KvFwNmFC2FMEo_E{nE?L5|CC`m|C6(E}RlNdMOh9{%kB_S` zooAouMR&URIi>*Uw&~MV=kMVdNX=M4#`hqC$DW z-&Vj%KgiNh3b%s{H~9AmX_I*_B`qPEAjPzQ&6$#2PF{s57*TZrvl=zPD?!{ZsqwoN z?EJrG-Gqu16%VfT3k|oHvZvc9>8MhuJt|lFlAE!4e)l1ef3(V{`oUGaFICNvUG`7_ z;`aOKm$DEH2HB0EQ(J#$US(SsDt8o?!$h|)uCa$dTn0fy8RGnIeZX<#c=E$<6b~4J z-K4AY<`9BXk+;6~gSZD8cXEJbJ2yA?c@~ySWFv~Z%$IBPz*#|%dwZP50h^n;`|91Em}9Mzm}8X(T(qvWWwE;(N4^3^6W+)w!$ym2d;iRe!Afm zJ@^G>>Ecb$kgEX(_H-%_^`0NrUtdQ=xU9}-!4lT%>MJ#h*I}cfUM}EKVDhWMLn{iY z6igw3NF>0Ha9HT+W8e>bE&K9)dra8OXMw+;+-@uYONbP)2JN}pyq(`n+WY!{Ujy0G+IY)%EOuuveRh0k6~Oz zd1m%%ber{^tQ%ja#Nx&FvV%u`PYF~4c@N`^YO!*LHbh1}$oXSnBKXYDIud>eGz3>+ zp_C5!-kgg#*RB^1`^%=iwKj&?>Oh1B7C305K};Y5yRZTIgo*%d_(5>YOH(IbT^II_ zSPph}WwiSNTL{-FIgJhiC4wyS(Jm$u34E!r;WeFp3I2^Gne#Vr> zCMTv^JYgfwTRp(|cP8!j-}bxgL!m3hrF z_p2o!#IrN;y;Kd4iKZE-)ZpdgjtwZZ`qxqOHVg^&mC!NhG;5b-WSl&sh<^-CFYn>+BQVa96Q4j_RA^vd;3;e8$EMee#;w8jj41f;BO@b6uCaqu9$+#! zS^xvUmH_Z(!SSz!5N$xA$U&-eJk3$5k1YIxVq>p>w@%T?DNsi`*u3F~m5A@~Sb!%_ zay*7A;oU{{s2Gh5rWxGi%<9o6){JEc_Yg?CFfcN-a&QO&k26%layTYVUn*cidg{8m zMii2f{Qi66bfkv5khFBe_nTe2@-eFPnhoi#B+eu{cC*2}g=;eom^6odCAwZXh}4RW zp1|(3Uj*J2>U*C*lW`n!X$Frtkws9f+V7OCAO) zn2v;nh2d{67_Y{KjO1Wq0{@{>>=M~2JeT4*Ql`~)_Tt73P8u{ASrgj{t$YQ}Bmy~a zb)Q57-9LEzm|ah^KO~C(J#J(E?w*o^#ck9a#*|4K!BzQ`<|Iecuv{uH|E24Y{unro z+^F$v%a5#_6{?B3v_E&P!(MRMP&64KG5o#gGaD=*)ajCXqD<87i>E0F zLum;}q}Dwgx%kV=cMfbauY|W%`L7>_Q|87S2#KDmY$@IZi3cA`Cd!RNZr6b;=KGsB z=I{obHz!=)z0-RipE%vxdwz=XT|a*;&=Rm$1~_)Ur#R!(cnGjRuPkV6ZR7PXn2X5X zHDO_Lvj6th((%6D9^?8gPJv=Bc0O9F#-@Y@a2x z6_c^LAWWtJbJ#~fvDvth&-HcB!qlAsEGzVFK)r%rdvl8njgv36gp=?a-+^co_9zRc zW0~i5Izw0biN2ICoDTt1`q<3((ZI|stKS{~S?O?gdwWdeIkp$({u{*a z{&J>&afjN%#JqXg&Sn<{;#nEggY%kM?mGf<`5&JjYj~`16JP#6NvyPj{~K6VdU6~! zn+W$;hAj7!LSGeF6IC8cr z>MMytu_1~g_Z8!)gd`2QuO^8xxdy}hUqkzQ{`)+;Py1}UYvyyk->>WKA_{gObYEYp zt~kVJAdu7$s)t?#gv#}y-+GPKh5L?@fcb1*cNh?A>W2Ntd9TV=2%fQz58D6~|1(H! z=F1dg5c4d?6tz|DP$mf~74qCKO(bgEuNQ=$0BAB8_?@|~xCXdpMK|F+yDedJp3bQ+ zQ}<9+Ka5*;^NAK zaE`C+x%T-WiUF$<{oZrZzz4Cj;{yKhc5_D@P_+<@bKcH zjDCGu-sjG{iBrp*ANAF*Gjj7r!j2u4`KIgw3UgnxLO%-Dk685&KfDRjDc{4M3EvoQd2sGZltWbcuMY;pdRk_ z>yW%+*UeZ)xI^~hpuy!xWd9qETEvVzKbiJ0F){U+tmZLaKU5@$V_vFApqevymaIEk z%VKESYF7)iDQ!8z63OB2R=xu(hD~lAmBu8J&mGZq%D4ARRBgQ#lxk-e24(@8=40<{ zG3|l*V5KE$)>QSQe6%F@4_#%(6oclwRbyzMkTHAxS?!We?UJH(+|!Ee@J%ViqsE5H zyY@7;A(!zsFGhJBkxuyg@(;TVpL8M3&PcL%WwKyhjfcgVm(oM_z?A?|sGc^rynygQ zrra&|)M<0`l)?>eTOq`GBhOvuk}?|d5~eQX3jMF)GBfD7q9O_HA@J-Jdm6f8d@Z0n zH?LidRbkFdWeNCHHPZp@0lG|-nMSDb0-k~B!?ZEVwD-u_V4aACnw)c&*cY=Ia-4%s)T?Yk$Gp)R0%pZ{fSF5I zr*Imf7eM#Z!M~GW|QoIQL3;N`$d(BePwFj94i%-f#ZQtV( zve+&Dc^Ck1_pF%M*u+K;SI$MzH!0bzBKMhN0@mUdmRESGT=A;9vuZ8(k$UuKTVpeE zLqq5`>QS=p?Yg`Zq$TT`p6s6>!sT=v{YX(8jLacu8*hub^{q9$wMTUoC4ARKUh)Sa zfVj>3P()*zLzDk>E;A_$tQbl+t87Sv(6E|pb3aK6OxX6FZ^V1u9~)PBxRnAz0Oks_ zf<|uqWS5$CJi%hkTEn4`ao=oQ%ehNG_8pkKrT5MQMK8`t`Q$Stc%3{;jX|_8jvf-O zForbgXJ+LKT3p7+ zhDm%0AcUA8sLpxSq!I2%m`s>RF5*f6IU$I2EjM?4>F*lVcmD?K>Y(<&{5d^7?E1U? z1ET^0&rVv3MqLn*hFpmWWrTC=ak+LYuH75v+1l1Pb7WtD$vg2)9)7~tXV$-bp!Zx< z-mTEb;Xx*5v^uG0u;MV!Z$rb{X9l52EOfWjRPvhmn=|H)gK77&O#otbNLZLn02U2; z7PJR&d;x8PWdO5wcP$L0`exCA%b~vP$mmr9EsB(XrqY$G(GQ~QGwtCq2!tuk8fh-# zNh*o@xrcDtO6Cs=rNFoI;SAbhKEsp8H3WZWhZ@;8I=R;*yQ5~)NHkY== z?3=%}rT2I}BQ%t~oO;K}*~{w?MkNI}#rpDz1KSGwtFhP0+zLh<%S?k=p_!P}t?3yE z8{HK5=3&--^Rt%yM2&*Bt`1u#%H6b$OKmfq3eQu|`}UW9!z-~e2aUqS2nxr*LRPdvsNnc4uB6b z2W4iinrzR$a;B8iE@$Fx=HjAhQ1*{uwGH$NudY8^C)4S-bFXFhcMk1BBjLB1_FgxX zCC%=)=#*f?@C7N~C$0EY_R77C{MdNu;bpcp)z7(u0(^xmF?|k^LUt_OJ0(4*cAINP_?Hc8`=C`ObLFDrvkI3vtS*PmM z4JN?<(p$m?w!ML5Z=O{vi@OwwedDLy=|6vNQ+4b_JaygEuO*$QzN|+?e~sARxaOXn z7|y%g5}y0n5I|y~-#mtYB^(^M*`y=k{Kbx1)5UQycf;D%>)?^xHhfk5gZ{h%&#D+I zk8AW%1P|Pe=xEpJ_|{jMBGXwmbGOcTce{of*tix6o*#Uxc=R`YOHiEW*tI*+fjUk- zSw3|qiuR+?;XB!u2~59Wi}%4qV^&tSCJ8c>2^ze_r-qqb-(Q`w4Pe|Q5;u9w@OtH! z5y!^%o)$#?J31x2Mqe!}g6zXK;P?Eh`tvt>JK}B&-N%^&27)0h_yxu-U=X=2p0sPb zLB`eQyeK^5`}?)O`84U0kcZ?aummXeF^>-z{84Gd)pwS7MiGho!IQdodHr>lGEZG` z^Sxvz9*U+2rRI^}7q|Edq$ds5uq^(oE3US_c4OF$EAddpDXphv9RD*(?`Gy!&Thr~ zd_gQt>}DtXzfRfu74ln_sV8o667HSl^5=iNTpTZ-(bYjL9r**^1u~)3=K^$9#u~aA zBL+(vO5R(*&7eh%k2(<>d9B;Cj*#3h+u9bn46H&(ngN@9^Mzc5k&R6Cw^PA@VB0!& z71zM>J?u6o*YUn0GF`nKvwW`Y-oUd8^5Lcy{{&s}#DZ)q3yZ;xJ+xIQ@r}~zQ}p@T zJ9Gw<{O7i2B!}d_^-G#9+OT8zi-r?pzHjz1-1_f-UisgtpnXzJ^iH0unf0B;uWJ`L zqP%lnzaLpSr9yj; zY8T9vV@OhA&&9s7K>4Apd1kzb<{zpq^lA04&i<;7&2HQ)sCR#ZBNjH=PfIYMr{ zh&xox>I?(~rch)np(7<%HZk9pUZlR`{^9L2wl`Powh;J`)^Y`ukTMTEmc?0sCub2& ztEQ&*q=!=XlrYJFo%FQ)3B}kY)6lS+x?73ms$kZXW?9~0KOM~xl?^%ivC-N(!!=EY ztLBTvBU>MeUV%aCKZ$t1)+8nnvMgR4nWNsGNiU+YIdO{@_w5g1K5{VfmMfvh|K~pbx zfFpRXrbf5BrJH3MMpBJ@RT%3mA|lZ#^-6h5lYptLXNl$X^fag#7mZ;giM~Ef7}XWO zSwIcu(-tlelTa4r1rtBm9BqhKaG~<9f52O%fRT;z3XS&;r~Ruy3z2R6q9RCCdH3(h z`$zQF3tgTaZ&a9`<}31KNa-+s9U0T{s`@&uh$pXXF_3sB_;Tj{h4jkCF>O8xr*Ud{ z!E7yw;(Wm&be~jIjPmhaYlc4VpB*23J7NFBg%sX*_p8^&D3LYOGsF*z4YnFsRA;Z# z~h4Y%yP;)3YrU~zPk+nQBn%7*htW9 zVoFm&Fnu_1eb|Jpx7%};^d~#A{x>5a%D8rxY0s~|Btw3Ka@yjratc(JMD#HO>t>?e z#1K{1SFzwE6J~!!~9_^^xMo-f6 zt^NL0@rH!5$ek+526uC-Gm;61Z4Pbu$t_@_x3`t}MERcb`%61Nn#g@@IGS6WQym;` zTsR~7Sc>6xAtL2qbf5Eqh4lB%7hO;5^tXTIE%BYF|5ReEEpU9Hd@@1$QT_Sb9U)0! zWGUOWNbPYyL^b4#%`LEwI>uTR7-#pS`F}a*>#4-kTj$!xchy~_VSSflQl*;n8e*%9 zoR4LcMD(*0TeJL=P#0nJC29)T4UvPC6;dES^2~hjH%(pQR`R(e$=M@SCp3DpF$Sov z{eMR%jsIv)@yen*tNq(C3R@ZU_TV)Dxnf zujl-{COQ4*3;GuQ)cO=7wjzQe=DeSuR+eOiLGrDsK4;H z*2(@V3@N~@?) zk8L5u-}$JVRN@tQuey&BoP+aXE`4~m0;lUz8?AIsE92m_CIYoKL>`>vScw97)FXT$ zSfoRv1ZVfNT|PXKxW@OqAYIwj;Z|%JwrL~Dg<5C39pXCWD(~)QdD{8c?>>G!x^$4? zPop7yl`i1IkWMQa=y}sYN`b)lsdcTQr@7W&22to9;(_e?PysZC}#P zcZ2^a`6!z?SKvQj?LWIErTIrSrO10{Zvb85sl@~3#lMRbe^H2@rA9togqtiuc~EwTr*?#>&Us zWC$wE{`u#crWaGy8|a<#*791ti^MujugQ>vErd=`-c!D`?QbUtzg(R6h=iIpE-VImr0JLWS1;P!A)ZM{Ns;#D2>&%I zb}Uo%hg->{kKd|bsT7y=pWc0%UWP4)9wN;L714fhnHGwz_SMHfr(A{KA(jCq4a=*idnjEsC$x#OnZ z@cZ|5i#Vu~nI#pr{58t29in&aRL-CQq29^%LpSP_qpZ4LF}6n8DErym{K4Y_NLkJ` zIf~rQqbC#v&CM-(Q}~>yLtPw%#UVd&t**h|CkIPfE}@}yEU4@5W}Qlre(4d;=hSo2 zG0Q+ZmZ)-vc9A&IPTAY}tz$#MB(Gcq$Cs#h(OvPPV!PDrLj-9Jrylu?-Yg@+vWGpX zUqHH`%-Qj&WZ>0($;a$Y!U!P`f-qzEqi3h(F<-onPA6yz`J=H#V)F8o6W+d*ZC+RO z0%r9R#J0s4SnR^ID3HJOANo4yot&clE1J5y#mgxzqaGW0!)fJB2^yXdq$|0z#XV-1 zU>`r;%PYz~CKF6M^yRa^ipcAN0{y%*TKUehJ}*kL3v~r zEjyqiP{q#jgP)D-hD82L9UBp{Mp3-&*AOp`>-L9%L#t`+<$qODQV)vvADK38_E5%X z0QYGt=J{nqhft9xc&dgm+Oyc7;nkuN_vjJ2qU`I+LU~b9-(>a0L;;^-Lr+aj6{;_) zWZaM;*MaB#JnBK!uUw%vx?fXw<5=lCXfqAW4zzy6=?&r`hC-)VKPrpm;7-_M~L*|HEv6gy* zI0){tg_YCOS8*$=*{fVB(7?653WlDy8oXH>SAlAKlJV1PeW_qmFjDJqFQHe6OH7PB z8>1vI4;d25E5Q3WvvbuS=QHWP{+58huf#)vBww$-J86Ne!`K6C!mXrB?QzsWcj2%~ zaM2s1hP@K_wK9rftUwE{Jv+EgT$^yHphN3a=zn?~eiBKJOpMALG!;})cyV7RJATC_ z(T`UL47{68t`<#d(RBMykWd;U$@#;hMAK`$x4MXm_I0{v6=C%1-9r|WU#)Z!Il2_- zgEHeu444t-7c-+aLvMLn9)cv;o;72c9;; zYQ8QQu-r=@;9csan396cAJy)beVCar|L41V+KFusF8$9ynpsFS80F@a>gLVuNeXa@N+{c}p1`Y7 z!XZmISU^ha8vZow5%(xz?{R^H`G(mfKBX>g{f70v92~zSzF_6vd=vXNs)&cxu|TLX zLn0E%9ZkOCR$;Ea#JI8d7m+K7YapUT2_+B;rDfU)qV{DkM^5{-&Ii_}ro;Eg6K{&A zp~b7IsrjeQfy-|l}`ei+d-KF}oy;tn&2_C4h< z_{bNe8|1Z2xE=UaZSO6iDb(pw@8hQHC;l*L3zVgtD&suk1WrvO2c{Wv>3Z#d*_Pk1 zFh4UqGq2=l*wU-&zjAS?f+yJ9rQAY@m$!E&Kw@!>Qsps~oh-|Rj{%K1Hk?X!4ePE-r0ySx9IwzZf{(hGk(bX0Ka`OrShDzu4${6zvqrP&Ag6V z+lEMAzmEIqIBG3Ih&ukOednqL?Gj&(N#B+5a2O{#j#mQnDSrLo^JmT0;jLVly>xM{ zWz?CNV3P(3A=Biur-DAXZIHWkTz+t?AlLl}J?#qLB>gDWb{(~gD2c2BbW_^Tdr|_6 z;a$}8Ev-r{PCs)hY9th8l#IkPEXhK624}%YW%pnFXVgJXM*FH zYJ($%C83{|6X3#QOJnGd{zyqWT&j~?^c&7ytW6=8_89_|M!kUgL|>6=xjHadLtLr1I^wX!jCTw{nRg&~C-0CTi=c|w zZ59GF2P+B7(dtswdH~e}R#uT3vQQ`SvvpPkAQ2zf zk)jS{^xJuYfd{=lU9DocHm$Q(`po7hSH8Wjdm2LhQ(t7SWkVxqb^2Pez0Hu%lfboE zmO2_-%30q?D#|?UJrV2ISIoEm$E|dqM#M297rYW@K9jic4$TJerkhl$zUn8a@rsIv zjSdHl2U}YRCN*4UqBp3Xvb%C<88@q_ea>Dl)R7y7)4$vYC)&GfhFET5ezWuQ(CZ^^ zDGo(JEYK{9rp}^XwA5o8VVo?**bA7&o5Y}#3Dg=P6kI5dQ3wvZ`Qmx-&Y|8`qGHKYx5hI1@lt$GiYXwJ99?Tt& zzMN^8*7dY?40vBot|!08-@=ox#V~(v!<}n*hvGBV@>dV6la}i-MJK>aL%YYhk|rAx z^{ug~sR_v#sQOVv!MA3yfF&5%Gv4esRW6_YmlG0hz-OI#xdKSV@RZNwykDZW-v?*4 z!QS3LrE*#jguwm%=jn8*D2YD`flK^s{4^WM?As{uLIQM-L>sO&Wp@*^*k8%_cBWhF zen3TI>1wKY@m!h?(9}{Vq@-gRWb!je?zC*iNZ>}*bDFzPJq~W>9P1865NY50Xy+}| zOeC2s7xQV|8MI_QsjDVpJtI>nJPWfTGBR*nff_R93n!kRGynR0fquLMW5XI37txsr zHBF$%#Z>?>;-3TkN2^BdE>HgYb*+@;+>*HHqf8Qk>4`>;bw~bl60v=ngCiU!gxgBx zrAulbz__9(O@~=i56^Jm zIEzvgAi3Zg#n@xqXy5~v0N;O5=K(QAhB;!@_wZ6u zj(mxp%K>Is1%)2I zw`*8-J>Jsf6-nQabnB*(XZpamHR!VWlql*){)4lr--09|d5G|kdz>RZeMgf9PX za4tA6EIL+oI zGT)M0hC?U1H7wP;#PJj@o(pv7P{TPa_8K^+v!i{7cBh$7XR!t|K!`lhPQi77A`SW{ z`~nvp6DgC9rV=Q)h^@&NJ18?xFWgW&yTnaEVLdburIQK~XEq6~G4k9{uE66r7k zEOw6o#Bj9be%*s*Or-zwxZm3;mtBIUYvcx-H13mFcOI*{ zJ`B3Pg`Q6jO1Is6`YAZJ$*XF zw_Q^f2lE^3RL(04Zx@XezH<lvw}-#rN*)Nq;8z)CI_K=7s%FPG zJ;KTYZ&BmXK_o%sK!2fQo1c`V_HWgXZ0}uuI0~=AhQnGl5u(m8leqZV(lZRuRU@MA z&6{d;)kD{3+aA*n{O$5$q4Z;*5Cz5v)NlBvZXaa61EBtWXU4XR@}duBZdDlXa?8v8 z6`PJPKUJJmX*!Fjs_teUW^2L<~4B_TFj#`gtz_mXi^z?uriJl7In3F#Mta^m9Ryq&g5qHAlmt9Dkq zs3v;8V_Gd_jcpy@s+CJqWYHVKmf2b80x^}>&&p_~K2QPiRtOlYbAj?4LI(^HzIW(x z{l1&&e`~}T)D-9d^x=>oyu}qcGuAcGUFHkd$E)02TrfNx^SHO>R`S}rA0@ucSvxpU zq#Ot@GTHU0Va#cZhZp=E9}GVSoET}b`-t=->4c*;=F;(5;g$5l>;5|q>3r>Rc7EMG~EkX}b!s!ByK3>{dnzfPo!V{51($QE-kbkK7@C&8V zo0rSW9Lp`h)F_1qwy$cwK=nHVk{K-9S?Z0*y!WU+!o$OX?SUv{ z-lXud;$ivn<;!!AHOsT&_ucedA0kzl8I-lvPK50^_x#TCE1~0^Pcy>E>RQIDxmVK* zO3LM&i%phvSQc;4P)+%0Vs1`ii`Er~HH%Xf9^+T29AmhMr>Zu9U^zYBVnuJig@tgLI0kSv?84)!tof2 zoBZ*;{O6bswm5<|<~ou^+(LKOHx!=m2eAg?2@n{Q`Q?+)9;^)J(Da?YjciLO3Ok0C zMehjngimtpKQqd!p)vn3HS&`AV9thZ1E;2Ap090bISHWJBrPr7Bvm$+3)K9Ht=uij zbu%?L?>W>dbg$Hrlw{F)!MtGaG09bC)v#)v;I9FD_m2DxkwO-Qk-?*dHdFI7-;`H= z%J>lNx36jN&RCL&+(=*fOFLZ4iIFACm63Ykr}{q!{?78kv??lnI{lVb^!sD70^oAd z<==aMv7eIg!lUWp4p@x&*<2)bMDCy$DKEEMj|>9xbRj?K$fPDFC>Mba1s&cu(WC=y zBVJkv@P3Vsx`1>5@Alx5<)k#z7tznQm;YVz9vA8EXAAlKWN9W1xU%b^?5pFAQuocI z)X&eX94D|-6qY!JC3TL!RMP}_jq3c-*z(Kq<2?(W$6i`Zo?1Mg#U0FgF;}Q;i&Iul zxWppAKiTt~6Qz}-5d)J9o)zL%dnhPjYVMn;>S(O}gft??-4FTLJ+NkWD#qO^ zh8TPe+b+5=SoVyyL?O6>CZMvC6%{6GFi4hF@Up-~$~|nvZ(1L2+HKSJxZyG;kq%+E zpg*_1U~3C{&LI)p!`H9tA!meOtAe>{`qgZNyGPg9?e0Lo>vg{qnvE0h$Z;9>(@&+Q z8<{;!h`a3X|DgS+O3gm;I`{O}NMx)6X@vM;qLfOQVX@Ube{Qhtc9@4(#q|6n2eGi& zPes&5gExO&-d)ey*5Be|g+ARbDIdI*ATnSnmw3V-_P_Y73-SM`u|$b0H7AEcZ5uue zM)1V*1Ndw3)cXgMOhlM)&is_7lK*vU<5ME~QC&aQvQ@s`FtP9PGuitvUE!P93GN9K zs!;Mx&M#cx{^$2B{kc5M$VoS7AlLeZgB6TUN~)D^h3ehRbPLc zBY>r6)=2nc#jVsU$VvktV4$8*{#ypp2wM8z<={Mq-G0o>yYRzJ0FwnOXcQzcEsjjF zK(UEK>DXPmffC!26^Y!PQ<;JV!QyugqO*B@8r4Z89Ptp-y_(;|^*u#Wooh&k)*D=y z6L9rv1lqLx{QS1=?#rH@v3LOBxm)np8B>G)VR(uI7~!v9V&}A1XTIM#tb!AHRZb28 z8m|hK!^u9^9366VOY}2aFRSDbx!fhkSBjEs)VOTl>I-$aymH`h5-rx}mJ@D@lwcg7 zCfx#iJZQ3p$Z7jZ-^Np=M++O!wJW#%nrJ$C!W*~~EbiuCU+b2GgWVQ`Y=noY8#sP7 zUz^E}pYZ>@a839ioxaC=$5aL*@>V7QbFUkpFnS5)>eARX&?R_Sf-8HgNi@&xvua5M zy1tM%oq5`_^^Xf^HbplY?7Mlj!Br}2-Hy7Lk)M0=vdogqzH|7~gh*>54ZqLpEf0YR z;kSP8Zi&b=;Cf=iewPh4OkKUhApmkNlplW zfF9s#xO(*}E}8@%cLF~f&Kw%}wvG-&jKV&JPl#3>1Yz9K@1K!v)mLgGj1~lM3@UU2 zomvONgZcaMTwpo7x&S}&B2NIFI+ObU0H12r_7zsT0m}X9%~CdE=T9FNXsA|M*Os*+ zKJ?10U08UAy&ihysSLA2l`xtnD!or5?> zg}Lvpun$F76x_4B(Qt)>f%>G{y-$s|_LB8#h!AZz%im-%J$X#)m|&GIUGxlTKcoel!@=0 zB#74P-#Cu>&w#o$H0r@iFf}d!IM4#jE%;k(!5BU~bAYtKJ>ttqD-Qs%+%jD4`cS5$ z6}khUAQ)Z}``bV6+7+kx%bF5eX9hpn=k@<=MmNnX2MwwP#1h&2}a1O!%b?F zdZxxe+C>aqK$I35ERV5fS$2{;lo{YU5Q#5XP@Wuo6- zm}pN4>{2m=s*aI;CB81BQ)d66)lD_?(jvAvMv$+#NJ=OKsz-E0_y?qL&8DXuQYqf+ zUx8QUCJEsx!IiqO7ggs8vh~@ilh_S0rTUeDwp!CMt59;Z6mfbskt0!+cc`NOlfi#B zB!fiq>({UUGTUtYVW_uf@$4aKB_Fv8`+4FAS_Q*56#hQ8=U>K?RfmPHTekJ^+14-y zbgJwoe|k>9m5V{ts2-FJCz4ecULIXV#Y8+cBh3!AVu+8HYDVm9W?qqk0>(Etj&>9P zqPdKQ5_#EhG4+7aXT^U7NB}gIc$L6`pX~8iijYCogbX$8G?y(u(Y*uM`jYwE_^iM| z{XTO%a;Q>kV^qt9s;sXy$pH(VlwkYiR+T@G#u0RSqn|Ah# z2mc8=AIoyC05b@1a2Zz(SeKfnU(3v+Eu61%K zn=>r^|5&NpnRl}P_db7eY2v)-B7)!5XzrpiyuJt}$0JV|ujF9%c}VtvhOIbjqPKD- zu75R6O=MoG7^VPDN7I4nuS+x2jTNrl%Ga?st5~YP5y=dA2EU`Q@X*s^YONhwSCv+E zqiX7&>Gn#UAN1SJtcoN+Rr9PwCA@j9%aGrjY^%~cb^!Q|bNd|~~MnUkvS;L>zXP`+(u`l)HwB59vj zNBlIsG$C1*mJu`(c45Ity|c*2c5JCgsxCr6HbkzGwtFO0wbn3xT32or5>3ijp4#(% z9ec}UkqfcpO$0~s`l*25GBy!&mnT~HhNfQm*wBFOhUt0b*PmVxC_nhrQKh1=hXQFK zP9V>!;6l0mUlN(xKYVZ6b3ZmQ|HL*1+KFDR%*qy$42ZGOjA0I{IV!H0WyBkOcv|;v zZO#=q!J1dgT88=ASW!Vk6^NIs$U-q|RfWBD@Ys7jiD=6;gdUyg1*OK@>-Sk0HK#M> zXmHV>H}b*x9gDMgyiVcQe=R`4P?2_4MhH@`8_QV8ZKHRLA8o@=5=4e7->Y%+L$%5O z7?sEA?bmWJQRg$+RFFAh{POqYg7Maan`oHPs8oJT*)So1s$?NQl3eifVj@R_G-1A@ z?<38hF^CKmfN}kh4&BVG%D$EUa}U>ro4eaDKBjT96JZLy=}!-$BEv*!;I99EsAd4mL90C{f4@dvsPhp*BT46 znu!$zoj~Tr$NX1ZR`krYcXw;QRxdvm*h9Nhe^yLKw5o@`hCtTf3cg`bFhZ?hP+}*l zD@LjsdFk^3d^!tPXcP=r_<)}SBFfFcJpSSL%n>XaDMp0efEtxfwcAY)sMdESx?5t% z^S%0^hs(Vc^Sx#Q98kamAbbysf`r6Z(4$a27$<6C-dJC;Vk*u#8d?j8GvQeIq%vwk zlxCV-9zj7dJ-s^*!`SlyP(xmUZ8S?*tbVKhO{v*pDD&%(E~m>BnhVb@ASo?L5EtMP zhH%xWEaH$#ZIv<)lUNYbJM;BV%29U=C7j$WDkCp`;>#<8h0?}XNAt5}dQa~vO%7!( zO%5c>(GvgTeAqxJ;RTB|dYHM5o*S^r)m5l0RAxexHreuO)Hf~Vy4&CcwXW~)p!x^i z>b#v5e2h8<>&A`Qi9&cWarMByndoz*uSG!Xl=Oa~I+sY(D!%aj0BNwUkmlHXG0o_k zc>AGtGB-E3@$*aI)20OiF}kpqARq$kD=0khk4z|g*bV9*FzG0qmNl&Bg=?RW6{LTz zAdS4PsAxj(0wlI)2ImieSWamv;aNv3w^X-Ib2>kh0?a#eX-Soh1h2F?&DrxfVY)sp zU;YSg_m#%5&=FB*$zixf-keNtWZgEfXS!VE)Q9JvYJD z82tM3Eb8!`8X6c^EQLsj_{*X{4-{xX;@8m;kvZVNjL!Mf*C{Aq|21CpfT3+o4cg@Ksb;Q{QD&`0FiyLw)#s2v6 zFMt2$-{1bm;VjjYB1g#7?=tM09t|8Cis-J2y>oEfn8C)N>TLTpR%It}PWYJoD(I=K z6MxcVZ!;?Ss+7yE0;Wo7z@@__{PFe_nkf8~SxHO(c0EVTPoOI5;3j-qO2_ps3RD4_ zf*8_`5CrgRTrj8?3V}b~MvvrC(tu{QDN$>=%tloKl$)v5Nletv z%~}yT@X1aEZBZ(cFTKTKnrb2gXM~dDw%H4dfAaOKyrinVPYAHLsB8t_cVeq!XJI9s zPJiAM#qmjHO?}QQdATux9UGQ&5ICv3zfeCq8*=pUMdqy*B1KbfID`kNvg+ydOax}^ z$hvFWxp2L++{(1-*6fdQ7`|Ob-(4}r?bP2IB>4m)UCNC0+?l`s8dqWr4Iv(nLbRr{ z6J|2_Ah!!|@{heTBo$+b6 zeXF=>C8$2NKndP(Dj8o}W?u>;Ed!;%a&i>zi@KLx;98NAlZ@RazaBL%Q)w8Yb4B9l zs(wJL)C;>4jOr99^+Uhq_ESB(_|S#g=b?nSEwmC1r}mPXdPystUCK~wS=bg*D2`G$ z`n@vdJwrfU?uSX+aVMS3`1%TCWbY;s6z~6JGSK~#dm>$>>$LV+9E@M}fITa-SIuU8 z*w!zVp?y zS=J2o&T=tvy2bjAj`7%l)d7qdu9SNQnSzd<(kaJY&e3D>U8YCQXd)bpZ;_>ZBEk8u z%ENA!w(jmR_~S@xvNqQfOVTAZQD{B@EKxOSFqVIb^v@9iAqT>iOhmPhKK%oNopF3o zLu}X5GE|Jk@G7X>THa*S+fzKI;C8s?;Lv<+w~M6^_DYNaO55!^I>xXK%zpft$MD^D!N%5G0S*=P(6POF2GB&;a~W7_^}BJi|x+E=NC!V|iYrQLK$H z+P_;h{d!Kf_-&0$E0rq^0<+}U{Jk1$rfT=v@%!`8B|m;2av`qW{i+lE!Kf0WVLDJZpL+O@9=yGIog8%>*cDO^gls`2xBFy^=3#6=O|# zh-B*pxp!nGpCd$vm#w`s{(R+(h4CI4OaMV5Gl(%o!-pI5gz_C8L8E7lVisru@34%J z^U=mNMrkcBy5j6iX)GkYP!j2DCq;F9&diwm)>lOKM&k?pG8);ZEyGV_4J^beN=uPN zqTaF~+;AxI+B3dGpEidS-bYLX;xX_Q;^xDq!gmg?Aewx5X)Y|lORrytOvIF$?lIfT zVY&4YfCji?pXoj3w>==mb9R>kkHzt~GpmWGl?c`&>NdI*Uz?gz%BDWLuOjE$sTC$d zCZ?<9TIw$S7W(Uh9KZH-5ZU3^f0{sD;mu>ee)U2!Y%Lc{{OPr@w$#^6bm;}0pU$sp zz85y2nf*?2y&zX;Ao`&C<6_pCm6SzAdaHGr`fcEc1o)nixV7`S31K5Bd884w3?rBU zm=u-Z<=G$Jtb)93;5iU}Ag>(YDH>HoPWOjm&=sIn>>7Aq%T+cmx);t*0lg z*$!e~bSBq!*W<>9O2oyTZoUdZ*%#t3TPzGSD<}9}oUbwPh3G}BU=ASWXM;xtF|l#( zf1&us2o~w+f6o3e5N3J-AHOu&w&iJQ;i+VzpCNlIi=Spu<<6=H(}`&zdta_h6slGj z9a0$f{lG`L>Rx(oQ+bk-Zky}F;Agm!GQB~bTFl*A2Hk{?&E<-c$sjwAC*SWVrokDW1N;$s*L9E&%ps~ zQ5hg@Fl_Pf^SbLDryY1P(P&pln=*AU)$Q92*Y(T{dz4(<5f{-dD%IFJ_`*?- zd%sTr{XxsFw-W*c>(w0{8fzOXvI$C@`@IeKwnzufy7CV7&0g3cNjPdCsg#v;q9Uif$*XTuwY&$e=;U`?M)K?5^7T{=oa=Q~`|kbD)Y`vXOUUYjd) zpGBVksilY-lojAR+|(1)?&3A^lIa>o^>9PQFv9w3qmTTD2!)Xpvj6Gu2AW)mKrq?33 z(k{%8-|)Xd%OU(Bd&%A1-LK7i`OCd6&vFAkZ5zF+(i^qN=|8zC)S|JsyNulGzcf02 z*i9Fe``HS2YAf~SsnZ)63zQ1=+e+&r2(-TN!Rtjw*43_bN$wZT4iC|4 z^7TDnXW#?Age0=i&`{b1gh0X)bZ7n|XMhOU4(vT(`O6d|S{i)T%mLfWm+>{&mK(z+ z)-eH(38vSd{fgQa8OQr93~a@!jk_bWMqsfq>#uiBW_BFfjXo|p{6fQqJq-tUk~bK0 zd|AQiR%P$an5BC+aVwQegwEXfm{5@%#GU#SXl!U4{P5nUc6qJKL4vFC6y$`W{Rjlq*O}lX|p#Vv*+HNk^gS6)g>TQ$=@%EidM94&-5O{ld`cZwdu-_i`=?J zIkXo97AK9N=1{)f)5aP6X(_B1w9_@hK8ZQMD1`LO#wuNw@L^UJ+1KPD;mdR!78JDiFnNyT zr5R$VAF+FYeA&7( z6BDTVIjr`WuL`pxDkox`$G};3y9O6ND--=`?Z20$oIKFB&E7;x$MN6v#FpoU>6Ycj zh2#5|_rlGqikvI(vskO|$&zKoka3}P&QS-)XURxhj>b(ZDz>*wJU^WYLE{jYcv4W% z?&Vij<@o2oTh($_TMN;JTYj7nSH4erJ5$b)zwmqJfDIj`w%1l7%}#sXS?zYm7bs3_ zgwaj?mc#!5&CH^7fm08L-!d`#jJk<7ZIU~v{9nI*!LADcZAsjB38fTDJ+G3+6DG59 zhc*M$cZnciww;59)h9p*5XgM)A}zHXsi=mE9Xs_7BuXrE(wF%2^3A5kMWe(6 zB{Y+EN`y_|x%RPXldGf;edp*q&sDdYa&|wT(7DGlq0X$jPYy48*Fi#cW zAzC;Wv9DhL;&EXH(?0}v{o=;ic&o=ZvaX2WWde@5EI zWba2Eh{%NTcV@vgKw%m1G3)Ryb-n%Vkz8P^QOLyNL}2&KeX=VimEm=XII@|ghkM+D z-I$wlWc2Y$Z%N0qe}uQyyGV8_R`%Hr!dyFdRu--5+{+(E?U@&+Pg%=tj$Xwl9@6Ui z;L>YI_ks7tr$TfsWJYRe*qcqJ9;py$EY)!eW~I~WU@w$&Q`>| zN7j8$!d-`0Zm8bzAv%`*+MmJ8kvk1{eIrv7uu99dw= zvM!R=nXMq!KIdC;x;W_B&=2n%e0Hg9Npa$}kzDlPN?{n%$z9+(C+l<)666ngqK{#>%BT?Tr%x6PoXQB!1qz|@jAvt5|Of) zwJ+EE`Xz#P68Wn2ya3k!bOMu}tq!st7( z;va^77rn_$6427dP#NqM$AXOotx?;U&XU-!!3!8?Qga2J<5C98n84by?su*!e?GpD zclBD+#+6TkQuT8`)G3Sxk89o=35#j3EX=T~nvEFpX1%pCBO@e2?#slZO%lfi{-`&y zb}daVuhUMu0=@0q3Yt*gqc6GZ**@95EvQ(-Btsrdl^Xg%*ty&cL$GI7owaUY-Y6|Bn5m;-hJ&q{)pVK5bvSRd6Lv2xua?$wCPXBWIQC zx!=2K^dd)HU9ZQSb9(+L>vFVt89o?TH(s(}mRFmySO!=752@tQ<@e^59 ziQSHNZF17h!W>c@bY>W&%FiYc!I~j5o>{>~-jmuf@#GXYk=9^n#3KkCLBgLV1%T~y zICcEGq=fjtcEVwQH65x*f1((_rxR|Y-H(=VP1NL&U;-Y1?$@=a+^!kPLDG0UT?aXW zS)pde>*o+x^9)mxgDV4J{_?B_I==Qp#L1@_+rn(Bv*CFYy=wlSUf%0u?Ch^w87ybK ztQ5F@l)0co;VPF%G`=n-vB%W8aRq1Txzf`?g(ns@C5->%ELvQEY($AYte6+R-OX!l zeLE64!oz_M*d}d#cv-mC_*5;^5o@EV3!PpMCF*P|hj3Wc7Xh;NNO?zS4`YGZ`rd%r zpIIBB;Feo=t;{~l=}Yor@_NAoGkFdjlRjEl#mIptBkH);kd1^sSNS&g>cO3HA7ASt zM2FD|KWy~%G+uf%`+la@|8_~o0G z6p!B>7d6VfO@SWqSby9^B46UhLr3Oa`Ppoql@4r6AD9n!>M~!JP^3ff`ps;kaUw% z#hO(%dJH~)7Uu1Kv^dLke%b+>H|wY{Be{O}$!`;-g+B>7mVU2K|I578G!}m3V4ayq2FJ-4JQea9j?Byp`1KipKNrxVR;F>s(%pjICZ&hCL|TIdS9GjEj` zzh@ixT}5ew>u5wBlOHqI+UihzfyOLQl{vv%m~>kp1GTgd+SpKj`fS-!tqi+NR@f-WUAIQUqhjMonk2&0CF zi8?(A=ppdKt7IXO8& z5GLgwPqWL}wJ^9?!BhGEq9n9koI!!eu>g{f;llMfit;MAzdM4@_0q6lhF!h}^#!5Q ziRX`f*(><7_nVqxHz0$D$+PqE!BuM50xWvpQ^}q9_$^G}5At7^y3ilHhIW+ZFSWuq zGs%A5LeHH`cbp|vs#ea#P@xIcG_lxA33nJxxocIb)x+&~K z38(n)p$4}yhU!X$PqKO?290cE>-PFyDpbu{=HOcB2s5``>M$1Xx0M9gvC)kFtB0N?2{Y# zY)a;E;FKhl8=U>=r1JHSGv*t4`$~F3n{>>aAIC;{L9HY~7-vO8^WoH9xm!V5BQ9rc zBoik#Dui$b_3rc6USd+3?LsIJn;nME67Q5zT9m_t-md~=tv)>l6EK7xZww?*4b*)NdN&wZ~11P4TNw@CQnb<9*#_3UTLY0{HVNuaOWY1JdykxIu5wH zAI;6r2u4QYeB16|qS8>JS#L<+EwUzzXhT?`6LaFw<`vrX@n17B18?~PI0NR=mdaJN zFdJuFbk~bIV;n{__Z(5@GD?2CG|tffN@=C{t&G7G2W(Jm41;H%Lkn6?F%x&0=3M5( zExq(QG41hXR(vFPrEA-R`6~{oc-SCV0cbf`6)1&a&SD8X@b?WHVQRmSlojc4%CXJ2 zmuFv4`qj%KZW~G2i5#%iQc>WEmLWHWD~u*t2kEYuBlY>RX06Ox-xzInKX=W4^D+v< zq{(&qGVe_VwHMVa+*I>@D64FUT|72t|ArEHc@fY_(;h>34K5uzlYQh7L?S z2?YoDn&OnvxcK;F=4j4?rFWlpIZAL3h8DhXvy^$%z|3UCw}4<1h(0hEGwvt?Kmb}I znE$z*z-aSx<0+m{t77?2K&ypaH3t3%z`tvTas~ zxQ^tGW9{;a@YiUc44Q((cBa+BoFw%APawKW;wln(^Ccma^v&GhSVc%H znC6l*3aAi^;L8S0X=;j+7qi-|XW0++6EHH7X)>Apyf5{zW7w|{kUsRL-e6{s=5EIkWldIB}l_%?fd^3r^-ILb2e)vWN)t1fxglp z9mlH_ZyQrDugIa~g8xU~V0E#Bma`{qK*S@9%$I&s@*UHPcK!@9p)vU-$B7^ZK1U;wB%b zZ|wHl9H%by|GGBVPcHf_Un;w#6WFPLI$47%U1~hrH$!xgdgH`XirrHs+8X}&(M$!|#1 z0vv-UH}CRIcK^8`8%JI}Ih`xqH&cDAZwJ$_c!8j{O5ci_xipuGF=3moPM!Cr3!Nf= zzhX9S`$9W`c_ZQE+)~~fyvBFty=TX&f+l=T1)oY6yNSQNim)!iAS6rIRPG+TKcN>X zHdZ($3Hm(ed9j3E#jY-9!w#8Pao=VMRzkY1nBY6H`nJ%qyIm}v@eS~kXtO~l4)yr) zE*4dD#L=W6(N~C*pia$tZ~MvAE``zu%@DRrp&hPYBSGIyq1yu7FSa?qAqW7lNdky} zwE$5=U)wd6063$?2MhS_30+%LagEKQlelpK5nF7XGT+CwZgs?4Ge3c~(DB>u1v$=} z@8en7l?GPOWVgdc(*#MjM@hz9Y35stH~CQmQ6ZewR-TwAJCBr4Fcq`eWNc=f`u2EgH`LbQ6q{EcTR%nTt2Wth=+b6Ms4`%Le1F zONXl_m_XYdxc)N#<9N02AI;oXw5cA5`U%d#h4k`h!G|ffcpSl+S_AqZe1{=4!#Y$> zB+R!WNdu!&jABP96hx32|%My6EpZ7 z+!co@xLPvKA7)@$2e>E)Hy$q^ts_6Q`E~307^joIS{+}neFR(xS{>V@6!`BV?Pjpf zylwffonbX5E;3vdk-GJ%no`xDf80{Cx0q03ry9$=jES&nW>V%Dp_9$3JjG;%(+rAp zq^56j`~A-%*0C8R9*ehTk{dF3bITX(5p_6;M&EQP`S@Oo$>C^oomfkKf&`SCJ6S(o zSJo>AboG$cp>69XOGxzVzng8=DlG^C3>i>LQqT&dX_7a zNTncp5X|LaWCF4{tvzAsA=p10*dnK}SCayD2R-hZh$m9N=URl<4OX)jIb>bTk?HK} zvvgR#59KNv4>In(UC>Xwg{|QKxp!879`l*i>f@?Z&{_3b;xT#O?{op7;+EQS61%(- z!!qgga^=(_19@GCR&~qj`eN_J{l?4lZhN&>DmbrXlbo3g$@V25D?UC;S;v1^<&zH7vikd7myUDu?K0x#S7OVgsQwf9ez*$!bB$Ddyb(_Y zCL`Rn3NO#!8#ysw*=i>7b#fAJT_-?50|01LbY?}*0&Lk)j&g1Olqjg{py_nWP|`F0eH&Umsin#(4f+e3!JJ5-0O3cgwAb+Y|c##T@nplZLTg>!Rt4yyRp8Z`k@bwreU8e$5@^TWrB5u3V{)`6+tV3H>2vHrFEzlT3 z2Z~{^b8of{ny*6DpLf_ieuGu6D$+yAg{WO7R`v;azvQS&*6^l(|J^NJJ*XfOS8~IPxdMU<^)!TN%G$T^}y2N zJft9K7C_)l*9M){KwdMXh`aFZFD;#@b986t`Md?jWM%SJ?X5S*NwVU7 zCY&Fyb#JN^0?dN4xoklJnzAqhGS z)ZPhj!bF=5&?Qj_tUy=~2FRY_SUc-;i~$z0mioIRxzfR;eD!APll)o8`80jsN4p8+ z=9fW4d8SGUgSxhHSCl;s!Xu(hA-75Ck5_sW_o{WP+$mS>`dQ43wh07IflZ$hX6>h{ zLr;}uUntdrTZ}mGF@{REpzN=6lqYmCS+TWH*!tYC?Cw&{8gnteD<@GtW?nxnn<-Sg zHAP78*S52m1Si9`I$TF4wVgR+@Q}jd2)Sdt8W5AI59nHte@p~t^`@qzz)c>VL}mLK znroT&f!PkJkFP<1YVY0mRHHcU8JUu-JN?Mgkv;-C!-sEuqkFgtUPi1Aw+Z(Gs16E{ zjTH2T)X(uAc`DvVpQ08Q$UI(k4)W@RR_JyxidNAY%ov1^vR!w>QN{I+TTixbz!wA) z71Lse3pwNxw+Vj0gbTk?mBLQUvMVjzPft&uEje*Vk0pU+>pIpGs_hqcZ{AyXJibx; z$<>1D>V*R^j2an8N|o>Jfn?MIx*I!SzLXn^k?(6+3T_%JNjs_V2d`9j6A7a`;+2;E zVZLp=@7T81#m|R7vJR6@D`ih9a(xVyNjbNma}I| zz;emS$!=_vf#EsCFLnNibr{pz7WUO)iLr7)^17Qe-WJU8_D467e+E=$j{)5{*M72H z3eXNFmn+sVTo_~RjctxMY?@8Gssug>Zy3N?FrLnK$m zS6othx>65_#+aZeU=+xyGVrsv4C5~l9F`<}Dwjr+A_i6Ve>!DUE@W^eSy-4^%Pjj@ z25(Aw;+RKIvZcq>knPu+$#HBzS7yq6`f;?2Jtzy?j~` z@HeAsqR21TiC>AeTS4ZS%W6(LKE5&G(u3KF0($>tQbHU^(X;js9c2a5o~cC98P`_& zQ$;9d{9ZB#0%$p>hrPburuxa*lLbV7yBq$$+W}smUs%U(8kk>YzK~9?Vr#gSuz27) z%|6DQC&!i-&k0P}>XnDefRPb515JRJ$G7CfhnZh7jj=2F?< zD}a$P-@D8V1Rb)jP(o4h8(!H}tCMJp;Y(0d6t19LZ}%KBWuPWl-e=+Q&h^9^MV=uv z956_cQ(3=B>*0-Cs&H+aJ-p7Yr@m4$IkNdhx`yT}38ki~PpjP~lm=;$8{_4@>wo`L zY}N(KKL9L$2|~zngbuKijp||?VVXa5aDVN$N$=$g72HJ8xl5UWf8e^a*Ns&j(`|fv z;sUe%?1e@d9p#*$h#no*86U4ZM2&L1krgQT+BSebq97nI&N{kAX~9U=b7`vO=}b8T zd6l|O^-tzM-AbphsmU6C^67vLiYpVJ{LuQCWh??uBw!zK z4`oc!;&CT<)o@VC?5KuCsmX+XDAxw?^1$#Znvi_T5N>5>ov#m^I$fI?;H5k}Fy3ho zqCU3Z2`Ih_03^Bzpl&_5N#NUDEpUgI41}9-!T_{}(jO=?e(@jMti;U|cPG7XXM_d2 z$D^%3cTttxzB_V*QzvUwIvf&4zH}K-`))UQk!Ds!B-r1$aVfPEX1!gG67W*M@13@X znYs~fa4t^{i`VY|S4;@sTdd4%L6u=Gzq^m$pg*$>o6VM6<=G-Oe@@CShj)A=8~@TZ zT*c$|&mDtq&v^fdTVu!yQF6-iDYKXi{ffebP*Ac$jRl=)xMF~y^Eo+hEI`fhID za(68@F75?4ZXUK^blcDd08&IZ&=xCPYuN7c6fAbg#qc-bT?k+SfD2K|UXjF@l!3M@ zYV5P^$$-RlevvGzwyJFC?hyGdF8gnCfauAsx6hpdY%x{B%Hn+JqXuJN%_q*Nd1-Ifm~Otw~&Qann+_sGeOWyF^h*d1EqkC)a(Mi z73IK6U^Cop=Kd>9y^~otioE4T{&0bEAsTDr2b)Xhwc3)QqCq98(4P#a%7ozJnPxIy(oVMGR1v7 z0%}H=WCa3P82LQq&zfxW^{UA%skGkqcRN2%`_A_!@0gZ9nRy662v8w`CFSSZlAV2Q zHM5{RgU+L=@KC|lM}F;r1LgBB?2P6-zV2ye-3>MFO?jxC-%8xOxJb(0rQR-~ekgnQ zO+KW9fKf-V>TRTixI(E%|2fKhHZglcwEFA&g0an*YvQv33q+j<2k5O+$BkUHWbUA9 zgoPV{5XtgQ%~2E3jLjj05yn7(lO>-(a;h=%-t>?%$5)a`xzKx;nnQ6Rt3xspg>w+A zC_Lc&GAIRX01fF_b1SQu;pBCn^`eVCCpJaMNR$5D4DGGRy<_(>r1S5MCF7F= zUeElw7*3(N<37wf)|*!0?XLRNO;%v-*Am6>tRM@v`kCd}kBi3)L{}PKBkoAivHZ^5 zsh5`)zAsZ`3Htu8R4^wtz@c;c62zfzDnCZZS@gHDLRszTy% z1Z2`?bF(d0s5Tv<&=qaNg`QnrvV2ak^9Bw(H`nUR?{*I`i&M!x+ZajbS>6@lh$c~l zkJBy-Z&lye-NAHAlVdg@^_b~0$yn<@NB8W=*9Y=&AFDlyN>(X!opE1qkAx{?-rV(A zc*R|v{s#^tN&nuqfW1f!?)&a>_?P3iNxRm2rK3C}qv2@&%D1^Q(|_gKJi{CI2L7Y2 zljWCv|IaDQle@4C-o?(OHoN9YQVN!L&XA*)} zK>xJ3ukDbPg*V4_NS)qWv*xK=+XMTAVA&Hz$af zRtm#**x10G+1i>(MGL5=C*>a42 zol}#y?wejMuPMmG^vg&4i?i-3Z;47{nKvC#lLsdmg9}TkjB8{3>tmzIE8QS$$5{>6 ze6p2j*7NNj5QK-$t%=wLic-)rP%A)R$9DZI8)-);Dgx6lChvy(?2=zm-t0@j|AZ)8 z3tMYi|7umFg#^hHGQGw{^2%nD1N)0d{{ylyA^g%A2jnQg*P${5f z@KL%R)ni`-ei#~YFz34`1SS{-=e3M>ge2A)3qmorEjS0GWEA8O-OmR5&N9J8w$P67 zw+35dVU~MBh8WvzC%e$Rm0sRgeLDlnjab1c9EJc}UWba)|L|F^4oO7tLJ}t&i=xsc zGettZy#Bj_Z{MIPLt3~Q`ShtmVd0GI%Z_iZu%BzT=@|f~WI<%A%h_8Bh^mE}FdbHp z{J-ySBN;cds*e3e1(jawqOg#b{>)bG(vh4q!wY30uCa*>l*ROG<^`pS@iG&hU&BSH zYkbT7s@Ypovb;G8TitpmmvsA|eK9V2%Al~5ZMc7T^WOoPUZ}vd$Lh@+hDA>N)Yuod zz3SC-vu<-0L+Myc$epfBds=nN!e&FQ^iIa{y>xrB=M4_s2KL~Ap8f89G2Za=aw<8n z?~5sij+f!1K-(D9%BVsxqej>%M09Y30m|%NIqxFf`CTcx2}(MgWkAZ~C%OoQIC*B+29bTEY33XOgOn?O3#kbjK$q0|(|98rZl^%FhVp z91_c!@m{}rUHy)umUTe{HdQ;{Krf%2D9xVC2&bcm{Ih9cfy(UcyuoL|Vr!F{gp7<^ z3Sxul6jS*lIkwDm3*A+o{9$-m1&xd(j>z$&)Ig<3aeX~l^8T3Ozo(zs@`AiK?h4W1 zUo&py5~D}D%NA{lO~Xz=kuf}g?*|e(liCQV(4L&&PQ02Apx~X@MDQxa&NlfUkQj6MMqsB#n_>Kw)4hX&>BW+s1ywSCYK3 z$U%bV(X9BY`4`dvJ_ zY92a~e7}uV2Feoyc6>eT((`sFL+_f_ixg&$e)h=*`iSN~aWh7_ssr9Ok8|{X@bfQ* zdybW@IyU?4PM7$*+sZ5d>cvg#dd=Ne=QMtnk^VZd%&)d5GGXClP2Of=7LcXey6^&` zc(3%ZBHJL*vHs8Xj0?l2P6zHq__ss6_37K|xN}O%+O);Xg!c*}y?|%t<>zmSkht&7 z6EgBHCp#M|02GW!O+hscY8Oft*oXJzDaKqp;9Nj__9--=UW;R<5hBCBzw;9iEn5sk z1o$Vw_FexHQxY#l@zCel#iP?*L_p44M?SCwftX|J*9BOSS*W*2Thggg2p3#eoYuK)--Yipyqs5V+ z>SqgvsvpP#s9~sOu{rV%5VvCI{{}&h73=O9rg)ln6tX;9o2GTm(@x&Ohp$D|ZoGi@ zfpouw?jRf^BXG~nh~u7hON4c$C%=2VB-==h@4VL8`65>8?VWF&-#R`dn;6l&j(9Ls zatE-7A0sJtGi(@MsUrKhBlm^47$14HaiNbNBG>adB7A&lD2<_uw6Yp8@{fcn>qW-- z1C`^`Z{4a`3Sz2n@KoA{|3=wu=Hp}H|1pQ7aQQG=aJ2b$-5}8+o(J9&Sy`f>B%H|W zeECDQy8qycTNkDq7g0j)-i)6Z1TsLd7+1=^dBWgCpt>z`}i9i{f(xnb*8mpK@1!C9ul1U~)*?HuWev+#f>O@3WP$oL={ zV)%CD!ISS&p`mnbVat~RE*djc{ux1`AJEi3QPbMbtq+$dZ|^{?&UM9ZNE@sPyX<}2 z4gdRYE}_KNSxmVB_u+#)tT-cpcM-x>Gq*x@7%dgs@t4z-UE)5nFq@?5N4=HlKNzs8 zJo}b3+pvqm2g{^KGaS0!O>&K7?utd-hj$mb{FLI4Ow2dFBGD@a!gs9i?qQ*_-G7#+ob!+<4X+gx3_n(~HdzU#^_Z3L|fQ$yeo zG#ItU%af`|?q!c#@-PvA~+ zMbb7!#PYN5qc2t7w+%Hv&rbE7kd}r`O)nAkaw@;>hHN!m0W-;P3SkyGGY@_u;0au5 z*iWr7WGT_?n7?oCuAMJq8rUZp^fs`ZKVNf|WW1*L{Kq8!Z=;lx9}k#BNYc151lOzvgzG$%=BV=~cUX2--9!nX@oz>3tQt7hg7$ia>5qp3%zdKOmj(o?8C*f@ z>M3J&@MS5qtNJg`q#a4R&Djl(nB@^QvM z(7t}V31_Y$aKZ?44J_A&=zYKS5lslcPZU{Lira5@vJF8}`_V;#Z72{kn^1Q&BeTh- zfA+v~rf13%QxDiyT;@5|^V5**0%z17(c{34??ec{#V8uBA$XdY54+D!!unK+FlquX z2{u1CV=FZv433b%nY3pppz=#Wd~(k4=G7S|XlJc}UyQ zP8I1XEjb0N|N46Ah=l8tH=RYwuU~)V%j4?9!)6!fC<{UnsBch@{T(!1vlid_7lR(u zS=jmVK@9dc|`0ulcfL_!5RoTmL zHcnRfz44uP@yL##2-$SeKTq$Q`yT&*QZmKn7x33mTCZ>Dj9Jb3J5!^s+bfs7zx3+7 zqb9V5p)H~M41S@PZ&6BUuI!xtZ)~z+A~1>;sWMZVjm&}5(y>vIgE?ok9?Hr?2ahM_ zZ~J%S#+&w3O-OT)lk+bEdd&73EkNT3p9+llFmnS@8K()r9Znoi&<_z>U&tvL6mGO; z2cJXPFMqn05m(nNjp9BKvNDQ=-|}$D+~7&kZwQ(okJVX7OUuY0OozD90B#e10lOyr z4bdL&e${sE3ui))D>lGX7v}Gu$-1+Xw_|(CUo~ELi7^rjwcI1tI~XbyC&Ri%oqT$a zXvm!Wq4svdySneKU~8dk@eENsE0_UyDw_|MGDMLm2%8*I-zybXaCT9xtf)ZiokuLs z-CcPrWbZ0z{X0HqKAL@0xu@DBV$C0n`~P#amuu@XDObb@yGi8Pz1t*(7!d(KsxZa% zw;E5&JpNByySdEXZ`?0q|G=VSwKpv^SY9Jw>Xty?`?iCTd~$b0_8-%YLiJW$n8-}( zpV8`|3eIqwzNzqJE^4tXX!tyLMQ@*7L80<)q6BH6#TvjrDtpGA-jEU@4{2FVo4gUwR+W?<8Uz%ks4V2EG= z>I63igr2x!dUr-g>L>K;`EaH&lX#|^>3HJ?I1lJsoG1DeB%hq)(~Thvk0S$xsRx(` zk|anNp!{r_O zySUs9EP;FDfxETC0`1R1mr8sdmN~Lz1Gp^>Kdwh@AIt2ibh&LPqg%54^&kNX5^nwD zGk6`Nt>)y8 zOB*l!gRB-sw$Tp9Yo3;T>zf?f#IGiY6xoiEcdoBK-{-PbUi_+~fUDHx?VTUm zyl?EdQO~mb=J+t{;&e-H_z4o3-Qg0sAyf4J`4#5rpzvJ{|6t|2{)un;_!qu1-PeeP z_&EK=1-Q~|rKoS7yf`G=vY~tN&$80`XYIGD=CA!TT2r_HobCb}U|5-;W$XxRvqq*C!qR z*L&oN|j<@RS^mX+f6?;2}ArGN(cys5u zpcgJ%xvvFIL?-Iekw&kPDm3K$q2(OCEx5?Nly!rD&#*N)5TJ{-xeg3F1x0FoJOopqMR_$2A9+v7CN;hh< zK8D@U3HrZVPW9#>nJ(|@w$W!=Pe*aNC$;T-uAPFtxDlZ1A3KSA&iY+d_FD#+=bL%X zyYu7-G2>xZOWwsa>##qD7NpCvXTkeo{R0CYuHuAY+r>)no_B;Fmu zy%1hlbyu{Fg?o8x=QY};uvTz_2svS_qUHW;l%Th^D$d_S&q?Io9RNakC4OOl4C~i@ zH3O)uObMz(SJ!2D8{xIV%pSEnEK2c=yBKq>+nl1jYm=*F+PSE-hi73L@v5@)!=ElR z)jBDSdm58hmt5znVO4b&GFprrYkN6&bBe7j&PYVg=gU^=5J;n#$X`LWj<^%fOZ*kJAn zD$Z16@i&eQ<6}__z2|Gr`|y26ro^ALr~niCY3Lu-Lp<9YT`f zJIEnn?=}%p)~sptZF_XqS|7hL#hi!xVl;QUJtOYY+GK7WQ6}X#HNnCO-qNj~b=Nd( z_|kpoaf~pGSHupiy}SB0cZI#OC&!z7>q%~37$8aV$SbwQo!))P#H2E}aXC|rdDq^| zA-irX%pJbnB&KHxzDq~YdxFM*ypXLggXF!%TmE%`b}0A+kl#fgfmZqzn!o$R|M_VX zsw7>B-3%P;OLlumfV%WB5P@zhNc>Mom@pzJY8-4$iPAoJbhW-5X| z{u}a3@k`l1dg{`Z9XfW`(BqO~XIP&8_eY5*V%_c4tzb&4kmuDlQ78U}FRw!i?V`czVzYyi9Ar`Vt~ z!cn`QYFs!l^dw8;kdji(r)v3YnP*{3df|!izpa*M!ZOQU78h9tG&irKYxzAr{rJkE zZ7FIhR#qu!a4Bt(8-MoteyCuI_~ON-`@zi zvM@{~nCq*EtmE2(EBd-##}6MplSxS6aJImN{(lsG-8b!fl z0Td_=!X}DP-a%v;rDo1^itmGFA2~8=qRsON?6Qm#TUE^$LT@dciJAg&5TevCg{KQv zT=i=^IBIRq}L&rxEmWKr*TIRoO9sofWfTHkA(8%Iy?Pjx%IpLQP zFtO&sBVem3m);#Reu7KzR<{iKlBuDUxla({flID4ir5A!)AqN>`I?@*i#ukxu;+YhTm^bv$?Ju+tI14>&UX1<0J_ z%j+)OVR|ZQ;FYgj`1at5$W=akZ{~g6c^w89A0aW;JKdHSy3cOy6?dgek6gx0TmQ~? z6DKPK94}0eo)tekYCfB7+q&k@WMXYnqmE@yp>f~us*^_swlJF;@yDid_@o|FES2nM zsh0Fo@Suyig|8e^OHLg_m5vJtQCv~1L?^1vy!hRlV|b(J)heYwZM5(1E8eV_Wtwz1 zR^)ROWFZU+R6N;}0N3!&^UJ%x0WYCizxrOTUlSxjnUH5FI zc!Z{-olwZ;qNFOAh`pCCmc{F~a5m;MQ{=8pD{&_*FE zR){EzvL6< zDie1Qgp)xHCh#v%fL1BR@|^%?1Ul!J-!^=2%0MaPm|c6z|G3}tYXkBgI;$QQ7g&L5 zNHK|7#WAZGKS3#h?safZF{y3xQlK}7f_*k^tYqb5&+lR$^=6-ZmG>#41R zya1Xl6$joouRf=50xe?HCu)GBa;73WlX6(y0@ySR2-=joJXOil#mROn%u8GshU9*P z2tm{YH7+015waHN%abf-n4P)QNY?>fhMVkIskzNArt^a_E3!_=a0!$G=sBu}zr&yW zf`YnMpWlZNF;im1W=y7R;vs8k5AZ3t;Y9-?i?R==3HB01s1yM|;CLBiNoSYys|Tbr zr0&wLcEJo1zjmImI`^};Ycq;rrpv`Rw%HQ z<-3GR-;G86U9yImno#PkvDt;?&iP25GgI<8%Rb$eb3b3@l<4ZY=*;|j!@AjnEh2sk zuNWWL%pWDVceC9%w(}N(V2>Xk^bc5je6s4skiQ@0pCw~$d__jZ5Q>MXus!p}(njCanWn34P?&3YR?3TJmXjUHY5)?q0|ywZv5u(P8L1PkE$L{Vay*`4XSs>(*3Pi2!9 z=ca~(`j1v|sBE&fwzll{XmB+7J;F>oKAcsdKscSWMflXde@_I55zQK%?u^`W$Pk7T z`P-$yR(M=x7x-D^nXD?eT>}h-Zohr@GN8Y!YY?2gztfl+@OCjSiHnbi-lIv2rxfC- zz1fscX?nIrF&~->^i3XHyVwOzcR+@0Wm6RMI(FmtY2J9MSR9w)UxITjIM@0N7r3pF_W z#_{^<{)QPNuhu%c5t12ZyuDg$=zLzS`_{|jZ_tg-HSNqvXiYzdkMOkRh@2-8o~ZEC z3wK3q_sy0v?s~y5g<;58iFX@rp%UF7hhE@?xgHYdegF8ha(^Ew`)dw1JSjo88rrR6 z7oIJu%hTQR)Rbe=ybcF8>S>x0j_}xGj{2P3fA(45GPTlY?D(F8kZcZ!a&HZsPiil5 z@5g5rpT2zCR`>N&NcsSVbE;g?m#)n1C)lIFC;*0F)$o=gSSYIOj%k3cilIk$A!eor znq=kVFyjC}^-6eo@dJcF1AVWU@P>OR(8&E|*W;c(rF~0HSaB-^aguPx)Xl7T@DKmq z?zRTUb38#f&%i)ZQwhj|m>HunM{5D!WM?O*3oUbETnnQyx{^Bdr*-<)4sS_@Wj)~Tnu`Dc<$YUm2`CD_!`D6QX05yErD)m2xFM@d!XjZv0v z)3zzRU&uMZ7AKGpSg#wExrV{P-DR<{pj34AoRm5&S+5p^P-HO=<5U5kvO&2^gh!H@ z7R#A6h66{Ugvns8LWEi6=O2Oyg!l`D@xVV69*+iDFcS%?$!nB zqg~IopvXo>P4e12dvBS~o%mQ3?9fM+7TsJywwqNpHSDwg#Uz+b!9bWNU{j6F`cbLv zF7_s-6gQtq0ysV-*Phaurj@>y#J!>Bn9P*Q*3y*c-*`(?lEw_?N^{&_il3h=xth{@ z#VSR;fcJj#eq@5b-T8t%9^Kk(UxbEYwA4iG;a~rnoWfntG%vpMlhS!M{3OTR&wRw< z1Km%N{oAzT%uPG56Os3qN`8A>+`n7xxn$OY?dHZ6HbA*N3XTI!jcS(A4TPP#*u7dd z)+QUT_dT)8<0g+CD%^$;};HOus00Tz$qKT!x|DB`;# zuIqSG8>XI>e1SCK13#a8{wn(mV(qmR*gI$R`f?s#~d>|&60 zG{<*>i~RY~wy?{k6^g;C4RHxGH~2zb%ijMu7a29I@`#I?u9NwtaJsi8i`ViEEVr2J zNU7KyL=+O7j+F3q%|&+IyVj zY^0vE9Z+#5Z;R5hNY1twS2)IoHUIB;48x%ZVT4rDFm*-wSM@`E&1?a;i?8v(B;?mi z^AbGr_H}Ufg+3Xwn3B^AtIvfi-l05hv(fgES5hMK4NRA&qA~x47<=4xUag?CIq%-U zjnh0qhz^CY*`b^Uaw0NPz=4H}%7fh{4@4IO85)0XBIlS=XMC6Ogs>q4=pWV-h;@3{ z+G{V3N66AT+}7~iBTM~l)%(sI=LzBy5cnUD-_X#I7}Tpq@WZpAhDJLGspIkW*!1yZ zn`imQT_Xbn_3{1mO^pXe!pg@_ZszEY%g9NC+qN6Z#Rqa*!E%jDW5P+ zfuiCnwVa)%AIiwAl2MzIo<9saBBuS|ubIGLotD}rl}$nBFr-~y!||^Bp+=HWqjkf~ zJn!NXMFL*IV5g*tr9H7K&4!z3$JGMXgvi~PJrY)Rssi4%P)|>L>_CM;9@874y|<CfMo;o>I`24o`dH|0#N3^S&XpVpyCH1feOH@fF3KEtzdC5g!^l|OpM!+6J?MU zG%;^f<>M_p@?NtgC?YZK`Was*Co}&Hawo^u%#aI27cf1E zuS@@PRL0?Deq~|xr$PDrag>;qX68=1#e8~V;&w()`DYc+vd~9MZ&8mFhlgcve_^Xu zM5fNp1|%hI(U7AGCG*t%Q$28hw??jLq_xZbi|sf08Z6P$36#$<60D=i*@w+pJAj~> z^CUjp6>b5ZFn<328TzBS6w+|%SK@6yey8ET;;Z~ot?~PsO(%Fgf^7Y){LF1Gr39IC z^(NM@S{(KQf4@IagLUV_MZbu{_*AFip14%PT*f+40OE{j2Qn*)Pmf zr<{0gYGmV}Jl32OOSo*>II_hd=!l#lnUi*!n} z2S{STtrl7g9de7@PGh6}__-yh#_59^ttVSI6J9!05~Xe@W6-}2A9Z9~|8f)?{@dbv zo>}`*YeFk`lJKD8aJjjk?a)BE?Z|{#BRoGOr*u3H&s}c1Q2)IA0_F4ClptmPzYoS8 zsz^v;o^T*@y!`@8ZxE{N6@^0dS7r~`7A2EHwDWB9}(EdhhV^`MR zeqYLAjh3Uk_50Lqt=%Go8dZs@HSTk?!l)WK)?x|9N|EVksSs}`-g;u?Tx4Ez`so!D z7Ftx$Fi`fKdaGQku(&m}^sp%2+&=d%Q?1HbktpUo?SIp0t2Z3#4~)L9T()w(iGXRp z>fzf!D(R%w&2)p$u_uWe(nLMUZ`soV{E`@oWJ2|`0y;zz2)Vf{yeM9m*ekv&%VOpNu!pzO#?=N3o_&7SN<_Tsg%Ylxsd*lvFzM~9{W3ZsPR zma)5BgBOnY9vQw>Kr>u2sVRi^x|ZJKbkK5cRUsGtQzD8A4}3g(vUaB~-?Izpz%@)gbOv6S z%AD|&^;)0``3o%blp2R=>|2gYu?5Myy1H6KVA8}j$o%WP;;RqSdP6`@p8b305GS?i8{<69aKtV}Bdr?ctRfx0YrMee5pdsPqqeJC>3|80%a zjFh+0yd0RFndi|b;d1U;56RfK=V#@m=%b?I`%Ue)onq8aypvzbGl_HTYnx-29In`~$Mm zwd~TA{mPSs~U46ZwUQ(U)gurr~{Ih6_kFP(PygPho z-OP@y!C4P zROuexMAukZ5YGRK%SzSgzkhFdwr|^?^{iW1jcX)cOFk3NpdOy0jq*lNznB)joJ*cj z(cbm~uQ!to&j{QN^0)i$SvfB5JyWmKc8Uw%OcD|naW$20mvS^NVin)%V1Afq=y`d{ zTcBYb-`&YBXbBz`_M=4S6EPr1oZ6J6byD_Sx2S-CfHOoHNWg><7IXxH?j9YSQLj~m zOkbzPvkvUJ$1#{0vWX`&G_-tfBo?g#G4jFs;FuB92Vg2lGHSCy7ECw=gOB*832mBZ z&)9UM9d`JBYPAE1^c59^2)ft4D2~PSfV(qaFk&E4BcSa>K@H~1JLG}_n3G^7VUUY1 z5$$H)9?~mu)|xkkc7w8FRM+4E97_->RMHpZf0nRys0CilI-YNm+V<}DEa=+kM;_Z2 zrF|CG7FpGCHSj9OSEf0ysmoRhr#(IY6{$b1EevYY`Ai+#!@PvZ3{6a{VpUVcJbPzn zH&Kew?IWa`Pd_L&Dn`cv-k@x_^YdhHt;0%ly<;&Yqi_3v6{OyWznczGk8-q3Vm6bf*MsdU(~9o5nTHJLFT<^R=F9W#txBoS-hm z;X(qqF;O{huP<6uSs6Z78hu&oUA}IByUM2RUqgnoxT0v zUvRRAM_G)?B|eKsl{vgpRTNFh4~WBq1BSyx%0EwnQyjA74bYTHV~ApP+70^w$>r%#?pJLlVVH8U0%tm}8CU-gp7sh?4B zxXh+N5&qMFaKi2HqGI(-w|!tz#Bg0I*5$Kq^xV?+9NJ_X*NlvGr~B-ktZ~%hEwU58 zc}{JzeUNzmh3#=p1(P^PYbL$fTj?koofqUqd_E7guBfXx^bEJPh`f78zw&9p_%#2! z+qMeXk7QUybD-||kfiXlMRD%)uu9dZa=u#&mmckZuu14pzrMt)nw9fa>ozFc5*Q)} zstuUVFKj(*Gn!zi0GbH5f79+;o-2fGON>wHL=YES~`B^foP@+^Ay2HO~uv=C%I+;M1;QU^$#Q?+yy z-_}9^Fj@o78gMPRr=WVf_Z=tA_fjSNUW&%|~^bj@)q^(ei!~)_* zvx25~c%nFaZ1`O`W)(Pa&{RNU>%92K1;-t+G|(ePM=hB1IN>@qlMq_7fOTehdikrP zg#Jy=S1;wSiJ2L*u zSk*zJT3L60DD2i=Ezn&^Kk|zb5pG90`un5{z0O`h<+Ql@_srx=JcILy<0BAJeS;xX z=1%T6tAF+>Mo1Ttic6aN`c@HO&itAnty&wYUA%Ra{)4C618yvoZE0}qtghra@oOk+ zc5dZp9ltW{JCz-ypTSc{+2tVG8r4+z`>3U?sdno%UdpD&Ta*c2dFXydi=?Ykdx>pclF%EjKGU5D>i)Xv=X>|*UIEub&96b3KU71;9rn%Ak8NHSq3 zP3~NW8ZU3Z!J*g`>z?0^JPiQwY9?D5`5 zwg`29WC>HbN4AOI{^(^>F8vm{So1G2q+rY1v zCyKh0y9ut@X#C9RG*g^g+07QuU-N=VvQ|wN7^YxGmh!`vPO zeTe#NmSK=$>tn}bqyIUXc>`+x$_Y~&!~U`TOF7FTRc3O0it!bq9kl4s3ncb~#%o$# zYzw~QtvH|4F?zH0h|yfPmo+dU7ek!MBq6EAdM;Rw8vtUyL_l$&iaj^$IfL? z0%w1R)LEdOfmd_CK(LoFDi5sONv&E;3n!|U6{FOWubWrp=Av1#ydyI=uXpc0kS1VB zRsB>DqQSrJ(b$^-wnytuRvZ=vQf1~M#8vCMd=u1FbuZF1|oO1}!7LE}_0C^GX z;Jy=ei5E|2>Hf3cpXHX8rz#ZfofGuF>#a^u+k-pT=Fj#Su-V zwcCW>c(1ps>&y{(`H`U?ac_6-K661bs*3;cJ^B0i0r*0*@ zvKl0QJglSpZu_Z&ZYCnsk7M8h&9D=5<>SXHos@!e_2A?1ZmSRStCe`)>IEhJ#T7@G4H4Wa{-618p`Y~U>;4=G^*75kM-65Iw zy}T9RguUn&_&CP?rCVumVIdCZ5ApI~^~r``3_6ojEkBnyh*vGoz{Khu3+-kIgO{ac z^7Z|uYlm=PQT>DVXIgkue5o0Ce4*W%hsMGo{S7$LfHsKP{?DIIh<5)UH&9kq_Uo@- z4>5PgUDuT7B=~q@o|v29M1yqLRd9_+q8lUUzt;HwOmxWzisU*Oq*fQ zjoorYR#wRRJ@*WS>>V*Ue=caME)EcWli{X!+zl^wr6sVAQg#dSTK>|Jt>j65{_SXK zw)vC2DN%Y=RMD{=J-c2P?O1q|tebTqXW03Bch=r8kB#J}6W(N!e01gJp^o2giw%$Q zf2PW)lO=9i3_8y}=H2j3JZE2mZ}!+j3xiJw{<*tlPf0k0%o(~;}mkj&W^h5c)-JYBC2C5 z=(+i0Qipt3afr`?)5Z2yw~uJkgYUCvFFTDm#njH4D4G_VWTGfR@(9?> zIC>^It?%`NO_Ydb|8}$S^R&v=9=Hg_Q!9RyO+TGELyL>LswfyAw(Fs(vGMQ+GV6XP1-7jl+mKJm$o_$l_W>=G?1jd>-V`&-rqm(i`Vl$clZ4r*Y&wR z!`3zkyO|Fd2}B8KXiz<4LUI4ueUe5aDJ7=GG^qtAH;@w|p~}n*J;WorBB*L=fpI9) zlRE67wa{s`4;ViIkI`tf>xY_1yNzyohFqu)>At+lKQEOCOw%}nT0k{eCNz#|!0%Sk z*(0IrX1P^2mq^uksx01>y0Ot@zeMee>?-rZf&SZtLtkXG0)|~by=H$MwxLetFw3uP zdyQM`2AU4R8n-JfY?A%X`)&GPw&5cEmS&shS>dNE$5(M2%2;*ya5AL(8)mAd=#gz~ z!o&J@eojjnMO}92kSjoeH~F6Mk7&$ESa`xyc-qZsUo^lYq`Xhxi)IGh&I=TJVg_ge3XoUlUkD`a7X1FnmzW-~E8V*j~4q-s{QP{hx?^qMz4JHz|w;b~Jj z-dD#r;|eJH8D0Cu{UMS|@TTUbh9j(tgpz#yd`n#lB{*r4D-+mo#7XfyNoS*ceAW8; z(>4dWhB6Y<&&&;wbIku)XZxlwzp8OW#KmXof4`4<3)e!;iUL?C z4o{7p;x_3>c!KTZfKz8V^%-kEutofy_bD*(*-?pGEFlW0P zKQj|8tvMKy#cz)ETY9$A>tnB5ei;L*0xfKYGR(aWqZRMhMpot+dR+gFr_J8z9fGhiFk(d*e-Mu6*; zY%kx3k4R2zf3B5;F>F-og*J{9y}QGOH$%$ew*&@iq857G?p`W&5kwAjR;Y4e-J_G# zBI6dNr@8h|#nMS($?|5ggU_)R3BSy6GN)l0XZLJ`nTINyGDiJPR{K`MtB~ky(HNm= zy_fr^!Wn!Yxds$DNakvo7;Mc&YI19;3E`ZA*dSuP=p}WEczFg}MxmO=VS#oSqvwp` z;s&e?gOs#TQHxqnYTT4V7)ALAOQ^uy#T5$9+X7TjPBYHsy?ho|z<&F%S{SF5ggDbj z(v724kuPuT*VsbM`eV$Aue5q)rs2ISJ5dyl47hC#IJjqM7v-d%xI}H^OZ~UJ>nJjB zcQaCv%Ew5NX>{0V{q4M#5|#4r(!yTpx`Isi6hm{Ho8cv2A5aHO0yR&;Td|Mg%HlM9 zH)v+MxdFeuAjPo0?2VPVS#3x}l^*@Vm1BIgBQ3UJ8}Bnq15**Ri;a2V*_r%4W6DXc z?rzS8O8epl^)pr5JGl{;xm=u4;oxw!HI>jCPR;cV_#Mg6 ze)Zwrmk4zc-TGa8<8%Jc?!Pv>a5J&4XI?zO1$k6sQr-oxtvzhQI~Tg6y}DU9Ivsb1 z(E;Jq4I(MDmt`^!fa^S-RhxOXIg_Cf#>_qWXFw%H=Lk}l4Xd{~H>>Aln+0*K{vFf4YXXD3Vd(K+>Xtu&5_>Xdm__ ztUoZuK#PaZh+Hll(%Tt42CZgoXUBFa{LBl~{;9<7ZZ|J_XI4n8-_NM=r^o1U9Mexq zwDxm5rDUCsy0@3#nz@l~)Y_ehTbF&QL*Ts~!#{C`nWgIas`>5D^isN9CBm-U`<(N- zsPScE@<2wVNo&blYo6AUtlj=2rRyynmeMV0cB<#NW=dIG9bUGI*4AYi7?}3XW`csm zVY%<;e6L0EMOwGsqTvOpC#{14{AT(}fBpE4g~RkeTF^vYHr{)hSjEBx z#oMJ2AyHs{AYD$!>{?vEHD`~Eh*Hn9LKlJ~qQbfw|3}FCq(C51^XH)IW|u-!gA&tk zfW4>24)lSuioB}p67xMh=i6Rgu(3&vVO+ANRwx9V=b>P?MI{CtzulXWLHPO}KD?U~ zEXC6jOip^#aRLpoC!`6Zw@Q(@^`6X$$; z-exI^!2~)~Sq{anW-C&p<$lY3+uj)wvxXGCkhYsBt_;4WtSuT2Skf@nwMCaHQuRIJ zIE8vU@X)?5SsGogp9Xae1J*_*+TFNOI#O*p!vil4On;G~llxtBxsDxp`tsH3-Zs*a z*SEuOB_>sM7gRcx{E&Sj`IQF>TUZsiKn=VchFd5C;NrTb#F zBn{}crTj;G-0iw2{`|qRFfcQV`?=w#rS57GTy^*^q^;dw(1L^k1d9qlCF|LzlxzMS zFc@yUa=Y5^L^U1So{v(eN*(5WU%pxI8u7{%sDdo9y(5JsmuF7Z)2Bh z$d^i*RYv|CI0$FYcA?`P`1Q*l+B*!l5xju%YQy+;254fGn@O10&KPG6RIAMj@k>&( ziYMQ?q^B1}YMAMK)a-~&E|Od|D^z3_m3Zt*`St?Yh;K3)R#mZ=orjxWwqDMR0_h(^ zy$?;LJos2D8I|+3OaUsqofNTTjb`Bn>1LN$XI+r>&7-FC05*#6PfdB7mws$0LsIte zAZt}nl~B2z@y%jl;sEZVvsefDwVkW0%n2>>bgU#vH;CG{ZDzpVu5bR{h8atyKHasV z+p^D!ef>wB;=cUP6zdjug1_jtYbY{x5V$_daD*D8_GBuXW>!#^3pjt%jm!I`c*16# zN70YT9vnL_;nbptW>TVA5Z|F=V#4kKSq0uH?~e3tkZk!l6eOyCTq^kPLHfJ5LkkX zO(5Ce)3zC|7?<5?-a)i^XS54710l=rS<>$xoweLg5=3pa8k}N@Br(!nrm?GrpEaA+ zoj*p68TU+DT)-mvBPPBV_?9f)O_^@J{ud5$x2_udAK}H z8K<`d8ttWi)kl6*`)VS6vchfw4I*YiL?w9OK=<@?e6{0@T<<67~uDbdP%2K^!~_kQb>*H6kKN- z{!2Qs|Ay%81`I(|3IoZHnAUQ}ZKH1!C1VcXDsI=Pe?-1V?f8#9YGm7`51MB(3$!03 zaIc@G9TI%HOyK{-SoQ$S8Pjq&veF?jq$@m2?nTE#J-9*bTSru0Kb;I+2=Ei4Nt!NVOYwSPOmRAJxP{Q9F zq2sx)T-}OO!!n2o#g)MwYz^uDfXZ5q|+bsIY(aibWYdeOQ9QJBCZSBHJf*kWkEKFHLs#YcBR`-kO&k>nd3Vn*vH& zuK3hIwZR`vZ8fN$^h;-ZXdx*>LPlRT^;$U_eEhmS)WSu2WCa4ZxD>7w60!hCpgV_| zo$$3uFOY5c`cvkr7$JRmlU`8%%{bbn(04fZOSt>1$sf8;SEBs3$-cbr%GvNWZW9G` z180G9a@eb?-M>9AC}jL#>|=lX&(YiFy%~KwL+O}Sq-mjPnw4&vrE}64hLm_hD0gYo z(>Yc~E*LH*T0*+t<=jE(7}qyM;fs7Kjrg|92#+Z*E#*<{iXYrsoYIm;%u?%0zlke2 zjZMh(@{h0k^_%xP)_tMt6p@>Z1sj$unYVk)apL0T?JMuFnrXH=;B6VEc#s2g2J_GY zKNHTA5(0Gx7hl`;BE6(#z=Td6C}7Ve8<2O-zpLHQz$wv2g6qDLyvCWupJoe51VT2@ zxk&Y-fY`J82+DCQt84JBvZBUDZQ?JsRw*>+GBfz7Ge0wU=_6-LGceWc>Kc~>Hr1%$ z@uScjIHxs?RIjJzyUKn0cHY7H;nl$;g5wGHOm6PJx=X7%?O$AqD^laBN;FNLV7X|PKc1~NA z8}B{oAZg%LYrpE6^DtO275`Q}a9dMz#gc>X>7vHV*I=(p(h#e1oKNzcNSluK9J39d zgF_d5MNA}=q%`cW3_IF&3Mt52%DnU(-N)U;Su%go$*eXxh~^d2%)H=nBAYtUi?Yqq zCqCp%YFwjJ-#W}azo!r zoed%zQk-5%{N46CqOWP)cK6)07EEhfQ(CS(w=~qN;Vd}`dCcbNI3~ zXgHg07#U=*azWUf2EYiUG3H8{6`cK|?Pk5HfYbWBr_qB$0Ze7!pI*n11J)lWg1w3- zTNk%td^S)qZ0nZIk!OM z?+YP`U1B^GI2P8x8TO!O25-lwOaSGyVBlNpkc0|nh_o$0p;YVg9DHKjOv2YUO}Rcc z>mtu6tMS&#PjXoPiT%w=&}-0HZD)Xf0A-grC2xG?)Wut;<$NUP_A%OVvsF!=_c-Y0 zp7gVGU;MnT)~_Ix-j-3q2?%oXoDW)(Uh0jT54paQ+SsUdKu=J0GyFFKY3lBo^Vw~h z1guj$8Y5CV^Q_$+l=(eg+J08-{d#^~n&Y!RQdgmf7owhua`S9U>n78)U#4u0OJIe-eKcoz_jE#-= zSME7hK>=eOgLvBNe-uzW{x^}yZkU3)^|0=D=ou5q+DW>(cJ7bO*&Yf?$7|Ittc%9| zM=0Y#AH$Koo#Caw7?-5|2OTS;O&c`yhBpX!~_ z`=NCEXXbmjX_|ihNn8$BGH2D^z46?t+0ofE;f2x54)61oZo!HED$;5qS0+TqGOP&( z|6q^oq!`t*OJ-YzG)Oawk&g8%4=^uR^FPKvk&iWNOQ*3tf2Abyfi2Q|?ZL|jWn9(N z*Eq)#PPjF`2Hh2F#*?^q8FMH*xDnK8cP#u=>t>t%xmj5?O*scUq+;c-)r<9M5S%90 zAr6DY6TzY4bzct2^>>|%JLLEqyf=Jt_yl8>!o}lP` zu_39m)!w)z4gpzg5Dol4M~y*iCV1i@re?NdTCNTenzYJ4O4>`wL_dTYZH? z&7fku8=l?)FA(Eab2|?X3hCp7n{;Jb$5P}_`zpS}-?sl*knu9Z^m;(WY@f2!KJE`@ z37;F4?hjN+`KOOn#=&RikJ%!{6C%77&O#yE8NjjS%!~RoI3do!) zfCtTV#cM(;9usqOx+L1&roEv4n-!e)YEFAxA354la(u3SK*8>z(k7wx-Pb-`;|k;5 z=o_e75l06oy&~6kiadx57oEB8y666uFpKd^Z+Fa+ZRuhguW0~LVr6=k`b*c@*&}e2 z3H!p_(y*}dYt81Qq?0;#x*px@p@*SnfXp)CzR`rj?>crj2xCo3p{wItt8E085f*gU zcm@*gjVeol@P!+V{}5fpfXP9yAjsX2mD?jSty9;I$r;qhnY#+ps}|=xmxjsv@smq2 z-K7r;L~ZSOKroZkp_q{?Wh!j4-DcaKi8uwd-sJQmOz85do`;$}s? z!_*_V%U6ZqJO)@(7Tprr1Xb0zn7NscKi6D6`v13L?;-sUnnuE!YgJ_=qWAA*JNIF3 zC!I)l@>QgB(%?b*7zIVge1Vg+?;B@X9?Zp5gS(uW_tdS0QPsPs0E>>oCzs6tTj#)O zr_m|ZmPd#uE*82hRS-qmtRO3eaJ7MC9F=S%Df(@%hL}QJqKIWwxMv`J@Y&YJjphb& zZ~TI=&By3$+@&zR;)YfWDx!uvWP|xJ&&7rrv!y}LO;s~*M=?Jc_FS5ia~Z#nn){lp zc#yto@B=cpA}gUfG25=AQyt-#)Z~>>e*k3WY)m5tn-3@qWK#EI0DbOeVgM>!A83dM z1XcYBtOz}9SjF9j)4_>M@%Odlw(5USkmon+8%UT#e=U^HhmYfA3N)MJNUA2T|`QXqPyQF?M>J8%O$yabAf_d3LaydexLW!7)I?557TFwxDW_+U&Ek54wl>*#A|QYgn~i z;|#PN%jbQ&XfsBOKS?>V6>tq;}M=+NiL;30Y`oAb{N6J(Ej z3;Ti{`@m6S>Vv?Jn@Bsyun+)?pz245$DlbfttGF)k02)&P9B+B?C7Ks z$C1I!;V&H>{Va=JEEu;BAS{UtxdoW05ON*AdQ3}4;##!vmzyobIBsMHjUt+p-yH(D zQrZiT^2vX_ugKz+yqmi#~LPBJ1g- zmOt)hUq2VGaE_iX5G}Z@&p*xHKY#(F=|wF5p)U0RA568wN(BnL|xvUr*>$e{YH)ee02z0|D_2PcM^*qFqg124W*s^E>}t|S^5Kv+dB zi4_gPHp=Iogn}&;W+sO6w#Q&DUSam%MH&hcRKQO{d+xHxcbU!md6t0r1w6@Y;io>q zb-=biC$(L5^D|+h1=UN{jJuVZ1kmG>^E4iLr4GDO&{J&DpQ}>}-B;x0OY2;q_y_U=HI$rpngqN!kNMnoZqp z3&j=AC#*ft>&b&N=#SU_Qf4@P!&10(qQ^qxrsYS6!ui}IGh=>T@V<#nKv==(anJGN z^ZA}r!>8520w-LP>-k~xg{(4zw}oK*Amudo!)w_}MGvM7@xdBBM@_7?($xuUI6@b< zUu0!IFznE#Ap5Mvs_THnf|Q`|4v->ShiM1*g}t}1xtSOv5;t6vl&w(gS8x;tpIR^U zQqCK4Jcv6nuq(me0)~pthivW<{(kCX+?o7Yp=_ue3EoH7pZhl1(fUbKv*V>(yc_RB zoJ995mpLYKXZ+b=d!DMko;&9!i5GTs_Stn3&pL7CHKuQQm3Nwsyk)SuVIpa(tV@=* zhpWo7&{9C7R|Vy;FIjLuF1at3c}}zR6-+P9nk|XZ|HNZ>%7cX-z*#WW;Yv*VpbjyS zt!J;Qd3J9>cjG}JYO5w+Gi=Gq%sr|v|2iE@X)`btQ247_8e79sk@J_; zERn?7M6a(Ndswbq`K>Y3!n>dUuR$XExOiN={_fIa)?^6I6Fw>Bnu}HhHMHm z)tb{p$w4R25-!U5?fv@2v+M+l9pPBk2K8<|~Y(^*gt1kgSMU6jr98-Gh zlnN5i;FN0c>IVCFFK!m#XD#!6Ybb;48v$Z{GY1 z+RC_?AKm{#G*pv)!|6xfmUnClHrNI%uh{9EAS5syg=z*Z!O>RBPgj#uc4y=j97{1R zBWc7=C6N=@My7WxpZk8a6b%z4)T2r@lt9tAqDB{;lI1w)T&Pn1QpJxfFL{qT>o1tT|zH{c# ze6#1QCgs++!qUJ}ZRhkh&$~DC1FWe4VA0J4(*FF;ABIu`7Lt;Oo&t@=pSWX@N%Bxr zeS75bud$4Rk%>aAMaPdD;PM^QBE9Vr`&U&P)VS(45yzq&3XY!rw#FCStsmvK?Wr$vzXc}+0{*U{x(nP^i1?C@P3x^NS8H*@$smOi(+TUHayWZ73Dq!o?Bnpl)@VX#L zN^~DP*O9LNbqGpH;{mKc9=^wK`1$)x>}MB7=Y$g=#g+~H*W~i@`IsS_6t z?5bs+n71 zPh18R?DE#kj9VFo5gwi=f;n!VILI6_>N{0E{LqJ&*7m!XeYDVS?*%qxa#*}&lx!e; zYGBnN^FUNoS;!Wl*de!DLRK#I?mKaMyO&e!;`gA%`+z?d*^%>_z^1S?(}1v0ykj)F zK(>!~#5nS->zryso?&mVmuw&u6n!I78Zc(tkY#PwM$^~YJq(8DZ((%i9>r#B$5ey; z52cmI#NI?a`U{HzE1Th_EB%UY@mdyH?dLsgydOQ{NKyHh<+aJWRy*7ZVZL#a<9Vl* zm!^5frUi10gOoe!c0m>p#3DcIpYqt`&ijGS0U*-mm1JhJb8uc7akn+DUZiH5wK`mB z*?_Uc$ld+LRVCe8ro5d8gfz}T!!vVGkRk&tZAR9lV&FA>wdWL=Uf#}fhNDL8p4tl1 zo6+nIdGb5|_twv7tA(Zb;rb=CRa+IiG5|GZW|E`o4u+EpAGB6RC3b(=H+1Q4t69D( zs}sEYR9-aq{VF(=+7+Z)sR#`tQ>lPz%&oPsGB5<4&)i@}y%!4Y!5hxg*Zhtf9U?nH z8VL^*ll0{P?C5YpYy9(p3`NiQSdBpd6`fB^)wp*Hy zTMAKFq$yOAG|DOF!i07*k~^<(|Rp^_>=P_7Td z_w%&(Xj%6gs~P^P^{P!4xXa`ZRAh;RiElr~@w?6?z$FDdlmx?#_y(DVVY!bu?CtlE z1|8&}mOuPDY<`%xsxrN{U?M*?{%XXa8?xEuexYoi+36ob8!+b&`uFjXxJf>o0I9 z6`Vx{v1qb5->_7`B(g*tO7kQ9OLorU8}8f!%plhQB}zEd-quvN(P|-}CjEPws_gsx z!heC>SfkI+IhV$z3q`jgE8G_7YAdiDxKYrcUoc_|__$7BKqVrcwuO)TAXbmjt}F-8b`}?U8_aOX-+<;Oga!e3=;x~9nw}mW%t+r+H;OkqJ(axg zpmBVU-}Z6=3frTt4SxI${~f=*<6qUyD)C-|s*Nj}YsGpUOoUGE0iEJMf~<)~60-tf z;Uwj40pKHS#01A{L^EH~?{v}2&8$3taL)hKVWi0i^`LOm;qpV3~p`4IC2tf-FJ?1QXc$ zo%&s)5<$edo>-v0q1EB?zHOwRdjUEZP~$uKS($yx?UZ76avprm*4awh$Y=E>C-o5X z_f^nnL2#X$RaA2|J9VrO@PT2}3l!GQzfUsuIcStQ@PtQj%rvqbM;=4Xs2u3j6NX{i z_J0O*G%~RwdngsM*HoI+{^ov=-Z9|(9uwC*OuU)A!bSbOCi>cCuzOT6euOVkI8=W_ zn37UQDc>r8P9rYC)a}k5L=bb2GC*X=EOQRZ?__WTEyQ`~^G3Z0juCejjr;=Lj*u3= ziZ!!>sz`;flKa*xq~IDIH$ToRKl6(b#n_7F0c4w%e1=rfber;#?ZByflxK}R2W>|h z7TXj6jf}V!Pq~`S?Nwf3mei8tFsRp7-;pjJs*SoC0YPYl`=lMNpUUQG<{PdmAmv~B67S#hoiyF<(Tde*Nml-0;;{e-ouB(qq z1O?TIn(yXpdpAhF5E1E{vu#Z++#MbzBsk+uo{fx4XnYB`qAcsa#|EUKd&b7-#V^HI z4jHvt?uAgj&FwaNCD&_Han0v+>bm9&vYtbL$Xwi z7RX00{uDxXZr-df>6Tsx!-bfb^xVucB10Ym) zA=t*)1>MXzl@EU6tZ254DN#>W+;aw=W4V88POKmKaD&0vhJ;aT5&|}N!kXsNrLTP- zRwc-|6v|`5Jkz>bzU9iAR`=_x?`&N+;_JlLyp0LONOODFh`A~Lk-qkgSyPjs0t+DP zKrcxrX)j&ZCD#zrD7DPKXv!tw3dJB!r=!$VWMkc0>u*J-ao)?o5Npp>VFFl|Vp?DJ zKsHcXZNm;r2q(R?(6A+?5 z@*dIDtKuB;*_pFhso=y?7ytaKMXKkV?R3%7wqjU`sy9D3Oi9nm0%?<`Y~b872D&bt z_9P{}p&)rs@E1|ImG~YmcIi=v<{R!L8a3fvXCkO#N za+Ojy;6ao_j2C)fTy@KG>yeIELaOIWrFzDb%RblhP5rjLHsI&_tuVV}vYu~2@kHYL zEMB+Hs;tM?FW!o=SZ3#vZ@fZf|LkJ?%P>K zw>{biCfK_u41r^V8QYy@L2AY>>n;nD?`xlu@2wx0l09%3q;PTSQ|(vUNi7U_x^ll| zS0Cw+@|QWg35{oW+R{WZ9m?>CPur~oH)g`Hfloy@1g0O)T6Ac-%-~$qIgnv8?WZILeq;NQAB@t$)0i! z1gcCxEgi}yr=G`c4p6yqZ~(^cBVFAbEPOVjUsJYyD{_X>kMnf9RWEI=ukVbRWSUD{ zvPVPc4h`J?k-}Ry1*pIdfv4(Ne54eQ48ze<#ScBXSW*rt+UDqYB zG1}YDccrw>w0AoD!Oz#N;V9ZJ?;G_EVCVOPJxf@Qw!5-?amuMEX_PjXJ=Urr*NO5? zuC**3u)om%IxO;yANUSgr}>(W!8t>9i5i$Y9ePqDDZ;SAzP7eR{J2%%}JfBP5KF2 zR|gYh?}>vPe^{WLk>=cyJv+NYJ+y_P&>&t`@VW8ezN>Xg&$Rc;=%#^+nuS@!<(JXG!#A(8adG*;N z5&B&N$TbV7xiViC4yS?+A{nZG7 z{e^mD$E91{QahM@uv&X$FD?CvtV^-xll#)USa#f*)zb;4TSBUPc&ZY54q)2vrtqL* zJN-yHFKS$adw6%K{zVbNBZ==xd;enmtY`35q4ocO)7JpzE`l1PQOtDdjNvXZM! zDj3XU66cF!B%NsXzl;I(@#mJliQCAGZdG#A8jdT7_%KqsRBbaZYqA@Xerj-`XDAGi#yE}FH7_JhJjsYAYKiar0 zEO;>qIBGV!z@s}~vaSZ7Cq3J-e56{W>>99k zZX7ox|1WLr@mgt{ypLu%PC?sr>8fiGt$7djxMg@)`?h62X5^;cw0to3ie6sk{F1Q7 zwai)bV*N$#CnTmVQhc^cq2D$xQxKGQs%o2l38HO^T8nm9N};M|bjQT(4V|hNuSBVz zisu%q=6hcZ|0(f_OV9T_!d5{BA(?>|A}FBIe7$4z;vo}^YJZ`58k6JT;FyM0+_7vb zZ^LSRkOU(9azeEu6AirM!^zcl%o03P-1;#rWdiM{@+albwB1Y7f3$;pCq_mnaiT79 zCC=6yKnWeHjjolzDcI?rO(^9L=sih}(!8KDa^S8a!LtDL2_Ki6Hz%i0D$K3~Y!koP zNqEgbyM)hiqUEx`alN#$as8anaUQTb>NFm2?0Z)dE| z*o0Buzmy~Vl2WJNOZk53ROo6ab$5T>7f9aYzay{R)YL(N2MoTbMA|`SP>x*+6;t%e z#tN?2`pYeI_RC2*pXe7ZIQjQ!{^HFgH3KzQzustHxBPZtXN$m8QL$f5q;2}g^}s?t z=V7z9b4tR!0ZYk9#%7a*b;n zvUl#Hq%+$0CIo9TNNeEIACn`D`A&NNkPJ&{0*etyc;ER{9P#O7cWJ*xQU1YQ7LTq* zdG9DL3M*e9fB9JWCECod1NU~E+FWXWOxB;PqWa!gRqxbpc@FkzppJPGXeQMXh!B_7 zK@iWEL9*1B{5X?J&#_*2`3g#&*Qpnj#%d7&2I3TA{#{b0K@4APmmV}X?>X3R%2ygR zP>S6+Tb^6@(SfPCTt)-;{FofB$EgK3(?ZMOOWYo;T@!BJW%p$R*ZXV&p%!&jU&?Hi z^=JlZIPYBGun}DYANubl_2z={G}Yz8GV;ccRnCz`r}-+J9Nu{U=WX7b@~f|~bm!BY zU-wMtr;Ma}V`|aMz@TSfEdX;U$ay~$-D(gSUGa7(qVQGm57P&U+;c|{5WstUpqaIi=AP8+| z`O!@3d+gZJjS&g3jUr*ueq0o!y7Vis`Uz(rL*Gw#{+Q{>m%0d5-{SV(@6(|{3Ue{86SghyX&jSE za`)VJ1A)Td8G9Nkn#2nvOf~qN!LA{_km%OdTnF0L6um8!ykyDC?5e>{gB!newDk=+ zb`EGR&07>ql?Z{Q*Uaz5DM|w`uxMCeD!hgq)+u{haBrSmRjQmAukve+c=^qt=nZq7w0!EjhdP2OgcWhQ!h)BEOn%$ONh%wf9vmYKCP3_IZz4i1<$}#=GpgMve0sE zTD=m9rE`n-UQZ`YyAk>+FV^PabW>f|ox))aZ*)W@YbrmEiaKj-c(+^tQeITjfBk*nIag`qY()qinmXb`z<0y4Szq_qRU%Vb9XSxowb61MgV-slu5?{asdVEnKfy z5i@!I?b%?#zMcZ1rN_`2hq;V6ahSVpde50{`*rj$p*ge#J5hW73R0yD{6T1e_1S zD20@3bvPD)C#$!W&Cs9UbNnN;xS~2&em6WL%MX^dWUkK3Bpg^eh<7jN9N$s!@`2>* zjY4<1UyW~3Qcv1(`f+qLjc5Td;=d)RN@O~KV}qGFhMe5xoQjLOhkmo)&Ks0{!Uh)! zxOaM2c6UoZ&R||p{LntPtzdyNHPe?SPn_?V;@ECdh<&%$hyvyP;zS5`SY$?1Ds zF^#i$@bvzc)0fXKH$>-sAIHXSUcHi_XK8HGe9F-4_viV`(__Xys9%YRA>&wvQ|y`g z+(K~>vV2tlWsN3HDfD|TDJb+u47kB~Hku`9ew^`jB<=Mp=3d4#?6pBqTW@>0JiLrFjU5Qv zT`y$eL}C0x*x#>q&Y#WPc_p((_DC*7VU39%OMmVMDJ;a86^!xmyN$2U z&z}R{owt~y;SO1|_N#N$Nk&`eIS2MpcqX+3j^^+1ioB#O43YeMBiq6X2)c_(9;7s6Q1iC2m-i}flf6w$=UDO;}q-q zsx-tc`Zx~{A6#tB{`fg|&HOmotA8^r zM}1Bg!+!t~SQ0Qooatuq`~Zy<=sW_xJ5Vlbv4IFMmNm4cT`^T{h0*G+)PbkzZ1*a= zM?~`TU4QZN$nX%|YOvsQ%MOi-ba6zg>LneH_$^T}^AT5g^vSok#0gYe%V2LBF+jf_ zPPaP)wD_Y?n?A=#+kSHFwCSUBTwC*2=G}bsGwAPLI3c2o_|~-z0%yvGkcvK(8a!@Um`LF=%!7wiH7i_p1#!}UfKRz$5 zCoOcinyuX?uK84iX&MfF+S^?-9^zlC_iqijZZkI~YsS`TJ37Zvk`IHYmidc55$EUM z>pFe=3-j@r=F*W>g7#4{voD$^Y}yJM{g&S9?f4t_EyO7@ApHRLffGYGIVbRFemk^x zdsEZWHtWov)ZP@~Gg9agS6FxyDAT`-!wL)1w#9RZADjaf76UfIfb8+IdfP50Vk@6| z*7RK391++S{d=HW+*&&IXkV#KwAwAVIV)kz9#^3NCD(XP7zPfD}b{_1!+8D@gRvJ zv-Yk4G}Q2-vmo|-!Cc32+&P=QkFMaU%4MxA{3GByM;nQl|CrAk^@xoZw|GyA#E4jdc<*GzmOcq>^- zAHZR$W3g}D{P5BkXTjX!aa72AxElN=zkbR#+zl^>1O^(TLHI+#>Q=oECn+uht! zt}y$H;o+=a_NjsG#|1bCMZ<>%TT*$NENfFNyg6@q(c0}bd4vrq7TVC{mRL|j@*j!+ zs~_@mGE`=qK(AFMl@{0_^N|Drzt~Ae@!j=jHo7s<$oDFJNp;^@l(HNrotDZpr`xE* zqm4q2XoN4y`eUon1wZJEPVU*`aa{qe9dwO{&cAxVsbtKqoG=ex4#KS${#SU)Ed+=T zu@d_K1VUv|x<$YMu}m(^^EP&KgsjY{@#47J(fFFOHm6F28${p_s9m2 zwn5K#HZmGCNYYTny3vX|x35Ju_zHN*A=N#ML=?eEfDw%D3?oEJf{i&XUs)Grh6#39t5kW1(s3BZm&{V z{?z4SLp5tg@BMfk?!$FYW-rtGztL$*ZYK@GrMCv4C-ySOffkvlny?wNqYr@2(GAV* zT>Y=I*n+9;`~FD@beD%0=c|glfZ&pW+M9abA~Zop_5QZ|qA@x9q4Zlw3^P^aKvia0 zGnF~DMGNCGO&aqS9X$pd39c!uF3^2|`Iyw}-bplzN{ceQlx0>m_Th{Pdc2mCjso1Rhd$ zoJy?3`I#Wkk~I10`wMsf_3j2!^pAUSvcD~9E3EE+7{2FZA2A3wVd&kfQHHnyr_I>5 zk8zobvVZ>kdHQkZ43U>pRZ;??BHj%{8NzbTNa$?1)1}S3oLPd4&>(MA|E@2`WQ6Ia znkrveZ_?vu)^v(0tEBFx4?gDLO9-moNxV(_Qk!K29%`e_{-=^x zf42LYEF2g_72jhTbkdLU)9Wx!)56DsBE&$IPp&s&xTrzX1NXA$H0m$cV~q?eTI;Bv zIL+M}d!}W)M;@#jRi@7FFqUCLb#l!_{~u?8@-XN>k#@Czf7LeIf|9Fgg_W=e4y2*n zLmdLIb*8oDcH*~}n*-LKFoy)A&zezDlN0^}+Pi$uAHKIQRwPZcdXm23?{g+G$fMCA zZG9SAlSH#HgttB@f*cJFW@kU7=&10#08~EH^Lv%Yd`LF>%Z~nfdi5&Ell^K+4uXEg z{PslCG_#sVBW45D+@s-SdV>p+H>E=klq+-SeoWKs=O(Q^rW`$qOi}of!nFhS1nAi4 z(BF>#m*Pfk^F2dmcEgLXj+0Q0I?n}pJKQz#v?w?+ z&+(NidH_4}4@XS}hUbdtt5Z;;8J6@|l^sqr@H&f66`CGzb!Z}io4D+lAaip0hGZB~ z3qG>g8ksodDO#7*7ozh}Z8=3kU>BSD@y1j{&+jIf$3`X~Ch&DS#<^~f%dQJLATQt7 zjAn&XVP=izVu;zFY6~-LctgG43T=rUV+F60BgHw6vb8)d8m7$^tsaFk{)H@a7S)|C=R(+)WBl z>&gJtCt&a@cxrF02XfbTsF8tM0h^Xz_{F$5F6mK8Y#J1@J=4>njhDSF4b0X9d5HZf z#V2g^IX@M_aa`Ub>H8t~HXmQEA-8FjLf_5rAN288JDTWvRO4;1`$oMYtcgoKQ_eX*rs#j%U>1+K6 zw+yOLq7=$BERl-sq~0kYdz1o;kMo#Zqp&yUCXJbb)c0?MX=j3UaMZpI*= znc)=|Bf#R!N{;H+>EOqH;qVom0f!>RDBB5H4uk`pgGs11U_Y?z3r!^z%&IGx{&&S3 z`)8(8=~Y$sNzJ~eZs8Zp-|kQyJ!0BXMHgHfYrv>~YXIzXLHpzJ!2lCU*9b%bwQ%v9 zp_oXMICus2p0rKH^DRCFV-%JgSKGT88O(Mu*{>W;B3uejCAB=G_d+^#{>9gV;uvUt z8&Cqp&YcC7GN;zp{v%vn5CC!!QcP?g1ZJsf>s24uy3sAWERqGTbt;vi@J{F*lCB`0 zO^2^W>_K)q{VnVJX!{bhRbiI>O>AYP%b(z>Ra74^I7s^Gpx)f;{H|9^^a9EEz~KY5 zcuj?YrTI3^nT+D;192TQ!5B3)!NA%9O;pPj_nrQ6Di!jY!OxRJTOD}8d_Cf^m6My; z$DoX%?M=}moHje>I;J28C_cSY;lTg)g@7r$%+W=o(;E`|XCK`W*CmsSZ+kzzyYF%9 zzGdVsdpzvsgc>~gGxk{9n3!3Roi}w(#hyG8L$;LPvp5}!86(YeDUN@P*dxSROtwE2 zEJ)|c0ashLqd8;39oIPwA9r-fB#qkzCWT~!v*CL)88;GlTDo;Kv4i39jhF{`X6*Fc zfgOxl;@|}MonNwc$ICDGNvvtBb9apI)-b9fg(=4LhK;I5H7pzGv8H8J&%l)DO|nXw zo*U>7XH5;BYo(bR^zUIg7^;1&Q8E*f|fc0Gg$A3CI0IuLzoG$+dYOL8bds_K0L_H{T{tWRzSnYEWO z4C%}0c|gNYFDOuFT@5=Zf;DuMcxd{{N@K%|;#Jp`ic^g03mbj=m(!j0j()@dExb(n z=ZWEZ2rYU)2V8|+1xV>f{0)SxxJ=V?k(pR*;EyzsfGuOOwOM(P zFU^yDMmQ%Gqk#`z z_m@EVr;sCy+>udJ-UcWX{$saevW!|cb|zz?;RAbqKJolH=VPt(`KzQ8Ek9n_o9jMy zFx$5M+@-{OmQix~OmZyG@(bms_VbN2n-x&v7H1lWO1q7Eh|Bh<(-JpKgc$yTLr4y6lOU$RMVM&WcPCwn=|9?8)D`rV zw)}*TqNaR)+6gQ8>SE8Xe?@<_raLX8FkXdniOiiknEp)=`#qtLPDWye0gi| zR#D=~-L{1c{iFc|A&C|>j5f)^Ndex&Z>$H~bgl%g`VI-fg$p5$9qw^)i#__dblown zE>}g$qEoDXy?>fsQrbnXxZyy*+Xci-L3iz_GfFK7(B&TJSI-qSpuhra8NGpe^Dz;J zr`A~DlCEd|cV!%Mo=Ck@c(IwSCZ4MyR6mH?TKvm;8QRxOVeo=ExfV%~qAgB=wx=R< z0uU1COTAU7*mo&N)}d{F5a1I%KR!_0yEI?XF!P7jfX-qUOtm%KQCz{b!hAl7M~yS+ zw)Tbuwk&G^g}BeYWG&FIH;I7rjUaQ-P0U~`kSBq3WI^c0HbJK@y*xHoVvr6HeBj9( z8ug55?S*^JF0aS?&<*bhq}k=qBCPXFk{(Kc{?8M8`!88svzmKU8>rbF>f!nR^Q1)a zbf4>d8!G%c;Ksi@R>sSUh?QX~gZ3C55l@w3>xBNk2XV;{eB`X6n0gb)82cDsq&q^v zdkU;w#E!nF6B-eopl162YmJ26a3Csb$`8j!2v_=z8V>g5g8E71KrDRbRh!wU>6f#& z8W(4ke*L-ucy=>sI`ycXOc=OQP?hG4RUD>IJEyBL?Idy^(l^>+;L&o$Bv-14A<*|H zJQ3_nIMKMb&EfdajOV(V4r6QVP=qj)*~Ktg5BeP#{mZ7onHIKsw4v=&ftk*O#4F!Q zV+#!bR-X4?X}voEHkoXoqR5^17Ix-=P)PS*qUNN6r$3dwLKR}WoAt1Icbjf};pQ@M zl9?swKd>voKQy89fHSOGQZ2uV@v3m%c8f~ny!0VD5uUW0D;WjKTZK6!_C~{rwH1zn zI~e{UX&~tVQY%oDA0Pj_`p<7w-M;jXy2i_t?Ud2e@~Wdl;mhQc^Da0e*N%EyHredW zfkJz*75&UMF7KJgN4v!--*38p%P%g0W8r%$`i#mljkVpZE9fCDFgc;ikqeu`M($xl z_9kC|m!LRfGpW(Rc@QS%W>r#5cyuBs2mW~Ul@Izm^c%iAdSt^l{Qq$goTMcA;ZuRF z4q+rG+N0G`Bu`1aJV)OesV~JTxc7h=g{-C!PELqhGl#ZPtxMtVX*pYgg8b};LwGpU zawp|yrx6>*8>-D&I;|3a8$f!ZOu?5WJDw0ScT^&J$Fx#;0D>>1+p;{Ytpgz0AREvJ z;vm9oR(^;Al)iNCzuI|wo{_ZIzOCx1ThvAW^UA?W$b_ZWZ3(*XPDwemIxI53bo)lGQBb;*gw0@WrceIR1txGU6cvq=?PMw&A}6 ztBPP~?alO=ynIDA~VXTojV*XQJGInwmtZVYxL8# zgAnx(53fezbpprq>(|b8F}n%!h@hd3g|&Gbg+{NgJN5-#;x|?W0$SeO%n?cr&KuEH z?EE5BNU9>n;eR=S6B~@B0*&Rj?yU9eN;s5!C+Y5A6If|-GjGvLExvXjik^Ki?y^#btEps zL#2O7ZD-M4w(8U90-%0JiNZ)-T~UsnRs#7V<;MRk=@}Wz2*u+38ykys9MMY3EhlNr zjcU}C_VK<({2Nh=w&Re6qZljXeU z=S*s^IujNb5PJQFC+q0hkb^i(2N(R$ISc2Jj^|gK2S43|{E&-lznaE)$|+VHLhou6 ze?W7NTw^k=!FBU@IsxB`X;J_18Rki1*WkbZq6HP&I_ady66zf4KB!#lf1Bjx(b(&o zy5R&P8>db4v9@z1Q@e;i?YptzUy}Cf14mMgw@&0+J}4^;bs2j3oV%Z_mZvTJar83! zRAz&rU3-a~m3?(X{j5UMBnDF&KRfD(;kxLm6Dx#YatwlbBw;bX9oiC({@6>lZVy+Q zAL&J%kq%zCdOhaGq;lp)?)-yPf!$kcziBgv4GGX99yFM?qiZJf zqM2%rZx>oRC&{ia&vQtJM&$&qLG?&lBW^T7yPBe~<=B^|C2+47Ag-pyGbkOy{lJ_9 zmI24&zm45ah#2Xs8|0m(EepZ$4Su6TuS*tIKzJs)AE3v_z=Bu3>ixqT5jq{r*RtVx zXfEM{iYN^0KrKPa9jEjJdtt|C&%>k)&Mo5}6w71kAhj>mr?bx{H1`uJ^oHk%&8gXb z)(}i^Xu&u$mF>nUX&8IIvI~@W-GMed9ifk)M_h^8=sWl`{fS!+@T%;Ps^u! zls5EVJ1AVPTXhuOOA?Nb4sUz{BY9?zY7Cep6G!$CEYawDC;MmN;0kYpfaV_7mweNED}gP zbKnsJXem}dN%H!CNrS5HruE93FicC#^3}$>Ctb$*<>>z?G%0iB-tzxBUma!uyCVQi zBhk4Qh;vfxDjGi!cYq4*@`4#A54jxe3M}9#(NC6*k$uzA_F(-tYWgawssGInoFSdo z$Ih{6_Ku0CFUAf%+ta4{@iJ#eF{>YU^W|SwQ{*fS?~1oq;emF;=16hdb!$eT-0S}+;s9DtzH-NCQc(zm?) z(Ss8r632)itMoEXK~L8m+Dnw5lWfnHHwD3AyP@ii)JFqQcKu%_uz}iW$R53LB%SRLzK-Bm-%YagIz^Y`7adH zb<@}P9Z7ERzUybUiE8_$t5@F@a1%pUjwUv5+;#@7X`-M@*`1s(^m`c12|K)R+U;th zPf{o{xvHau9;wJ42y?t8A=1F?YqD&)NfoFxN)idGG zPYMh-*?U)W^~v%O0iBIm;ZQKHxae+uUL$aCX!5r{++GA-NQlOxgZ_hWoo!k_zJ9<9 z>1xx#GnU%hUM!=N52`Q|gCVpqM>EgcElzeFrBweX5W~2yW%+48_9{DdLfBR%OSzU`q;%OARbG!~UMa2}FcTvtB)Fm#`~ z5wm#puVbShOgyi2nzlZ5W#|o_ykT|iUr(CNR#LR3w{>Z~Y#x%gC z*{s19y7lCiGXm`1vL}jjm1jF`EyS0sYDYh3d4Hw%ZvK_UPz8b5c$F2UGd+IYaGL zkvA&2jW+M{#z*H|!ToFp~36wz#$r$H`rpQN&lH?!*UuzM^!B9-XXm zQq9B%1Np?{16}+RCv{diza<_lL(a*Gd5v#4&qs4ctRQcFkj%#MC6NO(DM@It5hhzZ zllXj6X-nH>OzAOc4I3%v(bKW8kiB9oz{Ysz;QFz|buvDNdMvL?I4mscbtJq#Cvnpe z?}ImbA{U)}s?u+vjfVcu-d@e{Nxj(#KiXNk0w1pdqcVqJ;sF!3_J`V8r!WW@1m~SQ zU@>t2#v+$eHiMLu)Elg1_(QQV!HYIC@$9sUqTMr~K2fXh+`&cv$4E9r?{?6^{4g)g z4~rCi{c$4}s5!Ic*~~3=mhRG0W7?cVY$zVW{UN6kSH}d;h0JRXK$#5VW~9Yi`Q!8x zerl03f+c?KSGheDtoLcw>foqE`gL>HN41>l>3!|9Dxy%&tbb;r+*rqmE~Wt2*eQn3 zmIXXOy~=2s%2n>h&&>1Woy`E5Q6w@p1KwNAa=-pmCKkiAHNjNe+y8u%qoyFS{k$z- zS=uxbA}0DQBD}w8@Mo?qKl$O+E3#IPua;O_B$=j=*=uRXi*e$(O6u|?FmrlK>$gi? z?S3X6I90J$+HOcaC0Y#yM4%@z-hRt>w_AJLOgJ*p3f|sIP;78w^Fa%XWZd+%wSTIfF@z`asJNf}v|hGPMZScidj`f0A~|fx z$v+d#6$tq|HJVOye;8UVaS*p$@1YF$r%o&5AFiXtZ~*1Zpdx;R@z8d^Hidc9Hdl z30pw{H1pTsHJ%F?$l)P^!H(n!zIKU_J%eIawO-i^z!y<%*K z(=1^${25O4|JGU`6LL}}VRu!?o)=#2DMEA!WHcPNDM+mx^hVBC*>sDTrBaxVI%dS! z8s0sqs~||Gezq)2KbfM&7fsxGo{-y`#O>g%+FtwTX$y^Q6#3EYj9azojuGZPBw!#dfHI4f&!C5gGFSIyo3cW7(?c!yEmXE| ziN1DCNZFJ<&k;Bi!da(uCY!eU?EajKHbSN6!Jgybcx5tMSePjYs%+U3y5}xky|Uue zB^~`K6;^2&k(`zxQ6Wtgs!zZ*l1^A!=UgMXm8|`bl{nL+`#W#e0e`WCLS_c@RTC3u zi|P%wd|BR!Epk#YN(m~+|G1SiMPd2fc5W@}wt71?{hHG`7k>AuDbh&YG$zk|Hh5Tc z;dbk2-$0`vZV&R$0tQ$dWPyb|tSiRnaey#<7?QTak%+_!_-&k`S0_M;9)C^RukS7x zqGOA4lH3Pua#rOpH5dFC^CLWOngb+i8^!@+F2(YW3_*a@0woH4@rFeGj(T zYBaj)DR*h-FkiJQ+KU6XsIi$PeCN1w)VPOl`}c3PlW#?~ZGTQngEPfHEpqB~-o)2? z%ZiQvWr+grAC!&w)uycn{L^Qaya`Ak9M9KquUEZ4yva731l6X zU?qp?uD`;I`b$uTb<5oeFbW?&lm{ubZ;=I1F_#X3^)M5BCE!h$OP1laHX5zwXH~iAXok5`AQHtWEFj;Ad*c@xc9BTzB5f!NbeYKzJ zis|nKCA9q$x&yq0j(0C|ZG12?R4M*&zJZI*VCP`==N%2Cr*2Ei{9*T zde(u_E!EtRLt0qemS@9B7`ZoGbSczEMQjZ?fR zRCLNKzJ}&?pK?@MLSyUR%~E?KB_;1Y+3Nhdb^o?f(?3#PLb~$f4#IvqJC@cGuP}%_ z9$FfKDd`@ES$H|)?^F=uye)M1qmY9tiBa}CbHPGqtHgn-p<>8w}pM`CAvYZf@#3g6`>HPg|c;|is7ah&qLiW#OTm|O;&X(k{XK?}=l zE~Q;ABjrS*XCZywF2X4gYcNzE@Wu05)Q}!~;}>S_5^3TZ>bt)%ep&p~CM97!T9U+a zB~7Tcd2^|$_wwiW%st*(5eeKR+PayaMpA#F$@6hYQOzdNlZRJT94gx#yCf&pcDXH3&9$J^9?Y z$ec*Ixjduc=RYWc(Ph1Vv=IEt^66?yphnq6COx%FrkeodUo72w)gNs zNi!$KizCI|ef>nVUs++K%k#*)0~UTWox3!Bt3yIV1tBJr%c$%7&JpnE)p zp;>jM`21V?qHmLGn$hRK2079i4jv*P*oSz#G;cNa&Kdh55!k0ZxgYYYCY9aAFZhb~ z&1?OvrMY=bqilIXMMBdj25LHv2re03`YZA3T2=n^S>G!ojy|I^NNyRMdR#e4cf9it zmuK~h#Lv$zyZi3+B77H5?5iXrS)OQpMe{@7FWa=2`acv`GUhu`EDY#GY*5pH;& z$&e3&$_l-K; zw9(14oF>RwF8-Y5ASJe0yA};;Qr@V|`Ll0)pfvH`lY7FmrXqA)QoFt@fN*IR7Wy*0 zh|XmBSV1S-hYYuLQlQhhWdzd>xR-Yi)mN%GZrSpF8V34P#js#FkfyBwJ%}vw&d|8p zCm2#+CGFZv`yMW_XT7f|i5Z5Pq59+Rk0d;vF$|dE9$!;*1JPB^ual}t#5wbqERn@I zb2xR1Z~7=>%Mn$v0pGWt!6WMJ+D?6MTGwj&EO5;GGQ(m-+;%82BOy`mw)jnk?GMVz z8-ER0EQ~c(%#Nmc67Tc)Nd+^>4WXw@GRx*09C&8nR{?_;JhVoSue6sapnoq+Jpddq zN4@d^#WeKl#z?0Sr>V%yOENM($3v2*YZbkFT+^e^q$fG<5VLB2L$z7@gO;wT261tB z(-e)GQ-d|DEFDDOZV4ye%|w}xwQsyVFMT(euN&dO?A}AyyaY|5Aeg% zVRlq>q3^zrv8XF?G$Jh_aIDfnYX5lWkqByVHfYZCnpxvwcoIGdxTj!%@6)iXxy4ej zr@Z0&3mv;FTG2Evbj0VtKlQHlGyYTaa$M<~IK-K|I|IXN7Dp{-$ClQhmwv4#8`;7F z_{spG6HHd#8KJzj5^*})O!+hRt#c;P2Ne{&9=J$c>1RjrW8n%-r~T8SqZH#?(5r!? z|KbjO!=a)13&3Fn>5kOX(<@J|T3yFuTlrQX+}24qTg z3@87<$8Wfy^XMpn^BR<;_HJef$d=Z2S9#1V%q8xX$t@X44$$b7$kaOC*uA*K^_%Oc z>n-W(KV#C>Rm(d|OFa|nyr|A1*h@3POOwl{P06H(SF;V%+dD=vgc$Ro5gb5?ZX&0m zq7sZ52>rjj?-%%d@w^c=bdWV+tFF{>R6Fh58SnC(y`vNr^=QGzX_Z<}{%oM8MfL4A z=DI_Q40Tr1pBOp%h_EP>lGxbrYo{`CnW5R?0xLoKOdoW6M85yh^>inxE5^Ib0^|i| zRK(O#;yU!(Cun?)NVHCyYFQ?GQz^yo3}@-ihTL_{z2#%QN9NORD!+#+AVn6rDPYng z3Ld?6vv%fHXVM{|0eC_@MMDFKjpMGZofsX>+CZkT|7wqp`f$b0-5;*zg>@qo>i~!z z9v+yajX;puD)n~31_6WKAs+&E=cuf4eabIkcpg}`O-LMAwx>Nc(9my;h%E1Bi$heU zR%n~Lw!y*7yve|1-#~z$0 znkb-m@JKltu0D1arKu~u4WST0MC~$D{LsPDJyZXThB!pWd@`A7KvrG9e*Gmf(|hjn zx!cqzJIvt)Vte}58>?G)q`WzKpr{Qj6AGFrQ^SXF%hA$#;>g;j&26zf#3sZC_b9wA z?wm-Ik7E{o-D+4z4U32FvC_eYNisF??lRnVlknr8_pl~MQNFYtDIBRSQNS?GUW8f- zO-P;_;0KTsLVf*57tfDpJzYOK-~KxGvV?0{!Qyk>INBx(zkN{PV=vN|oBPAJN&>+d zmGq*q9ZkrBL<71T;zE}T2S*KQ!tNnNTi%AWx4ulUpBA??0~89dSl9-ICcWn!xGbEW zZ;ywOR}qij;w>;1owoaT9W!~jdG3S%NzI%3lAJ5#pJekduKFoEzq#J)w)6uRX)kR# zBrkaJqXp-^_*T}&$C9eYj`&jel#aU~zIbQ4UplM#gqr)~Zs*&bXUVVTn8vjI!qzn( z{&@Cz?+Xdd?#P|Ob*0RPqYL#aFLhtKbupfA0`LGg;87u7O15d+S$faQ-kz49pC3+K zsIQoxH)CCHa3y#weHn~Te|>VZG6y~W^!4Dc_OD+FM+f*m?Snr(AP~M1u(ucr5L}j= z{GHe;$t9AV)PBiTGgLxx@o|gFkJ=@IrcWf9J-CW%6>Pqlb$C;*mpI9wqV-i10y8Tc z!v~$Z#n%n14%as524KbvS<@%kvm%p({I)EXU8XtcqbN!}Rrw%5>76GU<1oz^oAWH;dm;tfH#;Z+Ym zSj9Anjor=FCX|%)OyV|J;grtR2rxs(p9Fy<)X4e(S%NMu1Fy5w#)sO ztggm*-#Hka>)QL?b9-dP;CbiqvEJcdj+*}EaiErtD8%SVC!Um{HQ2%NIh-fSk(F|U zBi?6KTalt21p347Y+qU!X^E)X%{g$vdzFa`=?;7`Np-fCsd45{C~?j&XsK&^q;I|l zL!xV8alZhDJmN%gl%G~2ypnNB-8I=x7cfwfLe_*qfa6#6UGwO!lR@dtfqI1_AxwY_u{KpES%S{Zvc}i%TT02Y`nT3SpONSr^PDLzDdlQ?3b@X(Cd5eg zqGAW7D3YSPB|tSwl9RmF7`k^TwF!;_vA(LvPS3=fQA09j7ORjK!)Au-(SANVeMAZc zE1PeasFe~s-8yWiCRSH^9u61!slv8GsY}bXs%oK+~r0fBw~y2w3KrpEoVbWZq?g7&1qGa6^Nz z_;NP@GY%w=WEiE^)J#D3%A3dH$BFbt;|rhfAl{65%I+Op56vgaQUqdOO&pOA16YL% z!y3q^H5uJKh$_f>JLQ*l$}Gnwkvu3-c(Rsi{H6r$d$cxZYN>I)da_1alHOb77{>ri z{m^DskCz>#D8xmgF{u8Oo#GYUTw4R_EZ;R!zx^evs-uNQL}9*n`FSq;qMTIfnu%SG z?W>bjOcoZ!<-h4_mVX>u_&sx+3}&*|M^VO%zIrgXZPeb|k#m36CWq6WLci^3fXou( z9t1AR1i1+^{DiTuvK>DnEa~Th;GZW#9jQ$yS&8f(i9Gnjji1*>l{(f9=H4qa5}F?K z4VRtI#zH{8J6B#X7To8>VO(Fw&x#<J6&XQV)a>g3;Es* zTm)Xk|HdMaj*jWEpsR`Vwpe8R@K3l40Q9!Y^{JJPR=_F+1)0;ksF@`Z_9A8qT~HF$ z-b~ODmojnXQZni8LRYjfQy0@i$;|`GJ3kZg#+1`{mx?t7kC>l%bkVNbuE=ZM_b zF4%T?@%!j^adC_8k!e&+C<}AcO)SEI(;Aq;s1V#Zfcu@+;Y*&wN(8EZ=XE<76uLpnVZCP>hn^?M5Hw41$41Z@~Gx2LSfvFWr zMplW+AAv@QQINi}&;DXgMD%XXd~?1SnO#x!AH9dv+B>yhlGin(aBYpkqiUU+3pwT+ z?9P@11Gu37s4urfZ-s9+dEj3`5JtFCZI_K=LOd#B*EOdhnfdtHlbPKbS}gs|d!2Yq zR%X3lNpI?x4NS8yyfRk4L)*wp_j&eOqW$J_YxO?2TM}J+TMB++*$Y}bKDpVIZ zb3qS3;4pf}ZMwYh_K|lEc<_t)G`qGZJR?_h!q|)ERs)yj}PJwHc^j1dzXRa zHsO3`m1lKT;^4+}L+-vjdQw>R8zwR$@h66S+B+}QscyQS$7qlY?~K!gv>Qi#P|mHy z=N#+e3!W>m7mh%Z^W{Imyf z)45}JO?Tw^4w7B~b=zWx+5={Dxs7n?wCA=?^=2eKIj3Lr!g=MC`sp5lMeUhamSNg3 zAOrsH^{FlP8eQmMz_iQx{AgbnxZhDg8OlZaRL3=d85ZW(fAe%}dq?=r)R3^LEt*br zL@pCpAG{D07hcjqWUr`KeFr{6vmh8NjnaKzpXOb$%EEsxq|23ex(GKi*ZT4_WYem$TO>|*=>y?cZh_}J|Rxt*0E~@{}o$@ zHsJ{v#(O)T?cf`Rx3B0fzTl9F;7za@pD{&DM#Ubzx$DqqHhd>2d7q*SeQ%zu0^yVM z)fxOh!Uwo!<+$w}YsB6Z7Hj}3F54F_{Y=()FmJUa%WrzLass95WnZ7%X84&IGPun* z8v6TXF^LiZSv~tI_+3AwbK&9nSkc7)@!Fc28cEwbtHPk&tyfbo&AjIzP6fI>K3-p7HMP_k^rX1{YGEzcOO2;WbDg&KmrgXVelVZ5|I9zH^x_+92-s)PpFAJ z+_rk>VFF9p9QGUWRWYJVTC0=79qMJpBpbc#PvWHaE?1t_N=JD4p`zX+3!NEp!J_u$ zM|mmyE&w0X-u}HY_g-`H(-Js4dTG!<*mjz*O%%i@24;2s6Vdv8M}(K>vNU`&_J?#* zQXMf4GIDgbhc2>(ce+UXUsxgBSg>6{NBT0!mu6<8qlQ*VGhllZ({_QL$M=S7Aq53A zT(Bo$mB4u;&ib;)l|mhHbDHFS%8$)AurA@PP}XYmoxvPgec zk4J9Y*PfysD6!Kg?C#yWPpU-;>v~#Fc(2l(D@g9Q2p@<0sH6BZ{UXlC5`(m!s-Uh` z+V0{cWQv267{o{hMQx;}v}0a#&a3xsRQfnNEp5CR_JyOKhNiugv!k@WWd=&JR#ifl zT{o-qn7gcPMEo47=8-g14PZ+#wF^-ost;gV)IJeTPYLl*v_9N85#z#MdTB~5iH?_p zLPFyR&cquW1ElV6-$XzvfroFNqXO*=bSV#~ART@#I)3(&?v4=+ovGWiTAn9ya$3CD z>4Ky<4xB{AiFC3Np5@4Innxa@F$(1DuMKa%si&q|7FRt1Uk+1(M~9%o(Fz%f1aerg z-$wyvSLu4pwFM4I*eV`M(wJMQ-e)EN6lt=5Kc=N~As9%{%b2d0CIlhE$FhJx9vwyx z8MHfSao*O822rKe)NFtFsJF-k48uajs`f~QE*5mEMU4GhV#w@vt$l-#8kK)k)RzzJ z8rQ~Y&ya8TAH&~0+vR2>pUH4~sHZ18`k9atQk^-;EWdwqqb4yLokQT1Aj^rDU}8-m zBU}v&cK^tQOtJl}Ysv_uYxosilu z)WxVVLq!*1WVIEN3$hjGGT+Pu;Dz^(c3$065oNFji5uqmO^~qXbd1u%zj|*i0F=Z- zqZpbda`a`7;KE$ajx*d7XB;98wdITtmT3e81V~VW=i{#jab-&Q2-O^x9*iKum4^=> zLP~+;t;D%E>-bnE97S zijy_N=ooMqx)&fF0?Tcc%B#Y4%qP82hL`YzdZ_|aCj1#L$UBF_m|3h!kqxg6Au8E7 zIg^@7IO>(_%qoS}pQI9)MC3QWSU*f>m^;@kC+r~hl)Mht&qVHPjI2z#9V!lGSt(v( zNY+pLh<|k!#5ur9;jequw7k$Lto1@2ZZv}{$CfBVYk>$tZBx(Iox)F+-nN+m}gEGv-)g0%wzfNF6h zau?XWARfq9K_c1XsK@W7$1D^$T`r}5k*czde9>Y2j?_iuZHbhLFYS6|&!g1)*~zE; zy5g4`JE$N`MJVnVQgV;aYjE`2%skG2UgH^bZ-3h37sZTLsptXZC7kTdBJ#eQFl_y;r<0B75E>caZ2Q!Zh*^?9abTe&SS zQ&I6Rb0=y1G2!`nQ4Hk4H>zUP#OP?!H%XSBcR;6XJ-!KlZbEnFU-p5gaFABbdBGsp z44KV_6Ds<-Ev}Xe_hb3$YL>*fAOb|HVBTLX;gYk$qH&_{)3rO0%E4UqlTWM?@gg!Sf9vglN%VS6rTWGBGN_^JiT2$$HG*UWlHnNpJ5XeH%W8V|IYp_@zbAMOTuq# zT1tzB9X>(Tw8DJe1u+bjx+1x%`8jy{O=tqz51OO?hL07+VWnhHUpIPk9s=5cX-14a z*qnuS4B=PKVa`w)+giZ!RL6uu;zHy|n)ZZcFFI*!z7(f4{9T${Y9nE3MDuE5dS+K$ zf6h6v6v^*VQ^(;SDwinjwXmo%*VT0O^Ypvdy5q97|AZKG%{pOA*qVEJdB_tez5lga z-~B7ZchodB?kSS)uFFgQPdi2@>I!>i(L)5OA-s&hmD5zFzO#zAF_DS#oqN9_azS@x zU)n1Weu=_3ib=MxUTCM$M?udMT32CNW_w?r%8fC6+opH#nr#x~W8iFr^~5){k|z-H z9SF%r*p0IV>x{ZEw4;Bi9JhC70nqIfy6J->gO>B+MZQ0N5*Q5KOKH2@>6%6?s4QP_ zj=Uxn&T2azPz+Wj1x;Y?KMNad_@1dWmY_IVe?H}_bn_KYuChuELI~g zip?FJ1sG4XeWyHE45Ny`6-W`j2}sf5I82dH7S$9(2*7DS%?=C_=8pr0x5!h%=Sr15v{%>B{gtt){$qsQWqQyMdF`h%br?L*(adk3~c&kT);=c*-3`;q=biio%X zha-sHRAe@$nLM}Mm@bUNXtPvPk=BQi#o_rr2dDxIQ=plqBL!{r0%(*`dJ18XzyO2=&<&71! zqn=|nkS){;hFXaeK%TEos5tBJf&X6{=H(EwM=>olN8WyK0MsO%EA*^T?8_D{ueh*L zLv7wQ!J7Nme%vq3kbOVWzA{fTf)exYzfXNVRMvw$AeE59AcxtlxxsG%09?8%qYG&{RZ$h$t{>>~T2ual14F3?r@*5q~~9oM`iOU|tJ?9!Dzxo5u32Q4p^%_~) z*K3};GE_0JtWG+qlbRTqIkXPz&W0*h8+w6(SrLZJYlO>}$=R~Ke7lw~!8!ugbg}4~ zTNtd|E4*KF^I-k9Tpl{)I$B#>i4bZA>vAQiYnD-h1#JxF`*EQQ0e&aotN+t_nM=M2-0lY#n~QI#8gospyeL&yDre4_Cj0L^-^RvYgjd6xYl0UB7j! zVS1!ZW$RW(_X7Wn@G! zd@Y<52P=R+vkoK9DY$7yXAeV!I|Y-_dO&l?7Y|TXWI)oSsPi%7SpcBD+_50 z{N}nh{};`H~dndt=cF} zV2_BbWNTCH{9c&fjzxA&z}x(o6gKoeR$x zSpHb(`23LY&dD-j(K*auzWDjNkMUA(4Px);##=moxdiPbbV#`Xab(WtvxxYsi??gB z?1c6aNF8q}C?o_n7`PNYu!^5O3rA+(d_y?&*f&}XkuitM0#SAmf2fRCs2cRM1E)=#E z6c8m%Ig)n@Hh?dDJFpqw1Pi(#eEtn{ML*KVE1RQLtsKN1=r((9SUzdcie`={j6uF2 z$VCihbFy`v(%-NqC-IbOJ7`6;+9t?FuE=|6Po@CgH3y8SZPA)!qnB=CSOQc}An1a= z02S&m6i%u>&dkd2>}NpYq2C&iECj_e$w3NDy@USU+{Y$shvs^&zgkh|#6{)OEZtwF z6db(HUszZ8f__5dKO2h<%Pt5k%o`Icr7wvYj&K{#J8&tH&)Ltp4Jf)JmRjzB+6~p4 zrq}aOr4B1im=8#7K)uh|!*lGA#{B0NCoeJ9#xIHctX6lf?FK@$60~mHIZ{C_9&-6` zE@J_f`c>~}r51-sAYA1cK8{^FhiI)NZhV~JSNU6dlPJT2VQCWS?@tNe&k{rj6ezum z4nIJ6h6{>bd&nS$lGR?HdIICg*6}O%{caq#=P+Nbs)#ReR^Yio_-%&}ne-T0F7#(_ znI_)tw3P7vYo33LB%{UMr0J@ z0^SE(lVn`ajRX?d-nn0w{a0RksMmD$299 z%CLpdlpvXb3OndApzU?u)-vo4Xb#;LR1dg=<`#}pxZB#s%JFv($P*PRU!8x)lZ{;! zM2X5De#A-WW+PeUo2p%c1Dgo625Rd z`lvC|l;F0^X1MM9F=e~yuOoYxWWpy)6t>{T5(dJMuu-ZuFO_Ks2fFC!u6fLW*eHET z6IiJ3@myFaDn#W!77lmtTq=qC_gw0pwV-W?Cc^}oPDAs;TJig)=G~Im0Bghsz^Z6W z4p08aZ>imFZTlL~ebmGVW&l%vw|f9gxNYgJ8=?nE?pFyH;*8zY#ML)6d+PJuvhifJfk>$+YE<#R-RZ@9#< z6?Wf>h4y}WkV~b=p=Id^rT+>bXI$LdT%bj(=;WGd^v(4Ad5#e8tS%_fGZSEu?wKdF z>L^&n;=Qom4Rt4oFlwa+cHqhz>_ELTN5TUb9#2&H!*38-FlZ>vH!vEQCHR}V7F#{u z3o^{QteAS}_0x2D8qbxhiJ2({mTmo{>9DfG`iL5B~ASG;NH4J5^;!}4U?of>0 zhENfQ3Q-?hI33bccm%4lI>KHmW8az^CO83v-JIIDVsy~F39bI%v^eV3O1ajmHD>&i zvZ6R0WEHAzag;L-$`g;zZ=?A`A3>S#BueJ7z2pCxP#CY%-|MPu}h<3O}F?6(OL)mEskKqXfk&I$Keu? z4^;Dok|%04MGH4ipK_e#R@$BLKS4Qu?aC7WZTomKwN?nkS?h2%&Rh3*4R0f}!w*Bx zhI_5U%1LRmM92gC2YJ_bvgpDRNPL_FcXduwls*%}bqP?U3R%I^LQDmvR9D&1Id?ve z6?nj#!B3ZTk~LjgcRPdX^yAgbD)Qq?n+Px!6~*P9$qa$dXgnqzXAV}WOK7zYIkU~>O zP9m@?GnE^G=`>##pj_Wmuxf%l~Y?r=Th$CJTKV-S%zN zqinl`*E3H`h_7XmUA4zgXZc4Ub{Hz>LV1oFm#i@xi4jlNK&H4}ts3-(&H|_na2lmc z^WaT}s;E$ah@sHP$zkMp_gYEos8i{3Xv2@h$I9u;QQ-@tqdy-{RHa_{{Fb`xy}*=`2MFyH&Lbb_53r9B(fVm^m~~beOsZ;uGlS#Dx*My<^aVLX`j2=7N78l`{?9feE4A>OqfXaxuBfP|N9VcAdHEucd+++ygk6(yo!eo<_S?8 zd>@*UkzkRqX-Ms4?(~hob718VVd3iL=dVX&X)47JwWlcBeFvr-xQ52xImSN zL)Es2nm`2}A#x=Mv%#O}u^>y^OJsz%-K1ta|3_slwI|F8S0*#m(WCzCHo21a#nnam7vfm5x_8eEP(Plnr5I&WMzJRe;z3G(1(@ zNuh=56D5{HKy0SGbF4VXe@ac&M{`nB$@$H()KwB|sQk>(B7iyp`gGbD%r7r^G%{;S zy4w5~gwcm62e@BYa8gqdX>2NqgR4afKRld~@I+`xilP@-djPV}XYJ3NVQtRbS&tbr zn$5cq_y8^;@Y#GrQ^oZ(N&wBI2zC5 z33?clduqWel2Xm>CGi)V%<=klYnN_ED}h_;F_vZmh$}z=_u^QTd5jWg5_A=M3%aT` zjEyNCK71G%)CA-$pr?9&N(HHA+%GT9fU`p%lo2dzF*W~!`i%IQ&z~(|!-=w3A}?(x z%p_poP1Y;6bN2t3;wd)xP?C*$ufwH4t?{XHenfbdcu9C%BAoKylc9)M8ut!v8g)AM z3nQbmpo(Exu}Ii2w7DacIw`W$V57LAB6fQEvY40{LPx+?q!AD_9?WN`S4PZ+JG53% zZ2ssYK}`3f^u1z-p+*gUy)w|enY=(9xnpSjm%p~yF=%&4U#Kvu3Vp?17cf}RbCCVQ zDKy!)rZcEeE{D=TuSLD(ysln!)kgP=`x&DhEbBPGky8t{H}*ZE9ipyk|@n0uwpE9kF-&*+&})@m08 zhtuUWhiR;M+oplXu!xx7Y>x^I_%Jwv6j>|;MtGrY=h?HZP+q<)9d#i8z{q&M=!W7_ zX`FJ>ziM3R@8vSJ0~4TjaLw5Z?21NrqaDxd&88u;Z!cC+3qU3e(Q;D>E(@|B)UzeB zWvL>NJ%`&Ql~KSV%;AS4qcF+xb9La;EnR_Ih$mmM19G$$aW*$jE=Yt=g)J3X-gmz_F+Xqg)pt{GLsutPtUpybUbDK9{`*RmuYM7$#~?ZhBV1I73q%hvROzF+ll6;>jL(j8 z!p~FN|BSVcx~sRhx4*=YW*{+|u=DkZW+9bg!g6NZ=<#}1QLo`VQ^!OR>a9fE*R_rWatP0J%1v% zn!$)8JM4}&o?#cN|1j;()WlQ+t_}(km`ALwk^Mx3giI!~iAc!yO8n{h_b*8Y&6kCR zcgt$(wdPK8q_qfK)tLAzKSw!E`z$HzRGcIo@khM=CJ@l9@j%Pm^!NW3ca{|;7NA!o za4itk?9V67u9!M!j#7;y+%0svGvqBc7Ox|gs)Z*#4t~k*=u$}x_V)9uV%o4 zF#Z#22CO{@@-m<44RE{Q)zqZ(APmgdx2yH3!y(%cw7a<6Sn_at!o8IM!YDC<&nmQj5rWpk;vJ&Pb2D2_`4Md$v9Tc# zG?8D5O(Xw6B%#3AY7fsr*vIL%$I1sa}%>k+wOO#v(a zguO~FN_=#Bg;#LD#S@gn0sx&yU*I=e>?ROK>DtfoKi)CTmZx!M-XC58-`FCUP8Rgj z0`veVzjWym;ctLB61IMa{02jOh{ary6Jm*0*hnlUVn1gR4Ehb0-;G5NANG96(3qWU zQc5(vv|cc_4DIbPb0HpDXOtqdNaGS95sOO@^Qupj|3r}Gra#ood-Gq&Kf)ljUX6pi zRmXxxrE&P#AZ@~>_Jrm2N+YCMTvdFvkkGV5xN-YUQ}>Ea{$qZ%_vZksH(D00kOsdX~+96Ed6_7 zVwU0ny9Trl`WFk`XIV41s?eq)!cR*wVhq_wWe)VZ0#?O(Lkred?5ZXP;aV=>ix&Yw zcw4M`w*Eh&t^^$FwS8+PiFQP^b6Rks2$^=L1#Q}FNrjXpWH$+^h*KRo5n3sdBng8g zGnFJsiWp3itue$5GiJW~ozeOJ*Z=yy>-s8wzu)`5&vQTbeLv63@%oPJsd9GgY8e)T z$G+RCwvxrswSCw3K(XqX3X2+u0P!PmVtfF!*Xs5ruzDbQQIZw0i@}I1RT`n_MN(+) zs7c4k))?PWBGZJP9Na~Piz0BLlRAPe9KB!w0ZdSSyLB~yR2zDa`)2_Q06El*eNQuo zfBHP5icD}95GZwgb<~hOUmTO0aY!&P48ejCy%)R=_{BZxH$gGZj4Yh;N}91A6D|N} zjp>LzPz6_BUT{OLJE~T1jWP?{dlX~X*@(sTr8y4I5o5a_$7x0SVDys=&G$mPoHqq~ zk)XG_92bJ#&`jg~Rp4&0A^XeA-rnV4_VL4Us|B=3s2v6mg?ADQaER0|v-t$$+0vfp zGJ_)nxaiU>j|1tA(Mj7ioAAS)d3VmlF)zLJD+G`QRE>nA0_fuWJ2NT+){&8#wv^Pg zhCaTlS!HuKkG|mlOxKnoZNzHu`9I+v_W=YH2!GdH`}ptYZ+n?CdbRM#S1e3QPz&@9 z3eMl|2-)ke`SyAmdPd=kg4q*E12BQmA&LZeGeEh)%Sfk>Ct)tLXh?R+k|oXe zhJYJY^j(|8I|oO7+ak}FGRJi?@Twr*Z8I~&8__u4C3^AVnhFyMB@NPXJ5gyG+Frb` zUj4*ShP7I;hdKAZ&}U;~v?su9+ct?#FQ&VLc0cTdgw*`{iUx@_9`J^cMe-jA1p5Jf?6 zU2tj=>V9}=6&P=!8=%Dn=M@MOArmKD%Ha5v?|pt)eWX1^jZdWC&1POw8>$`$KR;!= zp#B+T3xO%XECZlr>>yks(L%&Z_&m^9c;2Yl6p#^S7BogLor(Xvq509o<8_2~9AX#=e$L$>z+x6rJ$`x?=`2-+2UA4j}F1)X0g@KNNt zIaH2{+&SIWy|aV?ErnnBp^Z_{vU$qt}zqwt+*9^#<-)cqQdNJo~JYh z2)J>6RLw^okwnh$@Nf_`H@AZ!r1)N!J}~<&r=TL*leC5CTw<<6+@*cgKZI)`k8vz#g5or+L4HS`L9aZqAvz= z$`pCOsx2T)GxPPyvO@AgD*$-BFc%wJ#i$Gj2p=u~6lZ(IwV$IXvaA&|{;u4t6r<2H zHBo}^tH$Zqz3Dtv@SljLF@DtAN5qp)LOH4G#g;jWL4K`=DoX1I85#CLL9@{VDusa~ zuqYCraG;4ObXfrTzGcAIhO_aPn(?$Gj<3|$7Z)2c5M4-0wV(`72L?nOr?e|A6pzRN zL5kE0zUKU{gJ(9cczPl^UrX#(`9YgD^~Sx?`C12+PN%7k|HX3hauh_!ijjbWo3-c? z+5UYFUb}Ip!zN*O7S=Ew)=h`rjb9>WUY-_ko(UEu%koD<_^)exl&H+fE z_(}Y^`OE8~sYAd1DB}M#LUn+|I7SNL1nvXeYMR{gCU%Ki!zgOJB!FflA7X=#*>%450p1XzL7L8WP3i%Gi(0`M)Hisv3VpsnSciGg?^ z*dxfzZpFhh#T&V&c|A6=6bgDdE}evE-P#h-pS!D-fwC=Vrez-j%dbn1`J!^#q-!)E*K3Ld^3s^J^Rl%HQsd_mM@;AXP( zo_Vmwr`2>Q{Jf|>oQ;>t0@4R&24@I6aVeaO#DxYcQ1z4S;9~#|@ItBsFIXg-l(B=k zM&$efL4waixdS}LYl+nE!9C-|riHOrcyO>DVh0Wa71$MwOy2ZNeQYmu{V#+*!@`@N zgCc2aPg@$}r^KFpmeXkZe~_s7;RjLU5YJ}+yhts)s1b$|1=bG0DA27(mFW1G>NCty zv{vh7p=gy9{jfu$fdd!`oe>}gB1XZG26o0;^C?^x5en)pjfDYN8r&QMT!yHi@A~z5 zYI5)e_%Pg8lo!CCfKQG8owNu9e8c7JlEJB%nn+T*K}zt~QeSqCj&ObSeae7pVt*)k z5u6%rrRsVpOYL6flUSqHTs?yKMbst1LK2=aij}`3z$?`K=9lA#aQdvQtN=TtK!}iO z8j!M}D%;eqdPsK0y{21F@ZvyS#=bpLNbMjH;UfVy-uuwHWJDQ22VXJ`A*1BZHN+CI z9B9Yv;03@kVjz#GLlo##jAO&HIbJ~prl>P7!idH2+cvx(Bu0;GoKTFisyX_~egx7*R|cyBywF~U@oOk!vmGlRfx##_CI5RaYFppwr0KWzpgRNV)`U(ZB2;%TlL$^-Go>GnE zz%vIj1{y~zU@@yDLclOe-ZVVgk?v(F_20 z-^K3CS(-S(k1z#o;PFA4U%#T$=oxd8r|UadA@Pmh6pYALp79w*%Igq$JBx;LGH-n4X&*A>eOeRZStf81;nnH zjPvO4u*4lz7_ILIEvN~XpAe9}{F-2MfR|~)Ia~uo zW^}L&aDbpn!7BpR|E#?Zaj7W0A-%j~z$i6U-8LmP@6)GGu}ksIkWowqzfA*dpO;)& z%$-Qa?p%7h%u6uyD=qExq%60rnO3YN1OJb`?}P6im&tjf z$D;O?g)cEp?PpXR{a0%`drT6=#NHTl#YkaOm8UqCh2)EZAH4sXVkX5y`-G0UK13XJ zYY_BEe1m9xv#F)-G?>zrW`|6|V#Jhs^rxkP1Sb_ZYGgDde}!{&gZe+1dvmIQZ0I84 zkPC?zV3Od}*tfKWP`9|%3i=0*Sz~=8ulDuhD2P%p(m**kt8SF33u2D+^&0AjNkLW7 zmrvl-{Tsn~IMLu8FYLE&eao}b+XkphBCQ-#QcxW~4nZHw3>~iYqKZCTS}+3y?{xY} zJd98gOVDA2@|JY)_}M;-3l{rm+h6K{sQD2zp^gJf3*qL}D8W&2+IFaNAlX8NAs03^ z>;22kLu34ZcSV5{90hy18z+`!!m%ViR?hSBWgQ;a|{+M>*k;b z!#+}QCo}tm3NkeTa|D3`V@nVy7_mU%U>iX$Cdm}Ze6<(`o_|k z0rR&bXajW+-2?UFBa~*aH-V2r;t3r1;z*=dU{5@+>8eHJLhyTuePn4lX7qams!jU# zMQpITl{F_io&%&bQB(GY=JRJsUsfsLM2-Yv>t17Yeh@vV!4-Zlv~aZ4jt^kD5qy1x94|`Jbd;d zq`|4XC%xB$Z)~$#rA{NGIf>`MZ(;Bjt{CHY3$`!O86-?G6^1TXWOI;I?rwt3-M+A` zX-+4`Pi#&HoI(JbefKyHg<+WkU7wu|7Oo`j26LJJd8&Mrt2_1^- zVamza6TtenHD3#e7PsZ~0ISk`Iiq2{K!t@0pU@;EBbujDKmEyWo4O8CCn?%gdQ1MS z@1wa#(AfOzi^WQ%BWx*(+gHE=Ww}c5*`Ua9QmJp7W|V@70ewWFOPpV##6++`5w4d| z;eMUHIe-j@L;DmiDeEb>6Hb-r{}5{_op*}aq!-M0uy-L*y%n`>pX-@{;Rn!#D-Cw` z`Bz>Gx+tL#SCX4}PXQJATs8~W*p`5mmym+6@XSnuOAJWz>C>}_{!JVf1JN0SvPqgC zOavj$!Q;iJ1bt*(5(kslhnK5nQ$HlL`53T#WGmngNa&C0I<{+SM_G=$^XKZszD-J0 zbK7;g5|5vu#+g(8#Y}ReGei{s!p8F&obbsY{K0sG9uza)ou8KBN+h4Uo1K2PpEp^f zvP5PBoI|dJ0|mPga}!@|nuDcQn6Rk0i_K=0gi7=3i-)a9;7@8Jat;X6v-V+(*s4Xt zTqZRJZ*ve&A`3ObQG~3i!5gb4%HAl5Kxg zjfKa3g3}O4rL0M;;nLL{2K{65wCn0(!=#t|*ky)b>o6Ck`y$tveK8YF1^Bi2KHvq( z1O~9zQ_pWOFyyv<#gRTYJRC%LA>bKw5{Ro#SSiI-XC=Wh!%o057y#q#J%bt8H>qfN zpx#{&IPVf6@lIKzQxE?N@yi$09mcW&fsXujgrC1a(nGS#QrFS+;?EJPRQPLy$!BFwc%7c<%3!ekaKqESL(xz5e?TCs) zU^^x(mB(pwpgMqhh2aI(oMbO`_#4Ok4N((cpLCt?n2tY0wQ=asp_XlR=b#;#jAL9y zHG;9GK17PZZQfv?!64wH;6JCg_DsLZCcat(MDj``2jT-^$AVBsX(p+<(EFoXV6aVQ z6vl#z4G8xcWle|lC899~giqLh_z$_3SP%7Gl&SO>ei84=hz(+vXUXd!oSmcD=fz6D zxv__O)awe2PK=L7t13^(XOlNVih}|IZ!yLWU{(~USlm~r?yauMD1p38053{Gu{s)o ziC$nIiD?0Cp^2MXz`3`ANd*Im1BAu05;QP}X9G83MlmtS!Z=O((yzP@V|CcnZUg}f zdW6&9!)yiw!+QfD5|W=F6SUl*G1f~E;O=2z>A-SMWQUHKmI)Ua=sOT7?^e8(U;{*UqP|)-MwjV^c ziBB1YOG#ymMGE0FOM?Di)IhPsDgk+-Zg{b&Wq*|PA{3|$*pCk^Bl=7+zk%(}{b@s- zBk-Ccl47fqbh}|5pt)R+{>qi4Q|xOoRUIe-2^ka#c}1cE!#~;4I1sZ@W)yfd40w$! zdvS?>o8gMVgcBP_iZ#&!a`3!LHZQ-CW;(yaa?Mo*)7qH%xQAez5vx*n#4OVXAD@ou_}p#>iu9(3lDdr8D3M3CIN9&g5x`J2%;<9bdfN`3Fz z$!veq3Z7>)X&h9kU2=us2Xq%HAen&31a*x63@vH;xTC*h87O2Ak13)dJCTc^N_}|B z&ifx@WEYw9;}6=gAvoZ0L9vD@cTU(E*lroJZ71^{je=LzYnFsxfgON6cmcbp6m$%3 z8T(8|C?cWBm-ZhFD#u6e(U`S{Cm zrNasl>rt;0T?|b0=dWMU5Qid{_w9;>J4qqp{yAL*R>CR;y^7O>r zLeOhTAR*~H&pOz_M}QDQ0$^+F5vX5?NJPSkD;6vyp}{=WV)i6a);PsCWh@Vr0l7b) zD6AViczD=($zie(=Yprg-{TTL)<$~zk+&dbbk1?L_WdV=&RSA(o(Gjr5)45GHM{dZ z=>%gtQ3VWYR3$}3nxc@m;HIjcFx*rG#hl2?U|fhM4x(Oc>IQzpId{m)j6-q9l-OTL zxecwz9!f`w^E^qT^hi8luNW6e}F9-zdWI`a}NbD*wniZ}1WinCRo`&+~ zN51gWAIsOyp?)|pOUxxDZ$Z1xsNIuvWZ|L{RQ(J z$`0xntccnx4mX5J_5ekV1Ty!^Yg+Ev8!Q821%muVDwSh7uvtrHNt2VkbmmRxy8RUI z4IA{nZ>s0mQHNKk;qC)y*T_UL*Ff4ih)*>bXmUM&s`VY;cMh>Pv z6&yWT{P+~o5r^zgTKM67F|r6B+2$GDRJB!%GBlqFy_~ouObU8FT8C)9^we&B;eRz7K`#363q;|vNS@$18E2%3Hq4ec7ZHL0E2BN3_Qg2)Mxzc zVI(Rf01!gZ#;8*;*pRft5sHg|*qj3=x=?AL7t5P8^pNo_ouWH!n$Jj$H)VL~=*i1( zI7jGjJgP*|8iC^%L#hfn8GDv|RZ)*D1NOp)?s23JIP$6~!@Ir~1}LJgmLh?N$WZ`+ z5Jz%73Neu!V{ZYHP%Q)Mhzo022FTbCFvMSuuar~55jJlzkRK^2Mi2tnP7K$A?`LKt z44ObFhs30RL@v%TgsMQ%Fc)wir&3Hfr`rw70zISo!a+aHM0~dms1fkQr1)knR3Rhi zepPW!2*S}C30{V@KwPC$9ci7QXBZ28CyaD){)oEx^P*eM0UQ{Rosb~lib7e#~WU|!e59vTk^qBVY z*X2s&hLiL3#%IFY1i!OQAI-1TGecY=F&Wqz`GrtVK?BOdp-j;%Z2pKN`+3D8t_WHu zMu-ZU)rE5jQ3oO)7??XVieH551ITtZjZw1)Y)8TdYch2LVNGyqp<5I_?FDOcNJgs* zK6p$NK`qHEDCQdpzUvp4U=x?l(7e20M23XX(|+G-48y=Z6vPDreT^{Pr0lX2v?!8c z1u$dY(sT%tlil=514EwvM#PI|(W=7Qo{2f3p;c#eZ1v?!eFv{c-RFMw5e2tR7%{!; zF3;BwMgi2>*$EOIISSE>S6(dGDk!rPj04*!C3cQu+6~UgOKIU z`U@ArLsCT?Cnyk4D)BFaheN4_bcda`eR|Q|IrDC@;K@WlMnWU#IkQ+eODyU%l@RI^ z!!6g5rXq0L2w6+Z4F^_B+DPv2enA+0YL9|&6v2v{ZckC8(hE0gg~^!qYFycj4Dsr5 zAi5hRxnZ3QOjH`a15sp^f5`Db&^X&!S(OeA8A_o|h6U#aFTHqZiQo#g*W$(V03RPk z5uYk@Be4J!5$S9|&jw~4FkLjKL{%~oQIHBqQ*uB7y@7Wd z>n~i5fu0MQ+}Bvmb`AHbgGQ)i<^F7RqHmRBF_eF=7ajx26X%4$cPUbTXHth<1O!fj zi}CI1r1m8+n^5;+B}6^y!u7yV5iEbEqbA75ZPhRFDaZmqAx1k4bc)J0GMr!1pf;jY zG~zl){2u}Afy4c^1ogt+`$7lq5SZzaJW(M-V0Vh28GS=vZj6M{Cd?r^c=7q(HN^ij z$67&cmw2jzMsT9I^Wk?c2Zm;a#2&<{}8 z@Nb};6%Ular9rAfL8VAlG{6*EVfdJXT`|-+Q6E*PkYo~c0oFo6iMn7EgjPMX0Jc3k z7M_okX-FJMq7p(6FG)f$sA{O)>D$TTC87LAZ#n`e$!@@wNU*s61}+{1uVP-AHZg)) zYrz7Gh7S;z=tBCJ3+e>5C<<$v+DfxEt7koeqYxA+7_#JNMkYLeh6g?%swnkNg`9R$ zVgI;1=dzGF1=5#baGL(p$0 zS`j?lX;;kYzj~yZDu@w<0ItJi)M6(rr$XZuHgf4>B0^4|5SK9oDuTX*XAII2Y{ytw zRGWvFU-Mj{g}`TGBEBII)+$t0s34b;1|cGI3cpzh$L6{=tXr8dN#o(zX3xo+Fp1;o z_sXq0-F|9NXmRgx&VhY6NViR6h~p7h-XOY<&Q_j;Nd$7_me9(fX0ayqOlF|0)3n03 z)jdLB&>Qo@w{o@MlGU}5R2ig)cuG(&Om*NeZ*G6i#Q9Sf^%o2GBJZqG<^QFNjt zZCXgUBwC{NW6RwSSq^objH`WmPgnbXg~{ybf1gqvKRkA>9W!CKMSsWF|(2wFO(UZ@OESofJov;89PYiUw&6m-Z(BmeoC@!J$ z6hx!0ZTtR_$)||gL@)K3fuYb|D8tp1jS#|9oYfcntuHni5^(~@4QVZGGN~Og!X8g6 z8~)-v-wnG518y;pr3BR+Iv~LAAVzxGm;%$)r0*r_I>|cXDEJdym5Or!07>eCeT4{l zAW%kFzk`T%6-WCZlA~>M7tw}*;8_OE;c{)Qx5grT8rtz>S#Tx>n#XgJsCr45bge?X z$9aDa;}#!O6ALQ)9zA}12HXzZFa)Y#rVw+ufErOOC@&7PS4tH&GLgS{!)z)pG3%)m zexVTYgT%K0D=nqide>a+?lY+t$!Bkdq&UMMhkX4K(G*#x-XAsTJSG<|v@Dq7*~KEY z^z?LK9jVi(&~R{xVu#cOAOq5^Z>h|CSeEe7dO+fd!9sPa1rg{Gd%?+gnh%5y_6t zhk=*ZpGmza`jsr4W-|P%I#(zJc|;PS#-|%9yfl1||so1kN2jCLCH#$C8 ziN2)Ge%tC&-ma1EI{!*M0}i1?gc>CUhzi6?Ju4Ce&!sT2)T z(0w|=qNUgk({Qi_P+XH{Hx%UPu!030RRNIL?-2=@18Z+2#50qAA9$wB z%Jic&`Q{=aQ)C34l`#Jlel~?aCx8`FI&BzZt?+R%Mdt-tTJYRqlL27J3W~$WR4*Gx zO|+%Cq4N}7K=_;7pABN!1*|!w8Hfp)wIptn5(Zx@KBbVedXwq17~PQ;!WT$Nq>3cy zM?uY)L>}o{eU~%(D)?{MLW6I z)B@kNS9bOV7jt}#eG6@kqT&WQ;=70~k_+u=j4>J3idp(man4)a%trgo72nG&zxnP? zG}>K7E-jeX^Q*l&@Vjnub3idSz$35mOE*_EWG9Nm&KVsdMd=ws!F0x;!(_7AKo<{v zAc&#&YmPl@aLv!pHwYTin?HX(YQ+1|xB=N?j#)KeJSwR;s5IG+9-#^NMYB8N3i*qe zg5~Js^y7I4@AilI1|2f%G0!?04}oTeJaFycg%11qT|;01Xv=?CZ%?c3TsT=~vfOwM ze^?6j?sanw?EX@nu0amw0b5#n7$)vi7T+e#`De#J0pxAd3Z~F=J7(XULGSdxZC2>( z^7}e$j*0TwwToj9;qGc60_XTAxw(Cb%)vzQt9O0LX7loj1}ofp+o-}e_&{uf2agD` z_4qLlGBPb&Q%^pv(Zw#aI0%# zmsNkz6!FVNtl#mxefRbTSy%mM))^}Fgrm1t6uRmK$La_ZuUM{-Z1Tq2hq7J)aKNC1 z%Uo+aTVI}^CZM|s#xq63Owq$+wgs@1Z(oHzc2QtYsQR~nqP76F_H}_7dqCOXUZ6@e zro%&JQ#&D|R8CILedw3-cxmYgV@L1I&?f@nQ#K4kR}}w06FCJp$sor-q_-0$QcYAJ9-rO>}GeR zVrEQQ8gB3?ZGPnVIz8>e!_H^cS_SJG{k0GDuO@H*^2&Nw{rE~*Rzni~t#8~!)#y)? zSl$jkM`@#A_}jH?Jr4PS#CeY7E8K!zbQLV$5cp0-a`)Q$g);>e%x{9hKK9TcN+sTH z%FujhV-_|w-MvYSi?d|Q&FTy8U(|j)#6&1~2HT1I19mIA8>H?JG zZS_pyN}r!!?E?Z5cHTc+8R=u7iWdwtNw%5cW=UtNKfybfHb3t^#ZFK2F-$c5xq7O2 z$=Mfel-WCaeAjyC{9H6)0*gtR@GYF&F(2lusAuL76qE?~jLwi0XLPv^7D381;pSET zX=pf*6?*Mu{YRx)!pxGa}L5n(a!5-G1iSD_9Y1%5B;;zbXkz%P2X(WwPS89(w}W4y0j zzy1xr59E|kh?QU!5NB~}PfNex?OVD@N9k+r+2G8=QG(%^iDZwS(@1V{dK<-krV`6p zrcUqV)_vTnBx?L?jyR;veQC7&{%)|;2Tz>12#aWS`<>gjL#YFmLgi%PuhjFKZnN9{ z;Cr?d@?u2)9?JU5!a_lv|Cs@M`lTSWw(rc?vw6`Kc$_|$fN{VE8$W)$l8OrEps>?B zKw!_63P|x^e(kWoe>{RZb}zVLl(hK;1*?LFeqEwn-FKoR;|&iqpO#JjOB~y42?^-r z>kQGcwX}pnQF8EaC%rAC)sWM4GEXgkO7lIMx_GTx{$BMtQ85$pk4BXK!YHcUg1?a) z@Ww5(;kZWu&v>|i%OAc@p(Z5{e@Sj76*kAe5U-Q_^eHct!W)AIH`m+*5}exb*JGX- zVzvSlN5Eu|ZrMoTI2H}AhK7a)!2*LZW5$H7yBYD0KLbJd*9Y%J=sY<0FhqjZiUwU> z+6<3|NAI`INq*mz@fD(Xd(*rxfLirnJi6IymfZ*ku5@4kQ;Ft~H^!lB$` zJmc8VwE;(whRWK#)UL6y8?bD~Y8OVQ)!mEQ+tB3o^r({C2N~9+^@~{wkq;hDAb&2y zL6`Rv#n#BOc~Z^p|HcG%gie%Kim71dJ}6a4Ga z-in%IE09_7k>Q*sO`Oxi-3{LM^ynat+yG^rTfb~ZAimPwz_>$U=YPsJOHyj^;Bf<0$>8VY{jHV(NbxbaKCcB61eQdjxIG3+wb|wVDQh zGv$44GcmQZWAgol=g%)2zif<@)M=^B8`kcgAZ!x}l401V*=mzUh;43e?D@k<+p6za zYh^!v3{Tr=1ZVJ5yDje)7A86{qW?5D-ljSI@)rVN)WFYTIk5le495O_```n+m9`kL zmBgZC6Ekdg+f43XyU$z2a#~Mb1B`&Dy8^a~t_~3(1O@=4IM>B;wBlUs5{3@yIOX1t z)3FsVVAqjwjxBqNEX!MG+kz;{g5NLbaT?cMA(ORx)w!D0H#AhFn)Lq>ECeE0oqI1A z$*l-1!()^#rOi!wZAq+TVKsH=l_F<_8H^btxfXI=)uNU|4Qet}71P4ytG9EHD2*>WbP22=l+-U@zryK))BK~O zqXpabx}o=lr%zX2H%|?d#flu?<5ZZR|Au66n0+Mq9!m>YK%)IbMXmQWHR0v0#|Ari zg(o`p?%hk`p%rszW}KD{s@!YGSGq)SPS2+EhlAJMoLuGfF-e)K#2qgQ4X+PHaMaw> zP3K4HpBm%m@$6gm8F6@@Tp(9^5MKrR0Mvn0aB*^+t^avDevTc>sEB1Gf23qsg~=OV z+-Fq09+ftW(^JUg7Y1^DsNDI(jSt?>l>ii^ACOBjoak-uyAOARe_N>hK&}Hhk zNDc|arnJojO>7&wAZ=c<7h`Mi~6XX_A(P)blw zBQrco$3?_shMKW4i4;{%yVC>+KwY;x4F?00a8z+}uEocbzGJ2F$ZsVjYu_cUF8}dE z^TY{sW7T!758is#9^C#P(`A9iPNJch#K8=!T+~t!IQ7i3>p!w5vDV+542Xb^klN1J z=;f028a0(3$$z~CBW}p|>xkV#uq*`JmpXD%2+X{XsU~IQ`~;dXZ_>;`?NbC1qUW`k zL5^rOGm>-OBJhl^<2&OI?8>y`+wShf@5j+X;{oVOz+4*}8&yj1^~Ofq(IIQf_pTtA zgNA|usFYL}=!PUzuO4X8^9>p z3Vhf*VLvmQmRkK9pE`N)ts@Uo@@ASX`z9?q#W}EbiCuH?aIR=m*1ipvmPMTfMUm=5 zH`V>WF>gQYMC}5S49DRxP(G+7WTdI*bw*HfM+Z{qU(e=*O&;xZ{0G2>B!7{b0IC`M zt*F0_czONPmJ|>@O~d?i4JX5Qc2-f`fs9Q^-@(C29F7M`(LA03qyfxVl78U}1dZAW z6+~nitPBK7N4b@;EhYIY_`-*KQ9cDg9ci-i(ob3%Zsn=G?A&yFof=+y)qk(Oxz-zM zE84ej?n%eBD@e%X2}C?~(R_75le9v2j-DAyThyyPh>oBWNGkFXq0PBX#!YaGB; zcY~$&G|A3<-l)@SCvOJhHRE+oo zu@>>C8C^aDi*oRjA9fBfv%b>{8eGqm%)zVuwct?heXQj!vX(6kJEw0xq!4=R^wx$% zW%l^JOCmU%ZZEcd!DCpA6#Jarf5eqT&8o9(dGD0Rj}cZ;S|-}@Mh682MGW}^BsH}K z|7;`XQ`D;c{)1#wqYx@;yF|^zSS@iR!7)P8|I*mFsag-n4^<*?%X=o%LPzNzaZWX> z^@iaHUMP(ExPrz0(Eg;s{>Z_Dr_pC|5-*D4QERV@)}JWB^Q@10dR_qvY4l}HBHI=( z3^D4|5n7onS-pT#UrWn{Q4&0|(kP0VsGOO9z<>Zrx0FwUCkqI|n)`A-`i;u)Pf5N# z9@t9~R(A66Qp(V6$`(h*wwpz^i(^}+CG*A-gGR0QZp&76K`8Y(gCg`01dHa2f-^ek z66OIrj|^$lys+9xh|1_!e}8ko|3ZRTN9nEWT6gm~QimIjBd*bb#4!X3#t6KcqFvx6 z$0WbAMMWloCU)iHYVft3XCdw)mx4PZWjzexN0CT&FUIY0^@?;!YA{KzlxMM%CA&YKMFR2^PdF{F3*3+ z@-p;mzZ=J^KxN06iLL?jtbK=%93eA5fhN0k?xv?lA~c=^`mL+0JA8_q3adg}N2~$z z*U9z|3tiu*_Oiu&70| zaL}R3>6xLGe0X?R)#y~z!-ra8=E*)gjisoln1`>9x)qochitm+pL%*P!zU^lcy~-k z#(UQA^J@NCrL(wqd0|4uV;b!(czHj_W_hsu;%Wf=D?KwKohYuaaoD=K*t5;P~xPuaa2tM2Gx4!E-%{XricwWdjvY3)3}N^b8#tm-Q3wX$OG024(8`l6GB2l zOnc*thtiARkar_P=BASihDg-(M48NZde2R1{N0^o(iZx;0SwKm-3=2#rvaTPsj4oR zb#cpQabmDGLPi5x29r=b1Xq9bN zI6;a2GcJs?Z0+wjvf<6qY*b%Ywk_%o=Wf@0Ng31-g%KQfJ2R90-cC2JoTF0AQ4z$5 zIFv3TK=!m-P~%AsTxVIs7#Mbmr$ZP)jDX5{<@MpN4jz&_Ar(+=hpf4A^TOZb9~9%nj^g>hWDu1d@^0s3ayQ=WJF&;Ogm zmkAktuQB2pd-&XX{Hzl28u$044>+Lcp!T^5C#etPM%#$e2w^+|dEh{Hax3AGx@!CV z3k9$&>QM$9CCX60E%QyJ2Q*lq0S+MWbBqN_5xc}2u!xd z)bmgjz!#1j!*kM_@)KBP{P{S5VvKg^NB%pof%uK^%`E?Z#=vHu%CdrvcUig|-BlduT0e19d zUDPLZ9I1d4D!^VS$g#NZqH^m#1{B&(V2Ky+rOAbpnP$T~Ca}C`PiV1<8mWC+&ST&& zz&pr}8=d*H>B&Yu(V4;h>9pQAOJcrxJ03kMel4c3n_1`CfoUSlej8?4u^>)#+1FUO z&uZvEpC@duNaq@t{=$H;u7Sbz>(`SU*Vq`%U^$;(vk^RyXM4UmrhNmjBXTY`GTI7m zyWMMQ3GUQ+x2`UJ_Jsm#EiGHxD|KPB`bms@ zGVRSrg880G9ZChG`qU<<&C77`m8r=K4HM1;aPw*|TkXzr&-oG+KRVsOrPfDf`EA?MxF1W)dXRkQVPUszyS zSl{hBbX3cXTnGvqIoc!$Z%^tad=&@=00I5}4Mi)h7@h70+bv_)%vocgx(FLnJ_01? zvaHu@#HZ`Y_>H3?c9pb_&b3;50{Reh66+#&*sEpAB?}cvb@6Js*%hQ-Qi-HipPF%< z!D?m%cQJT1cEgtMuCMa^k!htBHwZOI*JSXu#pQ~l-3+p=YbZH6-4~L8= zx@K1nWRSpvZI6A1MIoFFs0P9Z`TP6dF+>G07DZ5c4Qd|R;P(XULjPCEV59Lpi=--eV%5My43 zt?`;9o}@;96{>CnZN1a|{>3y2ZyQ)F=a6ewh#>nLta&WBmhu|ZD;^d&5u0S}=)m49 z$=^Ja`Kl(#h_YZIIA1D*uZnu@gcI-Xd>#C?+1q3B| z3)XF~)K|RXQ1Jf%w**TgeB$iDNeK;!l*gQwjY$DN zS4rq@v+f6nDk8OKg5P?061fLOC0TXc^$R=D=e`!U0t??hEe%Qs0`u=p9dXitjcKKI zGAyf0_Fa4EDhIbHF?)X_98+*#&`Nbzt;%yVIc}`hM!*|EHENs1D41a~@TagvTlm8D zqQb>-qL7eLCcT$pbXKn16cAvPmS*y4T=0^8pf}-6#AG&CHzkzvBb1AePwsBq>GyKi zyN-L8w=E)K1K}Tz9lL-L%pg$<3KAj}wR_>{0Wv+GQh8C|?8>p6Ehfp1peRsEk%AFW z9f=AK`CaKXYP0A8#%hqlupRa-T{Kcx82sHbHttQ)8{Qt5U2gGMQHU?|H;&{=k2?sp zP?Dj7W8wp!172C!P|Wucu;2?(Sgi-9RqPij7IqfDm5ocKxiYeNLe{6T}HiaUh#jmRbt{1 zU}vnEb38B51X~ed_DRFZeRVZh-0Ih|EZiZAJxEU9_ncZ=qM!K}nqw=0xFUg{*7IT_ zk>|Mlgp&m&>)(JBEiw?KtEhj9u{bXaw}R_UqCrOkM?Rf+oKH&Y)S2E_zr!ubt{?2PJmrJ8df z98%lD6>SZE)js)NM(t0xyL%wRq=$*pW@aQor4WfwC;A#EG1RPqNbm1HgxUgYjp7!j zC#>^=sW*Z9!PwlYx+mGs7##y^0!E5i7X@BJI}edp^Q;kF-32@kaiNT2d5F(PIcYZG zVa7Xc;7T9{qC^tJ0DlK!`%!Qi@I*iCls*e;wESU|n~MuPR5-itdDj1b;nUSQjz?*o zjcSuoYn8Itg8AAz42{C*nz$`z>8%BH9Y!W-*$2p zfEPNun_y9GLy$)7$DqqG%R20-N^CA4G$4=`B)5B(`V`xn z-le|lsiI1acp|5fKdbrxO`64GfgcUB7l2&!=_7hMFoNoki`LSmJ-aCVyJ$ll=?Y7E z>m90?EDp%fGKioCe!UAoW?`jM#wub(P)m~&VrQ2sW?G%x+}d!K34=voq3m>|ihrEr z5&c2ilM;_P^eLAZzoA6Nm6w5f(k}cp6%tki6m_p^dgi`m9R#{0CbkZA*AqenAq)o} zuu9>{y$HJZmu7eP;lQT+wE#B^%vX{FCw_96=s#hTSB_IPm)45ibVT5q;O}xYaLLzI zvkG!)XTvxaV@GJ94drhRFDGEYTFX(p2neKz8&DhvhL!2y?%wm>uCKSXT!2754@QZh zF%yL|H|~&xVt17NgxQWLHAsAy5~c|Fx?vs}4ka#f@OKCtL=KkFuv0gorr-5S&kR)# zDlw9S-KhL}LMLE@sme>^6B_fovT1_e^6Nl%V8$6mC2!+T;QI0}pFfk)WklS-^jE0S zE|rm#dkz<85Yj{tOaW;E^-U~P84tK*ix=AI#2Z(o%={8a??Lu~OLX3Da`7+yny9R8 zFSw*J0+^jP6P2Vf8+8O2lHh1NVXNKIg9n@N(jV?_6+m?}K!8^m*8OygimU`zspH|p zVbRgiDV7XOxQ3zz!qFau_Q^b&Tj_H&VuGq%Ze%ON*{x%?>qYHqxl&vWkqsULFz1<9 z`&3x@!HrBi9UUzXrI8_R(ld&HWkh@k9a%*Y`44fU;pWt8RKg_8qlx+jN;@df*pxog z>C&NVA)n)I59(-+WGUY@^P~3u4Ce$KrRUCSa0=rr*A~8(ROCCp9bWCF8$HaTq_pE^Oc+=WgF0EUp=-4O)dcIUN}yv+3TVUI4lY(SuMbc_HZ?t?|@ zBxDZkRSfI(^70}u#@4TO1_2&m(qKu5Iq@#vIsS*3(m>ck>mE`RsVG2;0&D`y+hr;>A6#@Y5Ka2IU? zgoU3IF~&fjBI=`5LNXaNok|yR)J1wQYT?pGuV; z%HcMA`GVdKqMjf!gFoZ)mDSV;dxFwd5L_HK6(s*vdnNR8+AEPXddP=~-S8I49R3GL z@q$U@coQ#twH~+*lK!b&w$R4p*G&Zv=y_OAty z!Ih~xQDYbk_yx*aUv&24^}+UnJpexfgG@vz=c7n;TD;+(nR=WqhqSZgUPqyh?Wk=B z5Z-H&Y!|bVjejTatDs)s?rKmZ0*w%svf99oUCD;Obkv$EV2L!fH-4097>wvGA?0_a zRc3VXU}69@2qZ>kQ4;S5QM97fDdu{!%34ou*1_`6L)}zpn`)am=Hevlm?gViEk7At z!M{VdI99RN4s1n@mjy2~=5r#6tlFiSan=?U3L8WgWH1 zXi(HJeGnGQ1mZ9NA0{q2BKDM7*$2*<3{`<}01>4?Ozlx1jR63>VHx6Hho`+bFu>n&Wk-~K;eY%1V+QT2_Phe#tx>yKaT0qx4OgUO{XGN5B zgx4xn`GT|_0IY!r4M&#>!8J*1!L>)00glK#>nAxm5FQuRaLB%25kT8{ACUn>6+)=7 zTIH^Ww6AGVxi5Hbfh-jQVt{u7s`o(MK-`3U2tj0>fod?Q`xIwPu!i6dnuVAt0CwuL zTewf}QC>CraYELdMm*P>1#4In$9I8*D)v>F-ul`+c*eNvTI1s06kg*jdrGat=3l9HFuy8@6zKtJ7HCHX6_sb#+UD@{!O=b;xofp<(l*sO<4Cv9R8B6dlNbLkipCD8Q{m2#1`9?(+oLJut?=$r3adrYcsp)$dgXsySjSp?VDd zUZHDSNIe=D`E_Odci}Zo${+TEE9SqUj2CJf99KRQqbSPbihkWi#M553jDseqYT7`Z z%Yeg$Tlli_*Y~?vwuYD5BaN@}Xc-F;#4IB^v*sAFO{`e4ao#0NOay%ZCyJcB{BkTF zrd)KiX-=G*v^1cUhrA89uzbXr9kJ5{Qk@$r8=~`oiGaB0(b8<}R z3iBJ=HPJwQ?bk&YJ?@cyqf9eyF;rnx`w# z2^4bmqnJjzwmS|u*wToYMK65g%lUR?hM@$!!ANrfUz^ViGEuh^_QomCnsp2C3wFE{ zS%oM|tf2IexpouUy`zifdMASR?uDNT-&x2^ON|) zUf$jw0N(|PMFgTJP2ZE_eRKOkr2NCnH)rg*osj|eS~7i$^AcWTUELwPnOkt*Z-N0C z1N6PSLDxZC+`;1bs(o4UHhzYkR$O-{Ut(V&s0Mx`T(h?R{%(IKOJn2Dw@8w^xCy_S zxB@p0R}b{f6hk?;j45;@_kaVQM`<(YsL3eaIO4a;UJpSG)$ zR;c@8-+|DSfJ-U_}kD?pd$yVTq_P!58%P$7s(sF|KyzrSrfH53|+|gg!+OYk5+Jm z82GLbN)$3KNDt)PL)!rCg5cz8VsOQCS6QvlY!X!U%|uL3m=u@kd}P$iA;g>L@y zrz>1F06c%M_RLkbf8O}?CC)y6+HL1qK-R!(NL%D{p>l+(`8mcyX0CjKrLx`PSX9(R z#Rb2QXGLj`X6b@ML(bW`%Y|;D0k^?{+~Nu-DzIo)>v6|%a9r@;-Vv)FbpG3~`=+fA zza;zFvsXxYu=_YlST;zlHOKm&o9kUI>}%n^yPy!h4upQdv=DKso6L0y<6QLPWXz-| zbUE*GtB8!#5#ImJ0z1X`_xA_YaKvZ_2o4E<;nef0buaj^QKN*RU^Ypv`oxG*Z~RK5BHPUR8MlB)P^oOIUNBh(lFh-rJ?cjjU`%zo zTDX=C8Vf)C2>S6h?ogUFYo1yRi_1@bqtmD(hZn#fwUW{d$O5ifjE?KxUN7d$y63>_ zg|3Ney?|-)&hhL)e>C^Ur{KymAYYJFn0HhGdIrfKqZx>QboXLuSO0n!H>+W=jZ0@{ zr?+IV*FSU-pNf__0gm*7-R_3$iYP`P(?V4A?^hSIOsi!b34z;gt@@n>&9a|9Jt`uS z1sKI_l#1XnQ?cUz)S|JVIW@Q=72_`+4*y%*NuVukEPK0FKQJtUv_?EjIy!4Kryo1e z<6y~fb9H?TD+osS)OurU!!!Zrim+%Ar4~mFa69MYeF=X{@*19gIfY_@D1kB`i0V+* zzG}m(dROd~pe>Wy55Ry}*g#5&_2q%D-jUq#DYT`QpBBvdl$?8p zcQS9=qAPQ+ZCj3rt~hWb)|xT@1W81mfwk;kgg$JoBtaw5-{)@1~|oXV%s~=|JqqfOdT4f{yn(ax~k_ zLgyQ~xr&evO2Q|%ysGw2M0S(7EkW-AK)_OJ@8on2AL&d<)2`f6uj{VoK%GJD<45!Y z7+f&MtkV!d3-CXDotRE}p=Tyn`pA(Mw`HNx9ct)qL(vP1wf#$$xnNycb$T3v>S^KsT(kt3ntd^ji!xN1Q zpmnw`j=hzgedXrOxdEqW<^5jEocAS6M|dV4W6V-sOzKI*Y)G{+`<-1}O56IrIGB0a zn1x9f6Msz>$O<&yD z)(8Ivd}|22FzoIwlbBd@Tis8Wcf-f()~wU`dD6FV-+Yro*maP1u42b*pI(+^m+<;9 zAJ)@k?PcHg>(XN73He}6NQCaNUJl=xF(+eUsi zG%^D2vZxt+S9gc_^dS2V!hiV={|)ls28MU1Ery*{j4C(om=31rto>&@0Joj@(WJaE zt{m?H5b|7W%%{LXkc_Zx;k!y)5s<4`&{s$>f->6Xud$Y9IfKpd1t7$$pnwBdiDAsQ z9C7fS_#>MBfEN+YIaM&kczeKR`KkKqgp@E&i`s9(W!Jv7&vJTP$4NIdG_d)3SgK@^ zpl!dk^%HeZ162fi_(0Cu8+)BH)*C$tyLnU79C$eftOt&c8@s1q2(>6Wh45j)2+x^( z1HlE~s;<6%ho$8@xw$Vd!TSi85Gf!~(_JAGF@h=hO|Z9p5X%F;X$NXt;z9V+?4K3rq9mjIw3rk9l?akE0mD1<2Z6L2;|M(ggxlQ{zoYC%?r}}@J z7HowCz#^ZEZ4d#bu>*T7X_9hPKH_}Yp;H0=@V1V8pO`N@Xni|Xn@)yw?2(seCGdi- z70jjCuUyQU1TB*!^QxBU7F1WLrZgV-b)n{VH$a~OWYw#mCW&}K>3Zt+v zC3rLP@{$(j=E<3w7iPaih0gcIWSOElLTBDJ$!X&<+MRaORSXRho1U>}KHi`EPl{jW z^2SGtS#Yxi{N`=r=S`RW63K?v_t%0Sot**9$^w+s#Y1~VxU>8i<@>1uaH=oc`tU)H z>}4=5c1$mrBtU>7&Zew=5AMgdiDg2BP~7T(;92F}@K9+rY}oK9qUxNW8#dYW9gM8- zr4d~L3=il|)b_+K54w*|r*|Func8ga7{3Tv?C|o}F!6vpG$a*0iJMnm!}kl!g~JHC z68a>VX~RUNvsvubk4O7e>mgVpMB-ArQm|%lQ-IbK+c_?8xrCFwuO5j8Au3f= z)WJKNv+3!Xw8X^OU`h5{S>4{Zv~JWJ#PrhA(gCu)430gx1l`~aVZ=b};4VlwT#NPpgj2g6B4>1mp(ZYGQnmR1p z(#J2>a9KpN^kDbcgssxH4<^|Ud|@mk6?T~ruo%nd8IW zcV*APao-V`u(w8tRbr*YsYEk4T1!|QsL@D=pu$1?Ed%0Ct}(8`z*_T%A@_QqCy8*SgMp;XiI(dWfcVGbHxY9r z_;6?efIB*q#<-apArEENx>T;*YdIr^;i=hnWXbjM@u!lCMf)Cn8pgW8S=0m1jVEUA z0)FD2133J_C?RH@-_Z4j7aGlsuMej33Vr5p0EvRh&l`7O@CuleQ@=iW_a=_zy#KL@ zbutfo2w~t%$qkz+*myfEYksbr|64O%S|N{CiSK2RKAV1X5qf)`9nZ-S5!}t4{z^o; z=#%+h+n`iERR?;6)IT1*YdHsU(uMG5Ju*b^Nr7ST;lp>@voCP>{Q0h;f|$b4HD_rF z{~B6CB^_$+dEcJe%6RB?B`QPsAmlnzIFJh+RQ~n1nNn3w{~mm9F*n)qP|M1)Lm>cA zx#aK-P495SM zdJkwW`~QDjlMpIJW*Tx!C_=I#G*AlJGkfp1tdbR>k`z(6QDzddHv~`leATB=_a~9+v51hg_h=iiNFH}aE{+PgLUazCp{R?%bvFhxw;331BumLj%dOySSg1$r4wG|+739H7XIbD9@=0&7Ma}xvP zo;?L@t*H4S@E+>@@3O54P)nLw^D$8e>y8nL_ z+Y)sji+Qwx58(?z?*`7{OV~MH6|5A)ERqemw%1~V0mc&ciY#W_j{vbb8^n%ov)IIy zTRBJ^>6!KbCZY4h=>Rm}D>6=c1R7F1lMsf1>%|uXj1tTg21h($V#$N_%7uz6+`lx6 ztP%Scb5j(ALT_?Q!*DlkYH{4KK>XlxXX}%c4`2Su7t)Z2gK4Y9=8zdHR$XZSj>7jyvQkpux>?XRI4rFzVPZm1^HE zY?H!}-pTqI_xD`hOV)U8mzM%DNT2;TR(KX&h}a9-{mmw?IHk&E-V&&o3ehZ>Nh%JFW%N!bi=j*n7_N+fZJM;Po%$D8VmkuykXxIMRrt%IGJ={Nd zhPXmhuLHs$)NjJQ1kDm;V!KIHT-x#K`=6_%J_W0ZQm^Hc4=0HHD}{!e ze*eBC;4t~$1!3i*Y}5b;Ua5V|u(v^ID|jeV)Otem3NRMq1}JC9txMBGJglqt2`fBf z4kT;JdK_cShF2E~6e+1sKwt@03G*)cG^%|_B09vzo^xi}CzX{xLq-bSGreux@wkRy zd4cQ7*^K#S>UpSMz_LWt-{~03(`jAul0wHU3n8t4+guz`^{&O1U2E?I?uqs`<%Xm_ zB@SmxVusdZ$Z!6=nA(a~i{k^yttpn<)m5Lexx8#5^$f!)J#8)24eKTY;;Dn_!p{T~ zwewF}h&ET9H7L~h_5skM{PZEutR6}0gj|$^1Dg?iVm)83U^qwFL!RA{=S^F}lqu1I zF@JTcFXJcpnDKGJMx^0?s%B#BBK(+me?f`Oox6s=J&i0`SQdIF?HN+Js!v;8Gv)}C zE6~y~W_v?AE1$qoOj+37fzJ{@4N#Id^{rV>(#Y;hQkrMI zL}E=b{DZBSCWtG5fDpP8s%_zk(HRVRhj-`be9`G^I%DMOi=)6CXcS?clLfA`yK=d= z+}W2ZJ1wmzrZ+8re$k6m+FRiLd_%@5W)opj_>Fo{nPn5~Q3HbSspB`8o)7?cDVA7M z&=@J8ajV5m!zkV;0xcFUeSJWY)}{PJhJr%E6;cDV4bVveYUf~n2O9XL)$ zpDGzMi?heEKNCOwF|of4K^~M1n-Mg(@qv5Z1rkQ~N#}7|Ky$GC)js1m)QbXMOhyTxt z+hua0s{i$hDf^mdA-5J9Q(s=%w}u~YdQO>5%}=_B18n4os9${}ODgCNOG}&cq(0BE z;X94zLpM^C`M(a$i2N|LV2nN2Mw*s7$C1b+ukVYYx+M;eD{lhkif)@XQMV_`$cWWMC(~sn8ccE-l?G(MjDfrZ+V&LLe){}7L3vfg~VV##iceWTZP#sHY1 zfTnp#Vd#yzXxhial%9yuL`^-fyH#gXiTXd7rpFr%op!>#-0~6PF^XE_oX((w{$jHC zByC4sOI05T7?p_85@Xvrn#g?o{zs!yEK%z5A>q!E+iP|K6pz(-*DX{;p3*lu{;K|I zxoT4SaR=hmj)J7b@=Opf!oueW)=bEs(`@S553G$?IZ+$jo}7e=zM=xtjv4_UX+L(Q z>jj(%nFvAh5K>2oLJ^9($s(d&%+>f2z3;CrUen3u`z1w`_*g1`IBlj5*~}jud4=cw z3CNbhn)ij`A54Sq&YWr(?b=>@^(pa}L3{!=4kL9-Z?6ir6?_}O)FFN$lxhG1f&W2( z2#X=6Zydk$iuvtdryi@j8f13>&Bx0KsZEshx#8y4PB#F{;Q8dwk1ib<)n>02bi^dN z;sY=qGW@dbWqr-vR?_x)(WnCidBvQWKdW)T-g{!__xb#!Xa*2`HLBm|moW6?i=Kf* z>q%-q zoI11al{@tN>CL{5-fI=z0CL}tU5xF|GUgFr{ly`l$7V%N*$C2BXN4Q+>vJP?cuX8C zEB+mU<^d(|(J;W@dUx+d0)9NO7F)i^s_(nvx-nOaF$U!4^Bk=YpK;e;q~P>f^r%w^ z-*eaBExlttzMExJVbfIYgyq{S_FE@y|G2rIlyZ!&O*XyyO36gTlUt5I))ZO@P?Urn z=se^mbVWtQAdCrQ+Cl6d;Nx_4piX$;@Ye^;PPynWt+Y*J=27A%cD|^KcoACArC>kD zAA)-G!AuAbgK?XLKK-Yn$gauR=D#JVy_-D$x7T^ z$1CCR#Mef-ic55Ahmm~%Srh!(aL+?b8YES)_a1f@qy@<_8Ngi$Lj#Bj3>t)1u!qVt zCPmWT1GNt@6IQM6w)y#aA(Z;VyHN!$SRC}X*r5@XmoRa+!0B5E?_7J$3Wzt ziL=)v?oxTi-2a1KqMj0u_~_+(459K4#d`DVb%y&=a0MDB*r%eLo;tl!;*P5uaq4$E?Z`v-jQ=S3el&%u{<>!# zn6-3V2d}Ebk?gJat~|!ep4mRn7mGWd>ry&)p!7DDxa?;(*vzMP;Og0W;g&6DhTKvW2g_@&Ml}IWw_?qByc(+G4gh+i*rLVIIZicQU zFnKc5qB`HW9#`BmnNpD6G&}?N2qzh92FQwtdV+?=9x=j-5YsAS*Ey)_(ZdK;J%oRR zXc>GTN-W+l%J3YCb@p{Qts?{{#La~=%VbQ@3o{?=`gIyrk2Vtd?9blv=n+?_4N z?3OpH+%6&l+{f%_6bh6o55~n~YP{;BdE&0sGU*+l&D7FQVJK?57%(xkFQodm-)2wk zf;*j>kA#%(c_)=IX$lF)HVSWmIz6s?||5G`$w zOslI>bwx?GZ?c@_+kAIVwQp%5qi%z)#XGidd0SAA@@@1YJ9>3hAIMLzzuXPy(<$aZ zA&dJJ!qv{qOyeT6{vSBVs-cB#rM-4xxlE3Y(OP5QKr z#q>PZ?=F?L*FC|Kon52{*R7YnK*E*RyEbpVbM7Fqwqv+_ktC_Yx9`aJd85zFJy&0; z{S(!Ien+ddi4hN$PF{>He@f_?%J6OWPJf2WsY}(Qp0to?9Y-?rI%0lYsa04_eH+o$ z$mdQd?=dYnG7U{gGu0rJf=x3~*i9PQ zH`-%+A&mSG#Cv=9a1_9viiwT%b9uki^6$`+>2E^!!f9Lgv;*t-N ze%E?AxukK{Y{j$cSt{=LWbAdmwCoNA-t@0BI7`X!XIQQ>|JNY~NwmlfC;BQa9ib!o~ z7dI~yNgOpCM|{3LcmLH|2ea^zVyr^PhsA|(^8NoB(&gyVvtF;%K*&Hw@ChspB&!>u z1$*~dBrnLTPA_@?nV)l59lxOOu_!O~r*e4zX(^?OKCvLl)z^i)0{fP(Z&U6-&G_QF zQ{M94CRIHZ3H{55{31c`nbb@z3SI6#cK~K(B@WZ&?Yu^+hT)y<-eM z{LQy-^=wuH5?54uwyAt=el1=asY0)-kvQ-HDr~S03umagGltXJtZ=r1H0qBLYk!{H zBz8qlZqM9q;&M3P<_IrHSsyq7@c{)Su%z+vnja5!+_`F!%v~p%g~K4bfQJTb-9~^4 zq0Yl#jbPWSuO9U{_4Ho>4NQxRw7=EPlq`G`l34pDL`(MvLKp``Uz(07udX8MAj&D~ zW@dQ9#A|1_ZFBx3^Wn2E>U)pLffc!AW5<0VHTR2^tI{6NPnm?s3~)mnSgb7`DCz~7 zh{y`tbpoD&2=%@8e*Cth@_Rm{0SI|3rq_YdkyIMC7`eWA!Ztq@tDXP~Xz}CqGEipQ zdcB$Lp(nu+Db!5?>}ne@@3g@_+`LJggQTP_1eP>ioi^ULA#+CS#3zfC2TeY+awez} zi0*y}!=twf@A?P^$vcb)rU-n%YJo`+j=H&@2_WrrJhMmV7x(`f>t8e%n0D9qxI1Hh z*~!M@zJpkBx_lLBZ0U=zt-Dl7;DFi*r91WNtpBnimFDh59Q&KXXOa)oT7LH)NkE4S zo=?_DM~YsoH?wjpR?Gto6=SoTQD~vpf^&pB(sHhU2N%bk(o1JGLT_4L6VSe$F}j26 zTxf0;_GQdGZa@A7Ut_9a2v7NZz%EGp;NXBuuaE4k)dX?I#Kp!tU2W-U7y0%P^b1fq zu$+-yNBa<|f|UxYbMV<{iMUJxLIkkLpy@V*2%qaTsmSLw^%OD=;2M)R_+;R<1+jxW`V^N^oQ_<revy01)CusNBx+~I7mX?dyX zDxqg=tO-e_J0t4D65qNdyC+@LFAy!43YQlLdb;aat?^T&QDlulw1kNoI!bv}?Z4j8 zE47FpzSoCs1EdN1rCZ1T^ra^@4*Lc^IIhLL$r+aFr5l|8FN`Ts{e9GVEbGtIcOs8r z!mRbH$`w*hu$4F@%CH&_=t7_le2OlQGyb24)G2a&hdADsjyHYx5r|J%0RPLU%a_U}{iR^-()Vj?uQkyrRHr ztuqc^J|x}jxtJ#_W$;3iS2bNUOKY9f{bynnP;u~lCG~(Ff3)Oe!>H_`!E%3+-*_)S z>wHhy6wRRPjzRgcjS1!1Db`M_+`ZHR7%GNl7R@+gK#3hgN+$^0E4)#2k{onFeb=yV z>e#8V>;r=Zws!tzDX5Fj2tx7n^la^JlQTJdfj=6g+8wY?prBAHErdT3Eyr#AiR3VV zk=|p+&KL0J=5}W2?IO}J!3z^cQ#-qdNJN-<)%LTEWeYUpDnVPy`ls6xaZI!Y*Im8A>HR+cse+9i&N=UMHItlO?RxGVeXQ|@0yXSob+m>-pwGN=%A zVU&lQ<*PyF>MCI-&-}=;X1qcjW{rFA!K#~a#xo4;dMK#RwvA|=HM?-}}|WeM_y7>)1{eo6f6ICvf3dEN1CWePr3V{8$RxLb7Sy-o zb-e%SWWyba7uJ)-|FaC^GqK#;XHa{j?}>4xH*vkRM^<9LlJi<-aUp9JYjHveUv#L( z5n@|n+oW*-A1fTsfGF2(mzkYG-2M#qz!97=a-)N@Pmk|p?`u>dNC!D#(~gS~oR7 zQw#YOE=ak5{xB%LPSHbUDEfz_GZ^}`D@2s{L^s^6p8zi^=wuTdt?w01U$($zVp9KW zV&ot*t?{7?JFB(6HQ;U(!2_|w2tFwlz=gbI#d4OkT zX$3oxCoQcowGMhlrQz$&prig`hk=`Jn<^?Z*9UWw81R7_`6hT8#aAE^?VjL<(u+C( z!dJ_=1gz3J2vmeY1g(9X2!4cIvu7mf>Z`B)O~u}mR(XGA?z>2Dv-7y#gTg_Zbhz!e@=E?R|~K=aR1K zrRsMy3$v$QsuxsdSu>CL*K4aZC-!h)ru?y~x>+yAwxc>C`k#_&{d~;h(}0+fI$->S z;H}cm#zC_15<>t((0k#jfa%YP`fPhQz6rx^zi}wtiXqv;rA^*#DJZR0E_%bz`+)*m z(nU)kEL&h4+^B2=6d}}Mm!9t(ZGwJa1r-^FaZHq0=_k@=%nH)c1ketl=_2Mz{I2U^ zh5#+_9{`5C`p-Z9B*hG8W2l)nSaXy{5W|RE=@uFQ8;I3rlGoUl;VNUT-KFdz-32eu z`T_}tx5|3$RPM2ZxVr}6=V8tRlXC}+ux?Z*O#eDKUTyx_!c;50vo%07@yFmw+>QQ25HQ2C`$dp!r|du3Kv`GwyEa@Y7MI(|5NVv~t4 zk3fy;x_NMtN1w5_A92570kSNd+#pC=EEwTgF4eau=C7J9O07iD8B!EHTdEN=0^2?k zKLU*~0niHjE!l`Hg>UglXLruSzRwR&n)2v$a z!)j}lengN1&w0<1uuq@du)6&kw}3C6!X&AF|M(OVD8sG@Hvb7zo|;jXYdwWYH}59< z{A8WK;&LM4LBuB1NSMt=!=6J%^tyXQoGm01tCx z=xJ@8$<0)iad`q{ky|(8Lxb@6 z0+PAp58>;5)71*w3iJa|1>p{-$5139YXv(W4jI}SFedt~4 z(^JgH=6*t@Pf@Y>h=qL;@Dm-KN4NUi|Hzr_QBoq%ESF-My@8glxxP2Ht;M7~Xkt1) z@h?x*$6v)A$B`)7R3!OkDjjTW%MJZ(CUtd)fXec8LE7gLmt1<#HgkBV5R4>R#;j<%yNeQBvz%FZ-{tj45eIlf z+-H|HsPf!>mRA_%bJkI7=-%bT*c8;;QYe3GTpGb5wjN2sp4xh0L(Kt)RdHJ)gY37a zuCF+GKw(geiBnTk<1cv(*Xx)VSpO}Jeas>>z)q6nIQW2}K8RAx)#+Z&1Eaw0OZ$IK zCF6OBvDHk?4>}eD5>U*NT&eDp5v1LtXa9Cl^pB^|5NGG5b=#Mc$R#K9AY(!{IG6X4 zdOfe0-1{=k>UxzRo??Y1`+Qjcx3|mh?aM7b=u^lVb7XVa` zDH~SLTzaTpDUetUH@0=3SeVR#3XG@o>Rzz*z%BVZ>v^Bmb%IsHmIFFPJOHI1o)f}K zk47bPp!rXl^ZzOBV6_4f3!yv@VL>Qy_5U?8IZ*TdM7-~uMAI|r#_xvG6SgNn&EiIYpurEBU3NBB z&436RyIxOIU9thvpphQ=Vd!hGo!WcWK%=JOytG9^>O}6t8lS)~^2151tDS}`CQFm=q?D9Op>96s%%T^PM|Tx;ds}3i zs0V7dktyTWGRPccQi*9-n@)XvqZ!mHCKxugGXoobBxYuY;a3#`VJgfb*){VN$I!~2 z0WKXPrVx8OF0a7Hfv{Xc+Ile=KfoMw#8OjO81)I!mh(?q2CE5Z-5ffes?KY)f97{1 znV$5e$4+VboLY5xt!EnR_M+Z}lgfiD(j(m^`Y^r1)z)bCO3iwXhZoz~M$N*2!kO{i z+disf@24|yDyW`V=9UC8t4h=oUW?#E=!Ec>L0P-%0I<)}-rn5Aq&h1e|H=#zOfb2F z7@DX@M@OI(1bPTh173*0nxZUe2JwGF{L-*q?m}BZd{o8o%&AgwAN%6JsG|55U^zoZ z_volGOv=bkgN}czkSvvFFEWWzq02!~H_XWxNkJS1VRgljhL3Q_snC03WImpWm8ON5 z%b~xmQwa3vFEl4jK6QR3;rJ{*o?o`|0DniM&aUz)?`^cmyR>*S*tueTJN!eeo)rtD^ z*i+~uJ7|mnTh(w*)`0-P7M1i84X+}TTwLF-<2QQ6LIcmYb909s=%xP2Iy1O=-%sTSI|A_b7UPSts9$_y0RaVd887ve#a@NDzx3F_=q4x9M5U0 zU)J!vgrTU3J-pT!>#?N{e#j6ALQv&Qp5I}V#}ak_!Gi~K-nfn203JCr_noI-9?xCZ zvo^!0I6dvq@b(t6+mTd`R8Smw$d%EijxBluCk4xwJtVD!wis0Qk6iH4xIFSpO+L7% z5FYRiRsiTkH+1^kFkAu!$zgA2dOf9U6F{D@wPiaa^1hZP)njB!lM@tIFjGu>NQ%YL z#iyws-y`TIDmm`PDCm|x#QCA&DR-N8l$yBm$wK8qB%klZoCScPjr@5(p_C;}fqLZc zD1BMo^~9p_K{Q!VmQ88SpPIa|(I)-Xccxj!^bCCN|C&h(sfUs)iV#NBXX)}orUegq z0jD+MGKfU*p;_Q&$yY5681g!L-Da_Z!fd^VYHJJ!C<_>|!Bi64cJfs$lpBea`1h^t z?Q`eUFZe)~JP_Nr%uP5!LA}_{^;5O{&QMm=I7*1_p==_qyWO~;fKW<m_80EUQd=OE`n5eKE5Xv$MY(T+ z-_Yr6>>gS~US~c0)@$S}bfNI-rb+cNtz0`o$3*T0cfcr*gw;*sOG>7$S0cwUv9p>z zl+h10mg0b~;f%Is&PLkAkH-!a+W5K+HNRadTO;&xn{L%BS zJ3AX<=$Ru3QVBCnkKOe?o1(19h99VL+|dn?l;UeZAQ8SJDD^I@wGo&71<0PQB60O@ zvexjz1`oOim5@l9>nV08AWbmCi2vxLpOl>M;jGhv&!3SRTW`anbE?N`Cry~htRB9V z-ky&OsrL(u7b^vuh2w7OLDzh$?!^=Cpw+A=(E10sa5t!kD`&Pd3jh+ISR`NmTnLqf zzs2_Sv3s>$&n&`%p{YhrinlLeat*D;kB44aP*4zJn4v1uK9xC~yL!fO4F*k56OeC& z4caR2=J#OYri05zH+n|1YmZ$EZ5Ta$dypRhL1C6CVo21?%+AIw7q{vT$}1{T3Y0Aj z9P&7BE#d?Vb;BZAWB5K`ErO&8sy^PD1tl1fCq{kU+Q$oQ*v2?|l=l&#y8SvX$1rgI z^&}b2W>!{K%;wI6b?dp~kmG`1K=p9HaI;vjOx0uJAR}#aYftUSo+Mof-@t1}6-Thc zeV^}l5c5du`qEb~%raH1(eYBVZ*0DOSk-!2xl|vfN=N|8PFO=74^;woQN)!(oerf$Zl5e3W5l{h(ed091a`>3 z$~)8X!wK56@%-60OBz&UG0iqI3^y~2fQOA;T>d;LOUZlZcqQN^k{+;30UZAqA$&(< z?b3G=HfS6p7jb3W!Ur7~T@ZQ^TGd6KLp9gTrZN^VnW5r9Wo72%^f@b}>Bh;q;BZ{% zO@|Oz-q%+I&l}i_nyW;R$A!#Kdt2Q@fAKrJR<><4HOh!3OvYzET|ZkjTQY<MfkrTO^(@?I%7f!iwq0vr}vBXvyqjF8N`~?ER*BNW2I48aNFCo~IfocKS0{zQRuYoo6 zK*o%`uYqX7l@~|E1BGMnc0S?Eww(LP-zwPRvSsFeY5)Q25X|Zcms3e0FeuU~j?qB(E-|m#(n`!foZfpEEf^;koA>h-%(ZWmv7=de1x3FG&#LG#}P!Z8k0- z?*Ka2MV)xTxPxgu#~q41;-imvmNkZD4@>6U`}Be18pSu$C;C=Gxtle&=EzQ>?_-#2 z@V^WgM65IJ1}K(GEPp4I@=t!}|r5UF1N{P(=3B zlITPqh$_F-u=-c%^vS1uc{g{q!W|A1?i>~G=`}Dpq|aLH9C8Ww^?pExf+;UGGZQq| zWh50r#C-@Tf3$bzTR*pB$cO9e#NM-Y7w3CpCE-v`e!Lz$Hc%=XCLBc!D_skO#w-Roz8E(ng@Ui6)(Sr!5BjUcm9APq9S~fc_ zqZ8Wf$#jbzM#t%!-hckMIAREsTK-5$8VLx6+l8Um_L@M#lu!G?qJ$~_*Q`N(SsY-Y z)7t7bd*`UZh|U(S;99a*<~`AEYa;9ZW;nwENksHqzaFi(34=C#V{@h9ZC1V1ZIHAB zJI5|wsOxrudOX{!T>6EtC|wMV{YsIjOTp%OOrDfeZB}i)Jo=d$AhTdq0d|Uyg}_^K zb7z{HG9ky44=M5|>25qZ#5F^uyl$%)-=<+5?sa%KDC`TkzAnKPR@g0Q07q+f4i?C4>=AYV$OQJ@e-a zzlCa_=i@WJgi10&m$x$kTNFg(udt8_H}>AY7F>;+nnuv#HumK`5%q8gfNWmsg0mDL z@|-5em~(S);TTR;VR_<8Y1f(U@BemrmaFqeVr>IOX3A;HFM|^O#>vj{YNW!+86AH@{7xtPjS?Q=Hmk2W zCd929U?@>}V>n!Xy(0yZ<~aP`bd!^eNuh;>Gi3JJXV9IviEPtb56G z#u999jv(3qi`&W&B%U4!`jLvtzg?3|C!?>x$jb>^$mk@kZX(N#l#~uEx zN<#;OQzfQTl8r0YI_=&JhJ9PK*!?rEtiJF}EWN#QcFrg3ZQa?&4W^L1VMaj$ERZdT z!eJc-uYz9#PYkW~ULdqP&xMme&PpaGw>v9A5mD2vCO({UbsK zo+9NRvkX!b6L~O#d;S~PwhMrUr0~5y&oYNsyc1**0)HKUbs{kE?~Wk3muXu|?UNtW z#xkeOj`infh$;)xMtYUOl*$qttMllisZ#4V(L>jL6l5hzGv+z~+(FjZH|5KheGH0a zHS9>Z2Mhy0_yVYhCBQroAij_`_MbDGC-hq16v=2?>$RJ-zh|mgo$}mrbF4|L$@$7W zC08!~q{zxl=$zg1(5Z*0rmSuT8;=rKL{QgJE` zL4a)^n5&=1h^OIMS&GGN!VSG02mbKB(7YPm-lgICDX?^z8mj71@Z7@t#zvQvX4M*@ zPUZM+E|3g=1hGjXx(Ap6U^R+4Gqz*FeP^OwrnVm*duG1USvpLUnzZYeVih7S1uJC? zMeo_K2L78=StBv@ku>J9^V-qqrrffe3nvTZ^0af)2j}goP~^R#X8&N8i)o8dz8^;0 zh>5&7+($zmcz|qEqD0Ohp&5KPEZkeC6Pupt$%esqyU5t}?-e^c+Pxq4 zP1U2V_8iLW{L_9@D^tS+36Nu8$+PO2f64;b@OPomtwL2g~Mru6$kHtv_85O-Zk>-LqPxqa}ZGbVzV#2SCLCkZe8*8}d zvEKyaS`Qe9eD1+4E%_}$7N@HV15g*H@C-*vIa2ClZ=C#x&^Dd#)@j6fnrLsFcNULB zDFq}CUv944q!}f9dk(lGP~(!)uwFF-&?Z(nh2W$2+hW@O_W9sZvC%oh{R)}|qX9lv z$PAFP?k1C4Aituo!Hk^yaX}_TI~e^Ee`@piN7Siy(R`??4>M0UC_FDP)Lt`>c@lWn z=oc>Xc06DFE>nKZsZdrt4i^KcrmLUWlv-`HMw@I}%5b?1M;a{!K52TJw@}Eya&a-Q zh{UV)JTk+LJarv~3H}zi8=8i5r&8zi%`?+H3l(=8OBb^49Uy~TmN;?axSWJ?#zkI> zt*SVnoFYIZpbUihNhH>GE`c~g#*NqVMYwvJ(z0Ija$#V-^fo=nb7t_`D@Ld+F#EQS z9A=|~Mo^h=pY>h9v{1OpGQo}s`W-I-n#>Kx1;jflCsKnq^1*&(kgQviaS;q84pdt) zu;J9^Xdb@KgPV3f4tzd&XQi~pDk@~K-UJ`@YqNY0#=_uETA1 zz9|A3>Bq0R;#}h!!0^7oa=`bZ01(c#v!2(V^c&iTVpfEEz7ZWJ+{bq-|ny^-`C2c4n=Ivgpf> zQ=>(JmL+RTKNX5^hN+1+j&_NUpe2_Uoua?)BPABtB<4&9 zP#}^g?kThxXKI{rNI5AiD}XgXf}`M0w#L&P7VF|48<9)=(Zoad@j})pabH3>3a?m( z+YjueW8!!~7+oQ`A|iefn+$OUggKz35dzzH=1kj&3$A9w+z(v%46gp^!6bo!H^46z z0ygnDqknR$KL4gpy&SfSdRy|5F`d`F)!h=vAF(#l`u4hDJum%r_jG^82;8NEzc=?X`6Vf%n zSD+#Z894SjAQTu???Y~}Z4hGLG5t?gsze|#60Z*K0%?yAG|B+9RYA9Mp<1G5*6XsT zH%wjcKzya>$%;#Cp3&%pC%&NgI60bR$86ymc2n=nqfb}cUq%rq1VRE8)6sWoBnykpxArSbvPRa%hZ{IN>o8_hSqLwvc5G$HhrsJ5z(BEw8CM34CPp)xc{w78fOp72 zFEvJVtVR;@tI0m6z`c=!VSl)GcxT@Hur@#9gX$jP&nJU z@}H$K3wKdM(%AN?`Ny5YXIouDYIoz?aX)<9Y|WR`f#M zIgh5lGwn7WZ4)V1GZAi~rKM+X^iSohJ%`RE8DZr*{_dS(&T0aWA@7qEqlo?Ay|bHQ z)vQmsUHzwBR0Qb?%z<=<_W7@i*x3G+L|*|F?#n_P(G?yBB<-9#2tl<4Mzzt)smcQ6)D%(v97#NoLcrHGI{Id~zCc#~CHTj5 z;wA@-A^2~eM;8|rq2ogl;dpNS($`cq-UlCUKx~PzMF?qZP_kk8gCGKnU>kDj4sdYT ztbbD5?;z+gop*J0Cgy)JmDPh}=)8EMz|PyAkbZukuvG4{`%#rtwGYxS$?<2{RTzW( zEJb*`>60`*iO=J@$k#>rXZf#J2(wDVzsmZML;S?ToNo#y(yHq)Nm{#%hth$#86Ow zXMCkFVl!RpmellJ@2e+gYlS_^b4u{s{+#S&>ppYl(M7BnHNc96hUmKtH#N6)e)`$& zmfOd!gVuq00vF9>5zb4@8M*YAf*%{l^ zEL^LNrYMV3Q)_fxwvQ z)#$+Wh}u8@ygC5_UnMo^$fvN(nglTiF-As4=ojG2k*oLOyj|kTssBpt!|?AR=WSNA zbt$yiy1*e0*Y{2Rpw}ImZ4ixF$(JyMG6TF2bQnN=PcCT(Z-LsCu-W99afUElmbAY1 zZ;Ity-DK$@UnF`H4Sk)_>1kH z%ntX}gyUinh;I@~S$SWd)9q`ZV}aSdQoB`m`tK9#8p!{r%??B9u^|dc0{dS zmyi(w)Ib#YqjQ;j`_c~j*yH)sP$Ca9NhRrXPoaJPLZ)VAS=+wCtN&cfY`ZY|FP@B< ziE}8V9%|~6f?Ivkw5D<_6Jxi}76qn^JekV1FHNz=!2kIvD!|<}X;0sMhc4Wl*x}>b z-PkyPYVQ5}WZq-egP${sUw^nHQuI!@mnNUT*^lGr*_d5|F_af>ZIz_*+CLxwhpF;%&{3y;^yqHqZ*MFmRgGtN!U-B(*T`!W?qx;vtqEgP zZ!{?>DWMU>vJu+*X#ZITnU14_XJ7t)e81Ls(0?EaNi{>mW|0BTbBUsn46^T!$lsRm zIR0z(B$xS}Jh?du`;=s%;;)9Hme(~jnnzp=wb~O!AuEojp&1&a31{916ot4(7`N`) z`^Tr=j}7oBo04Oc$L4_Svn~5&-y@~}aaqS$LW{)<z|q0smRasyx8ksV z2dWO&#e1KRZX;LRs61?axv9t$q`~3ccbU>cp4anc@2svMN%)y|!Uw*jNSdCeh-DpX ztR+$JWk;(7zh~Me@pz47?^ijKBphq|WlZ^=@}9HIpZ<%8Hud;8N9X@xK0hqvVx_|ud*HZaWtoU#~HYHz) zUs0+%^Lm#ozgSTQ7Zc;Q-$PN)l019;buW@bckZjnsK7DK)w(u==;zqQ#z_IW5HXk`gzQ{V7%^QGs<2VM*h zI+=)C=ye2`YJr-x$kYDX-Ce!1G@nykOx$;CXm3v+rxH|`+{t{OD^45W;w9Bh8Fu?D@i84gt6$UvzvuM zr1{;Z2XLoQkfI(V7+ifX*ahSzG@3cL#9pG}YO2}HuTd$;Ny-UOEXqQ~#H=Bu;Y#Az zdbXl_GI!sSjnA@2cY7$mPg0nA)oanYzjxPgbDh+Hsnp>^(UhKgr1+o~3xAFD00>x; zk`9eeP7a_d;^E05@+iHn%0l>N)@VJ+^QOEi*eNt%M62R|X{&FgSYBcL5yj;HUqL3W zIuAEVYMtosU*!sq7<=dFP5D%bWp`M1l(+wMEx;(a-yzsbioS3D1REVw=>>mXZSV*M z3#BLAdKHJ4{dK+mTvOubr5^g=oHVmn_ERc8gI3{w503KphI@Y}@>I=x13boLcK+eH zi9#warp@X1rC;q7*0HJ4mU`Z?Z+bk1o&s;(Tt1f}yrhKm{*(T(j2~}pyOE!PgM0C( zAgu>a%9wbzni<#6WhL`B&jzwt`{s?hMHG^DiO12+&CL-v^FOsoA5{t1t2(B9ZDgXT@7S+U;`p>P++<1sYD`7S!@|k#>#g@BNjD?wh!V_0!vA zp#jF&pYu!EgFk#w=HX!wGYe&xdq$|V?zdQMZFsYAilUe<*x(E_09>Ims7Hy(#n*Ff zB7*L}T43|&aP_F=EVlgbCm-rPWLoL7JGhu+mjiduRA}Bm9C8r(xVYBq`1dB015K~D zf$Jm4=go`JjP%#;9QfY9M3Sg86s)ko-I5Y@4q`P9V&{;TL6Qg@_PB4lA6aoYqCm8; zG!`swmuad$!XUrPt1oC!4BzH27jcLJ#UvzZ`un+X)`FJirv?`mo|L<>)q9xf+%yyk zHqWi<+|1SRpY2+3WZGXY@G4Xkz z^O35ZyAZO*o;I(HB>WC?OSQyaeAJ3d8nUx zNM*GD=uA`1aHkRp8oTfhc1%BM*?oo*97!ExLm=AwaG438Sk;K4b;5iwFn!8N2Co9z>BQZJ&{L45Qosa(i~ zcqAevE#7h7G7;2fJr##@t-h-EpaN8gO;W=K%7 zf5$jN4_w&2w)*g}GRKr5Km-#uPEn(txA%p2-#={Ga=GF3F6FB(A_oIj$~-<$FA7rQ zWNSByh{y5U)b|gb_NpXf^NBwcT4PyEIxuYcHCu$ zhW4u~_P)^1B7W)AT)t3&im*hgm=px|2;AHQV}S0};hD)JT2GQoL|@;FxO@KzPe}8G zn~~N&gO!G~A)KbYzXOd7U0wHPYS84{3f#=y!8PuH*DG}%Z)+9yIO3JsdN!#=rnu+lChOuJoJIdZv1#w;*OOTSZ$qGj ze{f3~_(Wp_aUpIBM>8bxicH~+pK=RunWOZfgWkEbh4_g3tAoDw^wd^XZt9v4$qw}G zJODX58Uxyc6!q=ARP*}O4v%}r-Mj5|(243y_T=5%5~NuF%Wdhs*=OPS+p*(!s3HYd zTWA-fZL~N81(j)L74}T1Fom1QF;o~FvU$eHH8k?|D|CN;^L@U)c!pJ9jTbR1UwyT; zX{LE}{`caP6jKAv>Fe<`JJ z3JvOA){>_DKgFAnwv24U5K4NEil-VAIHewLpB+QCUFMrM#y5OuU(IV7eyYtJ3lFsT zwwiKD(0pH7k-{%Y|NTrHT}&f)c5p;f2)!Q#YNjA93Q2GLDpIka(67YZ;5dJH%SeCN zcH>fD+**y|e&JYUEO2b>>_+IS^qf*Pcx1kkVG4&XF4RYQdc!x1IkyG%QUkw-8U?N6(-TsWB(; zH)Gpbs)qa)D|dVi{Y4y!f_@p2R@X0wa#48{p;xV}cw>S1{&V|t=MxkZw0JFC_h z8`}FU+DvO--QWrAmN+dkLokWBhJ&$PaXspYG_BL_&ykT+Wz_%Yyc^ zcA9)m9`1&d*;`F-FMAwrIB9P*u_R^FU1uR2qb1?`v_|J{?h1+oUShV7dD}GZro**m zD0QX!^mi%^waH@#sWz{kQNb4)c>z5h57HPBV+hk&^Wr;? zKP0Jz3PlF9d3=ZL8nf2(uh#<6y_Alc4$jta{s}(gX6hD6}5GP>I;l;u7!0tPm{g*0!*` zbTs6kSXQV{d4zs8eZA|gk;G#n#`3Cuv)69m&^VkzpGOcV{h zf9X)j!MEDSU5fR-=A-z2_u$xmr!rAAjA%Owx0fI4B#u2D_NutNnA#yxOwN-$-2c1h z^-%%-kb{4gyq~0;cE00Lc2U1o7-1!lme2-O%iD`^`IiW4B(pq^^3va;fkxEu1JER5 zNf2}M-1(E)e*Nuy!RE)8jyDWs{?f_Zhb44weja&u9)f)nZkSTh6td0e{3s~Q{1)&E zab|Jj=uX755cig2Q$*61AMTUCLrM!aptCtkNi$H~!;jxBJR*Ypy>iR9Qcos&4hb1( z!-{+2HSTr`Fjj4exL%W<_ObhO?k6_BKW6OWpQ^_~w^bBn$+f<gect-t z=7PoVwyR?$lN0;occHIrOb9mGK0(y}XC zUrI_!0bOfjX0q*eU<+E43jN8e3_7N~u(Ys{NFyA?U36c+eZz%T5O(w%{j-hC)V=)Q z<@U#AJ$6t&_M=_B^Iem|+j1n4f^U|7@@>~VC9$+@ewWkWhStweA8532{Lf09nSA}c zZ)WaqNW|%Erc4;rLA6o`oxV^VplV zv03yA-Hv4W6U1W<*}OC;A?M?zhBr8ks7Ul_ z=Ty%z%0tqRQ4_->ifsPG`ssZZ9B_mzIyX-~{mF*Bi^fii>c5|nx%&ra?8mKZ%R4NA z3!-8}NnawHga^|xR_XXG*@{(?vnrSOHTt`Lb`V-TRvV%)YowDO|G{1g&rk}xr03+< z8GzTAb#b2pHV(k(vb(t-$I*xoU-=L7$ zThm*)OM8MYzd+;#@5e+@_XIWdxSta?m5LM%`GO+#4w6%aOiJ>*82q`EobPEAhxzzY zG|iaTu|4akWxcWZdQ95M=U%-Dz_s3@UPm@G;T8!G*-y8IJ+Osh?FI0QYNnuwv0sZv z{95@7{@T3dRJe|I`&Ap%W%=Vt$)gvz6uh#8C^$A3XEh8ztnYqSe@8@J-Q#s#@8JvL zv-z!l2V~UMQFWjVc=7*Ox)NwAw>FH3s8BeH3?RI;1bQqKf@+I{Fq533OedCJ_CbX=CQToi#A_PeE1C1 zqv+atum^~1n{!^h3I>?xsKiyJAU$Ea!LcL&C*|7J7mC_3bP=OIPRksO`WIiRHpg|i zS(HW7J#$;yp1QsH)L$hPt7FMa6Yw}1Q}EC1sQg*H4u^zMvgmh9(IZFp3b$-Vt9Fy> z>wq~qg@ZONNgJ4$U0cPIHTW*ik+p1@#Y$GIi(N2EcJ1nI_n$Xdg*skkZ-|nzf0ri% zghktV^**8lRZ1k{-LZs(Yc*&}awZ!D3qN-{-aUStoZ>puE z%f;lrPtJRHiFC(rSrt6+KwXpRkfFbdlYu;kzchJnk9hqK4iB3{UE=rACC zxHCF=9tkm%?qv;KSTi|JLYS)N=jXBB>Eh$sYifEj%Y8cg zztk5x*{TSqpo<}HiX!Zj0HDy^e7|g~AXuTOhc1Z5=$c>BJwER7_KMMCb7?-9#cpB) zb>qTcxFd+`e~I~};k@UM@gJAVeR6XfIb${c{jtRl?dSUS>qkestKz3KjUvueVQE<% zq1l$nmOgj*$Ia*Y-UI0}_FUKHzHQ}pANtpAONdQ{V#7dgZS^}F{%O&n?$Ybd;;}kb z_ibqoTu(UiWX5U)hP0X)-mfD=#XOc==+fcVrUJ#^)m8_IlSd5SdQH6zW$_#@ZY$KY zS=c8KB3}Gmj`(OF&RzNOk^gm81XL40^|qZGc-8KNCI$H9>#XBXgx2h1e)xRDHFvx) zrnsd?(p_UaJi4js$vL7T--X!^T}9&U{nIrOJrZH|%S%*w&AO8VlU_e3y@*Gtd4rr| z_XSySEJ$?51ut?9Id7RHbfEhJg0-*@ODvLZt+;v2q@F6X@#`1*Qw_Vnq15K?$KC*l=qlt3_L(%3nYg187$ArrT}gz|&I)n$^_fv=K1}=u_qTuMaBl(c{I)|_zeVje9^^ik zZj+`yJPm?~d>N((9<%=z010GP&pb_V@I$0;keoy4R{{ z5pwm|)h(BH@?S_`(NyuPO=@w-GdApm7dIn6`8a)3K>P>dtUUhfD!P^`jQ z;ZUaKk?hV;RA2GgM1icb$(m**x0V*b$%WmbylYwZ4gTuY=1LK&05^M zWY2pYbsFiJ>>`8gu5CDDdrm#Jw1bH~lrpqMxcj!y{-e)gPxRLF*R6^zbO=w;I7K;{ z$9gDMXsXbz%3XNo9Yc01EQLc;FhyOkYvy%`ub;md#|+Ch3dP>?47FrE&~L-PQCK}g z6xI?;i}W5AQ*`(}qodIRMjOWyUYW}J8U(8z+Hfr}!e`)M9YU`b_PM+pSuCksm0ac* z`E?>iTGzf>owJ9YIk4u zVTyg!K0MAdzqB}yngHw!|JQ`)552BbiOhS4ZCbuDr6y9AudSXj>6hI?&+JcZkVJ2d zk=?6Q1fvmVU77kG%EVCL_`>wQ0nhUh+dxC(-qyhBjvL%o^WR#oz&>Kh>nymMTe#Il zRsDTeO6ZIF@B`CC(?8Hg8$r$_Ae@+h=OST>mPZq?Fj1>DFxB_1x%8u0}eJ+qH+ zHaTF8~C(CB=iMN z&z7mT9f`YL!97~CecXnJSiE0;TPuoeTe~eRMIryut>~6#mf5y;c6LpPnn|%p zGs~oAd3F40;zt87-Jv(<=T+|>(~Ob8q4mz1slCuX@Km7zJzytSnf@;$1$9g7c&!$O zjM}dX2H7|+7(*yJu8XfergsyS8YSDxYG}H1Atf@^hBmM;7$}>7DAqsrjyx9V_cSD~vU1&-yEiiU-EcqBm@sixIrY?_s z>RtW&^*IU|?ZYR{ysrI~8y(l+Wl!H*sX%pV$6<&r62-!z<%f+DS2A5(k?T>w5&o}3 zPHMMy>$yDt@=B(jYzq zvit_hAkAkdyKBQz*%*xB9|vebgT*C#m=Y&1uYgpmgP60=gE@KbP+91NP6`a3@TvMd z54Jt&(U>v7KwPv_QWGoVPCim{N^@Zst0q%@-ihp%?qWHNvT92+wy0qu1u$nPuPQtd zNV%U|gE911?o}4Y@>+HEjs}0vlm6wOG=B{8`03^83t;TQ0SOQVu!qOYs5tJCM&kTG z0G$V1XJ`tSbe2n$b?ICVJrNgLy*;WF&TGv?s0l4;=QN38GH-D!tFu$wOdtIzh#bmA zp@Rft_VL>9jh)kD$xF^ldzb2$7t|Bm_vLbWI(!z#n^no;s)gH&_L1I}dr3w3ag*a? z3}^0=<*BH({onFri5J#NhnXLFR1u-PVznu~`oT-z-U+0!2WH|Tei1y1J|wq@)lmx)P=$mH8T zA1vOJ|Dr8$)7M{WA`7{}%Fud;){K3fg5#p-edGCjwA(-ls=A|TO^C~WhZHX)Lg~Ib zFi)PE`Oo3XxppOpD}WcIHpe@N(*$ z9HB=XG~Q0Wp_hMb1~e{;L(q(GIgNA!fN~`l+4x1HmdDpfH8oPw;w`yL$LIQaoz1e- zez|r>h91rj{$9H3zYL2blCg(P^)*c^eHfyPQpiPZ*xkw9 zRlHufR$FkjhtXD1ZU6q+3)fXuvc4z?-{xUe>l|_9<-r`4>O>X+YYDZntkTO+cI)&G5$x$fHgxTV7$eRw9%7mQ*smNZRfPT~viE zy$ePTb>|vvr#`>}L@R{h2~(*hKP~XAPRxw=INB@3xoR7}a9Z5S!^)iS{4wJ9zzkpy z6Fi-8_;qRPyZ#u4Fp<{Qt}KJ{&eXf@RNY)2a|%VIF8||Wu!8$tGzOe3S=Pt%V-G1Q_r$54jRmh7Rd7pvYeW9Dsh(A!Xp%y(OTisaMLL+jLG zd{0(vNs{HrahlKVQdF}PTYAspWi;EE*4^f!Ao?v|d5WA(z zmdV-fU1-iZkrZ5&)c>S?u>0L_we?YHt;SZ`pB2PpO|C4Aji}cyPx&pDtBiGGhRrfK zy!mGWr)C&WNbD3N*7n>Cc^z{3)Icm@JV(tA6zh%np#Q5{v(5oWazqE~HBQq^0rWM% z#c>yBhu0v^4nRzY--$!ys#O=0qOr91@!;?KQlCQDMH)iwnaPQ~+~l+{DQby|(e^ia zdApnQk{VuYWDQ^!L{Y}E|4`q)DbdF!M}fGA1}!e?G|X3_${81~s8teqZ%`M?CY z`SxlwQ*(=IucReP(LAM>axwUL@_w89uw`XiG2Jf7b=`AVT)=U+L$oIsw9+cH7Hutn)%AMvEPp>i7B5$kRoV zpHpuCj-@>tI#c{TEC|fNGbDBs3_!e;zEoc2;Y*k`|<=`aLQHZ;taC zHy&b&#RcP-j@aw-1WG;esyW1a_ZnxV|7Lr9`d<&leY@tmkDP>OV1;V|e;ustK|AM7^A`?f{co z{kN;aCTJp8IbXZM=uSi6Szuya!pZAI zlixOo2ywmb51NiGT&5%^&d?*+pUEuPivN}V$&PDN51pm2v!`86v^Ae*?<{qDOPKnS zCxd@}%xGrFXJJ?MK}1~6|G zD!LY)--BEgDg*!V!2-LOo zH?fV&-^@xk5F^iyuvVv;18ARlv87bHdP-{ejF!GOpEe2|st$0=g^}$#Jkk%n^QJ4F*gkshuqVHd&S*7J5p}-gck%~$ z&+_uv*J%SUvcWuHO4qY)d*>~sC{gMTW|l3CU7~UC`#tgt7srf7hCJ_gUM|emPm5F^ z7;B^zB`059e%htB$?2HJ|nI zy`$kRnjgGwOj~kj`k!>FuOsWBlD91F$qaR_jJ=B&6tz;D-+>@B^%Y48G!pZ#<(lzubLZ2RYCPUSGio?U#eH8WfBH)W@~gYUQwttnQd ze&KA8$Bc;I`o5h%=oUOZ0pqc1QcKqv5o}BqZr^Kn{M(jHr%W?4f6@a~(|>;@07vw8 zFKRn`_~#tYt(rG3?2P>&!98hmY3SaXQzk9JsH>Q*Fo8jA15KDGv$TxC z5>4Ls%lAS@hwR6nvTc(p&FY!IIjlS-*e1<1wO^$pMr}zr+TJ!I0a_{oj^=)D_oV6K z6C>xdiklfV!6dijxw5Dz-}xKf^9E&;=A!b}#TCc@7UN{$Vb!i?k*8Z1^*qifsbfY#63I0{Tn{AvLZ9ncK3Q!lg0zo55#=ZmU;~{O(5`}$fSrp+h z<;PnT&x3Y~bWL+auSCSr>X6HF)R8ZvDbk}plHsvDNe!XN-k(xLt7|moZNn zf~-(PA?M?suBLV0&`oJQW@=WH|DwI@%~4)f7J2MhWjdd+b)}kIhkF}?e8{lc>`1;p z0@CPUt1!`{U5Td{;iE;cSIYc-PF!_VqyNPm-w{2Z5&{g}EyE?t9jb)coe-fofEpxuI zS>QlU%{iQdPnyD_E?Z~&VFYV!T)I7+J^Pz?X#Nv>AH!*?P3VTq%|mCO|2ojY?7#Ti z=S~Z!Cw16Gpe{X4b=?miSJeZ;Mwc!qwzvLg3^1~}CB^me)a04#qFw6qEz4}^i+lX0 zS@y5yVdG7a(EMBC(0y04tLCBdGVxZfHHQpYYu*3(?b`I))!HE4xUFZ`RK6~R2Vf9E zkf1>wt8sTO8C#9U3Ej$Vm2Jd1X|jQ@PQ8k)nER@G57%OUe^o@K>*0k0PG3N;ubxX$ zA8cuHYr6OfhUqFo-r!Hs%uU4QN1Pxc@EVSb*5zv;F8Hyr3_+R$BSF6nm>L?dP+WPt zgUf8O@Aj(_|PBwmi$UOkR(OvsI8T+P9LQ^)4o{^T~&ARdpObBGe4jc<+3zi zL)!EybY$$8ABB=ESdv_DA)sV);c{D9oWz>4ktgbcXQ#WFe|OyQzxLAKRW~_0uJ95Qw-Bh#$U%+f(@asz-nmhi zUa4MC+MnZeqwn=bt3xP)#K48w4{y%e2R`KUrFmrFdx@7;~5Wr~OXC38v zP8mI$!RhO(Mi%eYWz+QcD#e9l7~QiaA7)$fu`>T51r*lWI#iuAiGw^0LV#Sj44Wg9 zD1Es+Ne6rl`DT;pn$UiLO#nRM?S8quQ~he0qImB_O_YsPaA5Y_D|%-TCG?0P_0ZN` z8_m6vluzvOZYx)29>lLvgxAXWm(@%Z~Z4OWeLEnP}e>@^dB>r)CGeN@64q z?4>4U`}&>CX{?-?nU`W4ALCip;h!Fh|23w~GFE=$^M8}G;ooD6c^{n4T+T?2jV=7) zxnr>n8%$5UBSam;VQE|+iJzSQF}Y+j#;aCVZ9`DGGWCbiQ{3R5$~pO$xK$mj?v+P> zMoVnz*=J?A=(p^*q&!31Y^%I5vixOvJXrk<^gDk)lHM)ha7~8m3D0u}8x`TITnp+4 zjue#}2ZXd^U50WU9)BMIRt)!eLsS&|_{7|HDp|gBMcnJCL^zdjX5r6Uhqn=WgQR}h z73CR5hn*=JB7B1CUp7wN7UPI5WZ-?X9&#uarHgwXnvaXt1~UKx6qOn-ug?GMySd)J z%pO!VZ-E>9AcAGCsF){k`QlwSoX;&R41xGTq;h9C3qZe|YSWn`hOCBso*n|M%;5Y0 z6{}rd5u;TsEvY51GjJMMWAdP7lSg%sh4r;t_nn=VpZa5nNal7i;PhqF^tdR!oKdm# z)MxBz9D4tyjJ;kZUi;Lzm!4Kkq_FB4d~39S<)Z$VnBV7;*_qn>mYM~I?@0xkntaFM zWu4B@#iV%dUk2Yo&a@pd;KVRE;#0OcDfsu0Y{x^XrD9wDWzz7Zt6^?`sG9`N**Lp* z3?J9x13>3(+@1xFU%6Gmed1I9tTdJJ>w5XJ@N(^Pz2D8{8TC2t(Qftm-^YhGYQ#v+ zABvMC?wSRi4HAzTplPYP0mGoW2_>0Xveab?i!{^_OJB{WcGq zX$f2g-V5C&&ryuqGgOKA|p(bzn?&JB;;;ef6Un1cAA()?;5d_@ghpjlS^3n@Ad^0-Yi_JUw4LEHK(qep1 zQhdDI^*K+_zYL8j?6q7&W0{>9qSx~!s5yzRQfONq)7~^z9u*NfF7?Vw-C_NK`I(tZ zl1s%N-&(@_X!fOQNmH#WFTlrp;nha&Z^;F%^rwEw%WAztIdU2qPK)rJhUPkScjbhm zART+l+J4ng?k+~4^Nn{KV~yShE&ujgP{&0-Gs$$nndF6OOZO;^J9ZeMDHO4A7Q_>_ zD((`#ZM}beibD01o&Vhgv$oJk zK`)~ZeB64*N1+JCp@rLxAk2i;7Y#c8+OA@`@2uifCY61sZ-o|)Mf;W|BrU2Z>MdnV z^+~-djw+H%=04G%euqvO9gAbgDB3w2aO%sy?SE)NBmY(4XF9(SYucs$vSu+>faSq^ zdc^W_zJSN4sEV6@YNa8Kq5^`0#gSMa&_EMX?e*)UBE@xfuMXNJ#&jmz@$98bTZ*$} zz4Ap*r7Mqh&W$WgUtRphzmSenwD4srG(~LJ@anA^8VXzV6h)%C4|G3}58rzKd9YFX zZKJoV+OM8h<++gHewnlzPe~p12eb(kv4BEfq=jSPhid0Z=Lkbv14ne-%g4<|T8*Ec zar6$D&TKk+cXVu3j+k!0CQI~F2mS@u$Li_8FCI8U?)l~7*uHUyxLe#TUsa_o8H>?O zi$z66iRXMY&JIiw7CXoy@Kq4HL5+$YY{}U8?q~14WQ8|tghIrVxoD#++7 zJAz*9$WCaW5@NNED)}XOp447!J|9CXDpVhse}C{4Qxt({B(c3T_+~l&%TlqzK1rZ8 z`Ccu9>}Sv@k581g14yi*UXY#1sE=sr5|e2uvmxJ|W0L`qc**VKTm{?QB)6%qJo;q9?99buVi$otoL5-Z8~Hq`0lDOSV&0yJvw^5 z;|cqV!_5>9!1SQ9QAzRNw77vL#5hJgE=?X8uRRb|%dBB`9f^(3&r`&9esknX*~6SD za#|EP7)9PJpXOaLV4j3QEfkSwasF-3Mfof8>0rZ$_!ndl*lz zEGR~4_HRG5jrxGwv1u#U_0yCewtLV7q_&63?DQDD!u`c`%d@l0;VBOyY(LQa#x5=R zEhR3`O%!VLV6{w8l`^AAQe4Uwp!&CRENmnloDGN?YXtxvXlDu+QHu1qi$h^~W0l%A zs=0Y2y$h2BfPjD$X_#RE>*dKnivnhCbo~}$*V!FR{nnde8m^J#%amMYzMWigxsIb* z%=fYqdHH^8e{3)hD<}Jh^f4b%JYV7(YGC=p;SjqhbF~Q@TeN_cg4$UCX4F6?z2+IR zhtfuvE5+{|6}xkEbYC45=pTIx>-=q$kKn(N9RR80knjhvCA8xh-T^AIjZvdrg0zIS z>ISRNBW0S|q9yf9mxyrfdnR61X7C(L^Xx}j+d7a2K_)RXl70H442Cb|);>wwaWW); znq?r6cKE(g-P=)O>$JN=15M~KQU1YVBV6BG5qqN~95VU~ii80Lk!-7gdV*_AY#;x*OM17-Tc2h{ z=tMzVzzc%zM?}p#3|2;|#??fO7Kh1saIG#GV;*Zer#%Pf###@RwjF+DdL*^|;G4hu z`>pB^@v;6)_(<|OHuRvCyX!_Q+e1d`O&dWQvQm>{QPc2bw{H5WwtWRD(j}|-@zr;9 zPD2%d*MqhUcrlZ;lhZo1{($u2<<=77P7d+@&S0+IdqZj!gWIg-!jh?DG16ouA>R#+ z@?Jq}#Iu`WSb^ZBuTK){5ec1=XXp8}!3Tt=fHpuiC*TVT#W-%#wD1TIE6Odrl<@Qu zzXvQ5c1NdJoLxMv`yBtmkPH3pVn*@9Qv183AdTVCYjY%=1kmqbSzvrCYBxO1Qcr!+^NmPsQ;viXhAJHSK2Of z9@5t6)Jxw;itBoyA3yyre|GfqleW>6qZU8cywNpp`Qg$F(sR#26F1L=zQB@xyGG#b#f0}H>(!e63TsojHnT&&D*ju&wf5CRr`|k=qvOG^ z-A1+MVfp!4yqa=KTqonwX^s|`?$_%}Dvk&qhDg_tm8uyA+~s_F(26dS$$HMsH9^#X zW1pKQ50n&yH4+^tUQ${b?!M~!e!VkTjDwKLj_~{eBpb6`Zcy}Ea%kdZQO`36v<>fv zjK!+wAM?<8@cUHv7^owe@)d(h)37_V(led86^X%LGQOY34tRD_vmAv&$ZGXl&G`Bs z1a^%c6lXFxCczM9IOGia-FJjn76pC(bnDD${?u%&Knkz(K6R+A+m*mn;}sIrKvmU2 z0>gfDhS1?Y<82z)DQ@3q&N?3GA3y8px^7;$ugXo0+w#8a#s^04 z3`ld$YTK!gu&_Hv4D6}J-tV`+o&6Z-iOFaGEMoCU>wDQW(QEb$|1{x9)|JGDbhQY@ zBUD@mZ)1!EfdTd93&lfl!c4va<4m9!;I1pe>^PQSUc&Mqw#xK;s!>XPFoud+PFCrxfGhL=xk#&M3Fyr9yKc%9z za+Rm%eIJ9Qs)8*CxO%m(<`r92Je4g~$qXTB%-`i1uLClRJ%yS9HJeS5gbtaHyNV}I z27Z3Le0U6@m`U}uF#6u8h1+K;%|55XF|-lpAtsn47a%bXl+amt4+&Ap_5<_#JEwWI zd4+2O2!<(^HbPcW=>nK)M zmmPRdVBz*}k!Xb#K#a){K{q8H!%z_TIRA`RV`C)?rZb;4CEqOkCG^i%acvdT$)Aty ztJ(3Xl7r{8lP~^f*=r%yyALVJG&)R zl$D42;k6WQ;!;iG8UF^{1$zzZIoMF}nvTX$0a@a@oeDRL1*F(M8nh*TXSB<&PuVX9 zHcztEm^Mc=dwxt|&AB0-!XabPudzEK$?Dp%N(G!2+L&TshjPwbLsrYTh>^fwi0^we zrrP2>yHv?T6%NInuEp==ZKYCHC6~?@wn=~ z$e=%t?T%uE9AoYNSK_%5;0NB|zs2~?btj+XU%qBoI;D}6rDMh7OjpkgBpL6VJF=|4 zWl@)1RIAPf3h6>8*fj;A=Yd7^;mZ^Dk5v*!vZOgtUe;D=2!^2C5a~rYTVcV$7y&*s zJJ4QsKlAA9#L#;QuK6~-j+trBKJ52L`GI_|adMov}sCFh^0 zEwtU!9K`e__oi1V;x}$LwNh;);?iW_!U)aJ_Te1MP3mfg;`{%)6V#qcArKy3ZE~6jK0xoG*cB=9%PB7L-UUECSZW9i)rM62<>{Wx!TKM&J3RZh;JCtqe-gVdK%gBb(^ddemBBTyUqZ)nBZKd!nTPlvk> ztQEd<+2XJ>#4<2RVg4BX`aFX(sX^>EjoO^r}+8 zy(PDyNkz_oGt2`kTcGdX{}(|mCLX&ThSm0MY?>82BLD}X zj6%ftWfaQ|-+7cA73i_@%Uh^!3ZE6%fp58^k@4gXWFoKLs*uxCz7L$ew>p?}Okog}}i#7hZkycwH1_>0D7OoBR8OBe^+mh=j-l zxN?MR-#y%a9iJGX$HHd}siOsyJ1+qdmiR}@1= z4EkQmb7}HC9^5?Mw)XQ&zH^?N>)4siX+iz7XdJWXa8uY`zfR2JWul|&4P~NJ6)*zF z;fT#{sUi+J^ePW||SoZX`Ob?C55T>gLvn*A3LJ?Ev4tdg}mGK_kj1mIHbx zJe3E3$!bXPz0ucLqvFWaM>Uk+q6MOx9rKHzQSJTCJKG3i07Q$|UWgS7r1OuD37$_7 z`9zvUf@Efg6tQgg*+R`1_anY0UYCzKtN)#%Y-`~j6YDpJZk9;1B&2P9s4wmyAyyw% zeBg~^MhsXz|D{J!hx6g%m?%rR!aBiZlespqegv7>zXsdKLakdWDy`%A>^%tv1a4Ae8_3;2>7?;D_)C z-_K;N(QrdwT|Q&~*B^CxPMFzSBZI`&irMVzduGrWWrs_|0DgR&$PKmOXt}DOq<24# zt%h4c@Row$`fkrywx=-?4_}7`U^~XpRR})-Zt2BMt229j(EQ!qc?J)2w9P*Gouc0V zi;=)kd;mFkR9=UPRd+|1RDPG#&G~bO7lw2_zSUBrTQotQClEfYKNjZ{0Cb5BxK33p znT8T1l2_Z_m_KbJh$gHq?~~bw{3tt3)%083RncdvZY06y256ArnZJK0G7M6_Tr~WD z^>v}XB0P^MKxYD0Y4A`5*VkSsRQ);0Ue|x^#NQWmObfVTYqMV9^5rxf#oMU7y7h;% z+YhET2dAZ7xLz!n*ayeGMayG{&5(CdWpo8Y!0{7T9^g($5c{Vo!7HQ6YfpwG44>Gc zD}gBYh{D%<^2S9mgOi>tj5uN9pT)K^!QmwaGZd(=77 zJf!-k_=UNhJR3mXul(S2U8vytBQKOq@iicD3Sx%S-8(JH!bq~aIO|gMAzq?8*DFxn z@~_Z3bQ7kTtLqCOKmhcL4(~yN>DP@~0w1P*{%9gbcX+yIChMnO9saf#LJ2(M&y_^M zJ08%p;hNzAfx1&C7Ot`K@*HB`dP&=_(h>j8b4#n<=_&<8BN09tyjGmie^OxV%~`s3 z_9ahWs;%<+TILFu%*xsMe>vx9*Sp^L&+MAC)ro~#x9|OqGSn-l!L~P+eA>X_Fy7Of z1OrCoy<7|ybL(T)ZhKsH^e4}D-ZJHV<-?P6sG%Bsk2@|@<~gBXugaRKlfrU;3Wq%U zg_M&o2?;ZX!f1ze>2f~`jDg0?M-wz3xm4n1dD+P+)_L+8O{S3J4ku(a0|X_Jmr1C5kq8m77J&tllA`v89ZNt5YKx$3D7Q;3L>q znZ*$VJ5fS$cR76K!|sXSJ`;DiP|d|;&KXho;mo)y438!0Y=SLU+<|y;+F?Q2;DO4o z=XQTsCDSt5r6Pw3!RtHvEtp$^2aB0N9;N>BfH@xJ2EA5ECb0_Hzhm|g;8#W^GaO(9A|m|(sA|06R38S7zxc4ukHVPUeKt} z9N_^GLeD4c1bigpAy5gOihPAh`)ulW-E)*NCTkM`zd={klFe{b!5;@H^2!?IlI|$P zJ%#t1JqIcj!A7F8Sbu1o#N*7m1jUtfZ~lpMoBCXNf8h`tpbp3?e0;8_}|Fa9m?&&uav zc@`TjoEV}@Q*p>EeLZ}-S&;xcoSkg}$YStEFH2Y#eu0TGyPfywp^sYnwWy+G`v5Z6 zXA=cc?(VkQH-vX8l&B&jBLvTnUKWN{xxPR6lZr_kPT$j%+YdLgB=y5W-C7tVW}K&C z$@ge*b9gWrKc}^s6*ko?3P=8Pp`dG)`Mqtdy1TojK0h=JjQ5bCjEpcEJpqKqNQiv2 zD)-&8qF!@anO!iz4xA8M<_i>K>M2-UPz<|Q?O-e3WlA@$Jm*NXbxvRa;N z!H8ONER3j8RCC9S*bRxd8<*BIEr|I$?ay%(dKW{XaN?d|&b&6hyf#HXN`QjTCt$;q zhlMnGD)Jl;7&aJ4lSfTM4(R5JL%k*tj_kKS1t*1i`H0 zzCE2v(jLn_wnd<_HaGnG*Ngro<_GN7dkp$2c6DdvaR`A zZxajDQO_?OO+9t=Sqz*vk%N^5GORWVPVFOjM!vuGY=EDaU~0%3Byg-VS?0*tWK-Dp zK7EDjF)O-^0RV~ALMzrXyepY#G4qmO6IV%nxwLwry4t?7Y=QXK`CtO&C2CVfIgxt~+MqG2B~xT^5O^}666PRRw*zsfjD`nPk7JKq61rewu2ZD zNL&v?V!3{evyE4}{wS~Ot29`(>uTYa0~Thnj3BvNad*TxP=f%w5%~+SeFBig4;zn_*o$U!AQHZbAwW(nH2VLCzbl05JV znIwAB7#>_+D-8!Q6GF>JG#sL$C^G2Q;PDgVIA5kbuLde1ZZ0kDB#X_Z4z0(Kz_2K*Ub&I!uhqNnydzqZ{z z;C}FQj0ClL$HSRh9_|~X8^YKXnqx58t{7P`CL-d8P@>}ehN%qW`O;OCJghc==klEQ zvsp3ktr%x;TbZ0!3xQN0M?Nh*LcR=E_SasMzmO+)(|2*u3YV|Z+dG$#tQY)%S83`3 zyq1b043|bbaSoOZYu4SpyBiTu(Tz{Vj%}bC-+QUz-cjl}AHb9M0M!i=Qd~BMK&IIP zY&tPWG0w7h8-o0p8`Hm=Qf?5X9R9Ld7Ek8pa1V_Q+DAVZ$ogb#NWxfJ2a@jx&OY=y z_%J&VbsSCW{{wBx)O)M#XF3|gs>$P#J`?+`xz_A+?ZG*PwJ1JJXh~+uqA>nJkq47I zrWm5tBti*Irx1n0 zcJ8E(bohetrKOo!4<6R2hq$4*&J&U&@b8%1F(`uI!n2UyjH#%G7^~3c!Tjf2j>!a% z6hPe7(UcR;rT=Q!qO9%Kd)B!!1*)5KGuPyoUB zf#XfdeP}F)e`2KqA=3VnjG!3tOzPj_fh;fH82p-vT)2%zxnC|4VSz~1kLVD-wz{X^ zi#H{Hy`FKNi-zI-2j%vk|H2->kj7b`XRu&gC>=-8T-p`I4+yXkfxxl04~SMGY(+*w z2wkrVBW_ba^DXv&dzma<(TMxI<50_zj)NLO>&R=u}mYxz0e+>$dAlV_^zRgdkm;1kow+7CY_WidFA8UrN3*lZ5HKBPK8 znc*CVzOYhZ?FuzA!#UwWcu2iV<{k!5j3s&pij8u5X!1Y~;=Pg_x1w`XQB!*l(GaFI zq^eoYZ2jhDfeMb{>2+2;i8qIhIpZu~b-=C|?N`pe=rjK~DtR7v)N3YK+ftpVU3!G4 zAyDj-OzXD#o3gv@xQ@{K5!(EY2nJ9-U~o6?SFu^#IX*7WjI7hqdZ|s9Uv&S#9AN-(R$Sd5OD4`u=v)8b)`=s1VRlg;~9 z-J-5vp!6@Q`DW6#=;YO-fzqQpJd}izLK(+hxB2s2TUryyM4@2w;gAi-k|X>IFn<ZE=eYuFVc$#=^B;4>xFE84zqk7M#2v67jEf5dj($KLs zB_6WeBTxq=n@Qa4n=~d6jSu6^Nt%LMCTX0rAAY{jQVV^B{3JB8CIR%<9Jc+#j($iN z3?LK*_%0Bcz;*^I5C?*M#YsM5?ja;!=p%9DZJ}e$=;X3>D_{Pv!oY7%$=^x_-upLv zjm~1CiSu$dStJ}x*U6LTt{Xl&=8?DXbFXh%4s2@rwr~(2b%n6dLatGvw02b`O;w?Rv51Uw;@S0u|du&wr-R4 z<6BvS3&LNn3j3=4oM-l?9dSL@pVS}9q_Y8V;t3i4==$@IF7B{S(2$8{KW~QlzfK#R z3uI4f^FwjoP`Hq#rYy?w4J}&g31IDgizDGyK0^X zjJfE#lDOMpX7=S^F-Ij+@EKBGM5$T8SgCl4M6@rL-DT7H~1c(zyKc2Ex$}*HD)y zP6EUYy`SaiO(h}86=KEA0jWJbQkrB9N+pPK>uwj+XyEZUsAd*i-MiBURhK%D2?s4l`|f9ag8lx zZjT67mBUjXeGIS<`H!&@1Lj6a%A41zMDB6uwvZleR6qA7*QE@#0*R5uz#qgN+mn(~ zR|_Tz9IoOecODVcudS24`JvKu(~oP+W{HE+{9J(6M#;%h4_Fj7zCU$To8wIwW~I^_ z(-1dcb_L;fngW*$M4Z^W$Zj|UycfB)R>yZSp?%3mSBY0e&=?C5eq-{4-Ty@zC+eza zL`U&G4HNMD5Ebhy2U==QX{DHP0bXw&ifM_*<8tb;L$$c_+$&xLJ!{chqPFOK+$BJFNE zy8g#`0dp>rg8y3&Gu^uCc=qwwQJ>E-NoU?2zaKKu>}NG$iJ9LN`kIxLVgeW;K*w{t zi2}$Md}eJfXUc5hgdyLU(6B*T2yzvi+7a;qFUTKy4{*hb1WR^8(h4zXU=rV$_i?R- z#QqCZ6q*zY0GA61hf!PsZQ)eTlToYv@2W7$26SICUd?fF;D}sR_s}o$Y45w9*)`Hp z8UeHg9X^sI;c;FmR2x}s`WB1~`NC4D(g_dRzZI^kFHDskB$d8OHQ-}?dJ;(Z_P>v@ zNw{uF5ffv5E;|<-e>=7}^{|x0@7i%Nso^oW#dk!ec-m1hxeoHxx!h9+BEe*IB{UM6Zvl zYqXtzf6kK`%vAsqdTw`od}n%uJH9T_3<5f6ar-l3N#tobj{Rl!_ZlX^HCN4zs%s62?@#7(|PfyjeY>S>P1 zRhtqCoj()n%?BH0qU|5X2)6{-?c)dn3w@|5?{<9Rr#tcj1Q3AN<~mlc$Imy2%fO8yB>0D{!Q&6=O~twW7t1Y2DCjkwPv>T|qh zvklI`jv2e2Ne%-XqWJVQxY;6bX={4 z2N-YqDQ~|Y#(D&Okt`~d9TP(!;W0Fk6k-vM&*2a)XdkZK@tqz~oYX(fImn4*{n6Xb z-nLELmtMv{zxmF3v~}c&NgR!mJ_pkn(OYH>B3uMJ+!~jmHzjH}2F!9Mh^_5X5s|s{ zInURm-7Gu>foDOP4T!JJ=x#hSZDR^B&O_!_Dj=CUZPJPxh3GQS3xf+mqg}>fwGu3X z3W6F-r_){h( zCK_As$uDQ1m6M$C?C6vls!ZHc)TWh&tN4Hb%FcDm?rl~?XD2%Uz0UMYK4&lk+zms2 zjU%&&_}cVHc7N#yr%xutv9&OGLr8=FO?hIeZ+mR}?Bx5eeMH;w?V+4`OX3P z_jnS^bIlWH58x4^;Y5p%@T2vfL&bj3t)Rm7Tg1zKTU-bJ!)VB~9GR$6>a%N>dJUFX z5oax0J3zi0&7eO6Th5fsCC`~lH2Rj0#O^$hpYSSqV7%A+kJ%CX3I{5V?j3g#B@``j zlYKOUO!rVENh7zeTw6Z(S7j!ycB0xp3v1H)dP z3_~b#NRL9nfdKG2VH?Uq>d&I`MYt{nxNjs;Z*Q>iJFlz{^DI{bu8l_jmJECJ#}v_y zleXJf^)C*5Y*cTIT`7eu`}$jRw{u`7jp)9@>f%_*AYVu*c2%Cm^GJIsEpV;GX|XEk z;QhE@F^_-mP%TL2y$l~M4ra+(MO=_M-?=OTN&tNb&boOC^qna11fYZ{6WsB$uEmX1 z+D0Jqxi|8OabW33`NBPd<-yURZaW>f9?hh@U1$=pPh7KVzVKJWauCS|1L z9p0uAnXkC#3&u61Y9hA^LRDsR!Zu*~uqC+kM$~LYA}Oi#1AbNa7Ew_;E+>Zm>P$`k zKMyT*^V!b9?7fl-g&P6d!y9cg2ai4bj7Ru+aMJ6KLm9Ch08!m6FnUxe0GAV$fyu~I ze2DCMl3(PVyZOZ2LDw5T#)Su5s+>*GGMQ|EVBYXAe#0I7k7^^cr5Z4GM@Jy56$!5k zQ$^*3#pv0|_(%!<*+3f11J^q|*^$wL*-EhxyH)_we>4UQ1IbH&`OZ{{g571z|5q^{ zGDbB&M-_9kqv!CWvTfW_)VhhFy=aa$~AE5KV;16eEl zLe?NI!}v#WIJioFZv%*-p8st5?p=x;(Pl#Lat{bP&NXI18I7sv)?7u&7z-6)6Jq5jVaMj z0y-fO8jb&p3=H|uuJqKZFYQ{IFj(e8!b+6(jc&1}ts=GeMtXwGH%PIMS5Bk|#R^QM zaD>HF9P}_`uC>u|{<0YFP?$(c5ON z1VgTvvllwOGyBHq{vT1_9glVUzHcR~%+N54kfKuAWTX%!QZmv)5h*i!i)e@_lu}Vh zie!ak6-k9;g~-UtzVSP*yXW)$dHLfro_g;4{l2bq9LI4UXZ582;2S_Upj)&!g_(Zp z-%@7nX<0h7ic93wYM@G4#d9p69wEs+$kUz}ZZTgn`|A$C`ykfWZdFL=jQEOHKmOAlt%mICYkz7*!Ri}mi19g* z6Zci=g@=xft=tEx<=rn)GHp8!^H_U&cS7X|Z3#whFiutK#MHrV8=@?7%1--W5IPZv zn%2kF?rxflKL8yp@%|v}9SR}>!wgyBxl5rmVF8dpL2gvzzMJOAlEQ_S%oi}OP7r3o;l~65F_}h`N71(}J}7e# zAwF+F!R|elID`E(Ed%F@M2}yLwU-`$yQxb?>9E)mfHl~*!;GrY0=2)Y&SHN*oT{+M z!yM~gqAMx4alzn#RJXrk2JOsor28uGRYSM$*7xx(jGlpT^HffYw&VLW&{8FHU$bBu zPwN-W3%U)x2ud3w^%cj5VS1Mz9RF-l3-d@YJw-(;TU|$w z6EzXF36D)UeUz$^e#tWuTlu{y>)Er;L8~R4X-@3F6JSN9w!^wxv)yOjfihF6_P$`G zxOT+5$PJmtPm#7bHPz^o+%l=frS-+~iyWhqFjFZz1H604MRe@B#7M zC>?(LIw6)*u7?f`VsRIX#iV5-;P&%U+~By*K4yLvmaaSRkV0bv7hpG2JxMZei6#vT z9ELSDsx;a_xuLP58pa~v0dL&Z?oLldK$SDUo-LL8c&NamdQT2m-VHaawbcq&ql*c# z#@vj71uPBm;Ui9Mn>E^{$)qsyGec&hF(Q>v6ue%H?}3)Js*|FCrOK z9sSL^em=LF+Ra0nud9LBk`xZi@!M@dC_?$udVUrl$ z)QhH9+Xg3zW;48Bd*W5;xopIHLP!jZZ=NN(sO*AAX@?~4up zs=GSTM=06XWBJ$aHIAnBb-~Ocr&5hFX!bgfFvJe#i?R6Ol%L~&TaIO0Y@Cy*w zW5t!hD(w^eD|1%T)XMKlx>g%t^6Po}g@Zg8WP$^Z^1^(t+)=hdBT3EJ(|_l@hg6l- zrR;FewKy>+3%c#pQD`Nwjfe=eVoxLP*e1O9-35UR5Ob`A5c-$?jYlyqk+m0tCq|N9 zV8AM^7JIFJB0*67KD=*DIMz=99v^Mc5$ZB6nOg(u7iwPw>5B(zX}~Q^BWsu6qjZR<)PsbXFl}RDgNwp@&cYXK z!|^OEc}g`rs9T1>wvFNioxogI>+lxpLJ*A;5s45O`}}<%)P)@df~c)W3`CjASd-me zL}O(RMsHxQ*r&FnKsq8228z*QJ&}o7NwGm3T;*kOu3t{|(_d%v;%xnda(jS}vLJjq zfN5{!%DO%>4{_|<$-$=Ck1aFR_kc=m;}H##-UFrM<3@kG1iXIewb4d)%zeu$$ug_d#G8z3s%#1dvDAB(&2UR@OeR#5zj~$d1 zXz|lrht~%ws}a_u??!q$5CrVxp+;cr8i0d|vU~boh07R`>+)qjl27F8!=mj(vAL&sV3|g_CbQ5bCl8`w7^NlhJncyu4f+o zxp|;vY!@4RU9q_$*lKY+Zf4lg7wyj8N*fK{Fgg!sNv5AEd47dVx!++z*qpmyCdFD^ z3-2>v|DYbQ^tgJblz19*T=oj!V3dxd-=o7&c$i9%0tl!cKkbQ6uxl z*4_rQ#nE7<|0$u0-2*Iwu#Oa&2DQbTt^2CPE@Gk({Ny#O9_GfkutOzA=EkWCR|V3d%l^IBc4hs~_5} zfj<4!ll46}?Bv#fwgP&AqJ+wrK#zfz(>cGef4}l}G~BVL69={)AUGj3Vl5~gHhxD2 z!fODQnA^V}&tH^Rabi?~E=5*@pOLA&_G0Enzc%GnkNqhR^a%dp|=us12hq{!7h z5$(nrTT;n9%u2BQbv^Sfx#-DJ?kzNzq@{bFKUPz+GUM>zmvZ-gH&9T4Na0-=O&Wl< z6CQjJf?y7c2C;b*onD#j+lRV~Tt7JP9DWxOz(lJdeJ{>ESOOzc*J>eW=$fckLqx|& z6RykhiDxd}P%B`t3ZNtS*neI2mggsb;eQ(K7FyybkRIeqiA$Ef<~Q1w&!N5#v|1Q2 zh46tX;CKW3?5q1^@Z_MdVU>qYiFK7ixBN?l6*c_xBlnh?1H4pG{;lX3EC-j+}>P-}nPs#NEZb`=`=M%m)SPZQ-MA}#Czm}rm0Zf_i%G}s); z$3TV|&9_)3EL#CEbW{6_c6PevDAvXoU7mPPh02wZs=EZ0V;J^DJwk=22{AHR?=T@2$KE*qd(7L!f7gQt%d9-28TGp5B8)d&!Y5V)As}s1+z@*3l%V~M| zZ4$3rhesQKtSD9&oElQ_I*9@9^T0k%;=1bEVh+sK4_57J`%v;Tzo*- zaLY25Ze|4w94<^ZA;RFJA_=YDmyxqoc}>bC)}Be7Fw0lJ0U9 zhAOUz5}ALT5q}7EyBY+KK7VR>o%Y=T-i7PwJ~-z~sq}qVvtOeMml};G;TRTM)aGqw z{| zWDlt+GCb8Hb6?eGxJ~yu&+3=h6tt;cn0$pr%EnR=?P50Rt;4XiH(gY;|0N!biS~(* z&4o}A`S2f?+qspW&APQtE+$FZuUP+y23S#i`!N)xB5}23cM8GAwN%qw7VxGFD)9x3 z@b0l48zJ$nq0cyX;nLzf=?0U2N4RodO}>bUU}P2&G)ETyjDWN-?6rJ%`lzX1l?N3h zz83d$UN!yez=vSBLI>}B^F4X3sjTP6zoV#a&Gp#GcsLac9UzeeS6R*h@rQA?LR9(F z?Z1}1Kl|(|L#S=X77=Z=cQ)voVXyvsT5kWuyFYw4Hdv(BxF0tXa6J0$qCj7BrD7C4 zRYZzig(LGIu$nS0lqP~#;UOv?c~10r9f5Xc*kgHtV-Fg=k)i$UvzMaunDU1}KmJo) zlQ~PQ+*l?t--h`Iu(u?GgJ8$7qoNO&M(hoVD`=p;qoc~ zZaR>P%yZD3I!eUEmmnYAqHu^rMB?iwH4Sh6vXz|&^-iAgv0Qgd1x9bh{h=tqHl7#` z)yCQ$GVAj~z&$BiqVUu%I+>PoF*v+I2rT4F*-Dgi`r;zB+pJ_i__(1PBqN7OeO(=t zJHGU-x&Hv;v(3+DKxF(i)Y<7q7>FQLrtGIlzxIO+Sv_R$z*Ndn7TL6qazn1v}0 zRkipwp|DUB{K+z?pgk2GV$md*HoGh=7xMBG0v$;3gAw7mlwTvqP(6Unj8>gvDnUn# z3}jFk2UUPPE_2UaZo4Q}g-XmuL!AIo1PauW(Zf8;{;Bj~wXT8TQYz630HttS(lWS} z(gL#<%*>evg}*a=OlsC$RwygMW(j*mQQ@Bd@jAQT!YOljWTgIwGA=19u91?Z#gtvc zAKFTMlcQDLIiGpkC?>vFo87p?K&|v)h$#0n(6Qp$LIyam%QA&6pEqj31nJ@&nV{l_CZ z+0h>H-R1;DTMkKVdB@U1M>n=3$e1&!Gbtqhi)f#L@`G9eGOL*Qi|+>w)Qq2h|HXbz zbJ?+2$TUG~fD~JF8ylFKz31(-V=F6D(qBwMmAOD29RZx6To#p2{VO=n!X${FvEwmh zG#xYVckve4*<@nJP1||;w;v+)r);M1;ZdSOzf&%Y333n_xw*N#3miCm`Omx8Iv!c_KKkPo8=-mWiOmB#4>(n4d$=j%aV1)>%u)~D+xS{v&%fIF zzIu}MF4{{$;ypXot|TyY;SPa0R$5KPm|?Oqf6$(#p_7N9+CxMP4$?CMoT%1yOdZc4w78c~wK0mhm# z(O!}uBMd4IGHWdA#^5Q7O_h39&agkAJjeVE{xUsJ^k& zchh|gID&+eKFEXUv0s4{=egOP0V-4KapQJoA$k zj3LtXglv+_4d~KvTLBEtbOy2$cJ1t|{@1!p3e(M7?V+Poo2@n^G!7i1N4r~Vk5?AU zvSCOJLye0lB({pQY6ce>QxJ59Ra*h7dk`&&fVNcU9%@nq|{6v z%;=b(QZB6H!{*P>P?MKRD&{RyG#hw};%&BAHedqu6cl}4|lVzgAOf3FU%8-p(xv7=+tLNSK zXv}ETtB&F{LlU$J`*;5nCqT@U%n3!_a{zik5Y4*wK_|!Iyc?DJ1Gt^9E$@O+Cx23( zRg${rpG!O0G#PfQ_vHiR>GlxBzqtc$?uqr+O-)?HuVEG$l=aNFyy9g|E~H^njOEg( z0~3O9LB+C1L)G409w`dNZY-reh&zH4l{-78;k7e{Da zFGGb-9w`I|#rRjpo$eV)!767Ey@Ii{ln)c`@w;*#3J)a7Frp@D` zJEY0E2gj!6` z{TS}YXcv6778j9CqY)i2<-u@x>$`v$VJ6HbG6r(Kf5hzDkg>D=v$=$!HIYJKVH{%X z1Gtt!m;nA&W{8V{780>07m(wSLliDdwc_mIQb)9dbP+4%P2!EvrgAdKHWrqr{=Rq+ z)|_w6AA*|#l5(b?WL^m%VqBDCkhwFpj8xbGq!JV9^6NAX@)X~YyIHL~9VtdW9J(NY zR0TrW7Zsaawywc~P+qSN-)Ew>M;ltCMF1Vbb*Zn8tbc{G!QCTbC?J5swtG(#iMH3` zY+u||JME^kfa?BD@{o}c>Ygg1l%p!Y@*2)0GB(@Npv59uuaIteuQC3?0ho(GiVNfi zs#!olsABP7F@KG=MY+DafEE!1V&PKLeoa1t(Xg8FfjpZz;us2{(vrx&&tamuo?b54em~8HPrwH6*y_FiP)u} z&9X-Qw#qMP^8Z`ygeDx**m1S@@gLA#H_8dV$>~fiO8mRSkjqNK?Q`*|-72hufx>P)-9npOJhpkxzE}) zP&!xC`%G;oyb5-*oBc%rewUl4>SnJPP24^8z-t#nUuD$yO>B1<#DY=kIRzBU#!7P} zSUGw9$a4NWXdP%n;0CUCJA^T!{bvq`^-(@S1ZF$feGuRiv+B@OK)_DxCo_5?+|$J zs&k|}@D*Bpx;=-Ff^EmU2Hpd8cA!iNg$wlncq|Q1XAw|MCMINn+H0mOl!Wq%0)ywt z;c;nKmW!)xLRD|&J-KReE^BEG@(0tFw?`gFxbM0A&)3@H#k>Bu`c)?o7@>NGWEuvG z7=(Y?b1VaV&wn>k_;ACpjs1+f9;?Z8*nj(QAHBz~0fmn>Q^6}`>u%rqi#=aeM92+gdYme6_2&d9tQA*~i zR*Bl1GmucDXaL_qv=*3a$^+U4<`CO2isuG4dCmQPJTve#3*P3zOrq7jWoBPWaJ;CQ zAH-cmw8!zKMdd_=Uuq#Pw}GC`OfM~VbmQn_4_A>>r3@^8bf_TVp(aQG?RNst!Zy}Z z#N+P>b@e3h!?+DhbkN`IhF6R1X4VV?KJ3B7@S|+(jMqred`@k%0mOio7(sBaD$dP) z-zSGT0UG5e1~3|ziozb+Gy;A;o0rJ*DC@& zU9%ozbQ~UB6_^4z1W6hKIfSd!@Axx925Kklj!fB=Xl^uQGS11(Mif$*qrHREuBJ5ocBKKk9*gy#$wdzSed7*tn$IiE*70r?qG{s3c^ zxbo#iI5nQpow(?M#lU0&=bk z!r~kL5I`>Itv@)~EY;=iKga`7st_x;W23;*e51Sam|ro5ag*!2&soi5ZxRVrWDdB4 z@@p62+-&7i=CyiW9T$);o=6<&Bme+aNbAwnG{0~2fIub5%!C3a35G!2KCgqWvHGET zc*)?en91>CFJb_g?|&*jkCRkSt34!}X;@wZAn&g%{C1iiM-M9oVIR~tU#LCeoYI+y z{~N{%M3QKe>>UDj5UU4yFJ?=5fFp;GJ-g}*4PtTk*o?lW$G2WbKw1QgizHEvle z#1{)xix1Gb&px;0U}*oj2ojHIbbTn@LcoW^>VIS&eu{;@y!qEn-&;CDX)qH}GQ)~y zphI0XIaxu+JIP}VR|I7xruYn1XBkRnDrC^?*sh~Ti%L#S9F1-d^U-?}S7w59s4WLv z9;vwz4>GLnM`Xvt=oF3z*Tb=r^XeY%!E;YP?QjUE_vl=zZ%_2eyO8>u*7v-L^>W%j zPd8jKdt&iI+9R*kwRO0?KxKP;{NGC(ZNxX)c%E_o#a@+1Syio2z0W|rI@IfS{7wBc z*{v$Mr;mL*aa8Hm0oHvNI+(eX(*Jy1eoy@xgT$X@xDM}f@6 z%@OxR&hBos3yctde5Ng3*n7qWDQ!@!3USOWdZ8KaFzxrL|7- zuUl7|Q_6|2PSfSIBKMK&^B+$rY##6FwY1hgjw$Qu+2HBv`Kh77UtRe52KQHBZ)_bL zDmG;m1{{$Nsf-pXfAMUyMMT@@qO>&T$A-!9J}UIb=*W70w)3wAyt8A+p*+UF<6U=U z^wu3ag0b!F+wP^}bI#o=R?MV=}la@Bct2 z`d8%|LQ(Y(4}T0zV(YWpF%|v*&ygA%6Gyx@TCFN+;hlu_?Df6(va;AqfPIV(wQPsn z?(xVrP7`59yziF|m^s2QOn=vBKKc zmI+Sdx9{9}ns9ccjAeeKVG{H>?#hB+zJ9f?Pf}?vaFc;}pM!}Z_GO_JtI~mttgK4R zFkJyXY>hKUni;4Nawt9<%nX=lqbmdHm#^#$RilX1C8J8&YzTZJsx8W?CCVA3Au_Yz^EggZ3qNa5 znR0=f_OiWhU?Z!f6q=T{`rU~OM`D9&Z>@M19u{`xpsw}#^D9Z?jyI|LcJp16%t24p zArQ%{d?&Aq(z6Phf+=_ioxNcd6<1FO)KPW1K-n2(Yie_!r6*xukuU=h>Ix3uK zWUlX(_jU_^Qnr+~!$^Om>)_9J0ouJBmn7Z9ibLEZ4>3qxLO;>cT3tz6ddHpU`=d5;Ye z%c`o#Lus14IJ8n`#fla37k)Ajtr7`3m~3j>{&3i(zP|pXlM@GQZOPw7p(yJ&{#YeK zIXlF=0Iehc+O_4F2u7_n^`|WYm*eMKe|o+2z9!7nd}(STb_3;@<_>Rfw6C)FiDcaqLhngzbzwT*(d|Iz(T7#OlW@io(;F8n-v@qn)%{EDOW#-xooycsw#b zmG(l@HO2Y8dQwHQJ7jGEssmS8$Xmg?(kR?Ma4MM;LzSv4QoOGmP0s?Duzc z$g<6Nsoqud6(s1P(`e`J*KL1XmXG01uetiO`sPOR@j^mE;AvCd+4r1&4p)U-bwuv@ zsp0bMlaEou7s@1pD>Yii zDuZHD^(~BKx+XnMFTH8r8{t{-q#qZo4C4dj;0_wT6iLY_S5Hch<@kCb!1R`Ph<1T7 zJhZ-iF$YtHV5Z{O%7>@ZfBiaBNExrC7I!EZ zT}MRXp3f4Hs z(l_kUh38P}PrsZxhqeS2a}bOvpPwkMX?Y-x8#Rja*Y&E&Qd3V)Z&6Edey47liI7eO zoh!bJzW4=*G>A&ZeQId+w)n_KxA?GhHhPbAGfIExlR|w%!w1F1f{*MJi+D(0`F^k0 zA0INvF5z}U(r&Az?U7gapD@%>`f=WLRZ>_ri==2uhIs0`w{L0i9mW$U3oRX0Pc_P| z*b>L8D=D{g=g*$%o44=YeOFagb>;Z}MmYvL+Pg|_E7caqqAws>d%ay!o|@Ku+{iB^ zREfdGPpz#HN2K2m3~m-rg=6Zw9GiMsIk_OcxGmNgU2{juX!!PxF>Y}7f#c9tMOWF5 zjtlf?$A zs&$p@oDQtiJhC3ZAySF?mbgYe5o#`dp~ms5^;_kMtw=apzxZTj$%Q62wSXLI(+ z{y%^A2y?jqsrGi2^_>~Drc_u_mXRPs?Vw5Li}Z8&gDLI)Mh=!>r$0Xws8eE)noc~p zY43X4OR^&OXlyW$DZ~Pz>8wE7#!;9p+?e8kyMQ>Sk9Snw1X6)qcN7dI}(P5tqiU!g^ zj?N8ctzWk?ZpicCz}P|i!_YI~xsqMFTg+d-O?Mal&dJsj9%ftl?!?x`^~eBWPs)%2 zcylx2j86Di(`uGKxP3RFw7p2+Ng8vCV#2qlr>#m)nu(@tK9e9$9`K((=aE41E0KE7 z&TR3iHUE>eG=C1dtfHwk4`bXh$ue5ADNC4#B|{+${&)QR{BOZLZdF!}bXTquE{<%T z_(f(fOG|eTwd5?fsk@7iF?iANHHXIAk?C%1-6%u27#ph;>fTi{yW)(E&Fa^OIYb!F zo;~X{@I{i!j^M&~PI|_@d}38E!Ez^tV3CcDjWgr5GGjnaMb}(aM9#B~J1%UfrKPk- z7m2v*?>6#PZMla$iV;`O=dFE{iPcaWxc2Gm8(3emr@Nl-@ulgThRn9sn|LAs1+L&B zqpU3*cI_*7D{#nPut}~Do#?CYMkj7@=-5T!wI5QAB$YkJ83_4=$R%BSg2U?l!?%Gw^;Ss-`jo!t@ z#U0^jjL6bHe*9R!;4PD<9A>JENi@7HW$!s2;&wGRHwP{_vA7_r`=DY&oi+7K*1UMu zSLaH?RLb}nenuoJ{H8QWfX&C*ZGN{QNqJbOX|V|9c|hxMdXjpv?jJ_ZgZVd%el|SN zLGh+_=+L3!HE*7~6xH`>IyekpJa)S^#)yR9zx|wK6*`LW+mC+#wMcb&9-&06kWm^x z$j;^@ul>!NH%Z5~VtxZZqmE0%B^9KnSeo!%WCy)bzjNwzm7vn6wzjJy-XoXgFHcER ze3q{8PS#&;=X-hu%bW4?$nDu;@g^ufes$7qYi=(=j$s~ZNa~)679?M*Ml1+}&ZC}1 zObm30B}6x6cl35rQbl?D4TU#3 zrM0~QMl5*qeG?g*!my>Ge{irIR>rdO@=T3#tIJGY19fa@I7n&hSP(!)AN{N+L$b|N z)h$6BqwdP`zKhB$1r&n_tt{mImlMTDYjYg!{A&zhbR*4_lja`1LAfkj|C{1pBZr1^ z_F%(af;hR*h}`!dKVIHo81noROOhQff4 zHQ25T)LifWeVVN@+TdQ=ecC@eLN>0_yytWmb&7*XDv$WajSY>BfiU`@%~d(Ft!-Brl>C5xpOT?C83 z;U!SO5t$kOY!-2im?Q8O z^aQGF)~@Yx&Ody2Z}#_#B}YsOW4OlL*P)gsLrR~J|4E!{6BDI-`+pyPC-`g;em2r` z05CzoyCE4FZP>L~UP)d=owvZK`;Sj@880+FVykgoHo^Vm*s%zrC4e@03u5lKFX@V~ z5W~YnkA-gTvMQZOBD^T6YyA1FU$#_am4!2;mO-1&7j+CB> zJYy61(7i=MK)&@ur*gQ0``}UB3+f$5%b8-g1`Ro#zq)D+I#+y~Lyg0fy*o@@a5&h&`5W^3+H}%xVE6}JSjCdZ{9pZqB99Y)u%rHE-+ffR{plwd!88b zbWS!|>7ZU=D?jo%rC2u1YEemw_fu;Y{lvsX|L@eU$e@By$>1 zq2Ml!`)h(Uci^t9G8Ick@2$AgzqZ4?vU8N_Mzwua_r&Z0v~VRIm=Tp4Q03&jMgK2Q zJrG)8Dxvhs9JI1p`VrrN4k}*1?8P&&u0-z(1#LKM$P6~Oly~cfBZ2$-)3U8xnS!Y2 zD{U0XLD%KP-&dCy7{e797>J?O=u`p}-9NyD|FJw&$R`Yx`YKYimbo7v^C&dW_I6CB zD4=aYyj(*P@0l}a_}@FKJ2UVC4l6ZE5 zJy-*va9G8L&%fCiL-#l>ytnxB^;^o8b$etxbtH`G)$gT@pF4OUL+tHQg4dnmXC&Rq zQ>z6Q3?fSXIPX^7`u*b1_1BrO1)_D>(%CtVLv+c~7Dw)!1*PJ_g^ue(fRzv(iXm z;J0swVJv0QWcuUVqnMhdB4ZO$FaB$~ND4tjrXo$w73mMlFQn)qET-#aZcB39@b5S) zRi5WFKXfP%UM;mRIIiyDjHnoUxwLwXx{HHwU4qG>|Wyaz2y)8NO@@u}e*`>_)A z2_PbY0%>2$?YLj8%9hu< z%%bT4^W#I0w~LF5KN=mrssxY_2%Mjh{ZV8JPGotKh^gj$$OW6yty!(~u>K9LE^)gc zC-90w{l9a(GmHQ z(bo8QH$lEk+Y~z(mLLsU*l6JAtq{;m5{K8P`op}GQQzJ?@qOj zOU=&CdO&`^jF>hm3x>u()XWtvq!v=y4GlD@8W8(A7o!Y5JQE1 z`}SLeBaUz_r$vf~J7!D#pL5WW{)gzN7y@?_nu9Gc0{s@sX!oUs=`nO9_ww`eZ6iEe z$ItUuq<5#rfGfriVW-GJ2e@5#Wn;<}zmk|7HO*6d#nW*B+1MG(@~V4bl25R zZM6G4J>5-oexrX1Mtu>|1u4HUsigbHzdc(2OU+t?)}iB| zDqg*Mg~Nde3-h6F?whY08(H&e2?!=4CnxuXmPWsk?p~*Je&^WhF4uf#liy}L+3G|8 z)-9U|=C9)B%rIzj!9Uj-y)+X|HYN1*U6RSVvYgm5MDWQ_=gU%!#H^0pG9s4<-9A7A zRCU5Z5NBL7`c;yJF2`M&gu45hp+IZHfoK$;IdsrS_ru4JU8E;|^!V`@I+N1wF`lA~ z*5UWWee!@r(9)RN;_^K@IuVSuU+aclA7o^#Ahr?^ZLj$9?OW#URqW61a$23WYH70B zwi@Ubv8R3Q+{=QP*PP;`6y7%ZTFm)|$f|q(_mxd({f7eM{}sUNPUdA!;}d0M1V6IF zox+3J`^dU>N4_wQfGLgb6iJ<;DMiL~SN`?DBMb>ZZ;md~dfa7QYZ!o=c+n+1ST%msby-}@jaA6~+E}`qnYo2B z*HrTU`g$GRkW0FfyDLW_#p4y04Nm?l$Z5{1o?@nPy){u9xO}Uk z;uS>3ka6Q1F ztp1@=Iokd7mn_~&+?JAgTjTLBUW$I_r;-;a?u$=c@bM9h*I&cUedu-SpYDChWE!%; zmW@UI&`El(a2`4zp)zU-IP39Nqjgr@vS-n-XXyohjp<1bT=gmPcG2mUR8E&HdB4odi(~6GOjcb{(h&{$$C47D3aeZ93kBW_sd(~G zd&QyVtqg&sV)c2wc{0idW~yp}N1j~)Y(NrFMFigk42FKFuQzR5TrWyTqiNQ{x9c>m zE}hY@m4_LGU)om`E?Aa3CE50kdFW6h%&qk2r=KslSu|xof9^*mhxReif+sRoTtVw^ zE5}&U5gKSQ|H->5p!GDed`8-;0oRV`vei>;z2RZ8&VX~#IxT)IncXFi8*rm(s7&q7 zqi~&Q!7ic-1g6g}*&E_x39uOT02mb3l8$8GM9cPK%ce<6;UEr*w6rw(K!u`$Cm(=< zqB5q+L5NzG#NIvDJ5EM%(BW2;$@tFdQTmoB$qh|SrY4n;>WBd1=#8^_KV3Yn0x&kl z{-Bk#`|<;Fkw|-h{xSYgNu*uZuXDO)38$n#T51YQBprvo(8BVQGZ*#4CoE3!2?L1ZGvI&Tgcd}Jq@ zSSK8>D{^zIbwd15Xf_Lq16%uNI^GWarT5gDxJ+6p0pBD~CftsXuShIl|FlasY<5-x zg-UI&hAh9<{{1U{oX(=9};1%LJeU-Uad3+SXN~DfxwVKCn5{qdd7ssRa!PS z8?Tfyeb94#C^5+DfXW2;nubr&7$ywk@)pDxYyIS>PqajsyOG^m--JMNLNDOt*x@MZ+RzA-xJ-`Betn0ZQJT|Z*J8v zj?f%uzLmILhSu)%{I@}~Of%JK$Dg_^O8=m^Fx$T7;lbhK?Xr<#rOMY5Wt7!~D!Lyp zj4t=W?-ORmEfnHu)p(Jh2_ir-U83GvUZx5t-DUbsnPMUjb#id|8QfEZr!^ z^fVL>j+(_|Gt2DwX)nkS0i+#UOh}6<1I+`t5#fv-+##9x_1Ud!T zty@c*oXofj-pnKEhZ?aUR^w1ps7z#SvW$jHdf@!nb@14wCj(&!dv|6x4L^}~0%Sq;~U z!kW6rbwW+`P&aP5obbk=F#Ch_e#U#R&^)hP4a@ldAxjhdKqU+VK z|IoD$${tE=ZYWuS)k6WX&>iYVbrlmQn?h;DeQb2e(^O4xzzvB@v3}avs zU2!g}C}adv(9L;{R#O|^nWXwv^~561^RyUR@1RXDXy)_VR6#8(bH3odFaZkOAC`wSxrjBqWkE#>Oo z7MlkK&*8-A)@^O`Y#FHQx_&{q-#egTjCsRNA`M1Lb&_X`w&^?eo10TXyHPHv+!}p8 zh1n8Xmz0bG|BCoAa(_gxH&1bZLGgsyOD?4+^(H!BgVD-5T$_~f11$^Ui7b@shGR`^u~ zr&4xFIV{iij)u zDlvQ-Z-<@NugmoB=nK5Rc6Mh5LQ+cGo<_MZKzFScp85u(CY{W;rU2`7+Yq_@#n)Qs z9{NW{LYoG)<=0sr>^isn3StlsOBY@^AS6`5y@LuF@zmxRk1T+LPNsO~M1!se?9)Ja z0S8#Q1fr#0;PRGd=<^X|!1b0Bj&Yr;7e90thbj+KyC0~TfaZ|a7!8&tLHH3&70wUh zg0LKj4X{hImruujxYL@R-q~l9x+E1+$^6x{X;|Ve*9Pm zRZ3&QZK*IL__uQbH4bSSB>I8~)s4{2kobTGn}|NYe`{EAE_F~5ojA41g){^)x5l)B z?~uFb2}vW}e+?m#l@4Z=yoYvWoAgO>QM%_A{$8}HG)Mfza_IX~#qRy4OJICr{;E)* z#?)x-h5uE$imnHKx)yM zY2idm^Ej;Z%r`d}QG~eff!!KQ_pW6`vW{@C?YKVm9V!VYBpaPF_hUFG!2C#>Nv?-@ z;K%vt8=o37Z!GsiBaC(mLN9#-gKb(5U4WoKWkb@8HNU)b&)$ZUH{QHaqzssrXh`#t zoqyH|zoJyX4PD?S+&mepzU1l(Tq1*i@c5=7#+To{fzqSpb*Id1C8kC|iA1HWE9qvH zZ`~22JJna$da-2EULsjVGyC`-ua)KhHA5)_Hl~|Bl?74U5QS=^-I3UE6b{+h%zuB3 zR3t_1d?~l9bnwE1N8(3bd>lCZNsczTKH|-H4vihVU$gN6HP+u=AU?0@a=427;0~<$ zKt)hNigF+eJl+|HbninT#J9yA)ha4NnB|_ByQx=2kloD8 zj3|y!x+)wl(!Zsr8%{vC*G{wmIY0&<9aHAixK~spK>DI+)Wph{r|c^QZ9=RGYfao@ z#-Jy70D)JCbqrg#|JOiwqSQd4gdZwrYgHVXpRb_m1}OBC?+82HQfb4gC-#$tFKP7X zbm?@%hg`V)s!W`HH7uR&MP`rVc2m2fmnVm=X))1K zVOXOyxoxYtW9`ab>i38Ee|KVX^oFUfNPOM#Q45?_Xj*D= z@TTDszr9IZ^=9?k)BI1eSV;~_ZYszy8UK6(+N9FXPfQ^?@1gOeB^pj3zm{2U)d}HY z>AQg&5~c&oE(-e3Ju_m-$;lzyq3pJ8Mu&Ij8nJ+318=|-S`NJe&2!P1yiI*8%Kd74 z%l-?zwU1dI#%Rc`A<8|{U`AKw{KUSGm#N2nV+3a=(t^GU)8}vIkd{vi8@}YO*>ugyfc8L(lciZp%Y<(D zD*sJO8G8Ts1fm!GxA}Q7!EGLqMe&yZX)~fx$R3R<$C^{yt{J7=zfUU| zy>Us=g1@R2s5zbjPCAIsD%s)tD-P(Q`=d3|1#(a>d)Q#bHx~hbwUtO$?<*_wUOo*{ z39(*UT%g8U0z=_?L2zI;DS!G^H(!Ca_rJbeb*_KCd9l}OXdX^Cat7{v#6>?#L}v$j z1*%$yYCK*Y5pm3WwVap!$l@Kh>Hp!g#@<8hq2NG_q=ahpB(39lAI6McE&@oXdFZ4H z#YgRuX2*CGcHl|S0A%65*~q_Ip!~~UX`{4DKJ7)IQ0h;LiKbuDU>fQu5u)x$I3Qsx z_e?LJdN!ztvvgKm;5JgBiCK3CmalSfBN`r59|!q@SAZ#~{dH%sR#o176_&)1+?-Fte%-mc^h zQGAo1bc5hqk%u!air@{unKkw_rV3GI$nDs9FLMi9{mwdP;4?>VN1yO=X6fcW6!!iE z4FjkV6mLFJ%1?X3pTLssfR$Br38l6K{klyZI{#Qer1o#cgcSAU6aZ$3X}-*OrWE& zo5>Ug)Tcml?Mc^YMI6t3u$Pw+L&A{z(j;OG#cT82 zw=oT-y{Xr>?$`RoE32p&@;hDuVrBr!^9zV#_QwphR$+pzi`+`$zml?1UNRNUm_HG; zG}yirO|KfBzKUX7Z2g{C)9OtSc!8@nUG#Y&w#y;N2wSF3K$(4cYG}7Czx0}#yxd&T zczuASZko|M3bYphNRCY;FRdd)69T|thl5Ln-8`2Mdr9+Z{-;%iZ$-|Dq>-1dAvsh8`77ZU-x`|5BwF-jScYvvfwb$mu)1eO@lH!{r+n=U;o;noW%tc1Y6ys~=KojO8bq ztfpiKy~k}^VNv}ANEGm3fVHV%P6Cggb)%!R%QwHe|^5H=luT8eV%ik=iEKHuIn@2@7H?&`e_5wPV1v% zO!EyNnT9t>rSe{D`EN3QaWoyFo2fHs-5#A`t5|0o>nKgMUgRgtdN$QmI;1`?vz~4$ z^4ijSEkUp{z4uoFi(GJV%>K0;O_=7vQ^2`cBicY;J{;`LjEYrBst z07%R}!wKLeymku4kU|H>#<>`m;-M88JkL&a3_;oCSkONxp+4vGqrrH1_O z>k#dZvT9SFcU!c{vph}j+Fz!5LMAk|G?&llY6W=&IT}}(&&u?_(dGD+MY-AooR>=f zn3-Du#RB55mTqED5;vHP*SlbpK5EyeiOT5ZkiWDpbpd-QDbQC&-aTO9MICu~v#G|( z`Yq|9Gq07E{cz3^4FDO{yw7xd7)90uxxTQ}wPjRwS>)seiNLpp>C36Ac509Adn+pB zQK}af6|KC!ANuU_7T2~+uv8GL0qg~RWLGtLxW$R^0~B)wWGL*~gXm=zxi*lwt|PfE zsI#&j33-(apSS}C85lF6`G|H2{R;O`5#5oeJZ*waT-9QUR7q?+)WV#VHc{RQOH@o# zZ`GUBN9Sv14tP^ug4K8QhgfM4`cQ&c=o&s2H?|h+mKpZE)ZDyzxV6#$?5@jachN>X zd9pj%FI4kjyu_Wm*UhY4X+hE*jDI()Uomr~E%m=maVj|w%+HUG{n`o3CUj%G2Nj!g!SMycS@#-O49r}RowXKEC1+# zh+@HI^-2xxHguQ|K1RE#3h8l}wRL-Jy`OJ=$;UpoI|I^F{5*DOWjBWo5DYP11id2bQSSitXp@fYwSv0U#)$1O7DoAO%%GR zE1q*Rq|m`Qj^jh_ZD>`;rv{IKZuIydcfW^b^JaVA(rY zh6|&kFQ}G@U9sZf?^f}IQ=39m%6rD~)o^~^j|37XCbA@C@7dSTYx~VTXFlxvoCme5Hz*C<_gYm~>2oHr>Jl5tYs_>RGXcNH zX=nVKnCVgKlNA9428FAJidhl%2%Hgb5BblWXqGjBbg!bt^x}2k4QF*^wAo}elQaj* zzAy73GOAj2tN}4iYL%<=QUO(4_Wq6mCcv<@z98)-qiaW)lX+EjCimXGx$0uRWPw=e zZdY?u5>>FC`w$ic6Sayy>nlU??VC{(y5fdN*=M(l7M?ict`B2J2~Xko^2pq|k)K>2 zpE_}#II;RD>vB3@)cB+*z(1}s>tp*=lyh!hX2qYaAThbnOg$N}Gk>ziYw~Uv>XyQ< zG)36l=sZvf&L7gA@e=%aK!pH(71hmo*MozzZ{3j+k*3)~widc?3T8PDeb2yvJOBXF zazHr^ReJvcVcXs{N-FeqS()I#ppNsHAAd=F!?$W4H5Ogopw-1%b#qgNy4VS0367A% z)No}8^BQpLR7aTS=jeKe&}a%+xl4U(lB9lMsbs9CG^0{=w)4=(@09hDV?2Dn zyQaqa(e|~jC9-JsfWblhUD4;T?HY6;;G&4fq|744y)KK4)n#H~QBoP4a>zFV6oFk1 z;++(X4~jHT9|H4NI6Cf1)(8}6=CFDtY1IxE$+N4dT!rtU8y=?TkP4T4{-C@ZT6X47 zWUdIog`JCbvR6Vb2YzV#c3)!r!oODa{yp1EG1iqMJYG@XWD3kocnt+vJ}7uNHy7)$ zR`xG(Z#zd5yfhNk$EskqiFqF5LGYmayBU zz5X^^JjC3a&24^{Nd9k^QZq3zZ<65l3nlt1uQIvc#|w;ek0@)=L*Pw9e%S0TriGSQ zR?_00GY&hB))}*JHp;kqzj(19G!x_|9z6Eh(oe9>AR>VVg&5sDJc_>-(!G5{tl-eW z;<{)EGa2LW2WBa$ropQ#b@6A;GAlAs+;`kb&_0f zr>k^kqF#94Av+-8@jEqjbx_+K@~__94BijQC*f58w}ErqGv{+2 z*!-47`5?}8!kGIsJn*xA0zc{K#(!ALz1Y0@=E2R#mjn0)T>);-{+FvY_KoArgj4+n z(E7M`Bs~ySI!v8S53)m70rY?n=W>0&Z(SdaH+ZO-E+=E0pNfu-+wqQAgQ}o`OL71G zc18t}!q8TbsO9HF)9D{dBYQAP^AGVyJ}i*9J5f=epDyL&yJ96{@_}}#fN*=^o5QM) zj;%@xy%b3;vO3cuFWJO_+g>`JB3&ilu;q#(FGQ`N{nX>P z?UD7lz_PLX_}H<-YV}Y@gfblo)l|)cJ|cJvdVK$)y)18A{|fLITu!9Kcr=R*Bi3?M%5JPKe#aTnXA^!98$_D8S0Tw_+m(wC$sA5$F-}jkB1p*CfXa{a+ROD>el9Q{WavTjC)+mbGH@Y?J zU%dO0Fph!xub;s}%X;h4OpThh3Mao7DHlBcF8(Jem%r_p9t0K@c zahF8|ShW~BXgy%_{j7G(`&F2YY9wPrO6uq zJWdNO`kcqNpT#JRT%~qh!^a>0F-Z003txyP4mRR#8JgyZDLJgHm44p%C1H@@Fy-h# z5_!5wN#OYSxUmKo;d^m>0ShGf7!Rw!o+86WNrCuJ;fDS;rP2>qb(pU0 zlp!TK}S@Bjx9-5mIgI>)$Mo&6spH>!%QK(-y@YJc_Bz=!;n0+ue z5W{iT59zT1LMn!a>xq^-{qZlltb3N~a3R3sQna=5mp+%V_hs)Sa4z^0fY zg95Zh;2+}4+r7I+$ijVV(ZeG+2MB=)852Av?4Gh5bM`^nHSOBtaCCq)r@(=b!o~il zsH}A|_P0uKeD}8B*9#O@g&YkDzm!8OxwmLj?#HWBd@T;fjnO6oVe4i4DF>eO8`v_v zq;_dl+B)vs_g{O{YK?gC&&Wk*hJPpUOudB!Il3@+ zJl*#B*7!=|kiT$2!_bfsg8_zq2I_pCxrgb!z!FjKp2Mg_$d&Aeeh!Q8q%h}wN7mth znoSptO6aR-1y?b~u{!uAS`7SiT)#PeeqoQ=a%y06doRq8k`hL6`(G|ratS&%hGo&3 z44Nv~;LyDNNkDuK4OoRMUz|ivf_y1!#q8_bntd$pBJ_7Q-@j^mFryzj-|Y2kSn}Iy>Y((;bcq(IEoR^V@%~4gtwp+LCqqDeawJbFg6<#X5+nAy!897w4Sr_+APbsbG* z-$yKd-x$8V^9HwEY47FWX|Igob80i+qZW@`qA*0Lpq`%Iry35eg&(Ym47sC}_jbK* zOghqY;powjg65gRaJ8NtqU~==#clJ12d!6fUsybG*xJ! z@VupgQw~gy5L39=aywcU+}egtA72|J_o_821Ccs%goQLE$SOEzL9}hV4N{-?maEEm2%OTV}Jg>C?w9$~#gvB$O-aqci#KIGZ^#+kgJ_kcIwi z{z`keCB!l7g6~cBe0#otrX5B)Ft9Ao<*A}J!vc{R^2Q7fONQ!YtDM)EQVb4d32qt6 z%6)MUA1;Bx$E)G~5kWtgYEHPi-qC(n?LUDtgA^R?BX7z&#aJ{(RzE|f0>Nkl%yba+ zSDHWRr)!;=(}IS8+{rk=QM<2%8>K1JS(q*FW4>?>NFac5gaiT+MHUp4<+#>xfsr|j zCr-rRo^UTAQhbb!5BT}h9gZ0_mzI@^W@rM5^@>OUWo4P`vZ70il$ED882-#SFt^KB zVSMvrBVk@DR_{>n1bVB2=3x~>+s1UCxhTqkWt9ytF<^QnCErHX2crL7291Dbv)+_5 zXy47l@!}Fv{#!hkSlQV5w2wgVhH4x7VueO0Jsk;CYXE+La2_1BI#guF7pDTenIdU~ zf_q>FcOa~p+ujS~jS?pSiUJfsLRwU0!c4p{ zXmEUwuc^1&Th=jr&#wM43oQ*6*Rul0{y*)=)XWSVXChs{Vgs{}yeHmu;?aUsogcnwzXi8@r-CPy^UkyDyFzr=?M zWi}Cqg6{ILvdhmM!&4%?<85arGem*+s7-GSucpOP0=Q2gqv&1dz~wI?E@AXB5W=o` zC3a#gJ1Z*lJ_2HM%~=EWiEBE6(%di*Lao0!tQ$iq~U(*q7c)igG_fIfvq)@-zLlYwDk@ ze^Z^lL@l{<2ik^{DSaJV2i)^MH;6Nl9;V_rm`{{y<$Vrz`hM$IHaIsraoLwlbKoq+ z$r7(gCgk}xVVVlX>UdOu7SAbnDCKNy5!bu+c5In*z11tR0|3Kdxtw=$g0b3!=$T|T z)+Z?a=-Z;s_RG^Pq-g$>UGJ&(@1l@9B8~=(@p7;`=a9-pay*d89n5WUq!T>%!SfJ@bZVZAz&UKeBO&pWbeyZ|H+x6=jZJ`5nvD>1%HpEl$vxm}#q=f8D zGm0DTY)a=YXft9z*g>$sGZIy5y>LeXI<*6Xl=BxCFhyBzC%^(6h_ zp@1lfP#c5iH*;s=ImmmFlKLY29|~*@ersg3uy}p*z11}Cyxzg!kRXw~6IvL>rhwefYEv$zINW)D31U>0UIXxBdog)d}w=6hXPFbG4EpHmkhhM1<^ zp5I|NU$KF{mr*d6k)~(lK2_L4+3;G0f)iY7OCHf#6;|hGx8z>(EUruLPw`=u=?@|Y zh*c3(rn^dL+o)%jwE|>CCU|hYtTr2)+^m?bZ>R$Cl~VO`{vn0#Z7QSN=e zYu4pi|AlJe4o3QmFDL2ctic7AelHngU*Q<0N#>Yf@vi-nR-Ufq1;?z{nf&8xRKL`S z*&CKcx^=6Uw6Og$nv>1wv!E$5|Ao38wddZD{d zRps+(CDr5&-6uBXFfiwiIM1^edQcWUUz>un_Ct#2hh$t@N-R|ft#ukVw3Qx4r#9{? zr9HS`xi=Ii_yfQL15$urkT8LRBQZjMhQY7}xc_{Of&a|~E91tT`MFAiF5%&Cxf{An zhrcUah_OkEh9(P~7Zxzt%p`{m{ud(KHqI?BxrobRoXDu~U9pbu{xojeqEOj$jyO*c zE(c@ql||T;sL^pTvJVlvC9$~!O;2=TT)A@Z0nBZ#+jhU}zpxTL6$JwZaq0*315w^@ zsf_Di-#sAp=LX5u*4xJBES1*KH!Vrwl{233r2*FwWDj)*;MV~m< zEZztuf1<0)w26xz5(I_TWfOI+)O&qrow827?oaLydo`+52f`wX^{tb9Z@F91&*;S! z`*__4JEw|narhTOxJX1QZ`S3v*DWsSID-oSt^ALLU-QE#>s8)CB#o`Z>A8R`0sv#j zz4MuYXd~|c(F&yLn)OiKAC=lyw(Mxb*p?ysFK`({vW<2mh^TOhL}~Nwqz|j*hgS=b zQ+}fN5ZQCj%~%0JC+{n<)F&#sb?eHB&mSQa=l7HVlLlr7Zva|Y8YDjUUcd+&f(sKN z*ucQ!#v&*#bTrQS6pOa+e>149B_JKTjEXVS!Ld*Dsz+Zjt7?0zqbY@(T&cmIEqD0) ztOtBC*a?w`Pafilhe=+i(*O8bXPK4S8+d6+CSU6EF{EXaoUq>EA5M@2uewSM>NuPI zAQ70HQ`%7yoVw!mmUACFX1 z_+5!-hTKn(`1Bp175R>mh?sq$m=m6HL0zbRPZqMHZL*2h9hX0y@V83TvgKjPH1Mhu zc$Ni1CW+c$YiJ8CN5$;Nu91jSqYjIkGFj4D0F#&q`|E2{q}W-i*6jz>4I*!)?oH98!d``61| zPq`+LJE6G#K9#lLodo60n{KMBTDF(M z8(b&u2?zJq`jR8KCcyj?moCX6TfF_dPteA*ft`@q_!3kQv2T*WxM;$>LmisFIt%h| zl=A`)qH#VAKal9&Yb?4hw9>Q|VKe)5t1}Y5Ed;$hF!U(o-fnwA`lPG}#R=pDNuYj9 zeRKW#Pu0KJKiyrr_)K=|l-T)_H%BFOFO&PBP~+V8@Zm$WUe4~3>`IiT8phU7(p|I6 z#U>ezszR#HRXPB?_q^k7J)v&(UmXsC2)lpK^xBYg9gWMl2dVtljOV4@m{tV9}y#+)Qro*X=W%Dg& zSCP;Sq)8uNQ$|nB$HjRqiHYxJ5em%YI`U8!&#jE^9BHzWWJa7Q?tz0WCGSOoi1f9K z7{_uJW?OI`xAHwZnWj5lq!VL*VLE5Yb!bxo;IA-lA!1HkD+jnED3*SbW`qj~qGeyS zcJ)DB%P(-_N+R|wQpfV$tWM7UeDC`L(aNKa02IyMK7=L?jR^kO%O?v5m2-sC#_h~? z=_a0;$IAqVN%7>5g=%L0XJ+kv(vrmpWz|n}fef2g&(vp%_KRB@Au1#0Yv`aeU5KNO z(`0}R9v)}B_hEWo$QQ^o$InxPjZ8f|pT#~eZTkfR2lHNbf|nqoOQgdcz&@s^JkCM( zhH~82T?Y{q;3x@63dT29)-w>r;h^&b^pZqmY;4>Sm|I}9m7GV|(A#oLcA~24V>z? zYJgCcf$yYZie(gyO& zf2+r^4?}wd*7Asnh#>jzvd{b?X+dIDOxy?KZ%sa3`ywNltG4~3$(zo8z*lhc;gaf{ znf_qR3TEN#L~o5p(9hReRqe-#h6Mp(B;Zq-@1`hYj~(7W@sg^l)&=I$`6>_>Pg|}{ zdm&3w)VIAp8}go~9_*OUSEn+%UkFgW9OJ=p7xO?@4DoWkg_2y@@NY5=v zr(Z5Q_vo!;FGvf|Td8-cn3lX<@k{pawtZZP^Pjl5`P-Z15JyD1V9W3w72;>71~mM~ z+n+J_scP35aN5H8mQV@H5e#X^ApbUL!@l2Zy@k0TxkXp!wJBd^~ zu`*Zj2(-QmR#ACL;ux%rV;3asXTrDLx$|K{e>??DBnmNQ#JmLBAw(K&zAF-w+M8F0 zJ=}4*)rP(}DA&()NM>qPojFJD>owK()Ni7?X#G6o#cu9p&3uJK+b zkw^HY?Vjx~AMR6_aX*>DXxFn_H%UIWmUGFhsMhe_h$G(98jxT2O@&{2Po;J;rJpxs z#XxRT`=59g)D$BeATeMg5GWJ{MGk|+Ab&VN)YBh6ko*|%L>V96h-#Oy&uy^LuCG$?=78Z_vWBIM?c!-vt830tT)fj?x7g2OD>|8}HiJ(JdqTlWm0ukX!WUNBcTXl5nQASN#1!v__kl>%%+! z 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%0D*3#69dqQWEpy^fLFDAtXD61;6xdxG%)(V# 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

PpvxF6NV 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%0D8v=~2fxo(XOrfCR>4r$Q8BFdxm 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ℑa6;{li7-p!ZSLp6Kde-SwfI@v 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

h)X;-F_){lXZ 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�v{P>7 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∾89O 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 literal 0 HcmV?d00001 diff --git a/static/pkg/atmosphere/assets/index-BwPYqd7E.js b/static/pkg/atmosphere/assets/index-BwPYqd7E.js new file mode 100644 index 00000000..558ce784 --- /dev/null +++ b/static/pkg/atmosphere/assets/index-BwPYqd7E.js @@ -0,0 +1,10078 @@ +var AL=Object.defineProperty;var EL=(n,e,t)=>e in n?AL(n,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):n[e]=t;var Ei=(n,e,t)=>EL(n,typeof e!="symbol"?e+"":e,t);(function(){const e=document.createElement("link").relList;if(e&&e.supports&&e.supports("modulepreload"))return;for(const a of document.querySelectorAll('link[rel="modulepreload"]'))i(a);new MutationObserver(a=>{for(const r of a)if(r.type==="childList")for(const s of r.addedNodes)s.tagName==="LINK"&&s.rel==="modulepreload"&&i(s)}).observe(document,{childList:!0,subtree:!0});function t(a){const r={};return a.integrity&&(r.integrity=a.integrity),a.referrerPolicy&&(r.referrerPolicy=a.referrerPolicy),a.crossOrigin==="use-credentials"?r.credentials="include":a.crossOrigin==="anonymous"?r.credentials="omit":r.credentials="same-origin",r}function i(a){if(a.ep)return;a.ep=!0;const r=t(a);fetch(a.href,r)}})();function Zx(n){return n&&n.__esModule&&Object.prototype.hasOwnProperty.call(n,"default")?n.default:n}var _N={exports:{}},jx={};/** + * @license React + * react-jsx-runtime.production.js + * + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var TL=Symbol.for("react.transitional.element"),bL=Symbol.for("react.fragment");function SN(n,e,t){var i=null;if(t!==void 0&&(i=""+t),e.key!==void 0&&(i=""+e.key),"key"in e){t={};for(var a in e)a!=="key"&&(t[a]=e[a])}else t=e;return e=t.ref,{$$typeof:TL,type:n,key:i,ref:e!==void 0?e:null,props:t}}jx.Fragment=bL;jx.jsx=SN;jx.jsxs=SN;_N.exports=jx;var It=_N.exports,AN={exports:{}},an={};/** + * @license React + * react.production.js + * + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var RT=Symbol.for("react.transitional.element"),ML=Symbol.for("react.portal"),CL=Symbol.for("react.fragment"),RL=Symbol.for("react.strict_mode"),wL=Symbol.for("react.profiler"),DL=Symbol.for("react.consumer"),NL=Symbol.for("react.context"),OL=Symbol.for("react.forward_ref"),IL=Symbol.for("react.suspense"),BL=Symbol.for("react.memo"),EN=Symbol.for("react.lazy"),oR=Symbol.iterator;function UL(n){return n===null||typeof n!="object"?null:(n=oR&&n[oR]||n["@@iterator"],typeof n=="function"?n:null)}var TN={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},bN=Object.assign,MN={};function Dd(n,e,t){this.props=n,this.context=e,this.refs=MN,this.updater=t||TN}Dd.prototype.isReactComponent={};Dd.prototype.setState=function(n,e){if(typeof n!="object"&&typeof n!="function"&&n!=null)throw Error("takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,n,e,"setState")};Dd.prototype.forceUpdate=function(n){this.updater.enqueueForceUpdate(this,n,"forceUpdate")};function CN(){}CN.prototype=Dd.prototype;function wT(n,e,t){this.props=n,this.context=e,this.refs=MN,this.updater=t||TN}var DT=wT.prototype=new CN;DT.constructor=wT;bN(DT,Dd.prototype);DT.isPureReactComponent=!0;var lR=Array.isArray,gi={H:null,A:null,T:null,S:null},RN=Object.prototype.hasOwnProperty;function NT(n,e,t,i,a,r){return t=r.ref,{$$typeof:RT,type:n,key:e,ref:t!==void 0?t:null,props:r}}function LL(n,e){return NT(n.type,e,void 0,void 0,void 0,n.props)}function OT(n){return typeof n=="object"&&n!==null&&n.$$typeof===RT}function PL(n){var e={"=":"=0",":":"=2"};return"$"+n.replace(/[=:]/g,function(t){return e[t]})}var cR=/\/+/g;function OS(n,e){return typeof n=="object"&&n!==null&&n.key!=null?PL(""+n.key):e.toString(36)}function uR(){}function FL(n){switch(n.status){case"fulfilled":return n.value;case"rejected":throw n.reason;default:switch(typeof n.status=="string"?n.then(uR,uR):(n.status="pending",n.then(function(e){n.status==="pending"&&(n.status="fulfilled",n.value=e)},function(e){n.status==="pending"&&(n.status="rejected",n.reason=e)})),n.status){case"fulfilled":return n.value;case"rejected":throw n.reason}}throw n}function _f(n,e,t,i,a){var r=typeof n;(r==="undefined"||r==="boolean")&&(n=null);var s=!1;if(n===null)s=!0;else switch(r){case"bigint":case"string":case"number":s=!0;break;case"object":switch(n.$$typeof){case RT:case ML:s=!0;break;case EN:return s=n._init,_f(s(n._payload),e,t,i,a)}}if(s)return a=a(n),s=i===""?"."+OS(n,0):i,lR(a)?(t="",s!=null&&(t=s.replace(cR,"$&/")+"/"),_f(a,e,t,"",function(h){return h})):a!=null&&(OT(a)&&(a=LL(a,t+(a.key==null||n&&n.key===a.key?"":(""+a.key).replace(cR,"$&/")+"/")+s)),e.push(a)),1;s=0;var o=i===""?".":i+":";if(lR(n))for(var c=0;c>>1,ue=q[de];if(0>>1;dea(Ke,ee))nta(xt,Ke)?(q[de]=xt,q[nt]=ee,de=nt):(q[de]=Ke,q[He]=ee,de=He);else if(nta(xt,ee))q[de]=xt,q[nt]=ee,de=nt;else break e}}return te}function a(q,te){var ee=q.sortIndex-te.sortIndex;return ee!==0?ee:q.id-te.id}if(n.unstable_now=void 0,typeof performance=="object"&&typeof performance.now=="function"){var r=performance;n.unstable_now=function(){return r.now()}}else{var s=Date,o=s.now();n.unstable_now=function(){return s.now()-o}}var c=[],h=[],f=1,d=null,m=3,g=!1,y=!1,E=!1,S=typeof setTimeout=="function"?setTimeout:null,v=typeof clearTimeout=="function"?clearTimeout:null,_=typeof setImmediate<"u"?setImmediate:null;function A(q){for(var te=t(h);te!==null;){if(te.callback===null)i(h);else if(te.startTime<=q)i(h),te.sortIndex=te.expirationTime,e(c,te);else break;te=t(h)}}function b(q){if(E=!1,A(q),!y)if(t(c)!==null)y=!0,se();else{var te=t(h);te!==null&&le(b,te.startTime-q)}}var O=!1,N=-1,L=5,B=-1;function w(){return!(n.unstable_now()-Bq&&w());){var de=d.callback;if(typeof de=="function"){d.callback=null,m=d.priorityLevel;var ue=de(d.expirationTime<=q);if(q=n.unstable_now(),typeof ue=="function"){d.callback=ue,A(q),te=!0;break t}d===t(c)&&i(c),A(q)}else i(c);d=t(c)}if(d!==null)te=!0;else{var Pe=t(h);Pe!==null&&le(b,Pe.startTime-q),te=!1}}break e}finally{d=null,m=ee,g=!1}te=void 0}}finally{te?G():O=!1}}}var G;if(typeof _=="function")G=function(){_(D)};else if(typeof MessageChannel<"u"){var J=new MessageChannel,$=J.port2;J.port1.onmessage=D,G=function(){$.postMessage(null)}}else G=function(){S(D,0)};function se(){O||(O=!0,G())}function le(q,te){N=S(function(){q(n.unstable_now())},te)}n.unstable_IdlePriority=5,n.unstable_ImmediatePriority=1,n.unstable_LowPriority=4,n.unstable_NormalPriority=3,n.unstable_Profiling=null,n.unstable_UserBlockingPriority=2,n.unstable_cancelCallback=function(q){q.callback=null},n.unstable_continueExecution=function(){y||g||(y=!0,se())},n.unstable_forceFrameRate=function(q){0>q||125de?(q.sortIndex=ee,e(h,q),t(c)===null&&q===t(h)&&(E?(v(N),N=-1):E=!0,le(b,ee-de))):(q.sortIndex=ue,e(c,q),y||g||(y=!0,se())),q},n.unstable_shouldYield=w,n.unstable_wrapCallback=function(q){var te=m;return function(){var ee=m;m=te;try{return q.apply(this,arguments)}finally{m=ee}}}})(NN);DN.exports=NN;var GL=DN.exports,ON={exports:{}},Fa={};/** + * @license React + * react-dom.production.js + * + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var VL=he;function IN(n){var e="https://react.dev/errors/"+n;if(1"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(BN)}catch(n){console.error(n)}}BN(),ON.exports=Fa;var WL=ON.exports;/** + * @license React + * react-dom-client.production.js + * + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var qi=GL,UN=he,YL=WL;function qe(n){var e="https://react.dev/errors/"+n;if(1)":-1a||c[i]!==h[a]){var f=` +`+c[i].replace(" at new "," at ");return n.displayName&&f.includes("")&&(f=f.replace("",n.displayName)),f}while(1<=i&&0<=a);break}}}finally{BS=!1,Error.prepareStackTrace=t}return(t=n?n.displayName||n.name:"")?jp(t):""}function JL(n){switch(n.tag){case 26:case 27:case 5:return jp(n.type);case 16:return jp("Lazy");case 13:return jp("Suspense");case 19:return jp("SuspenseList");case 0:case 15:return n=US(n.type,!1),n;case 11:return n=US(n.type.render,!1),n;case 1:return n=US(n.type,!0),n;default:return""}}function pR(n){try{var e="";do e+=JL(n),n=n.return;while(n);return e}catch(t){return` +Error generating stack: `+t.message+` +`+t.stack}}function Nd(n){var e=n,t=n;if(n.alternate)for(;e.return;)e=e.return;else{n=e;do e=n,e.flags&4098&&(t=e.return),n=e.return;while(n)}return e.tag===3?t:null}function zN(n){if(n.tag===13){var e=n.memoizedState;if(e===null&&(n=n.alternate,n!==null&&(e=n.memoizedState)),e!==null)return e.dehydrated}return null}function mR(n){if(Nd(n)!==n)throw Error(qe(188))}function QL(n){var e=n.alternate;if(!e){if(e=Nd(n),e===null)throw Error(qe(188));return e!==n?null:n}for(var t=n,i=e;;){var a=t.return;if(a===null)break;var r=a.alternate;if(r===null){if(i=a.return,i!==null){t=i;continue}break}if(a.child===r.child){for(r=a.child;r;){if(r===t)return mR(a),n;if(r===i)return mR(a),e;r=r.sibling}throw Error(qe(188))}if(t.return!==i.return)t=a,i=r;else{for(var s=!1,o=a.child;o;){if(o===t){s=!0,t=a,i=r;break}if(o===i){s=!0,i=a,t=r;break}o=o.sibling}if(!s){for(o=r.child;o;){if(o===t){s=!0,t=r,i=a;break}if(o===i){s=!0,i=r,t=a;break}o=o.sibling}if(!s)throw Error(qe(189))}}if(t.alternate!==i)throw Error(qe(190))}if(t.tag!==3)throw Error(qe(188));return t.stateNode.current===t?n:e}function GN(n){var e=n.tag;if(e===5||e===26||e===27||e===6)return n;for(n=n.child;n!==null;){if(e=GN(n),e!==null)return e;n=n.sibling}return null}var Kp=Array.isArray,ai=YL.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,Eu={pending:!1,data:null,method:null,action:null},L2=[],bf=-1;function ao(n){return{current:n}}function ra(n){0>bf||(n.current=L2[bf],L2[bf]=null,bf--)}function ui(n,e){bf++,L2[bf]=n.current,n.current=e}var Qs=ao(null),Pm=ao(null),ec=ao(null),g1=ao(null);function v1(n,e){switch(ui(ec,e),ui(Pm,n),ui(Qs,null),n=e.nodeType,n){case 9:case 11:e=(e=e.documentElement)&&(e=e.namespaceURI)?gw(e):0;break;default:if(n=n===8?e.parentNode:e,e=n.tagName,n=n.namespaceURI)n=gw(n),e=$I(n,e);else switch(e){case"svg":e=1;break;case"math":e=2;break;default:e=0}}ra(Qs),ui(Qs,e)}function nd(){ra(Qs),ra(Pm),ra(ec)}function P2(n){n.memoizedState!==null&&ui(g1,n);var e=Qs.current,t=$I(e,n.type);e!==t&&(ui(Pm,n),ui(Qs,t))}function x1(n){Pm.current===n&&(ra(Qs),ra(Pm)),g1.current===n&&(ra(g1),Zm._currentValue=Eu)}var F2=Object.prototype.hasOwnProperty,LT=qi.unstable_scheduleCallback,LS=qi.unstable_cancelCallback,$L=qi.unstable_shouldYield,eP=qi.unstable_requestPaint,$s=qi.unstable_now,tP=qi.unstable_getCurrentPriorityLevel,VN=qi.unstable_ImmediatePriority,kN=qi.unstable_UserBlockingPriority,y1=qi.unstable_NormalPriority,nP=qi.unstable_LowPriority,XN=qi.unstable_IdlePriority,iP=qi.log,aP=qi.unstable_setDisableYieldValue,d0=null,Tr=null;function rP(n){if(Tr&&typeof Tr.onCommitFiberRoot=="function")try{Tr.onCommitFiberRoot(d0,n,void 0,(n.current.flags&128)===128)}catch{}}function Zl(n){if(typeof iP=="function"&&aP(n),Tr&&typeof Tr.setStrictMode=="function")try{Tr.setStrictMode(d0,n)}catch{}}var br=Math.clz32?Math.clz32:lP,sP=Math.log,oP=Math.LN2;function lP(n){return n>>>=0,n===0?32:31-(sP(n)/oP|0)|0}var Dg=128,Ng=4194304;function su(n){var e=n&42;if(e!==0)return e;switch(n&-n){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:return 64;case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return n&4194176;case 4194304:case 8388608:case 16777216:case 33554432:return n&62914560;case 67108864:return 67108864;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 0;default:return n}}function Qx(n,e){var t=n.pendingLanes;if(t===0)return 0;var i=0,a=n.suspendedLanes,r=n.pingedLanes,s=n.warmLanes;n=n.finishedLanes!==0;var o=t&134217727;return o!==0?(t=o&~a,t!==0?i=su(t):(r&=o,r!==0?i=su(r):n||(s=o&~s,s!==0&&(i=su(s))))):(o=t&~a,o!==0?i=su(o):r!==0?i=su(r):n||(s=t&~s,s!==0&&(i=su(s)))),i===0?0:e!==0&&e!==i&&!(e&a)&&(a=i&-i,s=e&-e,a>=s||a===32&&(s&4194176)!==0)?e:i}function p0(n,e){return(n.pendingLanes&~(n.suspendedLanes&~n.pingedLanes)&e)===0}function cP(n,e){switch(n){case 1:case 2:case 4:case 8:return e+250;case 16:case 32:case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return e+5e3;case 4194304:case 8388608:case 16777216:case 33554432:return-1;case 67108864:case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return-1}}function WN(){var n=Dg;return Dg<<=1,!(Dg&4194176)&&(Dg=128),n}function YN(){var n=Ng;return Ng<<=1,!(Ng&62914560)&&(Ng=4194304),n}function PS(n){for(var e=[],t=0;31>t;t++)e.push(n);return e}function m0(n,e){n.pendingLanes|=e,e!==268435456&&(n.suspendedLanes=0,n.pingedLanes=0,n.warmLanes=0)}function uP(n,e,t,i,a,r){var s=n.pendingLanes;n.pendingLanes=t,n.suspendedLanes=0,n.pingedLanes=0,n.warmLanes=0,n.expiredLanes&=t,n.entangledLanes&=t,n.errorRecoveryDisabledLanes&=t,n.shellSuspendCounter=0;var o=n.entanglements,c=n.expirationTimes,h=n.hiddenUpdates;for(t=s&~t;0"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),pP=RegExp("^[:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD][:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*$"),vR={},xR={};function mP(n){return F2.call(xR,n)?!0:F2.call(vR,n)?!1:pP.test(n)?xR[n]=!0:(vR[n]=!0,!1)}function Jv(n,e,t){if(mP(e))if(t===null)n.removeAttribute(e);else{switch(typeof t){case"undefined":case"function":case"symbol":n.removeAttribute(e);return;case"boolean":var i=e.toLowerCase().slice(0,5);if(i!=="data-"&&i!=="aria-"){n.removeAttribute(e);return}}n.setAttribute(e,""+t)}}function Og(n,e,t){if(t===null)n.removeAttribute(e);else{switch(typeof t){case"undefined":case"function":case"symbol":case"boolean":n.removeAttribute(e);return}n.setAttribute(e,""+t)}}function yo(n,e,t,i){if(i===null)n.removeAttribute(t);else{switch(typeof i){case"undefined":case"function":case"symbol":case"boolean":n.removeAttribute(t);return}n.setAttributeNS(e,t,""+i)}}function qr(n){switch(typeof n){case"bigint":case"boolean":case"number":case"string":case"undefined":return n;case"object":return n;default:return""}}function $N(n){var e=n.type;return(n=n.nodeName)&&n.toLowerCase()==="input"&&(e==="checkbox"||e==="radio")}function gP(n){var e=$N(n)?"checked":"value",t=Object.getOwnPropertyDescriptor(n.constructor.prototype,e),i=""+n[e];if(!n.hasOwnProperty(e)&&typeof t<"u"&&typeof t.get=="function"&&typeof t.set=="function"){var a=t.get,r=t.set;return Object.defineProperty(n,e,{configurable:!0,get:function(){return a.call(this)},set:function(s){i=""+s,r.call(this,s)}}),Object.defineProperty(n,e,{enumerable:t.enumerable}),{getValue:function(){return i},setValue:function(s){i=""+s},stopTracking:function(){n._valueTracker=null,delete n[e]}}}}function _1(n){n._valueTracker||(n._valueTracker=gP(n))}function eO(n){if(!n)return!1;var e=n._valueTracker;if(!e)return!0;var t=e.getValue(),i="";return n&&(i=$N(n)?n.checked?"true":"false":n.value),n=i,n!==t?(e.setValue(n),!0):!1}function S1(n){if(n=n||(typeof document<"u"?document:void 0),typeof n>"u")return null;try{return n.activeElement||n.body}catch{return n.body}}var vP=/[\n"\\]/g;function Kr(n){return n.replace(vP,function(e){return"\\"+e.charCodeAt(0).toString(16)+" "})}function z2(n,e,t,i,a,r,s,o){n.name="",s!=null&&typeof s!="function"&&typeof s!="symbol"&&typeof s!="boolean"?n.type=s:n.removeAttribute("type"),e!=null?s==="number"?(e===0&&n.value===""||n.value!=e)&&(n.value=""+qr(e)):n.value!==""+qr(e)&&(n.value=""+qr(e)):s!=="submit"&&s!=="reset"||n.removeAttribute("value"),e!=null?G2(n,s,qr(e)):t!=null?G2(n,s,qr(t)):i!=null&&n.removeAttribute("value"),a==null&&r!=null&&(n.defaultChecked=!!r),a!=null&&(n.checked=a&&typeof a!="function"&&typeof a!="symbol"),o!=null&&typeof o!="function"&&typeof o!="symbol"&&typeof o!="boolean"?n.name=""+qr(o):n.removeAttribute("name")}function tO(n,e,t,i,a,r,s,o){if(r!=null&&typeof r!="function"&&typeof r!="symbol"&&typeof r!="boolean"&&(n.type=r),e!=null||t!=null){if(!(r!=="submit"&&r!=="reset"||e!=null))return;t=t!=null?""+qr(t):"",e=e!=null?""+qr(e):t,o||e===n.value||(n.value=e),n.defaultValue=e}i=i??a,i=typeof i!="function"&&typeof i!="symbol"&&!!i,n.checked=o?n.checked:!!i,n.defaultChecked=!!i,s!=null&&typeof s!="function"&&typeof s!="symbol"&&typeof s!="boolean"&&(n.name=s)}function G2(n,e,t){e==="number"&&S1(n.ownerDocument)===n||n.defaultValue===""+t||(n.defaultValue=""+t)}function kf(n,e,t,i){if(n=n.options,e){e={};for(var a=0;a=om),bR=" ",MR=!1;function lO(n,e){switch(n){case"keyup":return WP.indexOf(e.keyCode)!==-1;case"keydown":return e.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function cO(n){return n=n.detail,typeof n=="object"&&"data"in n?n.data:null}var Cf=!1;function qP(n,e){switch(n){case"compositionend":return cO(e);case"keypress":return e.which!==32?null:(MR=!0,bR);case"textInput":return n=e.data,n===bR&&MR?null:n;default:return null}}function ZP(n,e){if(Cf)return n==="compositionend"||!VT&&lO(n,e)?(n=sO(),$v=zT=jl=null,Cf=!1,n):null;switch(n){case"paste":return null;case"keypress":if(!(e.ctrlKey||e.altKey||e.metaKey)||e.ctrlKey&&e.altKey){if(e.char&&1=e)return{node:t,offset:e-n};n=i}e:{for(;t;){if(t.nextSibling){t=t.nextSibling;break e}t=t.parentNode}t=void 0}t=NR(t)}}function dO(n,e){return n&&e?n===e?!0:n&&n.nodeType===3?!1:e&&e.nodeType===3?dO(n,e.parentNode):"contains"in n?n.contains(e):n.compareDocumentPosition?!!(n.compareDocumentPosition(e)&16):!1:!1}function pO(n){n=n!=null&&n.ownerDocument!=null&&n.ownerDocument.defaultView!=null?n.ownerDocument.defaultView:window;for(var e=S1(n.document);e instanceof n.HTMLIFrameElement;){try{var t=typeof e.contentWindow.location.href=="string"}catch{t=!1}if(t)n=e.contentWindow;else break;e=S1(n.document)}return e}function kT(n){var e=n&&n.nodeName&&n.nodeName.toLowerCase();return e&&(e==="input"&&(n.type==="text"||n.type==="search"||n.type==="tel"||n.type==="url"||n.type==="password")||e==="textarea"||n.contentEditable==="true")}function n7(n,e){var t=pO(e);e=n.focusedElem;var i=n.selectionRange;if(t!==e&&e&&e.ownerDocument&&dO(e.ownerDocument.documentElement,e)){if(i!==null&&kT(e)){if(n=i.start,t=i.end,t===void 0&&(t=n),"selectionStart"in e)e.selectionStart=n,e.selectionEnd=Math.min(t,e.value.length);else if(t=(n=e.ownerDocument||document)&&n.defaultView||window,t.getSelection){t=t.getSelection();var a=e.textContent.length,r=Math.min(i.start,a);i=i.end===void 0?r:Math.min(i.end,a),!t.extend&&r>i&&(a=i,i=r,r=a),a=OR(e,r);var s=OR(e,i);a&&s&&(t.rangeCount!==1||t.anchorNode!==a.node||t.anchorOffset!==a.offset||t.focusNode!==s.node||t.focusOffset!==s.offset)&&(n=n.createRange(),n.setStart(a.node,a.offset),t.removeAllRanges(),r>i?(t.addRange(n),t.extend(s.node,s.offset)):(n.setEnd(s.node,s.offset),t.addRange(n)))}}for(n=[],t=e;t=t.parentNode;)t.nodeType===1&&n.push({element:t,left:t.scrollLeft,top:t.scrollTop});for(typeof e.focus=="function"&&e.focus(),e=0;e=document.documentMode,Rf=null,X2=null,cm=null,W2=!1;function IR(n,e,t){var i=t.window===t?t.document:t.nodeType===9?t:t.ownerDocument;W2||Rf==null||Rf!==S1(i)||(i=Rf,"selectionStart"in i&&kT(i)?i={start:i.selectionStart,end:i.selectionEnd}:(i=(i.ownerDocument&&i.ownerDocument.defaultView||window).getSelection(),i={anchorNode:i.anchorNode,anchorOffset:i.anchorOffset,focusNode:i.focusNode,focusOffset:i.focusOffset}),cm&&Gm(cm,i)||(cm=i,i=P1(X2,"onSelect"),0>=s,a-=s,Xo=1<<32-br(e)+a|t<B?(w=L,L=null):w=L.sibling;var D=m(v,L,A[B],b);if(D===null){L===null&&(L=w);break}n&&L&&D.alternate===null&&e(v,L),_=r(D,_,B),N===null?O=D:N.sibling=D,N=D,L=w}if(B===A.length)return t(v,L),Cn&&ou(v,B),O;if(L===null){for(;BB?(w=L,L=null):w=L.sibling;var G=m(v,L,D.value,b);if(G===null){L===null&&(L=w);break}n&&L&&G.alternate===null&&e(v,L),_=r(G,_,B),N===null?O=G:N.sibling=G,N=G,L=w}if(D.done)return t(v,L),Cn&&ou(v,B),O;if(L===null){for(;!D.done;B++,D=A.next())D=d(v,D.value,b),D!==null&&(_=r(D,_,B),N===null?O=D:N.sibling=D,N=D);return Cn&&ou(v,B),O}for(L=i(L);!D.done;B++,D=A.next())D=g(L,v,B,D.value,b),D!==null&&(n&&D.alternate!==null&&L.delete(D.key===null?B:D.key),_=r(D,_,B),N===null?O=D:N.sibling=D,N=D);return n&&L.forEach(function(J){return e(v,J)}),Cn&&ou(v,B),O}function S(v,_,A,b){if(typeof A=="object"&&A!==null&&A.type===Tf&&A.key===null&&(A=A.props.children),typeof A=="object"&&A!==null){switch(A.$$typeof){case wg:e:{for(var O=A.key;_!==null;){if(_.key===O){if(O=A.type,O===Tf){if(_.tag===7){t(v,_.sibling),b=a(_,A.props.children),b.return=v,v=b;break e}}else if(_.elementType===O||typeof O=="object"&&O!==null&&O.$$typeof===Vl&&zR(O)===_.type){t(v,_.sibling),b=a(_,A.props),Ep(b,A),b.return=v,v=b;break e}t(v,_);break}else e(v,_);_=_.sibling}A.type===Tf?(b=Mu(A.props.children,v.mode,b,A.key),b.return=v,v=b):(b=r1(A.type,A.key,A.props,null,v.mode,b),Ep(b,A),b.return=v,v=b)}return s(v);case Zp:e:{for(O=A.key;_!==null;){if(_.key===O)if(_.tag===4&&_.stateNode.containerInfo===A.containerInfo&&_.stateNode.implementation===A.implementation){t(v,_.sibling),b=a(_,A.children||[]),b.return=v,v=b;break e}else{t(v,_);break}else e(v,_);_=_.sibling}b=iA(A,v.mode,b),b.return=v,v=b}return s(v);case Vl:return O=A._init,A=O(A._payload),S(v,_,A,b)}if(Kp(A))return y(v,_,A,b);if(yp(A)){if(O=yp(A),typeof O!="function")throw Error(qe(150));return A=O.call(A),E(v,_,A,b)}if(typeof A.then=="function")return S(v,_,Ug(A),b);if(A.$$typeof===ko)return S(v,_,Pg(v,A),b);Lg(v,A)}return typeof A=="string"&&A!==""||typeof A=="number"||typeof A=="bigint"?(A=""+A,_!==null&&_.tag===6?(t(v,_.sibling),b=a(_,A),b.return=v,v=b):(t(v,_),b=nA(A,v.mode,b),b.return=v,v=b),s(v)):t(v,_)}return function(v,_,A,b){try{km=0;var O=S(v,_,A,b);return Wf=null,O}catch(L){if(L===um)throw L;var N=es(29,L,null,v.mode);return N.lanes=b,N.return=v,N}finally{}}}var Lu=bO(!0),MO=bO(!1),rd=ao(null),b1=ao(0);function GR(n,e){n=il,ui(b1,n),ui(rd,e),il=n|e.baseLanes}function Z2(){ui(b1,il),ui(rd,rd.current)}function ZT(){il=b1.current,ra(rd),ra(b1)}var rs=ao(null),eo=null;function Xl(n){var e=n.alternate;ui(Xi,Xi.current&1),ui(rs,n),eo===null&&(e===null||rd.current!==null||e.memoizedState!==null)&&(eo=n)}function CO(n){if(n.tag===22){if(ui(Xi,Xi.current),ui(rs,n),eo===null){var e=n.alternate;e!==null&&e.memoizedState!==null&&(eo=n)}}else Wl()}function Wl(){ui(Xi,Xi.current),ui(rs,rs.current)}function Yo(n){ra(rs),eo===n&&(eo=null),ra(Xi)}var Xi=ao(0);function M1(n){for(var e=n;e!==null;){if(e.tag===13){var t=e.memoizedState;if(t!==null&&(t=t.dehydrated,t===null||t.data==="$?"||t.data==="$!"))return e}else if(e.tag===19&&e.memoizedProps.revealOrder!==void 0){if(e.flags&128)return e}else if(e.child!==null){e.child.return=e,e=e.child;continue}if(e===n)break;for(;e.sibling===null;){if(e.return===null||e.return===n)return null;e=e.return}e.sibling.return=e.return,e=e.sibling}return null}var o7=typeof AbortController<"u"?AbortController:function(){var n=[],e=this.signal={aborted:!1,addEventListener:function(t,i){n.push(i)}};this.abort=function(){e.aborted=!0,n.forEach(function(t){return t()})}},l7=qi.unstable_scheduleCallback,c7=qi.unstable_NormalPriority,Vi={$$typeof:ko,Consumer:null,Provider:null,_currentValue:null,_currentValue2:null,_threadCount:0};function jT(){return{controller:new o7,data:new Map,refCount:0}}function x0(n){n.refCount--,n.refCount===0&&l7(c7,function(){n.controller.abort()})}var fm=null,j2=0,sd=0,Yf=null;function u7(n,e){if(fm===null){var t=fm=[];j2=0,sd=x3(),Yf={status:"pending",value:void 0,then:function(i){t.push(i)}}}return j2++,e.then(VR,VR),e}function VR(){if(--j2===0&&fm!==null){Yf!==null&&(Yf.status="fulfilled");var n=fm;fm=null,sd=0,Yf=null;for(var e=0;er?r:8;var s=Qt.T,o={};Qt.T=o,l3(n,!1,e,t);try{var c=a(),h=Qt.S;if(h!==null&&h(o,c),c!==null&&typeof c=="object"&&typeof c.then=="function"){var f=h7(c,i);dm(n,e,f,Mr(n))}else dm(n,e,i,Mr(n))}catch(d){dm(n,e,{then:function(){},status:"rejected",reason:d},Mr())}finally{ai.p=r,Qt.T=s}}function g7(){}function Q2(n,e,t,i){if(n.tag!==5)throw Error(qe(476));var a=eI(n).queue;$O(n,a,e,Eu,t===null?g7:function(){return tI(n),t(i)})}function eI(n){var e=n.memoizedState;if(e!==null)return e;e={memoizedState:Eu,baseState:Eu,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:tl,lastRenderedState:Eu},next:null};var t={};return e.next={memoizedState:t,baseState:t,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:tl,lastRenderedState:t},next:null},n.memoizedState=e,n=n.alternate,n!==null&&(n.memoizedState=e),e}function tI(n){var e=eI(n).next.queue;dm(n,e,{},Mr())}function o3(){return Ma(Zm)}function nI(){return Hi().memoizedState}function iI(){return Hi().memoizedState}function v7(n){for(var e=n.return;e!==null;){switch(e.tag){case 24:case 3:var t=Mr();n=tc(t);var i=nc(e,n,t);i!==null&&(La(i,e,t),mm(i,e,t)),e={cache:jT()},n.payload=e;return}e=e.return}}function x7(n,e,t){var i=Mr();t={lane:i,revertLane:0,action:t,hasEagerState:!1,eagerState:null,next:null},oy(n)?rI(e,t):(t=WT(n,e,t,i),t!==null&&(La(t,n,i),sI(t,e,i)))}function aI(n,e,t){var i=Mr();dm(n,e,t,i)}function dm(n,e,t,i){var a={lane:i,revertLane:0,action:t,hasEagerState:!1,eagerState:null,next:null};if(oy(n))rI(e,a);else{var r=n.alternate;if(n.lanes===0&&(r===null||r.lanes===0)&&(r=e.lastRenderedReducer,r!==null))try{var s=e.lastRenderedState,o=r(s,t);if(a.hasEagerState=!0,a.eagerState=o,wr(o,s))return iy(n,e,a,0),Qn===null&&ny(),!1}catch{}finally{}if(t=WT(n,e,a,i),t!==null)return La(t,n,i),sI(t,e,i),!0}return!1}function l3(n,e,t,i){if(i={lane:2,revertLane:x3(),action:i,hasEagerState:!1,eagerState:null,next:null},oy(n)){if(e)throw Error(qe(479))}else e=WT(n,t,i,2),e!==null&&La(e,n,2)}function oy(n){var e=n.alternate;return n===on||e!==null&&e===on}function rI(n,e){qf=C1=!0;var t=n.pending;t===null?e.next=e:(e.next=t.next,t.next=e),n.pending=e}function sI(n,e,t){if(t&4194176){var i=e.lanes;i&=n.pendingLanes,t|=i,e.lanes=t,ZN(n,t)}}var to={readContext:Ma,use:ry,useCallback:Ri,useContext:Ri,useEffect:Ri,useImperativeHandle:Ri,useLayoutEffect:Ri,useInsertionEffect:Ri,useMemo:Ri,useReducer:Ri,useRef:Ri,useState:Ri,useDebugValue:Ri,useDeferredValue:Ri,useTransition:Ri,useSyncExternalStore:Ri,useId:Ri};to.useCacheRefresh=Ri;to.useMemoCache=Ri;to.useHostTransitionStatus=Ri;to.useFormState=Ri;to.useActionState=Ri;to.useOptimistic=Ri;var ah={readContext:Ma,use:ry,useCallback:function(n,e){return Ka().memoizedState=[n,e===void 0?null:e],n},useContext:Ma,useEffect:YR,useImperativeHandle:function(n,e,t){t=t!=null?t.concat([n]):null,i1(4194308,4,ZO.bind(null,e,n),t)},useLayoutEffect:function(n,e){return i1(4194308,4,n,e)},useInsertionEffect:function(n,e){i1(4,2,n,e)},useMemo:function(n,e){var t=Ka();e=e===void 0?null:e;var i=n();if(Pu){Zl(!0);try{n()}finally{Zl(!1)}}return t.memoizedState=[i,e],i},useReducer:function(n,e,t){var i=Ka();if(t!==void 0){var a=t(e);if(Pu){Zl(!0);try{t(e)}finally{Zl(!1)}}}else a=e;return i.memoizedState=i.baseState=a,n={pending:null,lanes:0,dispatch:null,lastRenderedReducer:n,lastRenderedState:a},i.queue=n,n=n.dispatch=x7.bind(null,on,n),[i.memoizedState,n]},useRef:function(n){var e=Ka();return n={current:n},e.memoizedState=n},useState:function(n){n=K2(n);var e=n.queue,t=aI.bind(null,on,e);return e.dispatch=t,[n.memoizedState,t]},useDebugValue:r3,useDeferredValue:function(n,e){var t=Ka();return s3(t,n,e)},useTransition:function(){var n=K2(!1);return n=$O.bind(null,on,n.queue,!0,!1),Ka().memoizedState=n,[!1,n]},useSyncExternalStore:function(n,e,t){var i=on,a=Ka();if(Cn){if(t===void 0)throw Error(qe(407));t=t()}else{if(t=e(),Qn===null)throw Error(qe(349));_n&60||OO(i,e,t)}a.memoizedState=t;var r={value:t,getSnapshot:e};return a.queue=r,YR(BO.bind(null,i,r,n),[n]),i.flags|=2048,od(9,IO.bind(null,i,r,t,e),{destroy:void 0},null),t},useId:function(){var n=Ka(),e=Qn.identifierPrefix;if(Cn){var t=Wo,i=Xo;t=(i&~(1<<32-br(i)-1)).toString(32)+t,e=":"+e+"R"+t,t=R1++,0 title"))),ma(r,i,t),r[ba]=n,ia(r),i=r;break e;case"link":var s=Aw("link","href",a).get(i+(t.href||""));if(s){for(var o=0;o<\/script>",n=n.removeChild(n.firstChild);break;case"select":n=typeof i.is=="string"?a.createElement("select",{is:i.is}):a.createElement("select"),i.multiple?n.multiple=!0:i.size&&(n.size=i.size);break;default:n=typeof i.is=="string"?a.createElement(t,{is:i.is}):a.createElement(t)}}n[ba]=e,n[$a]=i;e:for(a=e.child;a!==null;){if(a.tag===5||a.tag===6)n.appendChild(a.stateNode);else if(a.tag!==4&&a.tag!==27&&a.child!==null){a.child.return=a,a=a.child;continue}if(a===e)break e;for(;a.sibling===null;){if(a.return===null||a.return===e)break e;a=a.return}a.sibling.return=a.return,a=a.sibling}e.stateNode=n;e:switch(ma(n,t,i),t){case"button":case"input":case"select":case"textarea":n=!!i.autoFocus;break e;case"img":n=!0;break e;default:n=!1}n&&Ao(e)}}return pi(e),e.flags&=-16777217,null;case 6:if(n&&e.stateNode!=null)n.memoizedProps!==i&&Ao(e);else{if(typeof i!="string"&&e.stateNode===null)throw Error(qe(166));if(n=ec.current,Ap(e)){if(n=e.stateNode,t=e.memoizedProps,i=null,a=Ia,a!==null)switch(a.tag){case 27:case 5:i=a.memoizedProps}n[ba]=e,n=!!(n.nodeValue===t||i!==null&&i.suppressHydrationWarning===!0||QI(n.nodeValue,t)),n||Uu(e)}else n=F1(n).createTextNode(i),n[ba]=e,e.stateNode=n}return pi(e),null;case 13:if(i=e.memoizedState,n===null||n.memoizedState!==null&&n.memoizedState.dehydrated!==null){if(a=Ap(e),i!==null&&i.dehydrated!==null){if(n===null){if(!a)throw Error(qe(318));if(a=e.memoizedState,a=a!==null?a.dehydrated:null,!a)throw Error(qe(317));a[ba]=e}else v0(),!(e.flags&128)&&(e.memoizedState=null),e.flags|=4;pi(e),a=!1}else Ms!==null&&(pE(Ms),Ms=null),a=!0;if(!a)return e.flags&256?(Yo(e),e):(Yo(e),null)}if(Yo(e),e.flags&128)return e.lanes=t,e;if(t=i!==null,n=n!==null&&n.memoizedState!==null,t){i=e.child,a=null,i.alternate!==null&&i.alternate.memoizedState!==null&&i.alternate.memoizedState.cachePool!==null&&(a=i.alternate.memoizedState.cachePool.pool);var r=null;i.memoizedState!==null&&i.memoizedState.cachePool!==null&&(r=i.memoizedState.cachePool.pool),r!==a&&(i.flags|=2048)}return t!==n&&t&&(e.child.flags|=8192),Fg(e,e.updateQueue),pi(e),null;case 4:return nd(),n===null&&y3(e.stateNode.containerInfo),pi(e),null;case 10:return Ko(e.type),pi(e),null;case 19:if(ra(Xi),a=e.memoizedState,a===null)return pi(e),null;if(i=(e.flags&128)!==0,r=a.rendering,r===null)if(i)bp(a,!1);else{if(Mi!==0||n!==null&&n.flags&128)for(n=e.child;n!==null;){if(r=M1(n),r!==null){for(e.flags|=128,bp(a,!1),n=r.updateQueue,e.updateQueue=n,Fg(e,n),e.subtreeFlags=0,n=t,t=e.child;t!==null;)LI(t,n),t=t.sibling;return ui(Xi,Xi.current&1|2),e.child}n=n.sibling}a.tail!==null&&$s()>I1&&(e.flags|=128,i=!0,bp(a,!1),e.lanes=4194304)}else{if(!i)if(n=M1(r),n!==null){if(e.flags|=128,i=!0,n=n.updateQueue,e.updateQueue=n,Fg(e,n),bp(a,!0),a.tail===null&&a.tailMode==="hidden"&&!r.alternate&&!Cn)return pi(e),null}else 2*$s()-a.renderingStartTime>I1&&t!==536870912&&(e.flags|=128,i=!0,bp(a,!1),e.lanes=4194304);a.isBackwards?(r.sibling=e.child,e.child=r):(n=a.last,n!==null?n.sibling=r:e.child=r,a.last=r)}return a.tail!==null?(e=a.tail,a.rendering=e,a.tail=e.sibling,a.renderingStartTime=$s(),e.sibling=null,n=Xi.current,ui(Xi,i?n&1|2:n&1),e):(pi(e),null);case 22:case 23:return Yo(e),ZT(),i=e.memoizedState!==null,n!==null?n.memoizedState!==null!==i&&(e.flags|=8192):i&&(e.flags|=8192),i?t&536870912&&!(e.flags&128)&&(pi(e),e.subtreeFlags&6&&(e.flags|=8192)):pi(e),t=e.updateQueue,t!==null&&Fg(e,t.retryQueue),t=null,n!==null&&n.memoizedState!==null&&n.memoizedState.cachePool!==null&&(t=n.memoizedState.cachePool.pool),i=null,e.memoizedState!==null&&e.memoizedState.cachePool!==null&&(i=e.memoizedState.cachePool.pool),i!==t&&(e.flags|=2048),n!==null&&ra(bu),null;case 24:return t=null,n!==null&&(t=n.memoizedState.cache),e.memoizedState.cache!==t&&(e.flags|=2048),Ko(Vi),pi(e),null;case 25:return null}throw Error(qe(156,e.tag))}function b7(n,e){switch(qT(e),e.tag){case 1:return n=e.flags,n&65536?(e.flags=n&-65537|128,e):null;case 3:return Ko(Vi),nd(),n=e.flags,n&65536&&!(n&128)?(e.flags=n&-65537|128,e):null;case 26:case 27:case 5:return x1(e),null;case 13:if(Yo(e),n=e.memoizedState,n!==null&&n.dehydrated!==null){if(e.alternate===null)throw Error(qe(340));v0()}return n=e.flags,n&65536?(e.flags=n&-65537|128,e):null;case 19:return ra(Xi),null;case 4:return nd(),null;case 10:return Ko(e.type),null;case 22:case 23:return Yo(e),ZT(),n!==null&&ra(bu),n=e.flags,n&65536?(e.flags=n&-65537|128,e):null;case 24:return Ko(Vi),null;case 25:return null;default:return null}}function FI(n,e){switch(qT(e),e.tag){case 3:Ko(Vi),nd();break;case 26:case 27:case 5:x1(e);break;case 4:nd();break;case 13:Yo(e);break;case 19:ra(Xi);break;case 10:Ko(e.type);break;case 22:case 23:Yo(e),ZT(),n!==null&&ra(bu);break;case 24:Ko(Vi)}}var M7={getCacheForType:function(n){var e=Ma(Vi),t=e.data.get(n);return t===void 0&&(t=n(),e.data.set(n,t)),t}},C7=typeof WeakMap=="function"?WeakMap:Map,vi=0,Qn=null,un=null,_n=0,Zn=0,yr=null,Fo=!1,Bd=!1,p3=!1,il=0,Mi=0,dc=0,Cu=0,m3=0,ts=0,ld=0,ym=null,Zs=null,uE=!1,g3=0,I1=1/0,B1=null,ac=null,Hg=!1,hu=null,_m=0,hE=0,fE=null,Sm=0,dE=null;function Mr(){if(vi&2&&_n!==0)return _n&-_n;if(Qt.T!==null){var n=sd;return n!==0?n:x3()}return KN()}function HI(){ts===0&&(ts=!(_n&536870912)||Cn?WN():536870912);var n=rs.current;return n!==null&&(n.flags|=32),ts}function La(n,e,t){(n===Qn&&Zn===2||n.cancelPendingCommit!==null)&&(cd(n,0),Ho(n,_n,ts,!1)),m0(n,t),(!(vi&2)||n!==Qn)&&(n===Qn&&(!(vi&2)&&(Cu|=t),Mi===4&&Ho(n,_n,ts,!1)),ro(n))}function zI(n,e,t){if(vi&6)throw Error(qe(327));var i=!t&&(e&60)===0&&(e&n.expiredLanes)===0||p0(n,e),a=i?D7(n,e):aA(n,e,!0),r=i;do{if(a===0){Bd&&!i&&Ho(n,e,0,!1);break}else if(a===6)Ho(n,e,0,!Fo);else{if(t=n.current.alternate,r&&!R7(t)){a=aA(n,e,!1),r=!1;continue}if(a===2){if(r=e,n.errorRecoveryDisabledLanes&r)var s=0;else s=n.pendingLanes&-536870913,s=s!==0?s:s&536870912?536870912:0;if(s!==0){e=s;e:{var o=n;a=ym;var c=o.current.memoizedState.isDehydrated;if(c&&(cd(o,s).flags|=256),s=aA(o,s,!1),s!==2){if(p3&&!c){o.errorRecoveryDisabledLanes|=r,Cu|=r,a=4;break e}r=Zs,Zs=a,r!==null&&pE(r)}a=s}if(r=!1,a!==2)continue}}if(a===1){cd(n,0),Ho(n,e,0,!0);break}e:{switch(i=n,a){case 0:case 1:throw Error(qe(345));case 4:if((e&4194176)===e){Ho(i,e,ts,!Fo);break e}break;case 2:Zs=null;break;case 3:case 5:break;default:throw Error(qe(329))}if(i.finishedWork=t,i.finishedLanes=e,(e&62914560)===e&&(r=g3+300-$s(),10t?32:t,Qt.T=null,hu===null)var r=!1;else{t=fE,fE=null;var s=hu,o=_m;if(hu=null,_m=0,vi&6)throw Error(qe(331));var c=vi;if(vi|=4,BI(s.current),NI(s,s.current,o,t),vi=c,A0(0,!1),Tr&&typeof Tr.onPostCommitFiberRoot=="function")try{Tr.onPostCommitFiberRoot(d0,s)}catch{}r=!0}return r}finally{ai.p=a,Qt.T=i,YI(n,e)}}return!1}function uw(n,e,t){e=Jr(t,e),e=eE(n.stateNode,e,2),n=nc(n,e,2),n!==null&&(m0(n,2),ro(n))}function kn(n,e,t){if(n.tag===3)uw(n,n,t);else for(;e!==null;){if(e.tag===3){uw(e,n,t);break}else if(e.tag===1){var i=e.stateNode;if(typeof e.type.getDerivedStateFromError=="function"||typeof i.componentDidCatch=="function"&&(ac===null||!ac.has(i))){n=Jr(t,n),t=uI(2),i=nc(e,t,2),i!==null&&(hI(t,i,e,n),m0(i,2),ro(i));break}}e=e.return}}function rA(n,e,t){var i=n.pingCache;if(i===null){i=n.pingCache=new C7;var a=new Set;i.set(e,a)}else a=i.get(e),a===void 0&&(a=new Set,i.set(e,a));a.has(t)||(p3=!0,a.add(t),n=I7.bind(null,n,e,t),e.then(n,n))}function I7(n,e,t){var i=n.pingCache;i!==null&&i.delete(e),n.pingedLanes|=n.suspendedLanes&t,n.warmLanes&=~t,Qn===n&&(_n&t)===t&&(Mi===4||Mi===3&&(_n&62914560)===_n&&300>$s()-g3?!(vi&2)&&cd(n,0):m3|=t,ld===_n&&(ld=0)),ro(n)}function qI(n,e){e===0&&(e=YN()),n=uc(n,e),n!==null&&(m0(n,e),ro(n))}function B7(n){var e=n.memoizedState,t=0;e!==null&&(t=e.retryLane),qI(n,t)}function U7(n,e){var t=0;switch(n.tag){case 13:var i=n.stateNode,a=n.memoizedState;a!==null&&(t=a.retryLane);break;case 19:i=n.stateNode;break;case 22:i=n.stateNode._retryCache;break;default:throw Error(qe(314))}i!==null&&i.delete(e),qI(n,t)}function L7(n,e){return LT(n,e)}var U1=null,Ef=null,gE=!1,L1=!1,sA=!1,Ru=0;function ro(n){n!==Ef&&n.next===null&&(Ef===null?U1=Ef=n:Ef=Ef.next=n),L1=!0,gE||(gE=!0,F7(P7))}function A0(n,e){if(!sA&&L1){sA=!0;do for(var t=!1,i=U1;i!==null;){if(n!==0){var a=i.pendingLanes;if(a===0)var r=0;else{var s=i.suspendedLanes,o=i.pingedLanes;r=(1<<31-br(42|n)+1)-1,r&=a&~(s&~o),r=r&201326677?r&201326677|1:r?r|2:0}r!==0&&(t=!0,hw(i,r))}else r=_n,r=Qx(i,i===Qn?r:0),!(r&3)||p0(i,r)||(t=!0,hw(i,r));i=i.next}while(t);sA=!1}}function P7(){L1=gE=!1;var n=0;Ru!==0&&(Y7()&&(n=Ru),Ru=0);for(var e=$s(),t=null,i=U1;i!==null;){var a=i.next,r=ZI(i,e);r===0?(i.next=null,t===null?U1=a:t.next=a,a===null&&(Ef=t)):(t=i,(n!==0||r&3)&&(L1=!0)),i=a}A0(n)}function ZI(n,e){for(var t=n.suspendedLanes,i=n.pingedLanes,a=n.expirationTimes,r=n.pendingLanes&-62914561;0"u"?null:document;function n5(n,e,t){var i=Ud;if(i&&typeof e=="string"&&e){var a=Kr(e);a='link[rel="'+n+'"][href="'+a+'"]',typeof t=="string"&&(a+='[crossorigin="'+t+'"]'),yw.has(a)||(yw.add(a),n={rel:n,crossOrigin:t,href:e},i.querySelector(a)===null&&(e=i.createElement("link"),ma(e,"link",n),ia(e),i.head.appendChild(e)))}}function eF(n){ll.D(n),n5("dns-prefetch",n,null)}function tF(n,e){ll.C(n,e),n5("preconnect",n,e)}function nF(n,e,t){ll.L(n,e,t);var i=Ud;if(i&&n&&e){var a='link[rel="preload"][as="'+Kr(e)+'"]';e==="image"&&t&&t.imageSrcSet?(a+='[imagesrcset="'+Kr(t.imageSrcSet)+'"]',typeof t.imageSizes=="string"&&(a+='[imagesizes="'+Kr(t.imageSizes)+'"]')):a+='[href="'+Kr(n)+'"]';var r=a;switch(e){case"style":r=ud(n);break;case"script":r=Ld(n)}ss.has(r)||(n=si({rel:"preload",href:e==="image"&&t&&t.imageSrcSet?void 0:n,as:e},t),ss.set(r,n),i.querySelector(a)!==null||e==="style"&&i.querySelector(E0(r))||e==="script"&&i.querySelector(T0(r))||(e=i.createElement("link"),ma(e,"link",n),ia(e),i.head.appendChild(e)))}}function iF(n,e){ll.m(n,e);var t=Ud;if(t&&n){var i=e&&typeof e.as=="string"?e.as:"script",a='link[rel="modulepreload"][as="'+Kr(i)+'"][href="'+Kr(n)+'"]',r=a;switch(i){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":r=Ld(n)}if(!ss.has(r)&&(n=si({rel:"modulepreload",href:n},e),ss.set(r,n),t.querySelector(a)===null)){switch(i){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":if(t.querySelector(T0(r)))return}i=t.createElement("link"),ma(i,"link",n),ia(i),t.head.appendChild(i)}}}function aF(n,e,t){ll.S(n,e,t);var i=Ud;if(i&&n){var a=Vf(i).hoistableStyles,r=ud(n);e=e||"default";var s=a.get(r);if(!s){var o={loading:0,preload:null};if(s=i.querySelector(E0(r)))o.loading=5;else{n=si({rel:"stylesheet",href:n,"data-precedence":e},t),(t=ss.get(r))&&_3(n,t);var c=s=i.createElement("link");ia(c),ma(c,"link",n),c._p=new Promise(function(h,f){c.onload=h,c.onerror=f}),c.addEventListener("load",function(){o.loading|=1}),c.addEventListener("error",function(){o.loading|=2}),o.loading|=4,s1(s,e,i)}s={type:"stylesheet",instance:s,count:1,state:o},a.set(r,s)}}}function rF(n,e){ll.X(n,e);var t=Ud;if(t&&n){var i=Vf(t).hoistableScripts,a=Ld(n),r=i.get(a);r||(r=t.querySelector(T0(a)),r||(n=si({src:n,async:!0},e),(e=ss.get(a))&&S3(n,e),r=t.createElement("script"),ia(r),ma(r,"link",n),t.head.appendChild(r)),r={type:"script",instance:r,count:1,state:null},i.set(a,r))}}function sF(n,e){ll.M(n,e);var t=Ud;if(t&&n){var i=Vf(t).hoistableScripts,a=Ld(n),r=i.get(a);r||(r=t.querySelector(T0(a)),r||(n=si({src:n,async:!0,type:"module"},e),(e=ss.get(a))&&S3(n,e),r=t.createElement("script"),ia(r),ma(r,"link",n),t.head.appendChild(r)),r={type:"script",instance:r,count:1,state:null},i.set(a,r))}}function _w(n,e,t,i){var a=(a=ec.current)?H1(a):null;if(!a)throw Error(qe(446));switch(n){case"meta":case"title":return null;case"style":return typeof t.precedence=="string"&&typeof t.href=="string"?(e=ud(t.href),t=Vf(a).hoistableStyles,i=t.get(e),i||(i={type:"style",instance:null,count:0,state:null},t.set(e,i)),i):{type:"void",instance:null,count:0,state:null};case"link":if(t.rel==="stylesheet"&&typeof t.href=="string"&&typeof t.precedence=="string"){n=ud(t.href);var r=Vf(a).hoistableStyles,s=r.get(n);if(s||(a=a.ownerDocument||a,s={type:"stylesheet",instance:null,count:0,state:{loading:0,preload:null}},r.set(n,s),(r=a.querySelector(E0(n)))&&!r._p&&(s.instance=r,s.state.loading=5),ss.has(n)||(t={rel:"preload",as:"style",href:t.href,crossOrigin:t.crossOrigin,integrity:t.integrity,media:t.media,hrefLang:t.hrefLang,referrerPolicy:t.referrerPolicy},ss.set(n,t),r||oF(a,n,t,s.state))),e&&i===null)throw Error(qe(528,""));return s}if(e&&i!==null)throw Error(qe(529,""));return null;case"script":return e=t.async,t=t.src,typeof t=="string"&&e&&typeof e!="function"&&typeof e!="symbol"?(e=Ld(t),t=Vf(a).hoistableScripts,i=t.get(e),i||(i={type:"script",instance:null,count:0,state:null},t.set(e,i)),i):{type:"void",instance:null,count:0,state:null};default:throw Error(qe(444,n))}}function ud(n){return'href="'+Kr(n)+'"'}function E0(n){return'link[rel="stylesheet"]['+n+"]"}function i5(n){return si({},n,{"data-precedence":n.precedence,precedence:null})}function oF(n,e,t,i){n.querySelector('link[rel="preload"][as="style"]['+e+"]")?i.loading=1:(e=n.createElement("link"),i.preload=e,e.addEventListener("load",function(){return i.loading|=1}),e.addEventListener("error",function(){return i.loading|=2}),ma(e,"link",t),ia(e),n.head.appendChild(e))}function Ld(n){return'[src="'+Kr(n)+'"]'}function T0(n){return"script[async]"+n}function Sw(n,e,t){if(e.count++,e.instance===null)switch(e.type){case"style":var i=n.querySelector('style[data-href~="'+Kr(t.href)+'"]');if(i)return e.instance=i,ia(i),i;var a=si({},t,{"data-href":t.href,"data-precedence":t.precedence,href:null,precedence:null});return i=(n.ownerDocument||n).createElement("style"),ia(i),ma(i,"style",a),s1(i,t.precedence,n),e.instance=i;case"stylesheet":a=ud(t.href);var r=n.querySelector(E0(a));if(r)return e.state.loading|=4,e.instance=r,ia(r),r;i=i5(t),(a=ss.get(a))&&_3(i,a),r=(n.ownerDocument||n).createElement("link"),ia(r);var s=r;return s._p=new Promise(function(o,c){s.onload=o,s.onerror=c}),ma(r,"link",i),e.state.loading|=4,s1(r,t.precedence,n),e.instance=r;case"script":return r=Ld(t.src),(a=n.querySelector(T0(r)))?(e.instance=a,ia(a),a):(i=t,(a=ss.get(r))&&(i=si({},t),S3(i,a)),n=n.ownerDocument||n,a=n.createElement("script"),ia(a),ma(a,"link",i),n.head.appendChild(a),e.instance=a);case"void":return null;default:throw Error(qe(443,e.type))}else e.type==="stylesheet"&&!(e.state.loading&4)&&(i=e.instance,e.state.loading|=4,s1(i,t.precedence,n));return e.instance}function s1(n,e,t){for(var i=t.querySelectorAll('link[rel="stylesheet"][data-precedence],style[data-precedence]'),a=i.length?i[i.length-1]:null,r=a,s=0;s title"):null)}function lF(n,e,t){if(t===1||e.itemProp!=null)return!1;switch(n){case"meta":case"title":return!0;case"style":if(typeof e.precedence!="string"||typeof e.href!="string"||e.href==="")break;return!0;case"link":if(typeof e.rel!="string"||typeof e.href!="string"||e.href===""||e.onLoad||e.onError)break;switch(e.rel){case"stylesheet":return n=e.disabled,typeof e.precedence=="string"&&n==null;default:return!0}case"script":if(e.async&&typeof e.async!="function"&&typeof e.async!="symbol"&&!e.onLoad&&!e.onError&&e.src&&typeof e.src=="string")return!0}return!1}function a5(n){return!(n.type==="stylesheet"&&!(n.state.loading&3))}var qm=null;function cF(){}function uF(n,e,t){if(qm===null)throw Error(qe(475));var i=qm;if(e.type==="stylesheet"&&(typeof t.media!="string"||matchMedia(t.media).matches!==!1)&&!(e.state.loading&4)){if(e.instance===null){var a=ud(t.href),r=n.querySelector(E0(a));if(r){n=r._p,n!==null&&typeof n=="object"&&typeof n.then=="function"&&(i.count++,i=z1.bind(i),n.then(i,i)),e.state.loading|=4,e.instance=r,ia(r);return}r=n.ownerDocument||n,t=i5(t),(a=ss.get(a))&&_3(t,a),r=r.createElement("link"),ia(r);var s=r;s._p=new Promise(function(o,c){s.onload=o,s.onerror=c}),ma(r,"link",t),e.instance=r}i.stylesheets===null&&(i.stylesheets=new Map),i.stylesheets.set(e,n),(n=e.state.preload)&&!(e.state.loading&3)&&(i.count++,e=z1.bind(i),n.addEventListener("load",e),n.addEventListener("error",e))}}function hF(){if(qm===null)throw Error(qe(475));var n=qm;return n.stylesheets&&n.count===0&&AE(n,n.stylesheets),0"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(h5)}catch(n){console.error(n)}}h5(),wN.exports=Kx;var f5=wN.exports;const _F=Zx(f5);var d5={exports:{}},yc={};/** + * @license React + * react-reconciler-constants.production.js + * + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */yc.ConcurrentRoot=1;yc.ContinuousEventPriority=8;yc.DefaultEventPriority=32;yc.DiscreteEventPriority=2;yc.IdleEventPriority=268435456;yc.LegacyRoot=0;yc.NoEventPriority=0;d5.exports=yc;var c1=d5.exports;/** + * @license + * Copyright 2010-2025 Three.js Authors + * SPDX-License-Identifier: MIT + */const _c="181",lu={LEFT:0,MIDDLE:1,RIGHT:2,ROTATE:0,DOLLY:1,PAN:2},cu={ROTATE:0,PAN:1,DOLLY_PAN:2,DOLLY_ROTATE:3},p5=0,bE=1,m5=2,SF=3,g5=0,fy=1,Am=2,Es=3,os=0,Wi=1,da=2,ga=0,wu=1,ME=2,CE=3,RE=4,M3=5,js=100,v5=101,x5=102,y5=103,_5=104,S5=200,Uf=201,A5=202,E5=203,X1=204,W1=205,T5=206,b5=207,M5=208,C5=209,R5=210,w5=211,D5=212,N5=213,O5=214,Y1=0,Qm=1,q1=2,zu=3,Z1=4,j1=5,K1=6,J1=7,b0=0,I5=1,B5=2,ns=0,U5=1,L5=2,P5=3,C3=4,F5=5,H5=6,z5=7,wE="attached",G5="detached",pc=300,no=301,mc=302,hd=303,$m=304,Pd=306,wi=1e3,Vn=1001,fd=1002,$n=1003,dy=1004,AF=1004,gu=1005,EF=1005,Bt=1006,Kf=1007,TF=1007,Sr=1008,e0=1008,xi=1009,M0=1010,C0=1011,Gu=1012,Fd=1013,ls=1014,Sn=1015,sn=1016,py=1017,my=1018,Vu=1020,R3=35902,w3=35899,D3=1021,N3=1022,Rn=1023,dd=1026,ku=1027,Ar=1028,R0=1029,zo=1030,gy=1031,bF=1032,vy=1033,Em=33776,Tm=33777,bm=33778,Mm=33779,Q1=35840,$1=35841,ex=35842,tx=35843,nx=36196,ix=37492,ax=37496,rx=37808,sx=37809,ox=37810,lx=37811,cx=37812,ux=37813,hx=37814,fx=37815,dx=37816,px=37817,mx=37818,gx=37819,vx=37820,xx=37821,yx=36492,_x=36494,Sx=36495,Ax=36283,Ex=36284,Tx=36285,bx=36286,V5=2200,k5=2201,X5=2202,pd=2300,md=2301,u1=2302,vu=2400,xu=2401,t0=2402,xy=2500,O3=2501,W5=0,I3=1,Mx=2,Sc=3200,Y5=3201,MF=3202,CF=3203,Ac=0,q5=1,pa="",Kn="srgb",Fi="srgb-linear",n0="linear",Un="srgb",RF=0,uu=7680,wF=7681,DF=7682,NF=7683,OF=34055,IF=34056,BF=5386,UF=512,LF=513,PF=514,FF=515,HF=516,zF=517,GF=518,DE=519,Z5=512,j5=513,K5=514,B3=515,J5=516,Q5=517,$5=518,eB=519,i0=35044,VF=35048,kF=35040,XF=35045,WF=35049,YF=35041,qF=35046,ZF=35050,jF=35042,KF="100",cs="300 es",Er=2e3,gd=2001,JF={COMPUTE:"compute",RENDER:"render"},QF={PERSPECTIVE:"perspective",LINEAR:"linear",FLAT:"flat"},$F={NORMAL:"normal",CENTROID:"centroid",SAMPLE:"sample",FIRST:"first",EITHER:"either"};function tB(n){for(let e=n.length-1;e>=0;--e)if(n[e]>=65535)return!0;return!1}const eH={Int8Array,Uint8Array,Uint8ClampedArray,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array};function Lf(n,e){return new eH[n](e)}function a0(n){return document.createElementNS("http://www.w3.org/1999/xhtml",n)}function nB(){const n=a0("canvas");return n.style.display="block",n}const ww={};let gc=null;function tH(n){gc=n}function nH(){return gc}function r0(...n){const e="THREE."+n.shift();gc?gc("log",e,...n):console.log(e,...n)}function _t(...n){const e="THREE."+n.shift();gc?gc("warn",e,...n):console.warn(e,...n)}function qt(...n){const e="THREE."+n.shift();gc?gc("error",e,...n):console.error(e,...n)}function vd(...n){const e=n.join(" ");e in ww||(ww[e]=!0,_t(...n))}function iH(n,e,t){return new Promise(function(i,a){function r(){switch(n.clientWaitSync(e,n.SYNC_FLUSH_COMMANDS_BIT,0)){case n.WAIT_FAILED:a();break;case n.TIMEOUT_EXPIRED:setTimeout(r,t);break;default:i()}}setTimeout(r,t)})}let tr=class{addEventListener(e,t){this._listeners===void 0&&(this._listeners={});const i=this._listeners;i[e]===void 0&&(i[e]=[]),i[e].indexOf(t)===-1&&i[e].push(t)}hasEventListener(e,t){const i=this._listeners;return i===void 0?!1:i[e]!==void 0&&i[e].indexOf(t)!==-1}removeEventListener(e,t){const i=this._listeners;if(i===void 0)return;const a=i[e];if(a!==void 0){const r=a.indexOf(t);r!==-1&&a.splice(r,1)}}dispatchEvent(e){const t=this._listeners;if(t===void 0)return;const i=t[e.type];if(i!==void 0){e.target=this;const a=i.slice(0);for(let r=0,s=a.length;r>8&255]+Sa[n>>16&255]+Sa[n>>24&255]+"-"+Sa[e&255]+Sa[e>>8&255]+"-"+Sa[e>>16&15|64]+Sa[e>>24&255]+"-"+Sa[t&63|128]+Sa[t>>8&255]+"-"+Sa[t>>16&255]+Sa[t>>24&255]+Sa[i&255]+Sa[i>>8&255]+Sa[i>>16&255]+Sa[i>>24&255]).toLowerCase()}function Gt(n,e,t){return Math.max(e,Math.min(t,n))}function U3(n,e){return(n%e+e)%e}function aH(n,e,t,i,a){return i+(n-e)*(a-i)/(t-e)}function rH(n,e,t){return n!==e?(t-n)/(e-n):0}function Cm(n,e,t){return(1-t)*n+t*e}function sH(n,e,t,i){return Cm(n,e,1-Math.exp(-t*i))}function oH(n,e=1){return e-Math.abs(U3(n,e*2)-e)}function lH(n,e,t){return n<=e?0:n>=t?1:(n=(n-e)/(t-e),n*n*(3-2*n))}function cH(n,e,t){return n<=e?0:n>=t?1:(n=(n-e)/(t-e),n*n*n*(n*(n*6-15)+10))}function uH(n,e){return n+Math.floor(Math.random()*(e-n+1))}function hH(n,e){return n+Math.random()*(e-n)}function fH(n){return n*(.5-Math.random())}function dH(n){n!==void 0&&(Dw=n);let e=Dw+=1831565813;return e=Math.imul(e^e>>>15,e|1),e^=e+Math.imul(e^e>>>7,e|61),((e^e>>>14)>>>0)/4294967296}function pH(n){return n*Du}function mH(n){return n*xd}function gH(n){return(n&n-1)===0&&n!==0}function vH(n){return Math.pow(2,Math.ceil(Math.log(n)/Math.LN2))}function xH(n){return Math.pow(2,Math.floor(Math.log(n)/Math.LN2))}function yH(n,e,t,i,a){const r=Math.cos,s=Math.sin,o=r(t/2),c=s(t/2),h=r((e+i)/2),f=s((e+i)/2),d=r((e-i)/2),m=s((e-i)/2),g=r((i-e)/2),y=s((i-e)/2);switch(a){case"XYX":n.set(o*f,c*d,c*m,o*h);break;case"YZY":n.set(c*m,o*f,c*d,o*h);break;case"ZXZ":n.set(c*d,c*m,o*f,o*h);break;case"XZX":n.set(o*f,c*y,c*g,o*h);break;case"YXY":n.set(c*g,o*f,c*y,o*h);break;case"ZYZ":n.set(c*y,c*g,o*f,o*h);break;default:_t("MathUtils: .setQuaternionFromProperEuler() encountered an unknown order: "+a)}}function Ba(n,e){switch(e.constructor){case Float32Array:return n;case Uint32Array:return n/4294967295;case Uint16Array:return n/65535;case Uint8Array:return n/255;case Int32Array:return Math.max(n/2147483647,-1);case Int16Array:return Math.max(n/32767,-1);case Int8Array:return Math.max(n/127,-1);default:throw new Error("Invalid component type.")}}function Jt(n,e){switch(e.constructor){case Float32Array:return n;case Uint32Array:return Math.round(n*4294967295);case Uint16Array:return Math.round(n*65535);case Uint8Array:return Math.round(n*255);case Int32Array:return Math.round(n*2147483647);case Int16Array:return Math.round(n*32767);case Int8Array:return Math.round(n*127);default:throw new Error("Invalid component type.")}}const Nr={DEG2RAD:Du,RAD2DEG:xd,generateUUID:Cr,clamp:Gt,euclideanModulo:U3,mapLinear:aH,inverseLerp:rH,lerp:Cm,damp:sH,pingpong:oH,smoothstep:lH,smootherstep:cH,randInt:uH,randFloat:hH,randFloatSpread:fH,seededRandom:dH,degToRad:pH,radToDeg:mH,isPowerOfTwo:gH,ceilPowerOfTwo:vH,floorPowerOfTwo:xH,setQuaternionFromProperEuler:yH,normalize:Jt,denormalize:Ba};class Ee{constructor(e=0,t=0){Ee.prototype.isVector2=!0,this.x=e,this.y=t}get width(){return this.x}set width(e){this.x=e}get height(){return this.y}set height(e){this.y=e}set(e,t){return this.x=e,this.y=t,this}setScalar(e){return this.x=e,this.y=e,this}setX(e){return this.x=e,this}setY(e){return this.y=e,this}setComponent(e,t){switch(e){case 0:this.x=t;break;case 1:this.y=t;break;default:throw new Error("index is out of range: "+e)}return this}getComponent(e){switch(e){case 0:return this.x;case 1:return this.y;default:throw new Error("index is out of range: "+e)}}clone(){return new this.constructor(this.x,this.y)}copy(e){return this.x=e.x,this.y=e.y,this}add(e){return this.x+=e.x,this.y+=e.y,this}addScalar(e){return this.x+=e,this.y+=e,this}addVectors(e,t){return this.x=e.x+t.x,this.y=e.y+t.y,this}addScaledVector(e,t){return this.x+=e.x*t,this.y+=e.y*t,this}sub(e){return this.x-=e.x,this.y-=e.y,this}subScalar(e){return this.x-=e,this.y-=e,this}subVectors(e,t){return this.x=e.x-t.x,this.y=e.y-t.y,this}multiply(e){return this.x*=e.x,this.y*=e.y,this}multiplyScalar(e){return this.x*=e,this.y*=e,this}divide(e){return this.x/=e.x,this.y/=e.y,this}divideScalar(e){return this.multiplyScalar(1/e)}applyMatrix3(e){const t=this.x,i=this.y,a=e.elements;return this.x=a[0]*t+a[3]*i+a[6],this.y=a[1]*t+a[4]*i+a[7],this}min(e){return this.x=Math.min(this.x,e.x),this.y=Math.min(this.y,e.y),this}max(e){return this.x=Math.max(this.x,e.x),this.y=Math.max(this.y,e.y),this}clamp(e,t){return this.x=Gt(this.x,e.x,t.x),this.y=Gt(this.y,e.y,t.y),this}clampScalar(e,t){return this.x=Gt(this.x,e,t),this.y=Gt(this.y,e,t),this}clampLength(e,t){const i=this.length();return this.divideScalar(i||1).multiplyScalar(Gt(i,e,t))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this}roundToZero(){return this.x=Math.trunc(this.x),this.y=Math.trunc(this.y),this}negate(){return this.x=-this.x,this.y=-this.y,this}dot(e){return this.x*e.x+this.y*e.y}cross(e){return this.x*e.y-this.y*e.x}lengthSq(){return this.x*this.x+this.y*this.y}length(){return Math.sqrt(this.x*this.x+this.y*this.y)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)}normalize(){return this.divideScalar(this.length()||1)}angle(){return Math.atan2(-this.y,-this.x)+Math.PI}angleTo(e){const t=Math.sqrt(this.lengthSq()*e.lengthSq());if(t===0)return Math.PI/2;const i=this.dot(e)/t;return Math.acos(Gt(i,-1,1))}distanceTo(e){return Math.sqrt(this.distanceToSquared(e))}distanceToSquared(e){const t=this.x-e.x,i=this.y-e.y;return t*t+i*i}manhattanDistanceTo(e){return Math.abs(this.x-e.x)+Math.abs(this.y-e.y)}setLength(e){return this.normalize().multiplyScalar(e)}lerp(e,t){return this.x+=(e.x-this.x)*t,this.y+=(e.y-this.y)*t,this}lerpVectors(e,t,i){return this.x=e.x+(t.x-e.x)*i,this.y=e.y+(t.y-e.y)*i,this}equals(e){return e.x===this.x&&e.y===this.y}fromArray(e,t=0){return this.x=e[t],this.y=e[t+1],this}toArray(e=[],t=0){return e[t]=this.x,e[t+1]=this.y,e}fromBufferAttribute(e,t){return this.x=e.getX(t),this.y=e.getY(t),this}rotateAround(e,t){const i=Math.cos(t),a=Math.sin(t),r=this.x-e.x,s=this.y-e.y;return this.x=r*i-s*a+e.x,this.y=r*a+s*i+e.y,this}random(){return this.x=Math.random(),this.y=Math.random(),this}*[Symbol.iterator](){yield this.x,yield this.y}}class Yi{constructor(e=0,t=0,i=0,a=1){this.isQuaternion=!0,this._x=e,this._y=t,this._z=i,this._w=a}static slerpFlat(e,t,i,a,r,s,o){let c=i[a+0],h=i[a+1],f=i[a+2],d=i[a+3],m=r[s+0],g=r[s+1],y=r[s+2],E=r[s+3];if(o<=0){e[t+0]=c,e[t+1]=h,e[t+2]=f,e[t+3]=d;return}if(o>=1){e[t+0]=m,e[t+1]=g,e[t+2]=y,e[t+3]=E;return}if(d!==E||c!==m||h!==g||f!==y){let S=c*m+h*g+f*y+d*E;S<0&&(m=-m,g=-g,y=-y,E=-E,S=-S);let v=1-o;if(S<.9995){const _=Math.acos(S),A=Math.sin(_);v=Math.sin(v*_)/A,o=Math.sin(o*_)/A,c=c*v+m*o,h=h*v+g*o,f=f*v+y*o,d=d*v+E*o}else{c=c*v+m*o,h=h*v+g*o,f=f*v+y*o,d=d*v+E*o;const _=1/Math.sqrt(c*c+h*h+f*f+d*d);c*=_,h*=_,f*=_,d*=_}}e[t]=c,e[t+1]=h,e[t+2]=f,e[t+3]=d}static multiplyQuaternionsFlat(e,t,i,a,r,s){const o=i[a],c=i[a+1],h=i[a+2],f=i[a+3],d=r[s],m=r[s+1],g=r[s+2],y=r[s+3];return e[t]=o*y+f*d+c*g-h*m,e[t+1]=c*y+f*m+h*d-o*g,e[t+2]=h*y+f*g+o*m-c*d,e[t+3]=f*y-o*d-c*m-h*g,e}get x(){return this._x}set x(e){this._x=e,this._onChangeCallback()}get y(){return this._y}set y(e){this._y=e,this._onChangeCallback()}get z(){return this._z}set z(e){this._z=e,this._onChangeCallback()}get w(){return this._w}set w(e){this._w=e,this._onChangeCallback()}set(e,t,i,a){return this._x=e,this._y=t,this._z=i,this._w=a,this._onChangeCallback(),this}clone(){return new this.constructor(this._x,this._y,this._z,this._w)}copy(e){return this._x=e.x,this._y=e.y,this._z=e.z,this._w=e.w,this._onChangeCallback(),this}setFromEuler(e,t=!0){const i=e._x,a=e._y,r=e._z,s=e._order,o=Math.cos,c=Math.sin,h=o(i/2),f=o(a/2),d=o(r/2),m=c(i/2),g=c(a/2),y=c(r/2);switch(s){case"XYZ":this._x=m*f*d+h*g*y,this._y=h*g*d-m*f*y,this._z=h*f*y+m*g*d,this._w=h*f*d-m*g*y;break;case"YXZ":this._x=m*f*d+h*g*y,this._y=h*g*d-m*f*y,this._z=h*f*y-m*g*d,this._w=h*f*d+m*g*y;break;case"ZXY":this._x=m*f*d-h*g*y,this._y=h*g*d+m*f*y,this._z=h*f*y+m*g*d,this._w=h*f*d-m*g*y;break;case"ZYX":this._x=m*f*d-h*g*y,this._y=h*g*d+m*f*y,this._z=h*f*y-m*g*d,this._w=h*f*d+m*g*y;break;case"YZX":this._x=m*f*d+h*g*y,this._y=h*g*d+m*f*y,this._z=h*f*y-m*g*d,this._w=h*f*d-m*g*y;break;case"XZY":this._x=m*f*d-h*g*y,this._y=h*g*d-m*f*y,this._z=h*f*y+m*g*d,this._w=h*f*d+m*g*y;break;default:_t("Quaternion: .setFromEuler() encountered an unknown order: "+s)}return t===!0&&this._onChangeCallback(),this}setFromAxisAngle(e,t){const i=t/2,a=Math.sin(i);return this._x=e.x*a,this._y=e.y*a,this._z=e.z*a,this._w=Math.cos(i),this._onChangeCallback(),this}setFromRotationMatrix(e){const t=e.elements,i=t[0],a=t[4],r=t[8],s=t[1],o=t[5],c=t[9],h=t[2],f=t[6],d=t[10],m=i+o+d;if(m>0){const g=.5/Math.sqrt(m+1);this._w=.25/g,this._x=(f-c)*g,this._y=(r-h)*g,this._z=(s-a)*g}else if(i>o&&i>d){const g=2*Math.sqrt(1+i-o-d);this._w=(f-c)/g,this._x=.25*g,this._y=(a+s)/g,this._z=(r+h)/g}else if(o>d){const g=2*Math.sqrt(1+o-i-d);this._w=(r-h)/g,this._x=(a+s)/g,this._y=.25*g,this._z=(c+f)/g}else{const g=2*Math.sqrt(1+d-i-o);this._w=(s-a)/g,this._x=(r+h)/g,this._y=(c+f)/g,this._z=.25*g}return this._onChangeCallback(),this}setFromUnitVectors(e,t){let i=e.dot(t)+1;return i<1e-8?(i=0,Math.abs(e.x)>Math.abs(e.z)?(this._x=-e.y,this._y=e.x,this._z=0,this._w=i):(this._x=0,this._y=-e.z,this._z=e.y,this._w=i)):(this._x=e.y*t.z-e.z*t.y,this._y=e.z*t.x-e.x*t.z,this._z=e.x*t.y-e.y*t.x,this._w=i),this.normalize()}angleTo(e){return 2*Math.acos(Math.abs(Gt(this.dot(e),-1,1)))}rotateTowards(e,t){const i=this.angleTo(e);if(i===0)return this;const a=Math.min(1,t/i);return this.slerp(e,a),this}identity(){return this.set(0,0,0,1)}invert(){return this.conjugate()}conjugate(){return this._x*=-1,this._y*=-1,this._z*=-1,this._onChangeCallback(),this}dot(e){return this._x*e._x+this._y*e._y+this._z*e._z+this._w*e._w}lengthSq(){return this._x*this._x+this._y*this._y+this._z*this._z+this._w*this._w}length(){return Math.sqrt(this._x*this._x+this._y*this._y+this._z*this._z+this._w*this._w)}normalize(){let e=this.length();return e===0?(this._x=0,this._y=0,this._z=0,this._w=1):(e=1/e,this._x=this._x*e,this._y=this._y*e,this._z=this._z*e,this._w=this._w*e),this._onChangeCallback(),this}multiply(e){return this.multiplyQuaternions(this,e)}premultiply(e){return this.multiplyQuaternions(e,this)}multiplyQuaternions(e,t){const i=e._x,a=e._y,r=e._z,s=e._w,o=t._x,c=t._y,h=t._z,f=t._w;return this._x=i*f+s*o+a*h-r*c,this._y=a*f+s*c+r*o-i*h,this._z=r*f+s*h+i*c-a*o,this._w=s*f-i*o-a*c-r*h,this._onChangeCallback(),this}slerp(e,t){if(t<=0)return this;if(t>=1)return this.copy(e);let i=e._x,a=e._y,r=e._z,s=e._w,o=this.dot(e);o<0&&(i=-i,a=-a,r=-r,s=-s,o=-o);let c=1-t;if(o<.9995){const h=Math.acos(o),f=Math.sin(h);c=Math.sin(c*h)/f,t=Math.sin(t*h)/f,this._x=this._x*c+i*t,this._y=this._y*c+a*t,this._z=this._z*c+r*t,this._w=this._w*c+s*t,this._onChangeCallback()}else this._x=this._x*c+i*t,this._y=this._y*c+a*t,this._z=this._z*c+r*t,this._w=this._w*c+s*t,this.normalize();return this}slerpQuaternions(e,t,i){return this.copy(e).slerp(t,i)}random(){const e=2*Math.PI*Math.random(),t=2*Math.PI*Math.random(),i=Math.random(),a=Math.sqrt(1-i),r=Math.sqrt(i);return this.set(a*Math.sin(e),a*Math.cos(e),r*Math.sin(t),r*Math.cos(t))}equals(e){return e._x===this._x&&e._y===this._y&&e._z===this._z&&e._w===this._w}fromArray(e,t=0){return this._x=e[t],this._y=e[t+1],this._z=e[t+2],this._w=e[t+3],this._onChangeCallback(),this}toArray(e=[],t=0){return e[t]=this._x,e[t+1]=this._y,e[t+2]=this._z,e[t+3]=this._w,e}fromBufferAttribute(e,t){return this._x=e.getX(t),this._y=e.getY(t),this._z=e.getZ(t),this._w=e.getW(t),this._onChangeCallback(),this}toJSON(){return this.toArray()}_onChange(e){return this._onChangeCallback=e,this}_onChangeCallback(){}*[Symbol.iterator](){yield this._x,yield this._y,yield this._z,yield this._w}}class H{constructor(e=0,t=0,i=0){H.prototype.isVector3=!0,this.x=e,this.y=t,this.z=i}set(e,t,i){return i===void 0&&(i=this.z),this.x=e,this.y=t,this.z=i,this}setScalar(e){return this.x=e,this.y=e,this.z=e,this}setX(e){return this.x=e,this}setY(e){return this.y=e,this}setZ(e){return this.z=e,this}setComponent(e,t){switch(e){case 0:this.x=t;break;case 1:this.y=t;break;case 2:this.z=t;break;default:throw new Error("index is out of range: "+e)}return this}getComponent(e){switch(e){case 0:return this.x;case 1:return this.y;case 2:return this.z;default:throw new Error("index is out of range: "+e)}}clone(){return new this.constructor(this.x,this.y,this.z)}copy(e){return this.x=e.x,this.y=e.y,this.z=e.z,this}add(e){return this.x+=e.x,this.y+=e.y,this.z+=e.z,this}addScalar(e){return this.x+=e,this.y+=e,this.z+=e,this}addVectors(e,t){return this.x=e.x+t.x,this.y=e.y+t.y,this.z=e.z+t.z,this}addScaledVector(e,t){return this.x+=e.x*t,this.y+=e.y*t,this.z+=e.z*t,this}sub(e){return this.x-=e.x,this.y-=e.y,this.z-=e.z,this}subScalar(e){return this.x-=e,this.y-=e,this.z-=e,this}subVectors(e,t){return this.x=e.x-t.x,this.y=e.y-t.y,this.z=e.z-t.z,this}multiply(e){return this.x*=e.x,this.y*=e.y,this.z*=e.z,this}multiplyScalar(e){return this.x*=e,this.y*=e,this.z*=e,this}multiplyVectors(e,t){return this.x=e.x*t.x,this.y=e.y*t.y,this.z=e.z*t.z,this}applyEuler(e){return this.applyQuaternion(Nw.setFromEuler(e))}applyAxisAngle(e,t){return this.applyQuaternion(Nw.setFromAxisAngle(e,t))}applyMatrix3(e){const t=this.x,i=this.y,a=this.z,r=e.elements;return this.x=r[0]*t+r[3]*i+r[6]*a,this.y=r[1]*t+r[4]*i+r[7]*a,this.z=r[2]*t+r[5]*i+r[8]*a,this}applyNormalMatrix(e){return this.applyMatrix3(e).normalize()}applyMatrix4(e){const t=this.x,i=this.y,a=this.z,r=e.elements,s=1/(r[3]*t+r[7]*i+r[11]*a+r[15]);return this.x=(r[0]*t+r[4]*i+r[8]*a+r[12])*s,this.y=(r[1]*t+r[5]*i+r[9]*a+r[13])*s,this.z=(r[2]*t+r[6]*i+r[10]*a+r[14])*s,this}applyQuaternion(e){const t=this.x,i=this.y,a=this.z,r=e.x,s=e.y,o=e.z,c=e.w,h=2*(s*a-o*i),f=2*(o*t-r*a),d=2*(r*i-s*t);return this.x=t+c*h+s*d-o*f,this.y=i+c*f+o*h-r*d,this.z=a+c*d+r*f-s*h,this}project(e){return this.applyMatrix4(e.matrixWorldInverse).applyMatrix4(e.projectionMatrix)}unproject(e){return this.applyMatrix4(e.projectionMatrixInverse).applyMatrix4(e.matrixWorld)}transformDirection(e){const t=this.x,i=this.y,a=this.z,r=e.elements;return this.x=r[0]*t+r[4]*i+r[8]*a,this.y=r[1]*t+r[5]*i+r[9]*a,this.z=r[2]*t+r[6]*i+r[10]*a,this.normalize()}divide(e){return this.x/=e.x,this.y/=e.y,this.z/=e.z,this}divideScalar(e){return this.multiplyScalar(1/e)}min(e){return this.x=Math.min(this.x,e.x),this.y=Math.min(this.y,e.y),this.z=Math.min(this.z,e.z),this}max(e){return this.x=Math.max(this.x,e.x),this.y=Math.max(this.y,e.y),this.z=Math.max(this.z,e.z),this}clamp(e,t){return this.x=Gt(this.x,e.x,t.x),this.y=Gt(this.y,e.y,t.y),this.z=Gt(this.z,e.z,t.z),this}clampScalar(e,t){return this.x=Gt(this.x,e,t),this.y=Gt(this.y,e,t),this.z=Gt(this.z,e,t),this}clampLength(e,t){const i=this.length();return this.divideScalar(i||1).multiplyScalar(Gt(i,e,t))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this.z=Math.floor(this.z),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this.z=Math.ceil(this.z),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this.z=Math.round(this.z),this}roundToZero(){return this.x=Math.trunc(this.x),this.y=Math.trunc(this.y),this.z=Math.trunc(this.z),this}negate(){return this.x=-this.x,this.y=-this.y,this.z=-this.z,this}dot(e){return this.x*e.x+this.y*e.y+this.z*e.z}lengthSq(){return this.x*this.x+this.y*this.y+this.z*this.z}length(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)+Math.abs(this.z)}normalize(){return this.divideScalar(this.length()||1)}setLength(e){return this.normalize().multiplyScalar(e)}lerp(e,t){return this.x+=(e.x-this.x)*t,this.y+=(e.y-this.y)*t,this.z+=(e.z-this.z)*t,this}lerpVectors(e,t,i){return this.x=e.x+(t.x-e.x)*i,this.y=e.y+(t.y-e.y)*i,this.z=e.z+(t.z-e.z)*i,this}cross(e){return this.crossVectors(this,e)}crossVectors(e,t){const i=e.x,a=e.y,r=e.z,s=t.x,o=t.y,c=t.z;return this.x=a*c-r*o,this.y=r*s-i*c,this.z=i*o-a*s,this}projectOnVector(e){const t=e.lengthSq();if(t===0)return this.set(0,0,0);const i=e.dot(this)/t;return this.copy(e).multiplyScalar(i)}projectOnPlane(e){return dA.copy(this).projectOnVector(e),this.sub(dA)}reflect(e){return this.sub(dA.copy(e).multiplyScalar(2*this.dot(e)))}angleTo(e){const t=Math.sqrt(this.lengthSq()*e.lengthSq());if(t===0)return Math.PI/2;const i=this.dot(e)/t;return Math.acos(Gt(i,-1,1))}distanceTo(e){return Math.sqrt(this.distanceToSquared(e))}distanceToSquared(e){const t=this.x-e.x,i=this.y-e.y,a=this.z-e.z;return t*t+i*i+a*a}manhattanDistanceTo(e){return Math.abs(this.x-e.x)+Math.abs(this.y-e.y)+Math.abs(this.z-e.z)}setFromSpherical(e){return this.setFromSphericalCoords(e.radius,e.phi,e.theta)}setFromSphericalCoords(e,t,i){const a=Math.sin(t)*e;return this.x=a*Math.sin(i),this.y=Math.cos(t)*e,this.z=a*Math.cos(i),this}setFromCylindrical(e){return this.setFromCylindricalCoords(e.radius,e.theta,e.y)}setFromCylindricalCoords(e,t,i){return this.x=e*Math.sin(t),this.y=i,this.z=e*Math.cos(t),this}setFromMatrixPosition(e){const t=e.elements;return this.x=t[12],this.y=t[13],this.z=t[14],this}setFromMatrixScale(e){const t=this.setFromMatrixColumn(e,0).length(),i=this.setFromMatrixColumn(e,1).length(),a=this.setFromMatrixColumn(e,2).length();return this.x=t,this.y=i,this.z=a,this}setFromMatrixColumn(e,t){return this.fromArray(e.elements,t*4)}setFromMatrix3Column(e,t){return this.fromArray(e.elements,t*3)}setFromEuler(e){return this.x=e._x,this.y=e._y,this.z=e._z,this}setFromColor(e){return this.x=e.r,this.y=e.g,this.z=e.b,this}equals(e){return e.x===this.x&&e.y===this.y&&e.z===this.z}fromArray(e,t=0){return this.x=e[t],this.y=e[t+1],this.z=e[t+2],this}toArray(e=[],t=0){return e[t]=this.x,e[t+1]=this.y,e[t+2]=this.z,e}fromBufferAttribute(e,t){return this.x=e.getX(t),this.y=e.getY(t),this.z=e.getZ(t),this}random(){return this.x=Math.random(),this.y=Math.random(),this.z=Math.random(),this}randomDirection(){const e=Math.random()*Math.PI*2,t=Math.random()*2-1,i=Math.sqrt(1-t*t);return this.x=i*Math.cos(e),this.y=t,this.z=i*Math.sin(e),this}*[Symbol.iterator](){yield this.x,yield this.y,yield this.z}}const dA=new H,Nw=new Yi;class kt{constructor(e,t,i,a,r,s,o,c,h){kt.prototype.isMatrix3=!0,this.elements=[1,0,0,0,1,0,0,0,1],e!==void 0&&this.set(e,t,i,a,r,s,o,c,h)}set(e,t,i,a,r,s,o,c,h){const f=this.elements;return f[0]=e,f[1]=a,f[2]=o,f[3]=t,f[4]=r,f[5]=c,f[6]=i,f[7]=s,f[8]=h,this}identity(){return this.set(1,0,0,0,1,0,0,0,1),this}copy(e){const t=this.elements,i=e.elements;return t[0]=i[0],t[1]=i[1],t[2]=i[2],t[3]=i[3],t[4]=i[4],t[5]=i[5],t[6]=i[6],t[7]=i[7],t[8]=i[8],this}extractBasis(e,t,i){return e.setFromMatrix3Column(this,0),t.setFromMatrix3Column(this,1),i.setFromMatrix3Column(this,2),this}setFromMatrix4(e){const t=e.elements;return this.set(t[0],t[4],t[8],t[1],t[5],t[9],t[2],t[6],t[10]),this}multiply(e){return this.multiplyMatrices(this,e)}premultiply(e){return this.multiplyMatrices(e,this)}multiplyMatrices(e,t){const i=e.elements,a=t.elements,r=this.elements,s=i[0],o=i[3],c=i[6],h=i[1],f=i[4],d=i[7],m=i[2],g=i[5],y=i[8],E=a[0],S=a[3],v=a[6],_=a[1],A=a[4],b=a[7],O=a[2],N=a[5],L=a[8];return r[0]=s*E+o*_+c*O,r[3]=s*S+o*A+c*N,r[6]=s*v+o*b+c*L,r[1]=h*E+f*_+d*O,r[4]=h*S+f*A+d*N,r[7]=h*v+f*b+d*L,r[2]=m*E+g*_+y*O,r[5]=m*S+g*A+y*N,r[8]=m*v+g*b+y*L,this}multiplyScalar(e){const t=this.elements;return t[0]*=e,t[3]*=e,t[6]*=e,t[1]*=e,t[4]*=e,t[7]*=e,t[2]*=e,t[5]*=e,t[8]*=e,this}determinant(){const e=this.elements,t=e[0],i=e[1],a=e[2],r=e[3],s=e[4],o=e[5],c=e[6],h=e[7],f=e[8];return t*s*f-t*o*h-i*r*f+i*o*c+a*r*h-a*s*c}invert(){const e=this.elements,t=e[0],i=e[1],a=e[2],r=e[3],s=e[4],o=e[5],c=e[6],h=e[7],f=e[8],d=f*s-o*h,m=o*c-f*r,g=h*r-s*c,y=t*d+i*m+a*g;if(y===0)return this.set(0,0,0,0,0,0,0,0,0);const E=1/y;return e[0]=d*E,e[1]=(a*h-f*i)*E,e[2]=(o*i-a*s)*E,e[3]=m*E,e[4]=(f*t-a*c)*E,e[5]=(a*r-o*t)*E,e[6]=g*E,e[7]=(i*c-h*t)*E,e[8]=(s*t-i*r)*E,this}transpose(){let e;const t=this.elements;return e=t[1],t[1]=t[3],t[3]=e,e=t[2],t[2]=t[6],t[6]=e,e=t[5],t[5]=t[7],t[7]=e,this}getNormalMatrix(e){return this.setFromMatrix4(e).invert().transpose()}transposeIntoArray(e){const t=this.elements;return e[0]=t[0],e[1]=t[3],e[2]=t[6],e[3]=t[1],e[4]=t[4],e[5]=t[7],e[6]=t[2],e[7]=t[5],e[8]=t[8],this}setUvTransform(e,t,i,a,r,s,o){const c=Math.cos(r),h=Math.sin(r);return this.set(i*c,i*h,-i*(c*s+h*o)+s+e,-a*h,a*c,-a*(-h*s+c*o)+o+t,0,0,1),this}scale(e,t){return this.premultiply(pA.makeScale(e,t)),this}rotate(e){return this.premultiply(pA.makeRotation(-e)),this}translate(e,t){return this.premultiply(pA.makeTranslation(e,t)),this}makeTranslation(e,t){return e.isVector2?this.set(1,0,e.x,0,1,e.y,0,0,1):this.set(1,0,e,0,1,t,0,0,1),this}makeRotation(e){const t=Math.cos(e),i=Math.sin(e);return this.set(t,-i,0,i,t,0,0,0,1),this}makeScale(e,t){return this.set(e,0,0,0,t,0,0,0,1),this}equals(e){const t=this.elements,i=e.elements;for(let a=0;a<9;a++)if(t[a]!==i[a])return!1;return!0}fromArray(e,t=0){for(let i=0;i<9;i++)this.elements[i]=e[i+t];return this}toArray(e=[],t=0){const i=this.elements;return e[t]=i[0],e[t+1]=i[1],e[t+2]=i[2],e[t+3]=i[3],e[t+4]=i[4],e[t+5]=i[5],e[t+6]=i[6],e[t+7]=i[7],e[t+8]=i[8],e}clone(){return new this.constructor().fromArray(this.elements)}}const pA=new kt,Ow=new kt().set(.4123908,.3575843,.1804808,.212639,.7151687,.0721923,.0193308,.1191948,.9505322),Iw=new kt().set(3.2409699,-1.5373832,-.4986108,-.9692436,1.8759675,.0415551,.0556301,-.203977,1.0569715);function _H(){const n={enabled:!0,workingColorSpace:Fi,spaces:{},convert:function(a,r,s){return this.enabled===!1||r===s||!r||!s||(this.spaces[r].transfer===Un&&(a.r=Jo(a.r),a.g=Jo(a.g),a.b=Jo(a.b)),this.spaces[r].primaries!==this.spaces[s].primaries&&(a.applyMatrix3(this.spaces[r].toXYZ),a.applyMatrix3(this.spaces[s].fromXYZ)),this.spaces[s].transfer===Un&&(a.r=Jf(a.r),a.g=Jf(a.g),a.b=Jf(a.b))),a},workingToColorSpace:function(a,r){return this.convert(a,this.workingColorSpace,r)},colorSpaceToWorking:function(a,r){return this.convert(a,r,this.workingColorSpace)},getPrimaries:function(a){return this.spaces[a].primaries},getTransfer:function(a){return a===pa?n0:this.spaces[a].transfer},getToneMappingMode:function(a){return this.spaces[a].outputColorSpaceConfig.toneMappingMode||"standard"},getLuminanceCoefficients:function(a,r=this.workingColorSpace){return a.fromArray(this.spaces[r].luminanceCoefficients)},define:function(a){Object.assign(this.spaces,a)},_getMatrix:function(a,r,s){return a.copy(this.spaces[r].toXYZ).multiply(this.spaces[s].fromXYZ)},_getDrawingBufferColorSpace:function(a){return this.spaces[a].outputColorSpaceConfig.drawingBufferColorSpace},_getUnpackColorSpace:function(a=this.workingColorSpace){return this.spaces[a].workingColorSpaceConfig.unpackColorSpace},fromWorkingColorSpace:function(a,r){return vd("ColorManagement: .fromWorkingColorSpace() has been renamed to .workingToColorSpace()."),n.workingToColorSpace(a,r)},toWorkingColorSpace:function(a,r){return vd("ColorManagement: .toWorkingColorSpace() has been renamed to .colorSpaceToWorking()."),n.colorSpaceToWorking(a,r)}},e=[.64,.33,.3,.6,.15,.06],t=[.2126,.7152,.0722],i=[.3127,.329];return n.define({[Fi]:{primaries:e,whitePoint:i,transfer:n0,toXYZ:Ow,fromXYZ:Iw,luminanceCoefficients:t,workingColorSpaceConfig:{unpackColorSpace:Kn},outputColorSpaceConfig:{drawingBufferColorSpace:Kn}},[Kn]:{primaries:e,whitePoint:i,transfer:Un,toXYZ:Ow,fromXYZ:Iw,luminanceCoefficients:t,outputColorSpaceConfig:{drawingBufferColorSpace:Kn}}}),n}const gn=_H();function Jo(n){return n<.04045?n*.0773993808:Math.pow(n*.9478672986+.0521327014,2.4)}function Jf(n){return n<.0031308?n*12.92:1.055*Math.pow(n,.41666)-.055}let Vh;class iB{static getDataURL(e,t="image/png"){if(/^data:/i.test(e.src)||typeof HTMLCanvasElement>"u")return e.src;let i;if(e instanceof HTMLCanvasElement)i=e;else{Vh===void 0&&(Vh=a0("canvas")),Vh.width=e.width,Vh.height=e.height;const a=Vh.getContext("2d");e instanceof ImageData?a.putImageData(e,0,0):a.drawImage(e,0,0,e.width,e.height),i=Vh}return i.toDataURL(t)}static sRGBToLinear(e){if(typeof HTMLImageElement<"u"&&e instanceof HTMLImageElement||typeof HTMLCanvasElement<"u"&&e instanceof HTMLCanvasElement||typeof ImageBitmap<"u"&&e instanceof ImageBitmap){const t=a0("canvas");t.width=e.width,t.height=e.height;const i=t.getContext("2d");i.drawImage(e,0,0,e.width,e.height);const a=i.getImageData(0,0,e.width,e.height),r=a.data;for(let s=0;s1),this.pmremVersion=0}get width(){return this.source.getSize(gA).x}get height(){return this.source.getSize(gA).y}get depth(){return this.source.getSize(gA).z}get image(){return this.source.data}set image(e=null){this.source.data=e}updateMatrix(){this.matrix.setUvTransform(this.offset.x,this.offset.y,this.repeat.x,this.repeat.y,this.rotation,this.center.x,this.center.y)}addUpdateRange(e,t){this.updateRanges.push({start:e,count:t})}clearUpdateRanges(){this.updateRanges.length=0}clone(){return new this.constructor().copy(this)}copy(e){return this.name=e.name,this.source=e.source,this.mipmaps=e.mipmaps.slice(0),this.mapping=e.mapping,this.channel=e.channel,this.wrapS=e.wrapS,this.wrapT=e.wrapT,this.magFilter=e.magFilter,this.minFilter=e.minFilter,this.anisotropy=e.anisotropy,this.format=e.format,this.internalFormat=e.internalFormat,this.type=e.type,this.offset.copy(e.offset),this.repeat.copy(e.repeat),this.center.copy(e.center),this.rotation=e.rotation,this.matrixAutoUpdate=e.matrixAutoUpdate,this.matrix.copy(e.matrix),this.generateMipmaps=e.generateMipmaps,this.premultiplyAlpha=e.premultiplyAlpha,this.flipY=e.flipY,this.unpackAlignment=e.unpackAlignment,this.colorSpace=e.colorSpace,this.renderTarget=e.renderTarget,this.isRenderTargetTexture=e.isRenderTargetTexture,this.isArrayTexture=e.isArrayTexture,this.userData=JSON.parse(JSON.stringify(e.userData)),this.needsUpdate=!0,this}setValues(e){for(const t in e){const i=e[t];if(i===void 0){_t(`Texture.setValues(): parameter '${t}' has value of undefined.`);continue}const a=this[t];if(a===void 0){_t(`Texture.setValues(): property '${t}' does not exist.`);continue}a&&i&&a.isVector2&&i.isVector2||a&&i&&a.isVector3&&i.isVector3||a&&i&&a.isMatrix3&&i.isMatrix3?a.copy(i):this[t]=i}}toJSON(e){const t=e===void 0||typeof e=="string";if(!t&&e.textures[this.uuid]!==void 0)return e.textures[this.uuid];const i={metadata:{version:4.7,type:"Texture",generator:"Texture.toJSON"},uuid:this.uuid,name:this.name,image:this.source.toJSON(e).uuid,mapping:this.mapping,channel:this.channel,repeat:[this.repeat.x,this.repeat.y],offset:[this.offset.x,this.offset.y],center:[this.center.x,this.center.y],rotation:this.rotation,wrap:[this.wrapS,this.wrapT],format:this.format,internalFormat:this.internalFormat,type:this.type,colorSpace:this.colorSpace,minFilter:this.minFilter,magFilter:this.magFilter,anisotropy:this.anisotropy,flipY:this.flipY,generateMipmaps:this.generateMipmaps,premultiplyAlpha:this.premultiplyAlpha,unpackAlignment:this.unpackAlignment};return Object.keys(this.userData).length>0&&(i.userData=this.userData),t||(e.textures[this.uuid]=i),i}dispose(){this.dispatchEvent({type:"dispose"})}transformUv(e){if(this.mapping!==pc)return e;if(e.applyMatrix3(this.matrix),e.x<0||e.x>1)switch(this.wrapS){case wi:e.x=e.x-Math.floor(e.x);break;case Vn:e.x=e.x<0?0:1;break;case fd:Math.abs(Math.floor(e.x)%2)===1?e.x=Math.ceil(e.x)-e.x:e.x=e.x-Math.floor(e.x);break}if(e.y<0||e.y>1)switch(this.wrapT){case wi:e.y=e.y-Math.floor(e.y);break;case Vn:e.y=e.y<0?0:1;break;case fd:Math.abs(Math.floor(e.y)%2)===1?e.y=Math.ceil(e.y)-e.y:e.y=e.y-Math.floor(e.y);break}return this.flipY&&(e.y=1-e.y),e}set needsUpdate(e){e===!0&&(this.version++,this.source.needsUpdate=!0)}set needsPMREMUpdate(e){e===!0&&this.pmremVersion++}}vn.DEFAULT_IMAGE=null;vn.DEFAULT_MAPPING=pc;vn.DEFAULT_ANISOTROPY=1;class Yt{constructor(e=0,t=0,i=0,a=1){Yt.prototype.isVector4=!0,this.x=e,this.y=t,this.z=i,this.w=a}get width(){return this.z}set width(e){this.z=e}get height(){return this.w}set height(e){this.w=e}set(e,t,i,a){return this.x=e,this.y=t,this.z=i,this.w=a,this}setScalar(e){return this.x=e,this.y=e,this.z=e,this.w=e,this}setX(e){return this.x=e,this}setY(e){return this.y=e,this}setZ(e){return this.z=e,this}setW(e){return this.w=e,this}setComponent(e,t){switch(e){case 0:this.x=t;break;case 1:this.y=t;break;case 2:this.z=t;break;case 3:this.w=t;break;default:throw new Error("index is out of range: "+e)}return this}getComponent(e){switch(e){case 0:return this.x;case 1:return this.y;case 2:return this.z;case 3:return this.w;default:throw new Error("index is out of range: "+e)}}clone(){return new this.constructor(this.x,this.y,this.z,this.w)}copy(e){return this.x=e.x,this.y=e.y,this.z=e.z,this.w=e.w!==void 0?e.w:1,this}add(e){return this.x+=e.x,this.y+=e.y,this.z+=e.z,this.w+=e.w,this}addScalar(e){return this.x+=e,this.y+=e,this.z+=e,this.w+=e,this}addVectors(e,t){return this.x=e.x+t.x,this.y=e.y+t.y,this.z=e.z+t.z,this.w=e.w+t.w,this}addScaledVector(e,t){return this.x+=e.x*t,this.y+=e.y*t,this.z+=e.z*t,this.w+=e.w*t,this}sub(e){return this.x-=e.x,this.y-=e.y,this.z-=e.z,this.w-=e.w,this}subScalar(e){return this.x-=e,this.y-=e,this.z-=e,this.w-=e,this}subVectors(e,t){return this.x=e.x-t.x,this.y=e.y-t.y,this.z=e.z-t.z,this.w=e.w-t.w,this}multiply(e){return this.x*=e.x,this.y*=e.y,this.z*=e.z,this.w*=e.w,this}multiplyScalar(e){return this.x*=e,this.y*=e,this.z*=e,this.w*=e,this}applyMatrix4(e){const t=this.x,i=this.y,a=this.z,r=this.w,s=e.elements;return this.x=s[0]*t+s[4]*i+s[8]*a+s[12]*r,this.y=s[1]*t+s[5]*i+s[9]*a+s[13]*r,this.z=s[2]*t+s[6]*i+s[10]*a+s[14]*r,this.w=s[3]*t+s[7]*i+s[11]*a+s[15]*r,this}divide(e){return this.x/=e.x,this.y/=e.y,this.z/=e.z,this.w/=e.w,this}divideScalar(e){return this.multiplyScalar(1/e)}setAxisAngleFromQuaternion(e){this.w=2*Math.acos(e.w);const t=Math.sqrt(1-e.w*e.w);return t<1e-4?(this.x=1,this.y=0,this.z=0):(this.x=e.x/t,this.y=e.y/t,this.z=e.z/t),this}setAxisAngleFromRotationMatrix(e){let t,i,a,r;const c=e.elements,h=c[0],f=c[4],d=c[8],m=c[1],g=c[5],y=c[9],E=c[2],S=c[6],v=c[10];if(Math.abs(f-m)<.01&&Math.abs(d-E)<.01&&Math.abs(y-S)<.01){if(Math.abs(f+m)<.1&&Math.abs(d+E)<.1&&Math.abs(y+S)<.1&&Math.abs(h+g+v-3)<.1)return this.set(1,0,0,0),this;t=Math.PI;const A=(h+1)/2,b=(g+1)/2,O=(v+1)/2,N=(f+m)/4,L=(d+E)/4,B=(y+S)/4;return A>b&&A>O?A<.01?(i=0,a=.707106781,r=.707106781):(i=Math.sqrt(A),a=N/i,r=L/i):b>O?b<.01?(i=.707106781,a=0,r=.707106781):(a=Math.sqrt(b),i=N/a,r=B/a):O<.01?(i=.707106781,a=.707106781,r=0):(r=Math.sqrt(O),i=L/r,a=B/r),this.set(i,a,r,t),this}let _=Math.sqrt((S-y)*(S-y)+(d-E)*(d-E)+(m-f)*(m-f));return Math.abs(_)<.001&&(_=1),this.x=(S-y)/_,this.y=(d-E)/_,this.z=(m-f)/_,this.w=Math.acos((h+g+v-1)/2),this}setFromMatrixPosition(e){const t=e.elements;return this.x=t[12],this.y=t[13],this.z=t[14],this.w=t[15],this}min(e){return this.x=Math.min(this.x,e.x),this.y=Math.min(this.y,e.y),this.z=Math.min(this.z,e.z),this.w=Math.min(this.w,e.w),this}max(e){return this.x=Math.max(this.x,e.x),this.y=Math.max(this.y,e.y),this.z=Math.max(this.z,e.z),this.w=Math.max(this.w,e.w),this}clamp(e,t){return this.x=Gt(this.x,e.x,t.x),this.y=Gt(this.y,e.y,t.y),this.z=Gt(this.z,e.z,t.z),this.w=Gt(this.w,e.w,t.w),this}clampScalar(e,t){return this.x=Gt(this.x,e,t),this.y=Gt(this.y,e,t),this.z=Gt(this.z,e,t),this.w=Gt(this.w,e,t),this}clampLength(e,t){const i=this.length();return this.divideScalar(i||1).multiplyScalar(Gt(i,e,t))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this.z=Math.floor(this.z),this.w=Math.floor(this.w),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this.z=Math.ceil(this.z),this.w=Math.ceil(this.w),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this.z=Math.round(this.z),this.w=Math.round(this.w),this}roundToZero(){return this.x=Math.trunc(this.x),this.y=Math.trunc(this.y),this.z=Math.trunc(this.z),this.w=Math.trunc(this.w),this}negate(){return this.x=-this.x,this.y=-this.y,this.z=-this.z,this.w=-this.w,this}dot(e){return this.x*e.x+this.y*e.y+this.z*e.z+this.w*e.w}lengthSq(){return this.x*this.x+this.y*this.y+this.z*this.z+this.w*this.w}length(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z+this.w*this.w)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)+Math.abs(this.z)+Math.abs(this.w)}normalize(){return this.divideScalar(this.length()||1)}setLength(e){return this.normalize().multiplyScalar(e)}lerp(e,t){return this.x+=(e.x-this.x)*t,this.y+=(e.y-this.y)*t,this.z+=(e.z-this.z)*t,this.w+=(e.w-this.w)*t,this}lerpVectors(e,t,i){return this.x=e.x+(t.x-e.x)*i,this.y=e.y+(t.y-e.y)*i,this.z=e.z+(t.z-e.z)*i,this.w=e.w+(t.w-e.w)*i,this}equals(e){return e.x===this.x&&e.y===this.y&&e.z===this.z&&e.w===this.w}fromArray(e,t=0){return this.x=e[t],this.y=e[t+1],this.z=e[t+2],this.w=e[t+3],this}toArray(e=[],t=0){return e[t]=this.x,e[t+1]=this.y,e[t+2]=this.z,e[t+3]=this.w,e}fromBufferAttribute(e,t){return this.x=e.getX(t),this.y=e.getY(t),this.z=e.getZ(t),this.w=e.getW(t),this}random(){return this.x=Math.random(),this.y=Math.random(),this.z=Math.random(),this.w=Math.random(),this}*[Symbol.iterator](){yield this.x,yield this.y,yield this.z,yield this.w}}class L3 extends tr{constructor(e=1,t=1,i={}){super(),i=Object.assign({generateMipmaps:!1,internalFormat:null,minFilter:Bt,depthBuffer:!0,stencilBuffer:!1,resolveDepthBuffer:!0,resolveStencilBuffer:!0,depthTexture:null,samples:0,count:1,depth:1,multiview:!1},i),this.isRenderTarget=!0,this.width=e,this.height=t,this.depth=i.depth,this.scissor=new Yt(0,0,e,t),this.scissorTest=!1,this.viewport=new Yt(0,0,e,t);const a={width:e,height:t,depth:i.depth},r=new vn(a);this.textures=[];const s=i.count;for(let o=0;o1);this.dispose()}this.viewport.set(0,0,e,t),this.scissor.set(0,0,e,t)}clone(){return new this.constructor().copy(this)}copy(e){this.width=e.width,this.height=e.height,this.depth=e.depth,this.scissor.copy(e.scissor),this.scissorTest=e.scissorTest,this.viewport.copy(e.viewport),this.textures.length=0;for(let t=0,i=e.textures.length;t=this.min.x&&e.x<=this.max.x&&e.y>=this.min.y&&e.y<=this.max.y&&e.z>=this.min.z&&e.z<=this.max.z}containsBox(e){return this.min.x<=e.min.x&&e.max.x<=this.max.x&&this.min.y<=e.min.y&&e.max.y<=this.max.y&&this.min.z<=e.min.z&&e.max.z<=this.max.z}getParameter(e,t){return t.set((e.x-this.min.x)/(this.max.x-this.min.x),(e.y-this.min.y)/(this.max.y-this.min.y),(e.z-this.min.z)/(this.max.z-this.min.z))}intersectsBox(e){return e.max.x>=this.min.x&&e.min.x<=this.max.x&&e.max.y>=this.min.y&&e.min.y<=this.max.y&&e.max.z>=this.min.z&&e.min.z<=this.max.z}intersectsSphere(e){return this.clampPoint(e.center,gs),gs.distanceToSquared(e.center)<=e.radius*e.radius}intersectsPlane(e){let t,i;return e.normal.x>0?(t=e.normal.x*this.min.x,i=e.normal.x*this.max.x):(t=e.normal.x*this.max.x,i=e.normal.x*this.min.x),e.normal.y>0?(t+=e.normal.y*this.min.y,i+=e.normal.y*this.max.y):(t+=e.normal.y*this.max.y,i+=e.normal.y*this.min.y),e.normal.z>0?(t+=e.normal.z*this.min.z,i+=e.normal.z*this.max.z):(t+=e.normal.z*this.max.z,i+=e.normal.z*this.min.z),t<=-e.constant&&i>=-e.constant}intersectsTriangle(e){if(this.isEmpty())return!1;this.getCenter(Cp),Wg.subVectors(this.max,Cp),kh.subVectors(e.a,Cp),Xh.subVectors(e.b,Cp),Wh.subVectors(e.c,Cp),wl.subVectors(Xh,kh),Dl.subVectors(Wh,Xh),Xc.subVectors(kh,Wh);let t=[0,-wl.z,wl.y,0,-Dl.z,Dl.y,0,-Xc.z,Xc.y,wl.z,0,-wl.x,Dl.z,0,-Dl.x,Xc.z,0,-Xc.x,-wl.y,wl.x,0,-Dl.y,Dl.x,0,-Xc.y,Xc.x,0];return!vA(t,kh,Xh,Wh,Wg)||(t=[1,0,0,0,1,0,0,0,1],!vA(t,kh,Xh,Wh,Wg))?!1:(Yg.crossVectors(wl,Dl),t=[Yg.x,Yg.y,Yg.z],vA(t,kh,Xh,Wh,Wg))}clampPoint(e,t){return t.copy(e).clamp(this.min,this.max)}distanceToPoint(e){return this.clampPoint(e,gs).distanceTo(e)}getBoundingSphere(e){return this.isEmpty()?e.makeEmpty():(this.getCenter(e.center),e.radius=this.getSize(gs).length()*.5),e}intersect(e){return this.min.max(e.min),this.max.min(e.max),this.isEmpty()&&this.makeEmpty(),this}union(e){return this.min.min(e.min),this.max.max(e.max),this}applyMatrix4(e){return this.isEmpty()?this:(Eo[0].set(this.min.x,this.min.y,this.min.z).applyMatrix4(e),Eo[1].set(this.min.x,this.min.y,this.max.z).applyMatrix4(e),Eo[2].set(this.min.x,this.max.y,this.min.z).applyMatrix4(e),Eo[3].set(this.min.x,this.max.y,this.max.z).applyMatrix4(e),Eo[4].set(this.max.x,this.min.y,this.min.z).applyMatrix4(e),Eo[5].set(this.max.x,this.min.y,this.max.z).applyMatrix4(e),Eo[6].set(this.max.x,this.max.y,this.min.z).applyMatrix4(e),Eo[7].set(this.max.x,this.max.y,this.max.z).applyMatrix4(e),this.setFromPoints(Eo),this)}translate(e){return this.min.add(e),this.max.add(e),this}equals(e){return e.min.equals(this.min)&&e.max.equals(this.max)}toJSON(){return{min:this.min.toArray(),max:this.max.toArray()}}fromJSON(e){return this.min.fromArray(e.min),this.max.fromArray(e.max),this}}const Eo=[new H,new H,new H,new H,new H,new H,new H,new H],gs=new H,Xg=new sa,kh=new H,Xh=new H,Wh=new H,wl=new H,Dl=new H,Xc=new H,Cp=new H,Wg=new H,Yg=new H,Wc=new H;function vA(n,e,t,i,a){for(let r=0,s=n.length-3;r<=s;r+=3){Wc.fromArray(n,r);const o=a.x*Math.abs(Wc.x)+a.y*Math.abs(Wc.y)+a.z*Math.abs(Wc.z),c=e.dot(Wc),h=t.dot(Wc),f=i.dot(Wc);if(Math.max(-Math.max(c,h,f),Math.min(c,h,f))>o)return!1}return!0}const EH=new sa,Rp=new H,xA=new H;class zi{constructor(e=new H,t=-1){this.isSphere=!0,this.center=e,this.radius=t}set(e,t){return this.center.copy(e),this.radius=t,this}setFromPoints(e,t){const i=this.center;t!==void 0?i.copy(t):EH.setFromPoints(e).getCenter(i);let a=0;for(let r=0,s=e.length;rthis.radius*this.radius&&(t.sub(this.center).normalize(),t.multiplyScalar(this.radius).add(this.center)),t}getBoundingBox(e){return this.isEmpty()?(e.makeEmpty(),e):(e.set(this.center,this.center),e.expandByScalar(this.radius),e)}applyMatrix4(e){return this.center.applyMatrix4(e),this.radius=this.radius*e.getMaxScaleOnAxis(),this}translate(e){return this.center.add(e),this}expandByPoint(e){if(this.isEmpty())return this.center.copy(e),this.radius=0,this;Rp.subVectors(e,this.center);const t=Rp.lengthSq();if(t>this.radius*this.radius){const i=Math.sqrt(t),a=(i-this.radius)*.5;this.center.addScaledVector(Rp,a/i),this.radius+=a}return this}union(e){return e.isEmpty()?this:this.isEmpty()?(this.copy(e),this):(this.center.equals(e.center)===!0?this.radius=Math.max(this.radius,e.radius):(xA.subVectors(e.center,this.center).setLength(e.radius),this.expandByPoint(Rp.copy(e.center).add(xA)),this.expandByPoint(Rp.copy(e.center).sub(xA))),this)}equals(e){return e.center.equals(this.center)&&e.radius===this.radius}clone(){return new this.constructor().copy(this)}toJSON(){return{radius:this.radius,center:this.center.toArray()}}fromJSON(e){return this.radius=e.radius,this.center.fromArray(e.center),this}}const To=new H,yA=new H,qg=new H,Nl=new H,_A=new H,Zg=new H,SA=new H;class oh{constructor(e=new H,t=new H(0,0,-1)){this.origin=e,this.direction=t}set(e,t){return this.origin.copy(e),this.direction.copy(t),this}copy(e){return this.origin.copy(e.origin),this.direction.copy(e.direction),this}at(e,t){return t.copy(this.origin).addScaledVector(this.direction,e)}lookAt(e){return this.direction.copy(e).sub(this.origin).normalize(),this}recast(e){return this.origin.copy(this.at(e,To)),this}closestPointToPoint(e,t){t.subVectors(e,this.origin);const i=t.dot(this.direction);return i<0?t.copy(this.origin):t.copy(this.origin).addScaledVector(this.direction,i)}distanceToPoint(e){return Math.sqrt(this.distanceSqToPoint(e))}distanceSqToPoint(e){const t=To.subVectors(e,this.origin).dot(this.direction);return t<0?this.origin.distanceToSquared(e):(To.copy(this.origin).addScaledVector(this.direction,t),To.distanceToSquared(e))}distanceSqToSegment(e,t,i,a){yA.copy(e).add(t).multiplyScalar(.5),qg.copy(t).sub(e).normalize(),Nl.copy(this.origin).sub(yA);const r=e.distanceTo(t)*.5,s=-this.direction.dot(qg),o=Nl.dot(this.direction),c=-Nl.dot(qg),h=Nl.lengthSq(),f=Math.abs(1-s*s);let d,m,g,y;if(f>0)if(d=s*c-o,m=s*o-c,y=r*f,d>=0)if(m>=-y)if(m<=y){const E=1/f;d*=E,m*=E,g=d*(d+s*m+2*o)+m*(s*d+m+2*c)+h}else m=r,d=Math.max(0,-(s*m+o)),g=-d*d+m*(m+2*c)+h;else m=-r,d=Math.max(0,-(s*m+o)),g=-d*d+m*(m+2*c)+h;else m<=-y?(d=Math.max(0,-(-s*r+o)),m=d>0?-r:Math.min(Math.max(-r,-c),r),g=-d*d+m*(m+2*c)+h):m<=y?(d=0,m=Math.min(Math.max(-r,-c),r),g=m*(m+2*c)+h):(d=Math.max(0,-(s*r+o)),m=d>0?r:Math.min(Math.max(-r,-c),r),g=-d*d+m*(m+2*c)+h);else m=s>0?-r:r,d=Math.max(0,-(s*m+o)),g=-d*d+m*(m+2*c)+h;return i&&i.copy(this.origin).addScaledVector(this.direction,d),a&&a.copy(yA).addScaledVector(qg,m),g}intersectSphere(e,t){To.subVectors(e.center,this.origin);const i=To.dot(this.direction),a=To.dot(To)-i*i,r=e.radius*e.radius;if(a>r)return null;const s=Math.sqrt(r-a),o=i-s,c=i+s;return c<0?null:o<0?this.at(c,t):this.at(o,t)}intersectsSphere(e){return e.radius<0?!1:this.distanceSqToPoint(e.center)<=e.radius*e.radius}distanceToPlane(e){const t=e.normal.dot(this.direction);if(t===0)return e.distanceToPoint(this.origin)===0?0:null;const i=-(this.origin.dot(e.normal)+e.constant)/t;return i>=0?i:null}intersectPlane(e,t){const i=this.distanceToPlane(e);return i===null?null:this.at(i,t)}intersectsPlane(e){const t=e.distanceToPoint(this.origin);return t===0||e.normal.dot(this.direction)*t<0}intersectBox(e,t){let i,a,r,s,o,c;const h=1/this.direction.x,f=1/this.direction.y,d=1/this.direction.z,m=this.origin;return h>=0?(i=(e.min.x-m.x)*h,a=(e.max.x-m.x)*h):(i=(e.max.x-m.x)*h,a=(e.min.x-m.x)*h),f>=0?(r=(e.min.y-m.y)*f,s=(e.max.y-m.y)*f):(r=(e.max.y-m.y)*f,s=(e.min.y-m.y)*f),i>s||r>a||((r>i||isNaN(i))&&(i=r),(s=0?(o=(e.min.z-m.z)*d,c=(e.max.z-m.z)*d):(o=(e.max.z-m.z)*d,c=(e.min.z-m.z)*d),i>c||o>a)||((o>i||i!==i)&&(i=o),(c=0?i:a,t)}intersectsBox(e){return this.intersectBox(e,To)!==null}intersectTriangle(e,t,i,a,r){_A.subVectors(t,e),Zg.subVectors(i,e),SA.crossVectors(_A,Zg);let s=this.direction.dot(SA),o;if(s>0){if(a)return null;o=1}else if(s<0)o=-1,s=-s;else return null;Nl.subVectors(this.origin,e);const c=o*this.direction.dot(Zg.crossVectors(Nl,Zg));if(c<0)return null;const h=o*this.direction.dot(_A.cross(Nl));if(h<0||c+h>s)return null;const f=-o*Nl.dot(SA);return f<0?null:this.at(f/s,r)}applyMatrix4(e){return this.origin.applyMatrix4(e),this.direction.transformDirection(e),this}equals(e){return e.origin.equals(this.origin)&&e.direction.equals(this.direction)}clone(){return new this.constructor().copy(this)}}class lt{constructor(e,t,i,a,r,s,o,c,h,f,d,m,g,y,E,S){lt.prototype.isMatrix4=!0,this.elements=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1],e!==void 0&&this.set(e,t,i,a,r,s,o,c,h,f,d,m,g,y,E,S)}set(e,t,i,a,r,s,o,c,h,f,d,m,g,y,E,S){const v=this.elements;return v[0]=e,v[4]=t,v[8]=i,v[12]=a,v[1]=r,v[5]=s,v[9]=o,v[13]=c,v[2]=h,v[6]=f,v[10]=d,v[14]=m,v[3]=g,v[7]=y,v[11]=E,v[15]=S,this}identity(){return this.set(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1),this}clone(){return new lt().fromArray(this.elements)}copy(e){const t=this.elements,i=e.elements;return t[0]=i[0],t[1]=i[1],t[2]=i[2],t[3]=i[3],t[4]=i[4],t[5]=i[5],t[6]=i[6],t[7]=i[7],t[8]=i[8],t[9]=i[9],t[10]=i[10],t[11]=i[11],t[12]=i[12],t[13]=i[13],t[14]=i[14],t[15]=i[15],this}copyPosition(e){const t=this.elements,i=e.elements;return t[12]=i[12],t[13]=i[13],t[14]=i[14],this}setFromMatrix3(e){const t=e.elements;return this.set(t[0],t[3],t[6],0,t[1],t[4],t[7],0,t[2],t[5],t[8],0,0,0,0,1),this}extractBasis(e,t,i){return e.setFromMatrixColumn(this,0),t.setFromMatrixColumn(this,1),i.setFromMatrixColumn(this,2),this}makeBasis(e,t,i){return this.set(e.x,t.x,i.x,0,e.y,t.y,i.y,0,e.z,t.z,i.z,0,0,0,0,1),this}extractRotation(e){const t=this.elements,i=e.elements,a=1/Yh.setFromMatrixColumn(e,0).length(),r=1/Yh.setFromMatrixColumn(e,1).length(),s=1/Yh.setFromMatrixColumn(e,2).length();return t[0]=i[0]*a,t[1]=i[1]*a,t[2]=i[2]*a,t[3]=0,t[4]=i[4]*r,t[5]=i[5]*r,t[6]=i[6]*r,t[7]=0,t[8]=i[8]*s,t[9]=i[9]*s,t[10]=i[10]*s,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,this}makeRotationFromEuler(e){const t=this.elements,i=e.x,a=e.y,r=e.z,s=Math.cos(i),o=Math.sin(i),c=Math.cos(a),h=Math.sin(a),f=Math.cos(r),d=Math.sin(r);if(e.order==="XYZ"){const m=s*f,g=s*d,y=o*f,E=o*d;t[0]=c*f,t[4]=-c*d,t[8]=h,t[1]=g+y*h,t[5]=m-E*h,t[9]=-o*c,t[2]=E-m*h,t[6]=y+g*h,t[10]=s*c}else if(e.order==="YXZ"){const m=c*f,g=c*d,y=h*f,E=h*d;t[0]=m+E*o,t[4]=y*o-g,t[8]=s*h,t[1]=s*d,t[5]=s*f,t[9]=-o,t[2]=g*o-y,t[6]=E+m*o,t[10]=s*c}else if(e.order==="ZXY"){const m=c*f,g=c*d,y=h*f,E=h*d;t[0]=m-E*o,t[4]=-s*d,t[8]=y+g*o,t[1]=g+y*o,t[5]=s*f,t[9]=E-m*o,t[2]=-s*h,t[6]=o,t[10]=s*c}else if(e.order==="ZYX"){const m=s*f,g=s*d,y=o*f,E=o*d;t[0]=c*f,t[4]=y*h-g,t[8]=m*h+E,t[1]=c*d,t[5]=E*h+m,t[9]=g*h-y,t[2]=-h,t[6]=o*c,t[10]=s*c}else if(e.order==="YZX"){const m=s*c,g=s*h,y=o*c,E=o*h;t[0]=c*f,t[4]=E-m*d,t[8]=y*d+g,t[1]=d,t[5]=s*f,t[9]=-o*f,t[2]=-h*f,t[6]=g*d+y,t[10]=m-E*d}else if(e.order==="XZY"){const m=s*c,g=s*h,y=o*c,E=o*h;t[0]=c*f,t[4]=-d,t[8]=h*f,t[1]=m*d+E,t[5]=s*f,t[9]=g*d-y,t[2]=y*d-g,t[6]=o*f,t[10]=E*d+m}return t[3]=0,t[7]=0,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,this}makeRotationFromQuaternion(e){return this.compose(TH,e,bH)}lookAt(e,t,i){const a=this.elements;return mr.subVectors(e,t),mr.lengthSq()===0&&(mr.z=1),mr.normalize(),Ol.crossVectors(i,mr),Ol.lengthSq()===0&&(Math.abs(i.z)===1?mr.x+=1e-4:mr.z+=1e-4,mr.normalize(),Ol.crossVectors(i,mr)),Ol.normalize(),jg.crossVectors(mr,Ol),a[0]=Ol.x,a[4]=jg.x,a[8]=mr.x,a[1]=Ol.y,a[5]=jg.y,a[9]=mr.y,a[2]=Ol.z,a[6]=jg.z,a[10]=mr.z,this}multiply(e){return this.multiplyMatrices(this,e)}premultiply(e){return this.multiplyMatrices(e,this)}multiplyMatrices(e,t){const i=e.elements,a=t.elements,r=this.elements,s=i[0],o=i[4],c=i[8],h=i[12],f=i[1],d=i[5],m=i[9],g=i[13],y=i[2],E=i[6],S=i[10],v=i[14],_=i[3],A=i[7],b=i[11],O=i[15],N=a[0],L=a[4],B=a[8],w=a[12],D=a[1],G=a[5],J=a[9],$=a[13],se=a[2],le=a[6],q=a[10],te=a[14],ee=a[3],de=a[7],ue=a[11],Pe=a[15];return r[0]=s*N+o*D+c*se+h*ee,r[4]=s*L+o*G+c*le+h*de,r[8]=s*B+o*J+c*q+h*ue,r[12]=s*w+o*$+c*te+h*Pe,r[1]=f*N+d*D+m*se+g*ee,r[5]=f*L+d*G+m*le+g*de,r[9]=f*B+d*J+m*q+g*ue,r[13]=f*w+d*$+m*te+g*Pe,r[2]=y*N+E*D+S*se+v*ee,r[6]=y*L+E*G+S*le+v*de,r[10]=y*B+E*J+S*q+v*ue,r[14]=y*w+E*$+S*te+v*Pe,r[3]=_*N+A*D+b*se+O*ee,r[7]=_*L+A*G+b*le+O*de,r[11]=_*B+A*J+b*q+O*ue,r[15]=_*w+A*$+b*te+O*Pe,this}multiplyScalar(e){const t=this.elements;return t[0]*=e,t[4]*=e,t[8]*=e,t[12]*=e,t[1]*=e,t[5]*=e,t[9]*=e,t[13]*=e,t[2]*=e,t[6]*=e,t[10]*=e,t[14]*=e,t[3]*=e,t[7]*=e,t[11]*=e,t[15]*=e,this}determinant(){const e=this.elements,t=e[0],i=e[4],a=e[8],r=e[12],s=e[1],o=e[5],c=e[9],h=e[13],f=e[2],d=e[6],m=e[10],g=e[14],y=e[3],E=e[7],S=e[11],v=e[15];return y*(+r*c*d-a*h*d-r*o*m+i*h*m+a*o*g-i*c*g)+E*(+t*c*g-t*h*m+r*s*m-a*s*g+a*h*f-r*c*f)+S*(+t*h*d-t*o*g-r*s*d+i*s*g+r*o*f-i*h*f)+v*(-a*o*f-t*c*d+t*o*m+a*s*d-i*s*m+i*c*f)}transpose(){const e=this.elements;let t;return t=e[1],e[1]=e[4],e[4]=t,t=e[2],e[2]=e[8],e[8]=t,t=e[6],e[6]=e[9],e[9]=t,t=e[3],e[3]=e[12],e[12]=t,t=e[7],e[7]=e[13],e[13]=t,t=e[11],e[11]=e[14],e[14]=t,this}setPosition(e,t,i){const a=this.elements;return e.isVector3?(a[12]=e.x,a[13]=e.y,a[14]=e.z):(a[12]=e,a[13]=t,a[14]=i),this}invert(){const e=this.elements,t=e[0],i=e[1],a=e[2],r=e[3],s=e[4],o=e[5],c=e[6],h=e[7],f=e[8],d=e[9],m=e[10],g=e[11],y=e[12],E=e[13],S=e[14],v=e[15],_=d*S*h-E*m*h+E*c*g-o*S*g-d*c*v+o*m*v,A=y*m*h-f*S*h-y*c*g+s*S*g+f*c*v-s*m*v,b=f*E*h-y*d*h+y*o*g-s*E*g-f*o*v+s*d*v,O=y*d*c-f*E*c-y*o*m+s*E*m+f*o*S-s*d*S,N=t*_+i*A+a*b+r*O;if(N===0)return this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);const L=1/N;return e[0]=_*L,e[1]=(E*m*r-d*S*r-E*a*g+i*S*g+d*a*v-i*m*v)*L,e[2]=(o*S*r-E*c*r+E*a*h-i*S*h-o*a*v+i*c*v)*L,e[3]=(d*c*r-o*m*r-d*a*h+i*m*h+o*a*g-i*c*g)*L,e[4]=A*L,e[5]=(f*S*r-y*m*r+y*a*g-t*S*g-f*a*v+t*m*v)*L,e[6]=(y*c*r-s*S*r-y*a*h+t*S*h+s*a*v-t*c*v)*L,e[7]=(s*m*r-f*c*r+f*a*h-t*m*h-s*a*g+t*c*g)*L,e[8]=b*L,e[9]=(y*d*r-f*E*r-y*i*g+t*E*g+f*i*v-t*d*v)*L,e[10]=(s*E*r-y*o*r+y*i*h-t*E*h-s*i*v+t*o*v)*L,e[11]=(f*o*r-s*d*r-f*i*h+t*d*h+s*i*g-t*o*g)*L,e[12]=O*L,e[13]=(f*E*a-y*d*a+y*i*m-t*E*m-f*i*S+t*d*S)*L,e[14]=(y*o*a-s*E*a-y*i*c+t*E*c+s*i*S-t*o*S)*L,e[15]=(s*d*a-f*o*a+f*i*c-t*d*c-s*i*m+t*o*m)*L,this}scale(e){const t=this.elements,i=e.x,a=e.y,r=e.z;return t[0]*=i,t[4]*=a,t[8]*=r,t[1]*=i,t[5]*=a,t[9]*=r,t[2]*=i,t[6]*=a,t[10]*=r,t[3]*=i,t[7]*=a,t[11]*=r,this}getMaxScaleOnAxis(){const e=this.elements,t=e[0]*e[0]+e[1]*e[1]+e[2]*e[2],i=e[4]*e[4]+e[5]*e[5]+e[6]*e[6],a=e[8]*e[8]+e[9]*e[9]+e[10]*e[10];return Math.sqrt(Math.max(t,i,a))}makeTranslation(e,t,i){return e.isVector3?this.set(1,0,0,e.x,0,1,0,e.y,0,0,1,e.z,0,0,0,1):this.set(1,0,0,e,0,1,0,t,0,0,1,i,0,0,0,1),this}makeRotationX(e){const t=Math.cos(e),i=Math.sin(e);return this.set(1,0,0,0,0,t,-i,0,0,i,t,0,0,0,0,1),this}makeRotationY(e){const t=Math.cos(e),i=Math.sin(e);return this.set(t,0,i,0,0,1,0,0,-i,0,t,0,0,0,0,1),this}makeRotationZ(e){const t=Math.cos(e),i=Math.sin(e);return this.set(t,-i,0,0,i,t,0,0,0,0,1,0,0,0,0,1),this}makeRotationAxis(e,t){const i=Math.cos(t),a=Math.sin(t),r=1-i,s=e.x,o=e.y,c=e.z,h=r*s,f=r*o;return this.set(h*s+i,h*o-a*c,h*c+a*o,0,h*o+a*c,f*o+i,f*c-a*s,0,h*c-a*o,f*c+a*s,r*c*c+i,0,0,0,0,1),this}makeScale(e,t,i){return this.set(e,0,0,0,0,t,0,0,0,0,i,0,0,0,0,1),this}makeShear(e,t,i,a,r,s){return this.set(1,i,r,0,e,1,s,0,t,a,1,0,0,0,0,1),this}compose(e,t,i){const a=this.elements,r=t._x,s=t._y,o=t._z,c=t._w,h=r+r,f=s+s,d=o+o,m=r*h,g=r*f,y=r*d,E=s*f,S=s*d,v=o*d,_=c*h,A=c*f,b=c*d,O=i.x,N=i.y,L=i.z;return a[0]=(1-(E+v))*O,a[1]=(g+b)*O,a[2]=(y-A)*O,a[3]=0,a[4]=(g-b)*N,a[5]=(1-(m+v))*N,a[6]=(S+_)*N,a[7]=0,a[8]=(y+A)*L,a[9]=(S-_)*L,a[10]=(1-(m+E))*L,a[11]=0,a[12]=e.x,a[13]=e.y,a[14]=e.z,a[15]=1,this}decompose(e,t,i){const a=this.elements;let r=Yh.set(a[0],a[1],a[2]).length();const s=Yh.set(a[4],a[5],a[6]).length(),o=Yh.set(a[8],a[9],a[10]).length();this.determinant()<0&&(r=-r),e.x=a[12],e.y=a[13],e.z=a[14],vs.copy(this);const h=1/r,f=1/s,d=1/o;return vs.elements[0]*=h,vs.elements[1]*=h,vs.elements[2]*=h,vs.elements[4]*=f,vs.elements[5]*=f,vs.elements[6]*=f,vs.elements[8]*=d,vs.elements[9]*=d,vs.elements[10]*=d,t.setFromRotationMatrix(vs),i.x=r,i.y=s,i.z=o,this}makePerspective(e,t,i,a,r,s,o=Er,c=!1){const h=this.elements,f=2*r/(t-e),d=2*r/(i-a),m=(t+e)/(t-e),g=(i+a)/(i-a);let y,E;if(c)y=r/(s-r),E=s*r/(s-r);else if(o===Er)y=-(s+r)/(s-r),E=-2*s*r/(s-r);else if(o===gd)y=-s/(s-r),E=-s*r/(s-r);else throw new Error("THREE.Matrix4.makePerspective(): Invalid coordinate system: "+o);return h[0]=f,h[4]=0,h[8]=m,h[12]=0,h[1]=0,h[5]=d,h[9]=g,h[13]=0,h[2]=0,h[6]=0,h[10]=y,h[14]=E,h[3]=0,h[7]=0,h[11]=-1,h[15]=0,this}makeOrthographic(e,t,i,a,r,s,o=Er,c=!1){const h=this.elements,f=2/(t-e),d=2/(i-a),m=-(t+e)/(t-e),g=-(i+a)/(i-a);let y,E;if(c)y=1/(s-r),E=s/(s-r);else if(o===Er)y=-2/(s-r),E=-(s+r)/(s-r);else if(o===gd)y=-1/(s-r),E=-r/(s-r);else throw new Error("THREE.Matrix4.makeOrthographic(): Invalid coordinate system: "+o);return h[0]=f,h[4]=0,h[8]=0,h[12]=m,h[1]=0,h[5]=d,h[9]=0,h[13]=g,h[2]=0,h[6]=0,h[10]=y,h[14]=E,h[3]=0,h[7]=0,h[11]=0,h[15]=1,this}equals(e){const t=this.elements,i=e.elements;for(let a=0;a<16;a++)if(t[a]!==i[a])return!1;return!0}fromArray(e,t=0){for(let i=0;i<16;i++)this.elements[i]=e[i+t];return this}toArray(e=[],t=0){const i=this.elements;return e[t]=i[0],e[t+1]=i[1],e[t+2]=i[2],e[t+3]=i[3],e[t+4]=i[4],e[t+5]=i[5],e[t+6]=i[6],e[t+7]=i[7],e[t+8]=i[8],e[t+9]=i[9],e[t+10]=i[10],e[t+11]=i[11],e[t+12]=i[12],e[t+13]=i[13],e[t+14]=i[14],e[t+15]=i[15],e}}const Yh=new H,vs=new lt,TH=new H(0,0,0),bH=new H(1,1,1),Ol=new H,jg=new H,mr=new H,Bw=new lt,Uw=new Yi;class Dr{constructor(e=0,t=0,i=0,a=Dr.DEFAULT_ORDER){this.isEuler=!0,this._x=e,this._y=t,this._z=i,this._order=a}get x(){return this._x}set x(e){this._x=e,this._onChangeCallback()}get y(){return this._y}set y(e){this._y=e,this._onChangeCallback()}get z(){return this._z}set z(e){this._z=e,this._onChangeCallback()}get order(){return this._order}set order(e){this._order=e,this._onChangeCallback()}set(e,t,i,a=this._order){return this._x=e,this._y=t,this._z=i,this._order=a,this._onChangeCallback(),this}clone(){return new this.constructor(this._x,this._y,this._z,this._order)}copy(e){return this._x=e._x,this._y=e._y,this._z=e._z,this._order=e._order,this._onChangeCallback(),this}setFromRotationMatrix(e,t=this._order,i=!0){const a=e.elements,r=a[0],s=a[4],o=a[8],c=a[1],h=a[5],f=a[9],d=a[2],m=a[6],g=a[10];switch(t){case"XYZ":this._y=Math.asin(Gt(o,-1,1)),Math.abs(o)<.9999999?(this._x=Math.atan2(-f,g),this._z=Math.atan2(-s,r)):(this._x=Math.atan2(m,h),this._z=0);break;case"YXZ":this._x=Math.asin(-Gt(f,-1,1)),Math.abs(f)<.9999999?(this._y=Math.atan2(o,g),this._z=Math.atan2(c,h)):(this._y=Math.atan2(-d,r),this._z=0);break;case"ZXY":this._x=Math.asin(Gt(m,-1,1)),Math.abs(m)<.9999999?(this._y=Math.atan2(-d,g),this._z=Math.atan2(-s,h)):(this._y=0,this._z=Math.atan2(c,r));break;case"ZYX":this._y=Math.asin(-Gt(d,-1,1)),Math.abs(d)<.9999999?(this._x=Math.atan2(m,g),this._z=Math.atan2(c,r)):(this._x=0,this._z=Math.atan2(-s,h));break;case"YZX":this._z=Math.asin(Gt(c,-1,1)),Math.abs(c)<.9999999?(this._x=Math.atan2(-f,h),this._y=Math.atan2(-d,r)):(this._x=0,this._y=Math.atan2(o,g));break;case"XZY":this._z=Math.asin(-Gt(s,-1,1)),Math.abs(s)<.9999999?(this._x=Math.atan2(m,h),this._y=Math.atan2(o,r)):(this._x=Math.atan2(-f,g),this._y=0);break;default:_t("Euler: .setFromRotationMatrix() encountered an unknown order: "+t)}return this._order=t,i===!0&&this._onChangeCallback(),this}setFromQuaternion(e,t,i){return Bw.makeRotationFromQuaternion(e),this.setFromRotationMatrix(Bw,t,i)}setFromVector3(e,t=this._order){return this.set(e.x,e.y,e.z,t)}reorder(e){return Uw.setFromEuler(this),this.setFromQuaternion(Uw,e)}equals(e){return e._x===this._x&&e._y===this._y&&e._z===this._z&&e._order===this._order}fromArray(e){return this._x=e[0],this._y=e[1],this._z=e[2],e[3]!==void 0&&(this._order=e[3]),this._onChangeCallback(),this}toArray(e=[],t=0){return e[t]=this._x,e[t+1]=this._y,e[t+2]=this._z,e[t+3]=this._order,e}_onChange(e){return this._onChangeCallback=e,this}_onChangeCallback(){}*[Symbol.iterator](){yield this._x,yield this._y,yield this._z,yield this._order}}Dr.DEFAULT_ORDER="XYZ";class yd{constructor(){this.mask=1}set(e){this.mask=(1<>>0}enable(e){this.mask|=1<1){for(let t=0;t1){for(let i=0;i0&&(a.userData=this.userData),a.layers=this.layers.mask,a.matrix=this.matrix.toArray(),a.up=this.up.toArray(),this.matrixAutoUpdate===!1&&(a.matrixAutoUpdate=!1),this.isInstancedMesh&&(a.type="InstancedMesh",a.count=this.count,a.instanceMatrix=this.instanceMatrix.toJSON(),this.instanceColor!==null&&(a.instanceColor=this.instanceColor.toJSON())),this.isBatchedMesh&&(a.type="BatchedMesh",a.perObjectFrustumCulled=this.perObjectFrustumCulled,a.sortObjects=this.sortObjects,a.drawRanges=this._drawRanges,a.reservedRanges=this._reservedRanges,a.geometryInfo=this._geometryInfo.map(o=>({...o,boundingBox:o.boundingBox?o.boundingBox.toJSON():void 0,boundingSphere:o.boundingSphere?o.boundingSphere.toJSON():void 0})),a.instanceInfo=this._instanceInfo.map(o=>({...o})),a.availableInstanceIds=this._availableInstanceIds.slice(),a.availableGeometryIds=this._availableGeometryIds.slice(),a.nextIndexStart=this._nextIndexStart,a.nextVertexStart=this._nextVertexStart,a.geometryCount=this._geometryCount,a.maxInstanceCount=this._maxInstanceCount,a.maxVertexCount=this._maxVertexCount,a.maxIndexCount=this._maxIndexCount,a.geometryInitialized=this._geometryInitialized,a.matricesTexture=this._matricesTexture.toJSON(e),a.indirectTexture=this._indirectTexture.toJSON(e),this._colorsTexture!==null&&(a.colorsTexture=this._colorsTexture.toJSON(e)),this.boundingSphere!==null&&(a.boundingSphere=this.boundingSphere.toJSON()),this.boundingBox!==null&&(a.boundingBox=this.boundingBox.toJSON()));function r(o,c){return o[c.uuid]===void 0&&(o[c.uuid]=c.toJSON(e)),c.uuid}if(this.isScene)this.background&&(this.background.isColor?a.background=this.background.toJSON():this.background.isTexture&&(a.background=this.background.toJSON(e).uuid)),this.environment&&this.environment.isTexture&&this.environment.isRenderTargetTexture!==!0&&(a.environment=this.environment.toJSON(e).uuid);else if(this.isMesh||this.isLine||this.isPoints){a.geometry=r(e.geometries,this.geometry);const o=this.geometry.parameters;if(o!==void 0&&o.shapes!==void 0){const c=o.shapes;if(Array.isArray(c))for(let h=0,f=c.length;h0){a.children=[];for(let o=0;o0){a.animations=[];for(let o=0;o0&&(i.geometries=o),c.length>0&&(i.materials=c),h.length>0&&(i.textures=h),f.length>0&&(i.images=f),d.length>0&&(i.shapes=d),m.length>0&&(i.skeletons=m),g.length>0&&(i.animations=g),y.length>0&&(i.nodes=y)}return i.object=a,i;function s(o){const c=[];for(const h in o){const f=o[h];delete f.metadata,c.push(f)}return c}}clone(e){return new this.constructor().copy(this,e)}copy(e,t=!0){if(this.name=e.name,this.up.copy(e.up),this.position.copy(e.position),this.rotation.order=e.rotation.order,this.quaternion.copy(e.quaternion),this.scale.copy(e.scale),this.matrix.copy(e.matrix),this.matrixWorld.copy(e.matrixWorld),this.matrixAutoUpdate=e.matrixAutoUpdate,this.matrixWorldAutoUpdate=e.matrixWorldAutoUpdate,this.matrixWorldNeedsUpdate=e.matrixWorldNeedsUpdate,this.layers.mask=e.layers.mask,this.visible=e.visible,this.castShadow=e.castShadow,this.receiveShadow=e.receiveShadow,this.frustumCulled=e.frustumCulled,this.renderOrder=e.renderOrder,this.animations=e.animations.slice(),this.userData=JSON.parse(JSON.stringify(e.userData)),t===!0)for(let i=0;i0?a.multiplyScalar(1/Math.sqrt(r)):a.set(0,0,0)}static getBarycoord(e,t,i,a,r){xs.subVectors(a,t),Mo.subVectors(i,t),EA.subVectors(e,t);const s=xs.dot(xs),o=xs.dot(Mo),c=xs.dot(EA),h=Mo.dot(Mo),f=Mo.dot(EA),d=s*h-o*o;if(d===0)return r.set(0,0,0),null;const m=1/d,g=(h*c-o*f)*m,y=(s*f-o*c)*m;return r.set(1-g-y,y,g)}static containsPoint(e,t,i,a){return this.getBarycoord(e,t,i,a,Co)===null?!1:Co.x>=0&&Co.y>=0&&Co.x+Co.y<=1}static getInterpolation(e,t,i,a,r,s,o,c){return this.getBarycoord(e,t,i,a,Co)===null?(c.x=0,c.y=0,"z"in c&&(c.z=0),"w"in c&&(c.w=0),null):(c.setScalar(0),c.addScaledVector(r,Co.x),c.addScaledVector(s,Co.y),c.addScaledVector(o,Co.z),c)}static getInterpolatedAttribute(e,t,i,a,r,s){return CA.setScalar(0),RA.setScalar(0),wA.setScalar(0),CA.fromBufferAttribute(e,t),RA.fromBufferAttribute(e,i),wA.fromBufferAttribute(e,a),s.setScalar(0),s.addScaledVector(CA,r.x),s.addScaledVector(RA,r.y),s.addScaledVector(wA,r.z),s}static isFrontFacing(e,t,i,a){return xs.subVectors(i,t),Mo.subVectors(e,t),xs.cross(Mo).dot(a)<0}set(e,t,i){return this.a.copy(e),this.b.copy(t),this.c.copy(i),this}setFromPointsAndIndices(e,t,i,a){return this.a.copy(e[t]),this.b.copy(e[i]),this.c.copy(e[a]),this}setFromAttributeAndIndices(e,t,i,a){return this.a.fromBufferAttribute(e,t),this.b.fromBufferAttribute(e,i),this.c.fromBufferAttribute(e,a),this}clone(){return new this.constructor().copy(this)}copy(e){return this.a.copy(e.a),this.b.copy(e.b),this.c.copy(e.c),this}getArea(){return xs.subVectors(this.c,this.b),Mo.subVectors(this.a,this.b),xs.cross(Mo).length()*.5}getMidpoint(e){return e.addVectors(this.a,this.b).add(this.c).multiplyScalar(1/3)}getNormal(e){return Ja.getNormal(this.a,this.b,this.c,e)}getPlane(e){return e.setFromCoplanarPoints(this.a,this.b,this.c)}getBarycoord(e,t){return Ja.getBarycoord(e,this.a,this.b,this.c,t)}getInterpolation(e,t,i,a,r){return Ja.getInterpolation(e,this.a,this.b,this.c,t,i,a,r)}containsPoint(e){return Ja.containsPoint(e,this.a,this.b,this.c)}isFrontFacing(e){return Ja.isFrontFacing(this.a,this.b,this.c,e)}intersectsBox(e){return e.intersectsTriangle(this)}closestPointToPoint(e,t){const i=this.a,a=this.b,r=this.c;let s,o;jh.subVectors(a,i),Kh.subVectors(r,i),TA.subVectors(e,i);const c=jh.dot(TA),h=Kh.dot(TA);if(c<=0&&h<=0)return t.copy(i);bA.subVectors(e,a);const f=jh.dot(bA),d=Kh.dot(bA);if(f>=0&&d<=f)return t.copy(a);const m=c*d-f*h;if(m<=0&&c>=0&&f<=0)return s=c/(c-f),t.copy(i).addScaledVector(jh,s);MA.subVectors(e,r);const g=jh.dot(MA),y=Kh.dot(MA);if(y>=0&&g<=y)return t.copy(r);const E=g*h-c*y;if(E<=0&&h>=0&&y<=0)return o=h/(h-y),t.copy(i).addScaledVector(Kh,o);const S=f*y-g*d;if(S<=0&&d-f>=0&&g-y>=0)return Gw.subVectors(r,a),o=(d-f)/(d-f+(g-y)),t.copy(a).addScaledVector(Gw,o);const v=1/(S+E+m);return s=E*v,o=m*v,t.copy(i).addScaledVector(jh,s).addScaledVector(Kh,o)}equals(e){return e.a.equals(this.a)&&e.b.equals(this.b)&&e.c.equals(this.c)}}const rB={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074},Il={h:0,s:0,l:0},Jg={h:0,s:0,l:0};function DA(n,e,t){return t<0&&(t+=1),t>1&&(t-=1),t<1/6?n+(e-n)*6*t:t<1/2?e:t<2/3?n+(e-n)*6*(2/3-t):n}class dt{constructor(e,t,i){return this.isColor=!0,this.r=1,this.g=1,this.b=1,this.set(e,t,i)}set(e,t,i){if(t===void 0&&i===void 0){const a=e;a&&a.isColor?this.copy(a):typeof a=="number"?this.setHex(a):typeof a=="string"&&this.setStyle(a)}else this.setRGB(e,t,i);return this}setScalar(e){return this.r=e,this.g=e,this.b=e,this}setHex(e,t=Kn){return e=Math.floor(e),this.r=(e>>16&255)/255,this.g=(e>>8&255)/255,this.b=(e&255)/255,gn.colorSpaceToWorking(this,t),this}setRGB(e,t,i,a=gn.workingColorSpace){return this.r=e,this.g=t,this.b=i,gn.colorSpaceToWorking(this,a),this}setHSL(e,t,i,a=gn.workingColorSpace){if(e=U3(e,1),t=Gt(t,0,1),i=Gt(i,0,1),t===0)this.r=this.g=this.b=i;else{const r=i<=.5?i*(1+t):i+t-i*t,s=2*i-r;this.r=DA(s,r,e+1/3),this.g=DA(s,r,e),this.b=DA(s,r,e-1/3)}return gn.colorSpaceToWorking(this,a),this}setStyle(e,t=Kn){function i(r){r!==void 0&&parseFloat(r)<1&&_t("Color: Alpha component of "+e+" will be ignored.")}let a;if(a=/^(\w+)\(([^\)]*)\)/.exec(e)){let r;const s=a[1],o=a[2];switch(s){case"rgb":case"rgba":if(r=/^\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(o))return i(r[4]),this.setRGB(Math.min(255,parseInt(r[1],10))/255,Math.min(255,parseInt(r[2],10))/255,Math.min(255,parseInt(r[3],10))/255,t);if(r=/^\s*(\d+)\%\s*,\s*(\d+)\%\s*,\s*(\d+)\%\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(o))return i(r[4]),this.setRGB(Math.min(100,parseInt(r[1],10))/100,Math.min(100,parseInt(r[2],10))/100,Math.min(100,parseInt(r[3],10))/100,t);break;case"hsl":case"hsla":if(r=/^\s*(\d*\.?\d+)\s*,\s*(\d*\.?\d+)\%\s*,\s*(\d*\.?\d+)\%\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(o))return i(r[4]),this.setHSL(parseFloat(r[1])/360,parseFloat(r[2])/100,parseFloat(r[3])/100,t);break;default:_t("Color: Unknown color model "+e)}}else if(a=/^\#([A-Fa-f\d]+)$/.exec(e)){const r=a[1],s=r.length;if(s===3)return this.setRGB(parseInt(r.charAt(0),16)/15,parseInt(r.charAt(1),16)/15,parseInt(r.charAt(2),16)/15,t);if(s===6)return this.setHex(parseInt(r,16),t);_t("Color: Invalid hex color "+e)}else if(e&&e.length>0)return this.setColorName(e,t);return this}setColorName(e,t=Kn){const i=rB[e.toLowerCase()];return i!==void 0?this.setHex(i,t):_t("Color: Unknown color "+e),this}clone(){return new this.constructor(this.r,this.g,this.b)}copy(e){return this.r=e.r,this.g=e.g,this.b=e.b,this}copySRGBToLinear(e){return this.r=Jo(e.r),this.g=Jo(e.g),this.b=Jo(e.b),this}copyLinearToSRGB(e){return this.r=Jf(e.r),this.g=Jf(e.g),this.b=Jf(e.b),this}convertSRGBToLinear(){return this.copySRGBToLinear(this),this}convertLinearToSRGB(){return this.copyLinearToSRGB(this),this}getHex(e=Kn){return gn.workingToColorSpace(Aa.copy(this),e),Math.round(Gt(Aa.r*255,0,255))*65536+Math.round(Gt(Aa.g*255,0,255))*256+Math.round(Gt(Aa.b*255,0,255))}getHexString(e=Kn){return("000000"+this.getHex(e).toString(16)).slice(-6)}getHSL(e,t=gn.workingColorSpace){gn.workingToColorSpace(Aa.copy(this),t);const i=Aa.r,a=Aa.g,r=Aa.b,s=Math.max(i,a,r),o=Math.min(i,a,r);let c,h;const f=(o+s)/2;if(o===s)c=0,h=0;else{const d=s-o;switch(h=f<=.5?d/(s+o):d/(2-s-o),s){case i:c=(a-r)/d+(a0!=e>0&&this.version++,this._alphaTest=e}onBeforeRender(){}onBeforeCompile(){}customProgramCacheKey(){return this.onBeforeCompile.toString()}setValues(e){if(e!==void 0)for(const t in e){const i=e[t];if(i===void 0){_t(`Material: parameter '${t}' has value of undefined.`);continue}const a=this[t];if(a===void 0){_t(`Material: '${t}' is not a property of THREE.${this.type}.`);continue}a&&a.isColor?a.set(i):a&&a.isVector3&&i&&i.isVector3?a.copy(i):this[t]=i}}toJSON(e){const t=e===void 0||typeof e=="string";t&&(e={textures:{},images:{}});const i={metadata:{version:4.7,type:"Material",generator:"Material.toJSON"}};i.uuid=this.uuid,i.type=this.type,this.name!==""&&(i.name=this.name),this.color&&this.color.isColor&&(i.color=this.color.getHex()),this.roughness!==void 0&&(i.roughness=this.roughness),this.metalness!==void 0&&(i.metalness=this.metalness),this.sheen!==void 0&&(i.sheen=this.sheen),this.sheenColor&&this.sheenColor.isColor&&(i.sheenColor=this.sheenColor.getHex()),this.sheenRoughness!==void 0&&(i.sheenRoughness=this.sheenRoughness),this.emissive&&this.emissive.isColor&&(i.emissive=this.emissive.getHex()),this.emissiveIntensity!==void 0&&this.emissiveIntensity!==1&&(i.emissiveIntensity=this.emissiveIntensity),this.specular&&this.specular.isColor&&(i.specular=this.specular.getHex()),this.specularIntensity!==void 0&&(i.specularIntensity=this.specularIntensity),this.specularColor&&this.specularColor.isColor&&(i.specularColor=this.specularColor.getHex()),this.shininess!==void 0&&(i.shininess=this.shininess),this.clearcoat!==void 0&&(i.clearcoat=this.clearcoat),this.clearcoatRoughness!==void 0&&(i.clearcoatRoughness=this.clearcoatRoughness),this.clearcoatMap&&this.clearcoatMap.isTexture&&(i.clearcoatMap=this.clearcoatMap.toJSON(e).uuid),this.clearcoatRoughnessMap&&this.clearcoatRoughnessMap.isTexture&&(i.clearcoatRoughnessMap=this.clearcoatRoughnessMap.toJSON(e).uuid),this.clearcoatNormalMap&&this.clearcoatNormalMap.isTexture&&(i.clearcoatNormalMap=this.clearcoatNormalMap.toJSON(e).uuid,i.clearcoatNormalScale=this.clearcoatNormalScale.toArray()),this.sheenColorMap&&this.sheenColorMap.isTexture&&(i.sheenColorMap=this.sheenColorMap.toJSON(e).uuid),this.sheenRoughnessMap&&this.sheenRoughnessMap.isTexture&&(i.sheenRoughnessMap=this.sheenRoughnessMap.toJSON(e).uuid),this.dispersion!==void 0&&(i.dispersion=this.dispersion),this.iridescence!==void 0&&(i.iridescence=this.iridescence),this.iridescenceIOR!==void 0&&(i.iridescenceIOR=this.iridescenceIOR),this.iridescenceThicknessRange!==void 0&&(i.iridescenceThicknessRange=this.iridescenceThicknessRange),this.iridescenceMap&&this.iridescenceMap.isTexture&&(i.iridescenceMap=this.iridescenceMap.toJSON(e).uuid),this.iridescenceThicknessMap&&this.iridescenceThicknessMap.isTexture&&(i.iridescenceThicknessMap=this.iridescenceThicknessMap.toJSON(e).uuid),this.anisotropy!==void 0&&(i.anisotropy=this.anisotropy),this.anisotropyRotation!==void 0&&(i.anisotropyRotation=this.anisotropyRotation),this.anisotropyMap&&this.anisotropyMap.isTexture&&(i.anisotropyMap=this.anisotropyMap.toJSON(e).uuid),this.map&&this.map.isTexture&&(i.map=this.map.toJSON(e).uuid),this.matcap&&this.matcap.isTexture&&(i.matcap=this.matcap.toJSON(e).uuid),this.alphaMap&&this.alphaMap.isTexture&&(i.alphaMap=this.alphaMap.toJSON(e).uuid),this.lightMap&&this.lightMap.isTexture&&(i.lightMap=this.lightMap.toJSON(e).uuid,i.lightMapIntensity=this.lightMapIntensity),this.aoMap&&this.aoMap.isTexture&&(i.aoMap=this.aoMap.toJSON(e).uuid,i.aoMapIntensity=this.aoMapIntensity),this.bumpMap&&this.bumpMap.isTexture&&(i.bumpMap=this.bumpMap.toJSON(e).uuid,i.bumpScale=this.bumpScale),this.normalMap&&this.normalMap.isTexture&&(i.normalMap=this.normalMap.toJSON(e).uuid,i.normalMapType=this.normalMapType,i.normalScale=this.normalScale.toArray()),this.displacementMap&&this.displacementMap.isTexture&&(i.displacementMap=this.displacementMap.toJSON(e).uuid,i.displacementScale=this.displacementScale,i.displacementBias=this.displacementBias),this.roughnessMap&&this.roughnessMap.isTexture&&(i.roughnessMap=this.roughnessMap.toJSON(e).uuid),this.metalnessMap&&this.metalnessMap.isTexture&&(i.metalnessMap=this.metalnessMap.toJSON(e).uuid),this.emissiveMap&&this.emissiveMap.isTexture&&(i.emissiveMap=this.emissiveMap.toJSON(e).uuid),this.specularMap&&this.specularMap.isTexture&&(i.specularMap=this.specularMap.toJSON(e).uuid),this.specularIntensityMap&&this.specularIntensityMap.isTexture&&(i.specularIntensityMap=this.specularIntensityMap.toJSON(e).uuid),this.specularColorMap&&this.specularColorMap.isTexture&&(i.specularColorMap=this.specularColorMap.toJSON(e).uuid),this.envMap&&this.envMap.isTexture&&(i.envMap=this.envMap.toJSON(e).uuid,this.combine!==void 0&&(i.combine=this.combine)),this.envMapRotation!==void 0&&(i.envMapRotation=this.envMapRotation.toArray()),this.envMapIntensity!==void 0&&(i.envMapIntensity=this.envMapIntensity),this.reflectivity!==void 0&&(i.reflectivity=this.reflectivity),this.refractionRatio!==void 0&&(i.refractionRatio=this.refractionRatio),this.gradientMap&&this.gradientMap.isTexture&&(i.gradientMap=this.gradientMap.toJSON(e).uuid),this.transmission!==void 0&&(i.transmission=this.transmission),this.transmissionMap&&this.transmissionMap.isTexture&&(i.transmissionMap=this.transmissionMap.toJSON(e).uuid),this.thickness!==void 0&&(i.thickness=this.thickness),this.thicknessMap&&this.thicknessMap.isTexture&&(i.thicknessMap=this.thicknessMap.toJSON(e).uuid),this.attenuationDistance!==void 0&&this.attenuationDistance!==1/0&&(i.attenuationDistance=this.attenuationDistance),this.attenuationColor!==void 0&&(i.attenuationColor=this.attenuationColor.getHex()),this.size!==void 0&&(i.size=this.size),this.shadowSide!==null&&(i.shadowSide=this.shadowSide),this.sizeAttenuation!==void 0&&(i.sizeAttenuation=this.sizeAttenuation),this.blending!==wu&&(i.blending=this.blending),this.side!==os&&(i.side=this.side),this.vertexColors===!0&&(i.vertexColors=!0),this.opacity<1&&(i.opacity=this.opacity),this.transparent===!0&&(i.transparent=!0),this.blendSrc!==X1&&(i.blendSrc=this.blendSrc),this.blendDst!==W1&&(i.blendDst=this.blendDst),this.blendEquation!==js&&(i.blendEquation=this.blendEquation),this.blendSrcAlpha!==null&&(i.blendSrcAlpha=this.blendSrcAlpha),this.blendDstAlpha!==null&&(i.blendDstAlpha=this.blendDstAlpha),this.blendEquationAlpha!==null&&(i.blendEquationAlpha=this.blendEquationAlpha),this.blendColor&&this.blendColor.isColor&&(i.blendColor=this.blendColor.getHex()),this.blendAlpha!==0&&(i.blendAlpha=this.blendAlpha),this.depthFunc!==zu&&(i.depthFunc=this.depthFunc),this.depthTest===!1&&(i.depthTest=this.depthTest),this.depthWrite===!1&&(i.depthWrite=this.depthWrite),this.colorWrite===!1&&(i.colorWrite=this.colorWrite),this.stencilWriteMask!==255&&(i.stencilWriteMask=this.stencilWriteMask),this.stencilFunc!==DE&&(i.stencilFunc=this.stencilFunc),this.stencilRef!==0&&(i.stencilRef=this.stencilRef),this.stencilFuncMask!==255&&(i.stencilFuncMask=this.stencilFuncMask),this.stencilFail!==uu&&(i.stencilFail=this.stencilFail),this.stencilZFail!==uu&&(i.stencilZFail=this.stencilZFail),this.stencilZPass!==uu&&(i.stencilZPass=this.stencilZPass),this.stencilWrite===!0&&(i.stencilWrite=this.stencilWrite),this.rotation!==void 0&&this.rotation!==0&&(i.rotation=this.rotation),this.polygonOffset===!0&&(i.polygonOffset=!0),this.polygonOffsetFactor!==0&&(i.polygonOffsetFactor=this.polygonOffsetFactor),this.polygonOffsetUnits!==0&&(i.polygonOffsetUnits=this.polygonOffsetUnits),this.linewidth!==void 0&&this.linewidth!==1&&(i.linewidth=this.linewidth),this.dashSize!==void 0&&(i.dashSize=this.dashSize),this.gapSize!==void 0&&(i.gapSize=this.gapSize),this.scale!==void 0&&(i.scale=this.scale),this.dithering===!0&&(i.dithering=!0),this.alphaTest>0&&(i.alphaTest=this.alphaTest),this.alphaHash===!0&&(i.alphaHash=!0),this.alphaToCoverage===!0&&(i.alphaToCoverage=!0),this.premultipliedAlpha===!0&&(i.premultipliedAlpha=!0),this.forceSinglePass===!0&&(i.forceSinglePass=!0),this.wireframe===!0&&(i.wireframe=!0),this.wireframeLinewidth>1&&(i.wireframeLinewidth=this.wireframeLinewidth),this.wireframeLinecap!=="round"&&(i.wireframeLinecap=this.wireframeLinecap),this.wireframeLinejoin!=="round"&&(i.wireframeLinejoin=this.wireframeLinejoin),this.flatShading===!0&&(i.flatShading=!0),this.visible===!1&&(i.visible=!1),this.toneMapped===!1&&(i.toneMapped=!1),this.fog===!1&&(i.fog=!1),Object.keys(this.userData).length>0&&(i.userData=this.userData);function a(r){const s=[];for(const o in r){const c=r[o];delete c.metadata,s.push(c)}return s}if(t){const r=a(e.textures),s=a(e.images);r.length>0&&(i.textures=r),s.length>0&&(i.images=s)}return i}clone(){return new this.constructor().copy(this)}copy(e){this.name=e.name,this.blending=e.blending,this.side=e.side,this.vertexColors=e.vertexColors,this.opacity=e.opacity,this.transparent=e.transparent,this.blendSrc=e.blendSrc,this.blendDst=e.blendDst,this.blendEquation=e.blendEquation,this.blendSrcAlpha=e.blendSrcAlpha,this.blendDstAlpha=e.blendDstAlpha,this.blendEquationAlpha=e.blendEquationAlpha,this.blendColor.copy(e.blendColor),this.blendAlpha=e.blendAlpha,this.depthFunc=e.depthFunc,this.depthTest=e.depthTest,this.depthWrite=e.depthWrite,this.stencilWriteMask=e.stencilWriteMask,this.stencilFunc=e.stencilFunc,this.stencilRef=e.stencilRef,this.stencilFuncMask=e.stencilFuncMask,this.stencilFail=e.stencilFail,this.stencilZFail=e.stencilZFail,this.stencilZPass=e.stencilZPass,this.stencilWrite=e.stencilWrite;const t=e.clippingPlanes;let i=null;if(t!==null){const a=t.length;i=new Array(a);for(let r=0;r!==a;++r)i[r]=t[r].clone()}return this.clippingPlanes=i,this.clipIntersection=e.clipIntersection,this.clipShadows=e.clipShadows,this.shadowSide=e.shadowSide,this.colorWrite=e.colorWrite,this.precision=e.precision,this.polygonOffset=e.polygonOffset,this.polygonOffsetFactor=e.polygonOffsetFactor,this.polygonOffsetUnits=e.polygonOffsetUnits,this.dithering=e.dithering,this.alphaTest=e.alphaTest,this.alphaHash=e.alphaHash,this.alphaToCoverage=e.alphaToCoverage,this.premultipliedAlpha=e.premultipliedAlpha,this.forceSinglePass=e.forceSinglePass,this.visible=e.visible,this.toneMapped=e.toneMapped,this.userData=JSON.parse(JSON.stringify(e.userData)),this}dispose(){this.dispatchEvent({type:"dispose"})}set needsUpdate(e){e===!0&&this.version++}}class Qa extends ri{constructor(e){super(),this.isMeshBasicMaterial=!0,this.type="MeshBasicMaterial",this.color=new dt(16777215),this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.specularMap=null,this.alphaMap=null,this.envMap=null,this.envMapRotation=new Dr,this.combine=b0,this.reflectivity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.fog=!0,this.setValues(e)}copy(e){return super.copy(e),this.color.copy(e.color),this.map=e.map,this.lightMap=e.lightMap,this.lightMapIntensity=e.lightMapIntensity,this.aoMap=e.aoMap,this.aoMapIntensity=e.aoMapIntensity,this.specularMap=e.specularMap,this.alphaMap=e.alphaMap,this.envMap=e.envMap,this.envMapRotation.copy(e.envMapRotation),this.combine=e.combine,this.reflectivity=e.reflectivity,this.refractionRatio=e.refractionRatio,this.wireframe=e.wireframe,this.wireframeLinewidth=e.wireframeLinewidth,this.wireframeLinecap=e.wireframeLinecap,this.wireframeLinejoin=e.wireframeLinejoin,this.fog=e.fog,this}}const Go=NH();function NH(){const n=new ArrayBuffer(4),e=new Float32Array(n),t=new Uint32Array(n),i=new Uint32Array(512),a=new Uint32Array(512);for(let c=0;c<256;++c){const h=c-127;h<-27?(i[c]=0,i[c|256]=32768,a[c]=24,a[c|256]=24):h<-14?(i[c]=1024>>-h-14,i[c|256]=1024>>-h-14|32768,a[c]=-h-1,a[c|256]=-h-1):h<=15?(i[c]=h+15<<10,i[c|256]=h+15<<10|32768,a[c]=13,a[c|256]=13):h<128?(i[c]=31744,i[c|256]=64512,a[c]=24,a[c|256]=24):(i[c]=31744,i[c|256]=64512,a[c]=13,a[c|256]=13)}const r=new Uint32Array(2048),s=new Uint32Array(64),o=new Uint32Array(64);for(let c=1;c<1024;++c){let h=c<<13,f=0;for(;!(h&8388608);)h<<=1,f-=8388608;h&=-8388609,f+=947912704,r[c]=h|f}for(let c=1024;c<2048;++c)r[c]=939524096+(c-1024<<13);for(let c=1;c<31;++c)s[c]=c<<23;s[31]=1199570944,s[32]=2147483648;for(let c=33;c<63;++c)s[c]=2147483648+(c-32<<23);s[63]=3347054592;for(let c=1;c<64;++c)c!==32&&(o[c]=1024);return{floatView:e,uint32View:t,baseTable:i,shiftTable:a,mantissaTable:r,exponentTable:s,offsetTable:o}}function qa(n){Math.abs(n)>65504&&_t("DataUtils.toHalfFloat(): Value out of range."),n=Gt(n,-65504,65504),Go.floatView[0]=n;const e=Go.uint32View[0],t=e>>23&511;return Go.baseTable[t]+((e&8388607)>>Go.shiftTable[t])}function $p(n){const e=n>>10;return Go.uint32View[0]=Go.mantissaTable[Go.offsetTable[e]+(n&1023)]+Go.exponentTable[e],Go.floatView[0]}class Zo{static toHalfFloat(e){return qa(e)}static fromHalfFloat(e){return $p(e)}}const Ui=new H,Qg=new Ee;let OH=0;class pn{constructor(e,t,i=!1){if(Array.isArray(e))throw new TypeError("THREE.BufferAttribute: array should be a Typed Array.");this.isBufferAttribute=!0,Object.defineProperty(this,"id",{value:OH++}),this.name="",this.array=e,this.itemSize=t,this.count=e!==void 0?e.length/t:0,this.normalized=i,this.usage=i0,this.updateRanges=[],this.gpuType=Sn,this.version=0}onUploadCallback(){}set needsUpdate(e){e===!0&&this.version++}setUsage(e){return this.usage=e,this}addUpdateRange(e,t){this.updateRanges.push({start:e,count:t})}clearUpdateRanges(){this.updateRanges.length=0}copy(e){return this.name=e.name,this.array=new e.array.constructor(e.array),this.itemSize=e.itemSize,this.count=e.count,this.normalized=e.normalized,this.usage=e.usage,this.gpuType=e.gpuType,this}copyAt(e,t,i){e*=this.itemSize,i*=t.itemSize;for(let a=0,r=this.itemSize;at.count&&_t("BufferGeometry: Buffer size too small for points data. Use .dispose() and create a new geometry."),t.needsUpdate=!0}return this}computeBoundingBox(){this.boundingBox===null&&(this.boundingBox=new sa);const e=this.attributes.position,t=this.morphAttributes.position;if(e&&e.isGLBufferAttribute){qt("BufferGeometry.computeBoundingBox(): GLBufferAttribute requires a manual bounding box.",this),this.boundingBox.set(new H(-1/0,-1/0,-1/0),new H(1/0,1/0,1/0));return}if(e!==void 0){if(this.boundingBox.setFromBufferAttribute(e),t)for(let i=0,a=t.length;i0&&(e.userData=this.userData),this.parameters!==void 0){const c=this.parameters;for(const h in c)c[h]!==void 0&&(e[h]=c[h]);return e}e.data={attributes:{}};const t=this.index;t!==null&&(e.data.index={type:t.array.constructor.name,array:Array.prototype.slice.call(t.array)});const i=this.attributes;for(const c in i){const h=i[c];e.data.attributes[c]=h.toJSON(e.data)}const a={};let r=!1;for(const c in this.morphAttributes){const h=this.morphAttributes[c],f=[];for(let d=0,m=h.length;d0&&(a[c]=f,r=!0)}r&&(e.data.morphAttributes=a,e.data.morphTargetsRelative=this.morphTargetsRelative);const s=this.groups;s.length>0&&(e.data.groups=JSON.parse(JSON.stringify(s)));const o=this.boundingSphere;return o!==null&&(e.data.boundingSphere=o.toJSON()),e}clone(){return new this.constructor().copy(this)}copy(e){this.index=null,this.attributes={},this.morphAttributes={},this.groups=[],this.boundingBox=null,this.boundingSphere=null;const t={};this.name=e.name;const i=e.index;i!==null&&this.setIndex(i.clone());const a=e.attributes;for(const h in a){const f=a[h];this.setAttribute(h,f.clone(t))}const r=e.morphAttributes;for(const h in r){const f=[],d=r[h];for(let m=0,g=d.length;m0){const a=t[i[0]];if(a!==void 0){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let r=0,s=a.length;r(e.far-e.near)**2))&&(Vw.copy(r).invert(),Yc.copy(e.ray).applyMatrix4(Vw),!(i.boundingBox!==null&&Yc.intersectsBox(i.boundingBox)===!1)&&this._computeIntersections(e,t,Yc)))}_computeIntersections(e,t,i){let a;const r=this.geometry,s=this.material,o=r.index,c=r.attributes.position,h=r.attributes.uv,f=r.attributes.uv1,d=r.attributes.normal,m=r.groups,g=r.drawRange;if(o!==null)if(Array.isArray(s))for(let y=0,E=m.length;yt.far?null:{distance:h,point:av.clone(),object:n}}function rv(n,e,t,i,a,r,s,o,c,h){n.getVertexPosition(o,ev),n.getVertexPosition(c,tv),n.getVertexPosition(h,nv);const f=zH(n,e,t,i,ev,tv,nv,Xw);if(f){const d=new H;Ja.getBarycoord(Xw,ev,tv,nv,d),a&&(f.uv=Ja.getInterpolatedAttribute(a,o,c,h,d,new Ee)),r&&(f.uv1=Ja.getInterpolatedAttribute(r,o,c,h,d,new Ee)),s&&(f.normal=Ja.getInterpolatedAttribute(s,o,c,h,d,new H),f.normal.dot(i.direction)>0&&f.normal.multiplyScalar(-1));const m={a:o,b:c,c:h,normal:new H,materialIndex:0};Ja.getNormal(ev,tv,nv,m.normal),f.face=m,f.barycoord=d}return f}class lh extends Xt{constructor(e=1,t=1,i=1,a=1,r=1,s=1){super(),this.type="BoxGeometry",this.parameters={width:e,height:t,depth:i,widthSegments:a,heightSegments:r,depthSegments:s};const o=this;a=Math.floor(a),r=Math.floor(r),s=Math.floor(s);const c=[],h=[],f=[],d=[];let m=0,g=0;y("z","y","x",-1,-1,i,t,e,s,r,0),y("z","y","x",1,-1,i,t,-e,s,r,1),y("x","z","y",1,1,e,i,t,a,s,2),y("x","z","y",1,-1,e,i,-t,a,s,3),y("x","y","z",1,-1,e,t,i,a,r,4),y("x","y","z",-1,-1,e,t,-i,a,r,5),this.setIndex(c),this.setAttribute("position",new Dt(h,3)),this.setAttribute("normal",new Dt(f,3)),this.setAttribute("uv",new Dt(d,2));function y(E,S,v,_,A,b,O,N,L,B,w){const D=b/L,G=O/B,J=b/2,$=O/2,se=N/2,le=L+1,q=B+1;let te=0,ee=0;const de=new H;for(let ue=0;ue0?1:-1,f.push(de.x,de.y,de.z),d.push(He/L),d.push(1-ue/B),te+=1}}for(let ue=0;ue0&&(t.defines=this.defines),t.vertexShader=this.vertexShader,t.fragmentShader=this.fragmentShader,t.lights=this.lights,t.clipping=this.clipping;const i={};for(const a in this.extensions)this.extensions[a]===!0&&(i[a]=!0);return Object.keys(i).length>0&&(t.extensions=i),t}}class so extends fn{constructor(){super(),this.isCamera=!0,this.type="Camera",this.matrixWorldInverse=new lt,this.projectionMatrix=new lt,this.projectionMatrixInverse=new lt,this.coordinateSystem=Er,this._reversedDepth=!1}get reversedDepth(){return this._reversedDepth}copy(e,t){return super.copy(e,t),this.matrixWorldInverse.copy(e.matrixWorldInverse),this.projectionMatrix.copy(e.projectionMatrix),this.projectionMatrixInverse.copy(e.projectionMatrixInverse),this.coordinateSystem=e.coordinateSystem,this}getWorldDirection(e){return super.getWorldDirection(e).negate()}updateMatrixWorld(e){super.updateMatrixWorld(e),this.matrixWorldInverse.copy(this.matrixWorld).invert()}updateWorldMatrix(e,t){super.updateWorldMatrix(e,t),this.matrixWorldInverse.copy(this.matrixWorld).invert()}clone(){return new this.constructor().copy(this)}}const Bl=new H,Ww=new Ee,Yw=new Ee;let Jn=class extends so{constructor(e=50,t=1,i=.1,a=2e3){super(),this.isPerspectiveCamera=!0,this.type="PerspectiveCamera",this.fov=e,this.zoom=1,this.near=i,this.far=a,this.focus=10,this.aspect=t,this.view=null,this.filmGauge=35,this.filmOffset=0,this.updateProjectionMatrix()}copy(e,t){return super.copy(e,t),this.fov=e.fov,this.zoom=e.zoom,this.near=e.near,this.far=e.far,this.focus=e.focus,this.aspect=e.aspect,this.view=e.view===null?null:Object.assign({},e.view),this.filmGauge=e.filmGauge,this.filmOffset=e.filmOffset,this}setFocalLength(e){const t=.5*this.getFilmHeight()/e;this.fov=xd*2*Math.atan(t),this.updateProjectionMatrix()}getFocalLength(){const e=Math.tan(Du*.5*this.fov);return .5*this.getFilmHeight()/e}getEffectiveFOV(){return xd*2*Math.atan(Math.tan(Du*.5*this.fov)/this.zoom)}getFilmWidth(){return this.filmGauge*Math.min(this.aspect,1)}getFilmHeight(){return this.filmGauge/Math.max(this.aspect,1)}getViewBounds(e,t,i){Bl.set(-1,-1,.5).applyMatrix4(this.projectionMatrixInverse),t.set(Bl.x,Bl.y).multiplyScalar(-e/Bl.z),Bl.set(1,1,.5).applyMatrix4(this.projectionMatrixInverse),i.set(Bl.x,Bl.y).multiplyScalar(-e/Bl.z)}getViewSize(e,t){return this.getViewBounds(e,Ww,Yw),t.subVectors(Yw,Ww)}setViewOffset(e,t,i,a,r,s){this.aspect=e/t,this.view===null&&(this.view={enabled:!0,fullWidth:1,fullHeight:1,offsetX:0,offsetY:0,width:1,height:1}),this.view.enabled=!0,this.view.fullWidth=e,this.view.fullHeight=t,this.view.offsetX=i,this.view.offsetY=a,this.view.width=r,this.view.height=s,this.updateProjectionMatrix()}clearViewOffset(){this.view!==null&&(this.view.enabled=!1),this.updateProjectionMatrix()}updateProjectionMatrix(){const e=this.near;let t=e*Math.tan(Du*.5*this.fov)/this.zoom,i=2*t,a=this.aspect*i,r=-.5*a;const s=this.view;if(this.view!==null&&this.view.enabled){const c=s.fullWidth,h=s.fullHeight;r+=s.offsetX*a/c,t-=s.offsetY*i/h,a*=s.width/c,i*=s.height/h}const o=this.filmOffset;o!==0&&(r+=e*o/this.getFilmWidth()),this.projectionMatrix.makePerspective(r,r+a,t,t-i,e,this.far,this.coordinateSystem,this.reversedDepth),this.projectionMatrixInverse.copy(this.projectionMatrix).invert()}toJSON(e){const t=super.toJSON(e);return t.object.fov=this.fov,t.object.zoom=this.zoom,t.object.near=this.near,t.object.far=this.far,t.object.focus=this.focus,t.object.aspect=this.aspect,this.view!==null&&(t.object.view=Object.assign({},this.view)),t.object.filmGauge=this.filmGauge,t.object.filmOffset=this.filmOffset,t}};const Qh=-90,$h=1;class lB extends fn{constructor(e,t,i){super(),this.type="CubeCamera",this.renderTarget=i,this.coordinateSystem=null,this.activeMipmapLevel=0;const a=new Jn(Qh,$h,e,t);a.layers=this.layers,this.add(a);const r=new Jn(Qh,$h,e,t);r.layers=this.layers,this.add(r);const s=new Jn(Qh,$h,e,t);s.layers=this.layers,this.add(s);const o=new Jn(Qh,$h,e,t);o.layers=this.layers,this.add(o);const c=new Jn(Qh,$h,e,t);c.layers=this.layers,this.add(c);const h=new Jn(Qh,$h,e,t);h.layers=this.layers,this.add(h)}updateCoordinateSystem(){const e=this.coordinateSystem,t=this.children.concat(),[i,a,r,s,o,c]=t;for(const h of t)this.remove(h);if(e===Er)i.up.set(0,1,0),i.lookAt(1,0,0),a.up.set(0,1,0),a.lookAt(-1,0,0),r.up.set(0,0,-1),r.lookAt(0,1,0),s.up.set(0,0,1),s.lookAt(0,-1,0),o.up.set(0,1,0),o.lookAt(0,0,1),c.up.set(0,1,0),c.lookAt(0,0,-1);else if(e===gd)i.up.set(0,-1,0),i.lookAt(-1,0,0),a.up.set(0,-1,0),a.lookAt(1,0,0),r.up.set(0,0,1),r.lookAt(0,1,0),s.up.set(0,0,-1),s.lookAt(0,-1,0),o.up.set(0,-1,0),o.lookAt(0,0,1),c.up.set(0,-1,0),c.lookAt(0,0,-1);else throw new Error("THREE.CubeCamera.updateCoordinateSystem(): Invalid coordinate system: "+e);for(const h of t)this.add(h),h.updateMatrixWorld()}update(e,t){this.parent===null&&this.updateMatrixWorld();const{renderTarget:i,activeMipmapLevel:a}=this;this.coordinateSystem!==e.coordinateSystem&&(this.coordinateSystem=e.coordinateSystem,this.updateCoordinateSystem());const[r,s,o,c,h,f]=this.children,d=e.getRenderTarget(),m=e.getActiveCubeFace(),g=e.getActiveMipmapLevel(),y=e.xr.enabled;e.xr.enabled=!1;const E=i.texture.generateMipmaps;i.texture.generateMipmaps=!1,e.setRenderTarget(i,0,a),e.render(t,r),e.setRenderTarget(i,1,a),e.render(t,s),e.setRenderTarget(i,2,a),e.render(t,o),e.setRenderTarget(i,3,a),e.render(t,c),e.setRenderTarget(i,4,a),e.render(t,h),i.texture.generateMipmaps=E,e.setRenderTarget(i,5,a),e.render(t,f),e.setRenderTarget(d,m,g),e.xr.enabled=y,i.texture.needsPMREMUpdate=!0}}class w0 extends vn{constructor(e=[],t=no,i,a,r,s,o,c,h,f){super(e,t,i,a,r,s,o,c,h,f),this.isCubeTexture=!0,this.flipY=!1}get images(){return this.image}set images(e){this.image=e}}class z3 extends oi{constructor(e=1,t={}){super(e,e,t),this.isWebGLCubeRenderTarget=!0;const i={width:e,height:e,depth:1},a=[i,i,i,i,i,i];this.texture=new w0(a),this._setTextureOptions(t),this.texture.isRenderTargetTexture=!0}fromEquirectangularTexture(e,t){this.texture.type=t.type,this.texture.colorSpace=t.colorSpace,this.texture.generateMipmaps=t.generateMipmaps,this.texture.minFilter=t.minFilter,this.texture.magFilter=t.magFilter;const i={uniforms:{tEquirect:{value:null}},vertexShader:` + + varying vec3 vWorldDirection; + + vec3 transformDirection( in vec3 dir, in mat4 matrix ) { + + return normalize( ( matrix * vec4( dir, 0.0 ) ).xyz ); + + } + + void main() { + + vWorldDirection = transformDirection( position, modelMatrix ); + + #include + #include + + } + `,fragmentShader:` + + uniform sampler2D tEquirect; + + varying vec3 vWorldDirection; + + #include + + void main() { + + vec3 direction = normalize( vWorldDirection ); + + vec2 sampleUV = equirectUv( direction ); + + gl_FragColor = texture2D( tEquirect, sampleUV ); + + } + `},a=new lh(5,5,5),r=new Di({name:"CubemapFromEquirect",uniforms:_d(i.uniforms),vertexShader:i.vertexShader,fragmentShader:i.fragmentShader,side:Wi,blending:ga});r.uniforms.tEquirect.value=t;const s=new Xn(a,r),o=t.minFilter;return t.minFilter===Sr&&(t.minFilter=Bt),new lB(1,10,this).update(e,s),t.minFilter=o,s.geometry.dispose(),s.material.dispose(),this}clear(e,t=!0,i=!0,a=!0){const r=e.getRenderTarget();for(let s=0;s<6;s++)e.setRenderTarget(this,s),e.clear(t,i,a);e.setRenderTarget(r)}}class jo extends fn{constructor(){super(),this.isGroup=!0,this.type="Group"}}const XH={type:"move"};class h1{constructor(){this._targetRay=null,this._grip=null,this._hand=null}getHandSpace(){return this._hand===null&&(this._hand=new jo,this._hand.matrixAutoUpdate=!1,this._hand.visible=!1,this._hand.joints={},this._hand.inputState={pinching:!1}),this._hand}getTargetRaySpace(){return this._targetRay===null&&(this._targetRay=new jo,this._targetRay.matrixAutoUpdate=!1,this._targetRay.visible=!1,this._targetRay.hasLinearVelocity=!1,this._targetRay.linearVelocity=new H,this._targetRay.hasAngularVelocity=!1,this._targetRay.angularVelocity=new H),this._targetRay}getGripSpace(){return this._grip===null&&(this._grip=new jo,this._grip.matrixAutoUpdate=!1,this._grip.visible=!1,this._grip.hasLinearVelocity=!1,this._grip.linearVelocity=new H,this._grip.hasAngularVelocity=!1,this._grip.angularVelocity=new H),this._grip}dispatchEvent(e){return this._targetRay!==null&&this._targetRay.dispatchEvent(e),this._grip!==null&&this._grip.dispatchEvent(e),this._hand!==null&&this._hand.dispatchEvent(e),this}connect(e){if(e&&e.hand){const t=this._hand;if(t)for(const i of e.hand.values())this._getHandJoint(t,i)}return this.dispatchEvent({type:"connected",data:e}),this}disconnect(e){return this.dispatchEvent({type:"disconnected",data:e}),this._targetRay!==null&&(this._targetRay.visible=!1),this._grip!==null&&(this._grip.visible=!1),this._hand!==null&&(this._hand.visible=!1),this}update(e,t,i){let a=null,r=null,s=null;const o=this._targetRay,c=this._grip,h=this._hand;if(e&&t.session.visibilityState!=="visible-blurred"){if(h&&e.hand){s=!0;for(const E of e.hand.values()){const S=t.getJointPose(E,i),v=this._getHandJoint(h,E);S!==null&&(v.matrix.fromArray(S.transform.matrix),v.matrix.decompose(v.position,v.rotation,v.scale),v.matrixWorldNeedsUpdate=!0,v.jointRadius=S.radius),v.visible=S!==null}const f=h.joints["index-finger-tip"],d=h.joints["thumb-tip"],m=f.position.distanceTo(d.position),g=.02,y=.005;h.inputState.pinching&&m>g+y?(h.inputState.pinching=!1,this.dispatchEvent({type:"pinchend",handedness:e.handedness,target:this})):!h.inputState.pinching&&m<=g-y&&(h.inputState.pinching=!0,this.dispatchEvent({type:"pinchstart",handedness:e.handedness,target:this}))}else c!==null&&e.gripSpace&&(r=t.getPose(e.gripSpace,i),r!==null&&(c.matrix.fromArray(r.transform.matrix),c.matrix.decompose(c.position,c.rotation,c.scale),c.matrixWorldNeedsUpdate=!0,r.linearVelocity?(c.hasLinearVelocity=!0,c.linearVelocity.copy(r.linearVelocity)):c.hasLinearVelocity=!1,r.angularVelocity?(c.hasAngularVelocity=!0,c.angularVelocity.copy(r.angularVelocity)):c.hasAngularVelocity=!1));o!==null&&(a=t.getPose(e.targetRaySpace,i),a===null&&r!==null&&(a=r),a!==null&&(o.matrix.fromArray(a.transform.matrix),o.matrix.decompose(o.position,o.rotation,o.scale),o.matrixWorldNeedsUpdate=!0,a.linearVelocity?(o.hasLinearVelocity=!0,o.linearVelocity.copy(a.linearVelocity)):o.hasLinearVelocity=!1,a.angularVelocity?(o.hasAngularVelocity=!0,o.angularVelocity.copy(a.angularVelocity)):o.hasAngularVelocity=!1,this.dispatchEvent(XH)))}return o!==null&&(o.visible=a!==null),c!==null&&(c.visible=r!==null),h!==null&&(h.visible=s!==null),this}_getHandJoint(e,t){if(e.joints[t.jointName]===void 0){const i=new jo;i.matrixAutoUpdate=!1,i.visible=!1,e.joints[t.jointName]=i,e.add(i)}return e.joints[t.jointName]}}class _y{constructor(e,t=25e-5){this.isFogExp2=!0,this.name="",this.color=new dt(e),this.density=t}clone(){return new _y(this.color,this.density)}toJSON(){return{type:"FogExp2",name:this.name,color:this.color.getHex(),density:this.density}}}class Sy{constructor(e,t=1,i=1e3){this.isFog=!0,this.name="",this.color=new dt(e),this.near=t,this.far=i}clone(){return new Sy(this.color,this.near,this.far)}toJSON(){return{type:"Fog",name:this.name,color:this.color.getHex(),near:this.near,far:this.far}}}let al=class extends fn{constructor(){super(),this.isScene=!0,this.type="Scene",this.background=null,this.environment=null,this.fog=null,this.backgroundBlurriness=0,this.backgroundIntensity=1,this.backgroundRotation=new Dr,this.environmentIntensity=1,this.environmentRotation=new Dr,this.overrideMaterial=null,typeof __THREE_DEVTOOLS__<"u"&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("observe",{detail:this}))}copy(e,t){return super.copy(e,t),e.background!==null&&(this.background=e.background.clone()),e.environment!==null&&(this.environment=e.environment.clone()),e.fog!==null&&(this.fog=e.fog.clone()),this.backgroundBlurriness=e.backgroundBlurriness,this.backgroundIntensity=e.backgroundIntensity,this.backgroundRotation.copy(e.backgroundRotation),this.environmentIntensity=e.environmentIntensity,this.environmentRotation.copy(e.environmentRotation),e.overrideMaterial!==null&&(this.overrideMaterial=e.overrideMaterial.clone()),this.matrixAutoUpdate=e.matrixAutoUpdate,this}toJSON(e){const t=super.toJSON(e);return this.fog!==null&&(t.object.fog=this.fog.toJSON()),this.backgroundBlurriness>0&&(t.object.backgroundBlurriness=this.backgroundBlurriness),this.backgroundIntensity!==1&&(t.object.backgroundIntensity=this.backgroundIntensity),t.object.backgroundRotation=this.backgroundRotation.toArray(),this.environmentIntensity!==1&&(t.object.environmentIntensity=this.environmentIntensity),t.object.environmentRotation=this.environmentRotation.toArray(),t}};class Xu{constructor(e,t){this.isInterleavedBuffer=!0,this.array=e,this.stride=t,this.count=e!==void 0?e.length/t:0,this.usage=i0,this.updateRanges=[],this.version=0,this.uuid=Cr()}onUploadCallback(){}set needsUpdate(e){e===!0&&this.version++}setUsage(e){return this.usage=e,this}addUpdateRange(e,t){this.updateRanges.push({start:e,count:t})}clearUpdateRanges(){this.updateRanges.length=0}copy(e){return this.array=new e.array.constructor(e.array),this.count=e.count,this.stride=e.stride,this.usage=e.usage,this}copyAt(e,t,i){e*=this.stride,i*=t.stride;for(let a=0,r=this.stride;ae.far||t.push({distance:c,point:Np.clone(),uv:Ja.getInterpolation(Np,sv,Ip,ov,qw,IA,Zw,new Ee),face:null,object:this})}copy(e,t){return super.copy(e,t),e.center!==void 0&&this.center.copy(e.center),this.material=e.material,this}}function lv(n,e,t,i,a,r){af.subVectors(n,t).addScalar(.5).multiply(i),a!==void 0?(Op.x=r*af.x-a*af.y,Op.y=a*af.x+r*af.y):Op.copy(af),n.copy(e),n.x+=Op.x,n.y+=Op.y,n.applyMatrix4(cB)}const cv=new H,jw=new H;class hB extends fn{constructor(){super(),this.isLOD=!0,this._currentLevel=0,this.type="LOD",Object.defineProperties(this,{levels:{enumerable:!0,value:[]}}),this.autoUpdate=!0}copy(e){super.copy(e,!1);const t=e.levels;for(let i=0,a=t.length;i0){let i,a;for(i=1,a=t.length;i0){cv.setFromMatrixPosition(this.matrixWorld);const a=e.ray.origin.distanceTo(cv);this.getObjectForDistance(a).raycast(e,t)}}update(e){const t=this.levels;if(t.length>1){cv.setFromMatrixPosition(e.matrixWorld),jw.setFromMatrixPosition(this.matrixWorld);const i=cv.distanceTo(jw)/e.zoom;t[0].object.visible=!0;let a,r;for(a=1,r=t.length;a=s)t[a-1].object.visible=!1,t[a].object.visible=!0;else break}for(this._currentLevel=a-1;a1?null:t.copy(e.start).addScaledVector(i,r)}intersectsLine(e){const t=this.distanceToPoint(e.start),i=this.distanceToPoint(e.end);return t<0&&i>0||i<0&&t>0}intersectsBox(e){return e.intersectsPlane(this)}intersectsSphere(e){return e.intersectsPlane(this)}coplanarPoint(e){return e.copy(this.normal).multiplyScalar(-this.constant)}applyMatrix4(e,t){const i=t||jH.getNormalMatrix(e),a=this.coplanarPoint(LA).applyMatrix4(e),r=this.normal.applyMatrix3(i).normalize();return this.constant=-a.dot(r),this}translate(e){return this.constant-=e.dot(this.normal),this}equals(e){return e.normal.equals(this.normal)&&e.constant===this.constant}clone(){return new this.constructor().copy(this)}}const qc=new zi,KH=new Ee(.5,.5),fv=new H;class Hd{constructor(e=new Lo,t=new Lo,i=new Lo,a=new Lo,r=new Lo,s=new Lo){this.planes=[e,t,i,a,r,s]}set(e,t,i,a,r,s){const o=this.planes;return o[0].copy(e),o[1].copy(t),o[2].copy(i),o[3].copy(a),o[4].copy(r),o[5].copy(s),this}copy(e){const t=this.planes;for(let i=0;i<6;i++)t[i].copy(e.planes[i]);return this}setFromProjectionMatrix(e,t=Er,i=!1){const a=this.planes,r=e.elements,s=r[0],o=r[1],c=r[2],h=r[3],f=r[4],d=r[5],m=r[6],g=r[7],y=r[8],E=r[9],S=r[10],v=r[11],_=r[12],A=r[13],b=r[14],O=r[15];if(a[0].setComponents(h-s,g-f,v-y,O-_).normalize(),a[1].setComponents(h+s,g+f,v+y,O+_).normalize(),a[2].setComponents(h+o,g+d,v+E,O+A).normalize(),a[3].setComponents(h-o,g-d,v-E,O-A).normalize(),i)a[4].setComponents(c,m,S,b).normalize(),a[5].setComponents(h-c,g-m,v-S,O-b).normalize();else if(a[4].setComponents(h-c,g-m,v-S,O-b).normalize(),t===Er)a[5].setComponents(h+c,g+m,v+S,O+b).normalize();else if(t===gd)a[5].setComponents(c,m,S,b).normalize();else throw new Error("THREE.Frustum.setFromProjectionMatrix(): Invalid coordinate system: "+t);return this}intersectsObject(e){if(e.boundingSphere!==void 0)e.boundingSphere===null&&e.computeBoundingSphere(),qc.copy(e.boundingSphere).applyMatrix4(e.matrixWorld);else{const t=e.geometry;t.boundingSphere===null&&t.computeBoundingSphere(),qc.copy(t.boundingSphere).applyMatrix4(e.matrixWorld)}return this.intersectsSphere(qc)}intersectsSprite(e){qc.center.set(0,0,0);const t=KH.distanceTo(e.center);return qc.radius=.7071067811865476+t,qc.applyMatrix4(e.matrixWorld),this.intersectsSphere(qc)}intersectsSphere(e){const t=this.planes,i=e.center,a=-e.radius;for(let r=0;r<6;r++)if(t[r].distanceToPoint(i)0?e.max.x:e.min.x,fv.y=a.normal.y>0?e.max.y:e.min.y,fv.z=a.normal.z>0?e.max.z:e.min.z,a.distanceToPoint(fv)<0)return!1}return!0}containsPoint(e){const t=this.planes;for(let i=0;i<6;i++)if(t[i].distanceToPoint(e)<0)return!1;return!0}clone(){return new this.constructor().copy(this)}}const Vs=new lt,ks=new Hd;class Ey{constructor(){this.coordinateSystem=Er}intersectsObject(e,t){if(!t.isArrayCamera||t.cameras.length===0)return!1;for(let i=0;i=r.length&&r.push({start:-1,count:-1,z:-1,index:-1});const o=r[this.index];s.push(o),this.index++,o.start=e,o.count=t,o.z=i,o.index=a}reset(){this.list.length=0,this.index=0}}const Ya=new lt,ez=new dt(1,1,1),a4=new Hd,tz=new Ey,dv=new sa,Zc=new zi,Lp=new H,r4=new H,nz=new H,FA=new $H,Ea=new Xn,pv=[];function iz(n,e,t=0){const i=e.itemSize;if(n.isInterleavedBufferAttribute||n.array.constructor!==e.array.constructor){const a=n.count;for(let r=0;r65535?new Uint32Array(a):new Uint16Array(a);t.setIndex(new pn(r,1))}this._geometryInitialized=!0}}_validateGeometry(e){const t=this.geometry;if(!!e.getIndex()!=!!t.getIndex())throw new Error('THREE.BatchedMesh: All geometries must consistently have "index".');for(const i in t.attributes){if(!e.hasAttribute(i))throw new Error(`THREE.BatchedMesh: Added geometry missing "${i}". All geometries must have consistent attributes.`);const a=e.getAttribute(i),r=t.getAttribute(i);if(a.itemSize!==r.itemSize||a.normalized!==r.normalized)throw new Error("THREE.BatchedMesh: All attributes must have a consistent itemSize and normalized value.")}}validateInstanceId(e){const t=this._instanceInfo;if(e<0||e>=t.length||t[e].active===!1)throw new Error(`THREE.BatchedMesh: Invalid instanceId ${e}. Instance is either out of range or has been deleted.`)}validateGeometryId(e){const t=this._geometryInfo;if(e<0||e>=t.length||t[e].active===!1)throw new Error(`THREE.BatchedMesh: Invalid geometryId ${e}. Geometry is either out of range or has been deleted.`)}setCustomSort(e){return this.customSort=e,this}computeBoundingBox(){this.boundingBox===null&&(this.boundingBox=new sa);const e=this.boundingBox,t=this._instanceInfo;e.makeEmpty();for(let i=0,a=t.length;i=this.maxInstanceCount&&this._availableInstanceIds.length===0)throw new Error("THREE.BatchedMesh: Maximum item count reached.");const i={visible:!0,active:!0,geometryIndex:e};let a=null;this._availableInstanceIds.length>0?(this._availableInstanceIds.sort(PA),a=this._availableInstanceIds.shift(),this._instanceInfo[a]=i):(a=this._instanceInfo.length,this._instanceInfo.push(i));const r=this._matricesTexture;Ya.identity().toArray(r.image.data,a*16),r.needsUpdate=!0;const s=this._colorsTexture;return s&&(ez.toArray(s.image.data,a*4),s.needsUpdate=!0),this._visibilityChanged=!0,a}addGeometry(e,t=-1,i=-1){this._initializeGeometry(e),this._validateGeometry(e);const a={vertexStart:-1,vertexCount:-1,reservedVertexCount:-1,indexStart:-1,indexCount:-1,reservedIndexCount:-1,start:-1,count:-1,boundingBox:null,boundingSphere:null,active:!0},r=this._geometryInfo;a.vertexStart=this._nextVertexStart,a.reservedVertexCount=t===-1?e.getAttribute("position").count:t;const s=e.getIndex();if(s!==null&&(a.indexStart=this._nextIndexStart,a.reservedIndexCount=i===-1?s.count:i),a.indexStart!==-1&&a.indexStart+a.reservedIndexCount>this._maxIndexCount||a.vertexStart+a.reservedVertexCount>this._maxVertexCount)throw new Error("THREE.BatchedMesh: Reserved space request exceeds the maximum buffer size.");let c;return this._availableGeometryIds.length>0?(this._availableGeometryIds.sort(PA),c=this._availableGeometryIds.shift(),r[c]=a):(c=this._geometryCount,this._geometryCount++,r.push(a)),this.setGeometryAt(c,e),this._nextIndexStart=a.indexStart+a.reservedIndexCount,this._nextVertexStart=a.vertexStart+a.reservedVertexCount,c}setGeometryAt(e,t){if(e>=this._geometryCount)throw new Error("THREE.BatchedMesh: Maximum geometry count reached.");this._validateGeometry(t);const i=this.geometry,a=i.getIndex()!==null,r=i.getIndex(),s=t.getIndex(),o=this._geometryInfo[e];if(a&&s.count>o.reservedIndexCount||t.attributes.position.count>o.reservedVertexCount)throw new Error("THREE.BatchedMesh: Reserved space not large enough for provided geometry.");const c=o.vertexStart,h=o.reservedVertexCount;o.vertexCount=t.getAttribute("position").count;for(const f in i.attributes){const d=t.getAttribute(f),m=i.getAttribute(f);iz(d,m,c);const g=d.itemSize;for(let y=d.count,E=h;y=t.length||t[e].active===!1)return this;const i=this._instanceInfo;for(let a=0,r=i.length;ao).sort((s,o)=>i[s].vertexStart-i[o].vertexStart),r=this.geometry;for(let s=0,o=i.length;s=this._geometryCount)return null;const i=this.geometry,a=this._geometryInfo[e];if(a.boundingBox===null){const r=new sa,s=i.index,o=i.attributes.position;for(let c=a.start,h=a.start+a.count;c=this._geometryCount)return null;const i=this.geometry,a=this._geometryInfo[e];if(a.boundingSphere===null){const r=new zi;this.getBoundingBoxAt(e,dv),dv.getCenter(r.center);const s=i.index,o=i.attributes.position;let c=0;for(let h=a.start,f=a.start+a.count;ho.active);if(Math.max(...i.map(o=>o.vertexStart+o.reservedVertexCount))>e)throw new Error(`BatchedMesh: Geometry vertex values are being used outside the range ${t}. Cannot shrink further.`);if(this.geometry.index&&Math.max(...i.map(c=>c.indexStart+c.reservedIndexCount))>t)throw new Error(`BatchedMesh: Geometry index values are being used outside the range ${t}. Cannot shrink further.`);const r=this.geometry;r.dispose(),this._maxVertexCount=e,this._maxIndexCount=t,this._geometryInitialized&&(this._geometryInitialized=!1,this.geometry=new Xt,this._initializeGeometry(r));const s=this.geometry;r.index&&jc(r.index.array,s.index.array);for(const o in r.attributes)jc(r.attributes[o].array,s.attributes[o].array)}raycast(e,t){const i=this._instanceInfo,a=this._geometryInfo,r=this.matrixWorld,s=this.geometry;Ea.material=this.material,Ea.geometry.index=s.index,Ea.geometry.attributes=s.attributes,Ea.geometry.boundingBox===null&&(Ea.geometry.boundingBox=new sa),Ea.geometry.boundingSphere===null&&(Ea.geometry.boundingSphere=new zi);for(let o=0,c=i.length;o({...t,boundingBox:t.boundingBox!==null?t.boundingBox.clone():null,boundingSphere:t.boundingSphere!==null?t.boundingSphere.clone():null})),this._instanceInfo=e._instanceInfo.map(t=>({...t})),this._availableInstanceIds=e._availableInstanceIds.slice(),this._availableGeometryIds=e._availableGeometryIds.slice(),this._nextIndexStart=e._nextIndexStart,this._nextVertexStart=e._nextVertexStart,this._geometryCount=e._geometryCount,this._maxInstanceCount=e._maxInstanceCount,this._maxVertexCount=e._maxVertexCount,this._maxIndexCount=e._maxIndexCount,this._geometryInitialized=e._geometryInitialized,this._multiDrawCounts=e._multiDrawCounts.slice(),this._multiDrawStarts=e._multiDrawStarts.slice(),this._indirectTexture=e._indirectTexture.clone(),this._indirectTexture.image.data=this._indirectTexture.image.data.slice(),this._matricesTexture=e._matricesTexture.clone(),this._matricesTexture.image.data=this._matricesTexture.image.data.slice(),this._colorsTexture!==null&&(this._colorsTexture=e._colorsTexture.clone(),this._colorsTexture.image.data=this._colorsTexture.image.data.slice()),this}dispose(){this.geometry.dispose(),this._matricesTexture.dispose(),this._matricesTexture=null,this._indirectTexture.dispose(),this._indirectTexture=null,this._colorsTexture!==null&&(this._colorsTexture.dispose(),this._colorsTexture=null)}onBeforeRender(e,t,i,a,r){if(!this._visibilityChanged&&!this.perObjectFrustumCulled&&!this.sortObjects)return;const s=a.getIndex(),o=s===null?1:s.array.BYTES_PER_ELEMENT,c=this._instanceInfo,h=this._multiDrawStarts,f=this._multiDrawCounts,d=this._geometryInfo,m=this.perObjectFrustumCulled,g=this._indirectTexture,y=g.image.data,E=i.isArrayCamera?tz:a4;m&&!i.isArrayCamera&&(Ya.multiplyMatrices(i.projectionMatrix,i.matrixWorldInverse).multiply(this.matrixWorld),a4.setFromProjectionMatrix(Ya,i.coordinateSystem,i.reversedDepth));let S=0;if(this.sortObjects){Ya.copy(this.matrixWorld).invert(),Lp.setFromMatrixPosition(i.matrixWorld).applyMatrix4(Ya),r4.set(0,0,-1).transformDirection(i.matrixWorld).transformDirection(Ya);for(let A=0,b=c.length;A0){const a=t[i[0]];if(a!==void 0){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let r=0,s=a.length;ri)return;HA.applyMatrix4(n.matrixWorld);const h=e.ray.origin.distanceTo(HA);if(!(he.far))return{distance:h,point:o4.clone().applyMatrix4(n.matrixWorld),index:s,face:null,faceIndex:null,barycoord:null,object:n}}const l4=new H,c4=new H;class Is extends rl{constructor(e,t){super(e,t),this.isLineSegments=!0,this.type="LineSegments"}computeLineDistances(){const e=this.geometry;if(e.index===null){const t=e.attributes.position,i=[];for(let a=0,r=t.count;a0){const a=t[i[0]];if(a!==void 0){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let r=0,s=a.length;ra.far)return;r.push({distance:h,distanceToRay:Math.sqrt(o),point:c,index:e,face:null,faceIndex:null,barycoord:null,object:s})}}class dB extends vn{constructor(e,t,i,a,r=Bt,s=Bt,o,c,h){super(e,t,i,a,r,s,o,c,h),this.isVideoTexture=!0,this.generateMipmaps=!1,this._requestVideoFrameCallbackId=0;const f=this;function d(){f.needsUpdate=!0,f._requestVideoFrameCallbackId=e.requestVideoFrameCallback(d)}"requestVideoFrameCallback"in e&&(this._requestVideoFrameCallbackId=e.requestVideoFrameCallback(d))}clone(){return new this.constructor(this.image).copy(this)}update(){const e=this.image;"requestVideoFrameCallback"in e===!1&&e.readyState>=e.HAVE_CURRENT_DATA&&(this.needsUpdate=!0)}dispose(){this._requestVideoFrameCallbackId!==0&&(this.source.data.cancelVideoFrameCallback(this._requestVideoFrameCallbackId),this._requestVideoFrameCallbackId=0),super.dispose()}}class az extends dB{constructor(e,t,i,a,r,s,o,c){super({},e,t,i,a,r,s,o,c),this.isVideoFrameTexture=!0}update(){}clone(){return new this.constructor().copy(this)}setFrame(e){this.image=e,this.needsUpdate=!0}}class rz extends vn{constructor(e,t){super({width:e,height:t}),this.isFramebufferTexture=!0,this.magFilter=$n,this.minFilter=$n,this.generateMipmaps=!1,this.needsUpdate=!0}}class by extends vn{constructor(e,t,i,a,r,s,o,c,h,f,d,m){super(null,s,o,c,h,f,a,r,d,m),this.isCompressedTexture=!0,this.image={width:t,height:i},this.mipmaps=e,this.flipY=!1,this.generateMipmaps=!1}}class sz extends by{constructor(e,t,i,a,r,s){super(e,t,i,r,s),this.isCompressedArrayTexture=!0,this.image.depth=a,this.wrapR=Vn,this.layerUpdates=new Set}addLayerUpdate(e){this.layerUpdates.add(e)}clearLayerUpdates(){this.layerUpdates.clear()}}class oz extends by{constructor(e,t,i){super(void 0,e[0].width,e[0].height,t,i,no),this.isCompressedCubeTexture=!0,this.isCubeTexture=!0,this.image=e}}class lz extends vn{constructor(e,t,i,a,r,s,o,c,h){super(e,t,i,a,r,s,o,c,h),this.isCanvasTexture=!0,this.needsUpdate=!0}}class N0 extends vn{constructor(e,t,i=ls,a,r,s,o=$n,c=$n,h,f=dd,d=1){if(f!==dd&&f!==ku)throw new Error("DepthTexture format must be either THREE.DepthFormat or THREE.DepthStencilFormat");const m={width:e,height:t,depth:d};super(m,a,r,s,o,c,f,i,h),this.isDepthTexture=!0,this.flipY=!1,this.generateMipmaps=!1,this.compareFunction=null}copy(e){return super.copy(e),this.source=new Kl(Object.assign({},e.image)),this.compareFunction=e.compareFunction,this}toJSON(e){const t=super.toJSON(e);return this.compareFunction!==null&&(t.compareFunction=this.compareFunction),t}}class Y3 extends vn{constructor(e=null){super(),this.sourceTexture=e,this.isExternalTexture=!0}copy(e){return super.copy(e),this.sourceTexture=e.sourceTexture,this}}class My extends Xt{constructor(e=1,t=1,i=4,a=8,r=1){super(),this.type="CapsuleGeometry",this.parameters={radius:e,height:t,capSegments:i,radialSegments:a,heightSegments:r},t=Math.max(0,t),i=Math.max(1,Math.floor(i)),a=Math.max(3,Math.floor(a)),r=Math.max(1,Math.floor(r));const s=[],o=[],c=[],h=[],f=t/2,d=Math.PI/2*e,m=t,g=2*d+m,y=i*2+r,E=a+1,S=new H,v=new H;for(let _=0;_<=y;_++){let A=0,b=0,O=0,N=0;if(_<=i){const w=_/i,D=w*Math.PI/2;b=-f-e*Math.cos(D),O=e*Math.sin(D),N=-e*Math.cos(D),A=w*d}else if(_<=i+r){const w=(_-i)/r;b=-f+w*t,O=e,N=0,A=d+w*m}else{const w=(_-i-r)/i,D=w*Math.PI/2;b=f+e*Math.sin(D),O=e*Math.cos(D),N=e*Math.sin(D),A=d+m+w*d}const L=Math.max(0,Math.min(1,A/g));let B=0;_===0?B=.5/a:_===y&&(B=-.5/a);for(let w=0;w<=a;w++){const D=w/a,G=D*Math.PI*2,J=Math.sin(G),$=Math.cos(G);v.x=-O*$,v.y=b,v.z=O*J,o.push(v.x,v.y,v.z),S.set(-O*$,N,O*J),S.normalize(),c.push(S.x,S.y,S.z),h.push(D+B,L)}if(_>0){const w=(_-1)*E;for(let D=0;D0&&A(!0),t>0&&A(!1)),this.setIndex(f),this.setAttribute("position",new Dt(d,3)),this.setAttribute("normal",new Dt(m,3)),this.setAttribute("uv",new Dt(g,2));function _(){const b=new H,O=new H;let N=0;const L=(t-e)/i;for(let B=0;B<=r;B++){const w=[],D=B/r,G=D*(t-e)+e;for(let J=0;J<=a;J++){const $=J/a,se=$*c+o,le=Math.sin(se),q=Math.cos(se);O.x=G*le,O.y=-D*i+S,O.z=G*q,d.push(O.x,O.y,O.z),b.set(le,L,q).normalize(),m.push(b.x,b.y,b.z),g.push($,1-D),w.push(y++)}E.push(w)}for(let B=0;B0||w!==0)&&(f.push(D,G,$),N+=3),(t>0||w!==r-1)&&(f.push(G,J,$),N+=3)}h.addGroup(v,N,0),v+=N}function A(b){const O=y,N=new Ee,L=new H;let B=0;const w=b===!0?e:t,D=b===!0?1:-1;for(let J=1;J<=a;J++)d.push(0,S*D,0),m.push(0,D,0),g.push(.5,.5),y++;const G=y;for(let J=0;J<=a;J++){const se=J/a*c+o,le=Math.cos(se),q=Math.sin(se);L.x=w*q,L.y=S*D,L.z=w*le,d.push(L.x,L.y,L.z),m.push(0,D,0),N.x=le*.5+.5,N.y=q*.5*D+.5,g.push(N.x,N.y),y++}for(let J=0;J.9&&L<.1&&(A<.2&&(s[_+0]+=1),b<.2&&(s[_+2]+=1),O<.2&&(s[_+4]+=1))}}function m(_){r.push(_.x,_.y,_.z)}function g(_,A){const b=_*3;A.x=e[b+0],A.y=e[b+1],A.z=e[b+2]}function y(){const _=new H,A=new H,b=new H,O=new H,N=new Ee,L=new Ee,B=new Ee;for(let w=0,D=0;w0)c=a-1;else{c=a;break}if(a=c,i[a]===s)return a/(r-1);const f=i[a],m=i[a+1]-f,g=(s-f)/m;return(a+g)/(r-1)}getTangent(e,t){let a=e-1e-4,r=e+1e-4;a<0&&(a=0),r>1&&(r=1);const s=this.getPoint(a),o=this.getPoint(r),c=t||(s.isVector2?new Ee:new H);return c.copy(o).sub(s).normalize(),c}getTangentAt(e,t){const i=this.getUtoTmapping(e);return this.getTangent(i,t)}computeFrenetFrames(e,t=!1){const i=new H,a=[],r=[],s=[],o=new H,c=new lt;for(let g=0;g<=e;g++){const y=g/e;a[g]=this.getTangentAt(y,new H)}r[0]=new H,s[0]=new H;let h=Number.MAX_VALUE;const f=Math.abs(a[0].x),d=Math.abs(a[0].y),m=Math.abs(a[0].z);f<=h&&(h=f,i.set(1,0,0)),d<=h&&(h=d,i.set(0,1,0)),m<=h&&i.set(0,0,1),o.crossVectors(a[0],i).normalize(),r[0].crossVectors(a[0],o),s[0].crossVectors(a[0],r[0]);for(let g=1;g<=e;g++){if(r[g]=r[g-1].clone(),s[g]=s[g-1].clone(),o.crossVectors(a[g-1],a[g]),o.length()>Number.EPSILON){o.normalize();const y=Math.acos(Gt(a[g-1].dot(a[g]),-1,1));r[g].applyMatrix4(c.makeRotationAxis(o,y))}s[g].crossVectors(a[g],r[g])}if(t===!0){let g=Math.acos(Gt(r[0].dot(r[e]),-1,1));g/=e,a[0].dot(o.crossVectors(r[0],r[e]))>0&&(g=-g);for(let y=1;y<=e;y++)r[y].applyMatrix4(c.makeRotationAxis(a[y],g*y)),s[y].crossVectors(a[y],r[y])}return{tangents:a,normals:r,binormals:s}}clone(){return new this.constructor().copy(this)}copy(e){return this.arcLengthDivisions=e.arcLengthDivisions,this}toJSON(){const e={metadata:{version:4.7,type:"Curve",generator:"Curve.toJSON"}};return e.arcLengthDivisions=this.arcLengthDivisions,e.type=this.type,e}fromJSON(e){return this.arcLengthDivisions=e.arcLengthDivisions,this}}class wy extends Bs{constructor(e=0,t=0,i=1,a=1,r=0,s=Math.PI*2,o=!1,c=0){super(),this.isEllipseCurve=!0,this.type="EllipseCurve",this.aX=e,this.aY=t,this.xRadius=i,this.yRadius=a,this.aStartAngle=r,this.aEndAngle=s,this.aClockwise=o,this.aRotation=c}getPoint(e,t=new Ee){const i=t,a=Math.PI*2;let r=this.aEndAngle-this.aStartAngle;const s=Math.abs(r)a;)r-=a;r0?0:(Math.floor(Math.abs(o)/r)+1)*r:c===0&&o===r-1&&(o=r-2,c=1);let h,f;this.closed||o>0?h=a[(o-1)%r]:(Av.subVectors(a[0],a[1]).add(a[0]),h=Av);const d=a[o%r],m=a[(o+1)%r];if(this.closed||o+2a.length-2?a.length-1:s+1],d=a[s>a.length-3?a.length-1:s+2];return i.set(f4(o,c.x,h.x,f.x,d.x),f4(o,c.y,h.y,f.y,d.y)),i}copy(e){super.copy(e),this.points=[];for(let t=0,i=e.points.length;t=i){const s=a[r]-i,o=this.curves[r],c=o.getLength(),h=c===0?0:1-s/c;return o.getPointAt(h,t)}r++}return null}getLength(){const e=this.getCurveLengths();return e[e.length-1]}updateArcLengths(){this.needsUpdate=!0,this.cacheLengths=null,this.getCurveLengths()}getCurveLengths(){if(this.cacheLengths&&this.cacheLengths.length===this.curves.length)return this.cacheLengths;const e=[];let t=0;for(let i=0,a=this.curves.length;i1&&!t[t.length-1].equals(t[0])&&t.push(t[0]),t}copy(e){super.copy(e),this.curves=[];for(let t=0,i=e.curves.length;t0){const d=h.getPoint(0);d.equals(this.currentPoint)||this.lineTo(d.x,d.y)}this.curves.push(h);const f=h.getPoint(1);return this.currentPoint.copy(f),this}copy(e){return super.copy(e),this.currentPoint.copy(e.currentPoint),this}toJSON(){const e=super.toJSON();return e.currentPoint=this.currentPoint.toArray(),e}fromJSON(e){return super.fromJSON(e),this.currentPoint.fromArray(e.currentPoint),this}}class Nu extends Dx{constructor(e){super(e),this.uuid=Cr(),this.type="Shape",this.holes=[]}getPointsHoles(e){const t=[];for(let i=0,a=this.holes.length;i80*t){o=n[0],c=n[1];let f=o,d=c;for(let m=t;mf&&(f=g),y>d&&(d=y)}h=Math.max(f-o,d-c),h=h!==0?32767/h:0}return s0(r,s,t,o,c,h,0),s}function _B(n,e,t,i,a){let r;if(a===Oz(n,e,t,i)>0)for(let s=e;s=e;s-=i)r=d4(s/i|0,n[s],n[s+1],r);return r&&Sd(r,r.next)&&(l0(r),r=r.next),r}function Yu(n,e){if(!n)return n;e||(e=n);let t=n,i;do if(i=!1,!t.steiner&&(Sd(t,t.next)||mi(t.prev,t,t.next)===0)){if(l0(t),t=e=t.prev,t===t.next)break;i=!0}else t=t.next;while(i||t!==e);return e}function s0(n,e,t,i,a,r,s){if(!n)return;!s&&r&&Mz(n,i,a,r);let o=n;for(;n.prev!==n.next;){const c=n.prev,h=n.next;if(r?xz(n,i,a,r):vz(n)){e.push(c.i,n.i,h.i),l0(n),n=h.next,o=h.next;continue}if(n=h,n===o){s?s===1?(n=yz(Yu(n),e),s0(n,e,t,i,a,r,2)):s===2&&_z(n,e,t,i,a,r):s0(Yu(n),e,t,i,a,r,1);break}}}function vz(n){const e=n.prev,t=n,i=n.next;if(mi(e,t,i)>=0)return!1;const a=e.x,r=t.x,s=i.x,o=e.y,c=t.y,h=i.y,f=Math.min(a,r,s),d=Math.min(o,c,h),m=Math.max(a,r,s),g=Math.max(o,c,h);let y=i.next;for(;y!==e;){if(y.x>=f&&y.x<=m&&y.y>=d&&y.y<=g&&em(a,o,r,c,s,h,y.x,y.y)&&mi(y.prev,y,y.next)>=0)return!1;y=y.next}return!0}function xz(n,e,t,i){const a=n.prev,r=n,s=n.next;if(mi(a,r,s)>=0)return!1;const o=a.x,c=r.x,h=s.x,f=a.y,d=r.y,m=s.y,g=Math.min(o,c,h),y=Math.min(f,d,m),E=Math.max(o,c,h),S=Math.max(f,d,m),v=OE(g,y,e,t,i),_=OE(E,S,e,t,i);let A=n.prevZ,b=n.nextZ;for(;A&&A.z>=v&&b&&b.z<=_;){if(A.x>=g&&A.x<=E&&A.y>=y&&A.y<=S&&A!==a&&A!==s&&em(o,f,c,d,h,m,A.x,A.y)&&mi(A.prev,A,A.next)>=0||(A=A.prevZ,b.x>=g&&b.x<=E&&b.y>=y&&b.y<=S&&b!==a&&b!==s&&em(o,f,c,d,h,m,b.x,b.y)&&mi(b.prev,b,b.next)>=0))return!1;b=b.nextZ}for(;A&&A.z>=v;){if(A.x>=g&&A.x<=E&&A.y>=y&&A.y<=S&&A!==a&&A!==s&&em(o,f,c,d,h,m,A.x,A.y)&&mi(A.prev,A,A.next)>=0)return!1;A=A.prevZ}for(;b&&b.z<=_;){if(b.x>=g&&b.x<=E&&b.y>=y&&b.y<=S&&b!==a&&b!==s&&em(o,f,c,d,h,m,b.x,b.y)&&mi(b.prev,b,b.next)>=0)return!1;b=b.nextZ}return!0}function yz(n,e){let t=n;do{const i=t.prev,a=t.next.next;!Sd(i,a)&&AB(i,t,t.next,a)&&o0(i,a)&&o0(a,i)&&(e.push(i.i,t.i,a.i),l0(t),l0(t.next),t=n=a),t=t.next}while(t!==n);return Yu(t)}function _z(n,e,t,i,a,r){let s=n;do{let o=s.next.next;for(;o!==s.prev;){if(s.i!==o.i&&wz(s,o)){let c=EB(s,o);s=Yu(s,s.next),c=Yu(c,c.next),s0(s,e,t,i,a,r,0),s0(c,e,t,i,a,r,0);return}o=o.next}s=s.next}while(s!==n)}function Sz(n,e,t,i){const a=[];for(let r=0,s=e.length;r=t.next.y&&t.next.y!==t.y){const d=t.x+(a-t.y)*(t.next.x-t.x)/(t.next.y-t.y);if(d<=i&&d>r&&(r=d,s=t.x=t.x&&t.x>=c&&i!==t.x&&SB(as.x||t.x===s.x&&bz(s,t)))&&(s=t,f=d)}t=t.next}while(t!==o);return s}function bz(n,e){return mi(n.prev,n,e.prev)<0&&mi(e.next,n,n.next)<0}function Mz(n,e,t,i){let a=n;do a.z===0&&(a.z=OE(a.x,a.y,e,t,i)),a.prevZ=a.prev,a.nextZ=a.next,a=a.next;while(a!==n);a.prevZ.nextZ=null,a.prevZ=null,Cz(a)}function Cz(n){let e,t=1;do{let i=n,a;n=null;let r=null;for(e=0;i;){e++;let s=i,o=0;for(let h=0;h0||c>0&&s;)o!==0&&(c===0||!s||i.z<=s.z)?(a=i,i=i.nextZ,o--):(a=s,s=s.nextZ,c--),r?r.nextZ=a:n=a,a.prevZ=r,r=a;i=s}r.nextZ=null,t*=2}while(e>1);return n}function OE(n,e,t,i,a){return n=(n-t)*a|0,e=(e-i)*a|0,n=(n|n<<8)&16711935,n=(n|n<<4)&252645135,n=(n|n<<2)&858993459,n=(n|n<<1)&1431655765,e=(e|e<<8)&16711935,e=(e|e<<4)&252645135,e=(e|e<<2)&858993459,e=(e|e<<1)&1431655765,n|e<<1}function Rz(n){let e=n,t=n;do(e.x=(n-s)*(r-o)&&(n-s)*(i-o)>=(t-s)*(e-o)&&(t-s)*(r-o)>=(a-s)*(i-o)}function em(n,e,t,i,a,r,s,o){return!(n===s&&e===o)&&SB(n,e,t,i,a,r,s,o)}function wz(n,e){return n.next.i!==e.i&&n.prev.i!==e.i&&!Dz(n,e)&&(o0(n,e)&&o0(e,n)&&Nz(n,e)&&(mi(n.prev,n,e.prev)||mi(n,e.prev,e))||Sd(n,e)&&mi(n.prev,n,n.next)>0&&mi(e.prev,e,e.next)>0)}function mi(n,e,t){return(e.y-n.y)*(t.x-e.x)-(e.x-n.x)*(t.y-e.y)}function Sd(n,e){return n.x===e.x&&n.y===e.y}function AB(n,e,t,i){const a=Tv(mi(n,e,t)),r=Tv(mi(n,e,i)),s=Tv(mi(t,i,n)),o=Tv(mi(t,i,e));return!!(a!==r&&s!==o||a===0&&Ev(n,t,e)||r===0&&Ev(n,i,e)||s===0&&Ev(t,n,i)||o===0&&Ev(t,e,i))}function Ev(n,e,t){return e.x<=Math.max(n.x,t.x)&&e.x>=Math.min(n.x,t.x)&&e.y<=Math.max(n.y,t.y)&&e.y>=Math.min(n.y,t.y)}function Tv(n){return n>0?1:n<0?-1:0}function Dz(n,e){let t=n;do{if(t.i!==n.i&&t.next.i!==n.i&&t.i!==e.i&&t.next.i!==e.i&&AB(t,t.next,n,e))return!0;t=t.next}while(t!==n);return!1}function o0(n,e){return mi(n.prev,n,n.next)<0?mi(n,e,n.next)>=0&&mi(n,n.prev,e)>=0:mi(n,e,n.prev)<0||mi(n,n.next,e)<0}function Nz(n,e){let t=n,i=!1;const a=(n.x+e.x)/2,r=(n.y+e.y)/2;do t.y>r!=t.next.y>r&&t.next.y!==t.y&&a<(t.next.x-t.x)*(r-t.y)/(t.next.y-t.y)+t.x&&(i=!i),t=t.next;while(t!==n);return i}function EB(n,e){const t=IE(n.i,n.x,n.y),i=IE(e.i,e.x,e.y),a=n.next,r=e.prev;return n.next=e,e.prev=n,t.next=a,a.prev=t,i.next=t,t.prev=i,r.next=i,i.prev=r,i}function d4(n,e,t,i){const a=IE(n,e,t);return i?(a.next=i.next,a.prev=i,i.next.prev=a,i.next=a):(a.prev=a,a.next=a),a}function l0(n){n.next.prev=n.prev,n.prev.next=n.next,n.prevZ&&(n.prevZ.nextZ=n.nextZ),n.nextZ&&(n.nextZ.prevZ=n.prevZ)}function IE(n,e,t){return{i:n,x:e,y:t,prev:null,next:null,z:0,prevZ:null,nextZ:null,steiner:!1}}function Oz(n,e,t,i){let a=0;for(let r=e,s=t-i;r2&&n[e-1].equals(n[0])&&n.pop()}function m4(n,e){for(let t=0;tNumber.EPSILON){const Ie=Math.sqrt(P),Ge=Math.sqrt(mt*mt+j*j),we=Z.x-rt/Ie,Tt=Z.y+ot/Ie,ut=Ue.x-j/Ge,wt=Ue.y+mt/Ge,bt=((ut-we)*j-(wt-Tt)*mt)/(ot*j-rt*mt);ze=we+ot*bt-Re.x,Qe=Tt+rt*bt-Re.y;const ke=ze*ze+Qe*Qe;if(ke<=2)return new Ee(ze,Qe);Ye=Math.sqrt(ke/2)}else{let Ie=!1;ot>Number.EPSILON?mt>Number.EPSILON&&(Ie=!0):ot<-Number.EPSILON?mt<-Number.EPSILON&&(Ie=!0):Math.sign(rt)===Math.sign(j)&&(Ie=!0),Ie?(ze=-rt,Qe=ot,Ye=Math.sqrt(P)):(ze=ot,Qe=rt,Ye=Math.sqrt(P/2))}return new Ee(ze/Ye,Qe/Ye)}const de=[];for(let Re=0,Z=le.length,Ue=Z-1,ze=Re+1;Re=0;Re--){const Z=Re/S,Ue=g*Math.cos(Z*Math.PI/2),ze=y*Math.sin(Z*Math.PI/2)+E;for(let Qe=0,Ye=le.length;Qe=0;){const ze=Ue;let Qe=Ue-1;Qe<0&&(Qe=Re.length-1);for(let Ye=0,ot=f+S*2;Ye0)&&g.push(A,b,N),(v!==i-1||c0!=e>0&&this.version++,this._anisotropy=e}get clearcoat(){return this._clearcoat}set clearcoat(e){this._clearcoat>0!=e>0&&this.version++,this._clearcoat=e}get iridescence(){return this._iridescence}set iridescence(e){this._iridescence>0!=e>0&&this.version++,this._iridescence=e}get dispersion(){return this._dispersion}set dispersion(e){this._dispersion>0!=e>0&&this.version++,this._dispersion=e}get sheen(){return this._sheen}set sheen(e){this._sheen>0!=e>0&&this.version++,this._sheen=e}get transmission(){return this._transmission}set transmission(e){this._transmission>0!=e>0&&this.version++,this._transmission=e}copy(e){return super.copy(e),this.defines={STANDARD:"",PHYSICAL:""},this.anisotropy=e.anisotropy,this.anisotropyRotation=e.anisotropyRotation,this.anisotropyMap=e.anisotropyMap,this.clearcoat=e.clearcoat,this.clearcoatMap=e.clearcoatMap,this.clearcoatRoughness=e.clearcoatRoughness,this.clearcoatRoughnessMap=e.clearcoatRoughnessMap,this.clearcoatNormalMap=e.clearcoatNormalMap,this.clearcoatNormalScale.copy(e.clearcoatNormalScale),this.dispersion=e.dispersion,this.ior=e.ior,this.iridescence=e.iridescence,this.iridescenceMap=e.iridescenceMap,this.iridescenceIOR=e.iridescenceIOR,this.iridescenceThicknessRange=[...e.iridescenceThicknessRange],this.iridescenceThicknessMap=e.iridescenceThicknessMap,this.sheen=e.sheen,this.sheenColor.copy(e.sheenColor),this.sheenColorMap=e.sheenColorMap,this.sheenRoughness=e.sheenRoughness,this.sheenRoughnessMap=e.sheenRoughnessMap,this.transmission=e.transmission,this.transmissionMap=e.transmissionMap,this.thickness=e.thickness,this.thicknessMap=e.thicknessMap,this.attenuationDistance=e.attenuationDistance,this.attenuationColor.copy(e.attenuationColor),this.specularIntensity=e.specularIntensity,this.specularIntensityMap=e.specularIntensityMap,this.specularColor.copy(e.specularColor),this.specularColorMap=e.specularColorMap,this}}class MB extends ri{constructor(e){super(),this.isMeshPhongMaterial=!0,this.type="MeshPhongMaterial",this.color=new dt(16777215),this.specular=new dt(1118481),this.shininess=30,this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new dt(0),this.emissiveIntensity=1,this.emissiveMap=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=Ac,this.normalScale=new Ee(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.specularMap=null,this.alphaMap=null,this.envMap=null,this.envMapRotation=new Dr,this.combine=b0,this.reflectivity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.flatShading=!1,this.fog=!0,this.setValues(e)}copy(e){return super.copy(e),this.color.copy(e.color),this.specular.copy(e.specular),this.shininess=e.shininess,this.map=e.map,this.lightMap=e.lightMap,this.lightMapIntensity=e.lightMapIntensity,this.aoMap=e.aoMap,this.aoMapIntensity=e.aoMapIntensity,this.emissive.copy(e.emissive),this.emissiveMap=e.emissiveMap,this.emissiveIntensity=e.emissiveIntensity,this.bumpMap=e.bumpMap,this.bumpScale=e.bumpScale,this.normalMap=e.normalMap,this.normalMapType=e.normalMapType,this.normalScale.copy(e.normalScale),this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this.specularMap=e.specularMap,this.alphaMap=e.alphaMap,this.envMap=e.envMap,this.envMapRotation.copy(e.envMapRotation),this.combine=e.combine,this.reflectivity=e.reflectivity,this.refractionRatio=e.refractionRatio,this.wireframe=e.wireframe,this.wireframeLinewidth=e.wireframeLinewidth,this.wireframeLinecap=e.wireframeLinecap,this.wireframeLinejoin=e.wireframeLinejoin,this.flatShading=e.flatShading,this.fog=e.fog,this}}class CB extends ri{constructor(e){super(),this.isMeshToonMaterial=!0,this.defines={TOON:""},this.type="MeshToonMaterial",this.color=new dt(16777215),this.map=null,this.gradientMap=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new dt(0),this.emissiveIntensity=1,this.emissiveMap=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=Ac,this.normalScale=new Ee(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.alphaMap=null,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.fog=!0,this.setValues(e)}copy(e){return super.copy(e),this.color.copy(e.color),this.map=e.map,this.gradientMap=e.gradientMap,this.lightMap=e.lightMap,this.lightMapIntensity=e.lightMapIntensity,this.aoMap=e.aoMap,this.aoMapIntensity=e.aoMapIntensity,this.emissive.copy(e.emissive),this.emissiveMap=e.emissiveMap,this.emissiveIntensity=e.emissiveIntensity,this.bumpMap=e.bumpMap,this.bumpScale=e.bumpScale,this.normalMap=e.normalMap,this.normalMapType=e.normalMapType,this.normalScale.copy(e.normalScale),this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this.alphaMap=e.alphaMap,this.wireframe=e.wireframe,this.wireframeLinewidth=e.wireframeLinewidth,this.wireframeLinecap=e.wireframeLinecap,this.wireframeLinejoin=e.wireframeLinejoin,this.fog=e.fog,this}}class $3 extends ri{constructor(e){super(),this.isMeshNormalMaterial=!0,this.type="MeshNormalMaterial",this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=Ac,this.normalScale=new Ee(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.wireframe=!1,this.wireframeLinewidth=1,this.flatShading=!1,this.setValues(e)}copy(e){return super.copy(e),this.bumpMap=e.bumpMap,this.bumpScale=e.bumpScale,this.normalMap=e.normalMap,this.normalMapType=e.normalMapType,this.normalScale.copy(e.normalScale),this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this.wireframe=e.wireframe,this.wireframeLinewidth=e.wireframeLinewidth,this.flatShading=e.flatShading,this}}class RB extends ri{constructor(e){super(),this.isMeshLambertMaterial=!0,this.type="MeshLambertMaterial",this.color=new dt(16777215),this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new dt(0),this.emissiveIntensity=1,this.emissiveMap=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=Ac,this.normalScale=new Ee(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.specularMap=null,this.alphaMap=null,this.envMap=null,this.envMapRotation=new Dr,this.combine=b0,this.reflectivity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.flatShading=!1,this.fog=!0,this.setValues(e)}copy(e){return super.copy(e),this.color.copy(e.color),this.map=e.map,this.lightMap=e.lightMap,this.lightMapIntensity=e.lightMapIntensity,this.aoMap=e.aoMap,this.aoMapIntensity=e.aoMapIntensity,this.emissive.copy(e.emissive),this.emissiveMap=e.emissiveMap,this.emissiveIntensity=e.emissiveIntensity,this.bumpMap=e.bumpMap,this.bumpScale=e.bumpScale,this.normalMap=e.normalMap,this.normalMapType=e.normalMapType,this.normalScale.copy(e.normalScale),this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this.specularMap=e.specularMap,this.alphaMap=e.alphaMap,this.envMap=e.envMap,this.envMapRotation.copy(e.envMapRotation),this.combine=e.combine,this.reflectivity=e.reflectivity,this.refractionRatio=e.refractionRatio,this.wireframe=e.wireframe,this.wireframeLinewidth=e.wireframeLinewidth,this.wireframeLinecap=e.wireframeLinecap,this.wireframeLinejoin=e.wireframeLinejoin,this.flatShading=e.flatShading,this.fog=e.fog,this}}class eb extends ri{constructor(e){super(),this.isMeshDepthMaterial=!0,this.type="MeshDepthMaterial",this.depthPacking=Sc,this.map=null,this.alphaMap=null,this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.wireframe=!1,this.wireframeLinewidth=1,this.setValues(e)}copy(e){return super.copy(e),this.depthPacking=e.depthPacking,this.map=e.map,this.alphaMap=e.alphaMap,this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this.wireframe=e.wireframe,this.wireframeLinewidth=e.wireframeLinewidth,this}}class tb extends ri{constructor(e){super(),this.isMeshDistanceMaterial=!0,this.type="MeshDistanceMaterial",this.map=null,this.alphaMap=null,this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.setValues(e)}copy(e){return super.copy(e),this.map=e.map,this.alphaMap=e.alphaMap,this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this}}class wB extends ri{constructor(e){super(),this.isMeshMatcapMaterial=!0,this.defines={MATCAP:""},this.type="MeshMatcapMaterial",this.color=new dt(16777215),this.matcap=null,this.map=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=Ac,this.normalScale=new Ee(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.alphaMap=null,this.wireframe=!1,this.wireframeLinewidth=1,this.flatShading=!1,this.fog=!0,this.setValues(e)}copy(e){return super.copy(e),this.defines={MATCAP:""},this.color.copy(e.color),this.matcap=e.matcap,this.map=e.map,this.bumpMap=e.bumpMap,this.bumpScale=e.bumpScale,this.normalMap=e.normalMap,this.normalMapType=e.normalMapType,this.normalScale.copy(e.normalScale),this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this.alphaMap=e.alphaMap,this.wireframe=e.wireframe,this.wireframeLinewidth=e.wireframeLinewidth,this.flatShading=e.flatShading,this.fog=e.fog,this}}class DB extends Ca{constructor(e){super(),this.isLineDashedMaterial=!0,this.type="LineDashedMaterial",this.scale=1,this.dashSize=3,this.gapSize=1,this.setValues(e)}copy(e){return super.copy(e),this.scale=e.scale,this.dashSize=e.dashSize,this.gapSize=e.gapSize,this}}function yu(n,e){return!n||n.constructor===e?n:typeof e.BYTES_PER_ELEMENT=="number"?new e(n):Array.prototype.slice.call(n)}function NB(n){return ArrayBuffer.isView(n)&&!(n instanceof DataView)}function OB(n){function e(a,r){return n[a]-n[r]}const t=n.length,i=new Array(t);for(let a=0;a!==t;++a)i[a]=a;return i.sort(e),i}function BE(n,e,t){const i=n.length,a=new n.constructor(i);for(let r=0,s=0;s!==i;++r){const o=t[r]*e;for(let c=0;c!==e;++c)a[s++]=n[o+c]}return a}function nb(n,e,t,i){let a=1,r=n[0];for(;r!==void 0&&r[i]===void 0;)r=n[a++];if(r===void 0)return;let s=r[i];if(s!==void 0)if(Array.isArray(s))do s=r[i],s!==void 0&&(e.push(r.time),t.push(...s)),r=n[a++];while(r!==void 0);else if(s.toArray!==void 0)do s=r[i],s!==void 0&&(e.push(r.time),s.toArray(t,t.length)),r=n[a++];while(r!==void 0);else do s=r[i],s!==void 0&&(e.push(r.time),t.push(s)),r=n[a++];while(r!==void 0)}function Pz(n,e,t,i,a=30){const r=n.clone();r.name=e;const s=[];for(let c=0;c=i)){d.push(h.times[g]);for(let E=0;Er.tracks[c].times[0]&&(o=r.tracks[c].times[0]);for(let c=0;c=o.times[y]){const v=y*d+f,_=v+d-f;E=o.values.slice(v,_)}else{const v=o.createInterpolant(),_=f,A=d-f;v.evaluate(r),E=v.resultBuffer.slice(_,A)}c==="quaternion"&&new Yi().fromArray(E).normalize().conjugate().toArray(E);const S=h.times.length;for(let v=0;v=r)){const o=t[1];e=r)break t}s=i,i=0;break n}break e}for(;i>>1;et;)--s;if(++s,r!==0||s!==a){r>=s&&(s=Math.max(s,1),r=s-1);const o=this.getValueSize();this.times=i.slice(r,s),this.values=this.values.slice(r*o,s*o)}return this}validate(){let e=!0;const t=this.getValueSize();t-Math.floor(t)!==0&&(qt("KeyframeTrack: Invalid value size in track.",this),e=!1);const i=this.times,a=this.values,r=i.length;r===0&&(qt("KeyframeTrack: Track is empty.",this),e=!1);let s=null;for(let o=0;o!==r;o++){const c=i[o];if(typeof c=="number"&&isNaN(c)){qt("KeyframeTrack: Time is not a valid number.",this,o,c),e=!1;break}if(s!==null&&s>c){qt("KeyframeTrack: Out of order keys.",this,o,c,s),e=!1;break}s=c}if(a!==void 0&&NB(a))for(let o=0,c=a.length;o!==c;++o){const h=a[o];if(isNaN(h)){qt("KeyframeTrack: Value is not a valid number.",this,o,h),e=!1;break}}return e}optimize(){const e=this.times.slice(),t=this.values.slice(),i=this.getValueSize(),a=this.getInterpolation()===u1,r=e.length-1;let s=1;for(let o=1;o0){e[s]=e[r];for(let o=r*i,c=s*i,h=0;h!==i;++h)t[c+h]=t[o+h];++s}return s!==e.length?(this.times=e.slice(0,s),this.values=t.slice(0,s*i)):(this.times=e,this.values=t),this}clone(){const e=this.times.slice(),t=this.values.slice(),i=this.constructor,a=new i(this.name,e,t);return a.createInterpolant=this.createInterpolant,a}}hs.prototype.ValueTypeName="";hs.prototype.TimeBufferType=Float32Array;hs.prototype.ValueBufferType=Float32Array;hs.prototype.DefaultInterpolation=md;class ch extends hs{constructor(e,t,i){super(e,t,i)}}ch.prototype.ValueTypeName="bool";ch.prototype.ValueBufferType=Array;ch.prototype.DefaultInterpolation=pd;ch.prototype.InterpolantFactoryMethodLinear=void 0;ch.prototype.InterpolantFactoryMethodSmooth=void 0;class ab extends hs{constructor(e,t,i,a){super(e,t,i,a)}}ab.prototype.ValueTypeName="color";class qu extends hs{constructor(e,t,i,a){super(e,t,i,a)}}qu.prototype.ValueTypeName="number";class UB extends zd{constructor(e,t,i,a){super(e,t,i,a)}interpolate_(e,t,i,a){const r=this.resultBuffer,s=this.sampleValues,o=this.valueSize,c=(i-t)/(a-t);let h=e*o;for(let f=h+o;h!==f;h+=4)Yi.slerpFlat(r,0,s,h-o,s,h,c);return r}}class Zu extends hs{constructor(e,t,i,a){super(e,t,i,a)}InterpolantFactoryMethodLinear(e){return new UB(this.times,this.values,this.getValueSize(),e)}}Zu.prototype.ValueTypeName="quaternion";Zu.prototype.InterpolantFactoryMethodSmooth=void 0;class uh extends hs{constructor(e,t,i){super(e,t,i)}}uh.prototype.ValueTypeName="string";uh.prototype.ValueBufferType=Array;uh.prototype.DefaultInterpolation=pd;uh.prototype.InterpolantFactoryMethodLinear=void 0;uh.prototype.InterpolantFactoryMethodSmooth=void 0;class ju extends hs{constructor(e,t,i,a){super(e,t,i,a)}}ju.prototype.ValueTypeName="vector";class Ad{constructor(e="",t=-1,i=[],a=xy){this.name=e,this.tracks=i,this.duration=t,this.blendMode=a,this.uuid=Cr(),this.userData={},this.duration<0&&this.resetDuration()}static parse(e){const t=[],i=e.tracks,a=1/(e.fps||1);for(let s=0,o=i.length;s!==o;++s)t.push(Gz(i[s]).scale(a));const r=new this(e.name,e.duration,t,e.blendMode);return r.uuid=e.uuid,r.userData=JSON.parse(e.userData||"{}"),r}static toJSON(e){const t=[],i=e.tracks,a={name:e.name,duration:e.duration,tracks:t,uuid:e.uuid,blendMode:e.blendMode,userData:JSON.stringify(e.userData)};for(let r=0,s=i.length;r!==s;++r)t.push(hs.toJSON(i[r]));return a}static CreateFromMorphTargetSequence(e,t,i,a){const r=t.length,s=[];for(let o=0;o1){const d=f[1];let m=a[d];m||(a[d]=m=[]),m.push(h)}}const s=[];for(const o in a)s.push(this.CreateFromMorphTargetSequence(o,a[o],t,i));return s}static parseAnimation(e,t){if(_t("AnimationClip: parseAnimation() is deprecated and will be removed with r185"),!e)return qt("AnimationClip: No animation in JSONLoader data."),null;const i=function(d,m,g,y,E){if(g.length!==0){const S=[],v=[];nb(g,S,v,y),S.length!==0&&E.push(new d(m,S,v))}},a=[],r=e.name||"default",s=e.fps||30,o=e.blendMode;let c=e.length||-1;const h=e.hierarchy||[];for(let d=0;d{t&&t(r),this.manager.itemEnd(e)},0),r;if(Ro[e]!==void 0){Ro[e].push({onLoad:t,onProgress:i,onError:a});return}Ro[e]=[],Ro[e].push({onLoad:t,onProgress:i,onError:a});const s=new Request(e,{headers:new Headers(this.requestHeader),credentials:this.withCredentials?"include":"same-origin",signal:typeof AbortSignal.any=="function"?AbortSignal.any([this._abortController.signal,this.manager.abortController.signal]):this._abortController.signal}),o=this.mimeType,c=this.responseType;fetch(s).then(h=>{if(h.status===200||h.status===0){if(h.status===0&&_t("FileLoader: HTTP Status 0 received."),typeof ReadableStream>"u"||h.body===void 0||h.body.getReader===void 0)return h;const f=Ro[e],d=h.body.getReader(),m=h.headers.get("X-File-Size")||h.headers.get("Content-Length"),g=m?parseInt(m):0,y=g!==0;let E=0;const S=new ReadableStream({start(v){_();function _(){d.read().then(({done:A,value:b})=>{if(A)v.close();else{E+=b.byteLength;const O=new ProgressEvent("progress",{lengthComputable:y,loaded:E,total:g});for(let N=0,L=f.length;N{v.error(A)})}}});return new Response(S)}else throw new Vz(`fetch for "${h.url}" responded with ${h.status}: ${h.statusText}`,h)}).then(h=>{switch(c){case"arraybuffer":return h.arrayBuffer();case"blob":return h.blob();case"document":return h.text().then(f=>new DOMParser().parseFromString(f,o));case"json":return h.json();default:if(o==="")return h.text();{const d=/charset="?([^;"\s]*)"?/i.exec(o),m=d&&d[1]?d[1].toLowerCase():void 0,g=new TextDecoder(m);return h.arrayBuffer().then(y=>g.decode(y))}}}).then(h=>{Js.add(`file:${e}`,h);const f=Ro[e];delete Ro[e];for(let d=0,m=f.length;d{const f=Ro[e];if(f===void 0)throw this.manager.itemError(e),h;delete Ro[e];for(let d=0,m=f.length;d{this.manager.itemEnd(e)}),this.manager.itemStart(e)}setResponseType(e){return this.responseType=e,this}setMimeType(e){return this.mimeType=e,this}abort(){return this._abortController.abort(),this._abortController=new AbortController,this}}class kz extends yi{constructor(e){super(e)}load(e,t,i,a){const r=this,s=new oa(this.manager);s.setPath(this.path),s.setRequestHeader(this.requestHeader),s.setWithCredentials(this.withCredentials),s.load(e,function(o){try{t(r.parse(JSON.parse(o)))}catch(c){a?a(c):qt(c),r.manager.itemError(e)}},i,a)}parse(e){const t=[];for(let i=0;i0:a.vertexColors=e.vertexColors),e.uniforms!==void 0)for(const r in e.uniforms){const s=e.uniforms[r];switch(a.uniforms[r]={},s.type){case"t":a.uniforms[r].value=i(s.value);break;case"c":a.uniforms[r].value=new dt().setHex(s.value);break;case"v2":a.uniforms[r].value=new Ee().fromArray(s.value);break;case"v3":a.uniforms[r].value=new H().fromArray(s.value);break;case"v4":a.uniforms[r].value=new Yt().fromArray(s.value);break;case"m3":a.uniforms[r].value=new kt().fromArray(s.value);break;case"m4":a.uniforms[r].value=new lt().fromArray(s.value);break;default:a.uniforms[r].value=s.value}}if(e.defines!==void 0&&(a.defines=e.defines),e.vertexShader!==void 0&&(a.vertexShader=e.vertexShader),e.fragmentShader!==void 0&&(a.fragmentShader=e.fragmentShader),e.glslVersion!==void 0&&(a.glslVersion=e.glslVersion),e.extensions!==void 0)for(const r in e.extensions)a.extensions[r]=e.extensions[r];if(e.lights!==void 0&&(a.lights=e.lights),e.clipping!==void 0&&(a.clipping=e.clipping),e.size!==void 0&&(a.size=e.size),e.sizeAttenuation!==void 0&&(a.sizeAttenuation=e.sizeAttenuation),e.map!==void 0&&(a.map=i(e.map)),e.matcap!==void 0&&(a.matcap=i(e.matcap)),e.alphaMap!==void 0&&(a.alphaMap=i(e.alphaMap)),e.bumpMap!==void 0&&(a.bumpMap=i(e.bumpMap)),e.bumpScale!==void 0&&(a.bumpScale=e.bumpScale),e.normalMap!==void 0&&(a.normalMap=i(e.normalMap)),e.normalMapType!==void 0&&(a.normalMapType=e.normalMapType),e.normalScale!==void 0){let r=e.normalScale;Array.isArray(r)===!1&&(r=[r,r]),a.normalScale=new Ee().fromArray(r)}return e.displacementMap!==void 0&&(a.displacementMap=i(e.displacementMap)),e.displacementScale!==void 0&&(a.displacementScale=e.displacementScale),e.displacementBias!==void 0&&(a.displacementBias=e.displacementBias),e.roughnessMap!==void 0&&(a.roughnessMap=i(e.roughnessMap)),e.metalnessMap!==void 0&&(a.metalnessMap=i(e.metalnessMap)),e.emissiveMap!==void 0&&(a.emissiveMap=i(e.emissiveMap)),e.emissiveIntensity!==void 0&&(a.emissiveIntensity=e.emissiveIntensity),e.specularMap!==void 0&&(a.specularMap=i(e.specularMap)),e.specularIntensityMap!==void 0&&(a.specularIntensityMap=i(e.specularIntensityMap)),e.specularColorMap!==void 0&&(a.specularColorMap=i(e.specularColorMap)),e.envMap!==void 0&&(a.envMap=i(e.envMap)),e.envMapRotation!==void 0&&a.envMapRotation.fromArray(e.envMapRotation),e.envMapIntensity!==void 0&&(a.envMapIntensity=e.envMapIntensity),e.reflectivity!==void 0&&(a.reflectivity=e.reflectivity),e.refractionRatio!==void 0&&(a.refractionRatio=e.refractionRatio),e.lightMap!==void 0&&(a.lightMap=i(e.lightMap)),e.lightMapIntensity!==void 0&&(a.lightMapIntensity=e.lightMapIntensity),e.aoMap!==void 0&&(a.aoMap=i(e.aoMap)),e.aoMapIntensity!==void 0&&(a.aoMapIntensity=e.aoMapIntensity),e.gradientMap!==void 0&&(a.gradientMap=i(e.gradientMap)),e.clearcoatMap!==void 0&&(a.clearcoatMap=i(e.clearcoatMap)),e.clearcoatRoughnessMap!==void 0&&(a.clearcoatRoughnessMap=i(e.clearcoatRoughnessMap)),e.clearcoatNormalMap!==void 0&&(a.clearcoatNormalMap=i(e.clearcoatNormalMap)),e.clearcoatNormalScale!==void 0&&(a.clearcoatNormalScale=new Ee().fromArray(e.clearcoatNormalScale)),e.iridescenceMap!==void 0&&(a.iridescenceMap=i(e.iridescenceMap)),e.iridescenceThicknessMap!==void 0&&(a.iridescenceThicknessMap=i(e.iridescenceThicknessMap)),e.transmissionMap!==void 0&&(a.transmissionMap=i(e.transmissionMap)),e.thicknessMap!==void 0&&(a.thicknessMap=i(e.thicknessMap)),e.anisotropyMap!==void 0&&(a.anisotropyMap=i(e.anisotropyMap)),e.sheenColorMap!==void 0&&(a.sheenColorMap=i(e.sheenColorMap)),e.sheenRoughnessMap!==void 0&&(a.sheenRoughnessMap=i(e.sheenRoughnessMap)),a}setTextures(e){return this.textures=e,this}createMaterialFromType(e){return zy.createMaterialFromType(e)}static createMaterialFromType(e){const t={ShadowMaterial:bB,SpriteMaterial:G3,RawShaderMaterial:cl,ShaderMaterial:Di,PointsMaterial:Ty,MeshPhysicalMaterial:us,MeshStandardMaterial:P0,MeshPhongMaterial:MB,MeshToonMaterial:CB,MeshNormalMaterial:$3,MeshLambertMaterial:RB,MeshDepthMaterial:eb,MeshDistanceMaterial:tb,MeshBasicMaterial:Qa,MeshMatcapMaterial:wB,LineDashedMaterial:DB,LineBasicMaterial:Ca,Material:ri};return new t[e]}}class lc{static extractUrlBase(e){const t=e.lastIndexOf("/");return t===-1?"./":e.slice(0,t+1)}static resolveURL(e,t){return typeof e!="string"||e===""?"":(/^https?:\/\//i.test(t)&&/^\//.test(e)&&(t=t.replace(/(^https?:\/\/[^\/]+).*/i,"$1")),/^(https?:)?\/\//i.test(e)||/^data:.*,.*$/i.test(e)||/^blob:.*$/i.test(e)?e:t+e)}}class kB extends Xt{constructor(){super(),this.isInstancedBufferGeometry=!0,this.type="InstancedBufferGeometry",this.instanceCount=1/0}copy(e){return super.copy(e),this.instanceCount=e.instanceCount,this}toJSON(){const e=super.toJSON();return e.instanceCount=this.instanceCount,e.isInstancedBufferGeometry=!0,e}}class XB extends yi{constructor(e){super(e)}load(e,t,i,a){const r=this,s=new oa(r.manager);s.setPath(r.path),s.setRequestHeader(r.requestHeader),s.setWithCredentials(r.withCredentials),s.load(e,function(o){try{t(r.parse(JSON.parse(o)))}catch(c){a?a(c):qt(c),r.manager.itemError(e)}},i,a)}parse(e){const t={},i={};function a(g,y){if(t[y]!==void 0)return t[y];const S=g.interleavedBuffers[y],v=r(g,S.buffer),_=Lf(S.type,v),A=new Xu(_,S.stride);return A.uuid=S.uuid,t[y]=A,A}function r(g,y){if(i[y]!==void 0)return i[y];const S=g.arrayBuffers[y],v=new Uint32Array(S).buffer;return i[y]=v,v}const s=e.isInstancedBufferGeometry?new kB:new Xt,o=e.data.index;if(o!==void 0){const g=Lf(o.type,o.array);s.setIndex(new pn(g,1))}const c=e.data.attributes;for(const g in c){const y=c[g];let E;if(y.isInterleavedBufferAttribute){const S=a(e.data,y.data);E=new Ns(S,y.itemSize,y.offset,y.normalized)}else{const S=Lf(y.type,y.array),v=y.isInstancedBufferAttribute?Wu:pn;E=new v(S,y.itemSize,y.normalized)}y.name!==void 0&&(E.name=y.name),y.usage!==void 0&&E.setUsage(y.usage),s.setAttribute(g,E)}const h=e.data.morphAttributes;if(h)for(const g in h){const y=h[g],E=[];for(let S=0,v=y.length;S0){const c=new Fy(t);r=new c0(c),r.setCrossOrigin(this.crossOrigin);for(let h=0,f=e.length;h0){a=new c0(this.manager),a.setCrossOrigin(this.crossOrigin);for(let s=0,o=e.length;s{let S=null,v=null;return E.boundingBox!==void 0&&(S=new sa().fromJSON(E.boundingBox)),E.boundingSphere!==void 0&&(v=new zi().fromJSON(E.boundingSphere)),{...E,boundingBox:S,boundingSphere:v}}),s._instanceInfo=e.instanceInfo,s._availableInstanceIds=e._availableInstanceIds,s._availableGeometryIds=e._availableGeometryIds,s._nextIndexStart=e.nextIndexStart,s._nextVertexStart=e.nextVertexStart,s._geometryCount=e.geometryCount,s._maxInstanceCount=e.maxInstanceCount,s._maxVertexCount=e.maxVertexCount,s._maxIndexCount=e.maxIndexCount,s._geometryInitialized=e.geometryInitialized,s._matricesTexture=h(e.matricesTexture.uuid),s._indirectTexture=h(e.indirectTexture.uuid),e.colorsTexture!==void 0&&(s._colorsTexture=h(e.colorsTexture.uuid)),e.boundingSphere!==void 0&&(s.boundingSphere=new zi().fromJSON(e.boundingSphere)),e.boundingBox!==void 0&&(s.boundingBox=new sa().fromJSON(e.boundingBox));break;case"LOD":s=new hB;break;case"Line":s=new rl(o(e.geometry),c(e.material));break;case"LineLoop":s=new X3(o(e.geometry),c(e.material));break;case"LineSegments":s=new Is(o(e.geometry),c(e.material));break;case"PointCloud":case"Points":s=new W3(o(e.geometry),c(e.material));break;case"Sprite":s=new uB(c(e.material));break;case"Group":s=new jo;break;case"Bone":s=new Ay;break;default:s=new fn}if(s.uuid=e.uuid,e.name!==void 0&&(s.name=e.name),e.matrix!==void 0?(s.matrix.fromArray(e.matrix),e.matrixAutoUpdate!==void 0&&(s.matrixAutoUpdate=e.matrixAutoUpdate),s.matrixAutoUpdate&&s.matrix.decompose(s.position,s.quaternion,s.scale)):(e.position!==void 0&&s.position.fromArray(e.position),e.rotation!==void 0&&s.rotation.fromArray(e.rotation),e.quaternion!==void 0&&s.quaternion.fromArray(e.quaternion),e.scale!==void 0&&s.scale.fromArray(e.scale)),e.up!==void 0&&s.up.fromArray(e.up),e.castShadow!==void 0&&(s.castShadow=e.castShadow),e.receiveShadow!==void 0&&(s.receiveShadow=e.receiveShadow),e.shadow&&(e.shadow.intensity!==void 0&&(s.shadow.intensity=e.shadow.intensity),e.shadow.bias!==void 0&&(s.shadow.bias=e.shadow.bias),e.shadow.normalBias!==void 0&&(s.shadow.normalBias=e.shadow.normalBias),e.shadow.radius!==void 0&&(s.shadow.radius=e.shadow.radius),e.shadow.mapSize!==void 0&&s.shadow.mapSize.fromArray(e.shadow.mapSize),e.shadow.camera!==void 0&&(s.shadow.camera=this.parseObject(e.shadow.camera))),e.visible!==void 0&&(s.visible=e.visible),e.frustumCulled!==void 0&&(s.frustumCulled=e.frustumCulled),e.renderOrder!==void 0&&(s.renderOrder=e.renderOrder),e.userData!==void 0&&(s.userData=e.userData),e.layers!==void 0&&(s.layers.mask=e.layers),e.children!==void 0){const m=e.children;for(let g=0;g"u"&&_t("ImageBitmapLoader: createImageBitmap() not supported."),typeof fetch>"u"&&_t("ImageBitmapLoader: fetch() not supported."),this.options={premultiplyAlpha:"none"},this._abortController=new AbortController}setOptions(e){return this.options=e,this}load(e,t,i,a){e===void 0&&(e=""),this.path!==void 0&&(e=this.path+e),e=this.manager.resolveURL(e);const r=this,s=Js.get(`image-bitmap:${e}`);if(s!==void 0){if(r.manager.itemStart(e),s.then){s.then(h=>{if(YA.has(s)===!0)a&&a(YA.get(s)),r.manager.itemError(e),r.manager.itemEnd(e);else return t&&t(h),r.manager.itemEnd(e),h});return}return setTimeout(function(){t&&t(s),r.manager.itemEnd(e)},0),s}const o={};o.credentials=this.crossOrigin==="anonymous"?"same-origin":"include",o.headers=this.requestHeader,o.signal=typeof AbortSignal.any=="function"?AbortSignal.any([this._abortController.signal,this.manager.abortController.signal]):this._abortController.signal;const c=fetch(e,o).then(function(h){return h.blob()}).then(function(h){return createImageBitmap(h,Object.assign(r.options,{colorSpaceConversion:"none"}))}).then(function(h){return Js.add(`image-bitmap:${e}`,h),t&&t(h),r.manager.itemEnd(e),h}).catch(function(h){a&&a(h),YA.set(c,h),Js.remove(`image-bitmap:${e}`),r.manager.itemError(e),r.manager.itemEnd(e)});Js.add(`image-bitmap:${e}`,c),r.manager.itemStart(e)}abort(){return this._abortController.abort(),this._abortController=new AbortController,this}}let bv;class ub{static getContext(){return bv===void 0&&(bv=new(window.AudioContext||window.webkitAudioContext)),bv}static setContext(e){bv=e}}class Kz extends yi{constructor(e){super(e)}load(e,t,i,a){const r=this,s=new oa(this.manager);s.setResponseType("arraybuffer"),s.setPath(this.path),s.setRequestHeader(this.requestHeader),s.setWithCredentials(this.withCredentials),s.load(e,function(c){try{const h=c.slice(0);ub.getContext().decodeAudioData(h,function(d){t(d)}).catch(o)}catch(h){o(h)}},i,a);function o(c){a?a(c):qt(c),r.manager.itemError(e)}}}const E4=new lt,T4=new lt,Kc=new lt;class Jz{constructor(){this.type="StereoCamera",this.aspect=1,this.eyeSep=.064,this.cameraL=new Jn,this.cameraL.layers.enable(1),this.cameraL.matrixAutoUpdate=!1,this.cameraR=new Jn,this.cameraR.layers.enable(2),this.cameraR.matrixAutoUpdate=!1,this._cache={focus:null,fov:null,aspect:null,near:null,far:null,zoom:null,eyeSep:null}}update(e){const t=this._cache;if(t.focus!==e.focus||t.fov!==e.fov||t.aspect!==e.aspect*this.aspect||t.near!==e.near||t.far!==e.far||t.zoom!==e.zoom||t.eyeSep!==this.eyeSep){t.focus=e.focus,t.fov=e.fov,t.aspect=e.aspect*this.aspect,t.near=e.near,t.far=e.far,t.zoom=e.zoom,t.eyeSep=this.eyeSep,Kc.copy(e.projectionMatrix);const a=t.eyeSep/2,r=a*t.near/t.focus,s=t.near*Math.tan(Du*t.fov*.5)/t.zoom;let o,c;T4.elements[12]=-a,E4.elements[12]=a,o=-s*t.aspect+r,c=s*t.aspect+r,Kc.elements[0]=2*t.near/(c-o),Kc.elements[8]=(c+o)/(c-o),this.cameraL.projectionMatrix.copy(Kc),o=-s*t.aspect-r,c=s*t.aspect-r,Kc.elements[0]=2*t.near/(c-o),Kc.elements[8]=(c+o)/(c-o),this.cameraR.projectionMatrix.copy(Kc)}this.cameraL.matrixWorld.copy(e.matrixWorld).multiply(T4),this.cameraR.matrixWorld.copy(e.matrixWorld).multiply(E4)}}class YB extends Jn{constructor(e=[]){super(),this.isArrayCamera=!0,this.isMultiViewCamera=!1,this.cameras=e}}class hb{constructor(e=!0){this.autoStart=e,this.startTime=0,this.oldTime=0,this.elapsedTime=0,this.running=!1}start(){this.startTime=performance.now(),this.oldTime=this.startTime,this.elapsedTime=0,this.running=!0}stop(){this.getElapsedTime(),this.running=!1,this.autoStart=!1}getElapsedTime(){return this.getDelta(),this.elapsedTime}getDelta(){let e=0;if(this.autoStart&&!this.running)return this.start(),0;if(this.running){const t=performance.now();e=(t-this.oldTime)/1e3,this.oldTime=t,this.elapsedTime+=e}return e}}const Jc=new H,qA=new Yi,Qz=new H,Qc=new H,$c=new H;class $z extends fn{constructor(){super(),this.type="AudioListener",this.context=ub.getContext(),this.gain=this.context.createGain(),this.gain.connect(this.context.destination),this.filter=null,this.timeDelta=0,this._clock=new hb}getInput(){return this.gain}removeFilter(){return this.filter!==null&&(this.gain.disconnect(this.filter),this.filter.disconnect(this.context.destination),this.gain.connect(this.context.destination),this.filter=null),this}getFilter(){return this.filter}setFilter(e){return this.filter!==null?(this.gain.disconnect(this.filter),this.filter.disconnect(this.context.destination)):this.gain.disconnect(this.context.destination),this.filter=e,this.gain.connect(this.filter),this.filter.connect(this.context.destination),this}getMasterVolume(){return this.gain.gain.value}setMasterVolume(e){return this.gain.gain.setTargetAtTime(e,this.context.currentTime,.01),this}updateMatrixWorld(e){super.updateMatrixWorld(e);const t=this.context.listener;if(this.timeDelta=this._clock.getDelta(),this.matrixWorld.decompose(Jc,qA,Qz),Qc.set(0,0,-1).applyQuaternion(qA),$c.set(0,1,0).applyQuaternion(qA),t.positionX){const i=this.context.currentTime+this.timeDelta;t.positionX.linearRampToValueAtTime(Jc.x,i),t.positionY.linearRampToValueAtTime(Jc.y,i),t.positionZ.linearRampToValueAtTime(Jc.z,i),t.forwardX.linearRampToValueAtTime(Qc.x,i),t.forwardY.linearRampToValueAtTime(Qc.y,i),t.forwardZ.linearRampToValueAtTime(Qc.z,i),t.upX.linearRampToValueAtTime($c.x,i),t.upY.linearRampToValueAtTime($c.y,i),t.upZ.linearRampToValueAtTime($c.z,i)}else t.setPosition(Jc.x,Jc.y,Jc.z),t.setOrientation(Qc.x,Qc.y,Qc.z,$c.x,$c.y,$c.z)}}class qB extends fn{constructor(e){super(),this.type="Audio",this.listener=e,this.context=e.context,this.gain=this.context.createGain(),this.gain.connect(e.getInput()),this.autoplay=!1,this.buffer=null,this.detune=0,this.loop=!1,this.loopStart=0,this.loopEnd=0,this.offset=0,this.duration=void 0,this.playbackRate=1,this.isPlaying=!1,this.hasPlaybackControl=!0,this.source=null,this.sourceType="empty",this._startedAt=0,this._progress=0,this._connected=!1,this.filters=[]}getOutput(){return this.gain}setNodeSource(e){return this.hasPlaybackControl=!1,this.sourceType="audioNode",this.source=e,this.connect(),this}setMediaElementSource(e){return this.hasPlaybackControl=!1,this.sourceType="mediaNode",this.source=this.context.createMediaElementSource(e),this.connect(),this}setMediaStreamSource(e){return this.hasPlaybackControl=!1,this.sourceType="mediaStreamNode",this.source=this.context.createMediaStreamSource(e),this.connect(),this}setBuffer(e){return this.buffer=e,this.sourceType="buffer",this.autoplay&&this.play(),this}play(e=0){if(this.isPlaying===!0){_t("Audio: Audio is already playing.");return}if(this.hasPlaybackControl===!1){_t("Audio: this Audio has no playback control.");return}this._startedAt=this.context.currentTime+e;const t=this.context.createBufferSource();return t.buffer=this.buffer,t.loop=this.loop,t.loopStart=this.loopStart,t.loopEnd=this.loopEnd,t.onended=this.onEnded.bind(this),t.start(this._startedAt,this._progress+this.offset,this.duration),this.isPlaying=!0,this.source=t,this.setDetune(this.detune),this.setPlaybackRate(this.playbackRate),this.connect()}pause(){if(this.hasPlaybackControl===!1){_t("Audio: this Audio has no playback control.");return}return this.isPlaying===!0&&(this._progress+=Math.max(this.context.currentTime-this._startedAt,0)*this.playbackRate,this.loop===!0&&(this._progress=this._progress%(this.duration||this.buffer.duration)),this.source.stop(),this.source.onended=null,this.isPlaying=!1),this}stop(e=0){if(this.hasPlaybackControl===!1){_t("Audio: this Audio has no playback control.");return}return this._progress=0,this.source!==null&&(this.source.stop(this.context.currentTime+e),this.source.onended=null),this.isPlaying=!1,this}connect(){if(this.filters.length>0){this.source.connect(this.filters[0]);for(let e=1,t=this.filters.length;e0){this.source.disconnect(this.filters[0]);for(let e=1,t=this.filters.length;e0&&this._mixBufferRegionAdditive(i,a,this._addIndex*t,1,t);for(let c=t,h=t+t;c!==h;++c)if(i[c]!==i[c+t]){o.setValue(i,a);break}}saveOriginalState(){const e=this.binding,t=this.buffer,i=this.valueSize,a=i*this._origIndex;e.getValue(t,a);for(let r=i,s=a;r!==s;++r)t[r]=t[a+r%i];this._setIdentity(),this.cumulativeWeight=0,this.cumulativeWeightAdditive=0}restoreOriginalState(){const e=this.valueSize*3;this.binding.setValue(this.buffer,e)}_setAdditiveIdentityNumeric(){const e=this._addIndex*this.valueSize,t=e+this.valueSize;for(let i=e;i=.5)for(let s=0;s!==r;++s)e[t+s]=e[i+s]}_slerp(e,t,i,a){Yi.slerpFlat(e,t,e,t,e,i,a)}_slerpAdditive(e,t,i,a,r){const s=this._workIndex*r;Yi.multiplyQuaternionsFlat(e,s,e,t,e,i),Yi.slerpFlat(e,t,e,t,e,s,a)}_lerp(e,t,i,a,r){const s=1-a;for(let o=0;o!==r;++o){const c=t+o;e[c]=e[c]*s+e[i+o]*a}}_lerpAdditive(e,t,i,a,r){for(let s=0;s!==r;++s){const o=t+s;e[o]=e[o]+e[i+s]*a}}}const fb="\\[\\]\\.:\\/",iG=new RegExp("["+fb+"]","g"),db="[^"+fb+"]",aG="[^"+fb.replace("\\.","")+"]",rG=/((?:WC+[\/:])*)/.source.replace("WC",db),sG=/(WCOD+)?/.source.replace("WCOD",aG),oG=/(?:\.(WC+)(?:\[(.+)\])?)?/.source.replace("WC",db),lG=/\.(WC+)(?:\[(.+)\])?/.source.replace("WC",db),cG=new RegExp("^"+rG+sG+oG+lG+"$"),uG=["material","materials","bones","map"];class hG{constructor(e,t,i){const a=i||yn.parseTrackName(t);this._targetGroup=e,this._bindings=e.subscribe_(t,a)}getValue(e,t){this.bind();const i=this._targetGroup.nCachedObjects_,a=this._bindings[i];a!==void 0&&a.getValue(e,t)}setValue(e,t){const i=this._bindings;for(let a=this._targetGroup.nCachedObjects_,r=i.length;a!==r;++a)i[a].setValue(e,t)}bind(){const e=this._bindings;for(let t=this._targetGroup.nCachedObjects_,i=e.length;t!==i;++t)e[t].bind()}unbind(){const e=this._bindings;for(let t=this._targetGroup.nCachedObjects_,i=e.length;t!==i;++t)e[t].unbind()}}class yn{constructor(e,t,i){this.path=t,this.parsedPath=i||yn.parseTrackName(t),this.node=yn.findNode(e,this.parsedPath.nodeName),this.rootNode=e,this.getValue=this._getValue_unbound,this.setValue=this._setValue_unbound}static create(e,t,i){return e&&e.isAnimationObjectGroup?new yn.Composite(e,t,i):new yn(e,t,i)}static sanitizeNodeName(e){return e.replace(/\s/g,"_").replace(iG,"")}static parseTrackName(e){const t=cG.exec(e);if(t===null)throw new Error("PropertyBinding: Cannot parse trackName: "+e);const i={nodeName:t[2],objectName:t[3],objectIndex:t[4],propertyName:t[5],propertyIndex:t[6]},a=i.nodeName&&i.nodeName.lastIndexOf(".");if(a!==void 0&&a!==-1){const r=i.nodeName.substring(a+1);uG.indexOf(r)!==-1&&(i.nodeName=i.nodeName.substring(0,a),i.objectName=r)}if(i.propertyName===null||i.propertyName.length===0)throw new Error("PropertyBinding: can not parse propertyName from trackName: "+e);return i}static findNode(e,t){if(t===void 0||t===""||t==="."||t===-1||t===e.name||t===e.uuid)return e;if(e.skeleton){const i=e.skeleton.getBoneByName(t);if(i!==void 0)return i}if(e.children){const i=function(r){for(let s=0;s=r){const d=r++,m=e[d];t[m.uuid]=f,e[f]=m,t[h]=d,e[d]=c;for(let g=0,y=a;g!==y;++g){const E=i[g],S=E[d],v=E[f];E[f]=S,E[d]=v}}}this.nCachedObjects_=r}uncache(){const e=this._objects,t=this._indicesByUUID,i=this._bindings,a=i.length;let r=this.nCachedObjects_,s=e.length;for(let o=0,c=arguments.length;o!==c;++o){const h=arguments[o],f=h.uuid,d=t[f];if(d!==void 0)if(delete t[f],d0&&(t[g.uuid]=d),e[d]=g,e.pop();for(let y=0,E=a;y!==E;++y){const S=i[y];S[d]=S[m],S.pop()}}}this.nCachedObjects_=r}subscribe_(e,t){const i=this._bindingsIndicesByPath;let a=i[e];const r=this._bindings;if(a!==void 0)return r[a];const s=this._paths,o=this._parsedPaths,c=this._objects,h=c.length,f=this.nCachedObjects_,d=new Array(h);a=r.length,i[e]=a,s.push(e),o.push(t),r.push(d);for(let m=f,g=c.length;m!==g;++m){const y=c[m];d[m]=new yn(y,e,t)}return d}unsubscribe_(e){const t=this._bindingsIndicesByPath,i=t[e];if(i!==void 0){const a=this._paths,r=this._parsedPaths,s=this._bindings,o=s.length-1,c=s[o],h=e[o];t[h]=i,s[i]=c,s.pop(),r[i]=r[o],r.pop(),a[i]=a[o],a.pop()}}}class jB{constructor(e,t,i=null,a=t.blendMode){this._mixer=e,this._clip=t,this._localRoot=i,this.blendMode=a;const r=t.tracks,s=r.length,o=new Array(s),c={endingStart:vu,endingEnd:vu};for(let h=0;h!==s;++h){const f=r[h].createInterpolant(null);o[h]=f,f.settings=c}this._interpolantSettings=c,this._interpolants=o,this._propertyBindings=new Array(s),this._cacheIndex=null,this._byClipCacheIndex=null,this._timeScaleInterpolant=null,this._weightInterpolant=null,this.loop=k5,this._loopCount=-1,this._startTime=null,this.time=0,this.timeScale=1,this._effectiveTimeScale=1,this.weight=1,this._effectiveWeight=1,this.repetitions=1/0,this.paused=!1,this.enabled=!0,this.clampWhenFinished=!1,this.zeroSlopeAtStart=!0,this.zeroSlopeAtEnd=!0}play(){return this._mixer._activateAction(this),this}stop(){return this._mixer._deactivateAction(this),this.reset()}reset(){return this.paused=!1,this.enabled=!0,this.time=0,this._loopCount=-1,this._startTime=null,this.stopFading().stopWarping()}isRunning(){return this.enabled&&!this.paused&&this.timeScale!==0&&this._startTime===null&&this._mixer._isActiveAction(this)}isScheduled(){return this._mixer._isActiveAction(this)}startAt(e){return this._startTime=e,this}setLoop(e,t){return this.loop=e,this.repetitions=t,this}setEffectiveWeight(e){return this.weight=e,this._effectiveWeight=this.enabled?e:0,this.stopFading()}getEffectiveWeight(){return this._effectiveWeight}fadeIn(e){return this._scheduleFading(e,0,1)}fadeOut(e){return this._scheduleFading(e,1,0)}crossFadeFrom(e,t,i=!1){if(e.fadeOut(t),this.fadeIn(t),i===!0){const a=this._clip.duration,r=e._clip.duration,s=r/a,o=a/r;e.warp(1,s,t),this.warp(o,1,t)}return this}crossFadeTo(e,t,i=!1){return e.crossFadeFrom(this,t,i)}stopFading(){const e=this._weightInterpolant;return e!==null&&(this._weightInterpolant=null,this._mixer._takeBackControlInterpolant(e)),this}setEffectiveTimeScale(e){return this.timeScale=e,this._effectiveTimeScale=this.paused?0:e,this.stopWarping()}getEffectiveTimeScale(){return this._effectiveTimeScale}setDuration(e){return this.timeScale=this._clip.duration/e,this.stopWarping()}syncWith(e){return this.time=e.time,this.timeScale=e.timeScale,this.stopWarping()}halt(e){return this.warp(this._effectiveTimeScale,0,e)}warp(e,t,i){const a=this._mixer,r=a.time,s=this.timeScale;let o=this._timeScaleInterpolant;o===null&&(o=a._lendControlInterpolant(),this._timeScaleInterpolant=o);const c=o.parameterPositions,h=o.sampleValues;return c[0]=r,c[1]=r+i,h[0]=e/s,h[1]=t/s,this}stopWarping(){const e=this._timeScaleInterpolant;return e!==null&&(this._timeScaleInterpolant=null,this._mixer._takeBackControlInterpolant(e)),this}getMixer(){return this._mixer}getClip(){return this._clip}getRoot(){return this._localRoot||this._mixer._root}_update(e,t,i,a){if(!this.enabled){this._updateWeight(e);return}const r=this._startTime;if(r!==null){const c=(e-r)*i;c<0||i===0?t=0:(this._startTime=null,t=i*c)}t*=this._updateTimeScale(e);const s=this._updateTime(t),o=this._updateWeight(e);if(o>0){const c=this._interpolants,h=this._propertyBindings;switch(this.blendMode){case O3:for(let f=0,d=c.length;f!==d;++f)c[f].evaluate(s),h[f].accumulateAdditive(o);break;case xy:default:for(let f=0,d=c.length;f!==d;++f)c[f].evaluate(s),h[f].accumulate(a,o)}}}_updateWeight(e){let t=0;if(this.enabled){t=this.weight;const i=this._weightInterpolant;if(i!==null){const a=i.evaluate(e)[0];t*=a,e>i.parameterPositions[1]&&(this.stopFading(),a===0&&(this.enabled=!1))}}return this._effectiveWeight=t,t}_updateTimeScale(e){let t=0;if(!this.paused){t=this.timeScale;const i=this._timeScaleInterpolant;if(i!==null){const a=i.evaluate(e)[0];t*=a,e>i.parameterPositions[1]&&(this.stopWarping(),t===0?this.paused=!0:this.timeScale=t)}}return this._effectiveTimeScale=t,t}_updateTime(e){const t=this._clip.duration,i=this.loop;let a=this.time+e,r=this._loopCount;const s=i===X5;if(e===0)return r===-1?a:s&&(r&1)===1?t-a:a;if(i===V5){r===-1&&(this._loopCount=0,this._setEndings(!0,!0,!1));e:{if(a>=t)a=t;else if(a<0)a=0;else{this.time=a;break e}this.clampWhenFinished?this.paused=!0:this.enabled=!1,this.time=a,this._mixer.dispatchEvent({type:"finished",action:this,direction:e<0?-1:1})}}else{if(r===-1&&(e>=0?(r=0,this._setEndings(!0,this.repetitions===0,s)):this._setEndings(this.repetitions===0,!0,s)),a>=t||a<0){const o=Math.floor(a/t);a-=t*o,r+=Math.abs(o);const c=this.repetitions-r;if(c<=0)this.clampWhenFinished?this.paused=!0:this.enabled=!1,a=e>0?t:0,this.time=a,this._mixer.dispatchEvent({type:"finished",action:this,direction:e>0?1:-1});else{if(c===1){const h=e<0;this._setEndings(h,!h,s)}else this._setEndings(!1,!1,s);this._loopCount=r,this.time=a,this._mixer.dispatchEvent({type:"loop",action:this,loopDelta:o})}}else this.time=a;if(s&&(r&1)===1)return t-a}return a}_setEndings(e,t,i){const a=this._interpolantSettings;i?(a.endingStart=xu,a.endingEnd=xu):(e?a.endingStart=this.zeroSlopeAtStart?xu:vu:a.endingStart=t0,t?a.endingEnd=this.zeroSlopeAtEnd?xu:vu:a.endingEnd=t0)}_scheduleFading(e,t,i){const a=this._mixer,r=a.time;let s=this._weightInterpolant;s===null&&(s=a._lendControlInterpolant(),this._weightInterpolant=s);const o=s.parameterPositions,c=s.sampleValues;return o[0]=r,c[0]=t,o[1]=r+e,c[1]=i,this}}const dG=new Float32Array(1);class pG extends tr{constructor(e){super(),this._root=e,this._initMemoryManager(),this._accuIndex=0,this.time=0,this.timeScale=1}_bindAction(e,t){const i=e._localRoot||this._root,a=e._clip.tracks,r=a.length,s=e._propertyBindings,o=e._interpolants,c=i.uuid,h=this._bindingsByRootAndName;let f=h[c];f===void 0&&(f={},h[c]=f);for(let d=0;d!==r;++d){const m=a[d],g=m.name;let y=f[g];if(y!==void 0)++y.referenceCount,s[d]=y;else{if(y=s[d],y!==void 0){y._cacheIndex===null&&(++y.referenceCount,this._addInactiveBinding(y,c,g));continue}const E=t&&t._propertyBindings[d].binding.parsedPath;y=new ZB(yn.create(i,g,E),m.ValueTypeName,m.getValueSize()),++y.referenceCount,this._addInactiveBinding(y,c,g),s[d]=y}o[d].resultBuffer=y.buffer}}_activateAction(e){if(!this._isActiveAction(e)){if(e._cacheIndex===null){const i=(e._localRoot||this._root).uuid,a=e._clip.uuid,r=this._actionsByClip[a];this._bindAction(e,r&&r.knownActions[0]),this._addInactiveAction(e,a,i)}const t=e._propertyBindings;for(let i=0,a=t.length;i!==a;++i){const r=t[i];r.useCount++===0&&(this._lendBinding(r),r.saveOriginalState())}this._lendAction(e)}}_deactivateAction(e){if(this._isActiveAction(e)){const t=e._propertyBindings;for(let i=0,a=t.length;i!==a;++i){const r=t[i];--r.useCount===0&&(r.restoreOriginalState(),this._takeBackBinding(r))}this._takeBackAction(e)}}_initMemoryManager(){this._actions=[],this._nActiveActions=0,this._actionsByClip={},this._bindings=[],this._nActiveBindings=0,this._bindingsByRootAndName={},this._controlInterpolants=[],this._nActiveControlInterpolants=0;const e=this;this.stats={actions:{get total(){return e._actions.length},get inUse(){return e._nActiveActions}},bindings:{get total(){return e._bindings.length},get inUse(){return e._nActiveBindings}},controlInterpolants:{get total(){return e._controlInterpolants.length},get inUse(){return e._nActiveControlInterpolants}}}}_isActiveAction(e){const t=e._cacheIndex;return t!==null&&t=0;--i)e[i].stop();return this}update(e){e*=this.timeScale;const t=this._actions,i=this._nActiveActions,a=this.time+=e,r=Math.sign(e),s=this._accuIndex^=1;for(let h=0;h!==i;++h)t[h]._update(a,e,r,s);const o=this._bindings,c=this._nActiveBindings;for(let h=0;h!==c;++h)o[h].apply(s);return this}setTime(e){this.time=0;for(let t=0;t=this.min.x&&e.x<=this.max.x&&e.y>=this.min.y&&e.y<=this.max.y}containsBox(e){return this.min.x<=e.min.x&&e.max.x<=this.max.x&&this.min.y<=e.min.y&&e.max.y<=this.max.y}getParameter(e,t){return t.set((e.x-this.min.x)/(this.max.x-this.min.x),(e.y-this.min.y)/(this.max.y-this.min.y))}intersectsBox(e){return e.max.x>=this.min.x&&e.min.x<=this.max.x&&e.max.y>=this.min.y&&e.min.y<=this.max.y}clampPoint(e,t){return t.copy(e).clamp(this.min,this.max)}distanceToPoint(e){return this.clampPoint(e,R4).distanceTo(e)}intersect(e){return this.min.max(e.min),this.max.min(e.max),this.isEmpty()&&this.makeEmpty(),this}union(e){return this.min.min(e.min),this.max.max(e.max),this}translate(e){return this.min.add(e),this.max.add(e),this}equals(e){return e.min.equals(this.min)&&e.max.equals(this.max)}}const w4=new H,Mv=new H,of=new H,lf=new H,ZA=new H,TG=new H,bG=new H;class MG{constructor(e=new H,t=new H){this.start=e,this.end=t}set(e,t){return this.start.copy(e),this.end.copy(t),this}copy(e){return this.start.copy(e.start),this.end.copy(e.end),this}getCenter(e){return e.addVectors(this.start,this.end).multiplyScalar(.5)}delta(e){return e.subVectors(this.end,this.start)}distanceSq(){return this.start.distanceToSquared(this.end)}distance(){return this.start.distanceTo(this.end)}at(e,t){return this.delta(t).multiplyScalar(e).add(this.start)}closestPointToPointParameter(e,t){w4.subVectors(e,this.start),Mv.subVectors(this.end,this.start);const i=Mv.dot(Mv);let r=Mv.dot(w4)/i;return t&&(r=Gt(r,0,1)),r}closestPointToPoint(e,t,i){const a=this.closestPointToPointParameter(e,t);return this.delta(i).multiplyScalar(a).add(this.start)}distanceSqToLine3(e,t=TG,i=bG){const a=10000000000000001e-32;let r,s;const o=this.start,c=e.start,h=this.end,f=e.end;of.subVectors(h,o),lf.subVectors(f,c),ZA.subVectors(o,c);const d=of.dot(of),m=lf.dot(lf),g=lf.dot(ZA);if(d<=a&&m<=a)return t.copy(o),i.copy(c),t.sub(i),t.dot(t);if(d<=a)r=0,s=g/m,s=Gt(s,0,1);else{const y=of.dot(ZA);if(m<=a)s=0,r=Gt(-y/d,0,1);else{const E=of.dot(lf),S=d*m-E*E;S!==0?r=Gt((E*g-y*m)/S,0,1):r=0,s=(E*r+g)/m,s<0?(s=0,r=Gt(-y/d,0,1)):s>1&&(s=1,r=Gt((E-y)/d,0,1))}}return t.copy(o).add(of.multiplyScalar(r)),i.copy(c).add(lf.multiplyScalar(s)),t.sub(i),t.dot(t)}applyMatrix4(e){return this.start.applyMatrix4(e),this.end.applyMatrix4(e),this}equals(e){return e.start.equals(this.start)&&e.end.equals(this.end)}clone(){return new this.constructor().copy(this)}}const D4=new H;class CG extends fn{constructor(e,t){super(),this.light=e,this.matrixAutoUpdate=!1,this.color=t,this.type="SpotLightHelper";const i=new Xt,a=[0,0,0,0,0,1,0,0,0,1,0,1,0,0,0,-1,0,1,0,0,0,0,1,1,0,0,0,0,-1,1];for(let s=0,o=1,c=32;s1)for(let d=0;d.99999)this.quaternion.set(0,0,0,1);else if(e.y<-.99999)this.quaternion.set(1,0,0,0);else{U4.set(e.z,0,-e.x).normalize();const t=Math.acos(e.y);this.quaternion.setFromAxisAngle(U4,t)}}setLength(e,t=e*.2,i=t*.2){this.line.scale.set(1,Math.max(1e-4,e-t),1),this.line.updateMatrix(),this.cone.scale.set(i,t,i),this.cone.position.y=e,this.cone.updateMatrix()}setColor(e){this.line.material.color.set(e),this.cone.material.color.set(e)}copy(e){return super.copy(e,!1),this.line.copy(e.line),this.cone.copy(e.cone),this}dispose(){this.line.geometry.dispose(),this.line.material.dispose(),this.cone.geometry.dispose(),this.cone.material.dispose()}}class zG extends Is{constructor(e=1){const t=[0,0,0,e,0,0,0,0,0,0,e,0,0,0,0,0,0,e],i=[1,0,0,1,.6,0,0,1,0,.6,1,0,0,0,1,0,.6,1],a=new Xt;a.setAttribute("position",new Dt(t,3)),a.setAttribute("color",new Dt(i,3));const r=new Ca({vertexColors:!0,toneMapped:!1});super(a,r),this.type="AxesHelper"}setColors(e,t,i){const a=new dt,r=this.geometry.attributes.color.array;return a.set(e),a.toArray(r,0),a.toArray(r,3),a.set(t),a.toArray(r,6),a.toArray(r,9),a.set(i),a.toArray(r,12),a.toArray(r,15),this.geometry.attributes.color.needsUpdate=!0,this}dispose(){this.geometry.dispose(),this.material.dispose()}}class GG{constructor(){this.type="ShapePath",this.color=new dt,this.subPaths=[],this.currentPath=null}moveTo(e,t){return this.currentPath=new Dx,this.subPaths.push(this.currentPath),this.currentPath.moveTo(e,t),this}lineTo(e,t){return this.currentPath.lineTo(e,t),this}quadraticCurveTo(e,t,i,a){return this.currentPath.quadraticCurveTo(e,t,i,a),this}bezierCurveTo(e,t,i,a,r,s){return this.currentPath.bezierCurveTo(e,t,i,a,r,s),this}splineThru(e){return this.currentPath.splineThru(e),this}toShapes(e){function t(v){const _=[];for(let A=0,b=v.length;ANumber.EPSILON){if(D<0&&(L=_[N],w=-w,B=_[O],D=-D),v.yB.y)continue;if(v.y===L.y){if(v.x===L.x)return!0}else{const G=D*(v.x-L.x)-w*(v.y-L.y);if(G===0)return!0;if(G<0)continue;b=!b}}else{if(v.y!==L.y)continue;if(B.x<=v.x&&v.x<=L.x||L.x<=v.x&&v.x<=B.x)return!0}}return b}const a=Rs.isClockWise,r=this.subPaths;if(r.length===0)return[];let s,o,c;const h=[];if(r.length===1)return o=r[0],c=new Nu,c.curves=o.curves,h.push(c),h;let f=!a(r[0].getPoints());f=e?!f:f;const d=[],m=[];let g=[],y=0,E;m[y]=void 0,g[y]=[];for(let v=0,_=r.length;v<_;v++)o=r[v],E=o.getPoints(),s=a(E),s=e?!s:s,s?(!f&&m[y]&&y++,m[y]={s:new Nu,p:E},m[y].s.curves=o.curves,f&&y++,g[y]=[]):g[y].push({h:o,p:E[0]});if(!m[0])return t(r);if(m.length>1){let v=!1,_=0;for(let A=0,b=m.length;A0&&v===!1&&(g=d)}let S;for(let v=0,_=m.length;v<_;v++){c=m[v].s,h.push(c),S=g[v];for(let A=0,b=S.length;Ae?(n.repeat.x=1,n.repeat.y=t/e,n.offset.x=0,n.offset.y=(1-n.repeat.y)/2):(n.repeat.x=e/t,n.repeat.y=1,n.offset.x=(1-n.repeat.x)/2,n.offset.y=0),n}function XG(n,e){const t=n.image&&n.image.width?n.image.width/n.image.height:1;return t>e?(n.repeat.x=e/t,n.repeat.y=1,n.offset.x=(1-n.repeat.x)/2,n.offset.y=0):(n.repeat.x=1,n.repeat.y=t/e,n.offset.x=0,n.offset.y=(1-n.repeat.y)/2),n}function WG(n){return n.repeat.x=1,n.repeat.y=1,n.offset.x=0,n.offset.y=0,n}function PE(n,e,t,i){const a=YG(i);switch(t){case D3:return n*e;case Ar:return n*e/a.components*a.byteLength;case R0:return n*e/a.components*a.byteLength;case zo:return n*e*2/a.components*a.byteLength;case gy:return n*e*2/a.components*a.byteLength;case N3:return n*e*3/a.components*a.byteLength;case Rn:return n*e*4/a.components*a.byteLength;case vy:return n*e*4/a.components*a.byteLength;case Em:case Tm:return Math.floor((n+3)/4)*Math.floor((e+3)/4)*8;case bm:case Mm:return Math.floor((n+3)/4)*Math.floor((e+3)/4)*16;case $1:case tx:return Math.max(n,16)*Math.max(e,8)/4;case Q1:case ex:return Math.max(n,8)*Math.max(e,8)/2;case nx:case ix:return Math.floor((n+3)/4)*Math.floor((e+3)/4)*8;case ax:return Math.floor((n+3)/4)*Math.floor((e+3)/4)*16;case rx:return Math.floor((n+3)/4)*Math.floor((e+3)/4)*16;case sx:return Math.floor((n+4)/5)*Math.floor((e+3)/4)*16;case ox:return Math.floor((n+4)/5)*Math.floor((e+4)/5)*16;case lx:return Math.floor((n+5)/6)*Math.floor((e+4)/5)*16;case cx:return Math.floor((n+5)/6)*Math.floor((e+5)/6)*16;case ux:return Math.floor((n+7)/8)*Math.floor((e+4)/5)*16;case hx:return Math.floor((n+7)/8)*Math.floor((e+5)/6)*16;case fx:return Math.floor((n+7)/8)*Math.floor((e+7)/8)*16;case dx:return Math.floor((n+9)/10)*Math.floor((e+4)/5)*16;case px:return Math.floor((n+9)/10)*Math.floor((e+5)/6)*16;case mx:return Math.floor((n+9)/10)*Math.floor((e+7)/8)*16;case gx:return Math.floor((n+9)/10)*Math.floor((e+9)/10)*16;case vx:return Math.floor((n+11)/12)*Math.floor((e+9)/10)*16;case xx:return Math.floor((n+11)/12)*Math.floor((e+11)/12)*16;case yx:case _x:case Sx:return Math.ceil(n/4)*Math.ceil(e/4)*16;case Ax:case Ex:return Math.ceil(n/4)*Math.ceil(e/4)*8;case Tx:case bx:return Math.ceil(n/4)*Math.ceil(e/4)*16}throw new Error(`Unable to determine texture byte length for ${t} format.`)}function YG(n){switch(n){case xi:case M0:return{byteLength:1,components:1};case Gu:case C0:case sn:return{byteLength:2,components:1};case py:case my:return{byteLength:2,components:4};case ls:case Fd:case Sn:return{byteLength:4,components:1};case R3:case w3:return{byteLength:4,components:3}}throw new Error(`Unknown texture type ${n}.`)}class qG{static contain(e,t){return kG(e,t)}static cover(e,t){return XG(e,t)}static fill(e){return WG(e)}static getByteLength(e,t,i,a){return PE(e,t,i,a)}}typeof __THREE_DEVTOOLS__<"u"&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("register",{detail:{revision:_c}}));typeof window<"u"&&(window.__THREE__?_t("WARNING: Multiple instances of Three.js being imported."):window.__THREE__=_c);/** + * @license + * Copyright 2010-2025 Three.js Authors + * SPDX-License-Identifier: MIT + */function JB(){let n=null,e=!1,t=null,i=null;function a(r,s){t(r,s),i=n.requestAnimationFrame(a)}return{start:function(){e!==!0&&t!==null&&(i=n.requestAnimationFrame(a),e=!0)},stop:function(){n.cancelAnimationFrame(i),e=!1},setAnimationLoop:function(r){t=r},setContext:function(r){n=r}}}function ZG(n){const e=new WeakMap;function t(o,c){const h=o.array,f=o.usage,d=h.byteLength,m=n.createBuffer();n.bindBuffer(c,m),n.bufferData(c,h,f),o.onUploadCallback();let g;if(h instanceof Float32Array)g=n.FLOAT;else if(typeof Float16Array<"u"&&h instanceof Float16Array)g=n.HALF_FLOAT;else if(h instanceof Uint16Array)o.isFloat16BufferAttribute?g=n.HALF_FLOAT:g=n.UNSIGNED_SHORT;else if(h instanceof Int16Array)g=n.SHORT;else if(h instanceof Uint32Array)g=n.UNSIGNED_INT;else if(h instanceof Int32Array)g=n.INT;else if(h instanceof Int8Array)g=n.BYTE;else if(h instanceof Uint8Array)g=n.UNSIGNED_BYTE;else if(h instanceof Uint8ClampedArray)g=n.UNSIGNED_BYTE;else throw new Error("THREE.WebGLAttributes: Unsupported buffer data format: "+h);return{buffer:m,type:g,bytesPerElement:h.BYTES_PER_ELEMENT,version:o.version,size:d}}function i(o,c,h){const f=c.array,d=c.updateRanges;if(n.bindBuffer(h,o),d.length===0)n.bufferSubData(h,0,f);else{d.sort((g,y)=>g.start-y.start);let m=0;for(let g=1;g 0 + vec4 plane; + #ifdef ALPHA_TO_COVERAGE + float distanceToPlane, distanceGradient; + float clipOpacity = 1.0; + #pragma unroll_loop_start + for ( int i = 0; i < UNION_CLIPPING_PLANES; i ++ ) { + plane = clippingPlanes[ i ]; + distanceToPlane = - dot( vClipPosition, plane.xyz ) + plane.w; + distanceGradient = fwidth( distanceToPlane ) / 2.0; + clipOpacity *= smoothstep( - distanceGradient, distanceGradient, distanceToPlane ); + if ( clipOpacity == 0.0 ) discard; + } + #pragma unroll_loop_end + #if UNION_CLIPPING_PLANES < NUM_CLIPPING_PLANES + float unionClipOpacity = 1.0; + #pragma unroll_loop_start + for ( int i = UNION_CLIPPING_PLANES; i < NUM_CLIPPING_PLANES; i ++ ) { + plane = clippingPlanes[ i ]; + distanceToPlane = - dot( vClipPosition, plane.xyz ) + plane.w; + distanceGradient = fwidth( distanceToPlane ) / 2.0; + unionClipOpacity *= 1.0 - smoothstep( - distanceGradient, distanceGradient, distanceToPlane ); + } + #pragma unroll_loop_end + clipOpacity *= 1.0 - unionClipOpacity; + #endif + diffuseColor.a *= clipOpacity; + if ( diffuseColor.a == 0.0 ) discard; + #else + #pragma unroll_loop_start + for ( int i = 0; i < UNION_CLIPPING_PLANES; i ++ ) { + plane = clippingPlanes[ i ]; + if ( dot( vClipPosition, plane.xyz ) > plane.w ) discard; + } + #pragma unroll_loop_end + #if UNION_CLIPPING_PLANES < NUM_CLIPPING_PLANES + bool clipped = true; + #pragma unroll_loop_start + for ( int i = UNION_CLIPPING_PLANES; i < NUM_CLIPPING_PLANES; i ++ ) { + plane = clippingPlanes[ i ]; + clipped = ( dot( vClipPosition, plane.xyz ) > plane.w ) && clipped; + } + #pragma unroll_loop_end + if ( clipped ) discard; + #endif + #endif +#endif`,hV=`#if NUM_CLIPPING_PLANES > 0 + varying vec3 vClipPosition; + uniform vec4 clippingPlanes[ NUM_CLIPPING_PLANES ]; +#endif`,fV=`#if NUM_CLIPPING_PLANES > 0 + varying vec3 vClipPosition; +#endif`,dV=`#if NUM_CLIPPING_PLANES > 0 + vClipPosition = - mvPosition.xyz; +#endif`,pV=`#if defined( USE_COLOR_ALPHA ) + diffuseColor *= vColor; +#elif defined( USE_COLOR ) + diffuseColor.rgb *= vColor; +#endif`,mV=`#if defined( USE_COLOR_ALPHA ) + varying vec4 vColor; +#elif defined( USE_COLOR ) + varying vec3 vColor; +#endif`,gV=`#if defined( USE_COLOR_ALPHA ) + varying vec4 vColor; +#elif defined( USE_COLOR ) || defined( USE_INSTANCING_COLOR ) || defined( USE_BATCHING_COLOR ) + varying vec3 vColor; +#endif`,vV=`#if defined( USE_COLOR_ALPHA ) + vColor = vec4( 1.0 ); +#elif defined( USE_COLOR ) || defined( USE_INSTANCING_COLOR ) || defined( USE_BATCHING_COLOR ) + vColor = vec3( 1.0 ); +#endif +#ifdef USE_COLOR + vColor *= color; +#endif +#ifdef USE_INSTANCING_COLOR + vColor.xyz *= instanceColor.xyz; +#endif +#ifdef USE_BATCHING_COLOR + vec3 batchingColor = getBatchingColor( getIndirectIndex( gl_DrawID ) ); + vColor.xyz *= batchingColor.xyz; +#endif`,xV=`#define PI 3.141592653589793 +#define PI2 6.283185307179586 +#define PI_HALF 1.5707963267948966 +#define RECIPROCAL_PI 0.3183098861837907 +#define RECIPROCAL_PI2 0.15915494309189535 +#define EPSILON 1e-6 +#ifndef saturate +#define saturate( a ) clamp( a, 0.0, 1.0 ) +#endif +#define whiteComplement( a ) ( 1.0 - saturate( a ) ) +float pow2( const in float x ) { return x*x; } +vec3 pow2( const in vec3 x ) { return x*x; } +float pow3( const in float x ) { return x*x*x; } +float pow4( const in float x ) { float x2 = x*x; return x2*x2; } +float max3( const in vec3 v ) { return max( max( v.x, v.y ), v.z ); } +float average( const in vec3 v ) { return dot( v, vec3( 0.3333333 ) ); } +highp float rand( const in vec2 uv ) { + const highp float a = 12.9898, b = 78.233, c = 43758.5453; + highp float dt = dot( uv.xy, vec2( a,b ) ), sn = mod( dt, PI ); + return fract( sin( sn ) * c ); +} +#ifdef HIGH_PRECISION + float precisionSafeLength( vec3 v ) { return length( v ); } +#else + float precisionSafeLength( vec3 v ) { + float maxComponent = max3( abs( v ) ); + return length( v / maxComponent ) * maxComponent; + } +#endif +struct IncidentLight { + vec3 color; + vec3 direction; + bool visible; +}; +struct ReflectedLight { + vec3 directDiffuse; + vec3 directSpecular; + vec3 indirectDiffuse; + vec3 indirectSpecular; +}; +#ifdef USE_ALPHAHASH + varying vec3 vPosition; +#endif +vec3 transformDirection( in vec3 dir, in mat4 matrix ) { + return normalize( ( matrix * vec4( dir, 0.0 ) ).xyz ); +} +vec3 inverseTransformDirection( in vec3 dir, in mat4 matrix ) { + return normalize( ( vec4( dir, 0.0 ) * matrix ).xyz ); +} +bool isPerspectiveMatrix( mat4 m ) { + return m[ 2 ][ 3 ] == - 1.0; +} +vec2 equirectUv( in vec3 dir ) { + float u = atan( dir.z, dir.x ) * RECIPROCAL_PI2 + 0.5; + float v = asin( clamp( dir.y, - 1.0, 1.0 ) ) * RECIPROCAL_PI + 0.5; + return vec2( u, v ); +} +vec3 BRDF_Lambert( const in vec3 diffuseColor ) { + return RECIPROCAL_PI * diffuseColor; +} +vec3 F_Schlick( const in vec3 f0, const in float f90, const in float dotVH ) { + float fresnel = exp2( ( - 5.55473 * dotVH - 6.98316 ) * dotVH ); + return f0 * ( 1.0 - fresnel ) + ( f90 * fresnel ); +} +float F_Schlick( const in float f0, const in float f90, const in float dotVH ) { + float fresnel = exp2( ( - 5.55473 * dotVH - 6.98316 ) * dotVH ); + return f0 * ( 1.0 - fresnel ) + ( f90 * fresnel ); +} // validated`,yV=`#ifdef ENVMAP_TYPE_CUBE_UV + #define cubeUV_minMipLevel 4.0 + #define cubeUV_minTileSize 16.0 + float getFace( vec3 direction ) { + vec3 absDirection = abs( direction ); + float face = - 1.0; + if ( absDirection.x > absDirection.z ) { + if ( absDirection.x > absDirection.y ) + face = direction.x > 0.0 ? 0.0 : 3.0; + else + face = direction.y > 0.0 ? 1.0 : 4.0; + } else { + if ( absDirection.z > absDirection.y ) + face = direction.z > 0.0 ? 2.0 : 5.0; + else + face = direction.y > 0.0 ? 1.0 : 4.0; + } + return face; + } + vec2 getUV( vec3 direction, float face ) { + vec2 uv; + if ( face == 0.0 ) { + uv = vec2( direction.z, direction.y ) / abs( direction.x ); + } else if ( face == 1.0 ) { + uv = vec2( - direction.x, - direction.z ) / abs( direction.y ); + } else if ( face == 2.0 ) { + uv = vec2( - direction.x, direction.y ) / abs( direction.z ); + } else if ( face == 3.0 ) { + uv = vec2( - direction.z, direction.y ) / abs( direction.x ); + } else if ( face == 4.0 ) { + uv = vec2( - direction.x, direction.z ) / abs( direction.y ); + } else { + uv = vec2( direction.x, direction.y ) / abs( direction.z ); + } + return 0.5 * ( uv + 1.0 ); + } + vec3 bilinearCubeUV( sampler2D envMap, vec3 direction, float mipInt ) { + float face = getFace( direction ); + float filterInt = max( cubeUV_minMipLevel - mipInt, 0.0 ); + mipInt = max( mipInt, cubeUV_minMipLevel ); + float faceSize = exp2( mipInt ); + highp vec2 uv = getUV( direction, face ) * ( faceSize - 2.0 ) + 1.0; + if ( face > 2.0 ) { + uv.y += faceSize; + face -= 3.0; + } + uv.x += face * faceSize; + uv.x += filterInt * 3.0 * cubeUV_minTileSize; + uv.y += 4.0 * ( exp2( CUBEUV_MAX_MIP ) - faceSize ); + uv.x *= CUBEUV_TEXEL_WIDTH; + uv.y *= CUBEUV_TEXEL_HEIGHT; + #ifdef texture2DGradEXT + return texture2DGradEXT( envMap, uv, vec2( 0.0 ), vec2( 0.0 ) ).rgb; + #else + return texture2D( envMap, uv ).rgb; + #endif + } + #define cubeUV_r0 1.0 + #define cubeUV_m0 - 2.0 + #define cubeUV_r1 0.8 + #define cubeUV_m1 - 1.0 + #define cubeUV_r4 0.4 + #define cubeUV_m4 2.0 + #define cubeUV_r5 0.305 + #define cubeUV_m5 3.0 + #define cubeUV_r6 0.21 + #define cubeUV_m6 4.0 + float roughnessToMip( float roughness ) { + float mip = 0.0; + if ( roughness >= cubeUV_r1 ) { + mip = ( cubeUV_r0 - roughness ) * ( cubeUV_m1 - cubeUV_m0 ) / ( cubeUV_r0 - cubeUV_r1 ) + cubeUV_m0; + } else if ( roughness >= cubeUV_r4 ) { + mip = ( cubeUV_r1 - roughness ) * ( cubeUV_m4 - cubeUV_m1 ) / ( cubeUV_r1 - cubeUV_r4 ) + cubeUV_m1; + } else if ( roughness >= cubeUV_r5 ) { + mip = ( cubeUV_r4 - roughness ) * ( cubeUV_m5 - cubeUV_m4 ) / ( cubeUV_r4 - cubeUV_r5 ) + cubeUV_m4; + } else if ( roughness >= cubeUV_r6 ) { + mip = ( cubeUV_r5 - roughness ) * ( cubeUV_m6 - cubeUV_m5 ) / ( cubeUV_r5 - cubeUV_r6 ) + cubeUV_m5; + } else { + mip = - 2.0 * log2( 1.16 * roughness ); } + return mip; + } + vec4 textureCubeUV( sampler2D envMap, vec3 sampleDir, float roughness ) { + float mip = clamp( roughnessToMip( roughness ), cubeUV_m0, CUBEUV_MAX_MIP ); + float mipF = fract( mip ); + float mipInt = floor( mip ); + vec3 color0 = bilinearCubeUV( envMap, sampleDir, mipInt ); + if ( mipF == 0.0 ) { + return vec4( color0, 1.0 ); + } else { + vec3 color1 = bilinearCubeUV( envMap, sampleDir, mipInt + 1.0 ); + return vec4( mix( color0, color1, mipF ), 1.0 ); + } + } +#endif`,_V=`vec3 transformedNormal = objectNormal; +#ifdef USE_TANGENT + vec3 transformedTangent = objectTangent; +#endif +#ifdef USE_BATCHING + mat3 bm = mat3( batchingMatrix ); + transformedNormal /= vec3( dot( bm[ 0 ], bm[ 0 ] ), dot( bm[ 1 ], bm[ 1 ] ), dot( bm[ 2 ], bm[ 2 ] ) ); + transformedNormal = bm * transformedNormal; + #ifdef USE_TANGENT + transformedTangent = bm * transformedTangent; + #endif +#endif +#ifdef USE_INSTANCING + mat3 im = mat3( instanceMatrix ); + transformedNormal /= vec3( dot( im[ 0 ], im[ 0 ] ), dot( im[ 1 ], im[ 1 ] ), dot( im[ 2 ], im[ 2 ] ) ); + transformedNormal = im * transformedNormal; + #ifdef USE_TANGENT + transformedTangent = im * transformedTangent; + #endif +#endif +transformedNormal = normalMatrix * transformedNormal; +#ifdef FLIP_SIDED + transformedNormal = - transformedNormal; +#endif +#ifdef USE_TANGENT + transformedTangent = ( modelViewMatrix * vec4( transformedTangent, 0.0 ) ).xyz; + #ifdef FLIP_SIDED + transformedTangent = - transformedTangent; + #endif +#endif`,SV=`#ifdef USE_DISPLACEMENTMAP + uniform sampler2D displacementMap; + uniform float displacementScale; + uniform float displacementBias; +#endif`,AV=`#ifdef USE_DISPLACEMENTMAP + transformed += normalize( objectNormal ) * ( texture2D( displacementMap, vDisplacementMapUv ).x * displacementScale + displacementBias ); +#endif`,EV=`#ifdef USE_EMISSIVEMAP + vec4 emissiveColor = texture2D( emissiveMap, vEmissiveMapUv ); + #ifdef DECODE_VIDEO_TEXTURE_EMISSIVE + emissiveColor = sRGBTransferEOTF( emissiveColor ); + #endif + totalEmissiveRadiance *= emissiveColor.rgb; +#endif`,TV=`#ifdef USE_EMISSIVEMAP + uniform sampler2D emissiveMap; +#endif`,bV="gl_FragColor = linearToOutputTexel( gl_FragColor );",MV=`vec4 LinearTransferOETF( in vec4 value ) { + return value; +} +vec4 sRGBTransferEOTF( in vec4 value ) { + return vec4( mix( pow( value.rgb * 0.9478672986 + vec3( 0.0521327014 ), vec3( 2.4 ) ), value.rgb * 0.0773993808, vec3( lessThanEqual( value.rgb, vec3( 0.04045 ) ) ) ), value.a ); +} +vec4 sRGBTransferOETF( in vec4 value ) { + return vec4( mix( pow( value.rgb, vec3( 0.41666 ) ) * 1.055 - vec3( 0.055 ), value.rgb * 12.92, vec3( lessThanEqual( value.rgb, vec3( 0.0031308 ) ) ) ), value.a ); +}`,CV=`#ifdef USE_ENVMAP + #ifdef ENV_WORLDPOS + vec3 cameraToFrag; + if ( isOrthographic ) { + cameraToFrag = normalize( vec3( - viewMatrix[ 0 ][ 2 ], - viewMatrix[ 1 ][ 2 ], - viewMatrix[ 2 ][ 2 ] ) ); + } else { + cameraToFrag = normalize( vWorldPosition - cameraPosition ); + } + vec3 worldNormal = inverseTransformDirection( normal, viewMatrix ); + #ifdef ENVMAP_MODE_REFLECTION + vec3 reflectVec = reflect( cameraToFrag, worldNormal ); + #else + vec3 reflectVec = refract( cameraToFrag, worldNormal, refractionRatio ); + #endif + #else + vec3 reflectVec = vReflect; + #endif + #ifdef ENVMAP_TYPE_CUBE + vec4 envColor = textureCube( envMap, envMapRotation * vec3( flipEnvMap * reflectVec.x, reflectVec.yz ) ); + #else + vec4 envColor = vec4( 0.0 ); + #endif + #ifdef ENVMAP_BLENDING_MULTIPLY + outgoingLight = mix( outgoingLight, outgoingLight * envColor.xyz, specularStrength * reflectivity ); + #elif defined( ENVMAP_BLENDING_MIX ) + outgoingLight = mix( outgoingLight, envColor.xyz, specularStrength * reflectivity ); + #elif defined( ENVMAP_BLENDING_ADD ) + outgoingLight += envColor.xyz * specularStrength * reflectivity; + #endif +#endif`,RV=`#ifdef USE_ENVMAP + uniform float envMapIntensity; + uniform float flipEnvMap; + uniform mat3 envMapRotation; + #ifdef ENVMAP_TYPE_CUBE + uniform samplerCube envMap; + #else + uniform sampler2D envMap; + #endif +#endif`,wV=`#ifdef USE_ENVMAP + uniform float reflectivity; + #if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG ) || defined( LAMBERT ) + #define ENV_WORLDPOS + #endif + #ifdef ENV_WORLDPOS + varying vec3 vWorldPosition; + uniform float refractionRatio; + #else + varying vec3 vReflect; + #endif +#endif`,DV=`#ifdef USE_ENVMAP + #if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG ) || defined( LAMBERT ) + #define ENV_WORLDPOS + #endif + #ifdef ENV_WORLDPOS + + varying vec3 vWorldPosition; + #else + varying vec3 vReflect; + uniform float refractionRatio; + #endif +#endif`,NV=`#ifdef USE_ENVMAP + #ifdef ENV_WORLDPOS + vWorldPosition = worldPosition.xyz; + #else + vec3 cameraToVertex; + if ( isOrthographic ) { + cameraToVertex = normalize( vec3( - viewMatrix[ 0 ][ 2 ], - viewMatrix[ 1 ][ 2 ], - viewMatrix[ 2 ][ 2 ] ) ); + } else { + cameraToVertex = normalize( worldPosition.xyz - cameraPosition ); + } + vec3 worldNormal = inverseTransformDirection( transformedNormal, viewMatrix ); + #ifdef ENVMAP_MODE_REFLECTION + vReflect = reflect( cameraToVertex, worldNormal ); + #else + vReflect = refract( cameraToVertex, worldNormal, refractionRatio ); + #endif + #endif +#endif`,OV=`#ifdef USE_FOG + vFogDepth = - mvPosition.z; +#endif`,IV=`#ifdef USE_FOG + varying float vFogDepth; +#endif`,BV=`#ifdef USE_FOG + #ifdef FOG_EXP2 + float fogFactor = 1.0 - exp( - fogDensity * fogDensity * vFogDepth * vFogDepth ); + #else + float fogFactor = smoothstep( fogNear, fogFar, vFogDepth ); + #endif + gl_FragColor.rgb = mix( gl_FragColor.rgb, fogColor, fogFactor ); +#endif`,UV=`#ifdef USE_FOG + uniform vec3 fogColor; + varying float vFogDepth; + #ifdef FOG_EXP2 + uniform float fogDensity; + #else + uniform float fogNear; + uniform float fogFar; + #endif +#endif`,LV=`#ifdef USE_GRADIENTMAP + uniform sampler2D gradientMap; +#endif +vec3 getGradientIrradiance( vec3 normal, vec3 lightDirection ) { + float dotNL = dot( normal, lightDirection ); + vec2 coord = vec2( dotNL * 0.5 + 0.5, 0.0 ); + #ifdef USE_GRADIENTMAP + return vec3( texture2D( gradientMap, coord ).r ); + #else + vec2 fw = fwidth( coord ) * 0.5; + return mix( vec3( 0.7 ), vec3( 1.0 ), smoothstep( 0.7 - fw.x, 0.7 + fw.x, coord.x ) ); + #endif +}`,PV=`#ifdef USE_LIGHTMAP + uniform sampler2D lightMap; + uniform float lightMapIntensity; +#endif`,FV=`LambertMaterial material; +material.diffuseColor = diffuseColor.rgb; +material.specularStrength = specularStrength;`,HV=`varying vec3 vViewPosition; +struct LambertMaterial { + vec3 diffuseColor; + float specularStrength; +}; +void RE_Direct_Lambert( const in IncidentLight directLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in LambertMaterial material, inout ReflectedLight reflectedLight ) { + float dotNL = saturate( dot( geometryNormal, directLight.direction ) ); + vec3 irradiance = dotNL * directLight.color; + reflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor ); +} +void RE_IndirectDiffuse_Lambert( const in vec3 irradiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in LambertMaterial material, inout ReflectedLight reflectedLight ) { + reflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor ); +} +#define RE_Direct RE_Direct_Lambert +#define RE_IndirectDiffuse RE_IndirectDiffuse_Lambert`,zV=`uniform bool receiveShadow; +uniform vec3 ambientLightColor; +#if defined( USE_LIGHT_PROBES ) + uniform vec3 lightProbe[ 9 ]; +#endif +vec3 shGetIrradianceAt( in vec3 normal, in vec3 shCoefficients[ 9 ] ) { + float x = normal.x, y = normal.y, z = normal.z; + vec3 result = shCoefficients[ 0 ] * 0.886227; + result += shCoefficients[ 1 ] * 2.0 * 0.511664 * y; + result += shCoefficients[ 2 ] * 2.0 * 0.511664 * z; + result += shCoefficients[ 3 ] * 2.0 * 0.511664 * x; + result += shCoefficients[ 4 ] * 2.0 * 0.429043 * x * y; + result += shCoefficients[ 5 ] * 2.0 * 0.429043 * y * z; + result += shCoefficients[ 6 ] * ( 0.743125 * z * z - 0.247708 ); + result += shCoefficients[ 7 ] * 2.0 * 0.429043 * x * z; + result += shCoefficients[ 8 ] * 0.429043 * ( x * x - y * y ); + return result; +} +vec3 getLightProbeIrradiance( const in vec3 lightProbe[ 9 ], const in vec3 normal ) { + vec3 worldNormal = inverseTransformDirection( normal, viewMatrix ); + vec3 irradiance = shGetIrradianceAt( worldNormal, lightProbe ); + return irradiance; +} +vec3 getAmbientLightIrradiance( const in vec3 ambientLightColor ) { + vec3 irradiance = ambientLightColor; + return irradiance; +} +float getDistanceAttenuation( const in float lightDistance, const in float cutoffDistance, const in float decayExponent ) { + float distanceFalloff = 1.0 / max( pow( lightDistance, decayExponent ), 0.01 ); + if ( cutoffDistance > 0.0 ) { + distanceFalloff *= pow2( saturate( 1.0 - pow4( lightDistance / cutoffDistance ) ) ); + } + return distanceFalloff; +} +float getSpotAttenuation( const in float coneCosine, const in float penumbraCosine, const in float angleCosine ) { + return smoothstep( coneCosine, penumbraCosine, angleCosine ); +} +#if NUM_DIR_LIGHTS > 0 + struct DirectionalLight { + vec3 direction; + vec3 color; + }; + uniform DirectionalLight directionalLights[ NUM_DIR_LIGHTS ]; + void getDirectionalLightInfo( const in DirectionalLight directionalLight, out IncidentLight light ) { + light.color = directionalLight.color; + light.direction = directionalLight.direction; + light.visible = true; + } +#endif +#if NUM_POINT_LIGHTS > 0 + struct PointLight { + vec3 position; + vec3 color; + float distance; + float decay; + }; + uniform PointLight pointLights[ NUM_POINT_LIGHTS ]; + void getPointLightInfo( const in PointLight pointLight, const in vec3 geometryPosition, out IncidentLight light ) { + vec3 lVector = pointLight.position - geometryPosition; + light.direction = normalize( lVector ); + float lightDistance = length( lVector ); + light.color = pointLight.color; + light.color *= getDistanceAttenuation( lightDistance, pointLight.distance, pointLight.decay ); + light.visible = ( light.color != vec3( 0.0 ) ); + } +#endif +#if NUM_SPOT_LIGHTS > 0 + struct SpotLight { + vec3 position; + vec3 direction; + vec3 color; + float distance; + float decay; + float coneCos; + float penumbraCos; + }; + uniform SpotLight spotLights[ NUM_SPOT_LIGHTS ]; + void getSpotLightInfo( const in SpotLight spotLight, const in vec3 geometryPosition, out IncidentLight light ) { + vec3 lVector = spotLight.position - geometryPosition; + light.direction = normalize( lVector ); + float angleCos = dot( light.direction, spotLight.direction ); + float spotAttenuation = getSpotAttenuation( spotLight.coneCos, spotLight.penumbraCos, angleCos ); + if ( spotAttenuation > 0.0 ) { + float lightDistance = length( lVector ); + light.color = spotLight.color * spotAttenuation; + light.color *= getDistanceAttenuation( lightDistance, spotLight.distance, spotLight.decay ); + light.visible = ( light.color != vec3( 0.0 ) ); + } else { + light.color = vec3( 0.0 ); + light.visible = false; + } + } +#endif +#if NUM_RECT_AREA_LIGHTS > 0 + struct RectAreaLight { + vec3 color; + vec3 position; + vec3 halfWidth; + vec3 halfHeight; + }; + uniform sampler2D ltc_1; uniform sampler2D ltc_2; + uniform RectAreaLight rectAreaLights[ NUM_RECT_AREA_LIGHTS ]; +#endif +#if NUM_HEMI_LIGHTS > 0 + struct HemisphereLight { + vec3 direction; + vec3 skyColor; + vec3 groundColor; + }; + uniform HemisphereLight hemisphereLights[ NUM_HEMI_LIGHTS ]; + vec3 getHemisphereLightIrradiance( const in HemisphereLight hemiLight, const in vec3 normal ) { + float dotNL = dot( normal, hemiLight.direction ); + float hemiDiffuseWeight = 0.5 * dotNL + 0.5; + vec3 irradiance = mix( hemiLight.groundColor, hemiLight.skyColor, hemiDiffuseWeight ); + return irradiance; + } +#endif`,GV=`#ifdef USE_ENVMAP + vec3 getIBLIrradiance( const in vec3 normal ) { + #ifdef ENVMAP_TYPE_CUBE_UV + vec3 worldNormal = inverseTransformDirection( normal, viewMatrix ); + vec4 envMapColor = textureCubeUV( envMap, envMapRotation * worldNormal, 1.0 ); + return PI * envMapColor.rgb * envMapIntensity; + #else + return vec3( 0.0 ); + #endif + } + vec3 getIBLRadiance( const in vec3 viewDir, const in vec3 normal, const in float roughness ) { + #ifdef ENVMAP_TYPE_CUBE_UV + vec3 reflectVec = reflect( - viewDir, normal ); + reflectVec = normalize( mix( reflectVec, normal, pow4( roughness ) ) ); + reflectVec = inverseTransformDirection( reflectVec, viewMatrix ); + vec4 envMapColor = textureCubeUV( envMap, envMapRotation * reflectVec, roughness ); + return envMapColor.rgb * envMapIntensity; + #else + return vec3( 0.0 ); + #endif + } + #ifdef USE_ANISOTROPY + vec3 getIBLAnisotropyRadiance( const in vec3 viewDir, const in vec3 normal, const in float roughness, const in vec3 bitangent, const in float anisotropy ) { + #ifdef ENVMAP_TYPE_CUBE_UV + vec3 bentNormal = cross( bitangent, viewDir ); + bentNormal = normalize( cross( bentNormal, bitangent ) ); + bentNormal = normalize( mix( bentNormal, normal, pow2( pow2( 1.0 - anisotropy * ( 1.0 - roughness ) ) ) ) ); + return getIBLRadiance( viewDir, bentNormal, roughness ); + #else + return vec3( 0.0 ); + #endif + } + #endif +#endif`,VV=`ToonMaterial material; +material.diffuseColor = diffuseColor.rgb;`,kV=`varying vec3 vViewPosition; +struct ToonMaterial { + vec3 diffuseColor; +}; +void RE_Direct_Toon( const in IncidentLight directLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in ToonMaterial material, inout ReflectedLight reflectedLight ) { + vec3 irradiance = getGradientIrradiance( geometryNormal, directLight.direction ) * directLight.color; + reflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor ); +} +void RE_IndirectDiffuse_Toon( const in vec3 irradiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in ToonMaterial material, inout ReflectedLight reflectedLight ) { + reflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor ); +} +#define RE_Direct RE_Direct_Toon +#define RE_IndirectDiffuse RE_IndirectDiffuse_Toon`,XV=`BlinnPhongMaterial material; +material.diffuseColor = diffuseColor.rgb; +material.specularColor = specular; +material.specularShininess = shininess; +material.specularStrength = specularStrength;`,WV=`varying vec3 vViewPosition; +struct BlinnPhongMaterial { + vec3 diffuseColor; + vec3 specularColor; + float specularShininess; + float specularStrength; +}; +void RE_Direct_BlinnPhong( const in IncidentLight directLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) { + float dotNL = saturate( dot( geometryNormal, directLight.direction ) ); + vec3 irradiance = dotNL * directLight.color; + reflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor ); + reflectedLight.directSpecular += irradiance * BRDF_BlinnPhong( directLight.direction, geometryViewDir, geometryNormal, material.specularColor, material.specularShininess ) * material.specularStrength; +} +void RE_IndirectDiffuse_BlinnPhong( const in vec3 irradiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) { + reflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor ); +} +#define RE_Direct RE_Direct_BlinnPhong +#define RE_IndirectDiffuse RE_IndirectDiffuse_BlinnPhong`,YV=`PhysicalMaterial material; +material.diffuseColor = diffuseColor.rgb * ( 1.0 - metalnessFactor ); +vec3 dxy = max( abs( dFdx( nonPerturbedNormal ) ), abs( dFdy( nonPerturbedNormal ) ) ); +float geometryRoughness = max( max( dxy.x, dxy.y ), dxy.z ); +material.roughness = max( roughnessFactor, 0.0525 );material.roughness += geometryRoughness; +material.roughness = min( material.roughness, 1.0 ); +#ifdef IOR + material.ior = ior; + #ifdef USE_SPECULAR + float specularIntensityFactor = specularIntensity; + vec3 specularColorFactor = specularColor; + #ifdef USE_SPECULAR_COLORMAP + specularColorFactor *= texture2D( specularColorMap, vSpecularColorMapUv ).rgb; + #endif + #ifdef USE_SPECULAR_INTENSITYMAP + specularIntensityFactor *= texture2D( specularIntensityMap, vSpecularIntensityMapUv ).a; + #endif + material.specularF90 = mix( specularIntensityFactor, 1.0, metalnessFactor ); + #else + float specularIntensityFactor = 1.0; + vec3 specularColorFactor = vec3( 1.0 ); + material.specularF90 = 1.0; + #endif + material.specularColor = mix( min( pow2( ( material.ior - 1.0 ) / ( material.ior + 1.0 ) ) * specularColorFactor, vec3( 1.0 ) ) * specularIntensityFactor, diffuseColor.rgb, metalnessFactor ); +#else + material.specularColor = mix( vec3( 0.04 ), diffuseColor.rgb, metalnessFactor ); + material.specularF90 = 1.0; +#endif +#ifdef USE_CLEARCOAT + material.clearcoat = clearcoat; + material.clearcoatRoughness = clearcoatRoughness; + material.clearcoatF0 = vec3( 0.04 ); + material.clearcoatF90 = 1.0; + #ifdef USE_CLEARCOATMAP + material.clearcoat *= texture2D( clearcoatMap, vClearcoatMapUv ).x; + #endif + #ifdef USE_CLEARCOAT_ROUGHNESSMAP + material.clearcoatRoughness *= texture2D( clearcoatRoughnessMap, vClearcoatRoughnessMapUv ).y; + #endif + material.clearcoat = saturate( material.clearcoat ); material.clearcoatRoughness = max( material.clearcoatRoughness, 0.0525 ); + material.clearcoatRoughness += geometryRoughness; + material.clearcoatRoughness = min( material.clearcoatRoughness, 1.0 ); +#endif +#ifdef USE_DISPERSION + material.dispersion = dispersion; +#endif +#ifdef USE_IRIDESCENCE + material.iridescence = iridescence; + material.iridescenceIOR = iridescenceIOR; + #ifdef USE_IRIDESCENCEMAP + material.iridescence *= texture2D( iridescenceMap, vIridescenceMapUv ).r; + #endif + #ifdef USE_IRIDESCENCE_THICKNESSMAP + material.iridescenceThickness = (iridescenceThicknessMaximum - iridescenceThicknessMinimum) * texture2D( iridescenceThicknessMap, vIridescenceThicknessMapUv ).g + iridescenceThicknessMinimum; + #else + material.iridescenceThickness = iridescenceThicknessMaximum; + #endif +#endif +#ifdef USE_SHEEN + material.sheenColor = sheenColor; + #ifdef USE_SHEEN_COLORMAP + material.sheenColor *= texture2D( sheenColorMap, vSheenColorMapUv ).rgb; + #endif + material.sheenRoughness = clamp( sheenRoughness, 0.07, 1.0 ); + #ifdef USE_SHEEN_ROUGHNESSMAP + material.sheenRoughness *= texture2D( sheenRoughnessMap, vSheenRoughnessMapUv ).a; + #endif +#endif +#ifdef USE_ANISOTROPY + #ifdef USE_ANISOTROPYMAP + mat2 anisotropyMat = mat2( anisotropyVector.x, anisotropyVector.y, - anisotropyVector.y, anisotropyVector.x ); + vec3 anisotropyPolar = texture2D( anisotropyMap, vAnisotropyMapUv ).rgb; + vec2 anisotropyV = anisotropyMat * normalize( 2.0 * anisotropyPolar.rg - vec2( 1.0 ) ) * anisotropyPolar.b; + #else + vec2 anisotropyV = anisotropyVector; + #endif + material.anisotropy = length( anisotropyV ); + if( material.anisotropy == 0.0 ) { + anisotropyV = vec2( 1.0, 0.0 ); + } else { + anisotropyV /= material.anisotropy; + material.anisotropy = saturate( material.anisotropy ); + } + material.alphaT = mix( pow2( material.roughness ), 1.0, pow2( material.anisotropy ) ); + material.anisotropyT = tbn[ 0 ] * anisotropyV.x + tbn[ 1 ] * anisotropyV.y; + material.anisotropyB = tbn[ 1 ] * anisotropyV.x - tbn[ 0 ] * anisotropyV.y; +#endif`,qV=`uniform sampler2D dfgLUT; +struct PhysicalMaterial { + vec3 diffuseColor; + float roughness; + vec3 specularColor; + float specularF90; + float dispersion; + #ifdef USE_CLEARCOAT + float clearcoat; + float clearcoatRoughness; + vec3 clearcoatF0; + float clearcoatF90; + #endif + #ifdef USE_IRIDESCENCE + float iridescence; + float iridescenceIOR; + float iridescenceThickness; + vec3 iridescenceFresnel; + vec3 iridescenceF0; + #endif + #ifdef USE_SHEEN + vec3 sheenColor; + float sheenRoughness; + #endif + #ifdef IOR + float ior; + #endif + #ifdef USE_TRANSMISSION + float transmission; + float transmissionAlpha; + float thickness; + float attenuationDistance; + vec3 attenuationColor; + #endif + #ifdef USE_ANISOTROPY + float anisotropy; + float alphaT; + vec3 anisotropyT; + vec3 anisotropyB; + #endif +}; +vec3 clearcoatSpecularDirect = vec3( 0.0 ); +vec3 clearcoatSpecularIndirect = vec3( 0.0 ); +vec3 sheenSpecularDirect = vec3( 0.0 ); +vec3 sheenSpecularIndirect = vec3(0.0 ); +vec3 Schlick_to_F0( const in vec3 f, const in float f90, const in float dotVH ) { + float x = clamp( 1.0 - dotVH, 0.0, 1.0 ); + float x2 = x * x; + float x5 = clamp( x * x2 * x2, 0.0, 0.9999 ); + return ( f - vec3( f90 ) * x5 ) / ( 1.0 - x5 ); +} +float V_GGX_SmithCorrelated( const in float alpha, const in float dotNL, const in float dotNV ) { + float a2 = pow2( alpha ); + float gv = dotNL * sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNV ) ); + float gl = dotNV * sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNL ) ); + return 0.5 / max( gv + gl, EPSILON ); +} +float D_GGX( const in float alpha, const in float dotNH ) { + float a2 = pow2( alpha ); + float denom = pow2( dotNH ) * ( a2 - 1.0 ) + 1.0; + return RECIPROCAL_PI * a2 / pow2( denom ); +} +#ifdef USE_ANISOTROPY + float V_GGX_SmithCorrelated_Anisotropic( const in float alphaT, const in float alphaB, const in float dotTV, const in float dotBV, const in float dotTL, const in float dotBL, const in float dotNV, const in float dotNL ) { + float gv = dotNL * length( vec3( alphaT * dotTV, alphaB * dotBV, dotNV ) ); + float gl = dotNV * length( vec3( alphaT * dotTL, alphaB * dotBL, dotNL ) ); + float v = 0.5 / ( gv + gl ); + return saturate(v); + } + float D_GGX_Anisotropic( const in float alphaT, const in float alphaB, const in float dotNH, const in float dotTH, const in float dotBH ) { + float a2 = alphaT * alphaB; + highp vec3 v = vec3( alphaB * dotTH, alphaT * dotBH, a2 * dotNH ); + highp float v2 = dot( v, v ); + float w2 = a2 / v2; + return RECIPROCAL_PI * a2 * pow2 ( w2 ); + } +#endif +#ifdef USE_CLEARCOAT + vec3 BRDF_GGX_Clearcoat( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, const in PhysicalMaterial material) { + vec3 f0 = material.clearcoatF0; + float f90 = material.clearcoatF90; + float roughness = material.clearcoatRoughness; + float alpha = pow2( roughness ); + vec3 halfDir = normalize( lightDir + viewDir ); + float dotNL = saturate( dot( normal, lightDir ) ); + float dotNV = saturate( dot( normal, viewDir ) ); + float dotNH = saturate( dot( normal, halfDir ) ); + float dotVH = saturate( dot( viewDir, halfDir ) ); + vec3 F = F_Schlick( f0, f90, dotVH ); + float V = V_GGX_SmithCorrelated( alpha, dotNL, dotNV ); + float D = D_GGX( alpha, dotNH ); + return F * ( V * D ); + } +#endif +vec3 BRDF_GGX( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, const in PhysicalMaterial material ) { + vec3 f0 = material.specularColor; + float f90 = material.specularF90; + float roughness = material.roughness; + float alpha = pow2( roughness ); + vec3 halfDir = normalize( lightDir + viewDir ); + float dotNL = saturate( dot( normal, lightDir ) ); + float dotNV = saturate( dot( normal, viewDir ) ); + float dotNH = saturate( dot( normal, halfDir ) ); + float dotVH = saturate( dot( viewDir, halfDir ) ); + vec3 F = F_Schlick( f0, f90, dotVH ); + #ifdef USE_IRIDESCENCE + F = mix( F, material.iridescenceFresnel, material.iridescence ); + #endif + #ifdef USE_ANISOTROPY + float dotTL = dot( material.anisotropyT, lightDir ); + float dotTV = dot( material.anisotropyT, viewDir ); + float dotTH = dot( material.anisotropyT, halfDir ); + float dotBL = dot( material.anisotropyB, lightDir ); + float dotBV = dot( material.anisotropyB, viewDir ); + float dotBH = dot( material.anisotropyB, halfDir ); + float V = V_GGX_SmithCorrelated_Anisotropic( material.alphaT, alpha, dotTV, dotBV, dotTL, dotBL, dotNV, dotNL ); + float D = D_GGX_Anisotropic( material.alphaT, alpha, dotNH, dotTH, dotBH ); + #else + float V = V_GGX_SmithCorrelated( alpha, dotNL, dotNV ); + float D = D_GGX( alpha, dotNH ); + #endif + return F * ( V * D ); +} +vec2 LTC_Uv( const in vec3 N, const in vec3 V, const in float roughness ) { + const float LUT_SIZE = 64.0; + const float LUT_SCALE = ( LUT_SIZE - 1.0 ) / LUT_SIZE; + const float LUT_BIAS = 0.5 / LUT_SIZE; + float dotNV = saturate( dot( N, V ) ); + vec2 uv = vec2( roughness, sqrt( 1.0 - dotNV ) ); + uv = uv * LUT_SCALE + LUT_BIAS; + return uv; +} +float LTC_ClippedSphereFormFactor( const in vec3 f ) { + float l = length( f ); + return max( ( l * l + f.z ) / ( l + 1.0 ), 0.0 ); +} +vec3 LTC_EdgeVectorFormFactor( const in vec3 v1, const in vec3 v2 ) { + float x = dot( v1, v2 ); + float y = abs( x ); + float a = 0.8543985 + ( 0.4965155 + 0.0145206 * y ) * y; + float b = 3.4175940 + ( 4.1616724 + y ) * y; + float v = a / b; + float theta_sintheta = ( x > 0.0 ) ? v : 0.5 * inversesqrt( max( 1.0 - x * x, 1e-7 ) ) - v; + return cross( v1, v2 ) * theta_sintheta; +} +vec3 LTC_Evaluate( const in vec3 N, const in vec3 V, const in vec3 P, const in mat3 mInv, const in vec3 rectCoords[ 4 ] ) { + vec3 v1 = rectCoords[ 1 ] - rectCoords[ 0 ]; + vec3 v2 = rectCoords[ 3 ] - rectCoords[ 0 ]; + vec3 lightNormal = cross( v1, v2 ); + if( dot( lightNormal, P - rectCoords[ 0 ] ) < 0.0 ) return vec3( 0.0 ); + vec3 T1, T2; + T1 = normalize( V - N * dot( V, N ) ); + T2 = - cross( N, T1 ); + mat3 mat = mInv * transpose( mat3( T1, T2, N ) ); + vec3 coords[ 4 ]; + coords[ 0 ] = mat * ( rectCoords[ 0 ] - P ); + coords[ 1 ] = mat * ( rectCoords[ 1 ] - P ); + coords[ 2 ] = mat * ( rectCoords[ 2 ] - P ); + coords[ 3 ] = mat * ( rectCoords[ 3 ] - P ); + coords[ 0 ] = normalize( coords[ 0 ] ); + coords[ 1 ] = normalize( coords[ 1 ] ); + coords[ 2 ] = normalize( coords[ 2 ] ); + coords[ 3 ] = normalize( coords[ 3 ] ); + vec3 vectorFormFactor = vec3( 0.0 ); + vectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 0 ], coords[ 1 ] ); + vectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 1 ], coords[ 2 ] ); + vectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 2 ], coords[ 3 ] ); + vectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 3 ], coords[ 0 ] ); + float result = LTC_ClippedSphereFormFactor( vectorFormFactor ); + return vec3( result ); +} +#if defined( USE_SHEEN ) +float D_Charlie( float roughness, float dotNH ) { + float alpha = pow2( roughness ); + float invAlpha = 1.0 / alpha; + float cos2h = dotNH * dotNH; + float sin2h = max( 1.0 - cos2h, 0.0078125 ); + return ( 2.0 + invAlpha ) * pow( sin2h, invAlpha * 0.5 ) / ( 2.0 * PI ); +} +float V_Neubelt( float dotNV, float dotNL ) { + return saturate( 1.0 / ( 4.0 * ( dotNL + dotNV - dotNL * dotNV ) ) ); +} +vec3 BRDF_Sheen( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, vec3 sheenColor, const in float sheenRoughness ) { + vec3 halfDir = normalize( lightDir + viewDir ); + float dotNL = saturate( dot( normal, lightDir ) ); + float dotNV = saturate( dot( normal, viewDir ) ); + float dotNH = saturate( dot( normal, halfDir ) ); + float D = D_Charlie( sheenRoughness, dotNH ); + float V = V_Neubelt( dotNV, dotNL ); + return sheenColor * ( D * V ); +} +#endif +float IBLSheenBRDF( const in vec3 normal, const in vec3 viewDir, const in float roughness ) { + float dotNV = saturate( dot( normal, viewDir ) ); + float r2 = roughness * roughness; + float a = roughness < 0.25 ? -339.2 * r2 + 161.4 * roughness - 25.9 : -8.48 * r2 + 14.3 * roughness - 9.95; + float b = roughness < 0.25 ? 44.0 * r2 - 23.7 * roughness + 3.26 : 1.97 * r2 - 3.27 * roughness + 0.72; + float DG = exp( a * dotNV + b ) + ( roughness < 0.25 ? 0.0 : 0.1 * ( roughness - 0.25 ) ); + return saturate( DG * RECIPROCAL_PI ); +} +vec2 DFGApprox( const in vec3 normal, const in vec3 viewDir, const in float roughness ) { + float dotNV = saturate( dot( normal, viewDir ) ); + vec2 uv = vec2( roughness, dotNV ); + return texture2D( dfgLUT, uv ).rg; +} +vec3 EnvironmentBRDF( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float roughness ) { + vec2 fab = DFGApprox( normal, viewDir, roughness ); + return specularColor * fab.x + specularF90 * fab.y; +} +#ifdef USE_IRIDESCENCE +void computeMultiscatteringIridescence( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float iridescence, const in vec3 iridescenceF0, const in float roughness, inout vec3 singleScatter, inout vec3 multiScatter ) { +#else +void computeMultiscattering( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float roughness, inout vec3 singleScatter, inout vec3 multiScatter ) { +#endif + vec2 fab = DFGApprox( normal, viewDir, roughness ); + #ifdef USE_IRIDESCENCE + vec3 Fr = mix( specularColor, iridescenceF0, iridescence ); + #else + vec3 Fr = specularColor; + #endif + vec3 FssEss = Fr * fab.x + specularF90 * fab.y; + float Ess = fab.x + fab.y; + float Ems = 1.0 - Ess; + vec3 Favg = Fr + ( 1.0 - Fr ) * 0.047619; vec3 Fms = FssEss * Favg / ( 1.0 - Ems * Favg ); + singleScatter += FssEss; + multiScatter += Fms * Ems; +} +vec3 BRDF_GGX_Multiscatter( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, const in PhysicalMaterial material ) { + vec3 singleScatter = BRDF_GGX( lightDir, viewDir, normal, material ); + float dotNL = saturate( dot( normal, lightDir ) ); + float dotNV = saturate( dot( normal, viewDir ) ); + vec2 dfgV = DFGApprox( vec3(0.0, 0.0, 1.0), vec3(sqrt(1.0 - dotNV * dotNV), 0.0, dotNV), material.roughness ); + vec2 dfgL = DFGApprox( vec3(0.0, 0.0, 1.0), vec3(sqrt(1.0 - dotNL * dotNL), 0.0, dotNL), material.roughness ); + vec3 FssEss_V = material.specularColor * dfgV.x + material.specularF90 * dfgV.y; + vec3 FssEss_L = material.specularColor * dfgL.x + material.specularF90 * dfgL.y; + float Ess_V = dfgV.x + dfgV.y; + float Ess_L = dfgL.x + dfgL.y; + float Ems_V = 1.0 - Ess_V; + float Ems_L = 1.0 - Ess_L; + vec3 Favg = material.specularColor + ( 1.0 - material.specularColor ) * 0.047619; + vec3 Fms = FssEss_V * FssEss_L * Favg / ( 1.0 - Ems_V * Ems_L * Favg * Favg + EPSILON ); + float compensationFactor = Ems_V * Ems_L; + vec3 multiScatter = Fms * compensationFactor; + return singleScatter + multiScatter; +} +#if NUM_RECT_AREA_LIGHTS > 0 + void RE_Direct_RectArea_Physical( const in RectAreaLight rectAreaLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) { + vec3 normal = geometryNormal; + vec3 viewDir = geometryViewDir; + vec3 position = geometryPosition; + vec3 lightPos = rectAreaLight.position; + vec3 halfWidth = rectAreaLight.halfWidth; + vec3 halfHeight = rectAreaLight.halfHeight; + vec3 lightColor = rectAreaLight.color; + float roughness = material.roughness; + vec3 rectCoords[ 4 ]; + rectCoords[ 0 ] = lightPos + halfWidth - halfHeight; rectCoords[ 1 ] = lightPos - halfWidth - halfHeight; + rectCoords[ 2 ] = lightPos - halfWidth + halfHeight; + rectCoords[ 3 ] = lightPos + halfWidth + halfHeight; + vec2 uv = LTC_Uv( normal, viewDir, roughness ); + vec4 t1 = texture2D( ltc_1, uv ); + vec4 t2 = texture2D( ltc_2, uv ); + mat3 mInv = mat3( + vec3( t1.x, 0, t1.y ), + vec3( 0, 1, 0 ), + vec3( t1.z, 0, t1.w ) + ); + vec3 fresnel = ( material.specularColor * t2.x + ( vec3( 1.0 ) - material.specularColor ) * t2.y ); + reflectedLight.directSpecular += lightColor * fresnel * LTC_Evaluate( normal, viewDir, position, mInv, rectCoords ); + reflectedLight.directDiffuse += lightColor * material.diffuseColor * LTC_Evaluate( normal, viewDir, position, mat3( 1.0 ), rectCoords ); + } +#endif +void RE_Direct_Physical( const in IncidentLight directLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) { + float dotNL = saturate( dot( geometryNormal, directLight.direction ) ); + vec3 irradiance = dotNL * directLight.color; + #ifdef USE_CLEARCOAT + float dotNLcc = saturate( dot( geometryClearcoatNormal, directLight.direction ) ); + vec3 ccIrradiance = dotNLcc * directLight.color; + clearcoatSpecularDirect += ccIrradiance * BRDF_GGX_Clearcoat( directLight.direction, geometryViewDir, geometryClearcoatNormal, material ); + #endif + #ifdef USE_SHEEN + sheenSpecularDirect += irradiance * BRDF_Sheen( directLight.direction, geometryViewDir, geometryNormal, material.sheenColor, material.sheenRoughness ); + #endif + reflectedLight.directSpecular += irradiance * BRDF_GGX_Multiscatter( directLight.direction, geometryViewDir, geometryNormal, material ); + reflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor ); +} +void RE_IndirectDiffuse_Physical( const in vec3 irradiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) { + reflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor ); +} +void RE_IndirectSpecular_Physical( const in vec3 radiance, const in vec3 irradiance, const in vec3 clearcoatRadiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in PhysicalMaterial material, inout ReflectedLight reflectedLight) { + #ifdef USE_CLEARCOAT + clearcoatSpecularIndirect += clearcoatRadiance * EnvironmentBRDF( geometryClearcoatNormal, geometryViewDir, material.clearcoatF0, material.clearcoatF90, material.clearcoatRoughness ); + #endif + #ifdef USE_SHEEN + sheenSpecularIndirect += irradiance * material.sheenColor * IBLSheenBRDF( geometryNormal, geometryViewDir, material.sheenRoughness ); + #endif + vec3 singleScattering = vec3( 0.0 ); + vec3 multiScattering = vec3( 0.0 ); + vec3 cosineWeightedIrradiance = irradiance * RECIPROCAL_PI; + #ifdef USE_IRIDESCENCE + computeMultiscatteringIridescence( geometryNormal, geometryViewDir, material.specularColor, material.specularF90, material.iridescence, material.iridescenceFresnel, material.roughness, singleScattering, multiScattering ); + #else + computeMultiscattering( geometryNormal, geometryViewDir, material.specularColor, material.specularF90, material.roughness, singleScattering, multiScattering ); + #endif + vec3 totalScattering = singleScattering + multiScattering; + vec3 diffuse = material.diffuseColor * ( 1.0 - max( max( totalScattering.r, totalScattering.g ), totalScattering.b ) ); + reflectedLight.indirectSpecular += radiance * singleScattering; + reflectedLight.indirectSpecular += multiScattering * cosineWeightedIrradiance; + reflectedLight.indirectDiffuse += diffuse * cosineWeightedIrradiance; +} +#define RE_Direct RE_Direct_Physical +#define RE_Direct_RectArea RE_Direct_RectArea_Physical +#define RE_IndirectDiffuse RE_IndirectDiffuse_Physical +#define RE_IndirectSpecular RE_IndirectSpecular_Physical +float computeSpecularOcclusion( const in float dotNV, const in float ambientOcclusion, const in float roughness ) { + return saturate( pow( dotNV + ambientOcclusion, exp2( - 16.0 * roughness - 1.0 ) ) - 1.0 + ambientOcclusion ); +}`,ZV=` +vec3 geometryPosition = - vViewPosition; +vec3 geometryNormal = normal; +vec3 geometryViewDir = ( isOrthographic ) ? vec3( 0, 0, 1 ) : normalize( vViewPosition ); +vec3 geometryClearcoatNormal = vec3( 0.0 ); +#ifdef USE_CLEARCOAT + geometryClearcoatNormal = clearcoatNormal; +#endif +#ifdef USE_IRIDESCENCE + float dotNVi = saturate( dot( normal, geometryViewDir ) ); + if ( material.iridescenceThickness == 0.0 ) { + material.iridescence = 0.0; + } else { + material.iridescence = saturate( material.iridescence ); + } + if ( material.iridescence > 0.0 ) { + material.iridescenceFresnel = evalIridescence( 1.0, material.iridescenceIOR, dotNVi, material.iridescenceThickness, material.specularColor ); + material.iridescenceF0 = Schlick_to_F0( material.iridescenceFresnel, 1.0, dotNVi ); + } +#endif +IncidentLight directLight; +#if ( NUM_POINT_LIGHTS > 0 ) && defined( RE_Direct ) + PointLight pointLight; + #if defined( USE_SHADOWMAP ) && NUM_POINT_LIGHT_SHADOWS > 0 + PointLightShadow pointLightShadow; + #endif + #pragma unroll_loop_start + for ( int i = 0; i < NUM_POINT_LIGHTS; i ++ ) { + pointLight = pointLights[ i ]; + getPointLightInfo( pointLight, geometryPosition, directLight ); + #if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_POINT_LIGHT_SHADOWS ) + pointLightShadow = pointLightShadows[ i ]; + directLight.color *= ( directLight.visible && receiveShadow ) ? getPointShadow( pointShadowMap[ i ], pointLightShadow.shadowMapSize, pointLightShadow.shadowIntensity, pointLightShadow.shadowBias, pointLightShadow.shadowRadius, vPointShadowCoord[ i ], pointLightShadow.shadowCameraNear, pointLightShadow.shadowCameraFar ) : 1.0; + #endif + RE_Direct( directLight, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight ); + } + #pragma unroll_loop_end +#endif +#if ( NUM_SPOT_LIGHTS > 0 ) && defined( RE_Direct ) + SpotLight spotLight; + vec4 spotColor; + vec3 spotLightCoord; + bool inSpotLightMap; + #if defined( USE_SHADOWMAP ) && NUM_SPOT_LIGHT_SHADOWS > 0 + SpotLightShadow spotLightShadow; + #endif + #pragma unroll_loop_start + for ( int i = 0; i < NUM_SPOT_LIGHTS; i ++ ) { + spotLight = spotLights[ i ]; + getSpotLightInfo( spotLight, geometryPosition, directLight ); + #if ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS_WITH_MAPS ) + #define SPOT_LIGHT_MAP_INDEX UNROLLED_LOOP_INDEX + #elif ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS ) + #define SPOT_LIGHT_MAP_INDEX NUM_SPOT_LIGHT_MAPS + #else + #define SPOT_LIGHT_MAP_INDEX ( UNROLLED_LOOP_INDEX - NUM_SPOT_LIGHT_SHADOWS + NUM_SPOT_LIGHT_SHADOWS_WITH_MAPS ) + #endif + #if ( SPOT_LIGHT_MAP_INDEX < NUM_SPOT_LIGHT_MAPS ) + spotLightCoord = vSpotLightCoord[ i ].xyz / vSpotLightCoord[ i ].w; + inSpotLightMap = all( lessThan( abs( spotLightCoord * 2. - 1. ), vec3( 1.0 ) ) ); + spotColor = texture2D( spotLightMap[ SPOT_LIGHT_MAP_INDEX ], spotLightCoord.xy ); + directLight.color = inSpotLightMap ? directLight.color * spotColor.rgb : directLight.color; + #endif + #undef SPOT_LIGHT_MAP_INDEX + #if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS ) + spotLightShadow = spotLightShadows[ i ]; + directLight.color *= ( directLight.visible && receiveShadow ) ? getShadow( spotShadowMap[ i ], spotLightShadow.shadowMapSize, spotLightShadow.shadowIntensity, spotLightShadow.shadowBias, spotLightShadow.shadowRadius, vSpotLightCoord[ i ] ) : 1.0; + #endif + RE_Direct( directLight, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight ); + } + #pragma unroll_loop_end +#endif +#if ( NUM_DIR_LIGHTS > 0 ) && defined( RE_Direct ) + DirectionalLight directionalLight; + #if defined( USE_SHADOWMAP ) && NUM_DIR_LIGHT_SHADOWS > 0 + DirectionalLightShadow directionalLightShadow; + #endif + #pragma unroll_loop_start + for ( int i = 0; i < NUM_DIR_LIGHTS; i ++ ) { + directionalLight = directionalLights[ i ]; + getDirectionalLightInfo( directionalLight, directLight ); + #if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_DIR_LIGHT_SHADOWS ) + directionalLightShadow = directionalLightShadows[ i ]; + directLight.color *= ( directLight.visible && receiveShadow ) ? getShadow( directionalShadowMap[ i ], directionalLightShadow.shadowMapSize, directionalLightShadow.shadowIntensity, directionalLightShadow.shadowBias, directionalLightShadow.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0; + #endif + RE_Direct( directLight, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight ); + } + #pragma unroll_loop_end +#endif +#if ( NUM_RECT_AREA_LIGHTS > 0 ) && defined( RE_Direct_RectArea ) + RectAreaLight rectAreaLight; + #pragma unroll_loop_start + for ( int i = 0; i < NUM_RECT_AREA_LIGHTS; i ++ ) { + rectAreaLight = rectAreaLights[ i ]; + RE_Direct_RectArea( rectAreaLight, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight ); + } + #pragma unroll_loop_end +#endif +#if defined( RE_IndirectDiffuse ) + vec3 iblIrradiance = vec3( 0.0 ); + vec3 irradiance = getAmbientLightIrradiance( ambientLightColor ); + #if defined( USE_LIGHT_PROBES ) + irradiance += getLightProbeIrradiance( lightProbe, geometryNormal ); + #endif + #if ( NUM_HEMI_LIGHTS > 0 ) + #pragma unroll_loop_start + for ( int i = 0; i < NUM_HEMI_LIGHTS; i ++ ) { + irradiance += getHemisphereLightIrradiance( hemisphereLights[ i ], geometryNormal ); + } + #pragma unroll_loop_end + #endif +#endif +#if defined( RE_IndirectSpecular ) + vec3 radiance = vec3( 0.0 ); + vec3 clearcoatRadiance = vec3( 0.0 ); +#endif`,jV=`#if defined( RE_IndirectDiffuse ) + #ifdef USE_LIGHTMAP + vec4 lightMapTexel = texture2D( lightMap, vLightMapUv ); + vec3 lightMapIrradiance = lightMapTexel.rgb * lightMapIntensity; + irradiance += lightMapIrradiance; + #endif + #if defined( USE_ENVMAP ) && defined( STANDARD ) && defined( ENVMAP_TYPE_CUBE_UV ) + iblIrradiance += getIBLIrradiance( geometryNormal ); + #endif +#endif +#if defined( USE_ENVMAP ) && defined( RE_IndirectSpecular ) + #ifdef USE_ANISOTROPY + radiance += getIBLAnisotropyRadiance( geometryViewDir, geometryNormal, material.roughness, material.anisotropyB, material.anisotropy ); + #else + radiance += getIBLRadiance( geometryViewDir, geometryNormal, material.roughness ); + #endif + #ifdef USE_CLEARCOAT + clearcoatRadiance += getIBLRadiance( geometryViewDir, geometryClearcoatNormal, material.clearcoatRoughness ); + #endif +#endif`,KV=`#if defined( RE_IndirectDiffuse ) + RE_IndirectDiffuse( irradiance, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight ); +#endif +#if defined( RE_IndirectSpecular ) + RE_IndirectSpecular( radiance, iblIrradiance, clearcoatRadiance, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight ); +#endif`,JV=`#if defined( USE_LOGARITHMIC_DEPTH_BUFFER ) + gl_FragDepth = vIsPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5; +#endif`,QV=`#if defined( USE_LOGARITHMIC_DEPTH_BUFFER ) + uniform float logDepthBufFC; + varying float vFragDepth; + varying float vIsPerspective; +#endif`,$V=`#ifdef USE_LOGARITHMIC_DEPTH_BUFFER + varying float vFragDepth; + varying float vIsPerspective; +#endif`,ek=`#ifdef USE_LOGARITHMIC_DEPTH_BUFFER + vFragDepth = 1.0 + gl_Position.w; + vIsPerspective = float( isPerspectiveMatrix( projectionMatrix ) ); +#endif`,tk=`#ifdef USE_MAP + vec4 sampledDiffuseColor = texture2D( map, vMapUv ); + #ifdef DECODE_VIDEO_TEXTURE + sampledDiffuseColor = sRGBTransferEOTF( sampledDiffuseColor ); + #endif + diffuseColor *= sampledDiffuseColor; +#endif`,nk=`#ifdef USE_MAP + uniform sampler2D map; +#endif`,ik=`#if defined( USE_MAP ) || defined( USE_ALPHAMAP ) + #if defined( USE_POINTS_UV ) + vec2 uv = vUv; + #else + vec2 uv = ( uvTransform * vec3( gl_PointCoord.x, 1.0 - gl_PointCoord.y, 1 ) ).xy; + #endif +#endif +#ifdef USE_MAP + diffuseColor *= texture2D( map, uv ); +#endif +#ifdef USE_ALPHAMAP + diffuseColor.a *= texture2D( alphaMap, uv ).g; +#endif`,ak=`#if defined( USE_POINTS_UV ) + varying vec2 vUv; +#else + #if defined( USE_MAP ) || defined( USE_ALPHAMAP ) + uniform mat3 uvTransform; + #endif +#endif +#ifdef USE_MAP + uniform sampler2D map; +#endif +#ifdef USE_ALPHAMAP + uniform sampler2D alphaMap; +#endif`,rk=`float metalnessFactor = metalness; +#ifdef USE_METALNESSMAP + vec4 texelMetalness = texture2D( metalnessMap, vMetalnessMapUv ); + metalnessFactor *= texelMetalness.b; +#endif`,sk=`#ifdef USE_METALNESSMAP + uniform sampler2D metalnessMap; +#endif`,ok=`#ifdef USE_INSTANCING_MORPH + float morphTargetInfluences[ MORPHTARGETS_COUNT ]; + float morphTargetBaseInfluence = texelFetch( morphTexture, ivec2( 0, gl_InstanceID ), 0 ).r; + for ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) { + morphTargetInfluences[i] = texelFetch( morphTexture, ivec2( i + 1, gl_InstanceID ), 0 ).r; + } +#endif`,lk=`#if defined( USE_MORPHCOLORS ) + vColor *= morphTargetBaseInfluence; + for ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) { + #if defined( USE_COLOR_ALPHA ) + if ( morphTargetInfluences[ i ] != 0.0 ) vColor += getMorph( gl_VertexID, i, 2 ) * morphTargetInfluences[ i ]; + #elif defined( USE_COLOR ) + if ( morphTargetInfluences[ i ] != 0.0 ) vColor += getMorph( gl_VertexID, i, 2 ).rgb * morphTargetInfluences[ i ]; + #endif + } +#endif`,ck=`#ifdef USE_MORPHNORMALS + objectNormal *= morphTargetBaseInfluence; + for ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) { + if ( morphTargetInfluences[ i ] != 0.0 ) objectNormal += getMorph( gl_VertexID, i, 1 ).xyz * morphTargetInfluences[ i ]; + } +#endif`,uk=`#ifdef USE_MORPHTARGETS + #ifndef USE_INSTANCING_MORPH + uniform float morphTargetBaseInfluence; + uniform float morphTargetInfluences[ MORPHTARGETS_COUNT ]; + #endif + uniform sampler2DArray morphTargetsTexture; + uniform ivec2 morphTargetsTextureSize; + vec4 getMorph( const in int vertexIndex, const in int morphTargetIndex, const in int offset ) { + int texelIndex = vertexIndex * MORPHTARGETS_TEXTURE_STRIDE + offset; + int y = texelIndex / morphTargetsTextureSize.x; + int x = texelIndex - y * morphTargetsTextureSize.x; + ivec3 morphUV = ivec3( x, y, morphTargetIndex ); + return texelFetch( morphTargetsTexture, morphUV, 0 ); + } +#endif`,hk=`#ifdef USE_MORPHTARGETS + transformed *= morphTargetBaseInfluence; + for ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) { + if ( morphTargetInfluences[ i ] != 0.0 ) transformed += getMorph( gl_VertexID, i, 0 ).xyz * morphTargetInfluences[ i ]; + } +#endif`,fk=`float faceDirection = gl_FrontFacing ? 1.0 : - 1.0; +#ifdef FLAT_SHADED + vec3 fdx = dFdx( vViewPosition ); + vec3 fdy = dFdy( vViewPosition ); + vec3 normal = normalize( cross( fdx, fdy ) ); +#else + vec3 normal = normalize( vNormal ); + #ifdef DOUBLE_SIDED + normal *= faceDirection; + #endif +#endif +#if defined( USE_NORMALMAP_TANGENTSPACE ) || defined( USE_CLEARCOAT_NORMALMAP ) || defined( USE_ANISOTROPY ) + #ifdef USE_TANGENT + mat3 tbn = mat3( normalize( vTangent ), normalize( vBitangent ), normal ); + #else + mat3 tbn = getTangentFrame( - vViewPosition, normal, + #if defined( USE_NORMALMAP ) + vNormalMapUv + #elif defined( USE_CLEARCOAT_NORMALMAP ) + vClearcoatNormalMapUv + #else + vUv + #endif + ); + #endif + #if defined( DOUBLE_SIDED ) && ! defined( FLAT_SHADED ) + tbn[0] *= faceDirection; + tbn[1] *= faceDirection; + #endif +#endif +#ifdef USE_CLEARCOAT_NORMALMAP + #ifdef USE_TANGENT + mat3 tbn2 = mat3( normalize( vTangent ), normalize( vBitangent ), normal ); + #else + mat3 tbn2 = getTangentFrame( - vViewPosition, normal, vClearcoatNormalMapUv ); + #endif + #if defined( DOUBLE_SIDED ) && ! defined( FLAT_SHADED ) + tbn2[0] *= faceDirection; + tbn2[1] *= faceDirection; + #endif +#endif +vec3 nonPerturbedNormal = normal;`,dk=`#ifdef USE_NORMALMAP_OBJECTSPACE + normal = texture2D( normalMap, vNormalMapUv ).xyz * 2.0 - 1.0; + #ifdef FLIP_SIDED + normal = - normal; + #endif + #ifdef DOUBLE_SIDED + normal = normal * faceDirection; + #endif + normal = normalize( normalMatrix * normal ); +#elif defined( USE_NORMALMAP_TANGENTSPACE ) + vec3 mapN = texture2D( normalMap, vNormalMapUv ).xyz * 2.0 - 1.0; + mapN.xy *= normalScale; + normal = normalize( tbn * mapN ); +#elif defined( USE_BUMPMAP ) + normal = perturbNormalArb( - vViewPosition, normal, dHdxy_fwd(), faceDirection ); +#endif`,pk=`#ifndef FLAT_SHADED + varying vec3 vNormal; + #ifdef USE_TANGENT + varying vec3 vTangent; + varying vec3 vBitangent; + #endif +#endif`,mk=`#ifndef FLAT_SHADED + varying vec3 vNormal; + #ifdef USE_TANGENT + varying vec3 vTangent; + varying vec3 vBitangent; + #endif +#endif`,gk=`#ifndef FLAT_SHADED + vNormal = normalize( transformedNormal ); + #ifdef USE_TANGENT + vTangent = normalize( transformedTangent ); + vBitangent = normalize( cross( vNormal, vTangent ) * tangent.w ); + #endif +#endif`,vk=`#ifdef USE_NORMALMAP + uniform sampler2D normalMap; + uniform vec2 normalScale; +#endif +#ifdef USE_NORMALMAP_OBJECTSPACE + uniform mat3 normalMatrix; +#endif +#if ! defined ( USE_TANGENT ) && ( defined ( USE_NORMALMAP_TANGENTSPACE ) || defined ( USE_CLEARCOAT_NORMALMAP ) || defined( USE_ANISOTROPY ) ) + mat3 getTangentFrame( vec3 eye_pos, vec3 surf_norm, vec2 uv ) { + vec3 q0 = dFdx( eye_pos.xyz ); + vec3 q1 = dFdy( eye_pos.xyz ); + vec2 st0 = dFdx( uv.st ); + vec2 st1 = dFdy( uv.st ); + vec3 N = surf_norm; + vec3 q1perp = cross( q1, N ); + vec3 q0perp = cross( N, q0 ); + vec3 T = q1perp * st0.x + q0perp * st1.x; + vec3 B = q1perp * st0.y + q0perp * st1.y; + float det = max( dot( T, T ), dot( B, B ) ); + float scale = ( det == 0.0 ) ? 0.0 : inversesqrt( det ); + return mat3( T * scale, B * scale, N ); + } +#endif`,xk=`#ifdef USE_CLEARCOAT + vec3 clearcoatNormal = nonPerturbedNormal; +#endif`,yk=`#ifdef USE_CLEARCOAT_NORMALMAP + vec3 clearcoatMapN = texture2D( clearcoatNormalMap, vClearcoatNormalMapUv ).xyz * 2.0 - 1.0; + clearcoatMapN.xy *= clearcoatNormalScale; + clearcoatNormal = normalize( tbn2 * clearcoatMapN ); +#endif`,_k=`#ifdef USE_CLEARCOATMAP + uniform sampler2D clearcoatMap; +#endif +#ifdef USE_CLEARCOAT_NORMALMAP + uniform sampler2D clearcoatNormalMap; + uniform vec2 clearcoatNormalScale; +#endif +#ifdef USE_CLEARCOAT_ROUGHNESSMAP + uniform sampler2D clearcoatRoughnessMap; +#endif`,Sk=`#ifdef USE_IRIDESCENCEMAP + uniform sampler2D iridescenceMap; +#endif +#ifdef USE_IRIDESCENCE_THICKNESSMAP + uniform sampler2D iridescenceThicknessMap; +#endif`,Ak=`#ifdef OPAQUE +diffuseColor.a = 1.0; +#endif +#ifdef USE_TRANSMISSION +diffuseColor.a *= material.transmissionAlpha; +#endif +gl_FragColor = vec4( outgoingLight, diffuseColor.a );`,Ek=`vec3 packNormalToRGB( const in vec3 normal ) { + return normalize( normal ) * 0.5 + 0.5; +} +vec3 unpackRGBToNormal( const in vec3 rgb ) { + return 2.0 * rgb.xyz - 1.0; +} +const float PackUpscale = 256. / 255.;const float UnpackDownscale = 255. / 256.;const float ShiftRight8 = 1. / 256.; +const float Inv255 = 1. / 255.; +const vec4 PackFactors = vec4( 1.0, 256.0, 256.0 * 256.0, 256.0 * 256.0 * 256.0 ); +const vec2 UnpackFactors2 = vec2( UnpackDownscale, 1.0 / PackFactors.g ); +const vec3 UnpackFactors3 = vec3( UnpackDownscale / PackFactors.rg, 1.0 / PackFactors.b ); +const vec4 UnpackFactors4 = vec4( UnpackDownscale / PackFactors.rgb, 1.0 / PackFactors.a ); +vec4 packDepthToRGBA( const in float v ) { + if( v <= 0.0 ) + return vec4( 0., 0., 0., 0. ); + if( v >= 1.0 ) + return vec4( 1., 1., 1., 1. ); + float vuf; + float af = modf( v * PackFactors.a, vuf ); + float bf = modf( vuf * ShiftRight8, vuf ); + float gf = modf( vuf * ShiftRight8, vuf ); + return vec4( vuf * Inv255, gf * PackUpscale, bf * PackUpscale, af ); +} +vec3 packDepthToRGB( const in float v ) { + if( v <= 0.0 ) + return vec3( 0., 0., 0. ); + if( v >= 1.0 ) + return vec3( 1., 1., 1. ); + float vuf; + float bf = modf( v * PackFactors.b, vuf ); + float gf = modf( vuf * ShiftRight8, vuf ); + return vec3( vuf * Inv255, gf * PackUpscale, bf ); +} +vec2 packDepthToRG( const in float v ) { + if( v <= 0.0 ) + return vec2( 0., 0. ); + if( v >= 1.0 ) + return vec2( 1., 1. ); + float vuf; + float gf = modf( v * 256., vuf ); + return vec2( vuf * Inv255, gf ); +} +float unpackRGBAToDepth( const in vec4 v ) { + return dot( v, UnpackFactors4 ); +} +float unpackRGBToDepth( const in vec3 v ) { + return dot( v, UnpackFactors3 ); +} +float unpackRGToDepth( const in vec2 v ) { + return v.r * UnpackFactors2.r + v.g * UnpackFactors2.g; +} +vec4 pack2HalfToRGBA( const in vec2 v ) { + vec4 r = vec4( v.x, fract( v.x * 255.0 ), v.y, fract( v.y * 255.0 ) ); + return vec4( r.x - r.y / 255.0, r.y, r.z - r.w / 255.0, r.w ); +} +vec2 unpackRGBATo2Half( const in vec4 v ) { + return vec2( v.x + ( v.y / 255.0 ), v.z + ( v.w / 255.0 ) ); +} +float viewZToOrthographicDepth( const in float viewZ, const in float near, const in float far ) { + return ( viewZ + near ) / ( near - far ); +} +float orthographicDepthToViewZ( const in float depth, const in float near, const in float far ) { + return depth * ( near - far ) - near; +} +float viewZToPerspectiveDepth( const in float viewZ, const in float near, const in float far ) { + return ( ( near + viewZ ) * far ) / ( ( far - near ) * viewZ ); +} +float perspectiveDepthToViewZ( const in float depth, const in float near, const in float far ) { + return ( near * far ) / ( ( far - near ) * depth - far ); +}`,Tk=`#ifdef PREMULTIPLIED_ALPHA + gl_FragColor.rgb *= gl_FragColor.a; +#endif`,bk=`vec4 mvPosition = vec4( transformed, 1.0 ); +#ifdef USE_BATCHING + mvPosition = batchingMatrix * mvPosition; +#endif +#ifdef USE_INSTANCING + mvPosition = instanceMatrix * mvPosition; +#endif +mvPosition = modelViewMatrix * mvPosition; +gl_Position = projectionMatrix * mvPosition;`,Mk=`#ifdef DITHERING + gl_FragColor.rgb = dithering( gl_FragColor.rgb ); +#endif`,Ck=`#ifdef DITHERING + vec3 dithering( vec3 color ) { + float grid_position = rand( gl_FragCoord.xy ); + vec3 dither_shift_RGB = vec3( 0.25 / 255.0, -0.25 / 255.0, 0.25 / 255.0 ); + dither_shift_RGB = mix( 2.0 * dither_shift_RGB, -2.0 * dither_shift_RGB, grid_position ); + return color + dither_shift_RGB; + } +#endif`,Rk=`float roughnessFactor = roughness; +#ifdef USE_ROUGHNESSMAP + vec4 texelRoughness = texture2D( roughnessMap, vRoughnessMapUv ); + roughnessFactor *= texelRoughness.g; +#endif`,wk=`#ifdef USE_ROUGHNESSMAP + uniform sampler2D roughnessMap; +#endif`,Dk=`#if NUM_SPOT_LIGHT_COORDS > 0 + varying vec4 vSpotLightCoord[ NUM_SPOT_LIGHT_COORDS ]; +#endif +#if NUM_SPOT_LIGHT_MAPS > 0 + uniform sampler2D spotLightMap[ NUM_SPOT_LIGHT_MAPS ]; +#endif +#ifdef USE_SHADOWMAP + #if NUM_DIR_LIGHT_SHADOWS > 0 + uniform sampler2D directionalShadowMap[ NUM_DIR_LIGHT_SHADOWS ]; + varying vec4 vDirectionalShadowCoord[ NUM_DIR_LIGHT_SHADOWS ]; + struct DirectionalLightShadow { + float shadowIntensity; + float shadowBias; + float shadowNormalBias; + float shadowRadius; + vec2 shadowMapSize; + }; + uniform DirectionalLightShadow directionalLightShadows[ NUM_DIR_LIGHT_SHADOWS ]; + #endif + #if NUM_SPOT_LIGHT_SHADOWS > 0 + uniform sampler2D spotShadowMap[ NUM_SPOT_LIGHT_SHADOWS ]; + struct SpotLightShadow { + float shadowIntensity; + float shadowBias; + float shadowNormalBias; + float shadowRadius; + vec2 shadowMapSize; + }; + uniform SpotLightShadow spotLightShadows[ NUM_SPOT_LIGHT_SHADOWS ]; + #endif + #if NUM_POINT_LIGHT_SHADOWS > 0 + uniform sampler2D pointShadowMap[ NUM_POINT_LIGHT_SHADOWS ]; + varying vec4 vPointShadowCoord[ NUM_POINT_LIGHT_SHADOWS ]; + struct PointLightShadow { + float shadowIntensity; + float shadowBias; + float shadowNormalBias; + float shadowRadius; + vec2 shadowMapSize; + float shadowCameraNear; + float shadowCameraFar; + }; + uniform PointLightShadow pointLightShadows[ NUM_POINT_LIGHT_SHADOWS ]; + #endif + float texture2DCompare( sampler2D depths, vec2 uv, float compare ) { + float depth = unpackRGBAToDepth( texture2D( depths, uv ) ); + #ifdef USE_REVERSED_DEPTH_BUFFER + return step( depth, compare ); + #else + return step( compare, depth ); + #endif + } + vec2 texture2DDistribution( sampler2D shadow, vec2 uv ) { + return unpackRGBATo2Half( texture2D( shadow, uv ) ); + } + float VSMShadow( sampler2D shadow, vec2 uv, float compare ) { + float occlusion = 1.0; + vec2 distribution = texture2DDistribution( shadow, uv ); + #ifdef USE_REVERSED_DEPTH_BUFFER + float hard_shadow = step( distribution.x, compare ); + #else + float hard_shadow = step( compare, distribution.x ); + #endif + if ( hard_shadow != 1.0 ) { + float distance = compare - distribution.x; + float variance = max( 0.00000, distribution.y * distribution.y ); + float softness_probability = variance / (variance + distance * distance ); softness_probability = clamp( ( softness_probability - 0.3 ) / ( 0.95 - 0.3 ), 0.0, 1.0 ); occlusion = clamp( max( hard_shadow, softness_probability ), 0.0, 1.0 ); + } + return occlusion; + } + float getShadow( sampler2D shadowMap, vec2 shadowMapSize, float shadowIntensity, float shadowBias, float shadowRadius, vec4 shadowCoord ) { + float shadow = 1.0; + shadowCoord.xyz /= shadowCoord.w; + shadowCoord.z += shadowBias; + bool inFrustum = shadowCoord.x >= 0.0 && shadowCoord.x <= 1.0 && shadowCoord.y >= 0.0 && shadowCoord.y <= 1.0; + bool frustumTest = inFrustum && shadowCoord.z <= 1.0; + if ( frustumTest ) { + #if defined( SHADOWMAP_TYPE_PCF ) + vec2 texelSize = vec2( 1.0 ) / shadowMapSize; + float dx0 = - texelSize.x * shadowRadius; + float dy0 = - texelSize.y * shadowRadius; + float dx1 = + texelSize.x * shadowRadius; + float dy1 = + texelSize.y * shadowRadius; + float dx2 = dx0 / 2.0; + float dy2 = dy0 / 2.0; + float dx3 = dx1 / 2.0; + float dy3 = dy1 / 2.0; + shadow = ( + texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, dy0 ), shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy0 ), shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, dy0 ), shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, dy2 ), shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy2 ), shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, dy2 ), shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, 0.0 ), shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, 0.0 ), shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy, shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, 0.0 ), shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, 0.0 ), shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, dy3 ), shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy3 ), shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, dy3 ), shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, dy1 ), shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy1 ), shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, dy1 ), shadowCoord.z ) + ) * ( 1.0 / 17.0 ); + #elif defined( SHADOWMAP_TYPE_PCF_SOFT ) + vec2 texelSize = vec2( 1.0 ) / shadowMapSize; + float dx = texelSize.x; + float dy = texelSize.y; + vec2 uv = shadowCoord.xy; + vec2 f = fract( uv * shadowMapSize + 0.5 ); + uv -= f * texelSize; + shadow = ( + texture2DCompare( shadowMap, uv, shadowCoord.z ) + + texture2DCompare( shadowMap, uv + vec2( dx, 0.0 ), shadowCoord.z ) + + texture2DCompare( shadowMap, uv + vec2( 0.0, dy ), shadowCoord.z ) + + texture2DCompare( shadowMap, uv + texelSize, shadowCoord.z ) + + mix( texture2DCompare( shadowMap, uv + vec2( -dx, 0.0 ), shadowCoord.z ), + texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, 0.0 ), shadowCoord.z ), + f.x ) + + mix( texture2DCompare( shadowMap, uv + vec2( -dx, dy ), shadowCoord.z ), + texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, dy ), shadowCoord.z ), + f.x ) + + mix( texture2DCompare( shadowMap, uv + vec2( 0.0, -dy ), shadowCoord.z ), + texture2DCompare( shadowMap, uv + vec2( 0.0, 2.0 * dy ), shadowCoord.z ), + f.y ) + + mix( texture2DCompare( shadowMap, uv + vec2( dx, -dy ), shadowCoord.z ), + texture2DCompare( shadowMap, uv + vec2( dx, 2.0 * dy ), shadowCoord.z ), + f.y ) + + mix( mix( texture2DCompare( shadowMap, uv + vec2( -dx, -dy ), shadowCoord.z ), + texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, -dy ), shadowCoord.z ), + f.x ), + mix( texture2DCompare( shadowMap, uv + vec2( -dx, 2.0 * dy ), shadowCoord.z ), + texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, 2.0 * dy ), shadowCoord.z ), + f.x ), + f.y ) + ) * ( 1.0 / 9.0 ); + #elif defined( SHADOWMAP_TYPE_VSM ) + shadow = VSMShadow( shadowMap, shadowCoord.xy, shadowCoord.z ); + #else + shadow = texture2DCompare( shadowMap, shadowCoord.xy, shadowCoord.z ); + #endif + } + return mix( 1.0, shadow, shadowIntensity ); + } + vec2 cubeToUV( vec3 v, float texelSizeY ) { + vec3 absV = abs( v ); + float scaleToCube = 1.0 / max( absV.x, max( absV.y, absV.z ) ); + absV *= scaleToCube; + v *= scaleToCube * ( 1.0 - 2.0 * texelSizeY ); + vec2 planar = v.xy; + float almostATexel = 1.5 * texelSizeY; + float almostOne = 1.0 - almostATexel; + if ( absV.z >= almostOne ) { + if ( v.z > 0.0 ) + planar.x = 4.0 - v.x; + } else if ( absV.x >= almostOne ) { + float signX = sign( v.x ); + planar.x = v.z * signX + 2.0 * signX; + } else if ( absV.y >= almostOne ) { + float signY = sign( v.y ); + planar.x = v.x + 2.0 * signY + 2.0; + planar.y = v.z * signY - 2.0; + } + return vec2( 0.125, 0.25 ) * planar + vec2( 0.375, 0.75 ); + } + float getPointShadow( sampler2D shadowMap, vec2 shadowMapSize, float shadowIntensity, float shadowBias, float shadowRadius, vec4 shadowCoord, float shadowCameraNear, float shadowCameraFar ) { + float shadow = 1.0; + vec3 lightToPosition = shadowCoord.xyz; + + float lightToPositionLength = length( lightToPosition ); + if ( lightToPositionLength - shadowCameraFar <= 0.0 && lightToPositionLength - shadowCameraNear >= 0.0 ) { + float dp = ( lightToPositionLength - shadowCameraNear ) / ( shadowCameraFar - shadowCameraNear ); dp += shadowBias; + vec3 bd3D = normalize( lightToPosition ); + vec2 texelSize = vec2( 1.0 ) / ( shadowMapSize * vec2( 4.0, 2.0 ) ); + #if defined( SHADOWMAP_TYPE_PCF ) || defined( SHADOWMAP_TYPE_PCF_SOFT ) || defined( SHADOWMAP_TYPE_VSM ) + vec2 offset = vec2( - 1, 1 ) * shadowRadius * texelSize.y; + shadow = ( + texture2DCompare( shadowMap, cubeToUV( bd3D + offset.xyy, texelSize.y ), dp ) + + texture2DCompare( shadowMap, cubeToUV( bd3D + offset.yyy, texelSize.y ), dp ) + + texture2DCompare( shadowMap, cubeToUV( bd3D + offset.xyx, texelSize.y ), dp ) + + texture2DCompare( shadowMap, cubeToUV( bd3D + offset.yyx, texelSize.y ), dp ) + + texture2DCompare( shadowMap, cubeToUV( bd3D, texelSize.y ), dp ) + + texture2DCompare( shadowMap, cubeToUV( bd3D + offset.xxy, texelSize.y ), dp ) + + texture2DCompare( shadowMap, cubeToUV( bd3D + offset.yxy, texelSize.y ), dp ) + + texture2DCompare( shadowMap, cubeToUV( bd3D + offset.xxx, texelSize.y ), dp ) + + texture2DCompare( shadowMap, cubeToUV( bd3D + offset.yxx, texelSize.y ), dp ) + ) * ( 1.0 / 9.0 ); + #else + shadow = texture2DCompare( shadowMap, cubeToUV( bd3D, texelSize.y ), dp ); + #endif + } + return mix( 1.0, shadow, shadowIntensity ); + } +#endif`,Nk=`#if NUM_SPOT_LIGHT_COORDS > 0 + uniform mat4 spotLightMatrix[ NUM_SPOT_LIGHT_COORDS ]; + varying vec4 vSpotLightCoord[ NUM_SPOT_LIGHT_COORDS ]; +#endif +#ifdef USE_SHADOWMAP + #if NUM_DIR_LIGHT_SHADOWS > 0 + uniform mat4 directionalShadowMatrix[ NUM_DIR_LIGHT_SHADOWS ]; + varying vec4 vDirectionalShadowCoord[ NUM_DIR_LIGHT_SHADOWS ]; + struct DirectionalLightShadow { + float shadowIntensity; + float shadowBias; + float shadowNormalBias; + float shadowRadius; + vec2 shadowMapSize; + }; + uniform DirectionalLightShadow directionalLightShadows[ NUM_DIR_LIGHT_SHADOWS ]; + #endif + #if NUM_SPOT_LIGHT_SHADOWS > 0 + struct SpotLightShadow { + float shadowIntensity; + float shadowBias; + float shadowNormalBias; + float shadowRadius; + vec2 shadowMapSize; + }; + uniform SpotLightShadow spotLightShadows[ NUM_SPOT_LIGHT_SHADOWS ]; + #endif + #if NUM_POINT_LIGHT_SHADOWS > 0 + uniform mat4 pointShadowMatrix[ NUM_POINT_LIGHT_SHADOWS ]; + varying vec4 vPointShadowCoord[ NUM_POINT_LIGHT_SHADOWS ]; + struct PointLightShadow { + float shadowIntensity; + float shadowBias; + float shadowNormalBias; + float shadowRadius; + vec2 shadowMapSize; + float shadowCameraNear; + float shadowCameraFar; + }; + uniform PointLightShadow pointLightShadows[ NUM_POINT_LIGHT_SHADOWS ]; + #endif +#endif`,Ok=`#if ( defined( USE_SHADOWMAP ) && ( NUM_DIR_LIGHT_SHADOWS > 0 || NUM_POINT_LIGHT_SHADOWS > 0 ) ) || ( NUM_SPOT_LIGHT_COORDS > 0 ) + vec3 shadowWorldNormal = inverseTransformDirection( transformedNormal, viewMatrix ); + vec4 shadowWorldPosition; +#endif +#if defined( USE_SHADOWMAP ) + #if NUM_DIR_LIGHT_SHADOWS > 0 + #pragma unroll_loop_start + for ( int i = 0; i < NUM_DIR_LIGHT_SHADOWS; i ++ ) { + shadowWorldPosition = worldPosition + vec4( shadowWorldNormal * directionalLightShadows[ i ].shadowNormalBias, 0 ); + vDirectionalShadowCoord[ i ] = directionalShadowMatrix[ i ] * shadowWorldPosition; + } + #pragma unroll_loop_end + #endif + #if NUM_POINT_LIGHT_SHADOWS > 0 + #pragma unroll_loop_start + for ( int i = 0; i < NUM_POINT_LIGHT_SHADOWS; i ++ ) { + shadowWorldPosition = worldPosition + vec4( shadowWorldNormal * pointLightShadows[ i ].shadowNormalBias, 0 ); + vPointShadowCoord[ i ] = pointShadowMatrix[ i ] * shadowWorldPosition; + } + #pragma unroll_loop_end + #endif +#endif +#if NUM_SPOT_LIGHT_COORDS > 0 + #pragma unroll_loop_start + for ( int i = 0; i < NUM_SPOT_LIGHT_COORDS; i ++ ) { + shadowWorldPosition = worldPosition; + #if ( defined( USE_SHADOWMAP ) && UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS ) + shadowWorldPosition.xyz += shadowWorldNormal * spotLightShadows[ i ].shadowNormalBias; + #endif + vSpotLightCoord[ i ] = spotLightMatrix[ i ] * shadowWorldPosition; + } + #pragma unroll_loop_end +#endif`,Ik=`float getShadowMask() { + float shadow = 1.0; + #ifdef USE_SHADOWMAP + #if NUM_DIR_LIGHT_SHADOWS > 0 + DirectionalLightShadow directionalLight; + #pragma unroll_loop_start + for ( int i = 0; i < NUM_DIR_LIGHT_SHADOWS; i ++ ) { + directionalLight = directionalLightShadows[ i ]; + shadow *= receiveShadow ? getShadow( directionalShadowMap[ i ], directionalLight.shadowMapSize, directionalLight.shadowIntensity, directionalLight.shadowBias, directionalLight.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0; + } + #pragma unroll_loop_end + #endif + #if NUM_SPOT_LIGHT_SHADOWS > 0 + SpotLightShadow spotLight; + #pragma unroll_loop_start + for ( int i = 0; i < NUM_SPOT_LIGHT_SHADOWS; i ++ ) { + spotLight = spotLightShadows[ i ]; + shadow *= receiveShadow ? getShadow( spotShadowMap[ i ], spotLight.shadowMapSize, spotLight.shadowIntensity, spotLight.shadowBias, spotLight.shadowRadius, vSpotLightCoord[ i ] ) : 1.0; + } + #pragma unroll_loop_end + #endif + #if NUM_POINT_LIGHT_SHADOWS > 0 + PointLightShadow pointLight; + #pragma unroll_loop_start + for ( int i = 0; i < NUM_POINT_LIGHT_SHADOWS; i ++ ) { + pointLight = pointLightShadows[ i ]; + shadow *= receiveShadow ? getPointShadow( pointShadowMap[ i ], pointLight.shadowMapSize, pointLight.shadowIntensity, pointLight.shadowBias, pointLight.shadowRadius, vPointShadowCoord[ i ], pointLight.shadowCameraNear, pointLight.shadowCameraFar ) : 1.0; + } + #pragma unroll_loop_end + #endif + #endif + return shadow; +}`,Bk=`#ifdef USE_SKINNING + mat4 boneMatX = getBoneMatrix( skinIndex.x ); + mat4 boneMatY = getBoneMatrix( skinIndex.y ); + mat4 boneMatZ = getBoneMatrix( skinIndex.z ); + mat4 boneMatW = getBoneMatrix( skinIndex.w ); +#endif`,Uk=`#ifdef USE_SKINNING + uniform mat4 bindMatrix; + uniform mat4 bindMatrixInverse; + uniform highp sampler2D boneTexture; + mat4 getBoneMatrix( const in float i ) { + int size = textureSize( boneTexture, 0 ).x; + int j = int( i ) * 4; + int x = j % size; + int y = j / size; + vec4 v1 = texelFetch( boneTexture, ivec2( x, y ), 0 ); + vec4 v2 = texelFetch( boneTexture, ivec2( x + 1, y ), 0 ); + vec4 v3 = texelFetch( boneTexture, ivec2( x + 2, y ), 0 ); + vec4 v4 = texelFetch( boneTexture, ivec2( x + 3, y ), 0 ); + return mat4( v1, v2, v3, v4 ); + } +#endif`,Lk=`#ifdef USE_SKINNING + vec4 skinVertex = bindMatrix * vec4( transformed, 1.0 ); + vec4 skinned = vec4( 0.0 ); + skinned += boneMatX * skinVertex * skinWeight.x; + skinned += boneMatY * skinVertex * skinWeight.y; + skinned += boneMatZ * skinVertex * skinWeight.z; + skinned += boneMatW * skinVertex * skinWeight.w; + transformed = ( bindMatrixInverse * skinned ).xyz; +#endif`,Pk=`#ifdef USE_SKINNING + mat4 skinMatrix = mat4( 0.0 ); + skinMatrix += skinWeight.x * boneMatX; + skinMatrix += skinWeight.y * boneMatY; + skinMatrix += skinWeight.z * boneMatZ; + skinMatrix += skinWeight.w * boneMatW; + skinMatrix = bindMatrixInverse * skinMatrix * bindMatrix; + objectNormal = vec4( skinMatrix * vec4( objectNormal, 0.0 ) ).xyz; + #ifdef USE_TANGENT + objectTangent = vec4( skinMatrix * vec4( objectTangent, 0.0 ) ).xyz; + #endif +#endif`,Fk=`float specularStrength; +#ifdef USE_SPECULARMAP + vec4 texelSpecular = texture2D( specularMap, vSpecularMapUv ); + specularStrength = texelSpecular.r; +#else + specularStrength = 1.0; +#endif`,Hk=`#ifdef USE_SPECULARMAP + uniform sampler2D specularMap; +#endif`,zk=`#if defined( TONE_MAPPING ) + gl_FragColor.rgb = toneMapping( gl_FragColor.rgb ); +#endif`,Gk=`#ifndef saturate +#define saturate( a ) clamp( a, 0.0, 1.0 ) +#endif +uniform float toneMappingExposure; +vec3 LinearToneMapping( vec3 color ) { + return saturate( toneMappingExposure * color ); +} +vec3 ReinhardToneMapping( vec3 color ) { + color *= toneMappingExposure; + return saturate( color / ( vec3( 1.0 ) + color ) ); +} +vec3 CineonToneMapping( vec3 color ) { + color *= toneMappingExposure; + color = max( vec3( 0.0 ), color - 0.004 ); + return pow( ( color * ( 6.2 * color + 0.5 ) ) / ( color * ( 6.2 * color + 1.7 ) + 0.06 ), vec3( 2.2 ) ); +} +vec3 RRTAndODTFit( vec3 v ) { + vec3 a = v * ( v + 0.0245786 ) - 0.000090537; + vec3 b = v * ( 0.983729 * v + 0.4329510 ) + 0.238081; + return a / b; +} +vec3 ACESFilmicToneMapping( vec3 color ) { + const mat3 ACESInputMat = mat3( + vec3( 0.59719, 0.07600, 0.02840 ), vec3( 0.35458, 0.90834, 0.13383 ), + vec3( 0.04823, 0.01566, 0.83777 ) + ); + const mat3 ACESOutputMat = mat3( + vec3( 1.60475, -0.10208, -0.00327 ), vec3( -0.53108, 1.10813, -0.07276 ), + vec3( -0.07367, -0.00605, 1.07602 ) + ); + color *= toneMappingExposure / 0.6; + color = ACESInputMat * color; + color = RRTAndODTFit( color ); + color = ACESOutputMat * color; + return saturate( color ); +} +const mat3 LINEAR_REC2020_TO_LINEAR_SRGB = mat3( + vec3( 1.6605, - 0.1246, - 0.0182 ), + vec3( - 0.5876, 1.1329, - 0.1006 ), + vec3( - 0.0728, - 0.0083, 1.1187 ) +); +const mat3 LINEAR_SRGB_TO_LINEAR_REC2020 = mat3( + vec3( 0.6274, 0.0691, 0.0164 ), + vec3( 0.3293, 0.9195, 0.0880 ), + vec3( 0.0433, 0.0113, 0.8956 ) +); +vec3 agxDefaultContrastApprox( vec3 x ) { + vec3 x2 = x * x; + vec3 x4 = x2 * x2; + return + 15.5 * x4 * x2 + - 40.14 * x4 * x + + 31.96 * x4 + - 6.868 * x2 * x + + 0.4298 * x2 + + 0.1191 * x + - 0.00232; +} +vec3 AgXToneMapping( vec3 color ) { + const mat3 AgXInsetMatrix = mat3( + vec3( 0.856627153315983, 0.137318972929847, 0.11189821299995 ), + vec3( 0.0951212405381588, 0.761241990602591, 0.0767994186031903 ), + vec3( 0.0482516061458583, 0.101439036467562, 0.811302368396859 ) + ); + const mat3 AgXOutsetMatrix = mat3( + vec3( 1.1271005818144368, - 0.1413297634984383, - 0.14132976349843826 ), + vec3( - 0.11060664309660323, 1.157823702216272, - 0.11060664309660294 ), + vec3( - 0.016493938717834573, - 0.016493938717834257, 1.2519364065950405 ) + ); + const float AgxMinEv = - 12.47393; const float AgxMaxEv = 4.026069; + color *= toneMappingExposure; + color = LINEAR_SRGB_TO_LINEAR_REC2020 * color; + color = AgXInsetMatrix * color; + color = max( color, 1e-10 ); color = log2( color ); + color = ( color - AgxMinEv ) / ( AgxMaxEv - AgxMinEv ); + color = clamp( color, 0.0, 1.0 ); + color = agxDefaultContrastApprox( color ); + color = AgXOutsetMatrix * color; + color = pow( max( vec3( 0.0 ), color ), vec3( 2.2 ) ); + color = LINEAR_REC2020_TO_LINEAR_SRGB * color; + color = clamp( color, 0.0, 1.0 ); + return color; +} +vec3 NeutralToneMapping( vec3 color ) { + const float StartCompression = 0.8 - 0.04; + const float Desaturation = 0.15; + color *= toneMappingExposure; + float x = min( color.r, min( color.g, color.b ) ); + float offset = x < 0.08 ? x - 6.25 * x * x : 0.04; + color -= offset; + float peak = max( color.r, max( color.g, color.b ) ); + if ( peak < StartCompression ) return color; + float d = 1. - StartCompression; + float newPeak = 1. - d * d / ( peak + d - StartCompression ); + color *= newPeak / peak; + float g = 1. - 1. / ( Desaturation * ( peak - newPeak ) + 1. ); + return mix( color, vec3( newPeak ), g ); +} +vec3 CustomToneMapping( vec3 color ) { return color; }`,Vk=`#ifdef USE_TRANSMISSION + material.transmission = transmission; + material.transmissionAlpha = 1.0; + material.thickness = thickness; + material.attenuationDistance = attenuationDistance; + material.attenuationColor = attenuationColor; + #ifdef USE_TRANSMISSIONMAP + material.transmission *= texture2D( transmissionMap, vTransmissionMapUv ).r; + #endif + #ifdef USE_THICKNESSMAP + material.thickness *= texture2D( thicknessMap, vThicknessMapUv ).g; + #endif + vec3 pos = vWorldPosition; + vec3 v = normalize( cameraPosition - pos ); + vec3 n = inverseTransformDirection( normal, viewMatrix ); + vec4 transmitted = getIBLVolumeRefraction( + n, v, material.roughness, material.diffuseColor, material.specularColor, material.specularF90, + pos, modelMatrix, viewMatrix, projectionMatrix, material.dispersion, material.ior, material.thickness, + material.attenuationColor, material.attenuationDistance ); + material.transmissionAlpha = mix( material.transmissionAlpha, transmitted.a, material.transmission ); + totalDiffuse = mix( totalDiffuse, transmitted.rgb, material.transmission ); +#endif`,kk=`#ifdef USE_TRANSMISSION + uniform float transmission; + uniform float thickness; + uniform float attenuationDistance; + uniform vec3 attenuationColor; + #ifdef USE_TRANSMISSIONMAP + uniform sampler2D transmissionMap; + #endif + #ifdef USE_THICKNESSMAP + uniform sampler2D thicknessMap; + #endif + uniform vec2 transmissionSamplerSize; + uniform sampler2D transmissionSamplerMap; + uniform mat4 modelMatrix; + uniform mat4 projectionMatrix; + varying vec3 vWorldPosition; + float w0( float a ) { + return ( 1.0 / 6.0 ) * ( a * ( a * ( - a + 3.0 ) - 3.0 ) + 1.0 ); + } + float w1( float a ) { + return ( 1.0 / 6.0 ) * ( a * a * ( 3.0 * a - 6.0 ) + 4.0 ); + } + float w2( float a ){ + return ( 1.0 / 6.0 ) * ( a * ( a * ( - 3.0 * a + 3.0 ) + 3.0 ) + 1.0 ); + } + float w3( float a ) { + return ( 1.0 / 6.0 ) * ( a * a * a ); + } + float g0( float a ) { + return w0( a ) + w1( a ); + } + float g1( float a ) { + return w2( a ) + w3( a ); + } + float h0( float a ) { + return - 1.0 + w1( a ) / ( w0( a ) + w1( a ) ); + } + float h1( float a ) { + return 1.0 + w3( a ) / ( w2( a ) + w3( a ) ); + } + vec4 bicubic( sampler2D tex, vec2 uv, vec4 texelSize, float lod ) { + uv = uv * texelSize.zw + 0.5; + vec2 iuv = floor( uv ); + vec2 fuv = fract( uv ); + float g0x = g0( fuv.x ); + float g1x = g1( fuv.x ); + float h0x = h0( fuv.x ); + float h1x = h1( fuv.x ); + float h0y = h0( fuv.y ); + float h1y = h1( fuv.y ); + vec2 p0 = ( vec2( iuv.x + h0x, iuv.y + h0y ) - 0.5 ) * texelSize.xy; + vec2 p1 = ( vec2( iuv.x + h1x, iuv.y + h0y ) - 0.5 ) * texelSize.xy; + vec2 p2 = ( vec2( iuv.x + h0x, iuv.y + h1y ) - 0.5 ) * texelSize.xy; + vec2 p3 = ( vec2( iuv.x + h1x, iuv.y + h1y ) - 0.5 ) * texelSize.xy; + return g0( fuv.y ) * ( g0x * textureLod( tex, p0, lod ) + g1x * textureLod( tex, p1, lod ) ) + + g1( fuv.y ) * ( g0x * textureLod( tex, p2, lod ) + g1x * textureLod( tex, p3, lod ) ); + } + vec4 textureBicubic( sampler2D sampler, vec2 uv, float lod ) { + vec2 fLodSize = vec2( textureSize( sampler, int( lod ) ) ); + vec2 cLodSize = vec2( textureSize( sampler, int( lod + 1.0 ) ) ); + vec2 fLodSizeInv = 1.0 / fLodSize; + vec2 cLodSizeInv = 1.0 / cLodSize; + vec4 fSample = bicubic( sampler, uv, vec4( fLodSizeInv, fLodSize ), floor( lod ) ); + vec4 cSample = bicubic( sampler, uv, vec4( cLodSizeInv, cLodSize ), ceil( lod ) ); + return mix( fSample, cSample, fract( lod ) ); + } + vec3 getVolumeTransmissionRay( const in vec3 n, const in vec3 v, const in float thickness, const in float ior, const in mat4 modelMatrix ) { + vec3 refractionVector = refract( - v, normalize( n ), 1.0 / ior ); + vec3 modelScale; + modelScale.x = length( vec3( modelMatrix[ 0 ].xyz ) ); + modelScale.y = length( vec3( modelMatrix[ 1 ].xyz ) ); + modelScale.z = length( vec3( modelMatrix[ 2 ].xyz ) ); + return normalize( refractionVector ) * thickness * modelScale; + } + float applyIorToRoughness( const in float roughness, const in float ior ) { + return roughness * clamp( ior * 2.0 - 2.0, 0.0, 1.0 ); + } + vec4 getTransmissionSample( const in vec2 fragCoord, const in float roughness, const in float ior ) { + float lod = log2( transmissionSamplerSize.x ) * applyIorToRoughness( roughness, ior ); + return textureBicubic( transmissionSamplerMap, fragCoord.xy, lod ); + } + vec3 volumeAttenuation( const in float transmissionDistance, const in vec3 attenuationColor, const in float attenuationDistance ) { + if ( isinf( attenuationDistance ) ) { + return vec3( 1.0 ); + } else { + vec3 attenuationCoefficient = -log( attenuationColor ) / attenuationDistance; + vec3 transmittance = exp( - attenuationCoefficient * transmissionDistance ); return transmittance; + } + } + vec4 getIBLVolumeRefraction( const in vec3 n, const in vec3 v, const in float roughness, const in vec3 diffuseColor, + const in vec3 specularColor, const in float specularF90, const in vec3 position, const in mat4 modelMatrix, + const in mat4 viewMatrix, const in mat4 projMatrix, const in float dispersion, const in float ior, const in float thickness, + const in vec3 attenuationColor, const in float attenuationDistance ) { + vec4 transmittedLight; + vec3 transmittance; + #ifdef USE_DISPERSION + float halfSpread = ( ior - 1.0 ) * 0.025 * dispersion; + vec3 iors = vec3( ior - halfSpread, ior, ior + halfSpread ); + for ( int i = 0; i < 3; i ++ ) { + vec3 transmissionRay = getVolumeTransmissionRay( n, v, thickness, iors[ i ], modelMatrix ); + vec3 refractedRayExit = position + transmissionRay; + vec4 ndcPos = projMatrix * viewMatrix * vec4( refractedRayExit, 1.0 ); + vec2 refractionCoords = ndcPos.xy / ndcPos.w; + refractionCoords += 1.0; + refractionCoords /= 2.0; + vec4 transmissionSample = getTransmissionSample( refractionCoords, roughness, iors[ i ] ); + transmittedLight[ i ] = transmissionSample[ i ]; + transmittedLight.a += transmissionSample.a; + transmittance[ i ] = diffuseColor[ i ] * volumeAttenuation( length( transmissionRay ), attenuationColor, attenuationDistance )[ i ]; + } + transmittedLight.a /= 3.0; + #else + vec3 transmissionRay = getVolumeTransmissionRay( n, v, thickness, ior, modelMatrix ); + vec3 refractedRayExit = position + transmissionRay; + vec4 ndcPos = projMatrix * viewMatrix * vec4( refractedRayExit, 1.0 ); + vec2 refractionCoords = ndcPos.xy / ndcPos.w; + refractionCoords += 1.0; + refractionCoords /= 2.0; + transmittedLight = getTransmissionSample( refractionCoords, roughness, ior ); + transmittance = diffuseColor * volumeAttenuation( length( transmissionRay ), attenuationColor, attenuationDistance ); + #endif + vec3 attenuatedColor = transmittance * transmittedLight.rgb; + vec3 F = EnvironmentBRDF( n, v, specularColor, specularF90, roughness ); + float transmittanceFactor = ( transmittance.r + transmittance.g + transmittance.b ) / 3.0; + return vec4( ( 1.0 - F ) * attenuatedColor, 1.0 - ( 1.0 - transmittedLight.a ) * transmittanceFactor ); + } +#endif`,Xk=`#if defined( USE_UV ) || defined( USE_ANISOTROPY ) + varying vec2 vUv; +#endif +#ifdef USE_MAP + varying vec2 vMapUv; +#endif +#ifdef USE_ALPHAMAP + varying vec2 vAlphaMapUv; +#endif +#ifdef USE_LIGHTMAP + varying vec2 vLightMapUv; +#endif +#ifdef USE_AOMAP + varying vec2 vAoMapUv; +#endif +#ifdef USE_BUMPMAP + varying vec2 vBumpMapUv; +#endif +#ifdef USE_NORMALMAP + varying vec2 vNormalMapUv; +#endif +#ifdef USE_EMISSIVEMAP + varying vec2 vEmissiveMapUv; +#endif +#ifdef USE_METALNESSMAP + varying vec2 vMetalnessMapUv; +#endif +#ifdef USE_ROUGHNESSMAP + varying vec2 vRoughnessMapUv; +#endif +#ifdef USE_ANISOTROPYMAP + varying vec2 vAnisotropyMapUv; +#endif +#ifdef USE_CLEARCOATMAP + varying vec2 vClearcoatMapUv; +#endif +#ifdef USE_CLEARCOAT_NORMALMAP + varying vec2 vClearcoatNormalMapUv; +#endif +#ifdef USE_CLEARCOAT_ROUGHNESSMAP + varying vec2 vClearcoatRoughnessMapUv; +#endif +#ifdef USE_IRIDESCENCEMAP + varying vec2 vIridescenceMapUv; +#endif +#ifdef USE_IRIDESCENCE_THICKNESSMAP + varying vec2 vIridescenceThicknessMapUv; +#endif +#ifdef USE_SHEEN_COLORMAP + varying vec2 vSheenColorMapUv; +#endif +#ifdef USE_SHEEN_ROUGHNESSMAP + varying vec2 vSheenRoughnessMapUv; +#endif +#ifdef USE_SPECULARMAP + varying vec2 vSpecularMapUv; +#endif +#ifdef USE_SPECULAR_COLORMAP + varying vec2 vSpecularColorMapUv; +#endif +#ifdef USE_SPECULAR_INTENSITYMAP + varying vec2 vSpecularIntensityMapUv; +#endif +#ifdef USE_TRANSMISSIONMAP + uniform mat3 transmissionMapTransform; + varying vec2 vTransmissionMapUv; +#endif +#ifdef USE_THICKNESSMAP + uniform mat3 thicknessMapTransform; + varying vec2 vThicknessMapUv; +#endif`,Wk=`#if defined( USE_UV ) || defined( USE_ANISOTROPY ) + varying vec2 vUv; +#endif +#ifdef USE_MAP + uniform mat3 mapTransform; + varying vec2 vMapUv; +#endif +#ifdef USE_ALPHAMAP + uniform mat3 alphaMapTransform; + varying vec2 vAlphaMapUv; +#endif +#ifdef USE_LIGHTMAP + uniform mat3 lightMapTransform; + varying vec2 vLightMapUv; +#endif +#ifdef USE_AOMAP + uniform mat3 aoMapTransform; + varying vec2 vAoMapUv; +#endif +#ifdef USE_BUMPMAP + uniform mat3 bumpMapTransform; + varying vec2 vBumpMapUv; +#endif +#ifdef USE_NORMALMAP + uniform mat3 normalMapTransform; + varying vec2 vNormalMapUv; +#endif +#ifdef USE_DISPLACEMENTMAP + uniform mat3 displacementMapTransform; + varying vec2 vDisplacementMapUv; +#endif +#ifdef USE_EMISSIVEMAP + uniform mat3 emissiveMapTransform; + varying vec2 vEmissiveMapUv; +#endif +#ifdef USE_METALNESSMAP + uniform mat3 metalnessMapTransform; + varying vec2 vMetalnessMapUv; +#endif +#ifdef USE_ROUGHNESSMAP + uniform mat3 roughnessMapTransform; + varying vec2 vRoughnessMapUv; +#endif +#ifdef USE_ANISOTROPYMAP + uniform mat3 anisotropyMapTransform; + varying vec2 vAnisotropyMapUv; +#endif +#ifdef USE_CLEARCOATMAP + uniform mat3 clearcoatMapTransform; + varying vec2 vClearcoatMapUv; +#endif +#ifdef USE_CLEARCOAT_NORMALMAP + uniform mat3 clearcoatNormalMapTransform; + varying vec2 vClearcoatNormalMapUv; +#endif +#ifdef USE_CLEARCOAT_ROUGHNESSMAP + uniform mat3 clearcoatRoughnessMapTransform; + varying vec2 vClearcoatRoughnessMapUv; +#endif +#ifdef USE_SHEEN_COLORMAP + uniform mat3 sheenColorMapTransform; + varying vec2 vSheenColorMapUv; +#endif +#ifdef USE_SHEEN_ROUGHNESSMAP + uniform mat3 sheenRoughnessMapTransform; + varying vec2 vSheenRoughnessMapUv; +#endif +#ifdef USE_IRIDESCENCEMAP + uniform mat3 iridescenceMapTransform; + varying vec2 vIridescenceMapUv; +#endif +#ifdef USE_IRIDESCENCE_THICKNESSMAP + uniform mat3 iridescenceThicknessMapTransform; + varying vec2 vIridescenceThicknessMapUv; +#endif +#ifdef USE_SPECULARMAP + uniform mat3 specularMapTransform; + varying vec2 vSpecularMapUv; +#endif +#ifdef USE_SPECULAR_COLORMAP + uniform mat3 specularColorMapTransform; + varying vec2 vSpecularColorMapUv; +#endif +#ifdef USE_SPECULAR_INTENSITYMAP + uniform mat3 specularIntensityMapTransform; + varying vec2 vSpecularIntensityMapUv; +#endif +#ifdef USE_TRANSMISSIONMAP + uniform mat3 transmissionMapTransform; + varying vec2 vTransmissionMapUv; +#endif +#ifdef USE_THICKNESSMAP + uniform mat3 thicknessMapTransform; + varying vec2 vThicknessMapUv; +#endif`,Yk=`#if defined( USE_UV ) || defined( USE_ANISOTROPY ) + vUv = vec3( uv, 1 ).xy; +#endif +#ifdef USE_MAP + vMapUv = ( mapTransform * vec3( MAP_UV, 1 ) ).xy; +#endif +#ifdef USE_ALPHAMAP + vAlphaMapUv = ( alphaMapTransform * vec3( ALPHAMAP_UV, 1 ) ).xy; +#endif +#ifdef USE_LIGHTMAP + vLightMapUv = ( lightMapTransform * vec3( LIGHTMAP_UV, 1 ) ).xy; +#endif +#ifdef USE_AOMAP + vAoMapUv = ( aoMapTransform * vec3( AOMAP_UV, 1 ) ).xy; +#endif +#ifdef USE_BUMPMAP + vBumpMapUv = ( bumpMapTransform * vec3( BUMPMAP_UV, 1 ) ).xy; +#endif +#ifdef USE_NORMALMAP + vNormalMapUv = ( normalMapTransform * vec3( NORMALMAP_UV, 1 ) ).xy; +#endif +#ifdef USE_DISPLACEMENTMAP + vDisplacementMapUv = ( displacementMapTransform * vec3( DISPLACEMENTMAP_UV, 1 ) ).xy; +#endif +#ifdef USE_EMISSIVEMAP + vEmissiveMapUv = ( emissiveMapTransform * vec3( EMISSIVEMAP_UV, 1 ) ).xy; +#endif +#ifdef USE_METALNESSMAP + vMetalnessMapUv = ( metalnessMapTransform * vec3( METALNESSMAP_UV, 1 ) ).xy; +#endif +#ifdef USE_ROUGHNESSMAP + vRoughnessMapUv = ( roughnessMapTransform * vec3( ROUGHNESSMAP_UV, 1 ) ).xy; +#endif +#ifdef USE_ANISOTROPYMAP + vAnisotropyMapUv = ( anisotropyMapTransform * vec3( ANISOTROPYMAP_UV, 1 ) ).xy; +#endif +#ifdef USE_CLEARCOATMAP + vClearcoatMapUv = ( clearcoatMapTransform * vec3( CLEARCOATMAP_UV, 1 ) ).xy; +#endif +#ifdef USE_CLEARCOAT_NORMALMAP + vClearcoatNormalMapUv = ( clearcoatNormalMapTransform * vec3( CLEARCOAT_NORMALMAP_UV, 1 ) ).xy; +#endif +#ifdef USE_CLEARCOAT_ROUGHNESSMAP + vClearcoatRoughnessMapUv = ( clearcoatRoughnessMapTransform * vec3( CLEARCOAT_ROUGHNESSMAP_UV, 1 ) ).xy; +#endif +#ifdef USE_IRIDESCENCEMAP + vIridescenceMapUv = ( iridescenceMapTransform * vec3( IRIDESCENCEMAP_UV, 1 ) ).xy; +#endif +#ifdef USE_IRIDESCENCE_THICKNESSMAP + vIridescenceThicknessMapUv = ( iridescenceThicknessMapTransform * vec3( IRIDESCENCE_THICKNESSMAP_UV, 1 ) ).xy; +#endif +#ifdef USE_SHEEN_COLORMAP + vSheenColorMapUv = ( sheenColorMapTransform * vec3( SHEEN_COLORMAP_UV, 1 ) ).xy; +#endif +#ifdef USE_SHEEN_ROUGHNESSMAP + vSheenRoughnessMapUv = ( sheenRoughnessMapTransform * vec3( SHEEN_ROUGHNESSMAP_UV, 1 ) ).xy; +#endif +#ifdef USE_SPECULARMAP + vSpecularMapUv = ( specularMapTransform * vec3( SPECULARMAP_UV, 1 ) ).xy; +#endif +#ifdef USE_SPECULAR_COLORMAP + vSpecularColorMapUv = ( specularColorMapTransform * vec3( SPECULAR_COLORMAP_UV, 1 ) ).xy; +#endif +#ifdef USE_SPECULAR_INTENSITYMAP + vSpecularIntensityMapUv = ( specularIntensityMapTransform * vec3( SPECULAR_INTENSITYMAP_UV, 1 ) ).xy; +#endif +#ifdef USE_TRANSMISSIONMAP + vTransmissionMapUv = ( transmissionMapTransform * vec3( TRANSMISSIONMAP_UV, 1 ) ).xy; +#endif +#ifdef USE_THICKNESSMAP + vThicknessMapUv = ( thicknessMapTransform * vec3( THICKNESSMAP_UV, 1 ) ).xy; +#endif`,qk=`#if defined( USE_ENVMAP ) || defined( DISTANCE ) || defined ( USE_SHADOWMAP ) || defined ( USE_TRANSMISSION ) || NUM_SPOT_LIGHT_COORDS > 0 + vec4 worldPosition = vec4( transformed, 1.0 ); + #ifdef USE_BATCHING + worldPosition = batchingMatrix * worldPosition; + #endif + #ifdef USE_INSTANCING + worldPosition = instanceMatrix * worldPosition; + #endif + worldPosition = modelMatrix * worldPosition; +#endif`;const Zk=`varying vec2 vUv; +uniform mat3 uvTransform; +void main() { + vUv = ( uvTransform * vec3( uv, 1 ) ).xy; + gl_Position = vec4( position.xy, 1.0, 1.0 ); +}`,jk=`uniform sampler2D t2D; +uniform float backgroundIntensity; +varying vec2 vUv; +void main() { + vec4 texColor = texture2D( t2D, vUv ); + #ifdef DECODE_VIDEO_TEXTURE + texColor = vec4( mix( pow( texColor.rgb * 0.9478672986 + vec3( 0.0521327014 ), vec3( 2.4 ) ), texColor.rgb * 0.0773993808, vec3( lessThanEqual( texColor.rgb, vec3( 0.04045 ) ) ) ), texColor.w ); + #endif + texColor.rgb *= backgroundIntensity; + gl_FragColor = texColor; + #include + #include +}`,Kk=`varying vec3 vWorldDirection; +#include +void main() { + vWorldDirection = transformDirection( position, modelMatrix ); + #include + #include + gl_Position.z = gl_Position.w; +}`,Jk=`#ifdef ENVMAP_TYPE_CUBE + uniform samplerCube envMap; +#elif defined( ENVMAP_TYPE_CUBE_UV ) + uniform sampler2D envMap; +#endif +uniform float flipEnvMap; +uniform float backgroundBlurriness; +uniform float backgroundIntensity; +uniform mat3 backgroundRotation; +varying vec3 vWorldDirection; +#include +void main() { + #ifdef ENVMAP_TYPE_CUBE + vec4 texColor = textureCube( envMap, backgroundRotation * vec3( flipEnvMap * vWorldDirection.x, vWorldDirection.yz ) ); + #elif defined( ENVMAP_TYPE_CUBE_UV ) + vec4 texColor = textureCubeUV( envMap, backgroundRotation * vWorldDirection, backgroundBlurriness ); + #else + vec4 texColor = vec4( 0.0, 0.0, 0.0, 1.0 ); + #endif + texColor.rgb *= backgroundIntensity; + gl_FragColor = texColor; + #include + #include +}`,Qk=`varying vec3 vWorldDirection; +#include +void main() { + vWorldDirection = transformDirection( position, modelMatrix ); + #include + #include + gl_Position.z = gl_Position.w; +}`,$k=`uniform samplerCube tCube; +uniform float tFlip; +uniform float opacity; +varying vec3 vWorldDirection; +void main() { + vec4 texColor = textureCube( tCube, vec3( tFlip * vWorldDirection.x, vWorldDirection.yz ) ); + gl_FragColor = texColor; + gl_FragColor.a *= opacity; + #include + #include +}`,eX=`#include +#include +#include +#include +#include +#include +#include +#include +varying vec2 vHighPrecisionZW; +void main() { + #include + #include + #include + #include + #ifdef USE_DISPLACEMENTMAP + #include + #include + #include + #endif + #include + #include + #include + #include + #include + #include + #include + vHighPrecisionZW = gl_Position.zw; +}`,tX=`#if DEPTH_PACKING == 3200 + uniform float opacity; +#endif +#include +#include +#include +#include +#include +#include +#include +#include +#include +varying vec2 vHighPrecisionZW; +void main() { + vec4 diffuseColor = vec4( 1.0 ); + #include + #if DEPTH_PACKING == 3200 + diffuseColor.a = opacity; + #endif + #include + #include + #include + #include + #include + #ifdef USE_REVERSED_DEPTH_BUFFER + float fragCoordZ = vHighPrecisionZW[ 0 ] / vHighPrecisionZW[ 1 ]; + #else + float fragCoordZ = 0.5 * vHighPrecisionZW[ 0 ] / vHighPrecisionZW[ 1 ] + 0.5; + #endif + #if DEPTH_PACKING == 3200 + gl_FragColor = vec4( vec3( 1.0 - fragCoordZ ), opacity ); + #elif DEPTH_PACKING == 3201 + gl_FragColor = packDepthToRGBA( fragCoordZ ); + #elif DEPTH_PACKING == 3202 + gl_FragColor = vec4( packDepthToRGB( fragCoordZ ), 1.0 ); + #elif DEPTH_PACKING == 3203 + gl_FragColor = vec4( packDepthToRG( fragCoordZ ), 0.0, 1.0 ); + #endif +}`,nX=`#define DISTANCE +varying vec3 vWorldPosition; +#include +#include +#include +#include +#include +#include +#include +void main() { + #include + #include + #include + #include + #ifdef USE_DISPLACEMENTMAP + #include + #include + #include + #endif + #include + #include + #include + #include + #include + #include + #include + vWorldPosition = worldPosition.xyz; +}`,iX=`#define DISTANCE +uniform vec3 referencePosition; +uniform float nearDistance; +uniform float farDistance; +varying vec3 vWorldPosition; +#include +#include +#include +#include +#include +#include +#include +#include +void main () { + vec4 diffuseColor = vec4( 1.0 ); + #include + #include + #include + #include + #include + float dist = length( vWorldPosition - referencePosition ); + dist = ( dist - nearDistance ) / ( farDistance - nearDistance ); + dist = saturate( dist ); + gl_FragColor = packDepthToRGBA( dist ); +}`,aX=`varying vec3 vWorldDirection; +#include +void main() { + vWorldDirection = transformDirection( position, modelMatrix ); + #include + #include +}`,rX=`uniform sampler2D tEquirect; +varying vec3 vWorldDirection; +#include +void main() { + vec3 direction = normalize( vWorldDirection ); + vec2 sampleUV = equirectUv( direction ); + gl_FragColor = texture2D( tEquirect, sampleUV ); + #include + #include +}`,sX=`uniform float scale; +attribute float lineDistance; +varying float vLineDistance; +#include +#include +#include +#include +#include +#include +#include +void main() { + vLineDistance = scale * lineDistance; + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include +}`,oX=`uniform vec3 diffuse; +uniform float opacity; +uniform float dashSize; +uniform float totalSize; +varying float vLineDistance; +#include +#include +#include +#include +#include +#include +#include +void main() { + vec4 diffuseColor = vec4( diffuse, opacity ); + #include + if ( mod( vLineDistance, totalSize ) > dashSize ) { + discard; + } + vec3 outgoingLight = vec3( 0.0 ); + #include + #include + #include + outgoingLight = diffuseColor.rgb; + #include + #include + #include + #include + #include +}`,lX=`#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +void main() { + #include + #include + #include + #include + #include + #if defined ( USE_ENVMAP ) || defined ( USE_SKINNING ) + #include + #include + #include + #include + #include + #endif + #include + #include + #include + #include + #include + #include + #include + #include + #include +}`,cX=`uniform vec3 diffuse; +uniform float opacity; +#ifndef FLAT_SHADED + varying vec3 vNormal; +#endif +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +void main() { + vec4 diffuseColor = vec4( diffuse, opacity ); + #include + #include + #include + #include + #include + #include + #include + #include + ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) ); + #ifdef USE_LIGHTMAP + vec4 lightMapTexel = texture2D( lightMap, vLightMapUv ); + reflectedLight.indirectDiffuse += lightMapTexel.rgb * lightMapIntensity * RECIPROCAL_PI; + #else + reflectedLight.indirectDiffuse += vec3( 1.0 ); + #endif + #include + reflectedLight.indirectDiffuse *= diffuseColor.rgb; + vec3 outgoingLight = reflectedLight.indirectDiffuse; + #include + #include + #include + #include + #include + #include + #include +}`,uX=`#define LAMBERT +varying vec3 vViewPosition; +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +void main() { + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + vViewPosition = - mvPosition.xyz; + #include + #include + #include + #include +}`,hX=`#define LAMBERT +uniform vec3 diffuse; +uniform vec3 emissive; +uniform float opacity; +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +void main() { + vec4 diffuseColor = vec4( diffuse, opacity ); + #include + ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) ); + vec3 totalEmissiveRadiance = emissive; + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + vec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + totalEmissiveRadiance; + #include + #include + #include + #include + #include + #include + #include +}`,fX=`#define MATCAP +varying vec3 vViewPosition; +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +void main() { + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + vViewPosition = - mvPosition.xyz; +}`,dX=`#define MATCAP +uniform vec3 diffuse; +uniform float opacity; +uniform sampler2D matcap; +varying vec3 vViewPosition; +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +void main() { + vec4 diffuseColor = vec4( diffuse, opacity ); + #include + #include + #include + #include + #include + #include + #include + #include + #include + vec3 viewDir = normalize( vViewPosition ); + vec3 x = normalize( vec3( viewDir.z, 0.0, - viewDir.x ) ); + vec3 y = cross( viewDir, x ); + vec2 uv = vec2( dot( x, normal ), dot( y, normal ) ) * 0.495 + 0.5; + #ifdef USE_MATCAP + vec4 matcapColor = texture2D( matcap, uv ); + #else + vec4 matcapColor = vec4( vec3( mix( 0.2, 0.8, uv.y ) ), 1.0 ); + #endif + vec3 outgoingLight = diffuseColor.rgb * matcapColor.rgb; + #include + #include + #include + #include + #include + #include +}`,pX=`#define NORMAL +#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP_TANGENTSPACE ) + varying vec3 vViewPosition; +#endif +#include +#include +#include +#include +#include +#include +#include +#include +#include +void main() { + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include +#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP_TANGENTSPACE ) + vViewPosition = - mvPosition.xyz; +#endif +}`,mX=`#define NORMAL +uniform float opacity; +#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP_TANGENTSPACE ) + varying vec3 vViewPosition; +#endif +#include +#include +#include +#include +#include +#include +#include +void main() { + vec4 diffuseColor = vec4( 0.0, 0.0, 0.0, opacity ); + #include + #include + #include + #include + gl_FragColor = vec4( packNormalToRGB( normal ), diffuseColor.a ); + #ifdef OPAQUE + gl_FragColor.a = 1.0; + #endif +}`,gX=`#define PHONG +varying vec3 vViewPosition; +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +void main() { + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + vViewPosition = - mvPosition.xyz; + #include + #include + #include + #include +}`,vX=`#define PHONG +uniform vec3 diffuse; +uniform vec3 emissive; +uniform vec3 specular; +uniform float shininess; +uniform float opacity; +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +void main() { + vec4 diffuseColor = vec4( diffuse, opacity ); + #include + ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) ); + vec3 totalEmissiveRadiance = emissive; + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + vec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + reflectedLight.directSpecular + reflectedLight.indirectSpecular + totalEmissiveRadiance; + #include + #include + #include + #include + #include + #include + #include +}`,xX=`#define STANDARD +varying vec3 vViewPosition; +#ifdef USE_TRANSMISSION + varying vec3 vWorldPosition; +#endif +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +void main() { + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + vViewPosition = - mvPosition.xyz; + #include + #include + #include +#ifdef USE_TRANSMISSION + vWorldPosition = worldPosition.xyz; +#endif +}`,yX=`#define STANDARD +#ifdef PHYSICAL + #define IOR + #define USE_SPECULAR +#endif +uniform vec3 diffuse; +uniform vec3 emissive; +uniform float roughness; +uniform float metalness; +uniform float opacity; +#ifdef IOR + uniform float ior; +#endif +#ifdef USE_SPECULAR + uniform float specularIntensity; + uniform vec3 specularColor; + #ifdef USE_SPECULAR_COLORMAP + uniform sampler2D specularColorMap; + #endif + #ifdef USE_SPECULAR_INTENSITYMAP + uniform sampler2D specularIntensityMap; + #endif +#endif +#ifdef USE_CLEARCOAT + uniform float clearcoat; + uniform float clearcoatRoughness; +#endif +#ifdef USE_DISPERSION + uniform float dispersion; +#endif +#ifdef USE_IRIDESCENCE + uniform float iridescence; + uniform float iridescenceIOR; + uniform float iridescenceThicknessMinimum; + uniform float iridescenceThicknessMaximum; +#endif +#ifdef USE_SHEEN + uniform vec3 sheenColor; + uniform float sheenRoughness; + #ifdef USE_SHEEN_COLORMAP + uniform sampler2D sheenColorMap; + #endif + #ifdef USE_SHEEN_ROUGHNESSMAP + uniform sampler2D sheenRoughnessMap; + #endif +#endif +#ifdef USE_ANISOTROPY + uniform vec2 anisotropyVector; + #ifdef USE_ANISOTROPYMAP + uniform sampler2D anisotropyMap; + #endif +#endif +varying vec3 vViewPosition; +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +void main() { + vec4 diffuseColor = vec4( diffuse, opacity ); + #include + ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) ); + vec3 totalEmissiveRadiance = emissive; + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + vec3 totalDiffuse = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse; + vec3 totalSpecular = reflectedLight.directSpecular + reflectedLight.indirectSpecular; + #include + vec3 outgoingLight = totalDiffuse + totalSpecular + totalEmissiveRadiance; + #ifdef USE_SHEEN + float sheenEnergyComp = 1.0 - 0.157 * max3( material.sheenColor ); + outgoingLight = outgoingLight * sheenEnergyComp + sheenSpecularDirect + sheenSpecularIndirect; + #endif + #ifdef USE_CLEARCOAT + float dotNVcc = saturate( dot( geometryClearcoatNormal, geometryViewDir ) ); + vec3 Fcc = F_Schlick( material.clearcoatF0, material.clearcoatF90, dotNVcc ); + outgoingLight = outgoingLight * ( 1.0 - material.clearcoat * Fcc ) + ( clearcoatSpecularDirect + clearcoatSpecularIndirect ) * material.clearcoat; + #endif + #include + #include + #include + #include + #include + #include +}`,_X=`#define TOON +varying vec3 vViewPosition; +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +void main() { + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + vViewPosition = - mvPosition.xyz; + #include + #include + #include +}`,SX=`#define TOON +uniform vec3 diffuse; +uniform vec3 emissive; +uniform float opacity; +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +void main() { + vec4 diffuseColor = vec4( diffuse, opacity ); + #include + ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) ); + vec3 totalEmissiveRadiance = emissive; + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + vec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + totalEmissiveRadiance; + #include + #include + #include + #include + #include + #include +}`,AX=`uniform float size; +uniform float scale; +#include +#include +#include +#include +#include +#include +#ifdef USE_POINTS_UV + varying vec2 vUv; + uniform mat3 uvTransform; +#endif +void main() { + #ifdef USE_POINTS_UV + vUv = ( uvTransform * vec3( uv, 1 ) ).xy; + #endif + #include + #include + #include + #include + #include + #include + gl_PointSize = size; + #ifdef USE_SIZEATTENUATION + bool isPerspective = isPerspectiveMatrix( projectionMatrix ); + if ( isPerspective ) gl_PointSize *= ( scale / - mvPosition.z ); + #endif + #include + #include + #include + #include +}`,EX=`uniform vec3 diffuse; +uniform float opacity; +#include +#include +#include +#include +#include +#include +#include +#include +void main() { + vec4 diffuseColor = vec4( diffuse, opacity ); + #include + vec3 outgoingLight = vec3( 0.0 ); + #include + #include + #include + #include + #include + outgoingLight = diffuseColor.rgb; + #include + #include + #include + #include + #include +}`,TX=`#include +#include +#include +#include +#include +#include +#include +void main() { + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include +}`,bX=`uniform vec3 color; +uniform float opacity; +#include +#include +#include +#include +#include +#include +#include +#include +void main() { + #include + gl_FragColor = vec4( color, opacity * ( 1.0 - getShadowMask() ) ); + #include + #include + #include +}`,MX=`uniform float rotation; +uniform vec2 center; +#include +#include +#include +#include +#include +void main() { + #include + vec4 mvPosition = modelViewMatrix[ 3 ]; + vec2 scale = vec2( length( modelMatrix[ 0 ].xyz ), length( modelMatrix[ 1 ].xyz ) ); + #ifndef USE_SIZEATTENUATION + bool isPerspective = isPerspectiveMatrix( projectionMatrix ); + if ( isPerspective ) scale *= - mvPosition.z; + #endif + vec2 alignedPosition = ( position.xy - ( center - vec2( 0.5 ) ) ) * scale; + vec2 rotatedPosition; + rotatedPosition.x = cos( rotation ) * alignedPosition.x - sin( rotation ) * alignedPosition.y; + rotatedPosition.y = sin( rotation ) * alignedPosition.x + cos( rotation ) * alignedPosition.y; + mvPosition.xy += rotatedPosition; + gl_Position = projectionMatrix * mvPosition; + #include + #include + #include +}`,CX=`uniform vec3 diffuse; +uniform float opacity; +#include +#include +#include +#include +#include +#include +#include +#include +#include +void main() { + vec4 diffuseColor = vec4( diffuse, opacity ); + #include + vec3 outgoingLight = vec3( 0.0 ); + #include + #include + #include + #include + #include + outgoingLight = diffuseColor.rgb; + #include + #include + #include + #include +}`,tn={alphahash_fragment:jG,alphahash_pars_fragment:KG,alphamap_fragment:JG,alphamap_pars_fragment:QG,alphatest_fragment:$G,alphatest_pars_fragment:eV,aomap_fragment:tV,aomap_pars_fragment:nV,batching_pars_vertex:iV,batching_vertex:aV,begin_vertex:rV,beginnormal_vertex:sV,bsdfs:oV,iridescence_fragment:lV,bumpmap_pars_fragment:cV,clipping_planes_fragment:uV,clipping_planes_pars_fragment:hV,clipping_planes_pars_vertex:fV,clipping_planes_vertex:dV,color_fragment:pV,color_pars_fragment:mV,color_pars_vertex:gV,color_vertex:vV,common:xV,cube_uv_reflection_fragment:yV,defaultnormal_vertex:_V,displacementmap_pars_vertex:SV,displacementmap_vertex:AV,emissivemap_fragment:EV,emissivemap_pars_fragment:TV,colorspace_fragment:bV,colorspace_pars_fragment:MV,envmap_fragment:CV,envmap_common_pars_fragment:RV,envmap_pars_fragment:wV,envmap_pars_vertex:DV,envmap_physical_pars_fragment:GV,envmap_vertex:NV,fog_vertex:OV,fog_pars_vertex:IV,fog_fragment:BV,fog_pars_fragment:UV,gradientmap_pars_fragment:LV,lightmap_pars_fragment:PV,lights_lambert_fragment:FV,lights_lambert_pars_fragment:HV,lights_pars_begin:zV,lights_toon_fragment:VV,lights_toon_pars_fragment:kV,lights_phong_fragment:XV,lights_phong_pars_fragment:WV,lights_physical_fragment:YV,lights_physical_pars_fragment:qV,lights_fragment_begin:ZV,lights_fragment_maps:jV,lights_fragment_end:KV,logdepthbuf_fragment:JV,logdepthbuf_pars_fragment:QV,logdepthbuf_pars_vertex:$V,logdepthbuf_vertex:ek,map_fragment:tk,map_pars_fragment:nk,map_particle_fragment:ik,map_particle_pars_fragment:ak,metalnessmap_fragment:rk,metalnessmap_pars_fragment:sk,morphinstance_vertex:ok,morphcolor_vertex:lk,morphnormal_vertex:ck,morphtarget_pars_vertex:uk,morphtarget_vertex:hk,normal_fragment_begin:fk,normal_fragment_maps:dk,normal_pars_fragment:pk,normal_pars_vertex:mk,normal_vertex:gk,normalmap_pars_fragment:vk,clearcoat_normal_fragment_begin:xk,clearcoat_normal_fragment_maps:yk,clearcoat_pars_fragment:_k,iridescence_pars_fragment:Sk,opaque_fragment:Ak,packing:Ek,premultiplied_alpha_fragment:Tk,project_vertex:bk,dithering_fragment:Mk,dithering_pars_fragment:Ck,roughnessmap_fragment:Rk,roughnessmap_pars_fragment:wk,shadowmap_pars_fragment:Dk,shadowmap_pars_vertex:Nk,shadowmap_vertex:Ok,shadowmask_pars_fragment:Ik,skinbase_vertex:Bk,skinning_pars_vertex:Uk,skinning_vertex:Lk,skinnormal_vertex:Pk,specularmap_fragment:Fk,specularmap_pars_fragment:Hk,tonemapping_fragment:zk,tonemapping_pars_fragment:Gk,transmission_fragment:Vk,transmission_pars_fragment:kk,uv_pars_fragment:Xk,uv_pars_vertex:Wk,uv_vertex:Yk,worldpos_vertex:qk,background_vert:Zk,background_frag:jk,backgroundCube_vert:Kk,backgroundCube_frag:Jk,cube_vert:Qk,cube_frag:$k,depth_vert:eX,depth_frag:tX,distanceRGBA_vert:nX,distanceRGBA_frag:iX,equirect_vert:aX,equirect_frag:rX,linedashed_vert:sX,linedashed_frag:oX,meshbasic_vert:lX,meshbasic_frag:cX,meshlambert_vert:uX,meshlambert_frag:hX,meshmatcap_vert:fX,meshmatcap_frag:dX,meshnormal_vert:pX,meshnormal_frag:mX,meshphong_vert:gX,meshphong_frag:vX,meshphysical_vert:xX,meshphysical_frag:yX,meshtoon_vert:_X,meshtoon_frag:SX,points_vert:AX,points_frag:EX,shadow_vert:TX,shadow_frag:bX,sprite_vert:MX,sprite_frag:CX},yt={common:{diffuse:{value:new dt(16777215)},opacity:{value:1},map:{value:null},mapTransform:{value:new kt},alphaMap:{value:null},alphaMapTransform:{value:new kt},alphaTest:{value:0}},specularmap:{specularMap:{value:null},specularMapTransform:{value:new kt}},envmap:{envMap:{value:null},envMapRotation:{value:new kt},flipEnvMap:{value:-1},reflectivity:{value:1},ior:{value:1.5},refractionRatio:{value:.98},dfgLUT:{value:null}},aomap:{aoMap:{value:null},aoMapIntensity:{value:1},aoMapTransform:{value:new kt}},lightmap:{lightMap:{value:null},lightMapIntensity:{value:1},lightMapTransform:{value:new kt}},bumpmap:{bumpMap:{value:null},bumpMapTransform:{value:new kt},bumpScale:{value:1}},normalmap:{normalMap:{value:null},normalMapTransform:{value:new kt},normalScale:{value:new Ee(1,1)}},displacementmap:{displacementMap:{value:null},displacementMapTransform:{value:new kt},displacementScale:{value:1},displacementBias:{value:0}},emissivemap:{emissiveMap:{value:null},emissiveMapTransform:{value:new kt}},metalnessmap:{metalnessMap:{value:null},metalnessMapTransform:{value:new kt}},roughnessmap:{roughnessMap:{value:null},roughnessMapTransform:{value:new kt}},gradientmap:{gradientMap:{value:null}},fog:{fogDensity:{value:25e-5},fogNear:{value:1},fogFar:{value:2e3},fogColor:{value:new dt(16777215)}},lights:{ambientLightColor:{value:[]},lightProbe:{value:[]},directionalLights:{value:[],properties:{direction:{},color:{}}},directionalLightShadows:{value:[],properties:{shadowIntensity:1,shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{}}},directionalShadowMap:{value:[]},directionalShadowMatrix:{value:[]},spotLights:{value:[],properties:{color:{},position:{},direction:{},distance:{},coneCos:{},penumbraCos:{},decay:{}}},spotLightShadows:{value:[],properties:{shadowIntensity:1,shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{}}},spotLightMap:{value:[]},spotShadowMap:{value:[]},spotLightMatrix:{value:[]},pointLights:{value:[],properties:{color:{},position:{},decay:{},distance:{}}},pointLightShadows:{value:[],properties:{shadowIntensity:1,shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{},shadowCameraNear:{},shadowCameraFar:{}}},pointShadowMap:{value:[]},pointShadowMatrix:{value:[]},hemisphereLights:{value:[],properties:{direction:{},skyColor:{},groundColor:{}}},rectAreaLights:{value:[],properties:{color:{},position:{},width:{},height:{}}},ltc_1:{value:null},ltc_2:{value:null}},points:{diffuse:{value:new dt(16777215)},opacity:{value:1},size:{value:1},scale:{value:1},map:{value:null},alphaMap:{value:null},alphaMapTransform:{value:new kt},alphaTest:{value:0},uvTransform:{value:new kt}},sprite:{diffuse:{value:new dt(16777215)},opacity:{value:1},center:{value:new Ee(.5,.5)},rotation:{value:0},map:{value:null},mapTransform:{value:new kt},alphaMap:{value:null},alphaMapTransform:{value:new kt},alphaTest:{value:0}}},Cs={basic:{uniforms:Na([yt.common,yt.specularmap,yt.envmap,yt.aomap,yt.lightmap,yt.fog]),vertexShader:tn.meshbasic_vert,fragmentShader:tn.meshbasic_frag},lambert:{uniforms:Na([yt.common,yt.specularmap,yt.envmap,yt.aomap,yt.lightmap,yt.emissivemap,yt.bumpmap,yt.normalmap,yt.displacementmap,yt.fog,yt.lights,{emissive:{value:new dt(0)}}]),vertexShader:tn.meshlambert_vert,fragmentShader:tn.meshlambert_frag},phong:{uniforms:Na([yt.common,yt.specularmap,yt.envmap,yt.aomap,yt.lightmap,yt.emissivemap,yt.bumpmap,yt.normalmap,yt.displacementmap,yt.fog,yt.lights,{emissive:{value:new dt(0)},specular:{value:new dt(1118481)},shininess:{value:30}}]),vertexShader:tn.meshphong_vert,fragmentShader:tn.meshphong_frag},standard:{uniforms:Na([yt.common,yt.envmap,yt.aomap,yt.lightmap,yt.emissivemap,yt.bumpmap,yt.normalmap,yt.displacementmap,yt.roughnessmap,yt.metalnessmap,yt.fog,yt.lights,{emissive:{value:new dt(0)},roughness:{value:1},metalness:{value:0},envMapIntensity:{value:1}}]),vertexShader:tn.meshphysical_vert,fragmentShader:tn.meshphysical_frag},toon:{uniforms:Na([yt.common,yt.aomap,yt.lightmap,yt.emissivemap,yt.bumpmap,yt.normalmap,yt.displacementmap,yt.gradientmap,yt.fog,yt.lights,{emissive:{value:new dt(0)}}]),vertexShader:tn.meshtoon_vert,fragmentShader:tn.meshtoon_frag},matcap:{uniforms:Na([yt.common,yt.bumpmap,yt.normalmap,yt.displacementmap,yt.fog,{matcap:{value:null}}]),vertexShader:tn.meshmatcap_vert,fragmentShader:tn.meshmatcap_frag},points:{uniforms:Na([yt.points,yt.fog]),vertexShader:tn.points_vert,fragmentShader:tn.points_frag},dashed:{uniforms:Na([yt.common,yt.fog,{scale:{value:1},dashSize:{value:1},totalSize:{value:2}}]),vertexShader:tn.linedashed_vert,fragmentShader:tn.linedashed_frag},depth:{uniforms:Na([yt.common,yt.displacementmap]),vertexShader:tn.depth_vert,fragmentShader:tn.depth_frag},normal:{uniforms:Na([yt.common,yt.bumpmap,yt.normalmap,yt.displacementmap,{opacity:{value:1}}]),vertexShader:tn.meshnormal_vert,fragmentShader:tn.meshnormal_frag},sprite:{uniforms:Na([yt.sprite,yt.fog]),vertexShader:tn.sprite_vert,fragmentShader:tn.sprite_frag},background:{uniforms:{uvTransform:{value:new kt},t2D:{value:null},backgroundIntensity:{value:1}},vertexShader:tn.background_vert,fragmentShader:tn.background_frag},backgroundCube:{uniforms:{envMap:{value:null},flipEnvMap:{value:-1},backgroundBlurriness:{value:0},backgroundIntensity:{value:1},backgroundRotation:{value:new kt}},vertexShader:tn.backgroundCube_vert,fragmentShader:tn.backgroundCube_frag},cube:{uniforms:{tCube:{value:null},tFlip:{value:-1},opacity:{value:1}},vertexShader:tn.cube_vert,fragmentShader:tn.cube_frag},equirect:{uniforms:{tEquirect:{value:null}},vertexShader:tn.equirect_vert,fragmentShader:tn.equirect_frag},distanceRGBA:{uniforms:Na([yt.common,yt.displacementmap,{referencePosition:{value:new H},nearDistance:{value:1},farDistance:{value:1e3}}]),vertexShader:tn.distanceRGBA_vert,fragmentShader:tn.distanceRGBA_frag},shadow:{uniforms:Na([yt.lights,yt.fog,{color:{value:new dt(0)},opacity:{value:1}}]),vertexShader:tn.shadow_vert,fragmentShader:tn.shadow_frag}};Cs.physical={uniforms:Na([Cs.standard.uniforms,{clearcoat:{value:0},clearcoatMap:{value:null},clearcoatMapTransform:{value:new kt},clearcoatNormalMap:{value:null},clearcoatNormalMapTransform:{value:new kt},clearcoatNormalScale:{value:new Ee(1,1)},clearcoatRoughness:{value:0},clearcoatRoughnessMap:{value:null},clearcoatRoughnessMapTransform:{value:new kt},dispersion:{value:0},iridescence:{value:0},iridescenceMap:{value:null},iridescenceMapTransform:{value:new kt},iridescenceIOR:{value:1.3},iridescenceThicknessMinimum:{value:100},iridescenceThicknessMaximum:{value:400},iridescenceThicknessMap:{value:null},iridescenceThicknessMapTransform:{value:new kt},sheen:{value:0},sheenColor:{value:new dt(0)},sheenColorMap:{value:null},sheenColorMapTransform:{value:new kt},sheenRoughness:{value:1},sheenRoughnessMap:{value:null},sheenRoughnessMapTransform:{value:new kt},transmission:{value:0},transmissionMap:{value:null},transmissionMapTransform:{value:new kt},transmissionSamplerSize:{value:new Ee},transmissionSamplerMap:{value:null},thickness:{value:0},thicknessMap:{value:null},thicknessMapTransform:{value:new kt},attenuationDistance:{value:0},attenuationColor:{value:new dt(0)},specularColor:{value:new dt(1,1,1)},specularColorMap:{value:null},specularColorMapTransform:{value:new kt},specularIntensity:{value:1},specularIntensityMap:{value:null},specularIntensityMapTransform:{value:new kt},anisotropyVector:{value:new Ee},anisotropyMap:{value:null},anisotropyMapTransform:{value:new kt}}]),vertexShader:tn.meshphysical_vert,fragmentShader:tn.meshphysical_frag};const Ov={r:0,b:0,g:0},nu=new Dr,RX=new lt;function wX(n,e,t,i,a,r,s){const o=new dt(0);let c=r===!0?0:1,h,f,d=null,m=0,g=null;function y(A){let b=A.isScene===!0?A.background:null;return b&&b.isTexture&&(b=(A.backgroundBlurriness>0?t:e).get(b)),b}function E(A){let b=!1;const O=y(A);O===null?v(o,c):O&&O.isColor&&(v(O,1),b=!0);const N=n.xr.getEnvironmentBlendMode();N==="additive"?i.buffers.color.setClear(0,0,0,1,s):N==="alpha-blend"&&i.buffers.color.setClear(0,0,0,0,s),(n.autoClear||b)&&(i.buffers.depth.setTest(!0),i.buffers.depth.setMask(!0),i.buffers.color.setMask(!0),n.clear(n.autoClearColor,n.autoClearDepth,n.autoClearStencil))}function S(A,b){const O=y(b);O&&(O.isCubeTexture||O.mapping===Pd)?(f===void 0&&(f=new Xn(new lh(1,1,1),new Di({name:"BackgroundCubeMaterial",uniforms:_d(Cs.backgroundCube.uniforms),vertexShader:Cs.backgroundCube.vertexShader,fragmentShader:Cs.backgroundCube.fragmentShader,side:Wi,depthTest:!1,depthWrite:!1,fog:!1,allowOverride:!1})),f.geometry.deleteAttribute("normal"),f.geometry.deleteAttribute("uv"),f.onBeforeRender=function(N,L,B){this.matrixWorld.copyPosition(B.matrixWorld)},Object.defineProperty(f.material,"envMap",{get:function(){return this.uniforms.envMap.value}}),a.update(f)),nu.copy(b.backgroundRotation),nu.x*=-1,nu.y*=-1,nu.z*=-1,O.isCubeTexture&&O.isRenderTargetTexture===!1&&(nu.y*=-1,nu.z*=-1),f.material.uniforms.envMap.value=O,f.material.uniforms.flipEnvMap.value=O.isCubeTexture&&O.isRenderTargetTexture===!1?-1:1,f.material.uniforms.backgroundBlurriness.value=b.backgroundBlurriness,f.material.uniforms.backgroundIntensity.value=b.backgroundIntensity,f.material.uniforms.backgroundRotation.value.setFromMatrix4(RX.makeRotationFromEuler(nu)),f.material.toneMapped=gn.getTransfer(O.colorSpace)!==Un,(d!==O||m!==O.version||g!==n.toneMapping)&&(f.material.needsUpdate=!0,d=O,m=O.version,g=n.toneMapping),f.layers.enableAll(),A.unshift(f,f.geometry,f.material,0,0,null)):O&&O.isTexture&&(h===void 0&&(h=new Xn(new Us(2,2),new Di({name:"BackgroundMaterial",uniforms:_d(Cs.background.uniforms),vertexShader:Cs.background.vertexShader,fragmentShader:Cs.background.fragmentShader,side:os,depthTest:!1,depthWrite:!1,fog:!1,allowOverride:!1})),h.geometry.deleteAttribute("normal"),Object.defineProperty(h.material,"map",{get:function(){return this.uniforms.t2D.value}}),a.update(h)),h.material.uniforms.t2D.value=O,h.material.uniforms.backgroundIntensity.value=b.backgroundIntensity,h.material.toneMapped=gn.getTransfer(O.colorSpace)!==Un,O.matrixAutoUpdate===!0&&O.updateMatrix(),h.material.uniforms.uvTransform.value.copy(O.matrix),(d!==O||m!==O.version||g!==n.toneMapping)&&(h.material.needsUpdate=!0,d=O,m=O.version,g=n.toneMapping),h.layers.enableAll(),A.unshift(h,h.geometry,h.material,0,0,null))}function v(A,b){A.getRGB(Ov,sB(n)),i.buffers.color.setClear(Ov.r,Ov.g,Ov.b,b,s)}function _(){f!==void 0&&(f.geometry.dispose(),f.material.dispose(),f=void 0),h!==void 0&&(h.geometry.dispose(),h.material.dispose(),h=void 0)}return{getClearColor:function(){return o},setClearColor:function(A,b=1){o.set(A),c=b,v(o,c)},getClearAlpha:function(){return c},setClearAlpha:function(A){c=A,v(o,c)},render:E,addToRenderList:S,dispose:_}}function DX(n,e){const t=n.getParameter(n.MAX_VERTEX_ATTRIBS),i={},a=m(null);let r=a,s=!1;function o(D,G,J,$,se){let le=!1;const q=d($,J,G);r!==q&&(r=q,h(r.object)),le=g(D,$,J,se),le&&y(D,$,J,se),se!==null&&e.update(se,n.ELEMENT_ARRAY_BUFFER),(le||s)&&(s=!1,b(D,G,J,$),se!==null&&n.bindBuffer(n.ELEMENT_ARRAY_BUFFER,e.get(se).buffer))}function c(){return n.createVertexArray()}function h(D){return n.bindVertexArray(D)}function f(D){return n.deleteVertexArray(D)}function d(D,G,J){const $=J.wireframe===!0;let se=i[D.id];se===void 0&&(se={},i[D.id]=se);let le=se[G.id];le===void 0&&(le={},se[G.id]=le);let q=le[$];return q===void 0&&(q=m(c()),le[$]=q),q}function m(D){const G=[],J=[],$=[];for(let se=0;se=0){const ue=se[ee];let Pe=le[ee];if(Pe===void 0&&(ee==="instanceMatrix"&&D.instanceMatrix&&(Pe=D.instanceMatrix),ee==="instanceColor"&&D.instanceColor&&(Pe=D.instanceColor)),ue===void 0||ue.attribute!==Pe||Pe&&ue.data!==Pe.data)return!0;q++}return r.attributesNum!==q||r.index!==$}function y(D,G,J,$){const se={},le=G.attributes;let q=0;const te=J.getAttributes();for(const ee in te)if(te[ee].location>=0){let ue=le[ee];ue===void 0&&(ee==="instanceMatrix"&&D.instanceMatrix&&(ue=D.instanceMatrix),ee==="instanceColor"&&D.instanceColor&&(ue=D.instanceColor));const Pe={};Pe.attribute=ue,ue&&ue.data&&(Pe.data=ue.data),se[ee]=Pe,q++}r.attributes=se,r.attributesNum=q,r.index=$}function E(){const D=r.newAttributes;for(let G=0,J=D.length;G=0){let de=se[te];if(de===void 0&&(te==="instanceMatrix"&&D.instanceMatrix&&(de=D.instanceMatrix),te==="instanceColor"&&D.instanceColor&&(de=D.instanceColor)),de!==void 0){const ue=de.normalized,Pe=de.itemSize,He=e.get(de);if(He===void 0)continue;const Ke=He.buffer,nt=He.type,xt=He.bytesPerElement,fe=nt===n.INT||nt===n.UNSIGNED_INT||de.gpuType===Fd;if(de.isInterleavedBufferAttribute){const Be=de.data,Je=Be.stride,ve=de.offset;if(Be.isInstancedInterleavedBuffer){for(let at=0;at0&&n.getShaderPrecisionFormat(n.FRAGMENT_SHADER,n.HIGH_FLOAT).precision>0)return"highp";L="mediump"}return L==="mediump"&&n.getShaderPrecisionFormat(n.VERTEX_SHADER,n.MEDIUM_FLOAT).precision>0&&n.getShaderPrecisionFormat(n.FRAGMENT_SHADER,n.MEDIUM_FLOAT).precision>0?"mediump":"lowp"}let h=t.precision!==void 0?t.precision:"highp";const f=c(h);f!==h&&(_t("WebGLRenderer:",h,"not supported, using",f,"instead."),h=f);const d=t.logarithmicDepthBuffer===!0,m=t.reversedDepthBuffer===!0&&e.has("EXT_clip_control"),g=n.getParameter(n.MAX_TEXTURE_IMAGE_UNITS),y=n.getParameter(n.MAX_VERTEX_TEXTURE_IMAGE_UNITS),E=n.getParameter(n.MAX_TEXTURE_SIZE),S=n.getParameter(n.MAX_CUBE_MAP_TEXTURE_SIZE),v=n.getParameter(n.MAX_VERTEX_ATTRIBS),_=n.getParameter(n.MAX_VERTEX_UNIFORM_VECTORS),A=n.getParameter(n.MAX_VARYING_VECTORS),b=n.getParameter(n.MAX_FRAGMENT_UNIFORM_VECTORS),O=y>0,N=n.getParameter(n.MAX_SAMPLES);return{isWebGL2:!0,getMaxAnisotropy:r,getMaxPrecision:c,textureFormatReadable:s,textureTypeReadable:o,precision:h,logarithmicDepthBuffer:d,reversedDepthBuffer:m,maxTextures:g,maxVertexTextures:y,maxTextureSize:E,maxCubemapSize:S,maxAttributes:v,maxVertexUniforms:_,maxVaryings:A,maxFragmentUniforms:b,vertexTextures:O,maxSamples:N}}function IX(n){const e=this;let t=null,i=0,a=!1,r=!1;const s=new Lo,o=new kt,c={value:null,needsUpdate:!1};this.uniform=c,this.numPlanes=0,this.numIntersection=0,this.init=function(d,m){const g=d.length!==0||m||i!==0||a;return a=m,i=d.length,g},this.beginShadows=function(){r=!0,f(null)},this.endShadows=function(){r=!1},this.setGlobalState=function(d,m){t=f(d,m,0)},this.setState=function(d,m,g){const y=d.clippingPlanes,E=d.clipIntersection,S=d.clipShadows,v=n.get(d);if(!a||y===null||y.length===0||r&&!S)r?f(null):h();else{const _=r?0:i,A=_*4;let b=v.clippingState||null;c.value=b,b=f(y,m,A,g);for(let O=0;O!==A;++O)b[O]=t[O];v.clippingState=b,this.numIntersection=E?this.numPlanes:0,this.numPlanes+=_}};function h(){c.value!==t&&(c.value=t,c.needsUpdate=i>0),e.numPlanes=i,e.numIntersection=0}function f(d,m,g,y){const E=d!==null?d.length:0;let S=null;if(E!==0){if(S=c.value,y!==!0||S===null){const v=g+E*4,_=m.matrixWorldInverse;o.getNormalMatrix(_),(S===null||S.length0){const h=new z3(c.height);return h.fromEquirectangularTexture(n,s),e.set(s,h),s.addEventListener("dispose",a),t(h.texture,s.mapping)}else return null}}return s}function a(s){const o=s.target;o.removeEventListener("dispose",a);const c=e.get(o);c!==void 0&&(e.delete(o),c.dispose())}function r(){e=new WeakMap}return{get:i,dispose:r}}const Jl=4,L4=[.125,.215,.35,.446,.526,.582],fu=20,UX=256,Hp=new Rr,P4=new dt;let JA=null,QA=0,$A=0,e2=!1;const LX=new H;class FE{constructor(e){this._renderer=e,this._pingPongRenderTarget=null,this._lodMax=0,this._cubeSize=0,this._sizeLods=[],this._sigmas=[],this._lodMeshes=[],this._backgroundBox=null,this._cubemapMaterial=null,this._equirectMaterial=null,this._blurMaterial=null,this._ggxMaterial=null}fromScene(e,t=0,i=.1,a=100,r={}){const{size:s=256,position:o=LX}=r;JA=this._renderer.getRenderTarget(),QA=this._renderer.getActiveCubeFace(),$A=this._renderer.getActiveMipmapLevel(),e2=this._renderer.xr.enabled,this._renderer.xr.enabled=!1,this._setSize(s);const c=this._allocateTargets();return c.depthBuffer=!0,this._sceneToCubeUV(e,i,a,c,o),t>0&&this._blur(c,0,0,t),this._applyPMREM(c),this._cleanup(c),c}fromEquirectangular(e,t=null){return this._fromTexture(e,t)}fromCubemap(e,t=null){return this._fromTexture(e,t)}compileCubemapShader(){this._cubemapMaterial===null&&(this._cubemapMaterial=z4(),this._compileMaterial(this._cubemapMaterial))}compileEquirectangularShader(){this._equirectMaterial===null&&(this._equirectMaterial=H4(),this._compileMaterial(this._equirectMaterial))}dispose(){this._dispose(),this._cubemapMaterial!==null&&this._cubemapMaterial.dispose(),this._equirectMaterial!==null&&this._equirectMaterial.dispose(),this._backgroundBox!==null&&(this._backgroundBox.geometry.dispose(),this._backgroundBox.material.dispose())}_setSize(e){this._lodMax=Math.floor(Math.log2(e)),this._cubeSize=Math.pow(2,this._lodMax)}_dispose(){this._blurMaterial!==null&&this._blurMaterial.dispose(),this._ggxMaterial!==null&&this._ggxMaterial.dispose(),this._pingPongRenderTarget!==null&&this._pingPongRenderTarget.dispose();for(let e=0;e2?O:0,O,O),d.setRenderTarget(a),v&&d.render(E,c),d.render(e,c)}d.toneMapping=g,d.autoClear=m,e.background=_}_textureToCubeUV(e,t){const i=this._renderer,a=e.mapping===no||e.mapping===mc;a?(this._cubemapMaterial===null&&(this._cubemapMaterial=z4()),this._cubemapMaterial.uniforms.flipEnvMap.value=e.isRenderTargetTexture===!1?-1:1):this._equirectMaterial===null&&(this._equirectMaterial=H4());const r=a?this._cubemapMaterial:this._equirectMaterial,s=this._lodMeshes[0];s.material=r;const o=r.uniforms;o.envMap.value=e;const c=this._cubeSize;cf(t,0,0,3*c,2*c),i.setRenderTarget(t),i.render(s,Hp)}_applyPMREM(e){const t=this._renderer,i=t.autoClear;t.autoClear=!1;const a=this._lodMeshes.length;for(let r=1;ry-Jl?i-y+Jl:0),v=4*(this._cubeSize-E);c.envMap.value=e.texture,c.roughness.value=g,c.mipInt.value=y-t,cf(r,S,v,3*E,2*E),a.setRenderTarget(r),a.render(o,Hp),c.envMap.value=r.texture,c.roughness.value=0,c.mipInt.value=y-i,cf(e,S,v,3*E,2*E),a.setRenderTarget(e),a.render(o,Hp)}_blur(e,t,i,a,r){const s=this._pingPongRenderTarget;this._halfBlur(e,s,t,i,a,"latitudinal",r),this._halfBlur(s,e,i,i,a,"longitudinal",r)}_halfBlur(e,t,i,a,r,s,o){const c=this._renderer,h=this._blurMaterial;s!=="latitudinal"&&s!=="longitudinal"&&qt("blur direction must be either latitudinal or longitudinal!");const f=3,d=this._lodMeshes[a];d.material=h;const m=h.uniforms,g=this._sizeLods[i]-1,y=isFinite(r)?Math.PI/(2*g):2*Math.PI/(2*fu-1),E=r/y,S=isFinite(r)?1+Math.floor(f*E):fu;S>fu&&_t(`sigmaRadians, ${r}, is too large and will clip, as it requested ${S} samples when the maximum is set to ${fu}`);const v=[];let _=0;for(let L=0;LA-Jl?a-A+Jl:0),N=4*(this._cubeSize-b);cf(t,O,N,3*b,2*b),c.setRenderTarget(t),c.render(d,Hp)}}function PX(n){const e=[],t=[],i=[];let a=n;const r=n-Jl+1+L4.length;for(let s=0;sn-Jl?c=L4[s-n+Jl-1]:s===0&&(c=0),t.push(c);const h=1/(o-2),f=-h,d=1+h,m=[f,f,d,f,d,d,f,f,d,d,f,d],g=6,y=6,E=3,S=2,v=1,_=new Float32Array(E*y*g),A=new Float32Array(S*y*g),b=new Float32Array(v*y*g);for(let N=0;N2?0:-1,w=[L,B,0,L+2/3,B,0,L+2/3,B+1,0,L,B,0,L+2/3,B+1,0,L,B+1,0];_.set(w,E*y*N),A.set(m,S*y*N);const D=[N,N,N,N,N,N];b.set(D,v*y*N)}const O=new Xt;O.setAttribute("position",new pn(_,E)),O.setAttribute("uv",new pn(A,S)),O.setAttribute("faceIndex",new pn(b,v)),i.push(new Xn(O,null)),a>Jl&&a--}return{lodMeshes:i,sizeLods:e,sigmas:t}}function F4(n,e,t){const i=new oi(n,e,t);return i.texture.mapping=Pd,i.texture.name="PMREM.cubeUv",i.scissorTest=!0,i}function cf(n,e,t,i,a){n.viewport.set(e,t,i,a),n.scissor.set(e,t,i,a)}function FX(n,e,t){return new Di({name:"PMREMGGXConvolution",defines:{GGX_SAMPLES:UX,CUBEUV_TEXEL_WIDTH:1/e,CUBEUV_TEXEL_HEIGHT:1/t,CUBEUV_MAX_MIP:`${n}.0`},uniforms:{envMap:{value:null},roughness:{value:0},mipInt:{value:0}},vertexShader:Gy(),fragmentShader:` + + precision highp float; + precision highp int; + + varying vec3 vOutputDirection; + + uniform sampler2D envMap; + uniform float roughness; + uniform float mipInt; + + #define ENVMAP_TYPE_CUBE_UV + #include + + #define PI 3.14159265359 + + // Van der Corput radical inverse + float radicalInverse_VdC(uint bits) { + bits = (bits << 16u) | (bits >> 16u); + bits = ((bits & 0x55555555u) << 1u) | ((bits & 0xAAAAAAAAu) >> 1u); + bits = ((bits & 0x33333333u) << 2u) | ((bits & 0xCCCCCCCCu) >> 2u); + bits = ((bits & 0x0F0F0F0Fu) << 4u) | ((bits & 0xF0F0F0F0u) >> 4u); + bits = ((bits & 0x00FF00FFu) << 8u) | ((bits & 0xFF00FF00u) >> 8u); + return float(bits) * 2.3283064365386963e-10; // / 0x100000000 + } + + // Hammersley sequence + vec2 hammersley(uint i, uint N) { + return vec2(float(i) / float(N), radicalInverse_VdC(i)); + } + + // GGX VNDF importance sampling (Eric Heitz 2018) + // "Sampling the GGX Distribution of Visible Normals" + // https://jcgt.org/published/0007/04/01/ + vec3 importanceSampleGGX_VNDF(vec2 Xi, vec3 V, float roughness) { + float alpha = roughness * roughness; + + // Section 3.2: Transform view direction to hemisphere configuration + vec3 Vh = normalize(vec3(alpha * V.x, alpha * V.y, V.z)); + + // Section 4.1: Orthonormal basis + float lensq = Vh.x * Vh.x + Vh.y * Vh.y; + vec3 T1 = lensq > 0.0 ? vec3(-Vh.y, Vh.x, 0.0) / sqrt(lensq) : vec3(1.0, 0.0, 0.0); + vec3 T2 = cross(Vh, T1); + + // Section 4.2: Parameterization of projected area + float r = sqrt(Xi.x); + float phi = 2.0 * PI * Xi.y; + float t1 = r * cos(phi); + float t2 = r * sin(phi); + float s = 0.5 * (1.0 + Vh.z); + t2 = (1.0 - s) * sqrt(1.0 - t1 * t1) + s * t2; + + // Section 4.3: Reprojection onto hemisphere + vec3 Nh = t1 * T1 + t2 * T2 + sqrt(max(0.0, 1.0 - t1 * t1 - t2 * t2)) * Vh; + + // Section 3.4: Transform back to ellipsoid configuration + return normalize(vec3(alpha * Nh.x, alpha * Nh.y, max(0.0, Nh.z))); + } + + void main() { + vec3 N = normalize(vOutputDirection); + vec3 V = N; // Assume view direction equals normal for pre-filtering + + vec3 prefilteredColor = vec3(0.0); + float totalWeight = 0.0; + + // For very low roughness, just sample the environment directly + if (roughness < 0.001) { + gl_FragColor = vec4(bilinearCubeUV(envMap, N, mipInt), 1.0); + return; + } + + // Tangent space basis for VNDF sampling + vec3 up = abs(N.z) < 0.999 ? vec3(0.0, 0.0, 1.0) : vec3(1.0, 0.0, 0.0); + vec3 tangent = normalize(cross(up, N)); + vec3 bitangent = cross(N, tangent); + + for(uint i = 0u; i < uint(GGX_SAMPLES); i++) { + vec2 Xi = hammersley(i, uint(GGX_SAMPLES)); + + // For PMREM, V = N, so in tangent space V is always (0, 0, 1) + vec3 H_tangent = importanceSampleGGX_VNDF(Xi, vec3(0.0, 0.0, 1.0), roughness); + + // Transform H back to world space + vec3 H = normalize(tangent * H_tangent.x + bitangent * H_tangent.y + N * H_tangent.z); + vec3 L = normalize(2.0 * dot(V, H) * H - V); + + float NdotL = max(dot(N, L), 0.0); + + if(NdotL > 0.0) { + // Sample environment at fixed mip level + // VNDF importance sampling handles the distribution filtering + vec3 sampleColor = bilinearCubeUV(envMap, L, mipInt); + + // Weight by NdotL for the split-sum approximation + // VNDF PDF naturally accounts for the visible microfacet distribution + prefilteredColor += sampleColor * NdotL; + totalWeight += NdotL; + } + } + + if (totalWeight > 0.0) { + prefilteredColor = prefilteredColor / totalWeight; + } + + gl_FragColor = vec4(prefilteredColor, 1.0); + } + `,blending:ga,depthTest:!1,depthWrite:!1})}function HX(n,e,t){const i=new Float32Array(fu),a=new H(0,1,0);return new Di({name:"SphericalGaussianBlur",defines:{n:fu,CUBEUV_TEXEL_WIDTH:1/e,CUBEUV_TEXEL_HEIGHT:1/t,CUBEUV_MAX_MIP:`${n}.0`},uniforms:{envMap:{value:null},samples:{value:1},weights:{value:i},latitudinal:{value:!1},dTheta:{value:0},mipInt:{value:0},poleAxis:{value:a}},vertexShader:Gy(),fragmentShader:` + + precision mediump float; + precision mediump int; + + varying vec3 vOutputDirection; + + uniform sampler2D envMap; + uniform int samples; + uniform float weights[ n ]; + uniform bool latitudinal; + uniform float dTheta; + uniform float mipInt; + uniform vec3 poleAxis; + + #define ENVMAP_TYPE_CUBE_UV + #include + + vec3 getSample( float theta, vec3 axis ) { + + float cosTheta = cos( theta ); + // Rodrigues' axis-angle rotation + vec3 sampleDirection = vOutputDirection * cosTheta + + cross( axis, vOutputDirection ) * sin( theta ) + + axis * dot( axis, vOutputDirection ) * ( 1.0 - cosTheta ); + + return bilinearCubeUV( envMap, sampleDirection, mipInt ); + + } + + void main() { + + vec3 axis = latitudinal ? poleAxis : cross( poleAxis, vOutputDirection ); + + if ( all( equal( axis, vec3( 0.0 ) ) ) ) { + + axis = vec3( vOutputDirection.z, 0.0, - vOutputDirection.x ); + + } + + axis = normalize( axis ); + + gl_FragColor = vec4( 0.0, 0.0, 0.0, 1.0 ); + gl_FragColor.rgb += weights[ 0 ] * getSample( 0.0, axis ); + + for ( int i = 1; i < n; i++ ) { + + if ( i >= samples ) { + + break; + + } + + float theta = dTheta * float( i ); + gl_FragColor.rgb += weights[ i ] * getSample( -1.0 * theta, axis ); + gl_FragColor.rgb += weights[ i ] * getSample( theta, axis ); + + } + + } + `,blending:ga,depthTest:!1,depthWrite:!1})}function H4(){return new Di({name:"EquirectangularToCubeUV",uniforms:{envMap:{value:null}},vertexShader:Gy(),fragmentShader:` + + precision mediump float; + precision mediump int; + + varying vec3 vOutputDirection; + + uniform sampler2D envMap; + + #include + + void main() { + + vec3 outputDirection = normalize( vOutputDirection ); + vec2 uv = equirectUv( outputDirection ); + + gl_FragColor = vec4( texture2D ( envMap, uv ).rgb, 1.0 ); + + } + `,blending:ga,depthTest:!1,depthWrite:!1})}function z4(){return new Di({name:"CubemapToCubeUV",uniforms:{envMap:{value:null},flipEnvMap:{value:-1}},vertexShader:Gy(),fragmentShader:` + + precision mediump float; + precision mediump int; + + uniform float flipEnvMap; + + varying vec3 vOutputDirection; + + uniform samplerCube envMap; + + void main() { + + gl_FragColor = textureCube( envMap, vec3( flipEnvMap * vOutputDirection.x, vOutputDirection.yz ) ); + + } + `,blending:ga,depthTest:!1,depthWrite:!1})}function Gy(){return` + + precision mediump float; + precision mediump int; + + attribute float faceIndex; + + varying vec3 vOutputDirection; + + // RH coordinate system; PMREM face-indexing convention + vec3 getDirection( vec2 uv, float face ) { + + uv = 2.0 * uv - 1.0; + + vec3 direction = vec3( uv, 1.0 ); + + if ( face == 0.0 ) { + + direction = direction.zyx; // ( 1, v, u ) pos x + + } else if ( face == 1.0 ) { + + direction = direction.xzy; + direction.xz *= -1.0; // ( -u, 1, -v ) pos y + + } else if ( face == 2.0 ) { + + direction.x *= -1.0; // ( -u, v, 1 ) pos z + + } else if ( face == 3.0 ) { + + direction = direction.zyx; + direction.xz *= -1.0; // ( -1, v, -u ) neg x + + } else if ( face == 4.0 ) { + + direction = direction.xzy; + direction.xy *= -1.0; // ( -u, -1, v ) neg y + + } else if ( face == 5.0 ) { + + direction.z *= -1.0; // ( u, v, -1 ) neg z + + } + + return direction; + + } + + void main() { + + vOutputDirection = getDirection( uv, faceIndex ); + gl_Position = vec4( position, 1.0 ); + + } + `}function zX(n){let e=new WeakMap,t=null;function i(o){if(o&&o.isTexture){const c=o.mapping,h=c===hd||c===$m,f=c===no||c===mc;if(h||f){let d=e.get(o);const m=d!==void 0?d.texture.pmremVersion:0;if(o.isRenderTargetTexture&&o.pmremVersion!==m)return t===null&&(t=new FE(n)),d=h?t.fromEquirectangular(o,d):t.fromCubemap(o,d),d.texture.pmremVersion=o.pmremVersion,e.set(o,d),d.texture;if(d!==void 0)return d.texture;{const g=o.image;return h&&g&&g.height>0||f&&g&&a(g)?(t===null&&(t=new FE(n)),d=h?t.fromEquirectangular(o):t.fromCubemap(o),d.texture.pmremVersion=o.pmremVersion,e.set(o,d),o.addEventListener("dispose",r),d.texture):null}}}return o}function a(o){let c=0;const h=6;for(let f=0;fe.maxTextureSize&&(N=Math.ceil(O/e.maxTextureSize),O=e.maxTextureSize);const L=new Float32Array(O*N*4*d),B=new yy(L,O,N,d);B.type=Sn,B.needsUpdate=!0;const w=b*4;for(let G=0;G0)return n;const a=e*t;let r=V4[a];if(r===void 0&&(r=new Float32Array(a),V4[a]=r),e!==0){i.toArray(r,0);for(let s=1,o=0;s!==e;++s)o+=t,n[s].toArray(r,o)}return r}function Zi(n,e){if(n.length!==e.length)return!1;for(let t=0,i=n.length;t":" "} ${o}: ${t[s]}`)}return i.join(` +`)}const j4=new kt;function zW(n){gn._getMatrix(j4,gn.workingColorSpace,n);const e=`mat3( ${j4.elements.map(t=>t.toFixed(4))} )`;switch(gn.getTransfer(n)){case n0:return[e,"LinearTransferOETF"];case Un:return[e,"sRGBTransferOETF"];default:return _t("WebGLProgram: Unsupported color space: ",n),[e,"LinearTransferOETF"]}}function K4(n,e,t){const i=n.getShaderParameter(e,n.COMPILE_STATUS),r=(n.getShaderInfoLog(e)||"").trim();if(i&&r==="")return"";const s=/ERROR: 0:(\d+)/.exec(r);if(s){const o=parseInt(s[1]);return t.toUpperCase()+` + +`+r+` + +`+HW(n.getShaderSource(e),o)}else return r}function GW(n,e){const t=zW(e);return[`vec4 ${n}( vec4 value ) {`,` return ${t[1]}( vec4( value.rgb * ${t[0]}, value.a ) );`,"}"].join(` +`)}function VW(n,e){let t;switch(e){case U5:t="Linear";break;case L5:t="Reinhard";break;case P5:t="Cineon";break;case C3:t="ACESFilmic";break;case H5:t="AgX";break;case z5:t="Neutral";break;case F5:t="Custom";break;default:_t("WebGLProgram: Unsupported toneMapping:",e),t="Linear"}return"vec3 "+n+"( vec3 color ) { return "+t+"ToneMapping( color ); }"}const Iv=new H;function kW(){gn.getLuminanceCoefficients(Iv);const n=Iv.x.toFixed(4),e=Iv.y.toFixed(4),t=Iv.z.toFixed(4);return["float luminance( const in vec3 rgb ) {",` const vec3 weights = vec3( ${n}, ${e}, ${t} );`," return dot( weights, rgb );","}"].join(` +`)}function XW(n){return[n.extensionClipCullDistance?"#extension GL_ANGLE_clip_cull_distance : require":"",n.extensionMultiDraw?"#extension GL_ANGLE_multi_draw : require":""].filter(tm).join(` +`)}function WW(n){const e=[];for(const t in n){const i=n[t];i!==!1&&e.push("#define "+t+" "+i)}return e.join(` +`)}function YW(n,e){const t={},i=n.getProgramParameter(e,n.ACTIVE_ATTRIBUTES);for(let a=0;a/gm;function HE(n){return n.replace(qW,jW)}const ZW=new Map;function jW(n,e){let t=tn[e];if(t===void 0){const i=ZW.get(e);if(i!==void 0)t=tn[i],_t('WebGLRenderer: Shader chunk "%s" has been deprecated. Use "%s" instead.',e,i);else throw new Error("Can not resolve #include <"+e+">")}return HE(t)}const KW=/#pragma unroll_loop_start\s+for\s*\(\s*int\s+i\s*=\s*(\d+)\s*;\s*i\s*<\s*(\d+)\s*;\s*i\s*\+\+\s*\)\s*{([\s\S]+?)}\s+#pragma unroll_loop_end/g;function $4(n){return n.replace(KW,JW)}function JW(n,e,t,i){let a="";for(let r=parseInt(e);r0&&(S+=` +`),v=["#define SHADER_TYPE "+t.shaderType,"#define SHADER_NAME "+t.shaderName,y].filter(tm).join(` +`),v.length>0&&(v+=` +`)):(S=[eD(t),"#define SHADER_TYPE "+t.shaderType,"#define SHADER_NAME "+t.shaderName,y,t.extensionClipCullDistance?"#define USE_CLIP_DISTANCE":"",t.batching?"#define USE_BATCHING":"",t.batchingColor?"#define USE_BATCHING_COLOR":"",t.instancing?"#define USE_INSTANCING":"",t.instancingColor?"#define USE_INSTANCING_COLOR":"",t.instancingMorph?"#define USE_INSTANCING_MORPH":"",t.useFog&&t.fog?"#define USE_FOG":"",t.useFog&&t.fogExp2?"#define FOG_EXP2":"",t.map?"#define USE_MAP":"",t.envMap?"#define USE_ENVMAP":"",t.envMap?"#define "+f:"",t.lightMap?"#define USE_LIGHTMAP":"",t.aoMap?"#define USE_AOMAP":"",t.bumpMap?"#define USE_BUMPMAP":"",t.normalMap?"#define USE_NORMALMAP":"",t.normalMapObjectSpace?"#define USE_NORMALMAP_OBJECTSPACE":"",t.normalMapTangentSpace?"#define USE_NORMALMAP_TANGENTSPACE":"",t.displacementMap?"#define USE_DISPLACEMENTMAP":"",t.emissiveMap?"#define USE_EMISSIVEMAP":"",t.anisotropy?"#define USE_ANISOTROPY":"",t.anisotropyMap?"#define USE_ANISOTROPYMAP":"",t.clearcoatMap?"#define USE_CLEARCOATMAP":"",t.clearcoatRoughnessMap?"#define USE_CLEARCOAT_ROUGHNESSMAP":"",t.clearcoatNormalMap?"#define USE_CLEARCOAT_NORMALMAP":"",t.iridescenceMap?"#define USE_IRIDESCENCEMAP":"",t.iridescenceThicknessMap?"#define USE_IRIDESCENCE_THICKNESSMAP":"",t.specularMap?"#define USE_SPECULARMAP":"",t.specularColorMap?"#define USE_SPECULAR_COLORMAP":"",t.specularIntensityMap?"#define USE_SPECULAR_INTENSITYMAP":"",t.roughnessMap?"#define USE_ROUGHNESSMAP":"",t.metalnessMap?"#define USE_METALNESSMAP":"",t.alphaMap?"#define USE_ALPHAMAP":"",t.alphaHash?"#define USE_ALPHAHASH":"",t.transmission?"#define USE_TRANSMISSION":"",t.transmissionMap?"#define USE_TRANSMISSIONMAP":"",t.thicknessMap?"#define USE_THICKNESSMAP":"",t.sheenColorMap?"#define USE_SHEEN_COLORMAP":"",t.sheenRoughnessMap?"#define USE_SHEEN_ROUGHNESSMAP":"",t.mapUv?"#define MAP_UV "+t.mapUv:"",t.alphaMapUv?"#define ALPHAMAP_UV "+t.alphaMapUv:"",t.lightMapUv?"#define LIGHTMAP_UV "+t.lightMapUv:"",t.aoMapUv?"#define AOMAP_UV "+t.aoMapUv:"",t.emissiveMapUv?"#define EMISSIVEMAP_UV "+t.emissiveMapUv:"",t.bumpMapUv?"#define BUMPMAP_UV "+t.bumpMapUv:"",t.normalMapUv?"#define NORMALMAP_UV "+t.normalMapUv:"",t.displacementMapUv?"#define DISPLACEMENTMAP_UV "+t.displacementMapUv:"",t.metalnessMapUv?"#define METALNESSMAP_UV "+t.metalnessMapUv:"",t.roughnessMapUv?"#define ROUGHNESSMAP_UV "+t.roughnessMapUv:"",t.anisotropyMapUv?"#define ANISOTROPYMAP_UV "+t.anisotropyMapUv:"",t.clearcoatMapUv?"#define CLEARCOATMAP_UV "+t.clearcoatMapUv:"",t.clearcoatNormalMapUv?"#define CLEARCOAT_NORMALMAP_UV "+t.clearcoatNormalMapUv:"",t.clearcoatRoughnessMapUv?"#define CLEARCOAT_ROUGHNESSMAP_UV "+t.clearcoatRoughnessMapUv:"",t.iridescenceMapUv?"#define IRIDESCENCEMAP_UV "+t.iridescenceMapUv:"",t.iridescenceThicknessMapUv?"#define IRIDESCENCE_THICKNESSMAP_UV "+t.iridescenceThicknessMapUv:"",t.sheenColorMapUv?"#define SHEEN_COLORMAP_UV "+t.sheenColorMapUv:"",t.sheenRoughnessMapUv?"#define SHEEN_ROUGHNESSMAP_UV "+t.sheenRoughnessMapUv:"",t.specularMapUv?"#define SPECULARMAP_UV "+t.specularMapUv:"",t.specularColorMapUv?"#define SPECULAR_COLORMAP_UV "+t.specularColorMapUv:"",t.specularIntensityMapUv?"#define SPECULAR_INTENSITYMAP_UV "+t.specularIntensityMapUv:"",t.transmissionMapUv?"#define TRANSMISSIONMAP_UV "+t.transmissionMapUv:"",t.thicknessMapUv?"#define THICKNESSMAP_UV "+t.thicknessMapUv:"",t.vertexTangents&&t.flatShading===!1?"#define USE_TANGENT":"",t.vertexColors?"#define USE_COLOR":"",t.vertexAlphas?"#define USE_COLOR_ALPHA":"",t.vertexUv1s?"#define USE_UV1":"",t.vertexUv2s?"#define USE_UV2":"",t.vertexUv3s?"#define USE_UV3":"",t.pointsUvs?"#define USE_POINTS_UV":"",t.flatShading?"#define FLAT_SHADED":"",t.skinning?"#define USE_SKINNING":"",t.morphTargets?"#define USE_MORPHTARGETS":"",t.morphNormals&&t.flatShading===!1?"#define USE_MORPHNORMALS":"",t.morphColors?"#define USE_MORPHCOLORS":"",t.morphTargetsCount>0?"#define MORPHTARGETS_TEXTURE_STRIDE "+t.morphTextureStride:"",t.morphTargetsCount>0?"#define MORPHTARGETS_COUNT "+t.morphTargetsCount:"",t.doubleSided?"#define DOUBLE_SIDED":"",t.flipSided?"#define FLIP_SIDED":"",t.shadowMapEnabled?"#define USE_SHADOWMAP":"",t.shadowMapEnabled?"#define "+c:"",t.sizeAttenuation?"#define USE_SIZEATTENUATION":"",t.numLightProbes>0?"#define USE_LIGHT_PROBES":"",t.logarithmicDepthBuffer?"#define USE_LOGARITHMIC_DEPTH_BUFFER":"",t.reversedDepthBuffer?"#define USE_REVERSED_DEPTH_BUFFER":"","uniform mat4 modelMatrix;","uniform mat4 modelViewMatrix;","uniform mat4 projectionMatrix;","uniform mat4 viewMatrix;","uniform mat3 normalMatrix;","uniform vec3 cameraPosition;","uniform bool isOrthographic;","#ifdef USE_INSTANCING"," attribute mat4 instanceMatrix;","#endif","#ifdef USE_INSTANCING_COLOR"," attribute vec3 instanceColor;","#endif","#ifdef USE_INSTANCING_MORPH"," uniform sampler2D morphTexture;","#endif","attribute vec3 position;","attribute vec3 normal;","attribute vec2 uv;","#ifdef USE_UV1"," attribute vec2 uv1;","#endif","#ifdef USE_UV2"," attribute vec2 uv2;","#endif","#ifdef USE_UV3"," attribute vec2 uv3;","#endif","#ifdef USE_TANGENT"," attribute vec4 tangent;","#endif","#if defined( USE_COLOR_ALPHA )"," attribute vec4 color;","#elif defined( USE_COLOR )"," attribute vec3 color;","#endif","#ifdef USE_SKINNING"," attribute vec4 skinIndex;"," attribute vec4 skinWeight;","#endif",` +`].filter(tm).join(` +`),v=[eD(t),"#define SHADER_TYPE "+t.shaderType,"#define SHADER_NAME "+t.shaderName,y,t.useFog&&t.fog?"#define USE_FOG":"",t.useFog&&t.fogExp2?"#define FOG_EXP2":"",t.alphaToCoverage?"#define ALPHA_TO_COVERAGE":"",t.map?"#define USE_MAP":"",t.matcap?"#define USE_MATCAP":"",t.envMap?"#define USE_ENVMAP":"",t.envMap?"#define "+h:"",t.envMap?"#define "+f:"",t.envMap?"#define "+d:"",m?"#define CUBEUV_TEXEL_WIDTH "+m.texelWidth:"",m?"#define CUBEUV_TEXEL_HEIGHT "+m.texelHeight:"",m?"#define CUBEUV_MAX_MIP "+m.maxMip+".0":"",t.lightMap?"#define USE_LIGHTMAP":"",t.aoMap?"#define USE_AOMAP":"",t.bumpMap?"#define USE_BUMPMAP":"",t.normalMap?"#define USE_NORMALMAP":"",t.normalMapObjectSpace?"#define USE_NORMALMAP_OBJECTSPACE":"",t.normalMapTangentSpace?"#define USE_NORMALMAP_TANGENTSPACE":"",t.emissiveMap?"#define USE_EMISSIVEMAP":"",t.anisotropy?"#define USE_ANISOTROPY":"",t.anisotropyMap?"#define USE_ANISOTROPYMAP":"",t.clearcoat?"#define USE_CLEARCOAT":"",t.clearcoatMap?"#define USE_CLEARCOATMAP":"",t.clearcoatRoughnessMap?"#define USE_CLEARCOAT_ROUGHNESSMAP":"",t.clearcoatNormalMap?"#define USE_CLEARCOAT_NORMALMAP":"",t.dispersion?"#define USE_DISPERSION":"",t.iridescence?"#define USE_IRIDESCENCE":"",t.iridescenceMap?"#define USE_IRIDESCENCEMAP":"",t.iridescenceThicknessMap?"#define USE_IRIDESCENCE_THICKNESSMAP":"",t.specularMap?"#define USE_SPECULARMAP":"",t.specularColorMap?"#define USE_SPECULAR_COLORMAP":"",t.specularIntensityMap?"#define USE_SPECULAR_INTENSITYMAP":"",t.roughnessMap?"#define USE_ROUGHNESSMAP":"",t.metalnessMap?"#define USE_METALNESSMAP":"",t.alphaMap?"#define USE_ALPHAMAP":"",t.alphaTest?"#define USE_ALPHATEST":"",t.alphaHash?"#define USE_ALPHAHASH":"",t.sheen?"#define USE_SHEEN":"",t.sheenColorMap?"#define USE_SHEEN_COLORMAP":"",t.sheenRoughnessMap?"#define USE_SHEEN_ROUGHNESSMAP":"",t.transmission?"#define USE_TRANSMISSION":"",t.transmissionMap?"#define USE_TRANSMISSIONMAP":"",t.thicknessMap?"#define USE_THICKNESSMAP":"",t.vertexTangents&&t.flatShading===!1?"#define USE_TANGENT":"",t.vertexColors||t.instancingColor||t.batchingColor?"#define USE_COLOR":"",t.vertexAlphas?"#define USE_COLOR_ALPHA":"",t.vertexUv1s?"#define USE_UV1":"",t.vertexUv2s?"#define USE_UV2":"",t.vertexUv3s?"#define USE_UV3":"",t.pointsUvs?"#define USE_POINTS_UV":"",t.gradientMap?"#define USE_GRADIENTMAP":"",t.flatShading?"#define FLAT_SHADED":"",t.doubleSided?"#define DOUBLE_SIDED":"",t.flipSided?"#define FLIP_SIDED":"",t.shadowMapEnabled?"#define USE_SHADOWMAP":"",t.shadowMapEnabled?"#define "+c:"",t.premultipliedAlpha?"#define PREMULTIPLIED_ALPHA":"",t.numLightProbes>0?"#define USE_LIGHT_PROBES":"",t.decodeVideoTexture?"#define DECODE_VIDEO_TEXTURE":"",t.decodeVideoTextureEmissive?"#define DECODE_VIDEO_TEXTURE_EMISSIVE":"",t.logarithmicDepthBuffer?"#define USE_LOGARITHMIC_DEPTH_BUFFER":"",t.reversedDepthBuffer?"#define USE_REVERSED_DEPTH_BUFFER":"","uniform mat4 viewMatrix;","uniform vec3 cameraPosition;","uniform bool isOrthographic;",t.toneMapping!==ns?"#define TONE_MAPPING":"",t.toneMapping!==ns?tn.tonemapping_pars_fragment:"",t.toneMapping!==ns?VW("toneMapping",t.toneMapping):"",t.dithering?"#define DITHERING":"",t.opaque?"#define OPAQUE":"",tn.colorspace_pars_fragment,GW("linearToOutputTexel",t.outputColorSpace),kW(),t.useDepthPacking?"#define DEPTH_PACKING "+t.depthPacking:"",` +`].filter(tm).join(` +`)),s=HE(s),s=J4(s,t),s=Q4(s,t),o=HE(o),o=J4(o,t),o=Q4(o,t),s=$4(s),o=$4(o),t.isRawShaderMaterial!==!0&&(_=`#version 300 es +`,S=[g,"#define attribute in","#define varying out","#define texture2D texture"].join(` +`)+` +`+S,v=["#define varying in",t.glslVersion===cs?"":"layout(location = 0) out highp vec4 pc_fragColor;",t.glslVersion===cs?"":"#define gl_FragColor pc_fragColor","#define gl_FragDepthEXT gl_FragDepth","#define texture2D texture","#define textureCube texture","#define texture2DProj textureProj","#define texture2DLodEXT textureLod","#define texture2DProjLodEXT textureProjLod","#define textureCubeLodEXT textureLod","#define texture2DGradEXT textureGrad","#define texture2DProjGradEXT textureProjGrad","#define textureCubeGradEXT textureGrad"].join(` +`)+` +`+v);const A=_+S+s,b=_+v+o,O=Z4(a,a.VERTEX_SHADER,A),N=Z4(a,a.FRAGMENT_SHADER,b);a.attachShader(E,O),a.attachShader(E,N),t.index0AttributeName!==void 0?a.bindAttribLocation(E,0,t.index0AttributeName):t.morphTargets===!0&&a.bindAttribLocation(E,0,"position"),a.linkProgram(E);function L(G){if(n.debug.checkShaderErrors){const J=a.getProgramInfoLog(E)||"",$=a.getShaderInfoLog(O)||"",se=a.getShaderInfoLog(N)||"",le=J.trim(),q=$.trim(),te=se.trim();let ee=!0,de=!0;if(a.getProgramParameter(E,a.LINK_STATUS)===!1)if(ee=!1,typeof n.debug.onShaderError=="function")n.debug.onShaderError(a,E,O,N);else{const ue=K4(a,O,"vertex"),Pe=K4(a,N,"fragment");qt("THREE.WebGLProgram: Shader Error "+a.getError()+" - VALIDATE_STATUS "+a.getProgramParameter(E,a.VALIDATE_STATUS)+` + +Material Name: `+G.name+` +Material Type: `+G.type+` + +Program Info Log: `+le+` +`+ue+` +`+Pe)}else le!==""?_t("WebGLProgram: Program Info Log:",le):(q===""||te==="")&&(de=!1);de&&(G.diagnostics={runnable:ee,programLog:le,vertexShader:{log:q,prefix:S},fragmentShader:{log:te,prefix:v}})}a.deleteShader(O),a.deleteShader(N),B=new f1(a,E),w=YW(a,E)}let B;this.getUniforms=function(){return B===void 0&&L(this),B};let w;this.getAttributes=function(){return w===void 0&&L(this),w};let D=t.rendererExtensionParallelShaderCompile===!1;return this.isReady=function(){return D===!1&&(D=a.getProgramParameter(E,PW)),D},this.destroy=function(){i.releaseStatesOfProgram(this),a.deleteProgram(E),this.program=void 0},this.type=t.shaderType,this.name=t.shaderName,this.id=FW++,this.cacheKey=e,this.usedTimes=1,this.program=E,this.vertexShader=O,this.fragmentShader=N,this}let aY=0;class rY{constructor(){this.shaderCache=new Map,this.materialCache=new Map}update(e){const t=e.vertexShader,i=e.fragmentShader,a=this._getShaderStage(t),r=this._getShaderStage(i),s=this._getShaderCacheForMaterial(e);return s.has(a)===!1&&(s.add(a),a.usedTimes++),s.has(r)===!1&&(s.add(r),r.usedTimes++),this}remove(e){const t=this.materialCache.get(e);for(const i of t)i.usedTimes--,i.usedTimes===0&&this.shaderCache.delete(i.code);return this.materialCache.delete(e),this}getVertexShaderID(e){return this._getShaderStage(e.vertexShader).id}getFragmentShaderID(e){return this._getShaderStage(e.fragmentShader).id}dispose(){this.shaderCache.clear(),this.materialCache.clear()}_getShaderCacheForMaterial(e){const t=this.materialCache;let i=t.get(e);return i===void 0&&(i=new Set,t.set(e,i)),i}_getShaderStage(e){const t=this.shaderCache;let i=t.get(e);return i===void 0&&(i=new sY(e),t.set(e,i)),i}}class sY{constructor(e){this.id=aY++,this.code=e,this.usedTimes=0}}function oY(n,e,t,i,a,r,s){const o=new yd,c=new rY,h=new Set,f=[],d=a.logarithmicDepthBuffer,m=a.vertexTextures;let g=a.precision;const y={MeshDepthMaterial:"depth",MeshDistanceMaterial:"distanceRGBA",MeshNormalMaterial:"normal",MeshBasicMaterial:"basic",MeshLambertMaterial:"lambert",MeshPhongMaterial:"phong",MeshToonMaterial:"toon",MeshStandardMaterial:"physical",MeshPhysicalMaterial:"physical",MeshMatcapMaterial:"matcap",LineBasicMaterial:"basic",LineDashedMaterial:"dashed",PointsMaterial:"points",ShadowMaterial:"shadow",SpriteMaterial:"sprite"};function E(w){return h.add(w),w===0?"uv":`uv${w}`}function S(w,D,G,J,$){const se=J.fog,le=$.geometry,q=w.isMeshStandardMaterial?J.environment:null,te=(w.isMeshStandardMaterial?t:e).get(w.envMap||q),ee=te&&te.mapping===Pd?te.image.height:null,de=y[w.type];w.precision!==null&&(g=a.getMaxPrecision(w.precision),g!==w.precision&&_t("WebGLProgram.getParameters:",w.precision,"not supported, using",g,"instead."));const ue=le.morphAttributes.position||le.morphAttributes.normal||le.morphAttributes.color,Pe=ue!==void 0?ue.length:0;let He=0;le.morphAttributes.position!==void 0&&(He=1),le.morphAttributes.normal!==void 0&&(He=2),le.morphAttributes.color!==void 0&&(He=3);let Ke,nt,xt,fe;if(de){const jt=Cs[de];Ke=jt.vertexShader,nt=jt.fragmentShader}else Ke=w.vertexShader,nt=w.fragmentShader,c.update(w),xt=c.getVertexShaderID(w),fe=c.getFragmentShaderID(w);const Be=n.getRenderTarget(),Je=n.state.buffers.depth.getReversed(),ve=$.isInstancedMesh===!0,at=$.isBatchedMesh===!0,ft=!!w.map,ht=!!w.matcap,et=!!te,Re=!!w.aoMap,Z=!!w.lightMap,Ue=!!w.bumpMap,ze=!!w.normalMap,Qe=!!w.displacementMap,Ye=!!w.emissiveMap,ot=!!w.metalnessMap,rt=!!w.roughnessMap,mt=w.anisotropy>0,j=w.clearcoat>0,P=w.dispersion>0,pe=w.iridescence>0,Ie=w.sheen>0,Ge=w.transmission>0,we=mt&&!!w.anisotropyMap,Tt=j&&!!w.clearcoatMap,ut=j&&!!w.clearcoatNormalMap,wt=j&&!!w.clearcoatRoughnessMap,bt=pe&&!!w.iridescenceMap,ke=pe&&!!w.iridescenceThicknessMap,Ve=Ie&&!!w.sheenColorMap,St=Ie&&!!w.sheenRoughnessMap,ne=!!w.specularMap,me=!!w.specularColorMap,Le=!!w.specularIntensityMap,K=Ge&&!!w.transmissionMap,Se=Ge&&!!w.thicknessMap,_e=!!w.gradientMap,it=!!w.alphaMap,tt=w.alphaTest>0,We=!!w.alphaHash,gt=!!w.extensions;let Nt=ns;w.toneMapped&&(Be===null||Be.isXRRenderTarget===!0)&&(Nt=n.toneMapping);const $t={shaderID:de,shaderType:w.type,shaderName:w.name,vertexShader:Ke,fragmentShader:nt,defines:w.defines,customVertexShaderID:xt,customFragmentShaderID:fe,isRawShaderMaterial:w.isRawShaderMaterial===!0,glslVersion:w.glslVersion,precision:g,batching:at,batchingColor:at&&$._colorsTexture!==null,instancing:ve,instancingColor:ve&&$.instanceColor!==null,instancingMorph:ve&&$.morphTexture!==null,supportsVertexTextures:m,outputColorSpace:Be===null?n.outputColorSpace:Be.isXRRenderTarget===!0?Be.texture.colorSpace:Fi,alphaToCoverage:!!w.alphaToCoverage,map:ft,matcap:ht,envMap:et,envMapMode:et&&te.mapping,envMapCubeUVHeight:ee,aoMap:Re,lightMap:Z,bumpMap:Ue,normalMap:ze,displacementMap:m&&Qe,emissiveMap:Ye,normalMapObjectSpace:ze&&w.normalMapType===q5,normalMapTangentSpace:ze&&w.normalMapType===Ac,metalnessMap:ot,roughnessMap:rt,anisotropy:mt,anisotropyMap:we,clearcoat:j,clearcoatMap:Tt,clearcoatNormalMap:ut,clearcoatRoughnessMap:wt,dispersion:P,iridescence:pe,iridescenceMap:bt,iridescenceThicknessMap:ke,sheen:Ie,sheenColorMap:Ve,sheenRoughnessMap:St,specularMap:ne,specularColorMap:me,specularIntensityMap:Le,transmission:Ge,transmissionMap:K,thicknessMap:Se,gradientMap:_e,opaque:w.transparent===!1&&w.blending===wu&&w.alphaToCoverage===!1,alphaMap:it,alphaTest:tt,alphaHash:We,combine:w.combine,mapUv:ft&&E(w.map.channel),aoMapUv:Re&&E(w.aoMap.channel),lightMapUv:Z&&E(w.lightMap.channel),bumpMapUv:Ue&&E(w.bumpMap.channel),normalMapUv:ze&&E(w.normalMap.channel),displacementMapUv:Qe&&E(w.displacementMap.channel),emissiveMapUv:Ye&&E(w.emissiveMap.channel),metalnessMapUv:ot&&E(w.metalnessMap.channel),roughnessMapUv:rt&&E(w.roughnessMap.channel),anisotropyMapUv:we&&E(w.anisotropyMap.channel),clearcoatMapUv:Tt&&E(w.clearcoatMap.channel),clearcoatNormalMapUv:ut&&E(w.clearcoatNormalMap.channel),clearcoatRoughnessMapUv:wt&&E(w.clearcoatRoughnessMap.channel),iridescenceMapUv:bt&&E(w.iridescenceMap.channel),iridescenceThicknessMapUv:ke&&E(w.iridescenceThicknessMap.channel),sheenColorMapUv:Ve&&E(w.sheenColorMap.channel),sheenRoughnessMapUv:St&&E(w.sheenRoughnessMap.channel),specularMapUv:ne&&E(w.specularMap.channel),specularColorMapUv:me&&E(w.specularColorMap.channel),specularIntensityMapUv:Le&&E(w.specularIntensityMap.channel),transmissionMapUv:K&&E(w.transmissionMap.channel),thicknessMapUv:Se&&E(w.thicknessMap.channel),alphaMapUv:it&&E(w.alphaMap.channel),vertexTangents:!!le.attributes.tangent&&(ze||mt),vertexColors:w.vertexColors,vertexAlphas:w.vertexColors===!0&&!!le.attributes.color&&le.attributes.color.itemSize===4,pointsUvs:$.isPoints===!0&&!!le.attributes.uv&&(ft||it),fog:!!se,useFog:w.fog===!0,fogExp2:!!se&&se.isFogExp2,flatShading:w.flatShading===!0&&w.wireframe===!1,sizeAttenuation:w.sizeAttenuation===!0,logarithmicDepthBuffer:d,reversedDepthBuffer:Je,skinning:$.isSkinnedMesh===!0,morphTargets:le.morphAttributes.position!==void 0,morphNormals:le.morphAttributes.normal!==void 0,morphColors:le.morphAttributes.color!==void 0,morphTargetsCount:Pe,morphTextureStride:He,numDirLights:D.directional.length,numPointLights:D.point.length,numSpotLights:D.spot.length,numSpotLightMaps:D.spotLightMap.length,numRectAreaLights:D.rectArea.length,numHemiLights:D.hemi.length,numDirLightShadows:D.directionalShadowMap.length,numPointLightShadows:D.pointShadowMap.length,numSpotLightShadows:D.spotShadowMap.length,numSpotLightShadowsWithMaps:D.numSpotLightShadowsWithMaps,numLightProbes:D.numLightProbes,numClippingPlanes:s.numPlanes,numClipIntersection:s.numIntersection,dithering:w.dithering,shadowMapEnabled:n.shadowMap.enabled&&G.length>0,shadowMapType:n.shadowMap.type,toneMapping:Nt,decodeVideoTexture:ft&&w.map.isVideoTexture===!0&&gn.getTransfer(w.map.colorSpace)===Un,decodeVideoTextureEmissive:Ye&&w.emissiveMap.isVideoTexture===!0&&gn.getTransfer(w.emissiveMap.colorSpace)===Un,premultipliedAlpha:w.premultipliedAlpha,doubleSided:w.side===da,flipSided:w.side===Wi,useDepthPacking:w.depthPacking>=0,depthPacking:w.depthPacking||0,index0AttributeName:w.index0AttributeName,extensionClipCullDistance:gt&&w.extensions.clipCullDistance===!0&&i.has("WEBGL_clip_cull_distance"),extensionMultiDraw:(gt&&w.extensions.multiDraw===!0||at)&&i.has("WEBGL_multi_draw"),rendererExtensionParallelShaderCompile:i.has("KHR_parallel_shader_compile"),customProgramCacheKey:w.customProgramCacheKey()};return $t.vertexUv1s=h.has(1),$t.vertexUv2s=h.has(2),$t.vertexUv3s=h.has(3),h.clear(),$t}function v(w){const D=[];if(w.shaderID?D.push(w.shaderID):(D.push(w.customVertexShaderID),D.push(w.customFragmentShaderID)),w.defines!==void 0)for(const G in w.defines)D.push(G),D.push(w.defines[G]);return w.isRawShaderMaterial===!1&&(_(D,w),A(D,w),D.push(n.outputColorSpace)),D.push(w.customProgramCacheKey),D.join()}function _(w,D){w.push(D.precision),w.push(D.outputColorSpace),w.push(D.envMapMode),w.push(D.envMapCubeUVHeight),w.push(D.mapUv),w.push(D.alphaMapUv),w.push(D.lightMapUv),w.push(D.aoMapUv),w.push(D.bumpMapUv),w.push(D.normalMapUv),w.push(D.displacementMapUv),w.push(D.emissiveMapUv),w.push(D.metalnessMapUv),w.push(D.roughnessMapUv),w.push(D.anisotropyMapUv),w.push(D.clearcoatMapUv),w.push(D.clearcoatNormalMapUv),w.push(D.clearcoatRoughnessMapUv),w.push(D.iridescenceMapUv),w.push(D.iridescenceThicknessMapUv),w.push(D.sheenColorMapUv),w.push(D.sheenRoughnessMapUv),w.push(D.specularMapUv),w.push(D.specularColorMapUv),w.push(D.specularIntensityMapUv),w.push(D.transmissionMapUv),w.push(D.thicknessMapUv),w.push(D.combine),w.push(D.fogExp2),w.push(D.sizeAttenuation),w.push(D.morphTargetsCount),w.push(D.morphAttributeCount),w.push(D.numDirLights),w.push(D.numPointLights),w.push(D.numSpotLights),w.push(D.numSpotLightMaps),w.push(D.numHemiLights),w.push(D.numRectAreaLights),w.push(D.numDirLightShadows),w.push(D.numPointLightShadows),w.push(D.numSpotLightShadows),w.push(D.numSpotLightShadowsWithMaps),w.push(D.numLightProbes),w.push(D.shadowMapType),w.push(D.toneMapping),w.push(D.numClippingPlanes),w.push(D.numClipIntersection),w.push(D.depthPacking)}function A(w,D){o.disableAll(),D.supportsVertexTextures&&o.enable(0),D.instancing&&o.enable(1),D.instancingColor&&o.enable(2),D.instancingMorph&&o.enable(3),D.matcap&&o.enable(4),D.envMap&&o.enable(5),D.normalMapObjectSpace&&o.enable(6),D.normalMapTangentSpace&&o.enable(7),D.clearcoat&&o.enable(8),D.iridescence&&o.enable(9),D.alphaTest&&o.enable(10),D.vertexColors&&o.enable(11),D.vertexAlphas&&o.enable(12),D.vertexUv1s&&o.enable(13),D.vertexUv2s&&o.enable(14),D.vertexUv3s&&o.enable(15),D.vertexTangents&&o.enable(16),D.anisotropy&&o.enable(17),D.alphaHash&&o.enable(18),D.batching&&o.enable(19),D.dispersion&&o.enable(20),D.batchingColor&&o.enable(21),D.gradientMap&&o.enable(22),w.push(o.mask),o.disableAll(),D.fog&&o.enable(0),D.useFog&&o.enable(1),D.flatShading&&o.enable(2),D.logarithmicDepthBuffer&&o.enable(3),D.reversedDepthBuffer&&o.enable(4),D.skinning&&o.enable(5),D.morphTargets&&o.enable(6),D.morphNormals&&o.enable(7),D.morphColors&&o.enable(8),D.premultipliedAlpha&&o.enable(9),D.shadowMapEnabled&&o.enable(10),D.doubleSided&&o.enable(11),D.flipSided&&o.enable(12),D.useDepthPacking&&o.enable(13),D.dithering&&o.enable(14),D.transmission&&o.enable(15),D.sheen&&o.enable(16),D.opaque&&o.enable(17),D.pointsUvs&&o.enable(18),D.decodeVideoTexture&&o.enable(19),D.decodeVideoTextureEmissive&&o.enable(20),D.alphaToCoverage&&o.enable(21),w.push(o.mask)}function b(w){const D=y[w.type];let G;if(D){const J=Cs[D];G=oB.clone(J.uniforms)}else G=w.uniforms;return G}function O(w,D){let G;for(let J=0,$=f.length;J<$;J++){const se=f[J];if(se.cacheKey===D){G=se,++G.usedTimes;break}}return G===void 0&&(G=new iY(n,D,w,r),f.push(G)),G}function N(w){if(--w.usedTimes===0){const D=f.indexOf(w);f[D]=f[f.length-1],f.pop(),w.destroy()}}function L(w){c.remove(w)}function B(){c.dispose()}return{getParameters:S,getProgramCacheKey:v,getUniforms:b,acquireProgram:O,releaseProgram:N,releaseShaderCache:L,programs:f,dispose:B}}function lY(){let n=new WeakMap;function e(s){return n.has(s)}function t(s){let o=n.get(s);return o===void 0&&(o={},n.set(s,o)),o}function i(s){n.delete(s)}function a(s,o,c){n.get(s)[o]=c}function r(){n=new WeakMap}return{has:e,get:t,remove:i,update:a,dispose:r}}function cY(n,e){return n.groupOrder!==e.groupOrder?n.groupOrder-e.groupOrder:n.renderOrder!==e.renderOrder?n.renderOrder-e.renderOrder:n.material.id!==e.material.id?n.material.id-e.material.id:n.z!==e.z?n.z-e.z:n.id-e.id}function tD(n,e){return n.groupOrder!==e.groupOrder?n.groupOrder-e.groupOrder:n.renderOrder!==e.renderOrder?n.renderOrder-e.renderOrder:n.z!==e.z?e.z-n.z:n.id-e.id}function nD(){const n=[];let e=0;const t=[],i=[],a=[];function r(){e=0,t.length=0,i.length=0,a.length=0}function s(d,m,g,y,E,S){let v=n[e];return v===void 0?(v={id:d.id,object:d,geometry:m,material:g,groupOrder:y,renderOrder:d.renderOrder,z:E,group:S},n[e]=v):(v.id=d.id,v.object=d,v.geometry=m,v.material=g,v.groupOrder=y,v.renderOrder=d.renderOrder,v.z=E,v.group=S),e++,v}function o(d,m,g,y,E,S){const v=s(d,m,g,y,E,S);g.transmission>0?i.push(v):g.transparent===!0?a.push(v):t.push(v)}function c(d,m,g,y,E,S){const v=s(d,m,g,y,E,S);g.transmission>0?i.unshift(v):g.transparent===!0?a.unshift(v):t.unshift(v)}function h(d,m){t.length>1&&t.sort(d||cY),i.length>1&&i.sort(m||tD),a.length>1&&a.sort(m||tD)}function f(){for(let d=e,m=n.length;d=r.length?(s=new nD,r.push(s)):s=r[a],s}function t(){n=new WeakMap}return{get:e,dispose:t}}function hY(){const n={};return{get:function(e){if(n[e.id]!==void 0)return n[e.id];let t;switch(e.type){case"DirectionalLight":t={direction:new H,color:new dt};break;case"SpotLight":t={position:new H,direction:new H,color:new dt,distance:0,coneCos:0,penumbraCos:0,decay:0};break;case"PointLight":t={position:new H,color:new dt,distance:0,decay:0};break;case"HemisphereLight":t={direction:new H,skyColor:new dt,groundColor:new dt};break;case"RectAreaLight":t={color:new dt,position:new H,halfWidth:new H,halfHeight:new H};break}return n[e.id]=t,t}}}function fY(){const n={};return{get:function(e){if(n[e.id]!==void 0)return n[e.id];let t;switch(e.type){case"DirectionalLight":t={shadowIntensity:1,shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new Ee};break;case"SpotLight":t={shadowIntensity:1,shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new Ee};break;case"PointLight":t={shadowIntensity:1,shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new Ee,shadowCameraNear:1,shadowCameraFar:1e3};break}return n[e.id]=t,t}}}let dY=0;function pY(n,e){return(e.castShadow?2:0)-(n.castShadow?2:0)+(e.map?1:0)-(n.map?1:0)}function mY(n){const e=new hY,t=fY(),i={version:0,hash:{directionalLength:-1,pointLength:-1,spotLength:-1,rectAreaLength:-1,hemiLength:-1,numDirectionalShadows:-1,numPointShadows:-1,numSpotShadows:-1,numSpotMaps:-1,numLightProbes:-1},ambient:[0,0,0],probe:[],directional:[],directionalShadow:[],directionalShadowMap:[],directionalShadowMatrix:[],spot:[],spotLightMap:[],spotShadow:[],spotShadowMap:[],spotLightMatrix:[],rectArea:[],rectAreaLTC1:null,rectAreaLTC2:null,point:[],pointShadow:[],pointShadowMap:[],pointShadowMatrix:[],hemi:[],numSpotLightShadowsWithMaps:0,numLightProbes:0};for(let h=0;h<9;h++)i.probe.push(new H);const a=new H,r=new lt,s=new lt;function o(h){let f=0,d=0,m=0;for(let w=0;w<9;w++)i.probe[w].set(0,0,0);let g=0,y=0,E=0,S=0,v=0,_=0,A=0,b=0,O=0,N=0,L=0;h.sort(pY);for(let w=0,D=h.length;w0&&(n.has("OES_texture_float_linear")===!0?(i.rectAreaLTC1=yt.LTC_FLOAT_1,i.rectAreaLTC2=yt.LTC_FLOAT_2):(i.rectAreaLTC1=yt.LTC_HALF_1,i.rectAreaLTC2=yt.LTC_HALF_2)),i.ambient[0]=f,i.ambient[1]=d,i.ambient[2]=m;const B=i.hash;(B.directionalLength!==g||B.pointLength!==y||B.spotLength!==E||B.rectAreaLength!==S||B.hemiLength!==v||B.numDirectionalShadows!==_||B.numPointShadows!==A||B.numSpotShadows!==b||B.numSpotMaps!==O||B.numLightProbes!==L)&&(i.directional.length=g,i.spot.length=E,i.rectArea.length=S,i.point.length=y,i.hemi.length=v,i.directionalShadow.length=_,i.directionalShadowMap.length=_,i.pointShadow.length=A,i.pointShadowMap.length=A,i.spotShadow.length=b,i.spotShadowMap.length=b,i.directionalShadowMatrix.length=_,i.pointShadowMatrix.length=A,i.spotLightMatrix.length=b+O-N,i.spotLightMap.length=O,i.numSpotLightShadowsWithMaps=N,i.numLightProbes=L,B.directionalLength=g,B.pointLength=y,B.spotLength=E,B.rectAreaLength=S,B.hemiLength=v,B.numDirectionalShadows=_,B.numPointShadows=A,B.numSpotShadows=b,B.numSpotMaps=O,B.numLightProbes=L,i.version=dY++)}function c(h,f){let d=0,m=0,g=0,y=0,E=0;const S=f.matrixWorldInverse;for(let v=0,_=h.length;v<_;v++){const A=h[v];if(A.isDirectionalLight){const b=i.directional[d];b.direction.setFromMatrixPosition(A.matrixWorld),a.setFromMatrixPosition(A.target.matrixWorld),b.direction.sub(a),b.direction.transformDirection(S),d++}else if(A.isSpotLight){const b=i.spot[g];b.position.setFromMatrixPosition(A.matrixWorld),b.position.applyMatrix4(S),b.direction.setFromMatrixPosition(A.matrixWorld),a.setFromMatrixPosition(A.target.matrixWorld),b.direction.sub(a),b.direction.transformDirection(S),g++}else if(A.isRectAreaLight){const b=i.rectArea[y];b.position.setFromMatrixPosition(A.matrixWorld),b.position.applyMatrix4(S),s.identity(),r.copy(A.matrixWorld),r.premultiply(S),s.extractRotation(r),b.halfWidth.set(A.width*.5,0,0),b.halfHeight.set(0,A.height*.5,0),b.halfWidth.applyMatrix4(s),b.halfHeight.applyMatrix4(s),y++}else if(A.isPointLight){const b=i.point[m];b.position.setFromMatrixPosition(A.matrixWorld),b.position.applyMatrix4(S),m++}else if(A.isHemisphereLight){const b=i.hemi[E];b.direction.setFromMatrixPosition(A.matrixWorld),b.direction.transformDirection(S),E++}}}return{setup:o,setupView:c,state:i}}function iD(n){const e=new mY(n),t=[],i=[];function a(f){h.camera=f,t.length=0,i.length=0}function r(f){t.push(f)}function s(f){i.push(f)}function o(){e.setup(t)}function c(f){e.setupView(t,f)}const h={lightsArray:t,shadowsArray:i,camera:null,lights:e,transmissionRenderTarget:{}};return{init:a,state:h,setupLights:o,setupLightsView:c,pushLight:r,pushShadow:s}}function gY(n){let e=new WeakMap;function t(a,r=0){const s=e.get(a);let o;return s===void 0?(o=new iD(n),e.set(a,[o])):r>=s.length?(o=new iD(n),s.push(o)):o=s[r],o}function i(){e=new WeakMap}return{get:t,dispose:i}}const vY=`void main() { + gl_Position = vec4( position, 1.0 ); +}`,xY=`uniform sampler2D shadow_pass; +uniform vec2 resolution; +uniform float radius; +#include +void main() { + const float samples = float( VSM_SAMPLES ); + float mean = 0.0; + float squared_mean = 0.0; + float uvStride = samples <= 1.0 ? 0.0 : 2.0 / ( samples - 1.0 ); + float uvStart = samples <= 1.0 ? 0.0 : - 1.0; + for ( float i = 0.0; i < samples; i ++ ) { + float uvOffset = uvStart + i * uvStride; + #ifdef HORIZONTAL_PASS + vec2 distribution = unpackRGBATo2Half( texture2D( shadow_pass, ( gl_FragCoord.xy + vec2( uvOffset, 0.0 ) * radius ) / resolution ) ); + mean += distribution.x; + squared_mean += distribution.y * distribution.y + distribution.x * distribution.x; + #else + float depth = unpackRGBAToDepth( texture2D( shadow_pass, ( gl_FragCoord.xy + vec2( 0.0, uvOffset ) * radius ) / resolution ) ); + mean += depth; + squared_mean += depth * depth; + #endif + } + mean = mean / samples; + squared_mean = squared_mean / samples; + float std_dev = sqrt( squared_mean - mean * mean ); + gl_FragColor = pack2HalfToRGBA( vec2( mean, std_dev ) ); +}`;function yY(n,e,t){let i=new Hd;const a=new Ee,r=new Ee,s=new Yt,o=new eb({depthPacking:Y5}),c=new tb,h={},f=t.maxTextureSize,d={[os]:Wi,[Wi]:os,[da]:da},m=new Di({defines:{VSM_SAMPLES:8},uniforms:{shadow_pass:{value:null},resolution:{value:new Ee},radius:{value:4}},vertexShader:vY,fragmentShader:xY}),g=m.clone();g.defines.HORIZONTAL_PASS=1;const y=new Xt;y.setAttribute("position",new pn(new Float32Array([-1,-1,.5,3,-1,.5,-1,3,.5]),3));const E=new Xn(y,m),S=this;this.enabled=!1,this.autoUpdate=!0,this.needsUpdate=!1,this.type=fy;let v=this.type;this.render=function(N,L,B){if(S.enabled===!1||S.autoUpdate===!1&&S.needsUpdate===!1||N.length===0)return;const w=n.getRenderTarget(),D=n.getActiveCubeFace(),G=n.getActiveMipmapLevel(),J=n.state;J.setBlending(ga),J.buffers.depth.getReversed()===!0?J.buffers.color.setClear(0,0,0,0):J.buffers.color.setClear(1,1,1,1),J.buffers.depth.setTest(!0),J.setScissorTest(!1);const $=v!==Es&&this.type===Es,se=v===Es&&this.type!==Es;for(let le=0,q=N.length;lef||a.y>f)&&(a.x>f&&(r.x=Math.floor(f/de.x),a.x=r.x*de.x,ee.mapSize.x=r.x),a.y>f&&(r.y=Math.floor(f/de.y),a.y=r.y*de.y,ee.mapSize.y=r.y)),ee.map===null||$===!0||se===!0){const Pe=this.type!==Es?{minFilter:$n,magFilter:$n}:{};ee.map!==null&&ee.map.dispose(),ee.map=new oi(a.x,a.y,Pe),ee.map.texture.name=te.name+".shadowMap",ee.camera.updateProjectionMatrix()}n.setRenderTarget(ee.map),n.clear();const ue=ee.getViewportCount();for(let Pe=0;Pe0||L.map&&L.alphaTest>0||L.alphaToCoverage===!0){const J=D.uuid,$=L.uuid;let se=h[J];se===void 0&&(se={},h[J]=se);let le=se[$];le===void 0&&(le=D.clone(),se[$]=le,L.addEventListener("dispose",O)),D=le}if(D.visible=L.visible,D.wireframe=L.wireframe,w===Es?D.side=L.shadowSide!==null?L.shadowSide:L.side:D.side=L.shadowSide!==null?L.shadowSide:d[L.side],D.alphaMap=L.alphaMap,D.alphaTest=L.alphaToCoverage===!0?.5:L.alphaTest,D.map=L.map,D.clipShadows=L.clipShadows,D.clippingPlanes=L.clippingPlanes,D.clipIntersection=L.clipIntersection,D.displacementMap=L.displacementMap,D.displacementScale=L.displacementScale,D.displacementBias=L.displacementBias,D.wireframeLinewidth=L.wireframeLinewidth,D.linewidth=L.linewidth,B.isPointLight===!0&&D.isMeshDistanceMaterial===!0){const J=n.properties.get(D);J.light=B}return D}function b(N,L,B,w,D){if(N.visible===!1)return;if(N.layers.test(L.layers)&&(N.isMesh||N.isLine||N.isPoints)&&(N.castShadow||N.receiveShadow&&D===Es)&&(!N.frustumCulled||i.intersectsObject(N))){N.modelViewMatrix.multiplyMatrices(B.matrixWorldInverse,N.matrixWorld);const $=e.update(N),se=N.material;if(Array.isArray(se)){const le=$.groups;for(let q=0,te=le.length;q=1):ee.indexOf("OpenGL ES")!==-1&&(te=parseFloat(/^OpenGL ES (\d)/.exec(ee)[1]),q=te>=2);let de=null,ue={};const Pe=n.getParameter(n.SCISSOR_BOX),He=n.getParameter(n.VIEWPORT),Ke=new Yt().fromArray(Pe),nt=new Yt().fromArray(He);function xt(K,Se,_e,it){const tt=new Uint8Array(4),We=n.createTexture();n.bindTexture(K,We),n.texParameteri(K,n.TEXTURE_MIN_FILTER,n.NEAREST),n.texParameteri(K,n.TEXTURE_MAG_FILTER,n.NEAREST);for(let gt=0;gt<_e;gt++)K===n.TEXTURE_3D||K===n.TEXTURE_2D_ARRAY?n.texImage3D(Se,0,n.RGBA,1,1,it,0,n.RGBA,n.UNSIGNED_BYTE,tt):n.texImage2D(Se+gt,0,n.RGBA,1,1,0,n.RGBA,n.UNSIGNED_BYTE,tt);return We}const fe={};fe[n.TEXTURE_2D]=xt(n.TEXTURE_2D,n.TEXTURE_2D,1),fe[n.TEXTURE_CUBE_MAP]=xt(n.TEXTURE_CUBE_MAP,n.TEXTURE_CUBE_MAP_POSITIVE_X,6),fe[n.TEXTURE_2D_ARRAY]=xt(n.TEXTURE_2D_ARRAY,n.TEXTURE_2D_ARRAY,1,1),fe[n.TEXTURE_3D]=xt(n.TEXTURE_3D,n.TEXTURE_3D,1,1),r.setClear(0,0,0,1),s.setClear(1),o.setClear(0),Be(n.DEPTH_TEST),s.setFunc(zu),Ue(!1),ze(bE),Be(n.CULL_FACE),Re(ga);function Be(K){f[K]!==!0&&(n.enable(K),f[K]=!0)}function Je(K){f[K]!==!1&&(n.disable(K),f[K]=!1)}function ve(K,Se){return d[K]!==Se?(n.bindFramebuffer(K,Se),d[K]=Se,K===n.DRAW_FRAMEBUFFER&&(d[n.FRAMEBUFFER]=Se),K===n.FRAMEBUFFER&&(d[n.DRAW_FRAMEBUFFER]=Se),!0):!1}function at(K,Se){let _e=g,it=!1;if(K){_e=m.get(Se),_e===void 0&&(_e=[],m.set(Se,_e));const tt=K.textures;if(_e.length!==tt.length||_e[0]!==n.COLOR_ATTACHMENT0){for(let We=0,gt=tt.length;We"u"?!1:/OculusBrowser/g.test(navigator.userAgent),h=new Ee,f=new WeakMap;let d;const m=new WeakMap;let g=!1;try{g=typeof OffscreenCanvas<"u"&&new OffscreenCanvas(1,1).getContext("2d")!==null}catch{}function y(j,P){return g?new OffscreenCanvas(j,P):a0("canvas")}function E(j,P,pe){let Ie=1;const Ge=mt(j);if((Ge.width>pe||Ge.height>pe)&&(Ie=pe/Math.max(Ge.width,Ge.height)),Ie<1)if(typeof HTMLImageElement<"u"&&j instanceof HTMLImageElement||typeof HTMLCanvasElement<"u"&&j instanceof HTMLCanvasElement||typeof ImageBitmap<"u"&&j instanceof ImageBitmap||typeof VideoFrame<"u"&&j instanceof VideoFrame){const we=Math.floor(Ie*Ge.width),Tt=Math.floor(Ie*Ge.height);d===void 0&&(d=y(we,Tt));const ut=P?y(we,Tt):d;return ut.width=we,ut.height=Tt,ut.getContext("2d").drawImage(j,0,0,we,Tt),_t("WebGLRenderer: Texture has been resized from ("+Ge.width+"x"+Ge.height+") to ("+we+"x"+Tt+")."),ut}else return"data"in j&&_t("WebGLRenderer: Image in DataTexture is too big ("+Ge.width+"x"+Ge.height+")."),j;return j}function S(j){return j.generateMipmaps}function v(j){n.generateMipmap(j)}function _(j){return j.isWebGLCubeRenderTarget?n.TEXTURE_CUBE_MAP:j.isWebGL3DRenderTarget?n.TEXTURE_3D:j.isWebGLArrayRenderTarget||j.isCompressedArrayTexture?n.TEXTURE_2D_ARRAY:n.TEXTURE_2D}function A(j,P,pe,Ie,Ge=!1){if(j!==null){if(n[j]!==void 0)return n[j];_t("WebGLRenderer: Attempt to use non-existing WebGL internal format '"+j+"'")}let we=P;if(P===n.RED&&(pe===n.FLOAT&&(we=n.R32F),pe===n.HALF_FLOAT&&(we=n.R16F),pe===n.UNSIGNED_BYTE&&(we=n.R8)),P===n.RED_INTEGER&&(pe===n.UNSIGNED_BYTE&&(we=n.R8UI),pe===n.UNSIGNED_SHORT&&(we=n.R16UI),pe===n.UNSIGNED_INT&&(we=n.R32UI),pe===n.BYTE&&(we=n.R8I),pe===n.SHORT&&(we=n.R16I),pe===n.INT&&(we=n.R32I)),P===n.RG&&(pe===n.FLOAT&&(we=n.RG32F),pe===n.HALF_FLOAT&&(we=n.RG16F),pe===n.UNSIGNED_BYTE&&(we=n.RG8)),P===n.RG_INTEGER&&(pe===n.UNSIGNED_BYTE&&(we=n.RG8UI),pe===n.UNSIGNED_SHORT&&(we=n.RG16UI),pe===n.UNSIGNED_INT&&(we=n.RG32UI),pe===n.BYTE&&(we=n.RG8I),pe===n.SHORT&&(we=n.RG16I),pe===n.INT&&(we=n.RG32I)),P===n.RGB_INTEGER&&(pe===n.UNSIGNED_BYTE&&(we=n.RGB8UI),pe===n.UNSIGNED_SHORT&&(we=n.RGB16UI),pe===n.UNSIGNED_INT&&(we=n.RGB32UI),pe===n.BYTE&&(we=n.RGB8I),pe===n.SHORT&&(we=n.RGB16I),pe===n.INT&&(we=n.RGB32I)),P===n.RGBA_INTEGER&&(pe===n.UNSIGNED_BYTE&&(we=n.RGBA8UI),pe===n.UNSIGNED_SHORT&&(we=n.RGBA16UI),pe===n.UNSIGNED_INT&&(we=n.RGBA32UI),pe===n.BYTE&&(we=n.RGBA8I),pe===n.SHORT&&(we=n.RGBA16I),pe===n.INT&&(we=n.RGBA32I)),P===n.RGB&&(pe===n.UNSIGNED_INT_5_9_9_9_REV&&(we=n.RGB9_E5),pe===n.UNSIGNED_INT_10F_11F_11F_REV&&(we=n.R11F_G11F_B10F)),P===n.RGBA){const Tt=Ge?n0:gn.getTransfer(Ie);pe===n.FLOAT&&(we=n.RGBA32F),pe===n.HALF_FLOAT&&(we=n.RGBA16F),pe===n.UNSIGNED_BYTE&&(we=Tt===Un?n.SRGB8_ALPHA8:n.RGBA8),pe===n.UNSIGNED_SHORT_4_4_4_4&&(we=n.RGBA4),pe===n.UNSIGNED_SHORT_5_5_5_1&&(we=n.RGB5_A1)}return(we===n.R16F||we===n.R32F||we===n.RG16F||we===n.RG32F||we===n.RGBA16F||we===n.RGBA32F)&&e.get("EXT_color_buffer_float"),we}function b(j,P){let pe;return j?P===null||P===ls||P===Vu?pe=n.DEPTH24_STENCIL8:P===Sn?pe=n.DEPTH32F_STENCIL8:P===Gu&&(pe=n.DEPTH24_STENCIL8,_t("DepthTexture: 16 bit depth attachment is not supported with stencil. Using 24-bit attachment.")):P===null||P===ls||P===Vu?pe=n.DEPTH_COMPONENT24:P===Sn?pe=n.DEPTH_COMPONENT32F:P===Gu&&(pe=n.DEPTH_COMPONENT16),pe}function O(j,P){return S(j)===!0||j.isFramebufferTexture&&j.minFilter!==$n&&j.minFilter!==Bt?Math.log2(Math.max(P.width,P.height))+1:j.mipmaps!==void 0&&j.mipmaps.length>0?j.mipmaps.length:j.isCompressedTexture&&Array.isArray(j.image)?P.mipmaps.length:1}function N(j){const P=j.target;P.removeEventListener("dispose",N),B(P),P.isVideoTexture&&f.delete(P)}function L(j){const P=j.target;P.removeEventListener("dispose",L),D(P)}function B(j){const P=i.get(j);if(P.__webglInit===void 0)return;const pe=j.source,Ie=m.get(pe);if(Ie){const Ge=Ie[P.__cacheKey];Ge.usedTimes--,Ge.usedTimes===0&&w(j),Object.keys(Ie).length===0&&m.delete(pe)}i.remove(j)}function w(j){const P=i.get(j);n.deleteTexture(P.__webglTexture);const pe=j.source,Ie=m.get(pe);delete Ie[P.__cacheKey],s.memory.textures--}function D(j){const P=i.get(j);if(j.depthTexture&&(j.depthTexture.dispose(),i.remove(j.depthTexture)),j.isWebGLCubeRenderTarget)for(let Ie=0;Ie<6;Ie++){if(Array.isArray(P.__webglFramebuffer[Ie]))for(let Ge=0;Ge=a.maxTextures&&_t("WebGLTextures: Trying to use "+j+" texture units while this GPU supports only "+a.maxTextures),G+=1,j}function se(j){const P=[];return P.push(j.wrapS),P.push(j.wrapT),P.push(j.wrapR||0),P.push(j.magFilter),P.push(j.minFilter),P.push(j.anisotropy),P.push(j.internalFormat),P.push(j.format),P.push(j.type),P.push(j.generateMipmaps),P.push(j.premultiplyAlpha),P.push(j.flipY),P.push(j.unpackAlignment),P.push(j.colorSpace),P.join()}function le(j,P){const pe=i.get(j);if(j.isVideoTexture&&ot(j),j.isRenderTargetTexture===!1&&j.isExternalTexture!==!0&&j.version>0&&pe.__version!==j.version){const Ie=j.image;if(Ie===null)_t("WebGLRenderer: Texture marked for update but no image data found.");else if(Ie.complete===!1)_t("WebGLRenderer: Texture marked for update but image is incomplete");else{fe(pe,j,P);return}}else j.isExternalTexture&&(pe.__webglTexture=j.sourceTexture?j.sourceTexture:null);t.bindTexture(n.TEXTURE_2D,pe.__webglTexture,n.TEXTURE0+P)}function q(j,P){const pe=i.get(j);if(j.isRenderTargetTexture===!1&&j.version>0&&pe.__version!==j.version){fe(pe,j,P);return}else j.isExternalTexture&&(pe.__webglTexture=j.sourceTexture?j.sourceTexture:null);t.bindTexture(n.TEXTURE_2D_ARRAY,pe.__webglTexture,n.TEXTURE0+P)}function te(j,P){const pe=i.get(j);if(j.isRenderTargetTexture===!1&&j.version>0&&pe.__version!==j.version){fe(pe,j,P);return}t.bindTexture(n.TEXTURE_3D,pe.__webglTexture,n.TEXTURE0+P)}function ee(j,P){const pe=i.get(j);if(j.version>0&&pe.__version!==j.version){Be(pe,j,P);return}t.bindTexture(n.TEXTURE_CUBE_MAP,pe.__webglTexture,n.TEXTURE0+P)}const de={[wi]:n.REPEAT,[Vn]:n.CLAMP_TO_EDGE,[fd]:n.MIRRORED_REPEAT},ue={[$n]:n.NEAREST,[dy]:n.NEAREST_MIPMAP_NEAREST,[gu]:n.NEAREST_MIPMAP_LINEAR,[Bt]:n.LINEAR,[Kf]:n.LINEAR_MIPMAP_NEAREST,[Sr]:n.LINEAR_MIPMAP_LINEAR},Pe={[Z5]:n.NEVER,[eB]:n.ALWAYS,[j5]:n.LESS,[B3]:n.LEQUAL,[K5]:n.EQUAL,[$5]:n.GEQUAL,[J5]:n.GREATER,[Q5]:n.NOTEQUAL};function He(j,P){if(P.type===Sn&&e.has("OES_texture_float_linear")===!1&&(P.magFilter===Bt||P.magFilter===Kf||P.magFilter===gu||P.magFilter===Sr||P.minFilter===Bt||P.minFilter===Kf||P.minFilter===gu||P.minFilter===Sr)&&_t("WebGLRenderer: Unable to use linear filtering with floating point textures. OES_texture_float_linear not supported on this device."),n.texParameteri(j,n.TEXTURE_WRAP_S,de[P.wrapS]),n.texParameteri(j,n.TEXTURE_WRAP_T,de[P.wrapT]),(j===n.TEXTURE_3D||j===n.TEXTURE_2D_ARRAY)&&n.texParameteri(j,n.TEXTURE_WRAP_R,de[P.wrapR]),n.texParameteri(j,n.TEXTURE_MAG_FILTER,ue[P.magFilter]),n.texParameteri(j,n.TEXTURE_MIN_FILTER,ue[P.minFilter]),P.compareFunction&&(n.texParameteri(j,n.TEXTURE_COMPARE_MODE,n.COMPARE_REF_TO_TEXTURE),n.texParameteri(j,n.TEXTURE_COMPARE_FUNC,Pe[P.compareFunction])),e.has("EXT_texture_filter_anisotropic")===!0){if(P.magFilter===$n||P.minFilter!==gu&&P.minFilter!==Sr||P.type===Sn&&e.has("OES_texture_float_linear")===!1)return;if(P.anisotropy>1||i.get(P).__currentAnisotropy){const pe=e.get("EXT_texture_filter_anisotropic");n.texParameterf(j,pe.TEXTURE_MAX_ANISOTROPY_EXT,Math.min(P.anisotropy,a.getMaxAnisotropy())),i.get(P).__currentAnisotropy=P.anisotropy}}}function Ke(j,P){let pe=!1;j.__webglInit===void 0&&(j.__webglInit=!0,P.addEventListener("dispose",N));const Ie=P.source;let Ge=m.get(Ie);Ge===void 0&&(Ge={},m.set(Ie,Ge));const we=se(P);if(we!==j.__cacheKey){Ge[we]===void 0&&(Ge[we]={texture:n.createTexture(),usedTimes:0},s.memory.textures++,pe=!0),Ge[we].usedTimes++;const Tt=Ge[j.__cacheKey];Tt!==void 0&&(Ge[j.__cacheKey].usedTimes--,Tt.usedTimes===0&&w(P)),j.__cacheKey=we,j.__webglTexture=Ge[we].texture}return pe}function nt(j,P,pe){return Math.floor(Math.floor(j/pe)/P)}function xt(j,P,pe,Ie){const we=j.updateRanges;if(we.length===0)t.texSubImage2D(n.TEXTURE_2D,0,0,0,P.width,P.height,pe,Ie,P.data);else{we.sort((ke,Ve)=>ke.start-Ve.start);let Tt=0;for(let ke=1;ke0){K&&Se&&t.texStorage2D(n.TEXTURE_2D,it,ne,Le[0].width,Le[0].height);for(let tt=0,We=Le.length;tt0){const gt=PE(me.width,me.height,P.format,P.type);for(const Nt of P.layerUpdates){const $t=me.data.subarray(Nt*gt/me.data.BYTES_PER_ELEMENT,(Nt+1)*gt/me.data.BYTES_PER_ELEMENT);t.compressedTexSubImage3D(n.TEXTURE_2D_ARRAY,tt,0,0,Nt,me.width,me.height,1,Ve,$t)}P.clearLayerUpdates()}else t.compressedTexSubImage3D(n.TEXTURE_2D_ARRAY,tt,0,0,0,me.width,me.height,ke.depth,Ve,me.data)}else t.compressedTexImage3D(n.TEXTURE_2D_ARRAY,tt,ne,me.width,me.height,ke.depth,0,me.data,0,0);else _t("WebGLRenderer: Attempt to load unsupported compressed texture format in .uploadTexture()");else K?_e&&t.texSubImage3D(n.TEXTURE_2D_ARRAY,tt,0,0,0,me.width,me.height,ke.depth,Ve,St,me.data):t.texImage3D(n.TEXTURE_2D_ARRAY,tt,ne,me.width,me.height,ke.depth,0,Ve,St,me.data)}else{K&&Se&&t.texStorage2D(n.TEXTURE_2D,it,ne,Le[0].width,Le[0].height);for(let tt=0,We=Le.length;tt0){const tt=PE(ke.width,ke.height,P.format,P.type);for(const We of P.layerUpdates){const gt=ke.data.subarray(We*tt/ke.data.BYTES_PER_ELEMENT,(We+1)*tt/ke.data.BYTES_PER_ELEMENT);t.texSubImage3D(n.TEXTURE_2D_ARRAY,0,0,0,We,ke.width,ke.height,1,Ve,St,gt)}P.clearLayerUpdates()}else t.texSubImage3D(n.TEXTURE_2D_ARRAY,0,0,0,0,ke.width,ke.height,ke.depth,Ve,St,ke.data)}else t.texImage3D(n.TEXTURE_2D_ARRAY,0,ne,ke.width,ke.height,ke.depth,0,Ve,St,ke.data);else if(P.isData3DTexture)K?(Se&&t.texStorage3D(n.TEXTURE_3D,it,ne,ke.width,ke.height,ke.depth),_e&&t.texSubImage3D(n.TEXTURE_3D,0,0,0,0,ke.width,ke.height,ke.depth,Ve,St,ke.data)):t.texImage3D(n.TEXTURE_3D,0,ne,ke.width,ke.height,ke.depth,0,Ve,St,ke.data);else if(P.isFramebufferTexture){if(Se)if(K)t.texStorage2D(n.TEXTURE_2D,it,ne,ke.width,ke.height);else{let tt=ke.width,We=ke.height;for(let gt=0;gt>=1,We>>=1}}else if(Le.length>0){if(K&&Se){const tt=mt(Le[0]);t.texStorage2D(n.TEXTURE_2D,it,ne,tt.width,tt.height)}for(let tt=0,We=Le.length;tt0&&it++;const We=mt(Ve[0]);t.texStorage2D(n.TEXTURE_CUBE_MAP,it,Le,We.width,We.height)}for(let We=0;We<6;We++)if(ke){K?_e&&t.texSubImage2D(n.TEXTURE_CUBE_MAP_POSITIVE_X+We,0,0,0,Ve[We].width,Ve[We].height,ne,me,Ve[We].data):t.texImage2D(n.TEXTURE_CUBE_MAP_POSITIVE_X+We,0,Le,Ve[We].width,Ve[We].height,0,ne,me,Ve[We].data);for(let gt=0;gt>we),St=Math.max(1,P.height>>we);Ge===n.TEXTURE_3D||Ge===n.TEXTURE_2D_ARRAY?t.texImage3D(Ge,we,wt,Ve,St,P.depth,0,Tt,ut,null):t.texImage2D(Ge,we,wt,Ve,St,0,Tt,ut,null)}t.bindFramebuffer(n.FRAMEBUFFER,j),Ye(P)?o.framebufferTexture2DMultisampleEXT(n.FRAMEBUFFER,Ie,Ge,ke.__webglTexture,0,Qe(P)):(Ge===n.TEXTURE_2D||Ge>=n.TEXTURE_CUBE_MAP_POSITIVE_X&&Ge<=n.TEXTURE_CUBE_MAP_NEGATIVE_Z)&&n.framebufferTexture2D(n.FRAMEBUFFER,Ie,Ge,ke.__webglTexture,we),t.bindFramebuffer(n.FRAMEBUFFER,null)}function ve(j,P,pe){if(n.bindRenderbuffer(n.RENDERBUFFER,j),P.depthBuffer){const Ie=P.depthTexture,Ge=Ie&&Ie.isDepthTexture?Ie.type:null,we=b(P.stencilBuffer,Ge),Tt=P.stencilBuffer?n.DEPTH_STENCIL_ATTACHMENT:n.DEPTH_ATTACHMENT,ut=Qe(P);Ye(P)?o.renderbufferStorageMultisampleEXT(n.RENDERBUFFER,ut,we,P.width,P.height):pe?n.renderbufferStorageMultisample(n.RENDERBUFFER,ut,we,P.width,P.height):n.renderbufferStorage(n.RENDERBUFFER,we,P.width,P.height),n.framebufferRenderbuffer(n.FRAMEBUFFER,Tt,n.RENDERBUFFER,j)}else{const Ie=P.textures;for(let Ge=0;Ge{delete P.__boundDepthTexture,delete P.__depthDisposeCallback,Ie.removeEventListener("dispose",Ge)};Ie.addEventListener("dispose",Ge),P.__depthDisposeCallback=Ge}P.__boundDepthTexture=Ie}if(j.depthTexture&&!P.__autoAllocateDepthBuffer){if(pe)throw new Error("target.depthTexture not supported in Cube render targets");const Ie=j.texture.mipmaps;Ie&&Ie.length>0?at(P.__webglFramebuffer[0],j):at(P.__webglFramebuffer,j)}else if(pe){P.__webglDepthbuffer=[];for(let Ie=0;Ie<6;Ie++)if(t.bindFramebuffer(n.FRAMEBUFFER,P.__webglFramebuffer[Ie]),P.__webglDepthbuffer[Ie]===void 0)P.__webglDepthbuffer[Ie]=n.createRenderbuffer(),ve(P.__webglDepthbuffer[Ie],j,!1);else{const Ge=j.stencilBuffer?n.DEPTH_STENCIL_ATTACHMENT:n.DEPTH_ATTACHMENT,we=P.__webglDepthbuffer[Ie];n.bindRenderbuffer(n.RENDERBUFFER,we),n.framebufferRenderbuffer(n.FRAMEBUFFER,Ge,n.RENDERBUFFER,we)}}else{const Ie=j.texture.mipmaps;if(Ie&&Ie.length>0?t.bindFramebuffer(n.FRAMEBUFFER,P.__webglFramebuffer[0]):t.bindFramebuffer(n.FRAMEBUFFER,P.__webglFramebuffer),P.__webglDepthbuffer===void 0)P.__webglDepthbuffer=n.createRenderbuffer(),ve(P.__webglDepthbuffer,j,!1);else{const Ge=j.stencilBuffer?n.DEPTH_STENCIL_ATTACHMENT:n.DEPTH_ATTACHMENT,we=P.__webglDepthbuffer;n.bindRenderbuffer(n.RENDERBUFFER,we),n.framebufferRenderbuffer(n.FRAMEBUFFER,Ge,n.RENDERBUFFER,we)}}t.bindFramebuffer(n.FRAMEBUFFER,null)}function ht(j,P,pe){const Ie=i.get(j);P!==void 0&&Je(Ie.__webglFramebuffer,j,j.texture,n.COLOR_ATTACHMENT0,n.TEXTURE_2D,0),pe!==void 0&&ft(j)}function et(j){const P=j.texture,pe=i.get(j),Ie=i.get(P);j.addEventListener("dispose",L);const Ge=j.textures,we=j.isWebGLCubeRenderTarget===!0,Tt=Ge.length>1;if(Tt||(Ie.__webglTexture===void 0&&(Ie.__webglTexture=n.createTexture()),Ie.__version=P.version,s.memory.textures++),we){pe.__webglFramebuffer=[];for(let ut=0;ut<6;ut++)if(P.mipmaps&&P.mipmaps.length>0){pe.__webglFramebuffer[ut]=[];for(let wt=0;wt0){pe.__webglFramebuffer=[];for(let ut=0;ut0&&Ye(j)===!1){pe.__webglMultisampledFramebuffer=n.createFramebuffer(),pe.__webglColorRenderbuffer=[],t.bindFramebuffer(n.FRAMEBUFFER,pe.__webglMultisampledFramebuffer);for(let ut=0;ut0)for(let wt=0;wt0)for(let wt=0;wt0){if(Ye(j)===!1){const P=j.textures,pe=j.width,Ie=j.height;let Ge=n.COLOR_BUFFER_BIT;const we=j.stencilBuffer?n.DEPTH_STENCIL_ATTACHMENT:n.DEPTH_ATTACHMENT,Tt=i.get(j),ut=P.length>1;if(ut)for(let bt=0;bt0?t.bindFramebuffer(n.DRAW_FRAMEBUFFER,Tt.__webglFramebuffer[0]):t.bindFramebuffer(n.DRAW_FRAMEBUFFER,Tt.__webglFramebuffer);for(let bt=0;bt0&&e.has("WEBGL_multisampled_render_to_texture")===!0&&P.__useRenderToTexture!==!1}function ot(j){const P=s.render.frame;f.get(j)!==P&&(f.set(j,P),j.update())}function rt(j,P){const pe=j.colorSpace,Ie=j.format,Ge=j.type;return j.isCompressedTexture===!0||j.isVideoTexture===!0||pe!==Fi&&pe!==pa&&(gn.getTransfer(pe)===Un?(Ie!==Rn||Ge!==xi)&&_t("WebGLTextures: sRGB encoded textures have to use RGBAFormat and UnsignedByteType."):qt("WebGLTextures: Unsupported texture color space:",pe)),P}function mt(j){return typeof HTMLImageElement<"u"&&j instanceof HTMLImageElement?(h.width=j.naturalWidth||j.width,h.height=j.naturalHeight||j.height):typeof VideoFrame<"u"&&j instanceof VideoFrame?(h.width=j.displayWidth,h.height=j.displayHeight):(h.width=j.width,h.height=j.height),h}this.allocateTextureUnit=$,this.resetTextureUnits=J,this.setTexture2D=le,this.setTexture2DArray=q,this.setTexture3D=te,this.setTextureCube=ee,this.rebindTextures=ht,this.setupRenderTarget=et,this.updateRenderTargetMipmap=Re,this.updateMultisampleRenderTarget=ze,this.setupDepthRenderbuffer=ft,this.setupFrameBufferTexture=Je,this.useMultisampledRTT=Ye}function n8(n,e){function t(i,a=pa){let r;const s=gn.getTransfer(a);if(i===xi)return n.UNSIGNED_BYTE;if(i===py)return n.UNSIGNED_SHORT_4_4_4_4;if(i===my)return n.UNSIGNED_SHORT_5_5_5_1;if(i===R3)return n.UNSIGNED_INT_5_9_9_9_REV;if(i===w3)return n.UNSIGNED_INT_10F_11F_11F_REV;if(i===M0)return n.BYTE;if(i===C0)return n.SHORT;if(i===Gu)return n.UNSIGNED_SHORT;if(i===Fd)return n.INT;if(i===ls)return n.UNSIGNED_INT;if(i===Sn)return n.FLOAT;if(i===sn)return n.HALF_FLOAT;if(i===D3)return n.ALPHA;if(i===N3)return n.RGB;if(i===Rn)return n.RGBA;if(i===dd)return n.DEPTH_COMPONENT;if(i===ku)return n.DEPTH_STENCIL;if(i===Ar)return n.RED;if(i===R0)return n.RED_INTEGER;if(i===zo)return n.RG;if(i===gy)return n.RG_INTEGER;if(i===vy)return n.RGBA_INTEGER;if(i===Em||i===Tm||i===bm||i===Mm)if(s===Un)if(r=e.get("WEBGL_compressed_texture_s3tc_srgb"),r!==null){if(i===Em)return r.COMPRESSED_SRGB_S3TC_DXT1_EXT;if(i===Tm)return r.COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT;if(i===bm)return r.COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT;if(i===Mm)return r.COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT}else return null;else if(r=e.get("WEBGL_compressed_texture_s3tc"),r!==null){if(i===Em)return r.COMPRESSED_RGB_S3TC_DXT1_EXT;if(i===Tm)return r.COMPRESSED_RGBA_S3TC_DXT1_EXT;if(i===bm)return r.COMPRESSED_RGBA_S3TC_DXT3_EXT;if(i===Mm)return r.COMPRESSED_RGBA_S3TC_DXT5_EXT}else return null;if(i===Q1||i===$1||i===ex||i===tx)if(r=e.get("WEBGL_compressed_texture_pvrtc"),r!==null){if(i===Q1)return r.COMPRESSED_RGB_PVRTC_4BPPV1_IMG;if(i===$1)return r.COMPRESSED_RGB_PVRTC_2BPPV1_IMG;if(i===ex)return r.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG;if(i===tx)return r.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG}else return null;if(i===nx||i===ix||i===ax)if(r=e.get("WEBGL_compressed_texture_etc"),r!==null){if(i===nx||i===ix)return s===Un?r.COMPRESSED_SRGB8_ETC2:r.COMPRESSED_RGB8_ETC2;if(i===ax)return s===Un?r.COMPRESSED_SRGB8_ALPHA8_ETC2_EAC:r.COMPRESSED_RGBA8_ETC2_EAC}else return null;if(i===rx||i===sx||i===ox||i===lx||i===cx||i===ux||i===hx||i===fx||i===dx||i===px||i===mx||i===gx||i===vx||i===xx)if(r=e.get("WEBGL_compressed_texture_astc"),r!==null){if(i===rx)return s===Un?r.COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR:r.COMPRESSED_RGBA_ASTC_4x4_KHR;if(i===sx)return s===Un?r.COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR:r.COMPRESSED_RGBA_ASTC_5x4_KHR;if(i===ox)return s===Un?r.COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR:r.COMPRESSED_RGBA_ASTC_5x5_KHR;if(i===lx)return s===Un?r.COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR:r.COMPRESSED_RGBA_ASTC_6x5_KHR;if(i===cx)return s===Un?r.COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR:r.COMPRESSED_RGBA_ASTC_6x6_KHR;if(i===ux)return s===Un?r.COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR:r.COMPRESSED_RGBA_ASTC_8x5_KHR;if(i===hx)return s===Un?r.COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR:r.COMPRESSED_RGBA_ASTC_8x6_KHR;if(i===fx)return s===Un?r.COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR:r.COMPRESSED_RGBA_ASTC_8x8_KHR;if(i===dx)return s===Un?r.COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR:r.COMPRESSED_RGBA_ASTC_10x5_KHR;if(i===px)return s===Un?r.COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR:r.COMPRESSED_RGBA_ASTC_10x6_KHR;if(i===mx)return s===Un?r.COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR:r.COMPRESSED_RGBA_ASTC_10x8_KHR;if(i===gx)return s===Un?r.COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR:r.COMPRESSED_RGBA_ASTC_10x10_KHR;if(i===vx)return s===Un?r.COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR:r.COMPRESSED_RGBA_ASTC_12x10_KHR;if(i===xx)return s===Un?r.COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR:r.COMPRESSED_RGBA_ASTC_12x12_KHR}else return null;if(i===yx||i===_x||i===Sx)if(r=e.get("EXT_texture_compression_bptc"),r!==null){if(i===yx)return s===Un?r.COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT:r.COMPRESSED_RGBA_BPTC_UNORM_EXT;if(i===_x)return r.COMPRESSED_RGB_BPTC_SIGNED_FLOAT_EXT;if(i===Sx)return r.COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_EXT}else return null;if(i===Ax||i===Ex||i===Tx||i===bx)if(r=e.get("EXT_texture_compression_rgtc"),r!==null){if(i===Ax)return r.COMPRESSED_RED_RGTC1_EXT;if(i===Ex)return r.COMPRESSED_SIGNED_RED_RGTC1_EXT;if(i===Tx)return r.COMPRESSED_RED_GREEN_RGTC2_EXT;if(i===bx)return r.COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT}else return null;return i===Vu?n.UNSIGNED_INT_24_8:n[i]!==void 0?n[i]:null}return{convert:t}}const EY=` +void main() { + + gl_Position = vec4( position, 1.0 ); + +}`,TY=` +uniform sampler2DArray depthColor; +uniform float depthWidth; +uniform float depthHeight; + +void main() { + + vec2 coord = vec2( gl_FragCoord.x / depthWidth, gl_FragCoord.y / depthHeight ); + + if ( coord.x >= 1.0 ) { + + gl_FragDepth = texture( depthColor, vec3( coord.x - 1.0, coord.y, 1 ) ).r; + + } else { + + gl_FragDepth = texture( depthColor, vec3( coord.x, coord.y, 0 ) ).r; + + } + +}`;class bY{constructor(){this.texture=null,this.mesh=null,this.depthNear=0,this.depthFar=0}init(e,t){if(this.texture===null){const i=new Y3(e.texture);(e.depthNear!==t.depthNear||e.depthFar!==t.depthFar)&&(this.depthNear=e.depthNear,this.depthFar=e.depthFar),this.texture=i}}getMesh(e){if(this.texture!==null&&this.mesh===null){const t=e.cameras[0].viewport,i=new Di({vertexShader:EY,fragmentShader:TY,uniforms:{depthColor:{value:this.texture},depthWidth:{value:t.z},depthHeight:{value:t.w}}});this.mesh=new Xn(new Us(20,20),i)}return this.mesh}reset(){this.texture=null,this.mesh=null}getDepthTexture(){return this.texture}}class MY extends tr{constructor(e,t){super();const i=this;let a=null,r=1,s=null,o="local-floor",c=1,h=null,f=null,d=null,m=null,g=null,y=null;const E=typeof XRWebGLBinding<"u",S=new bY,v={},_=t.getContextAttributes();let A=null,b=null;const O=[],N=[],L=new Ee;let B=null;const w=new Jn;w.viewport=new Yt;const D=new Jn;D.viewport=new Yt;const G=[w,D],J=new YB;let $=null,se=null;this.cameraAutoUpdate=!0,this.enabled=!1,this.isPresenting=!1,this.getController=function(fe){let Be=O[fe];return Be===void 0&&(Be=new h1,O[fe]=Be),Be.getTargetRaySpace()},this.getControllerGrip=function(fe){let Be=O[fe];return Be===void 0&&(Be=new h1,O[fe]=Be),Be.getGripSpace()},this.getHand=function(fe){let Be=O[fe];return Be===void 0&&(Be=new h1,O[fe]=Be),Be.getHandSpace()};function le(fe){const Be=N.indexOf(fe.inputSource);if(Be===-1)return;const Je=O[Be];Je!==void 0&&(Je.update(fe.inputSource,fe.frame,h||s),Je.dispatchEvent({type:fe.type,data:fe.inputSource}))}function q(){a.removeEventListener("select",le),a.removeEventListener("selectstart",le),a.removeEventListener("selectend",le),a.removeEventListener("squeeze",le),a.removeEventListener("squeezestart",le),a.removeEventListener("squeezeend",le),a.removeEventListener("end",q),a.removeEventListener("inputsourceschange",te);for(let fe=0;fe=0&&(N[ve]=null,O[ve].disconnect(Je))}for(let Be=0;Be=N.length){N.push(Je),ve=ft;break}else if(N[ft]===null){N[ft]=Je,ve=ft;break}if(ve===-1)break}const at=O[ve];at&&at.connect(Je)}}const ee=new H,de=new H;function ue(fe,Be,Je){ee.setFromMatrixPosition(Be.matrixWorld),de.setFromMatrixPosition(Je.matrixWorld);const ve=ee.distanceTo(de),at=Be.projectionMatrix.elements,ft=Je.projectionMatrix.elements,ht=at[14]/(at[10]-1),et=at[14]/(at[10]+1),Re=(at[9]+1)/at[5],Z=(at[9]-1)/at[5],Ue=(at[8]-1)/at[0],ze=(ft[8]+1)/ft[0],Qe=ht*Ue,Ye=ht*ze,ot=ve/(-Ue+ze),rt=ot*-Ue;if(Be.matrixWorld.decompose(fe.position,fe.quaternion,fe.scale),fe.translateX(rt),fe.translateZ(ot),fe.matrixWorld.compose(fe.position,fe.quaternion,fe.scale),fe.matrixWorldInverse.copy(fe.matrixWorld).invert(),at[10]===-1)fe.projectionMatrix.copy(Be.projectionMatrix),fe.projectionMatrixInverse.copy(Be.projectionMatrixInverse);else{const mt=ht+ot,j=et+ot,P=Qe-rt,pe=Ye+(ve-rt),Ie=Re*et/j*mt,Ge=Z*et/j*mt;fe.projectionMatrix.makePerspective(P,pe,Ie,Ge,mt,j),fe.projectionMatrixInverse.copy(fe.projectionMatrix).invert()}}function Pe(fe,Be){Be===null?fe.matrixWorld.copy(fe.matrix):fe.matrixWorld.multiplyMatrices(Be.matrixWorld,fe.matrix),fe.matrixWorldInverse.copy(fe.matrixWorld).invert()}this.updateCamera=function(fe){if(a===null)return;let Be=fe.near,Je=fe.far;S.texture!==null&&(S.depthNear>0&&(Be=S.depthNear),S.depthFar>0&&(Je=S.depthFar)),J.near=D.near=w.near=Be,J.far=D.far=w.far=Je,($!==J.near||se!==J.far)&&(a.updateRenderState({depthNear:J.near,depthFar:J.far}),$=J.near,se=J.far),J.layers.mask=fe.layers.mask|6,w.layers.mask=J.layers.mask&3,D.layers.mask=J.layers.mask&5;const ve=fe.parent,at=J.cameras;Pe(J,ve);for(let ft=0;ft0&&(S.alphaTest.value=v.alphaTest);const _=e.get(v),A=_.envMap,b=_.envMapRotation;A&&(S.envMap.value=A,iu.copy(b),iu.x*=-1,iu.y*=-1,iu.z*=-1,A.isCubeTexture&&A.isRenderTargetTexture===!1&&(iu.y*=-1,iu.z*=-1),S.envMapRotation.value.setFromMatrix4(CY.makeRotationFromEuler(iu)),S.flipEnvMap.value=A.isCubeTexture&&A.isRenderTargetTexture===!1?-1:1,S.reflectivity.value=v.reflectivity,S.ior.value=v.ior,S.refractionRatio.value=v.refractionRatio),v.lightMap&&(S.lightMap.value=v.lightMap,S.lightMapIntensity.value=v.lightMapIntensity,t(v.lightMap,S.lightMapTransform)),v.aoMap&&(S.aoMap.value=v.aoMap,S.aoMapIntensity.value=v.aoMapIntensity,t(v.aoMap,S.aoMapTransform))}function s(S,v){S.diffuse.value.copy(v.color),S.opacity.value=v.opacity,v.map&&(S.map.value=v.map,t(v.map,S.mapTransform))}function o(S,v){S.dashSize.value=v.dashSize,S.totalSize.value=v.dashSize+v.gapSize,S.scale.value=v.scale}function c(S,v,_,A){S.diffuse.value.copy(v.color),S.opacity.value=v.opacity,S.size.value=v.size*_,S.scale.value=A*.5,v.map&&(S.map.value=v.map,t(v.map,S.uvTransform)),v.alphaMap&&(S.alphaMap.value=v.alphaMap,t(v.alphaMap,S.alphaMapTransform)),v.alphaTest>0&&(S.alphaTest.value=v.alphaTest)}function h(S,v){S.diffuse.value.copy(v.color),S.opacity.value=v.opacity,S.rotation.value=v.rotation,v.map&&(S.map.value=v.map,t(v.map,S.mapTransform)),v.alphaMap&&(S.alphaMap.value=v.alphaMap,t(v.alphaMap,S.alphaMapTransform)),v.alphaTest>0&&(S.alphaTest.value=v.alphaTest)}function f(S,v){S.specular.value.copy(v.specular),S.shininess.value=Math.max(v.shininess,1e-4)}function d(S,v){v.gradientMap&&(S.gradientMap.value=v.gradientMap)}function m(S,v){S.metalness.value=v.metalness,v.metalnessMap&&(S.metalnessMap.value=v.metalnessMap,t(v.metalnessMap,S.metalnessMapTransform)),S.roughness.value=v.roughness,v.roughnessMap&&(S.roughnessMap.value=v.roughnessMap,t(v.roughnessMap,S.roughnessMapTransform)),v.envMap&&(S.envMapIntensity.value=v.envMapIntensity)}function g(S,v,_){S.ior.value=v.ior,v.sheen>0&&(S.sheenColor.value.copy(v.sheenColor).multiplyScalar(v.sheen),S.sheenRoughness.value=v.sheenRoughness,v.sheenColorMap&&(S.sheenColorMap.value=v.sheenColorMap,t(v.sheenColorMap,S.sheenColorMapTransform)),v.sheenRoughnessMap&&(S.sheenRoughnessMap.value=v.sheenRoughnessMap,t(v.sheenRoughnessMap,S.sheenRoughnessMapTransform))),v.clearcoat>0&&(S.clearcoat.value=v.clearcoat,S.clearcoatRoughness.value=v.clearcoatRoughness,v.clearcoatMap&&(S.clearcoatMap.value=v.clearcoatMap,t(v.clearcoatMap,S.clearcoatMapTransform)),v.clearcoatRoughnessMap&&(S.clearcoatRoughnessMap.value=v.clearcoatRoughnessMap,t(v.clearcoatRoughnessMap,S.clearcoatRoughnessMapTransform)),v.clearcoatNormalMap&&(S.clearcoatNormalMap.value=v.clearcoatNormalMap,t(v.clearcoatNormalMap,S.clearcoatNormalMapTransform),S.clearcoatNormalScale.value.copy(v.clearcoatNormalScale),v.side===Wi&&S.clearcoatNormalScale.value.negate())),v.dispersion>0&&(S.dispersion.value=v.dispersion),v.iridescence>0&&(S.iridescence.value=v.iridescence,S.iridescenceIOR.value=v.iridescenceIOR,S.iridescenceThicknessMinimum.value=v.iridescenceThicknessRange[0],S.iridescenceThicknessMaximum.value=v.iridescenceThicknessRange[1],v.iridescenceMap&&(S.iridescenceMap.value=v.iridescenceMap,t(v.iridescenceMap,S.iridescenceMapTransform)),v.iridescenceThicknessMap&&(S.iridescenceThicknessMap.value=v.iridescenceThicknessMap,t(v.iridescenceThicknessMap,S.iridescenceThicknessMapTransform))),v.transmission>0&&(S.transmission.value=v.transmission,S.transmissionSamplerMap.value=_.texture,S.transmissionSamplerSize.value.set(_.width,_.height),v.transmissionMap&&(S.transmissionMap.value=v.transmissionMap,t(v.transmissionMap,S.transmissionMapTransform)),S.thickness.value=v.thickness,v.thicknessMap&&(S.thicknessMap.value=v.thicknessMap,t(v.thicknessMap,S.thicknessMapTransform)),S.attenuationDistance.value=v.attenuationDistance,S.attenuationColor.value.copy(v.attenuationColor)),v.anisotropy>0&&(S.anisotropyVector.value.set(v.anisotropy*Math.cos(v.anisotropyRotation),v.anisotropy*Math.sin(v.anisotropyRotation)),v.anisotropyMap&&(S.anisotropyMap.value=v.anisotropyMap,t(v.anisotropyMap,S.anisotropyMapTransform))),S.specularIntensity.value=v.specularIntensity,S.specularColor.value.copy(v.specularColor),v.specularColorMap&&(S.specularColorMap.value=v.specularColorMap,t(v.specularColorMap,S.specularColorMapTransform)),v.specularIntensityMap&&(S.specularIntensityMap.value=v.specularIntensityMap,t(v.specularIntensityMap,S.specularIntensityMapTransform))}function y(S,v){v.matcap&&(S.matcap.value=v.matcap)}function E(S,v){const _=e.get(v).light;S.referencePosition.value.setFromMatrixPosition(_.matrixWorld),S.nearDistance.value=_.shadow.camera.near,S.farDistance.value=_.shadow.camera.far}return{refreshFogUniforms:i,refreshMaterialUniforms:a}}function wY(n,e,t,i){let a={},r={},s=[];const o=n.getParameter(n.MAX_UNIFORM_BUFFER_BINDINGS);function c(_,A){const b=A.program;i.uniformBlockBinding(_,b)}function h(_,A){let b=a[_.id];b===void 0&&(y(_),b=f(_),a[_.id]=b,_.addEventListener("dispose",S));const O=A.program;i.updateUBOMapping(_,O);const N=e.render.frame;r[_.id]!==N&&(m(_),r[_.id]=N)}function f(_){const A=d();_.__bindingPointIndex=A;const b=n.createBuffer(),O=_.__size,N=_.usage;return n.bindBuffer(n.UNIFORM_BUFFER,b),n.bufferData(n.UNIFORM_BUFFER,O,N),n.bindBuffer(n.UNIFORM_BUFFER,null),n.bindBufferBase(n.UNIFORM_BUFFER,A,b),b}function d(){for(let _=0;_0&&(b+=O-N),_.__size=b,_.__cache={},this}function E(_){const A={boundary:0,storage:0};return typeof _=="number"||typeof _=="boolean"?(A.boundary=4,A.storage=4):_.isVector2?(A.boundary=8,A.storage=8):_.isVector3||_.isColor?(A.boundary=16,A.storage=12):_.isVector4?(A.boundary=16,A.storage=16):_.isMatrix3?(A.boundary=48,A.storage=48):_.isMatrix4?(A.boundary=64,A.storage=64):_.isTexture?_t("WebGLRenderer: Texture samplers can not be part of an uniforms group."):_t("WebGLRenderer: Unsupported uniform value type.",_),A}function S(_){const A=_.target;A.removeEventListener("dispose",S);const b=s.indexOf(A.__bindingPointIndex);s.splice(b,1),n.deleteBuffer(a[A.id]),delete a[A.id],delete r[A.id]}function v(){for(const _ in a)n.deleteBuffer(a[_]);s=[],a={},r={}}return{bind:c,update:h,dispose:v}}const DY=new Uint16Array([11481,15204,11534,15171,11808,15015,12385,14843,12894,14716,13396,14600,13693,14483,13976,14366,14237,14171,14405,13961,14511,13770,14605,13598,14687,13444,14760,13305,14822,13066,14876,12857,14923,12675,14963,12517,14997,12379,15025,12230,15049,12023,15070,11843,15086,11687,15100,11551,15111,11433,15120,11330,15127,11217,15132,11060,15135,10922,15138,10801,15139,10695,15139,10600,13012,14923,13020,14917,13064,14886,13176,14800,13349,14666,13513,14526,13724,14398,13960,14230,14200,14020,14383,13827,14488,13651,14583,13491,14667,13348,14740,13132,14803,12908,14856,12713,14901,12542,14938,12394,14968,12241,14992,12017,15010,11822,15024,11654,15034,11507,15041,11380,15044,11269,15044,11081,15042,10913,15037,10764,15031,10635,15023,10520,15014,10419,15003,10330,13657,14676,13658,14673,13670,14660,13698,14622,13750,14547,13834,14442,13956,14317,14112,14093,14291,13889,14407,13704,14499,13538,14586,13389,14664,13201,14733,12966,14792,12758,14842,12577,14882,12418,14915,12272,14940,12033,14959,11826,14972,11646,14980,11490,14983,11355,14983,11212,14979,11008,14971,10830,14961,10675,14950,10540,14936,10420,14923,10315,14909,10204,14894,10041,14089,14460,14090,14459,14096,14452,14112,14431,14141,14388,14186,14305,14252,14130,14341,13941,14399,13756,14467,13585,14539,13430,14610,13272,14677,13026,14737,12808,14790,12617,14833,12449,14869,12303,14896,12065,14916,11845,14929,11655,14937,11490,14939,11347,14936,11184,14930,10970,14921,10783,14912,10621,14900,10480,14885,10356,14867,10247,14848,10062,14827,9894,14805,9745,14400,14208,14400,14206,14402,14198,14406,14174,14415,14122,14427,14035,14444,13913,14469,13767,14504,13613,14548,13463,14598,13324,14651,13082,14704,12858,14752,12658,14795,12483,14831,12330,14860,12106,14881,11875,14895,11675,14903,11501,14905,11351,14903,11178,14900,10953,14892,10757,14880,10589,14865,10442,14847,10313,14827,10162,14805,9965,14782,9792,14757,9642,14731,9507,14562,13883,14562,13883,14563,13877,14566,13862,14570,13830,14576,13773,14584,13689,14595,13582,14613,13461,14637,13336,14668,13120,14704,12897,14741,12695,14776,12516,14808,12358,14835,12150,14856,11910,14870,11701,14878,11519,14882,11361,14884,11187,14880,10951,14871,10748,14858,10572,14842,10418,14823,10286,14801,10099,14777,9897,14751,9722,14725,9567,14696,9430,14666,9309,14702,13604,14702,13604,14702,13600,14703,13591,14705,13570,14707,13533,14709,13477,14712,13400,14718,13305,14727,13106,14743,12907,14762,12716,14784,12539,14807,12380,14827,12190,14844,11943,14855,11727,14863,11539,14870,11376,14871,11204,14868,10960,14858,10748,14845,10565,14829,10406,14809,10269,14786,10058,14761,9852,14734,9671,14705,9512,14674,9374,14641,9253,14608,9076,14821,13366,14821,13365,14821,13364,14821,13358,14821,13344,14821,13320,14819,13252,14817,13145,14815,13011,14814,12858,14817,12698,14823,12539,14832,12389,14841,12214,14850,11968,14856,11750,14861,11558,14866,11390,14867,11226,14862,10972,14853,10754,14840,10565,14823,10401,14803,10259,14780,10032,14754,9820,14725,9635,14694,9473,14661,9333,14627,9203,14593,8988,14557,8798,14923,13014,14922,13014,14922,13012,14922,13004,14920,12987,14919,12957,14915,12907,14909,12834,14902,12738,14894,12623,14888,12498,14883,12370,14880,12203,14878,11970,14875,11759,14873,11569,14874,11401,14872,11243,14865,10986,14855,10762,14842,10568,14825,10401,14804,10255,14781,10017,14754,9799,14725,9611,14692,9445,14658,9301,14623,9139,14587,8920,14548,8729,14509,8562,15008,12672,15008,12672,15008,12671,15007,12667,15005,12656,15001,12637,14997,12605,14989,12556,14978,12490,14966,12407,14953,12313,14940,12136,14927,11934,14914,11742,14903,11563,14896,11401,14889,11247,14879,10992,14866,10767,14851,10570,14833,10400,14812,10252,14789,10007,14761,9784,14731,9592,14698,9424,14663,9279,14627,9088,14588,8868,14548,8676,14508,8508,14467,8360,15080,12386,15080,12386,15079,12385,15078,12383,15076,12378,15072,12367,15066,12347,15057,12315,15045,12253,15030,12138,15012,11998,14993,11845,14972,11685,14951,11530,14935,11383,14920,11228,14904,10981,14887,10762,14870,10567,14850,10397,14827,10248,14803,9997,14774,9771,14743,9578,14710,9407,14674,9259,14637,9048,14596,8826,14555,8632,14514,8464,14471,8317,14427,8182,15139,12008,15139,12008,15138,12008,15137,12007,15135,12003,15130,11990,15124,11969,15115,11929,15102,11872,15086,11794,15064,11693,15041,11581,15013,11459,14987,11336,14966,11170,14944,10944,14921,10738,14898,10552,14875,10387,14850,10239,14824,9983,14794,9758,14762,9563,14728,9392,14692,9244,14653,9014,14611,8791,14569,8597,14526,8427,14481,8281,14436,8110,14391,7885,15188,11617,15188,11617,15187,11617,15186,11618,15183,11617,15179,11612,15173,11601,15163,11581,15150,11546,15133,11495,15110,11427,15083,11346,15051,11246,15024,11057,14996,10868,14967,10687,14938,10517,14911,10362,14882,10206,14853,9956,14821,9737,14787,9543,14752,9375,14715,9228,14675,8980,14632,8760,14589,8565,14544,8395,14498,8248,14451,8049,14404,7824,14357,7630,15228,11298,15228,11298,15227,11299,15226,11301,15223,11303,15219,11302,15213,11299,15204,11290,15191,11271,15174,11217,15150,11129,15119,11015,15087,10886,15057,10744,15024,10599,14990,10455,14957,10318,14924,10143,14891,9911,14856,9701,14820,9516,14782,9352,14744,9200,14703,8946,14659,8725,14615,8533,14568,8366,14521,8220,14472,7992,14423,7770,14374,7578,14315,7408,15260,10819,15260,10819,15259,10822,15258,10826,15256,10832,15251,10836,15246,10841,15237,10838,15225,10821,15207,10788,15183,10734,15151,10660,15120,10571,15087,10469,15049,10359,15012,10249,14974,10041,14937,9837,14900,9647,14860,9475,14820,9320,14779,9147,14736,8902,14691,8688,14646,8499,14598,8335,14549,8189,14499,7940,14448,7720,14397,7529,14347,7363,14256,7218,15285,10410,15285,10411,15285,10413,15284,10418,15282,10425,15278,10434,15272,10442,15264,10449,15252,10445,15235,10433,15210,10403,15179,10358,15149,10301,15113,10218,15073,10059,15033,9894,14991,9726,14951,9565,14909,9413,14865,9273,14822,9073,14777,8845,14730,8641,14682,8459,14633,8300,14583,8129,14531,7883,14479,7670,14426,7482,14373,7321,14305,7176,14201,6939,15305,9939,15305,9940,15305,9945,15304,9955,15302,9967,15298,9989,15293,10010,15286,10033,15274,10044,15258,10045,15233,10022,15205,9975,15174,9903,15136,9808,15095,9697,15053,9578,15009,9451,14965,9327,14918,9198,14871,8973,14825,8766,14775,8579,14725,8408,14675,8259,14622,8058,14569,7821,14515,7615,14460,7435,14405,7276,14350,7108,14256,6866,14149,6653,15321,9444,15321,9445,15321,9448,15320,9458,15317,9470,15314,9490,15310,9515,15302,9540,15292,9562,15276,9579,15251,9577,15226,9559,15195,9519,15156,9463,15116,9389,15071,9304,15025,9208,14978,9023,14927,8838,14878,8661,14827,8496,14774,8344,14722,8206,14667,7973,14612,7749,14556,7555,14499,7382,14443,7229,14385,7025,14322,6791,14210,6588,14100,6409,15333,8920,15333,8921,15332,8927,15332,8943,15329,8965,15326,9002,15322,9048,15316,9106,15307,9162,15291,9204,15267,9221,15244,9221,15212,9196,15175,9134,15133,9043,15088,8930,15040,8801,14990,8665,14938,8526,14886,8391,14830,8261,14775,8087,14719,7866,14661,7664,14603,7482,14544,7322,14485,7178,14426,6936,14367,6713,14281,6517,14166,6348,14054,6198,15341,8360,15341,8361,15341,8366,15341,8379,15339,8399,15336,8431,15332,8473,15326,8527,15318,8585,15302,8632,15281,8670,15258,8690,15227,8690,15191,8664,15149,8612,15104,8543,15055,8456,15001,8360,14948,8259,14892,8122,14834,7923,14776,7734,14716,7558,14656,7397,14595,7250,14534,7070,14472,6835,14410,6628,14350,6443,14243,6283,14125,6135,14010,5889,15348,7715,15348,7717,15348,7725,15347,7745,15345,7780,15343,7836,15339,7905,15334,8e3,15326,8103,15310,8193,15293,8239,15270,8270,15240,8287,15204,8283,15163,8260,15118,8223,15067,8143,15014,8014,14958,7873,14899,7723,14839,7573,14778,7430,14715,7293,14652,7164,14588,6931,14524,6720,14460,6531,14396,6362,14330,6210,14207,6015,14086,5781,13969,5576,15352,7114,15352,7116,15352,7128,15352,7159,15350,7195,15348,7237,15345,7299,15340,7374,15332,7457,15317,7544,15301,7633,15280,7703,15251,7754,15216,7775,15176,7767,15131,7733,15079,7670,15026,7588,14967,7492,14906,7387,14844,7278,14779,7171,14714,6965,14648,6770,14581,6587,14515,6420,14448,6269,14382,6123,14299,5881,14172,5665,14049,5477,13929,5310,15355,6329,15355,6330,15355,6339,15355,6362,15353,6410,15351,6472,15349,6572,15344,6688,15337,6835,15323,6985,15309,7142,15287,7220,15260,7277,15226,7310,15188,7326,15142,7318,15090,7285,15036,7239,14976,7177,14914,7045,14849,6892,14782,6736,14714,6581,14645,6433,14576,6293,14506,6164,14438,5946,14369,5733,14270,5540,14140,5369,14014,5216,13892,5043,15357,5483,15357,5484,15357,5496,15357,5528,15356,5597,15354,5692,15351,5835,15347,6011,15339,6195,15328,6317,15314,6446,15293,6566,15268,6668,15235,6746,15197,6796,15152,6811,15101,6790,15046,6748,14985,6673,14921,6583,14854,6479,14785,6371,14714,6259,14643,6149,14571,5946,14499,5750,14428,5567,14358,5401,14242,5250,14109,5111,13980,4870,13856,4657,15359,4555,15359,4557,15358,4573,15358,4633,15357,4715,15355,4841,15353,5061,15349,5216,15342,5391,15331,5577,15318,5770,15299,5967,15274,6150,15243,6223,15206,6280,15161,6310,15111,6317,15055,6300,14994,6262,14928,6208,14860,6141,14788,5994,14715,5838,14641,5684,14566,5529,14492,5384,14418,5247,14346,5121,14216,4892,14079,4682,13948,4496,13822,4330,15359,3498,15359,3501,15359,3520,15359,3598,15358,3719,15356,3860,15355,4137,15351,4305,15344,4563,15334,4809,15321,5116,15303,5273,15280,5418,15250,5547,15214,5653,15170,5722,15120,5761,15064,5763,15002,5733,14935,5673,14865,5597,14792,5504,14716,5400,14640,5294,14563,5185,14486,5041,14410,4841,14335,4655,14191,4482,14051,4325,13918,4183,13790,4012,15360,2282,15360,2285,15360,2306,15360,2401,15359,2547,15357,2748,15355,3103,15352,3349,15345,3675,15336,4020,15324,4272,15307,4496,15285,4716,15255,4908,15220,5086,15178,5170,15128,5214,15072,5234,15010,5231,14943,5206,14871,5166,14796,5102,14718,4971,14639,4833,14559,4687,14480,4541,14402,4401,14315,4268,14167,4142,14025,3958,13888,3747,13759,3556,15360,923,15360,925,15360,946,15360,1052,15359,1214,15357,1494,15356,1892,15352,2274,15346,2663,15338,3099,15326,3393,15309,3679,15288,3980,15260,4183,15226,4325,15185,4437,15136,4517,15080,4570,15018,4591,14950,4581,14877,4545,14800,4485,14720,4411,14638,4325,14556,4231,14475,4136,14395,3988,14297,3803,14145,3628,13999,3465,13861,3314,13729,3177,15360,263,15360,264,15360,272,15360,325,15359,407,15358,548,15356,780,15352,1144,15347,1580,15339,2099,15328,2425,15312,2795,15292,3133,15264,3329,15232,3517,15191,3689,15143,3819,15088,3923,15025,3978,14956,3999,14882,3979,14804,3931,14722,3855,14639,3756,14554,3645,14470,3529,14388,3409,14279,3289,14124,3173,13975,3055,13834,2848,13701,2658,15360,49,15360,49,15360,52,15360,75,15359,111,15358,201,15356,283,15353,519,15348,726,15340,1045,15329,1415,15314,1795,15295,2173,15269,2410,15237,2649,15197,2866,15150,3054,15095,3140,15032,3196,14963,3228,14888,3236,14808,3224,14725,3191,14639,3146,14553,3088,14466,2976,14382,2836,14262,2692,14103,2549,13952,2409,13808,2278,13674,2154,15360,4,15360,4,15360,4,15360,13,15359,33,15358,59,15357,112,15353,199,15348,302,15341,456,15331,628,15316,827,15297,1082,15272,1332,15241,1601,15202,1851,15156,2069,15101,2172,15039,2256,14970,2314,14894,2348,14813,2358,14728,2344,14640,2311,14551,2263,14463,2203,14376,2133,14247,2059,14084,1915,13930,1761,13784,1609,13648,1464,15360,0,15360,0,15360,0,15360,3,15359,18,15358,26,15357,53,15354,80,15348,97,15341,165,15332,238,15318,326,15299,427,15275,529,15245,654,15207,771,15161,885,15108,994,15046,1089,14976,1170,14900,1229,14817,1266,14731,1284,14641,1282,14550,1260,14460,1223,14370,1174,14232,1116,14066,1050,13909,981,13761,910,13623,839]);let wo=null;function NY(){return wo===null&&(wo=new Pa(DY,32,32,zo,sn),wo.minFilter=Bt,wo.magFilter=Bt,wo.wrapS=Vn,wo.wrapT=Vn,wo.generateMipmaps=!1,wo.needsUpdate=!0),wo}class ky{constructor(e={}){const{canvas:t=nB(),context:i=null,depth:a=!0,stencil:r=!1,alpha:s=!1,antialias:o=!1,premultipliedAlpha:c=!0,preserveDrawingBuffer:h=!1,powerPreference:f="default",failIfMajorPerformanceCaveat:d=!1,reversedDepthBuffer:m=!1}=e;this.isWebGLRenderer=!0;let g;if(i!==null){if(typeof WebGLRenderingContext<"u"&&i instanceof WebGLRenderingContext)throw new Error("THREE.WebGLRenderer: WebGL 1 is not supported since r163.");g=i.getContextAttributes().alpha}else g=s;const y=new Set([vy,gy,R0]),E=new Set([xi,ls,Gu,Vu,py,my]),S=new Uint32Array(4),v=new Int32Array(4);let _=null,A=null;const b=[],O=[];this.domElement=t,this.debug={checkShaderErrors:!0,onShaderError:null},this.autoClear=!0,this.autoClearColor=!0,this.autoClearDepth=!0,this.autoClearStencil=!0,this.sortObjects=!0,this.clippingPlanes=[],this.localClippingEnabled=!1,this.toneMapping=ns,this.toneMappingExposure=1,this.transmissionResolutionScale=1;const N=this;let L=!1;this._outputColorSpace=Kn;let B=0,w=0,D=null,G=-1,J=null;const $=new Yt,se=new Yt;let le=null;const q=new dt(0);let te=0,ee=t.width,de=t.height,ue=1,Pe=null,He=null;const Ke=new Yt(0,0,ee,de),nt=new Yt(0,0,ee,de);let xt=!1;const fe=new Hd;let Be=!1,Je=!1;const ve=new lt,at=new H,ft=new Yt,ht={background:null,fog:null,environment:null,overrideMaterial:null,isScene:!0};let et=!1;function Re(){return D===null?ue:1}let Z=i;function Ue(C,F){return t.getContext(C,F)}try{const C={alpha:!0,depth:a,stencil:r,antialias:o,premultipliedAlpha:c,preserveDrawingBuffer:h,powerPreference:f,failIfMajorPerformanceCaveat:d};if("setAttribute"in t&&t.setAttribute("data-engine",`three.js r${_c}`),t.addEventListener("webglcontextlost",tt,!1),t.addEventListener("webglcontextrestored",We,!1),t.addEventListener("webglcontextcreationerror",gt,!1),Z===null){const F="webgl2";if(Z=Ue(F,C),Z===null)throw Ue(F)?new Error("Error creating WebGL context with your selected attributes."):new Error("Error creating WebGL context.")}}catch(C){throw C("WebGLRenderer: "+C.message),C}let ze,Qe,Ye,ot,rt,mt,j,P,pe,Ie,Ge,we,Tt,ut,wt,bt,ke,Ve,St,ne,me,Le,K,Se;function _e(){ze=new GX(Z),ze.init(),Le=new n8(Z,ze),Qe=new OX(Z,ze,e,Le),Ye=new SY(Z,ze),Qe.reversedDepthBuffer&&m&&Ye.buffers.depth.setReversed(!0),ot=new XX(Z),rt=new lY,mt=new AY(Z,ze,Ye,rt,Qe,Le,ot),j=new BX(N),P=new zX(N),pe=new ZG(Z),K=new DX(Z,pe),Ie=new VX(Z,pe,ot,K),Ge=new YX(Z,Ie,pe,ot),St=new WX(Z,Qe,mt),bt=new IX(rt),we=new oY(N,j,P,ze,Qe,K,bt),Tt=new RY(N,rt),ut=new uY,wt=new gY(ze),Ve=new wX(N,j,P,Ye,Ge,g,c),ke=new yY(N,Ge,Qe),Se=new wY(Z,ot,Qe,Ye),ne=new NX(Z,ze,ot),me=new kX(Z,ze,ot),ot.programs=we.programs,N.capabilities=Qe,N.extensions=ze,N.properties=rt,N.renderLists=ut,N.shadowMap=ke,N.state=Ye,N.info=ot}_e();const it=new MY(N,Z);this.xr=it,this.getContext=function(){return Z},this.getContextAttributes=function(){return Z.getContextAttributes()},this.forceContextLoss=function(){const C=ze.get("WEBGL_lose_context");C&&C.loseContext()},this.forceContextRestore=function(){const C=ze.get("WEBGL_lose_context");C&&C.restoreContext()},this.getPixelRatio=function(){return ue},this.setPixelRatio=function(C){C!==void 0&&(ue=C,this.setSize(ee,de,!1))},this.getSize=function(C){return C.set(ee,de)},this.setSize=function(C,F,Y=!0){if(it.isPresenting){_t("WebGLRenderer: Can't change size while VR device is presenting.");return}ee=C,de=F,t.width=Math.floor(C*ue),t.height=Math.floor(F*ue),Y===!0&&(t.style.width=C+"px",t.style.height=F+"px"),this.setViewport(0,0,C,F)},this.getDrawingBufferSize=function(C){return C.set(ee*ue,de*ue).floor()},this.setDrawingBufferSize=function(C,F,Y){ee=C,de=F,ue=Y,t.width=Math.floor(C*Y),t.height=Math.floor(F*Y),this.setViewport(0,0,C,F)},this.getCurrentViewport=function(C){return C.copy($)},this.getViewport=function(C){return C.copy(Ke)},this.setViewport=function(C,F,Y,z){C.isVector4?Ke.set(C.x,C.y,C.z,C.w):Ke.set(C,F,Y,z),Ye.viewport($.copy(Ke).multiplyScalar(ue).round())},this.getScissor=function(C){return C.copy(nt)},this.setScissor=function(C,F,Y,z){C.isVector4?nt.set(C.x,C.y,C.z,C.w):nt.set(C,F,Y,z),Ye.scissor(se.copy(nt).multiplyScalar(ue).round())},this.getScissorTest=function(){return xt},this.setScissorTest=function(C){Ye.setScissorTest(xt=C)},this.setOpaqueSort=function(C){Pe=C},this.setTransparentSort=function(C){He=C},this.getClearColor=function(C){return C.copy(Ve.getClearColor())},this.setClearColor=function(){Ve.setClearColor(...arguments)},this.getClearAlpha=function(){return Ve.getClearAlpha()},this.setClearAlpha=function(){Ve.setClearAlpha(...arguments)},this.clear=function(C=!0,F=!0,Y=!0){let z=0;if(C){let k=!1;if(D!==null){const Q=D.texture.format;k=y.has(Q)}if(k){const Q=D.texture.type,ae=E.has(Q),ce=Ve.getClearColor(),xe=Ve.getClearAlpha(),Ae=ce.r,Ne=ce.g,Fe=ce.b;ae?(S[0]=Ae,S[1]=Ne,S[2]=Fe,S[3]=xe,Z.clearBufferuiv(Z.COLOR,0,S)):(v[0]=Ae,v[1]=Ne,v[2]=Fe,v[3]=xe,Z.clearBufferiv(Z.COLOR,0,v))}else z|=Z.COLOR_BUFFER_BIT}F&&(z|=Z.DEPTH_BUFFER_BIT),Y&&(z|=Z.STENCIL_BUFFER_BIT,this.state.buffers.stencil.setMask(4294967295)),Z.clear(z)},this.clearColor=function(){this.clear(!0,!1,!1)},this.clearDepth=function(){this.clear(!1,!0,!1)},this.clearStencil=function(){this.clear(!1,!1,!0)},this.dispose=function(){t.removeEventListener("webglcontextlost",tt,!1),t.removeEventListener("webglcontextrestored",We,!1),t.removeEventListener("webglcontextcreationerror",gt,!1),Ve.dispose(),ut.dispose(),wt.dispose(),rt.dispose(),j.dispose(),P.dispose(),Ge.dispose(),K.dispose(),Se.dispose(),we.dispose(),it.dispose(),it.removeEventListener("sessionstart",Ps),it.removeEventListener("sessionend",ar),Ni.stop()};function tt(C){C.preventDefault(),r0("WebGLRenderer: Context Lost."),L=!0}function We(){r0("WebGLRenderer: Context Restored."),L=!1;const C=ot.autoReset,F=ke.enabled,Y=ke.autoUpdate,z=ke.needsUpdate,k=ke.type;_e(),ot.autoReset=C,ke.enabled=F,ke.autoUpdate=Y,ke.needsUpdate=z,ke.type=k}function gt(C){qt("WebGLRenderer: A WebGL context could not be created. Reason: ",C.statusMessage)}function Nt(C){const F=C.target;F.removeEventListener("dispose",Nt),$t(F)}function $t(C){jt(C),rt.remove(C)}function jt(C){const F=rt.get(C).programs;F!==void 0&&(F.forEach(function(Y){we.releaseProgram(Y)}),C.isShaderMaterial&&we.releaseShaderCache(C))}this.renderBufferDirect=function(C,F,Y,z,k,Q){F===null&&(F=ht);const ae=k.isMesh&&k.matrixWorld.determinant()<0,ce=Te(C,F,Y,z,k);Ye.setMaterial(z,ae);let xe=Y.index,Ae=1;if(z.wireframe===!0){if(xe=Ie.getWireframeAttribute(Y),xe===void 0)return;Ae=2}const Ne=Y.drawRange,Fe=Y.attributes.position;let Oe=Ne.start*Ae,Ze=(Ne.start+Ne.count)*Ae;Q!==null&&(Oe=Math.max(Oe,Q.start*Ae),Ze=Math.min(Ze,(Q.start+Q.count)*Ae)),xe!==null?(Oe=Math.max(Oe,0),Ze=Math.min(Ze,xe.count)):Fe!=null&&(Oe=Math.max(Oe,0),Ze=Math.min(Ze,Fe.count));const $e=Ze-Oe;if($e<0||$e===1/0)return;K.setup(k,z,ce,Y,xe);let vt,Rt=ne;if(xe!==null&&(vt=pe.get(xe),Rt=me,Rt.setIndex(vt)),k.isMesh)z.wireframe===!0?(Ye.setLineWidth(z.wireframeLinewidth*Re()),Rt.setMode(Z.LINES)):Rt.setMode(Z.TRIANGLES);else if(k.isLine){let pt=z.linewidth;pt===void 0&&(pt=1),Ye.setLineWidth(pt*Re()),k.isLineSegments?Rt.setMode(Z.LINES):k.isLineLoop?Rt.setMode(Z.LINE_LOOP):Rt.setMode(Z.LINE_STRIP)}else k.isPoints?Rt.setMode(Z.POINTS):k.isSprite&&Rt.setMode(Z.TRIANGLES);if(k.isBatchedMesh)if(k._multiDrawInstances!==null)vd("WebGLRenderer: renderMultiDrawInstances has been deprecated and will be removed in r184. Append to renderMultiDraw arguments and use indirection."),Rt.renderMultiDrawInstances(k._multiDrawStarts,k._multiDrawCounts,k._multiDrawCount,k._multiDrawInstances);else if(ze.get("WEBGL_multi_draw"))Rt.renderMultiDraw(k._multiDrawStarts,k._multiDrawCounts,k._multiDrawCount);else{const pt=k._multiDrawStarts,Ct=k._multiDrawCounts,je=k._multiDrawCount,Ut=xe?pe.get(xe).bytesPerElement:1,Ft=rt.get(z).currentProgram.getUniforms();for(let Et=0;Et{function Q(){if(z.forEach(function(ae){rt.get(ae).currentProgram.isReady()&&z.delete(ae)}),z.size===0){k(C);return}setTimeout(Q,10)}ze.get("KHR_parallel_shader_compile")!==null?Q():setTimeout(Q,10)})};let fi=null;function hl(C){fi&&fi(C)}function Ps(){Ni.stop()}function ar(){Ni.start()}const Ni=new JB;Ni.setAnimationLoop(hl),typeof self<"u"&&Ni.setContext(self),this.setAnimationLoop=function(C){fi=C,it.setAnimationLoop(C),C===null?Ni.stop():Ni.start()},it.addEventListener("sessionstart",Ps),it.addEventListener("sessionend",ar),this.render=function(C,F){if(F!==void 0&&F.isCamera!==!0){qt("WebGLRenderer.render: camera is not an instance of THREE.Camera.");return}if(L===!0)return;if(C.matrixWorldAutoUpdate===!0&&C.updateMatrixWorld(),F.parent===null&&F.matrixWorldAutoUpdate===!0&&F.updateMatrixWorld(),it.enabled===!0&&it.isPresenting===!0&&(it.cameraAutoUpdate===!0&&it.updateCamera(F),F=it.getCamera()),C.isScene===!0&&C.onBeforeRender(N,C,F,D),A=wt.get(C,O.length),A.init(F),O.push(A),ve.multiplyMatrices(F.projectionMatrix,F.matrixWorldInverse),fe.setFromProjectionMatrix(ve,Er,F.reversedDepth),Je=this.localClippingEnabled,Be=bt.init(this.clippingPlanes,Je),_=ut.get(C,b.length),_.init(),b.push(_),it.enabled===!0&&it.isPresenting===!0){const Q=N.xr.getDepthSensingMesh();Q!==null&&Va(Q,F,-1/0,N.sortObjects)}Va(C,F,0,N.sortObjects),_.finish(),N.sortObjects===!0&&_.sort(Pe,He),et=it.enabled===!1||it.isPresenting===!1||it.hasDepthSensing()===!1,et&&Ve.addToRenderList(_,C),this.info.render.frame++,Be===!0&&bt.beginShadows();const Y=A.state.shadowsArray;ke.render(Y,C,F),Be===!0&&bt.endShadows(),this.info.autoReset===!0&&this.info.reset();const z=_.opaque,k=_.transmissive;if(A.setupLights(),F.isArrayCamera){const Q=F.cameras;if(k.length>0)for(let ae=0,ce=Q.length;ae0&&zt(z,k,C,F),et&&Ve.render(C),Oi(_,C,F);D!==null&&w===0&&(mt.updateMultisampleRenderTarget(D),mt.updateRenderTargetMipmap(D)),C.isScene===!0&&C.onAfterRender(N,C,F),K.resetDefaultState(),G=-1,J=null,O.pop(),O.length>0?(A=O[O.length-1],Be===!0&&bt.setGlobalState(N.clippingPlanes,A.state.camera)):A=null,b.pop(),b.length>0?_=b[b.length-1]:_=null};function Va(C,F,Y,z){if(C.visible===!1)return;if(C.layers.test(F.layers)){if(C.isGroup)Y=C.renderOrder;else if(C.isLOD)C.autoUpdate===!0&&C.update(F);else if(C.isLight)A.pushLight(C),C.castShadow&&A.pushShadow(C);else if(C.isSprite){if(!C.frustumCulled||fe.intersectsSprite(C)){z&&ft.setFromMatrixPosition(C.matrixWorld).applyMatrix4(ve);const ae=Ge.update(C),ce=C.material;ce.visible&&_.push(C,ae,ce,Y,ft.z,null)}}else if((C.isMesh||C.isLine||C.isPoints)&&(!C.frustumCulled||fe.intersectsObject(C))){const ae=Ge.update(C),ce=C.material;if(z&&(C.boundingSphere!==void 0?(C.boundingSphere===null&&C.computeBoundingSphere(),ft.copy(C.boundingSphere.center)):(ae.boundingSphere===null&&ae.computeBoundingSphere(),ft.copy(ae.boundingSphere.center)),ft.applyMatrix4(C.matrixWorld).applyMatrix4(ve)),Array.isArray(ce)){const xe=ae.groups;for(let Ae=0,Ne=xe.length;Ae0&&ka(k,F,Y),Q.length>0&&ka(Q,F,Y),ae.length>0&&ka(ae,F,Y),Ye.buffers.depth.setTest(!0),Ye.buffers.depth.setMask(!0),Ye.buffers.color.setMask(!0),Ye.setPolygonOffset(!1)}function zt(C,F,Y,z){if((Y.isScene===!0?Y.overrideMaterial:null)!==null)return;A.state.transmissionRenderTarget[z.id]===void 0&&(A.state.transmissionRenderTarget[z.id]=new oi(1,1,{generateMipmaps:!0,type:ze.has("EXT_color_buffer_half_float")||ze.has("EXT_color_buffer_float")?sn:xi,minFilter:Sr,samples:4,stencilBuffer:r,resolveDepthBuffer:!1,resolveStencilBuffer:!1,colorSpace:gn.workingColorSpace}));const Q=A.state.transmissionRenderTarget[z.id],ae=z.viewport||$;Q.setSize(ae.z*N.transmissionResolutionScale,ae.w*N.transmissionResolutionScale);const ce=N.getRenderTarget(),xe=N.getActiveCubeFace(),Ae=N.getActiveMipmapLevel();N.setRenderTarget(Q),N.getClearColor(q),te=N.getClearAlpha(),te<1&&N.setClearColor(16777215,.5),N.clear(),et&&Ve.render(Y);const Ne=N.toneMapping;N.toneMapping=ns;const Fe=z.viewport;if(z.viewport!==void 0&&(z.viewport=void 0),A.setupLightsView(z),Be===!0&&bt.setGlobalState(N.clippingPlanes,z),ka(C,Y,z),mt.updateMultisampleRenderTarget(Q),mt.updateRenderTargetMipmap(Q),ze.has("WEBGL_multisampled_render_to_texture")===!1){let Oe=!1;for(let Ze=0,$e=F.length;Ze<$e;Ze++){const vt=F[Ze],{object:Rt,geometry:pt,material:Ct,group:je}=vt;if(Ct.side===da&&Rt.layers.test(z.layers)){const Ut=Ct.side;Ct.side=Wi,Ct.needsUpdate=!0,Ln(Rt,Y,z,pt,Ct,je),Ct.side=Ut,Ct.needsUpdate=!0,Oe=!0}}Oe===!0&&(mt.updateMultisampleRenderTarget(Q),mt.updateRenderTargetMipmap(Q))}N.setRenderTarget(ce,xe,Ae),N.setClearColor(q,te),Fe!==void 0&&(z.viewport=Fe),N.toneMapping=Ne}function ka(C,F,Y){const z=F.isScene===!0?F.overrideMaterial:null;for(let k=0,Q=C.length;k0),Fe=!!Y.morphAttributes.position,Oe=!!Y.morphAttributes.normal,Ze=!!Y.morphAttributes.color;let $e=ns;z.toneMapped&&(D===null||D.isXRRenderTarget===!0)&&($e=N.toneMapping);const vt=Y.morphAttributes.position||Y.morphAttributes.normal||Y.morphAttributes.color,Rt=vt!==void 0?vt.length:0,pt=rt.get(z),Ct=A.state.lights;if(Be===!0&&(Je===!0||C!==J)){const On=C===J&&z.id===G;bt.setState(z,C,On)}let je=!1;z.version===pt.__version?(pt.needsLights&&pt.lightsStateVersion!==Ct.state.version||pt.outputColorSpace!==ce||k.isBatchedMesh&&pt.batching===!1||!k.isBatchedMesh&&pt.batching===!0||k.isBatchedMesh&&pt.batchingColor===!0&&k.colorTexture===null||k.isBatchedMesh&&pt.batchingColor===!1&&k.colorTexture!==null||k.isInstancedMesh&&pt.instancing===!1||!k.isInstancedMesh&&pt.instancing===!0||k.isSkinnedMesh&&pt.skinning===!1||!k.isSkinnedMesh&&pt.skinning===!0||k.isInstancedMesh&&pt.instancingColor===!0&&k.instanceColor===null||k.isInstancedMesh&&pt.instancingColor===!1&&k.instanceColor!==null||k.isInstancedMesh&&pt.instancingMorph===!0&&k.morphTexture===null||k.isInstancedMesh&&pt.instancingMorph===!1&&k.morphTexture!==null||pt.envMap!==xe||z.fog===!0&&pt.fog!==Q||pt.numClippingPlanes!==void 0&&(pt.numClippingPlanes!==bt.numPlanes||pt.numIntersection!==bt.numIntersection)||pt.vertexAlphas!==Ae||pt.vertexTangents!==Ne||pt.morphTargets!==Fe||pt.morphNormals!==Oe||pt.morphColors!==Ze||pt.toneMapping!==$e||pt.morphTargetsCount!==Rt)&&(je=!0):(je=!0,pt.__version=z.version);let Ut=pt.currentProgram;je===!0&&(Ut=U(z,F,k));let Ft=!1,Et=!1,Lt=!1;const Ot=Ut.getUniforms(),en=pt.uniforms;if(Ye.useProgram(Ut.program)&&(Ft=!0,Et=!0,Lt=!0),z.id!==G&&(G=z.id,Et=!0),Ft||J!==C){Ye.buffers.depth.getReversed()&&C.reversedDepth!==!0&&(C._reversedDepth=!0,C.updateProjectionMatrix()),Ot.setValue(Z,"projectionMatrix",C.projectionMatrix),Ot.setValue(Z,"viewMatrix",C.matrixWorldInverse);const Wn=Ot.map.cameraPosition;Wn!==void 0&&Wn.setValue(Z,at.setFromMatrixPosition(C.matrixWorld)),Qe.logarithmicDepthBuffer&&Ot.setValue(Z,"logDepthBufFC",2/(Math.log(C.far+1)/Math.LN2)),(z.isMeshPhongMaterial||z.isMeshToonMaterial||z.isMeshLambertMaterial||z.isMeshBasicMaterial||z.isMeshStandardMaterial||z.isShaderMaterial)&&Ot.setValue(Z,"isOrthographic",C.isOrthographicCamera===!0),J!==C&&(J=C,Et=!0,Lt=!0)}if(k.isSkinnedMesh){Ot.setOptional(Z,k,"bindMatrix"),Ot.setOptional(Z,k,"bindMatrixInverse");const On=k.skeleton;On&&(On.boneTexture===null&&On.computeBoneTexture(),Ot.setValue(Z,"boneTexture",On.boneTexture,mt))}k.isBatchedMesh&&(Ot.setOptional(Z,k,"batchingTexture"),Ot.setValue(Z,"batchingTexture",k._matricesTexture,mt),Ot.setOptional(Z,k,"batchingIdTexture"),Ot.setValue(Z,"batchingIdTexture",k._indirectTexture,mt),Ot.setOptional(Z,k,"batchingColorTexture"),k._colorsTexture!==null&&Ot.setValue(Z,"batchingColorTexture",k._colorsTexture,mt));const Nn=Y.morphAttributes;if((Nn.position!==void 0||Nn.normal!==void 0||Nn.color!==void 0)&&St.update(k,Y,Ut),(Et||pt.receiveShadow!==k.receiveShadow)&&(pt.receiveShadow=k.receiveShadow,Ot.setValue(Z,"receiveShadow",k.receiveShadow)),z.isMeshGouraudMaterial&&z.envMap!==null&&(en.envMap.value=xe,en.flipEnvMap.value=xe.isCubeTexture&&xe.isRenderTargetTexture===!1?-1:1),z.isMeshStandardMaterial&&z.envMap===null&&F.environment!==null&&(en.envMapIntensity.value=F.environmentIntensity),en.dfgLUT!==void 0&&(en.dfgLUT.value=NY()),Et&&(Ot.setValue(Z,"toneMappingExposure",N.toneMappingExposure),pt.needsLights&&De(en,Lt),Q&&z.fog===!0&&Tt.refreshFogUniforms(en,Q),Tt.refreshMaterialUniforms(en,z,ue,de,A.state.transmissionRenderTarget[C.id]),f1.upload(Z,W(pt),en,mt)),z.isShaderMaterial&&z.uniformsNeedUpdate===!0&&(f1.upload(Z,W(pt),en,mt),z.uniformsNeedUpdate=!1),z.isSpriteMaterial&&Ot.setValue(Z,"center",k.center),Ot.setValue(Z,"modelViewMatrix",k.modelViewMatrix),Ot.setValue(Z,"normalMatrix",k.normalMatrix),Ot.setValue(Z,"modelMatrix",k.matrixWorld),z.isShaderMaterial||z.isRawShaderMaterial){const On=z.uniformsGroups;for(let Wn=0,mh=On.length;Wn0&&mt.useMultisampledRTT(C)===!1?k=rt.get(C).__webglMultisampledFramebuffer:Array.isArray(Ne)?k=Ne[Y]:k=Ne,$.copy(C.viewport),se.copy(C.scissor),le=C.scissorTest}else $.copy(Ke).multiplyScalar(ue).floor(),se.copy(nt).multiplyScalar(ue).floor(),le=xt;if(Y!==0&&(k=M),Ye.bindFramebuffer(Z.FRAMEBUFFER,k)&&z&&Ye.drawBuffers(C,k),Ye.viewport($),Ye.scissor(se),Ye.setScissorTest(le),Q){const xe=rt.get(C.texture);Z.framebufferTexture2D(Z.FRAMEBUFFER,Z.COLOR_ATTACHMENT0,Z.TEXTURE_CUBE_MAP_POSITIVE_X+F,xe.__webglTexture,Y)}else if(ae){const xe=F;for(let Ae=0;Ae=0&&F<=C.width-z&&Y>=0&&Y<=C.height-k&&(C.textures.length>1&&Z.readBuffer(Z.COLOR_ATTACHMENT0+ce),Z.readPixels(F,Y,z,k,Le.convert(Ne),Le.convert(Fe),Q))}finally{const Ae=D!==null?rt.get(D).__webglFramebuffer:null;Ye.bindFramebuffer(Z.FRAMEBUFFER,Ae)}}},this.readRenderTargetPixelsAsync=async function(C,F,Y,z,k,Q,ae,ce=0){if(!(C&&C.isWebGLRenderTarget))throw new Error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not THREE.WebGLRenderTarget.");let xe=rt.get(C).__webglFramebuffer;if(C.isWebGLCubeRenderTarget&&ae!==void 0&&(xe=xe[ae]),xe)if(F>=0&&F<=C.width-z&&Y>=0&&Y<=C.height-k){Ye.bindFramebuffer(Z.FRAMEBUFFER,xe);const Ae=C.textures[ce],Ne=Ae.format,Fe=Ae.type;if(!Qe.textureFormatReadable(Ne))throw new Error("THREE.WebGLRenderer.readRenderTargetPixelsAsync: renderTarget is not in RGBA or implementation defined format.");if(!Qe.textureTypeReadable(Fe))throw new Error("THREE.WebGLRenderer.readRenderTargetPixelsAsync: renderTarget is not in UnsignedByteType or implementation defined type.");const Oe=Z.createBuffer();Z.bindBuffer(Z.PIXEL_PACK_BUFFER,Oe),Z.bufferData(Z.PIXEL_PACK_BUFFER,Q.byteLength,Z.STREAM_READ),C.textures.length>1&&Z.readBuffer(Z.COLOR_ATTACHMENT0+ce),Z.readPixels(F,Y,z,k,Le.convert(Ne),Le.convert(Fe),0);const Ze=D!==null?rt.get(D).__webglFramebuffer:null;Ye.bindFramebuffer(Z.FRAMEBUFFER,Ze);const $e=Z.fenceSync(Z.SYNC_GPU_COMMANDS_COMPLETE,0);return Z.flush(),await iH(Z,$e,4),Z.bindBuffer(Z.PIXEL_PACK_BUFFER,Oe),Z.getBufferSubData(Z.PIXEL_PACK_BUFFER,0,Q),Z.deleteBuffer(Oe),Z.deleteSync($e),Q}else throw new Error("THREE.WebGLRenderer.readRenderTargetPixelsAsync: requested read bounds are out of range.")},this.copyFramebufferToTexture=function(C,F=null,Y=0){const z=Math.pow(2,-Y),k=Math.floor(C.image.width*z),Q=Math.floor(C.image.height*z),ae=F!==null?F.x:0,ce=F!==null?F.y:0;mt.setTexture2D(C,0),Z.copyTexSubImage2D(Z.TEXTURE_2D,Y,0,0,ae,ce,k,Q),Ye.unbindTexture()};const I=Z.createFramebuffer(),V=Z.createFramebuffer();this.copyTextureToTexture=function(C,F,Y=null,z=null,k=0,Q=null){Q===null&&(k!==0?(vd("WebGLRenderer: copyTextureToTexture function signature has changed to support src and dst mipmap levels."),Q=k,k=0):Q=0);let ae,ce,xe,Ae,Ne,Fe,Oe,Ze,$e;const vt=C.isCompressedTexture?C.mipmaps[Q]:C.image;if(Y!==null)ae=Y.max.x-Y.min.x,ce=Y.max.y-Y.min.y,xe=Y.isBox3?Y.max.z-Y.min.z:1,Ae=Y.min.x,Ne=Y.min.y,Fe=Y.isBox3?Y.min.z:0;else{const Nn=Math.pow(2,-k);ae=Math.floor(vt.width*Nn),ce=Math.floor(vt.height*Nn),C.isDataArrayTexture?xe=vt.depth:C.isData3DTexture?xe=Math.floor(vt.depth*Nn):xe=1,Ae=0,Ne=0,Fe=0}z!==null?(Oe=z.x,Ze=z.y,$e=z.z):(Oe=0,Ze=0,$e=0);const Rt=Le.convert(F.format),pt=Le.convert(F.type);let Ct;F.isData3DTexture?(mt.setTexture3D(F,0),Ct=Z.TEXTURE_3D):F.isDataArrayTexture||F.isCompressedArrayTexture?(mt.setTexture2DArray(F,0),Ct=Z.TEXTURE_2D_ARRAY):(mt.setTexture2D(F,0),Ct=Z.TEXTURE_2D),Z.pixelStorei(Z.UNPACK_FLIP_Y_WEBGL,F.flipY),Z.pixelStorei(Z.UNPACK_PREMULTIPLY_ALPHA_WEBGL,F.premultiplyAlpha),Z.pixelStorei(Z.UNPACK_ALIGNMENT,F.unpackAlignment);const je=Z.getParameter(Z.UNPACK_ROW_LENGTH),Ut=Z.getParameter(Z.UNPACK_IMAGE_HEIGHT),Ft=Z.getParameter(Z.UNPACK_SKIP_PIXELS),Et=Z.getParameter(Z.UNPACK_SKIP_ROWS),Lt=Z.getParameter(Z.UNPACK_SKIP_IMAGES);Z.pixelStorei(Z.UNPACK_ROW_LENGTH,vt.width),Z.pixelStorei(Z.UNPACK_IMAGE_HEIGHT,vt.height),Z.pixelStorei(Z.UNPACK_SKIP_PIXELS,Ae),Z.pixelStorei(Z.UNPACK_SKIP_ROWS,Ne),Z.pixelStorei(Z.UNPACK_SKIP_IMAGES,Fe);const Ot=C.isDataArrayTexture||C.isData3DTexture,en=F.isDataArrayTexture||F.isData3DTexture;if(C.isDepthTexture){const Nn=rt.get(C),On=rt.get(F),Wn=rt.get(Nn.__renderTarget),mh=rt.get(On.__renderTarget);Ye.bindFramebuffer(Z.READ_FRAMEBUFFER,Wn.__webglFramebuffer),Ye.bindFramebuffer(Z.DRAW_FRAMEBUFFER,mh.__webglFramebuffer);for(let Or=0;Or"u"||typeof window.document>"u"||typeof window.document.createElement>"u"?zY:HY;s8.useSyncExternalStore=Ed.useSyncExternalStore!==void 0?Ed.useSyncExternalStore:GY;r8.exports=s8;var VY=r8.exports;/** + * @license React + * use-sync-external-store-shim/with-selector.production.js + * + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var Xy=he,kY=VY;function XY(n,e){return n===e&&(n!==0||1/n===1/e)||n!==n&&e!==e}var WY=typeof Object.is=="function"?Object.is:XY,YY=kY.useSyncExternalStore,qY=Xy.useRef,ZY=Xy.useEffect,jY=Xy.useMemo,KY=Xy.useDebugValue;a8.useSyncExternalStoreWithSelector=function(n,e,t,i,a){var r=qY(null);if(r.current===null){var s={hasValue:!1,value:null};r.current=s}else s=r.current;r=jY(function(){function c(g){if(!h){if(h=!0,f=g,g=i(g),a!==void 0&&s.hasValue){var y=s.value;if(a(y,g))return d=y}return d=g}if(y=d,WY(f,g))return y;var E=i(g);return a!==void 0&&a(y,E)?(f=g,y):(f=g,d=E)}var h=!1,f,d,m=t===void 0?null:t;return[function(){return c(e())},m===null?void 0:function(){return c(m())}]},[e,t,i,a]);var o=YY(n,r[0],r[1]);return ZY(function(){s.hasValue=!0,s.value=o},[o]),KY(o),o};i8.exports=a8;var JY=i8.exports;const QY=Zx(JY),aD=n=>{let e;const t=new Set,i=(h,f)=>{const d=typeof h=="function"?h(e):h;if(!Object.is(d,e)){const m=e;e=f??(typeof d!="object"||d===null)?d:Object.assign({},e,d),t.forEach(g=>g(e,m))}},a=()=>e,o={setState:i,getState:a,getInitialState:()=>c,subscribe:h=>(t.add(h),()=>t.delete(h))},c=e=n(i,a,o);return o},$Y=n=>n?aD(n):aD,{useSyncExternalStoreWithSelector:eq}=QY,tq=n=>n;function nq(n,e=tq,t){const i=eq(n.subscribe,n.getState,n.getInitialState,e,t);return IT.useDebugValue(i),i}const rD=(n,e)=>{const t=$Y(n),i=(a,r=e)=>nq(t,a,r);return Object.assign(i,t),i},o8=(n,e)=>n?rD(n,e):rD,iq=n=>typeof n=="object"&&typeof n.then=="function",_u=[];function l8(n,e,t=(i,a)=>i===a){if(n===e)return!0;if(!n||!e)return!1;const i=n.length;if(e.length!==i)return!1;for(let a=0;a0&&(r.timeout&&clearTimeout(r.timeout),r.timeout=setTimeout(r.remove,i.lifespan)),r.response;if(!t)throw r.promise}const a={keys:e,equal:i.equal,remove:()=>{const r=_u.indexOf(a);r!==-1&&_u.splice(r,1)},promise:(iq(n)?n:n(...e)).then(r=>{a.response=r,i.lifespan&&i.lifespan>0&&(a.timeout=setTimeout(a.remove,i.lifespan))}).catch(r=>a.error=r)};if(_u.push(a),!t)throw a.promise}const aq=(n,e,t)=>c8(n,e,!1,t),rq=(n,e,t)=>void c8(n,e,!0,t),sq=n=>{if(n===void 0||n.length===0)_u.splice(0,_u.length);else{const e=_u.find(t=>l8(n,t.keys,t.equal));e&&e.remove()}};var u8={exports:{}},h8={exports:{}},f8={exports:{}},d8={};/** + * @license React + * scheduler.production.js + * + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */(function(n){function e(q,te){var ee=q.length;q.push(te);e:for(;0>>1,ue=q[de];if(0>>1;dea(Ke,ee))nta(xt,Ke)?(q[de]=xt,q[nt]=ee,de=nt):(q[de]=Ke,q[He]=ee,de=He);else if(nta(xt,ee))q[de]=xt,q[nt]=ee,de=nt;else break e}}return te}function a(q,te){var ee=q.sortIndex-te.sortIndex;return ee!==0?ee:q.id-te.id}if(n.unstable_now=void 0,typeof performance=="object"&&typeof performance.now=="function"){var r=performance;n.unstable_now=function(){return r.now()}}else{var s=Date,o=s.now();n.unstable_now=function(){return s.now()-o}}var c=[],h=[],f=1,d=null,m=3,g=!1,y=!1,E=!1,S=typeof setTimeout=="function"?setTimeout:null,v=typeof clearTimeout=="function"?clearTimeout:null,_=typeof setImmediate<"u"?setImmediate:null;function A(q){for(var te=t(h);te!==null;){if(te.callback===null)i(h);else if(te.startTime<=q)i(h),te.sortIndex=te.expirationTime,e(c,te);else break;te=t(h)}}function b(q){if(E=!1,A(q),!y)if(t(c)!==null)y=!0,se();else{var te=t(h);te!==null&&le(b,te.startTime-q)}}var O=!1,N=-1,L=5,B=-1;function w(){return!(n.unstable_now()-Bq&&w());){var de=d.callback;if(typeof de=="function"){d.callback=null,m=d.priorityLevel;var ue=de(d.expirationTime<=q);if(q=n.unstable_now(),typeof ue=="function"){d.callback=ue,A(q),te=!0;break t}d===t(c)&&i(c),A(q)}else i(c);d=t(c)}if(d!==null)te=!0;else{var Pe=t(h);Pe!==null&&le(b,Pe.startTime-q),te=!1}}break e}finally{d=null,m=ee,g=!1}te=void 0}}finally{te?G():O=!1}}}var G;if(typeof _=="function")G=function(){_(D)};else if(typeof MessageChannel<"u"){var J=new MessageChannel,$=J.port2;J.port1.onmessage=D,G=function(){$.postMessage(null)}}else G=function(){S(D,0)};function se(){O||(O=!0,G())}function le(q,te){N=S(function(){q(n.unstable_now())},te)}n.unstable_IdlePriority=5,n.unstable_ImmediatePriority=1,n.unstable_LowPriority=4,n.unstable_NormalPriority=3,n.unstable_Profiling=null,n.unstable_UserBlockingPriority=2,n.unstable_cancelCallback=function(q){q.callback=null},n.unstable_continueExecution=function(){y||g||(y=!0,se())},n.unstable_forceFrameRate=function(q){0>q||125de?(q.sortIndex=ee,e(h,q),t(c)===null&&q===t(h)&&(E?(v(N),N=-1):E=!0,le(b,ee-de))):(q.sortIndex=ue,e(c,q),y||g||(y=!0,se())),q},n.unstable_shouldYield=w,n.unstable_wrapCallback=function(q){var te=m;return function(){var ee=m;m=te;try{return q.apply(this,arguments)}finally{m=ee}}}})(d8);f8.exports=d8;var zE=f8.exports;/** + * @license React + * react-reconciler.production.js + * + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */(function(n){n.exports=function(e){function t(l,u,p,x){return new H9(l,u,p,x)}function i(){}function a(l){var u="https://react.dev/errors/"+l;if(1)":-1T||ye[x]!==Xe[T]){var ct=` +`+ye[x].replace(" at new "," at ");return l.displayName&&ct.includes("")&&(ct=ct.replace("",l.displayName)),ct}while(1<=x&&0<=T);break}}}finally{rS=!1,Error.prepareStackTrace=p}return(p=l?l.displayName||l.name:"")?o(p):""}function h(l){switch(l.tag){case 26:case 27:case 5:return o(l.type);case 16:return o("Lazy");case 13:return o("Suspense");case 19:return o("SuspenseList");case 0:case 15:return l=c(l.type,!1),l;case 11:return l=c(l.type.render,!1),l;case 1:return l=c(l.type,!0),l;default:return""}}function f(l){try{var u="";do u+=h(l),l=l.return;while(l);return u}catch(p){return` +Error generating stack: `+p.message+` +`+p.stack}}function d(l){var u=l,p=l;if(l.alternate)for(;u.return;)u=u.return;else{l=u;do u=l,u.flags&4098&&(p=u.return),l=u.return;while(l)}return u.tag===3?p:null}function m(l){if(d(l)!==l)throw Error(a(188))}function g(l){var u=l.alternate;if(!u){if(u=d(l),u===null)throw Error(a(188));return u!==l?null:l}for(var p=l,x=u;;){var T=p.return;if(T===null)break;var R=T.alternate;if(R===null){if(x=T.return,x!==null){p=x;continue}break}if(T.child===R.child){for(R=T.child;R;){if(R===p)return m(T),l;if(R===x)return m(T),u;R=R.sibling}throw Error(a(188))}if(p.return!==x.return)p=T,x=R;else{for(var X=!1,re=T.child;re;){if(re===p){X=!0,p=T,x=R;break}if(re===x){X=!0,x=T,p=R;break}re=re.sibling}if(!X){for(re=R.child;re;){if(re===p){X=!0,p=R,x=T;break}if(re===x){X=!0,x=R,p=T;break}re=re.sibling}if(!X)throw Error(a(189))}}if(p.alternate!==x)throw Error(a(190))}if(p.tag!==3)throw Error(a(188));return p.stateNode.current===p?l:u}function y(l){var u=l.tag;if(u===5||u===26||u===27||u===6)return l;for(l=l.child;l!==null;){if(u=y(l),u!==null)return u;l=l.sibling}return null}function E(l){var u=l.tag;if(u===5||u===26||u===27||u===6)return l;for(l=l.child;l!==null;){if(l.tag!==4&&(u=E(l),u!==null))return u;l=l.sibling}return null}function S(l){return{current:l}}function v(l){0>Eh||(l.current=hS[Eh],hS[Eh]=null,Eh--)}function _(l,u){Eh++,hS[Eh]=l.current,l.current=u}function A(l){return l>>>=0,l===0?32:31-(sL(l)/oL|0)|0}function b(l){var u=l&42;if(u!==0)return u;switch(l&-l){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:return 64;case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return l&4194176;case 4194304:case 8388608:case 16777216:case 33554432:return l&62914560;case 67108864:return 67108864;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 0;default:return l}}function O(l,u){var p=l.pendingLanes;if(p===0)return 0;var x=0,T=l.suspendedLanes,R=l.pingedLanes,X=l.warmLanes;l=l.finishedLanes!==0;var re=p&134217727;return re!==0?(p=re&~T,p!==0?x=b(p):(R&=re,R!==0?x=b(R):l||(X=re&~X,X!==0&&(x=b(X))))):(re=p&~T,re!==0?x=b(re):R!==0?x=b(R):l||(X=p&~X,X!==0&&(x=b(X)))),x===0?0:u!==0&&u!==x&&!(u&T)&&(T=x&-x,X=u&-u,T>=X||T===32&&(X&4194176)!==0)?u:x}function N(l,u){return(l.pendingLanes&~(l.suspendedLanes&~l.pingedLanes)&u)===0}function L(l,u){switch(l){case 1:case 2:case 4:case 8:return u+250;case 16:case 32:case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return u+5e3;case 4194304:case 8388608:case 16777216:case 33554432:return-1;case 67108864:case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return-1}}function B(){var l=lg;return lg<<=1,!(lg&4194176)&&(lg=128),l}function w(){var l=cg;return cg<<=1,!(cg&62914560)&&(cg=4194304),l}function D(l){for(var u=[],p=0;31>p;p++)u.push(l);return u}function G(l,u){l.pendingLanes|=u,u!==268435456&&(l.suspendedLanes=0,l.pingedLanes=0,l.warmLanes=0)}function J(l,u,p,x,T,R){var X=l.pendingLanes;l.pendingLanes=p,l.suspendedLanes=0,l.pingedLanes=0,l.warmLanes=0,l.expiredLanes&=p,l.entangledLanes&=p,l.errorRecoveryDisabledLanes&=p,l.shellSuspendCounter=0;var re=l.entanglements,ye=l.expirationTimes,Xe=l.hiddenUpdates;for(p=X&~p;0>=X,T-=X,fo=1<<32-ur(u)+T|p<Tn?(Qi=Wt,Wt=null):Qi=Wt.sibling;var bn=Mt(be,Wt,Ce[Tn],st);if(bn===null){Wt===null&&(Wt=Qi);break}l&&Wt&&bn.alternate===null&&u(be,Wt),ge=R(bn,ge,Tn),ti===null?Pt=bn:ti.sibling=bn,ti=bn,Wt=Qi}if(Tn===Ce.length)return p(be,Wt),En&&ue(be,Tn),Pt;if(Wt===null){for(;TnTn?(Qi=Wt,Wt=null):Qi=Wt.sibling;var Ml=Mt(be,Wt,bn.value,st);if(Ml===null){Wt===null&&(Wt=Qi);break}l&&Wt&&Ml.alternate===null&&u(be,Wt),ge=R(Ml,ge,Tn),ti===null?Pt=Ml:ti.sibling=Ml,ti=Ml,Wt=Qi}if(bn.done)return p(be,Wt),En&&ue(be,Tn),Pt;if(Wt===null){for(;!bn.done;Tn++,bn=Ce.next())bn=At(be,bn.value,st),bn!==null&&(ge=R(bn,ge,Tn),ti===null?Pt=bn:ti.sibling=bn,ti=bn);return En&&ue(be,Tn),Pt}for(Wt=x(Wt);!bn.done;Tn++,bn=Ce.next())bn=Kt(Wt,be,Tn,bn.value,st),bn!==null&&(l&&bn.alternate!==null&&Wt.delete(bn.key===null?Tn:bn.key),ge=R(bn,ge,Tn),ti===null?Pt=bn:ti.sibling=bn,ti=bn);return l&&Wt.forEach(function(SL){return u(be,SL)}),En&&ue(be,Tn),Pt}function Vc(be,ge,Ce,st){if(typeof Ce=="object"&&Ce!==null&&Ce.type===Sh&&Ce.key===null&&(Ce=Ce.props.children),typeof Ce=="object"&&Ce!==null){switch(Ce.$$typeof){case rg:e:{for(var Pt=Ce.key;ge!==null;){if(ge.key===Pt){if(Pt=Ce.type,Pt===Sh){if(ge.tag===7){p(be,ge.sibling),st=T(ge,Ce.props.children),st.return=be,be=st;break e}}else if(ge.elementType===Pt||typeof Pt=="object"&&Pt!==null&&Pt.$$typeof===xl&&hi(Pt)===ge.type){p(be,ge.sibling),st=T(ge,Ce.props),$t(st,Ce),st.return=be,be=st;break e}p(be,ge);break}else u(be,ge);ge=ge.sibling}Ce.type===Sh?(st=Dc(Ce.props.children,be.mode,st,Ce.key),st.return=be,be=st):(st=ag(Ce.type,Ce.key,Ce.props,null,be.mode,st),$t(st,Ce),st.return=be,be=st)}return X(be);case _h:e:{for(Pt=Ce.key;ge!==null;){if(ge.key===Pt)if(ge.tag===4&&ge.stateNode.containerInfo===Ce.containerInfo&&ge.stateNode.implementation===Ce.implementation){p(be,ge.sibling),st=T(ge,Ce.children||[]),st.return=be,be=st;break e}else{p(be,ge);break}else u(be,ge);ge=ge.sibling}st=K_(Ce,be.mode,st),st.return=be,be=st}return X(be);case xl:return Pt=Ce._init,Ce=Pt(Ce._payload),Vc(be,ge,Ce,st)}if(sg(Ce))return zr(be,ge,Ce,st);if(r(Ce)){if(Pt=r(Ce),typeof Pt!="function")throw Error(a(150));return Ce=Pt.call(Ce),xp(be,ge,Ce,st)}if(typeof Ce.then=="function")return Vc(be,ge,Nt(Ce),st);if(Ce.$$typeof===vl)return Vc(be,ge,Q0(be,Ce),st);jt(be,Ce)}return typeof Ce=="string"&&Ce!==""||typeof Ce=="number"||typeof Ce=="bigint"?(Ce=""+Ce,ge!==null&&ge.tag===6?(p(be,ge.sibling),st=T(ge,Ce),st.return=be,be=st):(p(be,ge),st=j_(Ce,be.mode,st),st.return=be,be=st),X(be)):p(be,ge)}return function(be,ge,Ce,st){try{hp=0;var Pt=Vc(be,ge,Ce,st);return Ih=null,Pt}catch(Wt){if(Wt===up)throw Wt;var ti=t(29,Wt,null,be.mode);return ti.lanes=st,ti.return=be,ti}finally{}}}function hl(l,u){l=xo,_(vg,l),_(Bh,u),xo=l|u.baseLanes}function Ps(){_(vg,xo),_(Bh,Bh.current)}function ar(){xo=vg.current,v(Bh),v(vg)}function Ni(l){var u=l.alternate;_(Gi,Gi.current&1),_(Fr,l),Hs===null&&(u===null||Bh.current!==null||u.memoizedState!==null)&&(Hs=l)}function Va(l){if(l.tag===22){if(_(Gi,Gi.current),_(Fr,l),Hs===null){var u=l.alternate;u!==null&&u.memoizedState!==null&&(Hs=l)}}else Oi()}function Oi(){_(Gi,Gi.current),_(Fr,Fr.current)}function zt(l){v(Fr),Hs===l&&(Hs=null),v(Gi)}function ka(l){for(var u=l;u!==null;){if(u.tag===13){var p=u.memoizedState;if(p!==null&&(p=p.dehydrated,p===null||lS(p)||cS(p)))return u}else if(u.tag===19&&u.memoizedProps.revealOrder!==void 0){if(u.flags&128)return u}else if(u.child!==null){u.child.return=u,u=u.child;continue}if(u===l)break;for(;u.sibling===null;){if(u.return===null||u.return===l)return null;u=u.return}u.sibling.return=u.return,u=u.sibling}return null}function Ln(){throw Error(a(321))}function U(l,u){if(u===null)return!1;for(var p=0;pR?R:8);var X=Zt.T,re={};Zt.T=re,m_(l,!1,u,p);try{var ye=T(),Xe=Zt.S;if(Xe!==null&&Xe(re,ye),ye!==null&&typeof ye=="object"&&typeof ye.then=="function"){var ct=ut(ye,x);Kd(l,u,ct,lr(l))}else Kd(l,u,x,lr(l))}catch(At){Kd(l,u,{then:function(){},status:"rejected",reason:At},lr())}finally{Wa(R),Zt.T=X}}function cM(l){var u=l.memoizedState;if(u!==null)return u;u={memoizedState:Ah,baseState:Ah,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:k,lastRenderedState:Ah},next:null};var p={};return u.next={memoizedState:p,baseState:p,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:k,lastRenderedState:p},next:null},l.memoizedState=u,l=l.alternate,l!==null&&(l.memoizedState=u),u}function p_(){return va(Oc)}function uM(){return C().memoizedState}function hM(){return C().memoizedState}function A9(l){for(var u=l.return;u!==null;){switch(u.tag){case 24:case 3:var p=lr();l=ke(p);var x=Ve(u,l,p);x!==null&&(Ra(x,u,p),St(x,u,p)),u={cache:R_()},l.payload=u;return}u=u.return}}function E9(l,u,p){var x=lr();p={lane:x,revertLane:0,action:p,hasEagerState:!1,eagerState:null,next:null},j0(l)?dM(u,p):(p=Ue(l,u,p,x),p!==null&&(Ra(p,l,x),pM(p,u,x)))}function fM(l,u,p){var x=lr();Kd(l,u,p,x)}function Kd(l,u,p,x){var T={lane:x,revertLane:0,action:p,hasEagerState:!1,eagerState:null,next:null};if(j0(l))dM(u,T);else{var R=l.alternate;if(l.lanes===0&&(R===null||R.lanes===0)&&(R=u.lastRenderedReducer,R!==null))try{var X=u.lastRenderedState,re=R(X,p);if(T.hasEagerState=!0,T.eagerState=re,fr(re,X))return Z(l,u,T,0),Yn===null&&Re(),!1}catch{}finally{}if(p=Ue(l,u,T,x),p!==null)return Ra(p,l,x),pM(p,u,x),!0}return!1}function m_(l,u,p,x){if(x={lane:2,revertLane:Ge(),action:x,hasEagerState:!1,eagerState:null,next:null},j0(l)){if(u)throw Error(a(479))}else u=Ue(l,p,x,2),u!==null&&Ra(u,l,2)}function j0(l){var u=l.alternate;return l===rn||u!==null&&u===rn}function dM(l,u){Uh=xg=!0;var p=l.pending;p===null?u.next=u:(u.next=p.next,p.next=u),l.pending=u}function pM(l,u,p){if(p&4194176){var x=u.lanes;x&=l.pendingLanes,p|=x,u.lanes=p,se(l,p)}}function g_(l,u,p,x){u=l.memoizedState,p=p(x,u),p=p==null?u:Q_({},u,p),l.memoizedState=p,l.lanes===0&&(l.updateQueue.baseState=p)}function mM(l,u,p,x,T,R,X){return l=l.stateNode,typeof l.shouldComponentUpdate=="function"?l.shouldComponentUpdate(x,R,X):u.prototype&&u.prototype.isPureReactComponent?!_e(p,x)||!_e(T,R):!0}function gM(l,u,p,x){l=u.state,typeof u.componentWillReceiveProps=="function"&&u.componentWillReceiveProps(p,x),typeof u.UNSAFE_componentWillReceiveProps=="function"&&u.UNSAFE_componentWillReceiveProps(p,x),u.state!==l&&AS.enqueueReplaceState(u,u.state,null)}function bc(l,u){var p=u;if("ref"in u){p={};for(var x in u)x!=="ref"&&(p[x]=u[x])}if(l=l.defaultProps){p===u&&(p=Q_({},p));for(var T in l)p[T]===void 0&&(p[T]=l[T])}return p}function K0(l,u){try{var p=l.onUncaughtError;p(u.value,{componentStack:u.stack})}catch(x){setTimeout(function(){throw x})}}function vM(l,u,p){try{var x=l.onCaughtError;x(p.value,{componentStack:p.stack,errorBoundary:u.tag===1?u.stateNode:null})}catch(T){setTimeout(function(){throw T})}}function v_(l,u,p){return p=ke(p),p.tag=3,p.payload={element:null},p.callback=function(){K0(l,u)},p}function xM(l){return l=ke(l),l.tag=3,l}function yM(l,u,p,x){var T=p.type.getDerivedStateFromError;if(typeof T=="function"){var R=x.value;l.payload=function(){return T(R)},l.callback=function(){vM(u,p,x)}}var X=p.stateNode;X!==null&&typeof X.componentDidCatch=="function"&&(l.callback=function(){vM(u,p,x),typeof T!="function"&&(bl===null?bl=new Set([this]):bl.add(this));var re=x.stack;this.componentDidCatch(x.value,{componentStack:re!==null?re:""})})}function T9(l,u,p,x,T){if(p.flags|=32768,x!==null&&typeof x=="object"&&typeof x.then=="function"){if(u=p.alternate,u!==null&&Qd(u,p,T,!0),p=Fr.current,p!==null){switch(p.tag){case 13:return Hs===null?W_():p.alternate===null&&Ai===0&&(Ai=3),p.flags&=-257,p.flags|=65536,p.lanes=T,x===gg?p.flags|=16384:(u=p.updateQueue,u===null?p.updateQueue=new Set([x]):u.add(x),q_(l,x,T)),!1;case 22:return p.flags|=65536,x===gg?p.flags|=16384:(u=p.updateQueue,u===null?(u={transitions:null,markerInstances:null,retryQueue:new Set([x])},p.updateQueue=u):(p=u.retryQueue,p===null?u.retryQueue=new Set([x]):p.add(x)),q_(l,x,T)),!1}throw Error(a(435,p.tag))}return q_(l,x,T),W_(),!1}if(En)return u=Fr.current,u!==null?(!(u.flags&65536)&&(u.flags|=256),u.flags|=65536,u.lanes=T,x!==pS&&(l=Error(a(422),{cause:x}),et(de(l,p)))):(x!==pS&&(u=Error(a(423),{cause:x}),et(de(u,p))),l=l.current.alternate,l.flags|=65536,T&=-T,l.lanes|=T,x=de(x,p),T=v_(l.stateNode,x,T),ne(l,T),Ai!==4&&(Ai=2)),!1;var R=Error(a(520),{cause:x});if(R=de(R,p),pp===null?pp=[R]:pp.push(R),Ai!==4&&(Ai=2),u===null)return!0;x=de(x,p),p=u;do{switch(p.tag){case 3:return p.flags|=65536,l=T&-T,p.lanes|=l,l=v_(p.stateNode,x,l),ne(p,l),!1;case 1:if(u=p.type,R=p.stateNode,(p.flags&128)===0&&(typeof u.getDerivedStateFromError=="function"||R!==null&&typeof R.componentDidCatch=="function"&&(bl===null||!bl.has(R))))return p.flags|=65536,T&=-T,p.lanes|=T,T=xM(T),yM(T,l,p,x),ne(p,T),!1}p=p.return}while(p!==null);return!1}function ca(l,u,p,x){u.child=l===null?tR(u,null,p,x):Bc(u,l.child,p,x)}function _M(l,u,p,x,T){p=p.render;var R=u.ref;if("ref"in x){var X={};for(var re in x)re!=="ref"&&(X[re]=x[re])}else X=x;return Mc(u),x=W(l,u,p,X,R,T),re=Me(),l!==null&&!Ki?(M(l,u,T),oo(l,u,T)):(En&&re&&He(u),u.flags|=1,ca(l,u,x,T),u.child)}function SM(l,u,p,x,T){if(l===null){var R=p.type;return typeof R=="function"&&!Z_(R)&&R.defaultProps===void 0&&p.compare===null?(u.tag=15,u.type=R,AM(l,u,R,x,T)):(l=ag(p.type,null,x,u,u.mode,T),l.ref=u.ref,l.return=u,u.child=l)}if(R=l.child,!b_(l,T)){var X=R.memoizedProps;if(p=p.compare,p=p!==null?p:_e,p(X,x)&&l.ref===u.ref)return oo(l,u,T)}return u.flags|=1,l=gl(R,x),l.ref=u.ref,l.return=u,u.child=l}function AM(l,u,p,x,T){if(l!==null){var R=l.memoizedProps;if(_e(R,x)&&l.ref===u.ref)if(Ki=!1,u.pendingProps=x=R,b_(l,T))l.flags&131072&&(Ki=!0);else return u.lanes=l.lanes,oo(l,u,T)}return x_(l,u,p,x,T)}function EM(l,u,p){var x=u.pendingProps,T=x.children,R=(u.stateNode._pendingVisibility&2)!==0,X=l!==null?l.memoizedState:null;if(Jd(l,u),x.mode==="hidden"||R){if(u.flags&128){if(x=X!==null?X.baseLanes|p:p,l!==null){for(T=u.child=l.child,R=0;T!==null;)R=R|T.lanes|T.childLanes,T=T.sibling;u.childLanes=R&~x}else u.childLanes=0,u.child=null;return TM(l,u,x,p)}if(p&536870912)u.memoizedState={baseLanes:0,cachePool:null},l!==null&&$0(u,X!==null?X.cachePool:null),X!==null?hl(u,X):Ps(),Va(u);else return u.lanes=u.childLanes=536870912,TM(l,u,X!==null?X.baseLanes|p:p,p)}else X!==null?($0(u,X.cachePool),hl(u,X),Oi(),u.memoizedState=null):(l!==null&&$0(u,null),Ps(),Oi());return ca(l,u,T,p),u.child}function TM(l,u,p,x){var T=w_();return T=T===null?null:{parent:ho?_i._currentValue:_i._currentValue2,pool:T},u.memoizedState={baseLanes:p,cachePool:T},l!==null&&$0(u,null),Ps(),Va(u),l!==null&&Qd(l,u,x,!0),null}function Jd(l,u){var p=u.ref;if(p===null)l!==null&&l.ref!==null&&(u.flags|=2097664);else{if(typeof p!="function"&&typeof p!="object")throw Error(a(284));(l===null||l.ref!==p)&&(u.flags|=2097664)}}function x_(l,u,p,x,T){return Mc(u),p=W(l,u,p,x,void 0,T),x=Me(),l!==null&&!Ki?(M(l,u,T),oo(l,u,T)):(En&&x&&He(u),u.flags|=1,ca(l,u,p,T),u.child)}function bM(l,u,p,x,T,R){return Mc(u),u.updateQueue=null,p=Te(u,x,p,T),oe(l),x=Me(),l!==null&&!Ki?(M(l,u,R),oo(l,u,R)):(En&&x&&He(u),u.flags|=1,ca(l,u,p,R),u.child)}function MM(l,u,p,x,T){if(Mc(u),u.stateNode===null){var R=Th,X=p.contextType;typeof X=="object"&&X!==null&&(R=va(X)),R=new p(x,R),u.memoizedState=R.state!==null&&R.state!==void 0?R.state:null,R.updater=AS,u.stateNode=R,R._reactInternals=u,R=u.stateNode,R.props=x,R.state=u.memoizedState,R.refs={},wt(u),X=p.contextType,R.context=typeof X=="object"&&X!==null?va(X):Th,R.state=u.memoizedState,X=p.getDerivedStateFromProps,typeof X=="function"&&(g_(u,p,X,x),R.state=u.memoizedState),typeof p.getDerivedStateFromProps=="function"||typeof R.getSnapshotBeforeUpdate=="function"||typeof R.UNSAFE_componentWillMount!="function"&&typeof R.componentWillMount!="function"||(X=R.state,typeof R.componentWillMount=="function"&&R.componentWillMount(),typeof R.UNSAFE_componentWillMount=="function"&&R.UNSAFE_componentWillMount(),X!==R.state&&AS.enqueueReplaceState(R,R.state,null),Le(u,x,R,T),me(),R.state=u.memoizedState),typeof R.componentDidMount=="function"&&(u.flags|=4194308),x=!0}else if(l===null){R=u.stateNode;var re=u.memoizedProps,ye=bc(p,re);R.props=ye;var Xe=R.context,ct=p.contextType;X=Th,typeof ct=="object"&&ct!==null&&(X=va(ct));var At=p.getDerivedStateFromProps;ct=typeof At=="function"||typeof R.getSnapshotBeforeUpdate=="function",re=u.pendingProps!==re,ct||typeof R.UNSAFE_componentWillReceiveProps!="function"&&typeof R.componentWillReceiveProps!="function"||(re||Xe!==X)&&gM(u,R,x,X),Sl=!1;var Mt=u.memoizedState;R.state=Mt,Le(u,x,R,T),me(),Xe=u.memoizedState,re||Mt!==Xe||Sl?(typeof At=="function"&&(g_(u,p,At,x),Xe=u.memoizedState),(ye=Sl||mM(u,p,ye,x,Mt,Xe,X))?(ct||typeof R.UNSAFE_componentWillMount!="function"&&typeof R.componentWillMount!="function"||(typeof R.componentWillMount=="function"&&R.componentWillMount(),typeof R.UNSAFE_componentWillMount=="function"&&R.UNSAFE_componentWillMount()),typeof R.componentDidMount=="function"&&(u.flags|=4194308)):(typeof R.componentDidMount=="function"&&(u.flags|=4194308),u.memoizedProps=x,u.memoizedState=Xe),R.props=x,R.state=Xe,R.context=X,x=ye):(typeof R.componentDidMount=="function"&&(u.flags|=4194308),x=!1)}else{R=u.stateNode,bt(l,u),X=u.memoizedProps,ct=bc(p,X),R.props=ct,At=u.pendingProps,Mt=R.context,Xe=p.contextType,ye=Th,typeof Xe=="object"&&Xe!==null&&(ye=va(Xe)),re=p.getDerivedStateFromProps,(Xe=typeof re=="function"||typeof R.getSnapshotBeforeUpdate=="function")||typeof R.UNSAFE_componentWillReceiveProps!="function"&&typeof R.componentWillReceiveProps!="function"||(X!==At||Mt!==ye)&&gM(u,R,x,ye),Sl=!1,Mt=u.memoizedState,R.state=Mt,Le(u,x,R,T),me();var Kt=u.memoizedState;X!==At||Mt!==Kt||Sl||l!==null&&l.dependencies!==null&&J0(l.dependencies)?(typeof re=="function"&&(g_(u,p,re,x),Kt=u.memoizedState),(ct=Sl||mM(u,p,ct,x,Mt,Kt,ye)||l!==null&&l.dependencies!==null&&J0(l.dependencies))?(Xe||typeof R.UNSAFE_componentWillUpdate!="function"&&typeof R.componentWillUpdate!="function"||(typeof R.componentWillUpdate=="function"&&R.componentWillUpdate(x,Kt,ye),typeof R.UNSAFE_componentWillUpdate=="function"&&R.UNSAFE_componentWillUpdate(x,Kt,ye)),typeof R.componentDidUpdate=="function"&&(u.flags|=4),typeof R.getSnapshotBeforeUpdate=="function"&&(u.flags|=1024)):(typeof R.componentDidUpdate!="function"||X===l.memoizedProps&&Mt===l.memoizedState||(u.flags|=4),typeof R.getSnapshotBeforeUpdate!="function"||X===l.memoizedProps&&Mt===l.memoizedState||(u.flags|=1024),u.memoizedProps=x,u.memoizedState=Kt),R.props=x,R.state=Kt,R.context=ye,x=ct):(typeof R.componentDidUpdate!="function"||X===l.memoizedProps&&Mt===l.memoizedState||(u.flags|=4),typeof R.getSnapshotBeforeUpdate!="function"||X===l.memoizedProps&&Mt===l.memoizedState||(u.flags|=1024),x=!1)}return R=x,Jd(l,u),x=(u.flags&128)!==0,R||x?(R=u.stateNode,p=x&&typeof p.getDerivedStateFromError!="function"?null:R.render(),u.flags|=1,l!==null&&x?(u.child=Bc(u,l.child,null,T),u.child=Bc(u,null,p,T)):ca(l,u,p,T),u.memoizedState=R.state,l=u.child):l=oo(l,u,T),l}function CM(l,u,p,x){return ht(),u.flags|=256,ca(l,u,p,x),u.child}function y_(l){return{baseLanes:l,cachePool:IM()}}function __(l,u,p){return l=l!==null?l.childLanes&~p:0,u&&(l|=Hr),l}function RM(l,u,p){var x=u.pendingProps,T=!1,R=(u.flags&128)!==0,X;if((X=R)||(X=l!==null&&l.memoizedState===null?!1:(Gi.current&2)!==0),X&&(T=!0,u.flags&=-129),X=(u.flags&32)!==0,u.flags&=-33,l===null){if(En){if(T?Ni(u):Oi(),En){var re=_a,ye;(ye=re)&&(re=GU(re,Fs),re!==null?(u.memoizedState={dehydrated:re,treeContext:Ic!==null?{id:fo,overflow:po}:null,retryLane:536870912},ye=t(18,null,null,0),ye.stateNode=re,ye.return=u,u.child=ye,wa=u,_a=null,ye=!0):ye=!1),ye||Je(u)}if(re=u.memoizedState,re!==null&&(re=re.dehydrated,re!==null))return cS(re)?u.lanes=16:u.lanes=536870912,null;zt(u)}return re=x.children,x=x.fallback,T?(Oi(),T=u.mode,re=A_({mode:"hidden",children:re},T),x=Dc(x,T,p,null),re.return=u,x.return=u,re.sibling=x,u.child=re,T=u.child,T.memoizedState=y_(p),T.childLanes=__(l,X,p),u.memoizedState=ES,x):(Ni(u),S_(u,re))}if(ye=l.memoizedState,ye!==null&&(re=ye.dehydrated,re!==null)){if(R)u.flags&256?(Ni(u),u.flags&=-257,u=E_(l,u,p)):u.memoizedState!==null?(Oi(),u.child=l.child,u.flags|=128,u=null):(Oi(),T=x.fallback,re=u.mode,x=A_({mode:"visible",children:x.children},re),T=Dc(T,re,p,null),T.flags|=2,x.return=u,T.return=u,x.sibling=T,u.child=x,Bc(u,l.child,null,p),x=u.child,x.memoizedState=y_(p),x.childLanes=__(l,X,p),u.memoizedState=ES,u=T);else if(Ni(u),cS(re))X=IU(re).digest,x=Error(a(419)),x.stack="",x.digest=X,et({value:x,source:null,stack:null}),u=E_(l,u,p);else if(Ki||Qd(l,u,p,!1),X=(p&l.childLanes)!==0,Ki||X){if(X=Yn,X!==null){if(x=p&-p,x&42)x=1;else switch(x){case 2:x=1;break;case 8:x=4;break;case 32:x=16;break;case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:case 4194304:case 8388608:case 16777216:case 33554432:x=64;break;case 268435456:x=134217728;break;default:x=0}if(x=x&(X.suspendedLanes|p)?0:x,x!==0&&x!==ye.retryLane)throw ye.retryLane=x,ze(l,x),Ra(X,l,x),iR}lS(re)||W_(),u=E_(l,u,p)}else lS(re)?(u.flags|=128,u.child=l.child,u=L9.bind(null,l),BU(re,u),u=null):(l=ye.treeContext,Ir&&(_a=FU(re),wa=u,En=!0,ps=null,Fs=!1,l!==null&&(Ur[Lr++]=fo,Ur[Lr++]=po,Ur[Lr++]=Ic,fo=l.id,po=l.overflow,Ic=u)),u=S_(u,x.children),u.flags|=4096);return u}return T?(Oi(),T=x.fallback,re=u.mode,ye=l.child,R=ye.sibling,x=gl(ye,{mode:"hidden",children:x.children}),x.subtreeFlags=ye.subtreeFlags&31457280,R!==null?T=gl(R,T):(T=Dc(T,re,p,null),T.flags|=2),T.return=u,x.return=u,x.sibling=T,u.child=x,x=T,T=u.child,re=l.child.memoizedState,re===null?re=y_(p):(ye=re.cachePool,ye!==null?(R=ho?_i._currentValue:_i._currentValue2,ye=ye.parent!==R?{parent:R,pool:R}:ye):ye=IM(),re={baseLanes:re.baseLanes|p,cachePool:ye}),T.memoizedState=re,T.childLanes=__(l,X,p),u.memoizedState=ES,x):(Ni(u),p=l.child,l=p.sibling,p=gl(p,{mode:"visible",children:x.children}),p.return=u,p.sibling=null,l!==null&&(X=u.deletions,X===null?(u.deletions=[l],u.flags|=16):X.push(l)),u.child=p,u.memoizedState=null,p)}function S_(l,u){return u=A_({mode:"visible",children:u},l.mode),u.return=l,l.child=u}function A_(l,u){return xC(l,u,0,null)}function E_(l,u,p){return Bc(u,l.child,null,p),l=S_(u,u.pendingProps.children),l.flags|=2,u.memoizedState=null,l}function wM(l,u,p){l.lanes|=u;var x=l.alternate;x!==null&&(x.lanes|=u),M_(l.return,u,p)}function T_(l,u,p,x,T){var R=l.memoizedState;R===null?l.memoizedState={isBackwards:u,rendering:null,renderingStartTime:0,last:x,tail:p,tailMode:T}:(R.isBackwards=u,R.rendering=null,R.renderingStartTime=0,R.last=x,R.tail=p,R.tailMode=T)}function DM(l,u,p){var x=u.pendingProps,T=x.revealOrder,R=x.tail;if(ca(l,u,x.children,p),x=Gi.current,x&2)x=x&1|2,u.flags|=128;else{if(l!==null&&l.flags&128)e:for(l=u.child;l!==null;){if(l.tag===13)l.memoizedState!==null&&wM(l,p,u);else if(l.tag===19)wM(l,p,u);else if(l.child!==null){l.child.return=l,l=l.child;continue}if(l===u)break e;for(;l.sibling===null;){if(l.return===null||l.return===u)break e;l=l.return}l.sibling.return=l.return,l=l.sibling}x&=1}switch(_(Gi,x),T){case"forwards":for(p=u.child,T=null;p!==null;)l=p.alternate,l!==null&&ka(l)===null&&(T=p),p=p.sibling;p=T,p===null?(T=u.child,u.child=null):(T=p.sibling,p.sibling=null),T_(u,!1,T,p,R);break;case"backwards":for(p=null,T=u.child,u.child=null;T!==null;){if(l=T.alternate,l!==null&&ka(l)===null){u.child=T;break}l=T.sibling,T.sibling=p,p=T,T=l}T_(u,!0,p,null,R);break;case"together":T_(u,!1,null,null,void 0);break;default:u.memoizedState=null}return u.child}function oo(l,u,p){if(l!==null&&(u.dependencies=l.dependencies),Tl|=u.lanes,!(p&u.childLanes))if(l!==null){if(Qd(l,u,p,!1),(p&u.childLanes)===0)return null}else return null;if(l!==null&&u.child!==l.child)throw Error(a(153));if(u.child!==null){for(l=u.child,p=gl(l,l.pendingProps),u.child=p,p.return=u;l.sibling!==null;)l=l.sibling,p=p.sibling=gl(l,l.pendingProps),p.return=u;p.sibling=null}return u.child}function b_(l,u){return l.lanes&u?!0:(l=l.dependencies,!!(l!==null&&J0(l)))}function b9(l,u,p){switch(u.tag){case 3:nt(u,u.stateNode.containerInfo),fl(u,_i,l.memoizedState.cache),ht();break;case 27:case 5:fe(u);break;case 4:nt(u,u.stateNode.containerInfo);break;case 10:fl(u,u.type,u.memoizedProps.value);break;case 13:var x=u.memoizedState;if(x!==null)return x.dehydrated!==null?(Ni(u),u.flags|=128,null):p&u.child.childLanes?RM(l,u,p):(Ni(u),l=oo(l,u,p),l!==null?l.sibling:null);Ni(u);break;case 19:var T=(l.flags&128)!==0;if(x=(p&u.childLanes)!==0,x||(Qd(l,u,p,!1),x=(p&u.childLanes)!==0),T){if(x)return DM(l,u,p);u.flags|=128}if(T=u.memoizedState,T!==null&&(T.rendering=null,T.tail=null,T.lastEffect=null),_(Gi,Gi.current),x)break;return null;case 22:case 23:return u.lanes=0,EM(l,u,p);case 24:fl(u,_i,l.memoizedState.cache)}return oo(l,u,p)}function NM(l,u,p){if(l!==null)if(l.memoizedProps!==u.pendingProps)Ki=!0;else{if(!b_(l,p)&&!(u.flags&128))return Ki=!1,b9(l,u,p);Ki=!!(l.flags&131072)}else Ki=!1,En&&u.flags&1048576&&Pe(u,fg,u.index);switch(u.lanes=0,u.tag){case 16:e:{l=u.pendingProps;var x=u.elementType,T=x._init;if(x=T(x._payload),u.type=x,typeof x=="function")Z_(x)?(l=bc(x,l),u.tag=1,u=MM(null,u,x,l,p)):(u.tag=0,u=x_(null,u,x,l,p));else{if(x!=null){if(T=x.$$typeof,T===eS){u.tag=11,u=_M(null,u,x,l,p);break e}else if(T===iS){u.tag=14,u=SM(null,u,x,l,p);break e}}throw u=s(x)||x,Error(a(306,u,""))}}return u;case 0:return x_(l,u,u.type,u.pendingProps,p);case 1:return x=u.type,T=bc(x,u.pendingProps),MM(l,u,x,T,p);case 3:e:{if(nt(u,u.stateNode.containerInfo),l===null)throw Error(a(387));var R=u.pendingProps;T=u.memoizedState,x=T.element,bt(l,u),Le(u,R,null,p);var X=u.memoizedState;if(R=X.cache,fl(u,_i,R),R!==T.cache&&C_(u,[_i],p,!0),me(),R=X.element,Ir&&T.isDehydrated)if(T={element:R,isDehydrated:!1,cache:X.cache},u.updateQueue.baseState=T,u.memoizedState=T,u.flags&256){u=CM(l,u,R,p);break e}else if(R!==x){x=de(Error(a(424)),u),et(x),u=CM(l,u,R,p);break e}else for(Ir&&(_a=PU(u.stateNode.containerInfo),wa=u,En=!0,ps=null,Fs=!0),p=tR(u,null,R,p),u.child=p;p;)p.flags=p.flags&-3|4096,p=p.sibling;else{if(ht(),R===x){u=oo(l,u,p);break e}ca(l,u,R,p)}u=u.child}return u;case 26:if(Br)return Jd(l,u),l===null?(p=WC(u.type,null,u.pendingProps,null))?u.memoizedState=p:En||(u.stateNode=$U(u.type,u.pendingProps,_l.current,u)):u.memoizedState=WC(u.type,l.memoizedProps,u.pendingProps,l.memoizedState),null;case 27:if(ya)return fe(u),l===null&&ya&&En&&(x=u.stateNode=JC(u.type,u.pendingProps,_l.current,ua.current,!1),wa=u,Fs=!0,_a=VC(x)),x=u.pendingProps.children,l!==null||En?ca(l,u,x,p):u.child=Bc(u,null,x,p),Jd(l,u),u.child;case 5:return l===null&&En&&(KU(u.type,u.pendingProps,ua.current),(T=x=_a)&&(x=HU(x,u.type,u.pendingProps,Fs),x!==null?(u.stateNode=x,wa=u,_a=VC(x),Fs=!1,T=!0):T=!1),T||Je(u)),fe(u),T=u.type,R=u.pendingProps,X=l!==null?l.memoizedProps:null,x=R.children,og(T,R)?x=null:X!==null&&og(T,X)&&(u.flags|=32),u.memoizedState!==null&&(T=W(l,u,De,null,null,p),ho?Oc._currentValue=T:Oc._currentValue2=T),Jd(l,u),ca(l,u,x,p),u.child;case 6:return l===null&&En&&(JU(u.pendingProps,ua.current),(l=p=_a)&&(p=zU(p,u.pendingProps,Fs),p!==null?(u.stateNode=p,wa=u,_a=null,l=!0):l=!1),l||Je(u)),null;case 13:return RM(l,u,p);case 4:return nt(u,u.stateNode.containerInfo),x=u.pendingProps,l===null?u.child=Bc(u,null,x,p):ca(l,u,x,p),u.child;case 11:return _M(l,u,u.type,u.pendingProps,p);case 7:return ca(l,u,u.pendingProps,p),u.child;case 8:return ca(l,u,u.pendingProps.children,p),u.child;case 12:return ca(l,u,u.pendingProps.children,p),u.child;case 10:return x=u.pendingProps,fl(u,u.type,x.value),ca(l,u,x.children,p),u.child;case 9:return T=u.type._context,x=u.pendingProps.children,Mc(u),T=va(T),x=x(T),u.flags|=1,ca(l,u,x,p),u.child;case 14:return SM(l,u,u.type,u.pendingProps,p);case 15:return AM(l,u,u.type,u.pendingProps,p);case 19:return DM(l,u,p);case 22:return EM(l,u,p);case 24:return Mc(u),x=va(_i),l===null?(T=w_(),T===null&&(T=Yn,R=R_(),T.pooledCache=R,R.refCount++,R!==null&&(T.pooledCacheLanes|=p),T=R),u.memoizedState={parent:x,cache:T},wt(u),fl(u,_i,T)):(l.lanes&p&&(bt(l,u),Le(u,null,null,p),me()),T=l.memoizedState,R=u.memoizedState,T.parent!==x?(T={parent:x,cache:x},u.memoizedState=T,u.lanes===0&&(u.memoizedState=u.updateQueue.baseState=T),fl(u,_i,x)):(x=R.cache,fl(u,_i,x),x!==T.cache&&C_(u,[_i],p,!0))),ca(l,u,u.pendingProps.children,p),u.child;case 29:throw u.pendingProps}throw Error(a(156,u.tag))}function fl(l,u,p){ho?(_(_g,u._currentValue),u._currentValue=p):(_(_g,u._currentValue2),u._currentValue2=p)}function lo(l){var u=_g.current;ho?l._currentValue=u:l._currentValue2=u,v(_g)}function M_(l,u,p){for(;l!==null;){var x=l.alternate;if((l.childLanes&u)!==u?(l.childLanes|=u,x!==null&&(x.childLanes|=u)):x!==null&&(x.childLanes&u)!==u&&(x.childLanes|=u),l===p)break;l=l.return}}function C_(l,u,p,x){var T=l.child;for(T!==null&&(T.return=l);T!==null;){var R=T.dependencies;if(R!==null){var X=T.child;R=R.firstContext;e:for(;R!==null;){var re=R;R=T;for(var ye=0;yemp&&(u.flags|=128,x=!0,ep(T,!1),u.lanes=4194304)}else{if(!x)if(l=ka(R),l!==null){if(u.flags|=128,x=!0,l=l.updateQueue,u.updateQueue=l,eg(u,l),ep(T,!0),T.tail===null&&T.tailMode==="hidden"&&!R.alternate&&!En)return di(u),null}else 2*ds()-T.renderingStartTime>mp&&p!==536870912&&(u.flags|=128,x=!0,ep(T,!1),u.lanes=4194304);T.isBackwards?(R.sibling=u.child,u.child=R):(l=T.last,l!==null?l.sibling=R:u.child=R,T.last=R)}return T.tail!==null?(u=T.tail,T.rendering=u,T.tail=u.sibling,T.renderingStartTime=ds(),u.sibling=null,l=Gi.current,_(Gi,x?l&1|2:l&1),u):(di(u),null);case 22:case 23:return zt(u),ar(),x=u.memoizedState!==null,l!==null?l.memoizedState!==null!==x&&(u.flags|=8192):x&&(u.flags|=8192),x?p&536870912&&!(u.flags&128)&&(di(u),u.subtreeFlags&6&&(u.flags|=8192)):di(u),p=u.updateQueue,p!==null&&eg(u,p.retryQueue),p=null,l!==null&&l.memoizedState!==null&&l.memoizedState.cachePool!==null&&(p=l.memoizedState.cachePool.pool),x=null,u.memoizedState!==null&&u.memoizedState.cachePool!==null&&(x=u.memoizedState.cachePool.pool),x!==p&&(u.flags|=2048),l!==null&&v(Hc),null;case 24:return p=null,l!==null&&(p=l.memoizedState.cache),u.memoizedState.cache!==p&&(u.flags|=2048),lo(_i),di(u),null;case 25:return null}throw Error(a(156,u.tag))}function C9(l,u){switch(Ke(u),u.tag){case 1:return l=u.flags,l&65536?(u.flags=l&-65537|128,u):null;case 3:return lo(_i),xt(),l=u.flags,l&65536&&!(l&128)?(u.flags=l&-65537|128,u):null;case 26:case 27:case 5:return Be(u),null;case 13:if(zt(u),l=u.memoizedState,l!==null&&l.dehydrated!==null){if(u.alternate===null)throw Error(a(340));ht()}return l=u.flags,l&65536?(u.flags=l&-65537|128,u):null;case 19:return v(Gi),null;case 4:return xt(),null;case 10:return lo(u.type),null;case 22:case 23:return zt(u),ar(),l!==null&&v(Hc),l=u.flags,l&65536?(u.flags=l&-65537|128,u):null;case 24:return lo(_i),null;case 25:return null;default:return null}}function FM(l,u){switch(Ke(u),u.tag){case 3:lo(_i),xt();break;case 26:case 27:case 5:Be(u);break;case 4:xt();break;case 13:zt(u);break;case 19:v(Gi);break;case 10:lo(u.type);break;case 22:case 23:zt(u),ar(),l!==null&&v(Hc);break;case 24:lo(_i)}}function tp(l,u){try{var p=u.updateQueue,x=p!==null?p.lastEffect:null;if(x!==null){var T=x.next;p=T;do{if((p.tag&l)===l){x=void 0;var R=p.create,X=p.inst;x=R(),X.destroy=x}p=p.next}while(p!==T)}}catch(re){In(u,u.return,re)}}function dl(l,u,p){try{var x=u.updateQueue,T=x!==null?x.lastEffect:null;if(T!==null){var R=T.next;x=R;do{if((x.tag&l)===l){var X=x.inst,re=X.destroy;if(re!==void 0){X.destroy=void 0,T=u;var ye=p;try{re()}catch(Xe){In(T,ye,Xe)}}}x=x.next}while(x!==R)}}catch(Xe){In(u,u.return,Xe)}}function HM(l){var u=l.updateQueue;if(u!==null){var p=l.stateNode;try{Se(u,p)}catch(x){In(l,l.return,x)}}}function zM(l,u,p){p.props=bc(l.type,l.memoizedProps),p.state=l.memoizedState;try{p.componentWillUnmount()}catch(x){In(l,u,x)}}function Cc(l,u){try{var p=l.ref;if(p!==null){var x=l.stateNode;switch(l.tag){case 26:case 27:case 5:var T=ap(x);break;default:T=x}typeof p=="function"?l.refCleanup=p(T):p.current=T}}catch(R){In(l,u,R)}}function sr(l,u){var p=l.ref,x=l.refCleanup;if(p!==null)if(typeof x=="function")try{x()}catch(T){In(l,u,T)}finally{l.refCleanup=null,l=l.alternate,l!=null&&(l.refCleanup=null)}else if(typeof p=="function")try{p(null)}catch(T){In(l,u,T)}else p.current=null}function GM(l){var u=l.type,p=l.memoizedProps,x=l.stateNode;try{_U(x,u,p,l)}catch(T){In(l,l.return,T)}}function VM(l,u,p){try{SU(l.stateNode,l.type,p,u,l)}catch(x){In(l,l.return,x)}}function kM(l){return l.tag===5||l.tag===3||(Br?l.tag===26:!1)||(ya?l.tag===27:!1)||l.tag===4}function I_(l){e:for(;;){for(;l.sibling===null;){if(l.return===null||kM(l.return))return null;l=l.return}for(l.sibling.return=l.return,l=l.sibling;l.tag!==5&&l.tag!==6&&(!ya||l.tag!==27)&&l.tag!==18;){if(l.flags&2||l.child===null||l.tag===4)continue e;l.child.return=l,l=l.child}if(!(l.flags&2))return l.stateNode}}function B_(l,u,p){var x=l.tag;if(x===5||x===6)l=l.stateNode,u?EU(p,l,u):xU(p,l);else if(!(x===4||ya&&x===27)&&(l=l.child,l!==null))for(B_(l,u,p),l=l.sibling;l!==null;)B_(l,u,p),l=l.sibling}function tg(l,u,p){var x=l.tag;if(x===5||x===6)l=l.stateNode,u?AU(p,l,u):vU(p,l);else if(!(x===4||ya&&x===27)&&(l=l.child,l!==null))for(tg(l,u,p),l=l.sibling;l!==null;)tg(l,u,p),l=l.sibling}function XM(l,u,p){l=l.containerInfo;try{FC(l,p)}catch(x){In(u,u.return,x)}}function R9(l,u){for(K9(l.containerInfo),Ji=u;Ji!==null;)if(l=Ji,u=l.child,(l.subtreeFlags&1028)!==0&&u!==null)u.return=l,Ji=u;else for(;Ji!==null;){l=Ji;var p=l.alternate;switch(u=l.flags,l.tag){case 0:break;case 11:case 15:break;case 1:if(u&1024&&p!==null){u=void 0;var x=l,T=p.memoizedProps;p=p.memoizedState;var R=x.stateNode;try{var X=bc(x.type,T,x.elementType===x.type);u=R.getSnapshotBeforeUpdate(X,p),R.__reactInternalSnapshotBeforeUpdate=u}catch(re){In(x,x.return,re)}}break;case 3:u&1024&&xa&&DU(l.stateNode.containerInfo);break;case 5:case 26:case 27:case 6:case 4:case 17:break;default:if(u&1024)throw Error(a(163))}if(u=l.sibling,u!==null){u.return=l.return,Ji=u;break}Ji=l.return}return X=sR,sR=!1,X}function WM(l,u,p){var x=p.flags;switch(p.tag){case 0:case 11:case 15:co(l,p),x&4&&tp(5,p);break;case 1:if(co(l,p),x&4)if(l=p.stateNode,u===null)try{l.componentDidMount()}catch(re){In(p,p.return,re)}else{var T=bc(p.type,u.memoizedProps);u=u.memoizedState;try{l.componentDidUpdate(T,u,l.__reactInternalSnapshotBeforeUpdate)}catch(re){In(p,p.return,re)}}x&64&&HM(p),x&512&&Cc(p,p.return);break;case 3:if(co(l,p),x&64&&(x=p.updateQueue,x!==null)){if(l=null,p.child!==null)switch(p.child.tag){case 27:case 5:l=ap(p.child.stateNode);break;case 1:l=p.child.stateNode}try{Se(x,l)}catch(re){In(p,p.return,re)}}break;case 26:if(Br){co(l,p),x&512&&Cc(p,p.return);break}case 27:case 5:co(l,p),u===null&&x&4&&GM(p),x&512&&Cc(p,p.return);break;case 12:co(l,p);break;case 13:co(l,p),x&4&&qM(l,p);break;case 22:if(T=p.memoizedState!==null||go,!T){u=u!==null&&u.memoizedState!==null||Si;var R=go,X=Si;go=T,(Si=u)&&!X?pl(l,p,(p.subtreeFlags&8772)!==0):co(l,p),go=R,Si=X}x&512&&(p.memoizedProps.mode==="manual"?Cc(p,p.return):sr(p,p.return));break;default:co(l,p)}}function YM(l){var u=l.alternate;u!==null&&(l.alternate=null,YM(u)),l.child=null,l.deletions=null,l.sibling=null,l.tag===5&&(u=l.stateNode,u!==null&&aU(u)),l.stateNode=null,l.return=null,l.dependencies=null,l.memoizedProps=null,l.memoizedState=null,l.pendingProps=null,l.stateNode=null,l.updateQueue=null}function fs(l,u,p){for(p=p.child;p!==null;)U_(l,u,p),p=p.sibling}function U_(l,u,p){if(hr&&typeof hr.onCommitFiberUnmount=="function")try{hr.onCommitFiberUnmount(op,p)}catch{}switch(p.tag){case 26:if(Br){Si||sr(p,u),fs(l,u,p),p.memoizedState?qC(p.memoizedState):p.stateNode&&jC(p.stateNode);break}case 27:if(ya){Si||sr(p,u);var x=Bi,T=dr;Bi=p.stateNode,fs(l,u,p),rL(p.stateNode),Bi=x,dr=T;break}case 5:Si||sr(p,u);case 6:if(xa){if(x=Bi,T=dr,Bi=null,fs(l,u,p),Bi=x,dr=T,Bi!==null)if(dr)try{bU(Bi,p.stateNode)}catch(R){In(p,u,R)}else try{TU(Bi,p.stateNode)}catch(R){In(p,u,R)}}else fs(l,u,p);break;case 18:xa&&Bi!==null&&(dr?jU(Bi,p.stateNode):ZU(Bi,p.stateNode));break;case 4:xa?(x=Bi,T=dr,Bi=p.stateNode.containerInfo,dr=!0,fs(l,u,p),Bi=x,dr=T):(yl&&XM(p.stateNode,p,LC()),fs(l,u,p));break;case 0:case 11:case 14:case 15:Si||dl(2,p,u),Si||dl(4,p,u),fs(l,u,p);break;case 1:Si||(sr(p,u),x=p.stateNode,typeof x.componentWillUnmount=="function"&&zM(p,u,x)),fs(l,u,p);break;case 21:fs(l,u,p);break;case 22:Si||sr(p,u),Si=(x=Si)||p.memoizedState!==null,fs(l,u,p),Si=x;break;default:fs(l,u,p)}}function qM(l,u){if(Ir&&u.memoizedState===null&&(l=u.alternate,l!==null&&(l=l.memoizedState,l!==null&&(l=l.dehydrated,l!==null))))try{qU(l)}catch(p){In(u,u.return,p)}}function w9(l){switch(l.tag){case 13:case 19:var u=l.stateNode;return u===null&&(u=l.stateNode=new rR),u;case 22:return l=l.stateNode,u=l._retryCache,u===null&&(u=l._retryCache=new rR),u;default:throw Error(a(435,l.tag))}}function L_(l,u){var p=w9(l);u.forEach(function(x){var T=P9.bind(null,l,x);p.has(x)||(p.add(x),x.then(T,T))})}function Xa(l,u){var p=u.deletions;if(p!==null)for(var x=0;x";case Ag:return":has("+(G_(l)||"")+")";case Eg:return'[role="'+l.value+'"]';case bg:return'"'+l.value+'"';case Tg:return'[data-testname="'+l.value+'"]';default:throw Error(a(365))}}function tC(l,u){var p=[];l=[l,0];for(var x=0;xp?32:p;p=Zt.T;var T=Nc();try{if(Wa(x),Zt.T=null,Gc===null)var R=!1;else{x=DS,DS=null;var X=Gc,re=gp;if(Gc=null,gp=0,Fn&6)throw Error(a(331));var ye=Fn;if(Fn|=4,$M(X.current),KM(X,X.current,re,x),Fn=ye,rt(0,!1),hr&&typeof hr.onPostCommitFiberRoot=="function")try{hr.onPostCommitFiberRoot(op,X)}catch{}R=!0}return R}finally{Wa(T),Zt.T=p,pC(l,u)}}return!1}function mC(l,u,p){u=de(p,u),u=v_(l.stateNode,u,2),l=Ve(l,u,2),l!==null&&(G(l,2),ot(l))}function In(l,u,p){if(l.tag===3)mC(l,l,p);else for(;u!==null;){if(u.tag===3){mC(u,l,p);break}else if(u.tag===1){var x=u.stateNode;if(typeof u.type.getDerivedStateFromError=="function"||typeof x.componentDidCatch=="function"&&(bl===null||!bl.has(x))){l=de(p,l),p=xM(2),x=Ve(u,p,2),x!==null&&(yM(p,x,u,l),G(x,2),ot(x));break}}u=u.return}}function q_(l,u,p){var x=l.pingCache;if(x===null){x=l.pingCache=new _L;var T=new Set;x.set(u,T)}else T=x.get(u),T===void 0&&(T=new Set,x.set(u,T));T.has(p)||(bS=!0,T.add(p),l=U9.bind(null,l,u,p),u.then(l,l))}function U9(l,u,p){var x=l.pingCache;x!==null&&x.delete(u),l.pingedLanes|=l.suspendedLanes&p,l.warmLanes&=~p,Yn===l&&(xn&p)===p&&(Ai===4||Ai===3&&(xn&62914560)===xn&&300>ds()-RS?!(Fn&2)&&xh(l,0):MS|=p,Hh===xn&&(Hh=0)),ot(l)}function gC(l,u){u===0&&(u=w()),l=ze(l,u),l!==null&&(G(l,u),ot(l))}function L9(l){var u=l.memoizedState,p=0;u!==null&&(p=u.retryLane),gC(l,p)}function P9(l,u){var p=0;switch(l.tag){case 13:var x=l.stateNode,T=l.memoizedState;T!==null&&(p=T.retryLane);break;case 19:x=l.stateNode;break;case 22:x=l.stateNode._retryCache;break;default:throw Error(a(314))}x!==null&&x.delete(u),gC(l,p)}function F9(l,u){return ug(l,u)}function H9(l,u,p,x){this.tag=l,this.key=p,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.refCleanup=this.ref=null,this.pendingProps=u,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=x,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function Z_(l){return l=l.prototype,!(!l||!l.isReactComponent)}function gl(l,u){var p=l.alternate;return p===null?(p=t(l.tag,u,l.key,l.mode),p.elementType=l.elementType,p.type=l.type,p.stateNode=l.stateNode,p.alternate=l,l.alternate=p):(p.pendingProps=u,p.type=l.type,p.flags=0,p.subtreeFlags=0,p.deletions=null),p.flags=l.flags&31457280,p.childLanes=l.childLanes,p.lanes=l.lanes,p.child=l.child,p.memoizedProps=l.memoizedProps,p.memoizedState=l.memoizedState,p.updateQueue=l.updateQueue,u=l.dependencies,p.dependencies=u===null?null:{lanes:u.lanes,firstContext:u.firstContext},p.sibling=l.sibling,p.index=l.index,p.ref=l.ref,p.refCleanup=l.refCleanup,p}function vC(l,u){l.flags&=31457282;var p=l.alternate;return p===null?(l.childLanes=0,l.lanes=u,l.child=null,l.subtreeFlags=0,l.memoizedProps=null,l.memoizedState=null,l.updateQueue=null,l.dependencies=null,l.stateNode=null):(l.childLanes=p.childLanes,l.lanes=p.lanes,l.child=p.child,l.subtreeFlags=0,l.deletions=null,l.memoizedProps=p.memoizedProps,l.memoizedState=p.memoizedState,l.updateQueue=p.updateQueue,l.type=p.type,u=p.dependencies,l.dependencies=u===null?null:{lanes:u.lanes,firstContext:u.firstContext}),l}function ag(l,u,p,x,T,R){var X=0;if(x=l,typeof l=="function")Z_(l)&&(X=1);else if(typeof l=="string")X=Br&&ya?XC(l,p,ua.current)?26:QC(l)?27:5:Br?XC(l,p,ua.current)?26:5:ya&&QC(l)?27:5;else e:switch(l){case Sh:return Dc(p.children,T,R,u);case TC:X=8,T|=24;break;case $_:return l=t(12,p,u,T|2),l.elementType=$_,l.lanes=R,l;case tS:return l=t(13,p,u,T),l.elementType=tS,l.lanes=R,l;case nS:return l=t(19,p,u,T),l.elementType=nS,l.lanes=R,l;case MC:return xC(p,T,R,u);default:if(typeof l=="object"&&l!==null)switch(l.$$typeof){case k9:case vl:X=10;break e;case bC:X=9;break e;case eS:X=11;break e;case iS:X=14;break e;case xl:X=16,x=null;break e}X=29,p=Error(a(130,l===null?"null":typeof l,"")),x=null}return u=t(X,p,u,T),u.elementType=l,u.type=x,u.lanes=R,u}function Dc(l,u,p,x){return l=t(7,l,x,u),l.lanes=p,l}function xC(l,u,p,x){l=t(22,l,x,u),l.elementType=MC,l.lanes=p;var T={_visibility:1,_pendingVisibility:1,_pendingMarkers:null,_retryCache:null,_transitions:null,_current:null,detach:function(){var R=T._current;if(R===null)throw Error(a(456));if(!(T._pendingVisibility&2)){var X=ze(R,2);X!==null&&(T._pendingVisibility|=2,Ra(X,R,2))}},attach:function(){var R=T._current;if(R===null)throw Error(a(456));if(T._pendingVisibility&2){var X=ze(R,2);X!==null&&(T._pendingVisibility&=-3,Ra(X,R,2))}}};return l.stateNode=T,l}function j_(l,u,p){return l=t(6,l,null,u),l.lanes=p,l}function K_(l,u,p){return u=t(4,l.children!==null?l.children:[],l.key,u),u.lanes=p,u.stateNode={containerInfo:l.containerInfo,pendingChildren:null,implementation:l.implementation},u}function z9(l,u,p,x,T,R,X,re){this.tag=1,this.containerInfo=l,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=oS,this.callbackNode=this.next=this.pendingContext=this.context=this.cancelPendingCommit=null,this.callbackPriority=0,this.expirationTimes=D(-1),this.entangledLanes=this.shellSuspendCounter=this.errorRecoveryDisabledLanes=this.finishedLanes=this.expiredLanes=this.warmLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=D(0),this.hiddenUpdates=D(null),this.identifierPrefix=x,this.onUncaughtError=T,this.onCaughtError=R,this.onRecoverableError=X,this.pooledCache=null,this.pooledCacheLanes=0,this.formState=re,this.incompleteTransitions=new Map}function yC(l,u,p,x,T,R,X,re,ye,Xe,ct,At){return l=new z9(l,u,p,X,re,ye,Xe,At),u=1,R===!0&&(u|=24),R=t(3,null,null,u),l.current=R,R.stateNode=l,u=R_(),u.refCount++,l.pooledCache=u,u.refCount++,R.memoizedState={element:x,isDehydrated:p,cache:u},wt(R),l}function _C(l){return l?(l=Th,l):Th}function SC(l){var u=l._reactInternals;if(u===void 0)throw typeof l.render=="function"?Error(a(188)):(l=Object.keys(l).join(","),Error(a(268,l)));return l=g(u),l=l!==null?y(l):null,l===null?null:ap(l.stateNode)}function AC(l,u,p,x,T,R){T=_C(T),x.context===null?x.context=T:x.pendingContext=T,x=ke(u),x.payload={element:p},R=R===void 0?null:R,R!==null&&(x.callback=R),p=Ve(l,x,u),p!==null&&(Ra(p,l,u),St(p,l,u))}function EC(l,u){if(l=l.memoizedState,l!==null&&l.dehydrated!==null){var p=l.retryLane;l.retryLane=p!==0&&p=Xe&&R>=At&&T<=ct&&X<=Mt){l.splice(u,1);break}else if(x!==Xe||p.width!==ye.width||MtX){if(!(R!==At||p.height!==ye.height||ctT)){Xe>x&&(ye.width+=Xe-x,ye.x=x),ctR&&(ye.height+=At-R,ye.y=R),Mtp&&(p=re)),re ")+` + +No matching component was found for: + `)+l.join(" > ")}return null},ln.getPublicRootInstance=function(l){if(l=l.current,!l.child)return null;switch(l.child.tag){case 27:case 5:return ap(l.child.stateNode);default:return l.child.stateNode}},ln.injectIntoDevTools=function(){var l={bundleType:0,version:Y9,rendererPackageName:q9,currentDispatcherRef:Zt,findFiberByHostInstance:OC,reconcilerVersion:"19.0.0"};if(wC!==null&&(l.rendererConfig=wC),typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>"u")l=!1;else{var u=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(u.isDisabled||!u.supportsFiber)l=!0;else{try{op=u.inject(l),hr=u}catch{}l=!!u.checkDCE}}return l},ln.isAlreadyRendering=function(){return!1},ln.observeVisibleRects=function(l,u,p,x){if(!rp)throw Error(a(363));l=V_(l,u);var T=gU(l,p,x).disconnect;return{disconnect:function(){T()}}},ln.shouldError=function(){return null},ln.shouldSuspend=function(){return!1},ln.startHostTransition=function(l,u,p,x){if(l.tag!==5)throw Error(a(476));var T=cM(l).queue;lM(l,T,u,Ah,p===null?i:function(){var R=cM(l).next.queue;return Kd(l,R,{},lr()),p(x)})},ln.updateContainer=function(l,u,p,x){var T=u.current,R=lr();return AC(T,R,l,u,p,x),R},ln.updateContainerSync=function(l,u,p,x){return u.tag===0&&wc(),AC(u.current,2,l,u,p,x),2},ln},n.exports.default=n.exports,Object.defineProperty(n.exports,"__esModule",{value:!0})})(h8);var oq=h8.exports;u8.exports=oq;var lq=u8.exports;const cq=Zx(lq);function gb(n,e,t){if(!n)return;if(t(n)===!0)return n;let i=e?n.return:n.child;for(;i;){const a=gb(i,e,t);if(a)return a;i=e?null:i.sibling}}function p8(n){try{return Object.defineProperties(n,{_currentRenderer:{get(){return null},set(){}},_currentRenderer2:{get(){return null},set(){}}})}catch{return n}}const vb=p8(he.createContext(null));let m8=class extends he.Component{render(){return he.createElement(vb.Provider,{value:this._reactInternals},this.props.children)}};function g8(){const n=he.useContext(vb);if(n===null)throw new Error("its-fine: useFiber must be called within a !");const e=he.useId();return he.useMemo(()=>{for(const t of[n,n==null?void 0:n.alternate]){if(!t)continue;const i=gb(t,!1,a=>{let r=a.memoizedState;for(;r;){if(r.memoizedState===e)return!0;r=r.next}});if(i)return i}},[n,e])}const uq=Symbol.for("react.context"),hq=n=>n!==null&&typeof n=="object"&&"$$typeof"in n&&n.$$typeof===uq;function fq(){const n=g8(),[e]=he.useState(()=>new Map);e.clear();let t=n;for(;t;){const i=t.type;hq(i)&&i!==vb&&!e.has(i)&&e.set(i,he.use(p8(i))),t=t.return}return e}function dq(){const n=fq();return he.useMemo(()=>Array.from(n.keys()).reduce((e,t)=>i=>he.createElement(e,null,he.createElement(t.Provider,{...i,value:n.get(t)})),e=>he.createElement(m8,{...e})),[n])}function v8(n){let e=n.root;for(;e.getState().previousRoot;)e=e.getState().previousRoot;return e}const x8=n=>n&&n.isOrthographicCamera,pq=n=>n&&n.hasOwnProperty("current"),mq=n=>n!=null&&(typeof n=="string"||typeof n=="number"||n.isColor),F0=((n,e)=>typeof window<"u"&&(((n=window.document)==null?void 0:n.createElement)||((e=window.navigator)==null?void 0:e.product)==="ReactNative"))()?he.useLayoutEffect:he.useEffect;function xb(n){const e=he.useRef(n);return F0(()=>void(e.current=n),[n]),e}function gq(){const n=g8(),e=dq();return he.useMemo(()=>({children:t})=>{const a=!!gb(n,!0,r=>r.type===he.StrictMode)?he.StrictMode:he.Fragment;return It.jsx(a,{children:It.jsx(e,{children:t})})},[n,e])}function vq({set:n}){return F0(()=>(n(new Promise(()=>null)),()=>n(!1)),[n]),null}const xq=(n=>(n=class extends he.Component{constructor(...t){super(...t),this.state={error:!1}}componentDidCatch(t){this.props.set(t)}render(){return this.state.error?null:this.props.children}},n.getDerivedStateFromError=()=>({error:!0}),n))();function y8(n){var e;const t=typeof window<"u"?(e=window.devicePixelRatio)!=null?e:2:1;return Array.isArray(n)?Math.min(Math.max(n[0],t),n[1]):n}function uf(n){var e;return(e=n.__r3f)==null?void 0:e.root.getState()}const ci={obj:n=>n===Object(n)&&!ci.arr(n)&&typeof n!="function",fun:n=>typeof n=="function",str:n=>typeof n=="string",num:n=>typeof n=="number",boo:n=>typeof n=="boolean",und:n=>n===void 0,nul:n=>n===null,arr:n=>Array.isArray(n),equ(n,e,{arrays:t="shallow",objects:i="reference",strict:a=!0}={}){if(typeof n!=typeof e||!!n!=!!e)return!1;if(ci.str(n)||ci.num(n)||ci.boo(n))return n===e;const r=ci.obj(n);if(r&&i==="reference")return n===e;const s=ci.arr(n);if(s&&t==="reference")return n===e;if((s||r)&&n===e)return!0;let o;for(o in n)if(!(o in e))return!1;if(r&&t==="shallow"&&i==="shallow"){for(o in a?e:n)if(!ci.equ(n[o],e[o],{strict:a,objects:"reference"}))return!1}else for(o in a?e:n)if(n[o]!==e[o])return!1;if(ci.und(o)){if(s&&n.length===0&&e.length===0||r&&Object.keys(n).length===0&&Object.keys(e).length===0)return!0;if(n!==e)return!1}return!0}};function yq(n){const e={nodes:{},materials:{},meshes:{}};return n&&n.traverse(t=>{t.name&&(e.nodes[t.name]=t),t.material&&!e.materials[t.material.name]&&(e.materials[t.material.name]=t.material),t.isMesh&&!e.meshes[t.name]&&(e.meshes[t.name]=t)}),e}function _q(n){n.type!=="Scene"&&(n.dispose==null||n.dispose());for(const e in n){const t=n[e];(t==null?void 0:t.type)!=="Scene"&&(t==null||t.dispose==null||t.dispose())}}const _8=["children","key","ref"];function Sq(n){const e={};for(const t in n)_8.includes(t)||(e[t]=n[t]);return e}function Nx(n,e,t,i){const a=n;let r=a==null?void 0:a.__r3f;return r||(r={root:e,type:t,parent:null,children:[],props:Sq(i),object:a,eventCount:0,handlers:{},isHidden:!1},a&&(a.__r3f=r)),r}function u0(n,e){if(!e.includes("-"))return{root:n,key:e,target:n[e]};if(e in n)return{root:n,key:e,target:n[e]};let t=n;const i=e.split("-");for(const a of i){if(typeof t!="object"||t===null){if(t!==void 0){const r=i.slice(i.indexOf(a)).join("-");return{root:t,key:r,target:void 0}}return{root:n,key:e,target:void 0}}e=a,n=t,t=t[e]}return{root:n,key:e,target:t}}const sD=/-\d+$/;function Ox(n,e){if(ci.str(e.props.attach)){if(sD.test(e.props.attach)){const a=e.props.attach.replace(sD,""),{root:r,key:s}=u0(n.object,a);Array.isArray(r[s])||(r[s]=[])}const{root:t,key:i}=u0(n.object,e.props.attach);e.previousAttach=t[i],t[i]=e.object}else ci.fun(e.props.attach)&&(e.previousAttach=e.props.attach(n.object,e.object))}function Ix(n,e){if(ci.str(e.props.attach)){const{root:t,key:i}=u0(n.object,e.props.attach),a=e.previousAttach;a===void 0?delete t[i]:t[i]=a}else e.previousAttach==null||e.previousAttach(n.object,e.object);delete e.previousAttach}const GE=[..._8,"args","dispose","attach","object","onUpdate","dispose"],oD=new Map;function Aq(n){let e=oD.get(n.constructor);try{e||(e=new n.constructor,oD.set(n.constructor,e))}catch{}return e}function Eq(n,e){const t={};for(const i in e)if(!GE.includes(i)&&!ci.equ(e[i],n.props[i])){t[i]=e[i];for(const a in e)a.startsWith(`${i}-`)&&(t[a]=e[a])}for(const i in n.props){if(GE.includes(i)||e.hasOwnProperty(i))continue;const{root:a,key:r}=u0(n.object,i);if(a.constructor&&a.constructor.length===0){const s=Aq(a);ci.und(s)||(t[r]=s[r])}else t[r]=0}return t}const Tq=["map","emissiveMap","sheenColorMap","specularColorMap","envMap"],bq=/^on(Pointer|Click|DoubleClick|ContextMenu|Wheel)/;function Ks(n,e){var t;const i=n.__r3f,a=i&&v8(i).getState(),r=i==null?void 0:i.eventCount;for(const o in e){let c=e[o];if(GE.includes(o))continue;if(i&&bq.test(o)){typeof c=="function"?i.handlers[o]=c:delete i.handlers[o],i.eventCount=Object.keys(i.handlers).length;continue}if(c===void 0)continue;let{root:h,key:f,target:d}=u0(n,o);if(d===void 0&&(typeof h!="object"||h===null))throw Error(`R3F: Cannot set "${o}". Ensure it is an object before setting "${f}".`);if(d instanceof yd&&c instanceof yd)d.mask=c.mask;else if(d instanceof dt&&mq(c))d.set(c);else if(d!==null&&typeof d=="object"&&typeof d.set=="function"&&typeof d.copy=="function"&&c!=null&&c.constructor&&d.constructor===c.constructor)d.copy(c);else if(d!==null&&typeof d=="object"&&typeof d.set=="function"&&Array.isArray(c))typeof d.fromArray=="function"?d.fromArray(c):d.set(...c);else if(d!==null&&typeof d=="object"&&typeof d.set=="function"&&typeof c=="number")typeof d.setScalar=="function"?d.setScalar(c):d.set(c);else{var s;h[f]=c,a&&!a.linear&&Tq.includes(f)&&(s=h[f])!=null&&s.isTexture&&h[f].format===Rn&&h[f].type===xi&&(h[f].colorSpace=Kn)}}if(i!=null&&i.parent&&a!=null&&a.internal&&(t=i.object)!=null&&t.isObject3D&&r!==i.eventCount){const o=i.object,c=a.internal.interaction.indexOf(o);c>-1&&a.internal.interaction.splice(c,1),i.eventCount&&o.raycast!==null&&a.internal.interaction.push(o)}return i&&i.props.attach===void 0&&(i.object.isBufferGeometry?i.props.attach="geometry":i.object.isMaterial&&(i.props.attach="material")),i&&Vd(i),n}function Vd(n){var e;if(!n.parent)return;n.props.onUpdate==null||n.props.onUpdate(n.object);const t=(e=n.root)==null||e.getState==null?void 0:e.getState();t&&t.internal.frames===0&&t.invalidate()}function S8(n,e){n.manual||(x8(n)?(n.left=e.width/-2,n.right=e.width/2,n.top=e.height/2,n.bottom=e.height/-2):n.aspect=e.width/e.height,n.updateProjectionMatrix())}const Oa=n=>n==null?void 0:n.isObject3D;function Bv(n){return(n.eventObject||n.object).uuid+"/"+n.index+n.instanceId}function A8(n,e,t,i){const a=t.get(e);a&&(t.delete(e),t.size===0&&(n.delete(i),a.target.releasePointerCapture(i)))}function Mq(n,e){const{internal:t}=n.getState();t.interaction=t.interaction.filter(i=>i!==e),t.initialHits=t.initialHits.filter(i=>i!==e),t.hovered.forEach((i,a)=>{(i.eventObject===e||i.object===e)&&t.hovered.delete(a)}),t.capturedMap.forEach((i,a)=>{A8(t.capturedMap,e,i,a)})}function Cq(n){function e(c){const{internal:h}=n.getState(),f=c.offsetX-h.initialClick[0],d=c.offsetY-h.initialClick[1];return Math.round(Math.sqrt(f*f+d*d))}function t(c){return c.filter(h=>["Move","Over","Enter","Out","Leave"].some(f=>{var d;return(d=h.__r3f)==null?void 0:d.handlers["onPointer"+f]}))}function i(c,h){const f=n.getState(),d=new Set,m=[],g=h?h(f.internal.interaction):f.internal.interaction;for(let v=0;v{const A=uf(v.object),b=uf(_.object);return!A||!b?v.distance-_.distance:b.events.priority-A.events.priority||v.distance-_.distance}).filter(v=>{const _=Bv(v);return d.has(_)?!1:(d.add(_),!0)});f.events.filter&&(E=f.events.filter(E,f));for(const v of E){let _=v.object;for(;_;){var S;(S=_.__r3f)!=null&&S.eventCount&&m.push({...v,eventObject:_}),_=_.parent}}if("pointerId"in c&&f.internal.capturedMap.has(c.pointerId))for(let v of f.internal.capturedMap.get(c.pointerId).values())d.has(Bv(v.intersection))||m.push(v.intersection);return m}function a(c,h,f,d){if(c.length){const m={stopped:!1};for(const g of c){let y=uf(g.object);if(y||g.object.traverseAncestors(E=>{const S=uf(E);if(S)return y=S,!1}),y){const{raycaster:E,pointer:S,camera:v,internal:_}=y,A=new H(S.x,S.y,0).unproject(v),b=w=>{var D,G;return(D=(G=_.capturedMap.get(w))==null?void 0:G.has(g.eventObject))!=null?D:!1},O=w=>{const D={intersection:g,target:h.target};_.capturedMap.has(w)?_.capturedMap.get(w).set(g.eventObject,D):_.capturedMap.set(w,new Map([[g.eventObject,D]])),h.target.setPointerCapture(w)},N=w=>{const D=_.capturedMap.get(w);D&&A8(_.capturedMap,g.eventObject,D,w)};let L={};for(let w in h){let D=h[w];typeof D!="function"&&(L[w]=D)}let B={...g,...L,pointer:S,intersections:c,stopped:m.stopped,delta:f,unprojectedPoint:A,ray:E.ray,camera:v,stopPropagation(){const w="pointerId"in h&&_.capturedMap.get(h.pointerId);if((!w||w.has(g.eventObject))&&(B.stopped=m.stopped=!0,_.hovered.size&&Array.from(_.hovered.values()).find(D=>D.eventObject===g.eventObject))){const D=c.slice(0,c.indexOf(g));r([...D,g])}},target:{hasPointerCapture:b,setPointerCapture:O,releasePointerCapture:N},currentTarget:{hasPointerCapture:b,setPointerCapture:O,releasePointerCapture:N},nativeEvent:h};if(d(B),m.stopped===!0)break}}}return c}function r(c){const{internal:h}=n.getState();for(const f of h.hovered.values())if(!c.length||!c.find(d=>d.object===f.object&&d.index===f.index&&d.instanceId===f.instanceId)){const m=f.eventObject.__r3f;if(h.hovered.delete(Bv(f)),m!=null&&m.eventCount){const g=m.handlers,y={...f,intersections:c};g.onPointerOut==null||g.onPointerOut(y),g.onPointerLeave==null||g.onPointerLeave(y)}}}function s(c,h){for(let f=0;fr([]);case"onLostPointerCapture":return h=>{const{internal:f}=n.getState();"pointerId"in h&&f.capturedMap.has(h.pointerId)&&requestAnimationFrame(()=>{f.capturedMap.has(h.pointerId)&&(f.capturedMap.delete(h.pointerId),r([]))})}}return function(f){const{onPointerMissed:d,internal:m}=n.getState();m.lastEvent.current=f;const g=c==="onPointerMove",y=c==="onClick"||c==="onContextMenu"||c==="onDoubleClick",S=i(f,g?t:void 0),v=y?e(f):0;c==="onPointerDown"&&(m.initialClick=[f.offsetX,f.offsetY],m.initialHits=S.map(A=>A.eventObject)),y&&!S.length&&v<=2&&(s(f,m.interaction),d&&d(f)),g&&r(S);function _(A){const b=A.eventObject,O=b.__r3f;if(!(O!=null&&O.eventCount))return;const N=O.handlers;if(g){if(N.onPointerOver||N.onPointerEnter||N.onPointerOut||N.onPointerLeave){const L=Bv(A),B=m.hovered.get(L);B?B.stopped&&A.stopPropagation():(m.hovered.set(L,A),N.onPointerOver==null||N.onPointerOver(A),N.onPointerEnter==null||N.onPointerEnter(A))}N.onPointerMove==null||N.onPointerMove(A)}else{const L=N[c];L?(!y||m.initialHits.includes(b))&&(s(f,m.interaction.filter(B=>!m.initialHits.includes(B))),L(A)):y&&m.initialHits.includes(b)&&s(f,m.interaction.filter(B=>!m.initialHits.includes(B)))}}a(S,f,v,_)}}return{handlePointer:o}}const lD=n=>!!(n!=null&&n.render),yb=he.createContext(null),Rq=(n,e)=>{const t=o8((o,c)=>{const h=new H,f=new H,d=new H;function m(v=c().camera,_=f,A=c().size){const{width:b,height:O,top:N,left:L}=A,B=b/O;_.isVector3?d.copy(_):d.set(..._);const w=v.getWorldPosition(h).distanceTo(d);if(x8(v))return{width:b/v.zoom,height:O/v.zoom,top:N,left:L,factor:1,distance:w,aspect:B};{const D=v.fov*Math.PI/180,G=2*Math.tan(D/2)*w,J=G*(b/O);return{width:J,height:G,top:N,left:L,factor:b/J,distance:w,aspect:B}}}let g;const y=v=>o(_=>({performance:{..._.performance,current:v}})),E=new Ee;return{set:o,get:c,gl:null,camera:null,raycaster:null,events:{priority:1,enabled:!0,connected:!1},scene:null,xr:null,invalidate:(v=1)=>n(c(),v),advance:(v,_)=>e(v,_,c()),legacy:!1,linear:!1,flat:!1,controls:null,clock:new hb,pointer:E,mouse:E,frameloop:"always",onPointerMissed:void 0,performance:{current:1,min:.5,max:1,debounce:200,regress:()=>{const v=c();g&&clearTimeout(g),v.performance.current!==v.performance.min&&y(v.performance.min),g=setTimeout(()=>y(c().performance.max),v.performance.debounce)}},size:{width:0,height:0,top:0,left:0},viewport:{initialDpr:0,dpr:0,width:0,height:0,top:0,left:0,aspect:0,distance:0,factor:0,getCurrentViewport:m},setEvents:v=>o(_=>({..._,events:{..._.events,...v}})),setSize:(v,_,A=0,b=0)=>{const O=c().camera,N={width:v,height:_,top:A,left:b};o(L=>({size:N,viewport:{...L.viewport,...m(O,f,N)}}))},setDpr:v=>o(_=>{const A=y8(v);return{viewport:{..._.viewport,dpr:A,initialDpr:_.viewport.initialDpr||A}}}),setFrameloop:(v="always")=>{const _=c().clock;_.stop(),_.elapsedTime=0,v!=="never"&&(_.start(),_.elapsedTime=0),o(()=>({frameloop:v}))},previousRoot:void 0,internal:{interaction:[],hovered:new Map,subscribers:[],initialClick:[0,0],initialHits:[],capturedMap:new Map,lastEvent:he.createRef(),active:!1,frames:0,priority:0,subscribe:(v,_,A)=>{const b=c().internal;return b.priority=b.priority+(_>0?1:0),b.subscribers.push({ref:v,priority:_,store:A}),b.subscribers=b.subscribers.sort((O,N)=>O.priority-N.priority),()=>{const O=c().internal;O!=null&&O.subscribers&&(O.priority=O.priority-(_>0?1:0),O.subscribers=O.subscribers.filter(N=>N.ref!==v))}}}}}),i=t.getState();let a=i.size,r=i.viewport.dpr,s=i.camera;return t.subscribe(()=>{const{camera:o,size:c,viewport:h,gl:f,set:d}=t.getState();if(c.width!==a.width||c.height!==a.height||h.dpr!==r){a=c,r=h.dpr,S8(o,c),h.dpr>0&&f.setPixelRatio(h.dpr);const m=typeof HTMLCanvasElement<"u"&&f.domElement instanceof HTMLCanvasElement;f.setSize(c.width,c.height,m)}o!==s&&(s=o,d(m=>({viewport:{...m.viewport,...m.viewport.getCurrentViewport(o)}})))}),t.subscribe(o=>n(o)),t};function _b(){const n=he.useContext(yb);if(!n)throw new Error("R3F: Hooks can only be used within the Canvas component!");return n}function jn(n=t=>t,e){return _b()(n,e)}function Ls(n,e=0){const t=_b(),i=t.getState().internal.subscribe,a=xb(n);return F0(()=>i(a,e,t),[e,i,t]),null}const cD=new WeakMap,wq=n=>{var e;return typeof n=="function"&&(n==null||(e=n.prototype)==null?void 0:e.constructor)===n};function E8(n,e){return function(t,...i){let a;return wq(t)?(a=cD.get(t),a||(a=new t,cD.set(t,a))):a=t,n&&n(a),Promise.all(i.map(r=>new Promise((s,o)=>a.load(r,c=>{Oa(c==null?void 0:c.scene)&&Object.assign(c,yq(c.scene)),s(c)},e,c=>o(new Error(`Could not load ${r}: ${c==null?void 0:c.message}`))))))}}function sl(n,e,t,i){const a=Array.isArray(e)?e:[e],r=aq(E8(t,i),[n,...a],{equal:ci.equ});return Array.isArray(e)?r:r[0]}sl.preload=function(n,e,t){const i=Array.isArray(e)?e:[e];return rq(E8(t),[n,...i])};sl.clear=function(n,e){const t=Array.isArray(e)?e:[e];return sq([n,...t])};function Dq(n){const e=cq(n);return e.injectIntoDevTools({bundleType:0,rendererPackageName:"@react-three/fiber",version:he.version}),e}const T8=0,Td={},Nq=/^three(?=[A-Z])/,Wy=n=>`${n[0].toUpperCase()}${n.slice(1)}`;let Oq=0;const Iq=n=>typeof n=="function";function Sb(n){if(Iq(n)){const e=`${Oq++}`;return Td[e]=n,e}else Object.assign(Td,n)}function b8(n,e){const t=Wy(n),i=Td[t];if(n!=="primitive"&&!i)throw new Error(`R3F: ${t} is not part of the THREE namespace! Did you forget to extend? See: https://docs.pmnd.rs/react-three-fiber/api/objects#using-3rd-party-objects-declaratively`);if(n==="primitive"&&!e.object)throw new Error("R3F: Primitives without 'object' are invalid!");if(e.args!==void 0&&!Array.isArray(e.args))throw new Error("R3F: The args prop must be an array!")}function Bq(n,e,t){var i;return n=Wy(n)in Td?n:n.replace(Nq,""),b8(n,e),n==="primitive"&&(i=e.object)!=null&&i.__r3f&&delete e.object.__r3f,Nx(e.object,t,n,e)}function Uq(n){if(!n.isHidden){var e;n.props.attach&&(e=n.parent)!=null&&e.object?Ix(n.parent,n):Oa(n.object)&&(n.object.visible=!1),n.isHidden=!0,Vd(n)}}function M8(n){if(n.isHidden){var e;n.props.attach&&(e=n.parent)!=null&&e.object?Ox(n.parent,n):Oa(n.object)&&n.props.visible!==!1&&(n.object.visible=!0),n.isHidden=!1,Vd(n)}}function Ab(n,e,t){const i=e.root.getState();if(!(!n.parent&&n.object!==i.scene)){if(!e.object){var a,r;const s=Td[Wy(e.type)];e.object=(a=e.props.object)!=null?a:new s(...(r=e.props.args)!=null?r:[]),e.object.__r3f=e}if(Ks(e.object,e.props),e.props.attach)Ox(n,e);else if(Oa(e.object)&&Oa(n.object)){const s=n.object.children.indexOf(t==null?void 0:t.object);if(t&&s!==-1){const o=n.object.children.indexOf(e.object);if(o!==-1){n.object.children.splice(o,1);const c=o{try{n.dispose()}catch{}};typeof IS_REACT_ACT_ENVIRONMENT<"u"?e():zE.unstable_scheduleCallback(zE.unstable_IdlePriority,e)}}function VE(n,e,t){if(!e)return;e.parent=null;const i=n.children.indexOf(e);i!==-1&&n.children.splice(i,1),e.props.attach?Ix(n,e):Oa(e.object)&&Oa(n.object)&&(n.object.remove(e.object),Mq(v8(e),e.object));const a=e.props.dispose!==null&&t!==!1;for(let r=e.children.length-1;r>=0;r--){const s=e.children[r];VE(e,s,a)}e.children.length=0,delete e.object.__r3f,a&&e.type!=="primitive"&&e.object.type!=="Scene"&&C8(e.object),t===void 0&&Vd(e)}function Lq(n,e){for(const t of[n,n.alternate])if(t!==null)if(typeof t.ref=="function"){t.refCleanup==null||t.refCleanup();const i=t.ref(e);typeof i=="function"&&(t.refCleanup=i)}else t.ref&&(t.ref.current=e)}const d1=[];function Pq(){for(const[t]of d1){const i=t.parent;if(i){t.props.attach?Ix(i,t):Oa(t.object)&&Oa(i.object)&&i.object.remove(t.object);for(const a of t.children)a.props.attach?Ix(t,a):Oa(a.object)&&Oa(t.object)&&t.object.remove(a.object)}t.isHidden&&M8(t),t.object.__r3f&&delete t.object.__r3f,t.type!=="primitive"&&C8(t.object)}for(const[t,i,a]of d1){t.props=i;const r=t.parent;if(r){var n,e;const s=Td[Wy(t.type)];t.object=(n=t.props.object)!=null?n:new s(...(e=t.props.args)!=null?e:[]),t.object.__r3f=t,Lq(a,t.object),Ks(t.object,t.props),t.props.attach?Ox(r,t):Oa(t.object)&&Oa(r.object)&&r.object.add(t.object);for(const o of t.children)o.props.attach?Ox(t,o):Oa(o.object)&&Oa(t.object)&&t.object.add(o.object);Vd(t)}}d1.length=0}const a2=()=>{},hD={};let Uv=T8;const Fq=0,Hq=4,Bx=Dq({isPrimaryRenderer:!1,warnsIfNotActing:!1,supportsMutation:!0,supportsPersistence:!1,supportsHydration:!1,createInstance:Bq,removeChild:VE,appendChild:i2,appendInitialChild:i2,insertBefore:uD,appendChildToContainer(n,e){const t=n.getState().scene.__r3f;!e||!t||i2(t,e)},removeChildFromContainer(n,e){const t=n.getState().scene.__r3f;!e||!t||VE(t,e)},insertInContainerBefore(n,e,t){const i=n.getState().scene.__r3f;!e||!t||!i||uD(i,e,t)},getRootHostContext:()=>hD,getChildHostContext:()=>hD,commitUpdate(n,e,t,i,a){var r,s,o;b8(e,i);let c=!1;if((n.type==="primitive"&&t.object!==i.object||((r=i.args)==null?void 0:r.length)!==((s=t.args)==null?void 0:s.length)||(o=i.args)!=null&&o.some((f,d)=>{var m;return f!==((m=t.args)==null?void 0:m[d])}))&&(c=!0),c)d1.push([n,{...i},a]);else{const f=Eq(n,i);Object.keys(f).length&&(Object.assign(n.props,f),Ks(n.object,f))}(a.sibling===null||(a.flags&Hq)===Fq)&&Pq()},finalizeInitialChildren:()=>!1,commitMount(){},getPublicInstance:n=>n==null?void 0:n.object,prepareForCommit:()=>null,preparePortalMount:n=>Nx(n.getState().scene,n,"",{}),resetAfterCommit:()=>{},shouldSetTextContent:()=>!1,clearContainer:()=>!1,hideInstance:Uq,unhideInstance:M8,createTextInstance:a2,hideTextInstance:a2,unhideTextInstance:a2,scheduleTimeout:typeof setTimeout=="function"?setTimeout:void 0,cancelTimeout:typeof clearTimeout=="function"?clearTimeout:void 0,noTimeout:-1,getInstanceFromNode:()=>null,beforeActiveInstanceBlur(){},afterActiveInstanceBlur(){},detachDeletedInstance(){},prepareScopeUpdate(){},getInstanceFromScope:()=>null,shouldAttemptEagerTransition:()=>!1,trackSchedulerEvent:()=>{},resolveEventType:()=>null,resolveEventTimeStamp:()=>-1.1,requestPostPaintCallback(){},maySuspendCommit:()=>!1,preloadInstance:()=>!0,startSuspendingCommit(){},suspendInstance(){},waitForCommitToBeReady:()=>null,NotPendingTransition:null,HostTransitionContext:he.createContext(null),setCurrentUpdatePriority(n){Uv=n},getCurrentUpdatePriority(){return Uv},resolveUpdatePriority(){var n;if(Uv!==T8)return Uv;switch(typeof window<"u"&&((n=window.event)==null?void 0:n.type)){case"click":case"contextmenu":case"dblclick":case"pointercancel":case"pointerdown":case"pointerup":return c1.DiscreteEventPriority;case"pointermove":case"pointerout":case"pointerover":case"pointerenter":case"pointerleave":case"wheel":return c1.ContinuousEventPriority;default:return c1.DefaultEventPriority}},resetFormInstance(){}}),Ku=new Map,hf={objects:"shallow",strict:!1};function zq(n,e){if(!e&&typeof HTMLCanvasElement<"u"&&n instanceof HTMLCanvasElement&&n.parentElement){const{width:t,height:i,top:a,left:r}=n.parentElement.getBoundingClientRect();return{width:t,height:i,top:a,left:r}}else if(!e&&typeof OffscreenCanvas<"u"&&n instanceof OffscreenCanvas)return{width:n.width,height:n.height,top:0,left:0};return{width:0,height:0,top:0,left:0,...e}}function Gq(n){const e=Ku.get(n),t=e==null?void 0:e.fiber,i=e==null?void 0:e.store;e&&console.warn("R3F.createRoot should only be called once!");const a=typeof reportError=="function"?reportError:console.error,r=i||Rq(WE,dD),s=t||Bx.createContainer(r,c1.ConcurrentRoot,null,!1,null,"",a,a,a,null);e||Ku.set(n,{fiber:s,store:r});let o,c,h=!1,f=null;return{async configure(d={}){let m;f=new Promise(Pe=>m=Pe);let{gl:g,size:y,scene:E,events:S,onCreated:v,shadows:_=!1,linear:A=!1,flat:b=!1,legacy:O=!1,orthographic:N=!1,frameloop:L="always",dpr:B=[1,2],performance:w,raycaster:D,camera:G,onPointerMissed:J}=d,$=r.getState(),se=$.gl;if(!$.gl){const Pe={canvas:n,powerPreference:"high-performance",antialias:!0,alpha:!0},He=typeof g=="function"?await g(Pe):g;lD(He)?se=He:se=new ky({...Pe,...g}),$.set({gl:se})}let le=$.raycaster;le||$.set({raycaster:le=new pb});const{params:q,...te}=D||{};if(ci.equ(te,le,hf)||Ks(le,{...te}),ci.equ(q,le.params,hf)||Ks(le,{params:{...le.params,...q}}),!$.camera||$.camera===c&&!ci.equ(c,G,hf)){c=G;const Pe=G==null?void 0:G.isCamera,He=Pe?G:N?new Rr(0,0,0,0,.1,1e3):new Jn(75,0,.1,1e3);Pe||(He.position.z=5,G&&(Ks(He,G),He.manual||("aspect"in G||"left"in G||"right"in G||"bottom"in G||"top"in G)&&(He.manual=!0,He.updateProjectionMatrix())),!$.camera&&!(G!=null&&G.rotation)&&He.lookAt(0,0,0)),$.set({camera:He}),le.camera=He}if(!$.scene){let Pe;E!=null&&E.isScene?(Pe=E,Nx(Pe,r,"",{})):(Pe=new al,Nx(Pe,r,"",{}),E&&Ks(Pe,E)),$.set({scene:Pe})}S&&!$.events.handlers&&$.set({events:S(r)});const ee=zq(n,y);if(ci.equ(ee,$.size,hf)||$.setSize(ee.width,ee.height,ee.top,ee.left),B&&$.viewport.dpr!==y8(B)&&$.setDpr(B),$.frameloop!==L&&$.setFrameloop(L),$.onPointerMissed||$.set({onPointerMissed:J}),w&&!ci.equ(w,$.performance,hf)&&$.set(Pe=>({performance:{...Pe.performance,...w}})),!$.xr){var de;const Pe=(nt,xt)=>{const fe=r.getState();fe.frameloop!=="never"&&dD(nt,!0,fe,xt)},He=()=>{const nt=r.getState();nt.gl.xr.enabled=nt.gl.xr.isPresenting,nt.gl.xr.setAnimationLoop(nt.gl.xr.isPresenting?Pe:null),nt.gl.xr.isPresenting||WE(nt)},Ke={connect(){const nt=r.getState().gl;nt.xr.addEventListener("sessionstart",He),nt.xr.addEventListener("sessionend",He)},disconnect(){const nt=r.getState().gl;nt.xr.removeEventListener("sessionstart",He),nt.xr.removeEventListener("sessionend",He)}};typeof((de=se.xr)==null?void 0:de.addEventListener)=="function"&&Ke.connect(),$.set({xr:Ke})}if(se.shadowMap){const Pe=se.shadowMap.enabled,He=se.shadowMap.type;if(se.shadowMap.enabled=!!_,ci.boo(_))se.shadowMap.type=Am;else if(ci.str(_)){var ue;const Ke={basic:g5,percentage:fy,soft:Am,variance:Es};se.shadowMap.type=(ue=Ke[_])!=null?ue:Am}else ci.obj(_)&&Object.assign(se.shadowMap,_);(Pe!==se.shadowMap.enabled||He!==se.shadowMap.type)&&(se.shadowMap.needsUpdate=!0)}return gn.enabled=!O,h||(se.outputColorSpace=A?Fi:Kn,se.toneMapping=b?ns:C3),$.legacy!==O&&$.set(()=>({legacy:O})),$.linear!==A&&$.set(()=>({linear:A})),$.flat!==b&&$.set(()=>({flat:b})),g&&!ci.fun(g)&&!lD(g)&&!ci.equ(g,se,hf)&&Ks(se,g),o=v,h=!0,m(),this},render(d){return!h&&!f&&this.configure(),f.then(()=>{Bx.updateContainer(It.jsx(Vq,{store:r,children:d,onCreated:o,rootElement:n}),s,null,()=>{})}),r},unmount(){R8(n)}}}function Vq({store:n,children:e,onCreated:t,rootElement:i}){return F0(()=>{const a=n.getState();a.set(r=>({internal:{...r.internal,active:!0}})),t&&t(a),n.getState().events.connected||a.events.connect==null||a.events.connect(i)},[]),It.jsx(yb.Provider,{value:n,children:e})}function R8(n,e){const t=Ku.get(n),i=t==null?void 0:t.fiber;if(i){const a=t==null?void 0:t.store.getState();a&&(a.internal.active=!1),Bx.updateContainer(null,i,null,()=>{a&&setTimeout(()=>{try{var r,s,o,c;a.events.disconnect==null||a.events.disconnect(),(r=a.gl)==null||(s=r.renderLists)==null||s.dispose==null||s.dispose(),(o=a.gl)==null||o.forceContextLoss==null||o.forceContextLoss(),(c=a.gl)!=null&&c.xr&&a.xr.disconnect(),_q(a.scene),Ku.delete(n)}catch{}},500)})}}function w8(n,e,t){return It.jsx(kq,{children:n,container:e,state:t})}function kq({state:n={},children:e,container:t}){const{events:i,size:a,...r}=n,s=_b(),[o]=he.useState(()=>new pb),[c]=he.useState(()=>new Ee),h=xb((d,m)=>{let g;if(m.camera&&a){const y=m.camera;g=d.viewport.getCurrentViewport(y,new H,a),y!==d.camera&&S8(y,a)}return{...d,...m,scene:t,raycaster:o,pointer:c,mouse:c,previousRoot:s,events:{...d.events,...m.events,...i},size:{...d.size,...a},viewport:{...d.viewport,...g},setEvents:y=>m.set(E=>({...E,events:{...E.events,...y}}))}}),f=he.useMemo(()=>{const d=o8((g,y)=>({...r,set:g,get:y})),m=g=>d.setState(y=>h.current(g,y));return m(s.getState()),s.subscribe(m),d},[s,t]);return It.jsx(It.Fragment,{children:Bx.createPortal(It.jsx(yb.Provider,{value:f,children:e}),f,null)})}const Xq=new Set,Wq=new Set,Yq=new Set;function r2(n,e){if(n.size)for(const{callback:t}of n.values())t(e)}function Dm(n,e){switch(n){case"before":return r2(Xq,e);case"after":return r2(Wq,e);case"tail":return r2(Yq,e)}}let s2,o2;function kE(n,e,t){let i=e.clock.getDelta();e.frameloop==="never"&&typeof n=="number"&&(i=n-e.clock.elapsedTime,e.clock.oldTime=e.clock.elapsedTime,e.clock.elapsedTime=n),s2=e.internal.subscribers;for(let a=0;a0)&&!((e=ff.gl.xr)!=null&&e.isPresenting)&&(l2+=kE(n,ff))}if(XE=!1,Dm("after",n),l2===0)return Dm("tail",n),Ux=!1,cancelAnimationFrame(fD)}function WE(n,e=1){var t;if(!n)return Ku.forEach(i=>WE(i.store.getState(),e));(t=n.gl.xr)!=null&&t.isPresenting||!n.internal.active||n.frameloop==="never"||(e>1?n.internal.frames=Math.min(60,n.internal.frames+e):XE?n.internal.frames=2:n.internal.frames=1,Ux||(Ux=!0,requestAnimationFrame(D8)))}function dD(n,e=!0,t,i){if(e&&Dm("before",n),t)kE(n,t,i);else for(const a of Ku.values())kE(n,a.store.getState());e&&Dm("after",n)}const c2={onClick:["click",!1],onContextMenu:["contextmenu",!1],onDoubleClick:["dblclick",!1],onWheel:["wheel",!0],onPointerDown:["pointerdown",!0],onPointerUp:["pointerup",!0],onPointerLeave:["pointerleave",!0],onPointerMove:["pointermove",!0],onPointerCancel:["pointercancel",!0],onLostPointerCapture:["lostpointercapture",!0]};function qq(n){const{handlePointer:e}=Cq(n);return{priority:1,enabled:!0,compute(t,i,a){i.pointer.set(t.offsetX/i.size.width*2-1,-(t.offsetY/i.size.height)*2+1),i.raycaster.setFromCamera(i.pointer,i.camera)},connected:void 0,handlers:Object.keys(c2).reduce((t,i)=>({...t,[i]:e(i)}),{}),update:()=>{var t;const{events:i,internal:a}=n.getState();(t=a.lastEvent)!=null&&t.current&&i.handlers&&i.handlers.onPointerMove(a.lastEvent.current)},connect:t=>{const{set:i,events:a}=n.getState();if(a.disconnect==null||a.disconnect(),i(r=>({events:{...r.events,connected:t}})),a.handlers)for(const r in a.handlers){const s=a.handlers[r],[o,c]=c2[r];t.addEventListener(o,s,{passive:c})}},disconnect:()=>{const{set:t,events:i}=n.getState();if(i.connected){if(i.handlers)for(const a in i.handlers){const r=i.handlers[a],[s]=c2[a];i.connected.removeEventListener(s,r)}t(a=>({events:{...a.events,connected:void 0}}))}}}}function pD(n,e){let t;return(...i)=>{window.clearTimeout(t),t=window.setTimeout(()=>n(...i),e)}}function Zq({debounce:n,scroll:e,polyfill:t,offsetSize:i}={debounce:0,scroll:!1,offsetSize:!1}){const a=t||(typeof window>"u"?class{}:window.ResizeObserver);if(!a)throw new Error("This browser does not support ResizeObserver out of the box. See: https://github.com/react-spring/react-use-measure/#resize-observer-polyfills");const[r,s]=he.useState({left:0,top:0,width:0,height:0,bottom:0,right:0,x:0,y:0}),o=he.useRef({element:null,scrollContainers:null,resizeObserver:null,lastBounds:r,orientationHandler:null}),c=n?typeof n=="number"?n:n.scroll:null,h=n?typeof n=="number"?n:n.resize:null,f=he.useRef(!1);he.useEffect(()=>(f.current=!0,()=>void(f.current=!1)));const[d,m,g]=he.useMemo(()=>{const v=()=>{if(!o.current.element)return;const{left:_,top:A,width:b,height:O,bottom:N,right:L,x:B,y:w}=o.current.element.getBoundingClientRect(),D={left:_,top:A,width:b,height:O,bottom:N,right:L,x:B,y:w};o.current.element instanceof HTMLElement&&i&&(D.height=o.current.element.offsetHeight,D.width=o.current.element.offsetWidth),Object.freeze(D),f.current&&!Qq(o.current.lastBounds,D)&&s(o.current.lastBounds=D)};return[v,h?pD(v,h):v,c?pD(v,c):v]},[s,i,c,h]);function y(){o.current.scrollContainers&&(o.current.scrollContainers.forEach(v=>v.removeEventListener("scroll",g,!0)),o.current.scrollContainers=null),o.current.resizeObserver&&(o.current.resizeObserver.disconnect(),o.current.resizeObserver=null),o.current.orientationHandler&&("orientation"in screen&&"removeEventListener"in screen.orientation?screen.orientation.removeEventListener("change",o.current.orientationHandler):"onorientationchange"in window&&window.removeEventListener("orientationchange",o.current.orientationHandler))}function E(){o.current.element&&(o.current.resizeObserver=new a(g),o.current.resizeObserver.observe(o.current.element),e&&o.current.scrollContainers&&o.current.scrollContainers.forEach(v=>v.addEventListener("scroll",g,{capture:!0,passive:!0})),o.current.orientationHandler=()=>{g()},"orientation"in screen&&"addEventListener"in screen.orientation?screen.orientation.addEventListener("change",o.current.orientationHandler):"onorientationchange"in window&&window.addEventListener("orientationchange",o.current.orientationHandler))}const S=v=>{!v||v===o.current.element||(y(),o.current.element=v,o.current.scrollContainers=N8(v),E())};return Kq(g,!!e),jq(m),he.useEffect(()=>{y(),E()},[e,g,m]),he.useEffect(()=>y,[]),[S,r,d]}function jq(n){he.useEffect(()=>{const e=n;return window.addEventListener("resize",e),()=>void window.removeEventListener("resize",e)},[n])}function Kq(n,e){he.useEffect(()=>{if(e){const t=n;return window.addEventListener("scroll",t,{capture:!0,passive:!0}),()=>void window.removeEventListener("scroll",t,!0)}},[n,e])}function N8(n){const e=[];if(!n||n===document.body)return e;const{overflow:t,overflowX:i,overflowY:a}=window.getComputedStyle(n);return[t,i,a].some(r=>r==="auto"||r==="scroll")&&e.push(n),[...e,...N8(n.parentElement)]}const Jq=["x","y","top","bottom","left","right","width","height"],Qq=(n,e)=>Jq.every(t=>n[t]===e[t]);function $q({ref:n,children:e,fallback:t,resize:i,style:a,gl:r,events:s=qq,eventSource:o,eventPrefix:c,shadows:h,linear:f,flat:d,legacy:m,orthographic:g,frameloop:y,dpr:E,performance:S,raycaster:v,camera:_,scene:A,onPointerMissed:b,onCreated:O,...N}){he.useMemo(()=>Sb(OY),[]);const L=gq(),[B,w]=Zq({scroll:!0,debounce:{scroll:50,resize:0},...i}),D=he.useRef(null),G=he.useRef(null);he.useImperativeHandle(n,()=>D.current);const J=xb(b),[$,se]=he.useState(!1),[le,q]=he.useState(!1);if($)throw $;if(le)throw le;const te=he.useRef(null);F0(()=>{const de=D.current;if(w.width>0&&w.height>0&&de){te.current||(te.current=Gq(de));async function ue(){await te.current.configure({gl:r,scene:A,events:s,shadows:h,linear:f,flat:d,legacy:m,orthographic:g,frameloop:y,dpr:E,performance:S,raycaster:v,camera:_,size:w,onPointerMissed:(...Pe)=>J.current==null?void 0:J.current(...Pe),onCreated:Pe=>{Pe.events.connect==null||Pe.events.connect(o?pq(o)?o.current:o:G.current),c&&Pe.setEvents({compute:(He,Ke)=>{const nt=He[c+"X"],xt=He[c+"Y"];Ke.pointer.set(nt/Ke.size.width*2-1,-(xt/Ke.size.height)*2+1),Ke.raycaster.setFromCamera(Ke.pointer,Ke.camera)}}),O==null||O(Pe)}}),te.current.render(It.jsx(L,{children:It.jsx(xq,{set:q,children:It.jsx(he.Suspense,{fallback:It.jsx(vq,{set:se}),children:e??null})})}))}ue()}}),he.useEffect(()=>{const de=D.current;if(de)return()=>R8(de)},[]);const ee=o?"none":"auto";return It.jsx("div",{ref:G,style:{position:"relative",width:"100%",height:"100%",overflow:"hidden",pointerEvents:ee,...a},...N,children:It.jsx("div",{ref:B,style:{width:"100%",height:"100%"},children:It.jsx("canvas",{ref:D,style:{display:"block"},children:t})})})}function eZ(n){return It.jsx(m8,{children:It.jsx($q,{...n})})}/** + * postprocessing v6.38.0 build Sat Nov 08 2025 + * https://github.com/pmndrs/postprocessing + * Copyright 2015-2025 Raoul van Rüschen + * @license Zlib + */var u2=1/1e3,tZ=1e3,nZ=class{constructor(){this.startTime=performance.now(),this.previousTime=0,this.currentTime=0,this._delta=0,this._elapsed=0,this._fixedDelta=1e3/60,this.timescale=1,this.useFixedDelta=!1,this._autoReset=!1}get autoReset(){return this._autoReset}set autoReset(n){typeof document<"u"&&document.hidden!==void 0&&(n?document.addEventListener("visibilitychange",this):document.removeEventListener("visibilitychange",this),this._autoReset=n)}get delta(){return this._delta*u2}get fixedDelta(){return this._fixedDelta*u2}set fixedDelta(n){this._fixedDelta=n*tZ}get elapsed(){return this._elapsed*u2}update(n){this.useFixedDelta?this._delta=this.fixedDelta:(this.previousTime=this.currentTime,this.currentTime=(n!==void 0?n:performance.now())-this.startTime,this._delta=this.currentTime-this.previousTime),this._delta*=this.timescale,this._elapsed+=this._delta}reset(){this._delta=0,this._elapsed=0,this.currentTime=performance.now()-this.startTime}getDelta(){return this.delta}getElapsed(){return this.elapsed}handleEvent(n){document.hidden||(this.currentTime=performance.now()-this.startTime)}dispose(){this.autoReset=!1}},iZ=(()=>{const n=new Float32Array([-1,-1,0,3,-1,0,-1,3,0]),e=new Float32Array([0,0,2,0,0,2]),t=new Xt;return t.setAttribute("position",new pn(n,3)),t.setAttribute("uv",new pn(e,2)),t})(),Ha=class YE{static get fullscreenGeometry(){return iZ}constructor(e="Pass",t=new al,i=new Rr){this.name=e,this.renderer=null,this.scene=t,this.camera=i,this.screen=null,this.rtt=!0,this.needsSwap=!0,this.needsDepthTexture=!1,this.enabled=!0}get renderToScreen(){return!this.rtt}set renderToScreen(e){if(this.rtt===e){const t=this.fullscreenMaterial;t!==null&&(t.needsUpdate=!0),this.rtt=!e}}set mainScene(e){}set mainCamera(e){}setRenderer(e){this.renderer=e}isEnabled(){return this.enabled}setEnabled(e){this.enabled=e}get fullscreenMaterial(){return this.screen!==null?this.screen.material:null}set fullscreenMaterial(e){let t=this.screen;t!==null?t.material=e:(t=new Xn(YE.fullscreenGeometry,e),t.frustumCulled=!1,this.scene===null&&(this.scene=new al),this.scene.add(t),this.screen=t)}getFullscreenMaterial(){return this.fullscreenMaterial}setFullscreenMaterial(e){this.fullscreenMaterial=e}getDepthTexture(){return null}setDepthTexture(e,t=Sc){}render(e,t,i,a,r){throw new Error("Render method not implemented!")}setSize(e,t){}initialize(e,t,i){}dispose(){for(const e of Object.keys(this)){const t=this[e];(t instanceof oi||t instanceof ri||t instanceof vn||t instanceof YE)&&this[e].dispose()}this.fullscreenMaterial!==null&&this.fullscreenMaterial.dispose()}},aZ=class extends Ha{constructor(){super("ClearMaskPass",null,null),this.needsSwap=!1}render(n,e,t,i,a){const r=n.state.buffers.stencil;r.setLocked(!1),r.setTest(!1)}},rZ=`#ifdef COLOR_WRITE +#include +#include +#ifdef FRAMEBUFFER_PRECISION_HIGH +uniform mediump sampler2D inputBuffer; +#else +uniform lowp sampler2D inputBuffer; +#endif +#endif +#ifdef DEPTH_WRITE +#include +#ifdef GL_FRAGMENT_PRECISION_HIGH +uniform highp sampler2D depthBuffer; +#else +uniform mediump sampler2D depthBuffer; +#endif +float readDepth(const in vec2 uv){ +#if DEPTH_PACKING == 3201 +return unpackRGBAToDepth(texture2D(depthBuffer,uv)); +#else +return texture2D(depthBuffer,uv).r; +#endif +} +#endif +#ifdef USE_WEIGHTS +uniform vec4 channelWeights; +#endif +uniform float opacity;varying vec2 vUv;void main(){ +#ifdef COLOR_WRITE +vec4 texel=texture2D(inputBuffer,vUv); +#ifdef USE_WEIGHTS +texel*=channelWeights; +#endif +gl_FragColor=opacity*texel; +#ifdef COLOR_SPACE_CONVERSION +#include +#endif +#include +#else +gl_FragColor=vec4(0.0); +#endif +#ifdef DEPTH_WRITE +gl_FragDepth=readDepth(vUv); +#endif +}`,Eb="varying vec2 vUv;void main(){vUv=position.xy*0.5+0.5;gl_Position=vec4(position.xy,1.0,1.0);}",sZ=class extends Di{constructor(){super({name:"CopyMaterial",defines:{DEPTH_PACKING:"0",COLOR_WRITE:"1"},uniforms:{inputBuffer:new ie(null),depthBuffer:new ie(null),channelWeights:new ie(null),opacity:new ie(1)},blending:ga,toneMapped:!1,depthWrite:!1,depthTest:!1,fragmentShader:rZ,vertexShader:Eb}),this.depthFunc=Qm}get inputBuffer(){return this.uniforms.inputBuffer.value}set inputBuffer(n){const e=n!==null;this.colorWrite!==e&&(e?this.defines.COLOR_WRITE=!0:delete this.defines.COLOR_WRITE,this.colorWrite=e,this.needsUpdate=!0),this.uniforms.inputBuffer.value=n}get depthBuffer(){return this.uniforms.depthBuffer.value}set depthBuffer(n){const e=n!==null;this.depthWrite!==e&&(e?this.defines.DEPTH_WRITE=!0:delete this.defines.DEPTH_WRITE,this.depthTest=e,this.depthWrite=e,this.needsUpdate=!0),this.uniforms.depthBuffer.value=n}set depthPacking(n){this.defines.DEPTH_PACKING=n.toFixed(0),this.needsUpdate=!0}get channelWeights(){return this.uniforms.channelWeights.value}set channelWeights(n){n!==null?(this.defines.USE_WEIGHTS="1",this.uniforms.channelWeights.value=n):delete this.defines.USE_WEIGHTS,this.needsUpdate=!0}setInputBuffer(n){this.uniforms.inputBuffer.value=n}getOpacity(n){return this.uniforms.opacity.value}setOpacity(n){this.uniforms.opacity.value=n}},O8=class extends Ha{constructor(n,e=!0){super("CopyPass"),this.fullscreenMaterial=new sZ,this.needsSwap=!1,this.renderTarget=n,n===void 0&&(this.renderTarget=new oi(1,1,{minFilter:Bt,magFilter:Bt,stencilBuffer:!1,depthBuffer:!1}),this.renderTarget.texture.name="CopyPass.Target"),this.autoResize=e}get resize(){return this.autoResize}set resize(n){this.autoResize=n}get texture(){return this.renderTarget.texture}getTexture(){return this.renderTarget.texture}setAutoResizeEnabled(n){this.autoResize=n}render(n,e,t,i,a){this.fullscreenMaterial.inputBuffer=e.texture,n.setRenderTarget(this.renderToScreen?null:this.renderTarget),n.render(this.scene,this.camera)}setSize(n,e){this.autoResize&&this.renderTarget.setSize(n,e)}initialize(n,e,t){t!==void 0&&(this.renderTarget.texture.type=t,t!==xi?this.fullscreenMaterial.defines.FRAMEBUFFER_PRECISION_HIGH="1":n!==null&&n.outputColorSpace===Kn&&(this.renderTarget.texture.colorSpace=Kn))}},mD=new dt,I8=class extends Ha{constructor(n=!0,e=!0,t=!1){super("ClearPass",null,null),this.needsSwap=!1,this.color=n,this.depth=e,this.stencil=t,this.overrideClearColor=null,this.overrideClearAlpha=-1}setClearFlags(n,e,t){this.color=n,this.depth=e,this.stencil=t}getOverrideClearColor(){return this.overrideClearColor}setOverrideClearColor(n){this.overrideClearColor=n}getOverrideClearAlpha(){return this.overrideClearAlpha}setOverrideClearAlpha(n){this.overrideClearAlpha=n}render(n,e,t,i,a){const r=this.overrideClearColor,s=this.overrideClearAlpha,o=n.getClearAlpha(),c=r!==null,h=s>=0;c?(n.getClearColor(mD),n.setClearColor(r,h?s:o)):h&&n.setClearAlpha(s),n.setRenderTarget(this.renderToScreen?null:e),n.clear(this.color,this.depth,this.stencil),c?n.setClearColor(mD,o):h&&n.setClearAlpha(o)}},oZ=class extends Ha{constructor(n,e){super("MaskPass",n,e),this.needsSwap=!1,this.clearPass=new I8(!1,!1,!0),this.inverse=!1}set mainScene(n){this.scene=n}set mainCamera(n){this.camera=n}get inverted(){return this.inverse}set inverted(n){this.inverse=n}get clear(){return this.clearPass.enabled}set clear(n){this.clearPass.enabled=n}getClearPass(){return this.clearPass}isInverted(){return this.inverted}setInverted(n){this.inverted=n}render(n,e,t,i,a){const r=n.getContext(),s=n.state.buffers,o=this.scene,c=this.camera,h=this.clearPass,f=this.inverted?0:1,d=1-f;s.color.setMask(!1),s.depth.setMask(!1),s.color.setLocked(!0),s.depth.setLocked(!0),s.stencil.setTest(!0),s.stencil.setOp(r.REPLACE,r.REPLACE,r.REPLACE),s.stencil.setFunc(r.ALWAYS,f,4294967295),s.stencil.setClear(d),s.stencil.setLocked(!0),this.clearPass.enabled&&(this.renderToScreen?h.render(n,null):(h.render(n,e),h.render(n,t))),this.renderToScreen?(n.setRenderTarget(null),n.render(o,c)):(n.setRenderTarget(e),n.render(o,c),n.setRenderTarget(t),n.render(o,c)),s.color.setLocked(!1),s.depth.setLocked(!1),s.stencil.setLocked(!1),s.stencil.setFunc(r.EQUAL,1,4294967295),s.stencil.setOp(r.KEEP,r.KEEP,r.KEEP),s.stencil.setLocked(!0)}},lZ=class{constructor(n=null,{depthBuffer:e=!0,stencilBuffer:t=!1,multisampling:i=0,frameBufferType:a}={}){this.renderer=null,this.inputBuffer=this.createBuffer(e,t,a,i),this.outputBuffer=this.inputBuffer.clone(),this.copyPass=new O8,this.depthTexture=null,this.passes=[],this.timer=new nZ,this.autoRenderToScreen=!0,this.setRenderer(n)}get multisampling(){return this.inputBuffer.samples||0}set multisampling(n){const e=this.inputBuffer,t=this.multisampling;t>0&&n>0?(this.inputBuffer.samples=n,this.outputBuffer.samples=n,this.inputBuffer.dispose(),this.outputBuffer.dispose()):t!==n&&(this.inputBuffer.dispose(),this.outputBuffer.dispose(),this.inputBuffer=this.createBuffer(e.depthBuffer,e.stencilBuffer,e.texture.type,n),this.inputBuffer.depthTexture=this.depthTexture,this.outputBuffer=this.inputBuffer.clone())}getTimer(){return this.timer}getRenderer(){return this.renderer}setRenderer(n){if(this.renderer=n,n!==null){const e=n.getSize(new Ee),t=n.getContext().getContextAttributes().alpha,i=this.inputBuffer.texture.type;i===xi&&n.outputColorSpace===Kn&&(this.inputBuffer.texture.colorSpace=Kn,this.outputBuffer.texture.colorSpace=Kn,this.inputBuffer.dispose(),this.outputBuffer.dispose()),n.autoClear=!1,this.setSize(e.width,e.height);for(const a of this.passes)a.initialize(n,t,i)}}replaceRenderer(n,e=!0){const t=this.renderer,i=t.domElement.parentNode;return this.setRenderer(n),e&&i!==null&&(i.removeChild(t.domElement),i.appendChild(n.domElement)),t}createDepthTexture(){const n=this.depthTexture=new N0;return this.inputBuffer.depthTexture=n,this.inputBuffer.dispose(),this.inputBuffer.stencilBuffer?(n.format=ku,n.type=Vu):n.type=ls,n}deleteDepthTexture(){if(this.depthTexture!==null){this.depthTexture.dispose(),this.depthTexture=null,this.inputBuffer.depthTexture=null,this.inputBuffer.dispose();for(const n of this.passes)n.setDepthTexture(null)}}createBuffer(n,e,t,i){const a=this.renderer,r=a===null?new Ee:a.getDrawingBufferSize(new Ee),s={minFilter:Bt,magFilter:Bt,stencilBuffer:e,depthBuffer:n,type:t},o=new oi(r.width,r.height,s);return i>0&&(o.samples=i),t===xi&&a!==null&&a.outputColorSpace===Kn&&(o.texture.colorSpace=Kn),o.texture.name="EffectComposer.Buffer",o.texture.generateMipmaps=!1,o}setMainScene(n){for(const e of this.passes)e.mainScene=n}setMainCamera(n){for(const e of this.passes)e.mainCamera=n}addPass(n,e){const t=this.passes,i=this.renderer,a=i.getDrawingBufferSize(new Ee),r=i.getContext().getContextAttributes().alpha,s=this.inputBuffer.texture.type;if(n.setRenderer(i),n.setSize(a.width,a.height),n.initialize(i,r,s),this.autoRenderToScreen&&(t.length>0&&(t[t.length-1].renderToScreen=!1),n.renderToScreen&&(this.autoRenderToScreen=!1)),e!==void 0?t.splice(e,0,n):t.push(n),this.autoRenderToScreen&&(t[t.length-1].renderToScreen=!0),n.needsDepthTexture||this.depthTexture!==null)if(this.depthTexture===null){const o=this.createDepthTexture();for(n of t)n.setDepthTexture(o)}else n.setDepthTexture(this.depthTexture)}removePass(n){const e=this.passes,t=e.indexOf(n);if(t!==-1&&e.splice(t,1).length>0){if(this.depthTexture!==null){const r=(o,c)=>o||c.needsDepthTexture;e.reduce(r,!1)||(n.getDepthTexture()===this.depthTexture&&n.setDepthTexture(null),this.deleteDepthTexture())}this.autoRenderToScreen&&t===e.length&&(n.renderToScreen=!1,e.length>0&&(e[e.length-1].renderToScreen=!0))}}removeAllPasses(){const n=this.passes;this.deleteDepthTexture(),n.length>0&&(this.autoRenderToScreen&&(n[n.length-1].renderToScreen=!1),this.passes=[])}render(n){const e=this.renderer,t=this.copyPass;let i=this.inputBuffer,a=this.outputBuffer,r=!1,s,o,c;n===void 0&&(this.timer.update(),n=this.timer.getDelta());for(const h of this.passes)h.enabled&&(h.render(e,i,a,n,r),h.needsSwap&&(r&&(t.renderToScreen=h.renderToScreen,s=e.getContext(),o=e.state.buffers.stencil,o.setFunc(s.NOTEQUAL,1,4294967295),t.render(e,i,a,n,r),o.setFunc(s.EQUAL,1,4294967295)),c=i,i=a,a=c),h instanceof oZ?r=!0:h instanceof aZ&&(r=!1))}setSize(n,e,t){const i=this.renderer,a=i.getSize(new Ee);(n===void 0||e===void 0)&&(n=a.width,e=a.height),(a.width!==n||a.height!==e)&&i.setSize(n,e,t);const r=i.getDrawingBufferSize(new Ee);this.inputBuffer.setSize(r.width,r.height),this.outputBuffer.setSize(r.width,r.height);for(const s of this.passes)s.setSize(r.width,r.height)}reset(){this.dispose(),this.autoRenderToScreen=!0}dispose(){for(const n of this.passes)n.dispose();this.passes=[],this.inputBuffer!==null&&this.inputBuffer.dispose(),this.outputBuffer!==null&&this.outputBuffer.dispose(),this.deleteDepthTexture(),this.copyPass.dispose(),this.timer.dispose(),Ha.fullscreenGeometry.dispose()}},Qo={NONE:0,DEPTH:1,CONVOLUTION:2},Mn={FRAGMENT_HEAD:"FRAGMENT_HEAD",FRAGMENT_MAIN_UV:"FRAGMENT_MAIN_UV",FRAGMENT_MAIN_IMAGE:"FRAGMENT_MAIN_IMAGE",VERTEX_HEAD:"VERTEX_HEAD",VERTEX_MAIN_SUPPORT:"VERTEX_MAIN_SUPPORT"},cZ=class{constructor(){this.shaderParts=new Map([[Mn.FRAGMENT_HEAD,null],[Mn.FRAGMENT_MAIN_UV,null],[Mn.FRAGMENT_MAIN_IMAGE,null],[Mn.VERTEX_HEAD,null],[Mn.VERTEX_MAIN_SUPPORT,null]]),this.defines=new Map,this.uniforms=new Map,this.blendModes=new Map,this.extensions=new Set,this.attributes=Qo.NONE,this.varyings=new Set,this.uvTransformation=!1,this.readDepth=!1,this.colorSpace=Fi}},h2=!1,gD=class{constructor(n=null){this.originalMaterials=new Map,this.material=null,this.materials=null,this.materialsBackSide=null,this.materialsDoubleSide=null,this.materialsFlatShaded=null,this.materialsFlatShadedBackSide=null,this.materialsFlatShadedDoubleSide=null,this.setMaterial(n),this.meshCount=0,this.replaceMaterial=e=>{if(e.isMesh){let t;if(e.material.flatShading)switch(e.material.side){case da:t=this.materialsFlatShadedDoubleSide;break;case Wi:t=this.materialsFlatShadedBackSide;break;default:t=this.materialsFlatShaded;break}else switch(e.material.side){case da:t=this.materialsDoubleSide;break;case Wi:t=this.materialsBackSide;break;default:t=this.materials;break}this.originalMaterials.set(e,e.material),e.isSkinnedMesh?e.material=t[2]:e.isInstancedMesh?e.material=t[1]:e.material=t[0],++this.meshCount}}}cloneMaterial(n){if(!(n instanceof Di))return n.clone();const e=n.uniforms,t=new Map;for(const a in e){const r=e[a].value;r.isRenderTargetTexture&&(e[a].value=null,t.set(a,r))}const i=n.clone();for(const a of t)e[a[0]].value=a[1],i.uniforms[a[0]].value=a[1];return i}setMaterial(n){if(this.disposeMaterials(),this.material=n,n!==null){const e=this.materials=[this.cloneMaterial(n),this.cloneMaterial(n),this.cloneMaterial(n)];for(const t of e)t.uniforms=Object.assign({},n.uniforms),t.side=os;e[2].skinning=!0,this.materialsBackSide=e.map(t=>{const i=this.cloneMaterial(t);return i.uniforms=Object.assign({},n.uniforms),i.side=Wi,i}),this.materialsDoubleSide=e.map(t=>{const i=this.cloneMaterial(t);return i.uniforms=Object.assign({},n.uniforms),i.side=da,i}),this.materialsFlatShaded=e.map(t=>{const i=this.cloneMaterial(t);return i.uniforms=Object.assign({},n.uniforms),i.flatShading=!0,i}),this.materialsFlatShadedBackSide=e.map(t=>{const i=this.cloneMaterial(t);return i.uniforms=Object.assign({},n.uniforms),i.flatShading=!0,i.side=Wi,i}),this.materialsFlatShadedDoubleSide=e.map(t=>{const i=this.cloneMaterial(t);return i.uniforms=Object.assign({},n.uniforms),i.flatShading=!0,i.side=da,i})}}render(n,e,t){const i=n.shadowMap.enabled;if(n.shadowMap.enabled=!1,h2){const a=this.originalMaterials;this.meshCount=0,e.traverse(this.replaceMaterial),n.render(e,t);for(const r of a)r[0].material=r[1];this.meshCount!==a.size&&a.clear()}else{const a=e.overrideMaterial;e.overrideMaterial=this.material,n.render(e,t),e.overrideMaterial=a}n.shadowMap.enabled=i}disposeMaterials(){if(this.material!==null){const n=this.materials.concat(this.materialsBackSide).concat(this.materialsDoubleSide).concat(this.materialsFlatShaded).concat(this.materialsFlatShadedBackSide).concat(this.materialsFlatShadedDoubleSide);for(const e of n)e.dispose()}}dispose(){this.originalMaterials.clear(),this.disposeMaterials()}static get workaroundEnabled(){return h2}static set workaroundEnabled(n){h2=n}},Ll=-1,as=class extends tr{constructor(n,e=Ll,t=Ll,i=1){super(),this.resizable=n,this.baseSize=new Ee(1,1),this.preferredSize=new Ee(e,t),this.target=this.preferredSize,this.s=i,this.effectiveSize=new Ee,this.addEventListener("change",()=>this.updateEffectiveSize()),this.updateEffectiveSize()}updateEffectiveSize(){const n=this.baseSize,e=this.preferredSize,t=this.effectiveSize,i=this.scale;e.width!==Ll?t.width=e.width:e.height!==Ll?t.width=Math.round(e.height*(n.width/Math.max(n.height,1))):t.width=Math.round(n.width*i),e.height!==Ll?t.height=e.height:e.width!==Ll?t.height=Math.round(e.width/Math.max(n.width/Math.max(n.height,1),1)):t.height=Math.round(n.height*i)}get width(){return this.effectiveSize.width}set width(n){this.preferredWidth=n}get height(){return this.effectiveSize.height}set height(n){this.preferredHeight=n}getWidth(){return this.width}getHeight(){return this.height}get scale(){return this.s}set scale(n){this.s!==n&&(this.s=n,this.preferredSize.setScalar(Ll),this.dispatchEvent({type:"change"}),this.resizable.setSize(this.baseSize.width,this.baseSize.height))}getScale(){return this.scale}setScale(n){this.scale=n}get baseWidth(){return this.baseSize.width}set baseWidth(n){this.baseSize.width!==n&&(this.baseSize.width=n,this.dispatchEvent({type:"change"}),this.resizable.setSize(this.baseSize.width,this.baseSize.height))}getBaseWidth(){return this.baseWidth}setBaseWidth(n){this.baseWidth=n}get baseHeight(){return this.baseSize.height}set baseHeight(n){this.baseSize.height!==n&&(this.baseSize.height=n,this.dispatchEvent({type:"change"}),this.resizable.setSize(this.baseSize.width,this.baseSize.height))}getBaseHeight(){return this.baseHeight}setBaseHeight(n){this.baseHeight=n}setBaseSize(n,e){(this.baseSize.width!==n||this.baseSize.height!==e)&&(this.baseSize.set(n,e),this.dispatchEvent({type:"change"}),this.resizable.setSize(this.baseSize.width,this.baseSize.height))}get preferredWidth(){return this.preferredSize.width}set preferredWidth(n){this.preferredSize.width!==n&&(this.preferredSize.width=n,this.dispatchEvent({type:"change"}),this.resizable.setSize(this.baseSize.width,this.baseSize.height))}getPreferredWidth(){return this.preferredWidth}setPreferredWidth(n){this.preferredWidth=n}get preferredHeight(){return this.preferredSize.height}set preferredHeight(n){this.preferredSize.height!==n&&(this.preferredSize.height=n,this.dispatchEvent({type:"change"}),this.resizable.setSize(this.baseSize.width,this.baseSize.height))}getPreferredHeight(){return this.preferredHeight}setPreferredHeight(n){this.preferredHeight=n}setPreferredSize(n,e){(this.preferredSize.width!==n||this.preferredSize.height!==e)&&(this.preferredSize.set(n,e),this.dispatchEvent({type:"change"}),this.resizable.setSize(this.baseSize.width,this.baseSize.height))}copy(n){this.s=n.scale,this.baseSize.set(n.baseWidth,n.baseHeight),this.preferredSize.set(n.preferredWidth,n.preferredHeight),this.dispatchEvent({type:"change"}),this.resizable.setSize(this.baseSize.width,this.baseSize.height)}static get AUTO_SIZE(){return Ll}},dn={ADD:0,AVERAGE:2,COLOR:3,COLOR_BURN:4,COLOR_DODGE:5,DARKEN:6,DIFFERENCE:7,DIVIDE:8,DST:9,EXCLUSION:10,HARD_LIGHT:11,HARD_MIX:12,HUE:13,INVERT:14,INVERT_RGB:15,LIGHTEN:16,LINEAR_BURN:17,LINEAR_DODGE:18,LINEAR_LIGHT:19,LUMINOSITY:20,MULTIPLY:21,NEGATION:22,NORMAL:23,OVERLAY:24,PIN_LIGHT:25,REFLECT:26,SATURATION:27,SCREEN:28,SOFT_LIGHT:29,SRC:30,SUBTRACT:31,VIVID_LIGHT:32},uZ="vec4 blend(const in vec4 x,const in vec4 y,const in float opacity){return mix(x,vec4(x.rgb+y.rgb,y.a),y.a*opacity);}",hZ="vec4 blend(const in vec4 x,const in vec4 y,const in float opacity){return mix(x,vec4((x.rgb+y.rgb)*0.5,y.a),y.a*opacity);}",fZ="vec4 blend(const in vec4 x,const in vec4 y,const in float opacity){vec3 xHSL=RGBToHSL(x.rgb);vec3 yHSL=RGBToHSL(y.rgb);vec3 z=HSLToRGB(vec3(yHSL.xy,xHSL.z));return mix(x,vec4(z,y.a),y.a*opacity);}",dZ="vec4 blend(const in vec4 x,const in vec4 y,const in float opacity){vec3 a=x.rgb,b=y.rgb;vec3 z=mix(step(0.0,b)*(1.0-min(vec3(1.0),(1.0-a)/b)),vec3(1.0),step(1.0,a));return mix(x,vec4(z,y.a),y.a*opacity);}",pZ="vec4 blend(const in vec4 x,const in vec4 y,const in float opacity){vec3 a=x.rgb,b=y.rgb;vec3 z=step(0.0,a)*mix(min(vec3(1.0),a/max(1.0-b,1e-9)),vec3(1.0),step(1.0,b));return mix(x,vec4(z,y.a),y.a*opacity);}",mZ="vec4 blend(const in vec4 x,const in vec4 y,const in float opacity){return mix(x,vec4(min(x.rgb,y.rgb),y.a),y.a*opacity);}",gZ="vec4 blend(const in vec4 x,const in vec4 y,const in float opacity){return mix(x,vec4(abs(x.rgb-y.rgb),y.a),y.a*opacity);}",vZ="vec4 blend(const in vec4 x,const in vec4 y,const in float opacity){return mix(x,vec4(x.rgb/max(y.rgb,1e-12),y.a),y.a*opacity);}",xZ="vec4 blend(const in vec4 x,const in vec4 y,const in float opacity){return mix(x,vec4((x.rgb+y.rgb-2.0*x.rgb*y.rgb),y.a),y.a*opacity);}",yZ="vec4 blend(const in vec4 x,const in vec4 y,const in float opacity){vec3 a=min(x.rgb,1.0);vec3 b=min(y.rgb,1.0);vec3 z=mix(2.0*a*b,1.0-2.0*(1.0-a)*(1.0-b),step(0.5,b));return mix(x,vec4(z,y.a),y.a*opacity);}",_Z="vec4 blend(const in vec4 x,const in vec4 y,const in float opacity){return mix(x,vec4(step(1.0,x.rgb+y.rgb),y.a),y.a*opacity);}",SZ="vec4 blend(const in vec4 x,const in vec4 y,const in float opacity){vec3 xHSL=RGBToHSL(x.rgb);vec3 yHSL=RGBToHSL(y.rgb);vec3 z=HSLToRGB(vec3(yHSL.x,xHSL.yz));return mix(x,vec4(z,y.a),y.a*opacity);}",AZ="vec4 blend(const in vec4 x,const in vec4 y,const in float opacity){return mix(x,vec4(1.0-y.rgb,y.a),y.a*opacity);}",EZ="vec4 blend(const in vec4 x,const in vec4 y,const in float opacity){return mix(x,vec4(y.rgb*(1.0-x.rgb),y.a),y.a*opacity);}",TZ="vec4 blend(const in vec4 x,const in vec4 y,const in float opacity){return mix(x,vec4(max(x.rgb,y.rgb),y.a),y.a*opacity);}",bZ="vec4 blend(const in vec4 x,const in vec4 y,const in float opacity){return mix(x,vec4(clamp(y.rgb+x.rgb-1.0,0.0,1.0),y.a),y.a*opacity);}",MZ="vec4 blend(const in vec4 x,const in vec4 y,const in float opacity){return mix(x,vec4(min(x.rgb+y.rgb,1.0),y.a),y.a*opacity);}",CZ="vec4 blend(const in vec4 x,const in vec4 y,const in float opacity){return mix(x,vec4(clamp(2.0*y.rgb+x.rgb-1.0,0.0,1.0),y.a),y.a*opacity);}",RZ="vec4 blend(const in vec4 x,const in vec4 y,const in float opacity){vec3 xHSL=RGBToHSL(x.rgb);vec3 yHSL=RGBToHSL(y.rgb);vec3 z=HSLToRGB(vec3(xHSL.xy,yHSL.z));return mix(x,vec4(z,y.a),y.a*opacity);}",wZ="vec4 blend(const in vec4 x,const in vec4 y,const in float opacity){return mix(x,vec4(x.rgb*y.rgb,y.a),y.a*opacity);}",DZ="vec4 blend(const in vec4 x,const in vec4 y,const in float opacity){return mix(x,vec4(1.0-abs(1.0-x.rgb-y.rgb),y.a),y.a*opacity);}",NZ="vec4 blend(const in vec4 x,const in vec4 y,const in float opacity){return mix(x,y,y.a*opacity);}",OZ="vec4 blend(const in vec4 x,const in vec4 y,const in float opacity){vec3 z=mix(2.0*y.rgb*x.rgb,1.0-2.0*(1.0-y.rgb)*(1.0-x.rgb),step(0.5,x.rgb));return mix(x,vec4(z,y.a),y.a*opacity);}",IZ="vec4 blend(const in vec4 x,const in vec4 y,const in float opacity){vec3 y2=2.0*y.rgb;vec3 z=mix(mix(y2,x.rgb,step(0.5*x.rgb,y.rgb)),max(y2-1.0,vec3(0.0)),step(x.rgb,y2-1.0));return mix(x,vec4(z,y.a),y.a*opacity);}",BZ="vec4 blend(const in vec4 x,const in vec4 y,const in float opacity){vec3 z=mix(min(x.rgb*x.rgb/max(1.0-y.rgb,1e-12),1.0),y.rgb,step(1.0,y.rgb));return mix(x,vec4(z,y.a),y.a*opacity);}",UZ="vec4 blend(const in vec4 x,const in vec4 y,const in float opacity){vec3 xHSL=RGBToHSL(x.rgb);vec3 yHSL=RGBToHSL(y.rgb);vec3 z=HSLToRGB(vec3(xHSL.x,yHSL.y,xHSL.z));return mix(x,vec4(z,y.a),y.a*opacity);}",LZ="vec4 blend(const in vec4 x,const in vec4 y,const in float opacity){return mix(x,vec4(x.rgb+y.rgb-min(x.rgb*y.rgb,1.0),y.a),y.a*opacity);}",PZ="vec4 blend(const in vec4 x,const in vec4 y,const in float opacity){vec3 a=x.rgb;vec3 b=y.rgb;vec3 y2=2.0*b;vec3 w=step(0.5,b);vec3 c=a-(1.0-y2)*a*(1.0-a);vec3 d=mix(a+(y2-1.0)*(sqrt(a)-a),a+(y2-1.0)*a*((16.0*a-12.0)*a+3.0),w*(1.0-step(0.25,a)));vec3 z=mix(c,d,w);return mix(x,vec4(z,y.a),y.a*opacity);}",FZ="vec4 blend(const in vec4 x,const in vec4 y,const in float opacity){return y;}",HZ="vec4 blend(const in vec4 x,const in vec4 y,const in float opacity){return mix(x,vec4(max(x.rgb+y.rgb-1.0,0.0),y.a),y.a*opacity);}",zZ="vec4 blend(const in vec4 x,const in vec4 y,const in float opacity){vec3 z=mix(max(1.0-min((1.0-x.rgb)/(2.0*y.rgb),1.0),0.0),min(x.rgb/(2.0*(1.0-y.rgb)),1.0),step(0.5,y.rgb));return mix(x,vec4(z,y.a),y.a*opacity);}",GZ=new Map([[dn.ADD,uZ],[dn.AVERAGE,hZ],[dn.COLOR,fZ],[dn.COLOR_BURN,dZ],[dn.COLOR_DODGE,pZ],[dn.DARKEN,mZ],[dn.DIFFERENCE,gZ],[dn.DIVIDE,vZ],[dn.DST,null],[dn.EXCLUSION,xZ],[dn.HARD_LIGHT,yZ],[dn.HARD_MIX,_Z],[dn.HUE,SZ],[dn.INVERT,AZ],[dn.INVERT_RGB,EZ],[dn.LIGHTEN,TZ],[dn.LINEAR_BURN,bZ],[dn.LINEAR_DODGE,MZ],[dn.LINEAR_LIGHT,CZ],[dn.LUMINOSITY,RZ],[dn.MULTIPLY,wZ],[dn.NEGATION,DZ],[dn.NORMAL,NZ],[dn.OVERLAY,OZ],[dn.PIN_LIGHT,IZ],[dn.REFLECT,BZ],[dn.SATURATION,UZ],[dn.SCREEN,LZ],[dn.SOFT_LIGHT,PZ],[dn.SRC,FZ],[dn.SUBTRACT,HZ],[dn.VIVID_LIGHT,zZ]]),VZ=class extends tr{constructor(n,e=1){super(),this._blendFunction=n,this.opacity=new ie(e)}getOpacity(){return this.opacity.value}setOpacity(n){this.opacity.value=n}get blendFunction(){return this._blendFunction}set blendFunction(n){this._blendFunction=n,this.dispatchEvent({type:"change"})}getBlendFunction(){return this.blendFunction}setBlendFunction(n){this.blendFunction=n}getShaderCode(){return GZ.get(this.blendFunction)}},h0=class extends tr{constructor(n,e,{attributes:t=Qo.NONE,blendFunction:i=dn.NORMAL,defines:a=new Map,uniforms:r=new Map,extensions:s=null,vertexShader:o=null}={}){super(),this.name=n,this.renderer=null,this.attributes=t,this.fragmentShader=e,this.vertexShader=o,this.defines=a,this.uniforms=r,this.extensions=s,this.blendMode=new VZ(i),this.blendMode.addEventListener("change",c=>this.setChanged()),this._inputColorSpace=Fi,this._outputColorSpace=pa}get inputColorSpace(){return this._inputColorSpace}set inputColorSpace(n){this._inputColorSpace=n,this.setChanged()}get outputColorSpace(){return this._outputColorSpace}set outputColorSpace(n){this._outputColorSpace=n,this.setChanged()}set mainScene(n){}set mainCamera(n){}getName(){return this.name}setRenderer(n){this.renderer=n}getDefines(){return this.defines}getUniforms(){return this.uniforms}getExtensions(){return this.extensions}getBlendMode(){return this.blendMode}getAttributes(){return this.attributes}setAttributes(n){this.attributes=n,this.setChanged()}getFragmentShader(){return this.fragmentShader}setFragmentShader(n){this.fragmentShader=n,this.setChanged()}getVertexShader(){return this.vertexShader}setVertexShader(n){this.vertexShader=n,this.setChanged()}setChanged(){this.dispatchEvent({type:"change"})}setDepthTexture(n,e=Sc){}update(n,e,t){}setSize(n,e){}initialize(n,e,t){}dispose(){for(const n of Object.keys(this)){const e=this[n];(e instanceof oi||e instanceof ri||e instanceof vn||e instanceof Ha)&&this[n].dispose()}}},kZ=`#include +#ifdef FRAMEBUFFER_PRECISION_HIGH +uniform mediump sampler2D inputBuffer; +#else +uniform lowp sampler2D inputBuffer; +#endif +#ifdef RANGE +uniform vec2 range; +#elif defined(THRESHOLD) +uniform float threshold;uniform float smoothing; +#endif +varying vec2 vUv;void main(){vec4 texel=texture2D(inputBuffer,vUv);float l=luminance(texel.rgb);float mask=1.0; +#ifdef RANGE +float low=step(range.x,l);float high=step(l,range.y);mask=low*high; +#elif defined(THRESHOLD) +mask=smoothstep(threshold,threshold+smoothing,l); +#endif +#ifdef COLOR +gl_FragColor=texel*mask; +#else +gl_FragColor=vec4(l*mask); +#endif +}`,XZ=class extends Di{constructor(n=!1,e=null){super({name:"LuminanceMaterial",defines:{THREE_REVISION:_c.replace(/\D+/g,"")},uniforms:{inputBuffer:new ie(null),threshold:new ie(0),smoothing:new ie(1),range:new ie(null)},blending:ga,toneMapped:!1,depthWrite:!1,depthTest:!1,fragmentShader:kZ,vertexShader:Eb}),this.colorOutput=n,this.luminanceRange=e}set inputBuffer(n){this.uniforms.inputBuffer.value=n}setInputBuffer(n){this.uniforms.inputBuffer.value=n}get threshold(){return this.uniforms.threshold.value}set threshold(n){this.smoothing>0||n>0?this.defines.THRESHOLD="1":delete this.defines.THRESHOLD,this.uniforms.threshold.value=n}getThreshold(){return this.threshold}setThreshold(n){this.threshold=n}get smoothing(){return this.uniforms.smoothing.value}set smoothing(n){this.threshold>0||n>0?this.defines.THRESHOLD="1":delete this.defines.THRESHOLD,this.uniforms.smoothing.value=n}getSmoothingFactor(){return this.smoothing}setSmoothingFactor(n){this.smoothing=n}get useThreshold(){return this.threshold>0||this.smoothing>0}set useThreshold(n){}get colorOutput(){return this.defines.COLOR!==void 0}set colorOutput(n){n?this.defines.COLOR="1":delete this.defines.COLOR,this.needsUpdate=!0}isColorOutputEnabled(n){return this.colorOutput}setColorOutputEnabled(n){this.colorOutput=n}get useRange(){return this.luminanceRange!==null}set useRange(n){this.luminanceRange=null}get luminanceRange(){return this.uniforms.range.value}set luminanceRange(n){n!==null?this.defines.RANGE="1":delete this.defines.RANGE,this.uniforms.range.value=n,this.needsUpdate=!0}getLuminanceRange(){return this.luminanceRange}setLuminanceRange(n){this.luminanceRange=n}},WZ=class extends Ha{constructor({renderTarget:n,luminanceRange:e,colorOutput:t,resolutionScale:i=1,width:a=as.AUTO_SIZE,height:r=as.AUTO_SIZE,resolutionX:s=a,resolutionY:o=r}={}){super("LuminancePass"),this.fullscreenMaterial=new XZ(t,e),this.needsSwap=!1,this.renderTarget=n,this.renderTarget===void 0&&(this.renderTarget=new oi(1,1,{depthBuffer:!1}),this.renderTarget.texture.name="LuminancePass.Target");const c=this.resolution=new as(this,s,o,i);c.addEventListener("change",h=>this.setSize(c.baseWidth,c.baseHeight))}get texture(){return this.renderTarget.texture}getTexture(){return this.renderTarget.texture}getResolution(){return this.resolution}render(n,e,t,i,a){const r=this.fullscreenMaterial;r.inputBuffer=e.texture,n.setRenderTarget(this.renderToScreen?null:this.renderTarget),n.render(this.scene,this.camera)}setSize(n,e){const t=this.resolution;t.setBaseSize(n,e),this.renderTarget.setSize(t.width,t.height)}initialize(n,e,t){t!==void 0&&t!==xi&&(this.renderTarget.texture.type=t,this.fullscreenMaterial.defines.FRAMEBUFFER_PRECISION_HIGH="1")}},qE=class extends Ha{constructor(n,e="inputBuffer"){super("ShaderPass"),this.fullscreenMaterial=n,this.input=e}setInput(n){this.input=n}render(n,e,t,i,a){const r=this.fullscreenMaterial.uniforms;e!==null&&r!==void 0&&r[this.input]!==void 0&&(r[this.input].value=e.texture),n.setRenderTarget(this.renderToScreen?null:t),n.render(this.scene,this.camera)}initialize(n,e,t){t!==void 0&&t!==xi&&(this.fullscreenMaterial.defines.FRAMEBUFFER_PRECISION_HIGH="1")}},Tb=class extends Ha{constructor(n,e,t=null){super("RenderPass",n,e),this.needsSwap=!1,this.clearPass=new I8,this.overrideMaterialManager=t===null?null:new gD(t),this.ignoreBackground=!1,this.skipShadowMapUpdate=!1,this.selection=null}set mainScene(n){this.scene=n}set mainCamera(n){this.camera=n}get renderToScreen(){return super.renderToScreen}set renderToScreen(n){super.renderToScreen=n,this.clearPass.renderToScreen=n}get overrideMaterial(){const n=this.overrideMaterialManager;return n!==null?n.material:null}set overrideMaterial(n){const e=this.overrideMaterialManager;n!==null?e!==null?e.setMaterial(n):this.overrideMaterialManager=new gD(n):e!==null&&(e.dispose(),this.overrideMaterialManager=null)}getOverrideMaterial(){return this.overrideMaterial}setOverrideMaterial(n){this.overrideMaterial=n}get clear(){return this.clearPass.enabled}set clear(n){this.clearPass.enabled=n}getSelection(){return this.selection}setSelection(n){this.selection=n}isBackgroundDisabled(){return this.ignoreBackground}setBackgroundDisabled(n){this.ignoreBackground=n}isShadowMapDisabled(){return this.skipShadowMapUpdate}setShadowMapDisabled(n){this.skipShadowMapUpdate=n}getClearPass(){return this.clearPass}render(n,e,t,i,a){const r=this.scene,s=this.camera,o=this.selection,c=s.layers.mask,h=r.background,f=n.shadowMap.autoUpdate,d=this.renderToScreen?null:e;o!==null&&s.layers.set(o.getLayer()),this.skipShadowMapUpdate&&(n.shadowMap.autoUpdate=!1),(this.ignoreBackground||this.clearPass.overrideClearColor!==null)&&(r.background=null),this.clearPass.enabled&&this.clearPass.render(n,e),n.setRenderTarget(d),this.overrideMaterialManager!==null?this.overrideMaterialManager.render(n,r,s):n.render(r,s),s.layers.mask=c,r.background=h,n.shadowMap.autoUpdate=f}},Za={LINEAR:0,REINHARD:1,REINHARD2:2,REINHARD2_ADAPTIVE:3,OPTIMIZED_CINEON:5,CINEON:5,ACES_FILMIC:6,AGX:7,NEUTRAL:8},YZ=`#include +#ifdef GL_FRAGMENT_PRECISION_HIGH +uniform highp sampler2D depthBuffer; +#else +uniform mediump sampler2D depthBuffer; +#endif +#ifdef DOWNSAMPLE_NORMALS +uniform lowp sampler2D normalBuffer; +#endif +varying vec2 vUv0;varying vec2 vUv1;varying vec2 vUv2;varying vec2 vUv3;float readDepth(const in vec2 uv){ +#if DEPTH_PACKING == 3201 +return unpackRGBAToDepth(texture2D(depthBuffer,uv)); +#else +return texture2D(depthBuffer,uv).r; +#endif +}int findBestDepth(const in float samples[4]){float c=(samples[0]+samples[1]+samples[2]+samples[3])*0.25;float distances[4];distances[0]=abs(c-samples[0]);distances[1]=abs(c-samples[1]);distances[2]=abs(c-samples[2]);distances[3]=abs(c-samples[3]);float maxDistance=max(max(distances[0],distances[1]),max(distances[2],distances[3]));int remaining[3];int rejected[3];int i,j,k;for(i=0,j=0,k=0;i<4;++i){if(distances[i]this.setSize(o.baseWidth,o.baseHeight))}get texture(){return this.renderTarget.texture}getTexture(){return this.renderTarget.texture}getResolution(){return this.resolution}setDepthTexture(n,e=Sc){this.fullscreenMaterial.depthBuffer=n,this.fullscreenMaterial.depthPacking=e}render(n,e,t,i,a){n.setRenderTarget(this.renderToScreen?null:this.renderTarget),n.render(this.scene,this.camera)}setSize(n,e){const t=this.resolution;t.setBaseSize(n,e),this.renderTarget.setSize(t.width,t.height),this.fullscreenMaterial.setSize(n,e)}initialize(n,e,t){const i=n.getContext();if(!(i.getExtension("EXT_color_buffer_float")||i.getExtension("EXT_color_buffer_half_float")))throw new Error("Rendering to float texture is not supported.")}},KZ=`#include +#define packFloatToRGBA(v) packDepthToRGBA(v) +#define unpackRGBAToFloat(v) unpackRGBAToDepth(v) +uniform lowp sampler2D luminanceBuffer0;uniform lowp sampler2D luminanceBuffer1;uniform float minLuminance;uniform float deltaTime;uniform float tau;varying vec2 vUv;void main(){float l0=unpackRGBAToFloat(texture2D(luminanceBuffer0,vUv)); +#if __VERSION__ < 300 +float l1=texture2DLodEXT(luminanceBuffer1,vUv,MIP_LEVEL_1X1).r; +#else +float l1=textureLod(luminanceBuffer1,vUv,MIP_LEVEL_1X1).r; +#endif +l0=max(minLuminance,l0);l1=max(minLuminance,l1);float adaptedLum=l0+(l1-l0)*(1.0-exp(-deltaTime*tau));gl_FragColor=(adaptedLum==1.0)?vec4(1.0):packFloatToRGBA(adaptedLum);}`,JZ=class extends Di{constructor(){super({name:"AdaptiveLuminanceMaterial",defines:{MIP_LEVEL_1X1:"0.0"},uniforms:{luminanceBuffer0:new ie(null),luminanceBuffer1:new ie(null),minLuminance:new ie(.01),deltaTime:new ie(0),tau:new ie(1)},extensions:{shaderTextureLOD:!0},blending:ga,toneMapped:!1,depthWrite:!1,depthTest:!1,fragmentShader:KZ,vertexShader:Eb})}set luminanceBuffer0(n){this.uniforms.luminanceBuffer0.value=n}setLuminanceBuffer0(n){this.uniforms.luminanceBuffer0.value=n}set luminanceBuffer1(n){this.uniforms.luminanceBuffer1.value=n}setLuminanceBuffer1(n){this.uniforms.luminanceBuffer1.value=n}set mipLevel1x1(n){this.defines.MIP_LEVEL_1X1=n.toFixed(1),this.needsUpdate=!0}setMipLevel1x1(n){this.mipLevel1x1=n}set deltaTime(n){this.uniforms.deltaTime.value=n}setDeltaTime(n){this.uniforms.deltaTime.value=n}get minLuminance(){return this.uniforms.minLuminance.value}set minLuminance(n){this.uniforms.minLuminance.value=n}getMinLuminance(){return this.uniforms.minLuminance.value}setMinLuminance(n){this.uniforms.minLuminance.value=n}get adaptationRate(){return this.uniforms.tau.value}set adaptationRate(n){this.uniforms.tau.value=n}getAdaptationRate(){return this.uniforms.tau.value}setAdaptationRate(n){this.uniforms.tau.value=n}},QZ=class extends Ha{constructor(n,{minLuminance:e=.01,adaptationRate:t=1}={}){super("AdaptiveLuminancePass"),this.fullscreenMaterial=new JZ,this.needsSwap=!1,this.renderTargetPrevious=new oi(1,1,{minFilter:$n,magFilter:$n,depthBuffer:!1}),this.renderTargetPrevious.texture.name="Luminance.Previous";const i=this.fullscreenMaterial;i.luminanceBuffer0=this.renderTargetPrevious.texture,i.luminanceBuffer1=n,i.minLuminance=e,i.adaptationRate=t,this.renderTargetAdapted=this.renderTargetPrevious.clone(),this.renderTargetAdapted.texture.name="Luminance.Adapted",this.copyPass=new O8(this.renderTargetPrevious,!1)}get texture(){return this.renderTargetAdapted.texture}getTexture(){return this.renderTargetAdapted.texture}set mipLevel1x1(n){this.fullscreenMaterial.mipLevel1x1=n}get adaptationRate(){return this.fullscreenMaterial.adaptationRate}set adaptationRate(n){this.fullscreenMaterial.adaptationRate=n}render(n,e,t,i,a){this.fullscreenMaterial.deltaTime=i,n.setRenderTarget(this.renderToScreen?null:this.renderTargetAdapted),n.render(this.scene,this.camera),this.copyPass.render(n,this.renderTargetAdapted)}},$Z=`#include +uniform float whitePoint; +#if TONE_MAPPING_MODE == 2 || TONE_MAPPING_MODE == 3 +uniform float middleGrey; +#if TONE_MAPPING_MODE == 3 +uniform lowp sampler2D luminanceBuffer; +#else +uniform float averageLuminance; +#endif +vec3 Reinhard2ToneMapping(vec3 color){color*=toneMappingExposure;float l=luminance(color); +#if TONE_MAPPING_MODE == 3 +float lumAvg=unpackRGBAToFloat(texture2D(luminanceBuffer,vec2(0.5))); +#else +float lumAvg=averageLuminance; +#endif +float lumScaled=(l*middleGrey)/max(lumAvg,1e-6);float lumCompressed=lumScaled*(1.0+lumScaled/(whitePoint*whitePoint));lumCompressed/=(1.0+lumScaled);return clamp(lumCompressed*color,0.0,1.0);} +#elif TONE_MAPPING_MODE == 4 +#define A 0.15 +#define B 0.50 +#define C 0.10 +#define D 0.20 +#define E 0.02 +#define F 0.30 +vec3 Uncharted2Helper(const in vec3 x){return((x*(A*x+C*B)+D*E)/(x*(A*x+B)+D*F))-E/F;}vec3 Uncharted2ToneMapping(vec3 color){color*=toneMappingExposure;return clamp(Uncharted2Helper(color)/Uncharted2Helper(vec3(whitePoint)),0.0,1.0);} +#endif +void mainImage(const in vec4 inputColor,const in vec2 uv,out vec4 outputColor){ +#if TONE_MAPPING_MODE == 2 || TONE_MAPPING_MODE == 3 +outputColor=vec4(Reinhard2ToneMapping(inputColor.rgb),inputColor.a); +#elif TONE_MAPPING_MODE == 4 +outputColor=vec4(Uncharted2ToneMapping(inputColor.rgb),inputColor.a); +#else +outputColor=vec4(toneMapping(inputColor.rgb),inputColor.a); +#endif +}`,ej=class extends h0{constructor({blendFunction:n=dn.SRC,adaptive:e=!1,mode:t=e?Za.REINHARD2_ADAPTIVE:Za.AGX,resolution:i=256,maxLuminance:a=4,whitePoint:r=a,middleGrey:s=.6,minLuminance:o=.01,averageLuminance:c=1,adaptationRate:h=1}={}){super("ToneMappingEffect",$Z,{blendFunction:n,uniforms:new Map([["luminanceBuffer",new ie(null)],["maxLuminance",new ie(a)],["whitePoint",new ie(r)],["middleGrey",new ie(s)],["averageLuminance",new ie(c)]])}),this.renderTargetLuminance=new oi(1,1,{minFilter:Sr,depthBuffer:!1}),this.renderTargetLuminance.texture.generateMipmaps=!0,this.renderTargetLuminance.texture.name="Luminance",this.luminancePass=new WZ({renderTarget:this.renderTargetLuminance}),this.adaptiveLuminancePass=new QZ(this.luminancePass.texture,{minLuminance:o,adaptationRate:h}),this.uniforms.get("luminanceBuffer").value=this.adaptiveLuminancePass.texture,this.resolution=i,this.mode=t}get mode(){return Number(this.defines.get("TONE_MAPPING_MODE"))}set mode(n){if(this.mode===n)return;const t=_c.replace(/\D+/g,"")>=168?"CineonToneMapping(texel)":"OptimizedCineonToneMapping(texel)";switch(this.defines.clear(),this.defines.set("TONE_MAPPING_MODE",n.toFixed(0)),n){case Za.LINEAR:this.defines.set("toneMapping(texel)","LinearToneMapping(texel)");break;case Za.REINHARD:this.defines.set("toneMapping(texel)","ReinhardToneMapping(texel)");break;case Za.CINEON:case Za.OPTIMIZED_CINEON:this.defines.set("toneMapping(texel)",t);break;case Za.ACES_FILMIC:this.defines.set("toneMapping(texel)","ACESFilmicToneMapping(texel)");break;case Za.AGX:this.defines.set("toneMapping(texel)","AgXToneMapping(texel)");break;case Za.NEUTRAL:this.defines.set("toneMapping(texel)","NeutralToneMapping(texel)");break;default:this.defines.set("toneMapping(texel)","texel");break}this.adaptiveLuminancePass.enabled=n===Za.REINHARD2_ADAPTIVE,this.setChanged()}getMode(){return this.mode}setMode(n){this.mode=n}get whitePoint(){return this.uniforms.get("whitePoint").value}set whitePoint(n){this.uniforms.get("whitePoint").value=n}get middleGrey(){return this.uniforms.get("middleGrey").value}set middleGrey(n){this.uniforms.get("middleGrey").value=n}get averageLuminance(){return this.uniforms.get("averageLuminance").value}set averageLuminance(n){this.uniforms.get("averageLuminance").value=n}get adaptiveLuminanceMaterial(){return this.adaptiveLuminancePass.fullscreenMaterial}getAdaptiveLuminanceMaterial(){return this.adaptiveLuminanceMaterial}get resolution(){return this.luminancePass.resolution.width}set resolution(n){const e=Math.max(0,Math.ceil(Math.log2(n))),t=Math.pow(2,e);this.luminancePass.resolution.setPreferredSize(t,t),this.adaptiveLuminanceMaterial.mipLevel1x1=e}getResolution(){return this.resolution}setResolution(n){this.resolution=n}get adaptive(){return this.mode===Za.REINHARD2_ADAPTIVE}set adaptive(n){this.mode=n?Za.REINHARD2_ADAPTIVE:Za.REINHARD2}get adaptationRate(){return this.adaptiveLuminanceMaterial.adaptationRate}set adaptationRate(n){this.adaptiveLuminanceMaterial.adaptationRate=n}get distinction(){return console.warn(this.name,"distinction was removed."),1}set distinction(n){console.warn(this.name,"distinction was removed.")}update(n,e,t){this.adaptiveLuminancePass.enabled&&(this.luminancePass.render(n,e),this.adaptiveLuminancePass.render(n,null,null,t))}initialize(n,e,t){this.adaptiveLuminancePass.initialize(n,e,t)}},tj=`#include +#include +#include +#define packFloatToRGBA(v) packDepthToRGBA(v) +#define unpackRGBAToFloat(v) unpackRGBAToDepth(v) +#ifdef FRAMEBUFFER_PRECISION_HIGH +uniform mediump sampler2D inputBuffer; +#else +uniform lowp sampler2D inputBuffer; +#endif +#if DEPTH_PACKING == 3201 +uniform lowp sampler2D depthBuffer; +#elif defined(GL_FRAGMENT_PRECISION_HIGH) +uniform highp sampler2D depthBuffer; +#else +uniform mediump sampler2D depthBuffer; +#endif +uniform vec2 resolution;uniform vec2 texelSize;uniform float cameraNear;uniform float cameraFar;uniform float aspect;uniform float time;varying vec2 vUv;vec4 sRGBToLinear(const in vec4 value){return vec4(mix(pow(value.rgb*0.9478672986+vec3(0.0521327014),vec3(2.4)),value.rgb*0.0773993808,vec3(lessThanEqual(value.rgb,vec3(0.04045)))),value.a);}float readDepth(const in vec2 uv){ +#if DEPTH_PACKING == 3201 +float depth=unpackRGBAToDepth(texture2D(depthBuffer,uv)); +#else +float depth=texture2D(depthBuffer,uv).r; +#endif +#if defined(USE_LOGARITHMIC_DEPTH_BUFFER) || defined(LOG_DEPTH) +float d=pow(2.0,depth*log2(cameraFar+1.0))-1.0;float a=cameraFar/(cameraFar-cameraNear);float b=cameraFar*cameraNear/(cameraNear-cameraFar);depth=a+b/d; +#elif defined(USE_REVERSED_DEPTH_BUFFER) +depth=1.0-depth; +#endif +return depth;}float getViewZ(const in float depth){ +#ifdef PERSPECTIVE_CAMERA +return perspectiveDepthToViewZ(depth,cameraNear,cameraFar); +#else +return orthographicDepthToViewZ(depth,cameraNear,cameraFar); +#endif +}vec3 RGBToHCV(const in vec3 RGB){vec4 P=mix(vec4(RGB.bg,-1.0,2.0/3.0),vec4(RGB.gb,0.0,-1.0/3.0),step(RGB.b,RGB.g));vec4 Q=mix(vec4(P.xyw,RGB.r),vec4(RGB.r,P.yzx),step(P.x,RGB.r));float C=Q.x-min(Q.w,Q.y);float H=abs((Q.w-Q.y)/(6.0*C+EPSILON)+Q.z);return vec3(H,C,Q.x);}vec3 RGBToHSL(const in vec3 RGB){vec3 HCV=RGBToHCV(RGB);float L=HCV.z-HCV.y*0.5;float S=HCV.y/(1.0-abs(L*2.0-1.0)+EPSILON);return vec3(HCV.x,S,L);}vec3 HueToRGB(const in float H){float R=abs(H*6.0-3.0)-1.0;float G=2.0-abs(H*6.0-2.0);float B=2.0-abs(H*6.0-4.0);return clamp(vec3(R,G,B),0.0,1.0);}vec3 HSLToRGB(const in vec3 HSL){vec3 RGB=HueToRGB(HSL.x);float C=(1.0-abs(2.0*HSL.z-1.0))*HSL.y;return(RGB-0.5)*C+HSL.z;}FRAGMENT_HEAD void main(){FRAGMENT_MAIN_UV vec4 color0=texture2D(inputBuffer,UV);vec4 color1=vec4(0.0);FRAGMENT_MAIN_IMAGE color0.a=clamp(color0.a,0.0,1.0);gl_FragColor=color0; +#ifdef ENCODE_OUTPUT +#include +#endif +#include +}`,nj="uniform vec2 resolution;uniform vec2 texelSize;uniform float cameraNear;uniform float cameraFar;uniform float aspect;uniform float time;varying vec2 vUv;VERTEX_HEAD void main(){vUv=position.xy*0.5+0.5;VERTEX_MAIN_SUPPORT gl_Position=vec4(position.xy,1.0,1.0);}",ij=class extends Di{constructor(n,e,t,i,a=!1){super({name:"EffectMaterial",defines:{THREE_REVISION:_c.replace(/\D+/g,""),DEPTH_PACKING:"0",ENCODE_OUTPUT:"1"},uniforms:{inputBuffer:new ie(null),depthBuffer:new ie(null),resolution:new ie(new Ee),texelSize:new ie(new Ee),cameraNear:new ie(.3),cameraFar:new ie(1e3),aspect:new ie(1),time:new ie(0)},blending:ga,toneMapped:!1,depthWrite:!1,depthTest:!1,dithering:a}),n&&this.setShaderParts(n),e&&this.setDefines(e),t&&this.setUniforms(t),this.copyCameraSettings(i)}set inputBuffer(n){this.uniforms.inputBuffer.value=n}setInputBuffer(n){this.uniforms.inputBuffer.value=n}get depthBuffer(){return this.uniforms.depthBuffer.value}set depthBuffer(n){this.uniforms.depthBuffer.value=n}get depthPacking(){return Number(this.defines.DEPTH_PACKING)}set depthPacking(n){this.defines.DEPTH_PACKING=n.toFixed(0),this.needsUpdate=!0}setDepthBuffer(n,e=Sc){this.depthBuffer=n,this.depthPacking=e}setShaderData(n){this.setShaderParts(n.shaderParts),this.setDefines(n.defines),this.setUniforms(n.uniforms),this.setExtensions(n.extensions)}setShaderParts(n){return this.fragmentShader=tj.replace(Mn.FRAGMENT_HEAD,n.get(Mn.FRAGMENT_HEAD)||"").replace(Mn.FRAGMENT_MAIN_UV,n.get(Mn.FRAGMENT_MAIN_UV)||"").replace(Mn.FRAGMENT_MAIN_IMAGE,n.get(Mn.FRAGMENT_MAIN_IMAGE)||""),this.vertexShader=nj.replace(Mn.VERTEX_HEAD,n.get(Mn.VERTEX_HEAD)||"").replace(Mn.VERTEX_MAIN_SUPPORT,n.get(Mn.VERTEX_MAIN_SUPPORT)||""),this.needsUpdate=!0,this}setDefines(n){for(const e of n.entries())this.defines[e[0]]=e[1];return this.needsUpdate=!0,this}setUniforms(n){for(const e of n.entries())this.uniforms[e[0]]=e[1];return this}setExtensions(n){this.extensions={};for(const e of n)this.extensions[e]=!0;return this}get encodeOutput(){return this.defines.ENCODE_OUTPUT!==void 0}set encodeOutput(n){this.encodeOutput!==n&&(n?this.defines.ENCODE_OUTPUT="1":delete this.defines.ENCODE_OUTPUT,this.needsUpdate=!0)}isOutputEncodingEnabled(n){return this.encodeOutput}setOutputEncodingEnabled(n){this.encodeOutput=n}get time(){return this.uniforms.time.value}set time(n){this.uniforms.time.value=n}setDeltaTime(n){this.uniforms.time.value+=n}adoptCameraSettings(n){this.copyCameraSettings(n)}copyCameraSettings(n){n&&(this.uniforms.cameraNear.value=n.near,this.uniforms.cameraFar.value=n.far,n instanceof Jn?this.defines.PERSPECTIVE_CAMERA="1":delete this.defines.PERSPECTIVE_CAMERA,this.needsUpdate=!0)}setSize(n,e){const t=this.uniforms;t.resolution.value.set(n,e),t.texelSize.value.set(1/n,1/e),t.aspect.value=n/e}static get Section(){return Mn}};function vD(n,e,t){for(const i of e){const a="$1"+n+i.charAt(0).toUpperCase()+i.slice(1),r=new RegExp("([^\\.])(\\b"+i+"\\b)","g");for(const s of t.entries())s[1]!==null&&t.set(s[0],s[1].replace(r,a))}}function aj(n,e,t){let i=e.getFragmentShader(),a=e.getVertexShader();const r=i!==void 0&&/mainImage/.test(i),s=i!==void 0&&/mainUv/.test(i);if(t.attributes|=e.getAttributes(),i===void 0)throw new Error(`Missing fragment shader (${e.name})`);if(s&&t.attributes&Qo.CONVOLUTION)throw new Error(`Effects that transform UVs are incompatible with convolution effects (${e.name})`);if(!r&&!s)throw new Error(`Could not find mainImage or mainUv function (${e.name})`);{const o=/\w+\s+(\w+)\([\w\s,]*\)\s*{/g,c=t.shaderParts;let h=c.get(Mn.FRAGMENT_HEAD)||"",f=c.get(Mn.FRAGMENT_MAIN_UV)||"",d=c.get(Mn.FRAGMENT_MAIN_IMAGE)||"",m=c.get(Mn.VERTEX_HEAD)||"",g=c.get(Mn.VERTEX_MAIN_SUPPORT)||"";const y=new Set,E=new Set;if(s&&(f+=` ${n}MainUv(UV); +`,t.uvTransformation=!0),a!==null&&/mainSupport/.test(a)){const _=/mainSupport *\([\w\s]*?uv\s*?\)/.test(a);g+=` ${n}MainSupport(`,g+=_?`vUv); +`:`); +`;for(const A of a.matchAll(/(?:varying\s+\w+\s+([\S\s]*?);)/g))for(const b of A[1].split(/\s*,\s*/))t.varyings.add(b),y.add(b),E.add(b);for(const A of a.matchAll(o))E.add(A[1])}for(const _ of i.matchAll(o))E.add(_[1]);for(const _ of e.defines.keys())E.add(_.replace(/\([\w\s,]*\)/g,""));for(const _ of e.uniforms.keys())E.add(_);E.delete("while"),E.delete("for"),E.delete("if"),e.uniforms.forEach((_,A)=>t.uniforms.set(n+A.charAt(0).toUpperCase()+A.slice(1),_)),e.defines.forEach((_,A)=>t.defines.set(n+A.charAt(0).toUpperCase()+A.slice(1),_));const S=new Map([["fragment",i],["vertex",a]]);vD(n,E,t.defines),vD(n,E,S),i=S.get("fragment"),a=S.get("vertex");const v=e.blendMode;if(t.blendModes.set(v.blendFunction,v),r){e.inputColorSpace!==null&&e.inputColorSpace!==t.colorSpace&&(d+=e.inputColorSpace===Kn?`color0 = sRGBTransferOETF(color0); + `:`color0 = sRGBToLinear(color0); + `),e.outputColorSpace!==pa?t.colorSpace=e.outputColorSpace:e.inputColorSpace!==null&&(t.colorSpace=e.inputColorSpace);const _=/MainImage *\([\w\s,]*?depth[\w\s,]*?\)/;d+=`${n}MainImage(color0, UV, `,t.attributes&Qo.DEPTH&&_.test(i)&&(d+="depth, ",t.readDepth=!0),d+=`color1); + `;const A=n+"BlendOpacity";t.uniforms.set(A,v.opacity),d+=`color0 = blend${v.blendFunction}(color0, color1, ${A}); + + `,h+=`uniform float ${A}; + +`}if(h+=i+` +`,a!==null&&(m+=a+` +`),c.set(Mn.FRAGMENT_HEAD,h),c.set(Mn.FRAGMENT_MAIN_UV,f),c.set(Mn.FRAGMENT_MAIN_IMAGE,d),c.set(Mn.VERTEX_HEAD,m),c.set(Mn.VERTEX_MAIN_SUPPORT,g),e.extensions!==null)for(const _ of e.extensions)t.extensions.add(_)}}var rj=class extends Ha{constructor(n,...e){super("EffectPass"),this.fullscreenMaterial=new ij(null,null,null,n),this.listener=t=>this.handleEvent(t),this.effects=[],this.setEffects(e),this.skipRendering=!1,this.minTime=1,this.maxTime=Number.POSITIVE_INFINITY,this.timeScale=1}set mainScene(n){for(const e of this.effects)e.mainScene=n}set mainCamera(n){this.fullscreenMaterial.copyCameraSettings(n);for(const e of this.effects)e.mainCamera=n}get encodeOutput(){return this.fullscreenMaterial.encodeOutput}set encodeOutput(n){this.fullscreenMaterial.encodeOutput=n}get dithering(){return this.fullscreenMaterial.dithering}set dithering(n){const e=this.fullscreenMaterial;e.dithering=n,e.needsUpdate=!0}setEffects(n){for(const e of this.effects)e.removeEventListener("change",this.listener);this.effects=n.sort((e,t)=>t.attributes-e.attributes);for(const e of this.effects)e.addEventListener("change",this.listener)}updateMaterial(){const n=new cZ;let e=0;for(const s of this.effects)if(s.blendMode.blendFunction===dn.DST)n.attributes|=s.getAttributes()&Qo.DEPTH;else{if(n.attributes&s.getAttributes()&Qo.CONVOLUTION)throw new Error(`Convolution effects cannot be merged (${s.name})`);aj("e"+e++,s,n)}let t=n.shaderParts.get(Mn.FRAGMENT_HEAD),i=n.shaderParts.get(Mn.FRAGMENT_MAIN_IMAGE),a=n.shaderParts.get(Mn.FRAGMENT_MAIN_UV);const r=/\bblend\b/g;for(const s of n.blendModes.values())t+=s.getShaderCode().replace(r,`blend${s.blendFunction}`)+` +`;n.attributes&Qo.DEPTH?(n.readDepth&&(i=`float depth = readDepth(UV); + + `+i),this.needsDepthTexture=this.getDepthTexture()===null):this.needsDepthTexture=!1,n.colorSpace===Kn&&(i+=`color0 = sRGBToLinear(color0); + `),n.uvTransformation?(a=`vec2 transformedUv = vUv; +`+a,n.defines.set("UV","transformedUv")):n.defines.set("UV","vUv"),n.shaderParts.set(Mn.FRAGMENT_HEAD,t),n.shaderParts.set(Mn.FRAGMENT_MAIN_IMAGE,i),n.shaderParts.set(Mn.FRAGMENT_MAIN_UV,a);for(const[s,o]of n.shaderParts)o!==null&&n.shaderParts.set(s,o.trim().replace(/^#/,` +#`));this.skipRendering=e===0,this.needsSwap=!this.skipRendering,this.fullscreenMaterial.setShaderData(n)}recompile(){this.updateMaterial()}getDepthTexture(){return this.fullscreenMaterial.depthBuffer}setDepthTexture(n,e=Sc){this.fullscreenMaterial.depthBuffer=n,this.fullscreenMaterial.depthPacking=e;for(const t of this.effects)t.setDepthTexture(n,e)}render(n,e,t,i,a){for(const r of this.effects)r.update(n,e,i);if(!this.skipRendering||this.renderToScreen){const r=this.fullscreenMaterial;r.inputBuffer=e.texture,r.time+=i*this.timeScale,n.setRenderTarget(this.renderToScreen?null:t),n.render(this.scene,this.camera)}}setSize(n,e){this.fullscreenMaterial.setSize(n,e);for(const t of this.effects)t.setSize(n,e)}initialize(n,e,t){this.renderer=n;for(const i of this.effects)i.initialize(n,e,t);this.updateMaterial(),t!==void 0&&t!==xi&&(this.fullscreenMaterial.defines.FRAMEBUFFER_PRECISION_HIGH="1")}dispose(){super.dispose();for(const n of this.effects)n.removeEventListener("change",this.listener),n.dispose()}handleEvent(n){switch(n.type){case"change":this.recompile();break}}},sj=class extends Ha{constructor(n,e,{renderTarget:t,resolutionScale:i=1,width:a=as.AUTO_SIZE,height:r=as.AUTO_SIZE,resolutionX:s=a,resolutionY:o=r}={}){super("NormalPass"),this.needsSwap=!1,this.renderPass=new Tb(n,e,new $3);const c=this.renderPass;c.ignoreBackground=!0,c.skipShadowMapUpdate=!0;const h=c.getClearPass();h.overrideClearColor=new dt(7829503),h.overrideClearAlpha=1,this.renderTarget=t,this.renderTarget===void 0&&(this.renderTarget=new oi(1,1,{minFilter:$n,magFilter:$n}),this.renderTarget.texture.name="NormalPass.Target");const f=this.resolution=new as(this,s,o,i);f.addEventListener("change",d=>this.setSize(f.baseWidth,f.baseHeight))}set mainScene(n){this.renderPass.mainScene=n}set mainCamera(n){this.renderPass.mainCamera=n}get texture(){return this.renderTarget.texture}getTexture(){return this.renderTarget.texture}getResolution(){return this.resolution}getResolutionScale(){return this.resolution.scale}setResolutionScale(n){this.resolution.scale=n}render(n,e,t,i,a){const r=this.renderToScreen?null:this.renderTarget;this.renderPass.render(n,r,r)}setSize(n,e){const t=this.resolution;t.setBaseSize(n,e),this.renderTarget.setSize(t.width,t.height)}};function Nm(n,e,t){return e in n?Object.defineProperty(n,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):n[e]=t,n}new Ee;new Ee;function B8(n,e){if(!(n instanceof e))throw new TypeError("Cannot call a class as a function")}var Xr=function n(e,t,i){var a=this;B8(this,n),Nm(this,"dot2",function(r,s){return a.x*r+a.y*s}),Nm(this,"dot3",function(r,s,o){return a.x*r+a.y*s+a.z*o}),this.x=e,this.y=t,this.z=i},oj=[new Xr(1,1,0),new Xr(-1,1,0),new Xr(1,-1,0),new Xr(-1,-1,0),new Xr(1,0,1),new Xr(-1,0,1),new Xr(1,0,-1),new Xr(-1,0,-1),new Xr(0,1,1),new Xr(0,-1,1),new Xr(0,1,-1),new Xr(0,-1,-1)],xD=[151,160,137,91,90,15,131,13,201,95,96,53,194,233,7,225,140,36,103,30,69,142,8,99,37,240,21,10,23,190,6,148,247,120,234,75,0,26,197,62,94,252,219,203,117,35,11,32,57,177,33,88,237,149,56,87,174,20,125,136,171,168,68,175,74,165,71,134,139,48,27,166,77,146,158,231,83,111,229,122,60,211,133,230,220,105,92,41,55,46,245,40,244,102,143,54,65,25,63,161,1,216,80,73,209,76,132,187,208,89,18,169,200,196,135,130,116,188,159,86,164,100,109,198,173,186,3,64,52,217,226,250,124,123,5,202,38,147,118,126,255,82,85,212,207,206,59,227,47,16,58,17,182,189,28,42,223,183,170,213,119,248,152,2,44,154,163,70,221,153,101,155,167,43,172,9,129,22,39,253,19,98,108,110,79,113,224,232,178,185,112,104,218,246,97,228,251,34,242,193,238,210,144,12,191,179,162,241,81,51,145,235,249,14,239,107,49,192,214,31,181,199,106,157,184,84,204,176,115,121,50,45,127,4,150,254,138,236,205,93,222,114,67,29,24,72,243,141,128,195,78,66,215,61,156,180],yD=new Array(512),_D=new Array(512),lj=function(e){e>0&&e<1&&(e*=65536),e=Math.floor(e),e<256&&(e|=e<<8);for(var t=0;t<256;t++){var i;t&1?i=xD[t]^e&255:i=xD[t]^e>>8&255,yD[t]=yD[t+256]=i,_D[t]=_D[t+256]=oj[i%12]}};lj(0);function cj(n){if(typeof n=="number")n=Math.abs(n);else if(typeof n=="string"){var e=n;n=0;for(var t=0;t(n.getAttributes()&2)===2,hj=he.memo(he.forwardRef(({children:n,camera:e,scene:t,resolutionScale:i,enabled:a=!0,renderPriority:r=1,autoClear:s=!0,depthBuffer:o,enableNormalPass:c,stencilBuffer:h,multisampling:f=8,frameBufferType:d=sn},m)=>{const{gl:g,scene:y,camera:E,size:S}=jn(),v=t||y,_=e||E,[A,b,O]=he.useMemo(()=>{const B=new lZ(g,{depthBuffer:o,stencilBuffer:h,multisampling:f,frameBufferType:d});B.addPass(new Tb(v,_));let w=null,D=null;return c&&(D=new sj(v,_),D.enabled=!1,B.addPass(D),i!==void 0&&(w=new jZ({normalBuffer:D.texture,resolutionScale:i}),w.enabled=!1,B.addPass(w))),[B,D,w]},[_,g,o,h,f,d,v,c,i]);he.useEffect(()=>A==null?void 0:A.setSize(S.width,S.height),[A,S]),Ls((B,w)=>{if(a){const D=g.autoClear;g.autoClear=s,h&&!s&&g.clearStencil(),A.render(w),g.autoClear=D}},a?r:0);const N=he.useRef(null);he.useLayoutEffect(()=>{var D;const B=[],w=N.current.__r3f;if(w&&A){const G=w.children;for(let J=0;J{for(const G of B)A==null||A.removePass(G);b&&(b.enabled=!1),O&&(O.enabled=!1)}},[A,n,_,b,O]),he.useEffect(()=>{const B=g.toneMapping;return g.toneMapping=ns,()=>{g.toneMapping=B}},[g]);const L=he.useMemo(()=>({composer:A,normalPass:b,downSamplingPass:O,resolutionScale:i,camera:_,scene:v}),[A,b,O,i,_,v]);return he.useImperativeHandle(m,()=>A,[A]),It.jsx(bb.Provider,{value:L,children:It.jsx("group",{ref:N,children:n})})}));let fj=0;const ED=new WeakMap,dj=(n,e)=>function({blendFunction:t=e==null?void 0:e.blendFunction,opacity:i=e==null?void 0:e.opacity,...a}){let r=ED.get(n);if(!r){const c=`@react-three/postprocessing/${n.name}-${fj++}`;Sb({[c]:n}),ED.set(n,r=c)}const s=jn(c=>c.camera),o=IT.useMemo(()=>[...(e==null?void 0:e.args)??[],...a.args??[{...e,...a}]],[JSON.stringify(a)]);return It.jsx(r,{camera:s,"blendMode-blendFunction":t,"blendMode-opacity-value":i,...a,args:o})},pj=dj(ej);var mj="Invariant failed";function Lx(n,e){if(!n)throw new Error(mj)}const gj=new H;function U8(n,e,t=new H,i){const{x:a,y:r,z:s}=n,o=e.x,c=e.y,h=e.z,f=a*a*o,d=r*r*c,m=s*s*h,g=f+d+m,y=Math.sqrt(1/g);if(!Number.isFinite(y))return;const E=gj.copy(n).multiplyScalar(y);if(g<((i==null?void 0:i.centerTolerance)??.1))return t.copy(E);const S=E.multiply(e).multiplyScalar(2);let v=(1-y)*n.length()/(S.length()/2),_=0,A,b,O,N;do{v-=_,A=1/(1+v*o),b=1/(1+v*c),O=1/(1+v*h);const L=A*A,B=b*b,w=O*O,D=L*A,G=B*b,J=w*O;N=f*L+d*B+m*w-1,_=N/((f*D*o+d*G*c+m*J*h)*-2)}while(Math.abs(N)>1e-12);return t.set(a*A,r*b,s*O)}const df=new H,f2=new H,d2=new H,ZE=class{constructor(e,t,i){this.radii=new H(e,t,i)}get minimumRadius(){return Math.min(this.radii.x,this.radii.y,this.radii.z)}get maximumRadius(){return Math.max(this.radii.x,this.radii.y,this.radii.z)}get flattening(){return 1-this.minimumRadius/this.maximumRadius}get eccentricity(){return Math.sqrt(this.eccentricitySquared)}get eccentricitySquared(){const e=this.maximumRadius**2,t=this.minimumRadius**2;return(e-t)/e}reciprocalRadii(e=new H){const{x:t,y:i,z:a}=this.radii;return e.set(1/t,1/i,1/a)}reciprocalRadiiSquared(e=new H){const{x:t,y:i,z:a}=this.radii;return e.set(1/t**2,1/i**2,1/a**2)}projectOnSurface(e,t=new H,i){return U8(e,this.reciprocalRadiiSquared(),t,i)}getSurfaceNormal(e,t=new H){return t.multiplyVectors(this.reciprocalRadiiSquared(df),e).normalize()}getEastNorthUpVectors(e,t=new H,i=new H,a=new H){this.getSurfaceNormal(e,a),t.set(-e.y,e.x,0).normalize(),i.crossVectors(a,t).normalize()}getEastNorthUpFrame(e,t=new lt){const i=df,a=f2,r=d2;return this.getEastNorthUpVectors(e,i,a,r),t.makeBasis(i,a,r).setPosition(e)}getNorthUpEastFrame(e,t=new lt){const i=df,a=f2,r=d2;return this.getEastNorthUpVectors(e,i,a,r),t.makeBasis(a,r,i).setPosition(e)}getIntersection(e,t=new H){const i=this.reciprocalRadii(df),a=f2.copy(i).multiply(e.origin),r=d2.copy(i).multiply(e.direction),s=a.lengthSq(),o=r.lengthSq(),c=a.dot(r),h=c**2-o*(s-1);if(s===1)return t.copy(e.origin);if(s>1){if(c>=0||h<0)return;const f=Math.sqrt(h),d=(-c-f)/o,m=(-c+f)/o;return e.at(Math.min(d,m),t)}if(s<1){const f=c**2-o*(s-1),d=Math.sqrt(f),m=(-c+d)/o;return e.at(m,t)}if(c<0)return e.at(-c/o,t)}getOsculatingSphereCenter(e,t,i=new H){Lx(this.radii.x===this.radii.y);const a=this.radii.x**2,r=this.radii.z**2,s=df.set(e.x/a,e.y/a,e.z/r).normalize();return i.copy(s.multiplyScalar(-t).add(e))}getNormalAtHorizon(e,t,i=new H){Lx(this.radii.x===this.radii.y);const a=this.radii.x**2,r=this.radii.z**2,s=e,o=t;let c=(s.x*o.x+s.y*o.y)/a+s.z*o.z/r;c/=(s.x**2+s.y**2)/a+s.z**2/r;const h=df.copy(o).multiplyScalar(-c).add(e);return i.set(h.x/a,h.y/a,h.z/r).normalize()}};ZE.WGS84=new ZE(6378137,6378137,6356752314245179e-9);let bd=ZE;const Lv=new H,TD=new H,nm=class jE{constructor(e=0,t=0,i=0){this.longitude=e,this.latitude=t,this.height=i}set(e,t,i){return this.longitude=e,this.latitude=t,i!=null&&(this.height=i),this}clone(){return new jE(this.longitude,this.latitude,this.height)}copy(e){return this.longitude=e.longitude,this.latitude=e.latitude,this.height=e.height,this}equals(e){return e.longitude===this.longitude&&e.latitude===this.latitude&&e.height===this.height}setLongitude(e){return this.longitude=e,this}setLatitude(e){return this.latitude=e,this}setHeight(e){return this.height=e,this}normalize(){return this.longitude +Licensed under MIT. https://github.com/101arrowz/fflate/blob/master/LICENSE +version 0.8.2 +*/var Qr=Uint8Array,Pf=Uint16Array,vj=Int32Array,L8=new Qr([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,0,0,0]),P8=new Qr([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,0,0]),xj=new Qr([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),F8=function(n,e){for(var t=new Pf(31),i=0;i<31;++i)t[i]=e+=1<>1|(ni&21845)<<1;Pl=(Pl&52428)>>2|(Pl&13107)<<2,Pl=(Pl&61680)>>4|(Pl&3855)<<4,KE[ni]=((Pl&65280)>>8|(Pl&255)<<8)>>1}var Om=function(n,e,t){for(var i=n.length,a=0,r=new Pf(e);a>c]=h}else for(o=new Pf(i),a=0;a>15-n[a]);return o},H0=new Qr(288);for(var ni=0;ni<144;++ni)H0[ni]=8;for(var ni=144;ni<256;++ni)H0[ni]=9;for(var ni=256;ni<280;++ni)H0[ni]=7;for(var ni=280;ni<288;++ni)H0[ni]=8;var G8=new Qr(32);for(var ni=0;ni<32;++ni)G8[ni]=5;var Aj=Om(H0,9,1),Ej=Om(G8,5,1),p2=function(n){for(var e=n[0],t=1;te&&(e=n[t]);return e},ys=function(n,e,t){var i=e/8|0;return(n[i]|n[i+1]<<8)>>(e&7)&t},m2=function(n,e){var t=e/8|0;return(n[t]|n[t+1]<<8|n[t+2]<<16)>>(e&7)},Tj=function(n){return(n+7)/8|0},bj=function(n,e,t){return(t==null||t>n.length)&&(t=n.length),new Qr(n.subarray(e,t))},Mj=["unexpected EOF","invalid block type","invalid length/literal","invalid distance","stream finished","no stream handler",,"no callback","invalid UTF-8 data","extra field too long","date not in range 1980-2099","filename too long","stream finishing","invalid zip data"],Ts=function(n,e,t){var i=new Error(e||Mj[n]);if(i.code=n,Error.captureStackTrace&&Error.captureStackTrace(i,Ts),!t)throw i;return i},Cj=function(n,e,t,i){var a=n.length,r=0;if(!a||e.f&&!e.l)return t||new Qr(0);var s=!t,o=s||e.i!=2,c=e.i;s&&(t=new Qr(a*3));var h=function(ft){var ht=t.length;if(ft>ht){var et=new Qr(Math.max(ht*2,ft));et.set(t),t=et}},f=e.f||0,d=e.p||0,m=e.b||0,g=e.l,y=e.d,E=e.m,S=e.n,v=a*8;do{if(!g){f=ys(n,d,1);var _=ys(n,d+1,3);if(d+=3,_)if(_==1)g=Aj,y=Ej,E=9,S=5;else if(_==2){var N=ys(n,d,31)+257,L=ys(n,d+10,15)+4,B=N+ys(n,d+5,31)+1;d+=14;for(var w=new Qr(B),D=new Qr(19),G=0;G>4;if(A<16)w[G++]=A;else{var q=0,te=0;for(A==16?(te=3+ys(n,d,3),d+=2,q=w[G-1]):A==17?(te=3+ys(n,d,7),d+=3):A==18&&(te=11+ys(n,d,127),d+=7);te--;)w[G++]=q}}var ee=w.subarray(0,N),de=w.subarray(N);E=p2(ee),S=p2(de),g=Om(ee,E,1),y=Om(de,S,1)}else Ts(1);else{var A=Tj(d)+4,b=n[A-4]|n[A-3]<<8,O=A+b;if(O>a){c&&Ts(0);break}o&&h(m+b),t.set(n.subarray(A,O),m),e.b=m+=b,e.p=d=O*8,e.f=f;continue}if(d>v){c&&Ts(0);break}}o&&h(m+131072);for(var ue=(1<>4;if(d+=q&15,d>v){c&&Ts(0);break}if(q||Ts(2),Ke<256)t[m++]=Ke;else if(Ke==256){He=d,g=null;break}else{var nt=Ke-254;if(Ke>264){var G=Ke-257,xt=L8[G];nt=ys(n,d,(1<>4;fe||Ts(3),d+=fe&15;var de=Sj[Be];if(Be>3){var xt=P8[Be];de+=m2(n,d)&(1<v){c&&Ts(0);break}o&&h(m+131072);var Je=m+nt;if(m>4>7||(n[0]<<8|n[1])%31)&&Ts(6,"invalid zlib data"),(n[1]>>5&1)==1&&Ts(6,"invalid zlib data: "+(n[1]&32?"need":"unexpected")+" dictionary"),(n[1]>>3&4)+2};function Pv(n,e){return Cj(n.subarray(wj(n),-4),{i:2},e,e)}var Dj=typeof TextDecoder<"u"&&new TextDecoder,Nj=0;try{Dj.decode(Rj,{stream:!0}),Nj=1}catch{}let V8=class extends Hy{constructor(e){super(e),this.type=sn,this.outputFormat=Rn}parse(e){const w=Math.pow(2.7182818,2.2);function D(M,I){let V=0;for(let F=0;F<65536;++F)(F==0||M[F>>3]&1<<(F&7))&&(I[V++]=F);const C=V-1;for(;V<65536;)I[V++]=0;return C}function G(M){for(let I=0;I<16384;I++)M[I]={},M[I].len=0,M[I].lit=0,M[I].p=null}const J={l:0,c:0,lc:0};function $(M,I,V,C,F){for(;V>V&(1<0;--V){const C=I+se[V]>>1;se[V]=I,I=C}for(let V=0;V<65537;++V){const C=M[V];C>0&&(M[V]=C|se[C]++<<6)}}function q(M,I,V,C,F,Y){const z=I;let k=0,Q=0;for(;C<=F;C++){if(z.value-I.value>V)return!1;$(6,k,Q,M,z);const ae=J.l;if(k=J.c,Q=J.lc,Y[C]=ae,ae==63){if(z.value-I.value>V)throw new Error("Something wrong with hufUnpackEncTable");$(8,k,Q,M,z);let ce=J.l+6;if(k=J.c,Q=J.lc,C+ce>F+1)throw new Error("Something wrong with hufUnpackEncTable");for(;ce--;)Y[C++]=0;C--}else if(ae>=59){let ce=ae-59+2;if(C+ce>F+1)throw new Error("Something wrong with hufUnpackEncTable");for(;ce--;)Y[C++]=0;C--}}le(Y)}function te(M){return M&63}function ee(M){return M>>6}function de(M,I,V,C){for(;I<=V;I++){const F=ee(M[I]),Y=te(M[I]);if(F>>Y)throw new Error("Invalid table entry");if(Y>14){const z=C[F>>Y-14];if(z.len)throw new Error("Invalid table entry");if(z.lit++,z.p){const k=z.p;z.p=new Array(z.lit);for(let Q=0;Q0;k--){const Q=C[(F<<14-Y)+z];if(Q.len||Q.p)throw new Error("Invalid table entry");Q.len=Y,Q.lit=I,z++}}}return!0}const ue={c:0,lc:0};function Pe(M,I,V,C){M=M<<8|ne(V,C),I+=8,ue.c=M,ue.lc=I}const He={c:0,lc:0};function Ke(M,I,V,C,F,Y,z,k,Q){if(M==I){C<8&&(Pe(V,C,F,Y),V=ue.c,C=ue.lc),C-=8;let ae=V>>C;if(ae=new Uint8Array([ae])[0],k.value+ae>Q)return!1;const ce=z[k.value-1];for(;ae-- >0;)z[k.value++]=ce}else if(k.value32767?I-65536:I}const fe={a:0,b:0};function Be(M,I){const V=xt(M),F=xt(I),Y=V+(F&1)+(F>>1),z=Y,k=Y-F;fe.a=z,fe.b=k}function Je(M,I){const V=nt(M),C=nt(I),F=V-(C>>1)&65535,Y=C+F-32768&65535;fe.a=Y,fe.b=F}function ve(M,I,V,C,F,Y,z){const k=z<16384,Q=V>F?F:V;let ae=1,ce,xe;for(;ae<=Q;)ae<<=1;for(ae>>=1,ce=ae,ae>>=1;ae>=1;){xe=0;const Ae=xe+Y*(F-ce),Ne=Y*ae,Fe=Y*ce,Oe=C*ae,Ze=C*ce;let $e,vt,Rt,pt;for(;xe<=Ae;xe+=Fe){let Ct=xe;const je=xe+C*(V-ce);for(;Ct<=je;Ct+=Ze){const Ut=Ct+Oe,Ft=Ct+Ne,Et=Ft+Oe;k?(Be(M[Ct+I],M[Ft+I]),$e=fe.a,Rt=fe.b,Be(M[Ut+I],M[Et+I]),vt=fe.a,pt=fe.b,Be($e,vt),M[Ct+I]=fe.a,M[Ut+I]=fe.b,Be(Rt,pt),M[Ft+I]=fe.a,M[Et+I]=fe.b):(Je(M[Ct+I],M[Ft+I]),$e=fe.a,Rt=fe.b,Je(M[Ut+I],M[Et+I]),vt=fe.a,pt=fe.b,Je($e,vt),M[Ct+I]=fe.a,M[Ut+I]=fe.b,Je(Rt,pt),M[Ft+I]=fe.a,M[Et+I]=fe.b)}if(V&ae){const Ut=Ct+Ne;k?Be(M[Ct+I],M[Ut+I]):Je(M[Ct+I],M[Ut+I]),$e=fe.a,M[Ut+I]=fe.b,M[Ct+I]=$e}}if(F&ae){let Ct=xe;const je=xe+C*(V-ce);for(;Ct<=je;Ct+=Ze){const Ut=Ct+Oe;k?Be(M[Ct+I],M[Ut+I]):Je(M[Ct+I],M[Ut+I]),$e=fe.a,M[Ut+I]=fe.b,M[Ct+I]=$e}}ce=ae,ae>>=1}return xe}function at(M,I,V,C,F,Y,z,k,Q){let ae=0,ce=0;const xe=z,Ae=Math.trunc(C.value+(F+7)/8);for(;C.value=14;){const Fe=ae>>ce-14&16383,Oe=I[Fe];if(Oe.len)ce-=Oe.len,Ke(Oe.lit,Y,ae,ce,V,C,k,Q,xe),ae=He.c,ce=He.lc;else{if(!Oe.p)throw new Error("hufDecode issues");let Ze;for(Ze=0;Ze=$e&&ee(M[Oe.p[Ze]])==(ae>>ce-$e&(1<<$e)-1)){ce-=$e,Ke(Oe.p[Ze],Y,ae,ce,V,C,k,Q,xe),ae=He.c,ce=He.lc;break}}if(Ze==Oe.lit)throw new Error("hufDecode issues")}}const Ne=8-F&7;for(ae>>=Ne,ce-=Ne;ce>0;){const Fe=I[ae<<14-ce&16383];if(Fe.len)ce-=Fe.len,Ke(Fe.lit,Y,ae,ce,V,C,k,Q,xe),ae=He.c,ce=He.lc;else throw new Error("hufDecode issues")}return!0}function ft(M,I,V,C,F,Y){const z={value:0},k=V.value,Q=St(I,V),ae=St(I,V);V.value+=4;const ce=St(I,V);if(V.value+=4,Q<0||Q>=65537||ae<0||ae>=65537)throw new Error("Something wrong with HUF_ENCSIZE");const xe=new Array(65537),Ae=new Array(16384);G(Ae);const Ne=C-(V.value-k);if(q(M,V,Ne,Q,ae,xe),ce>8*(C-(V.value-k)))throw new Error("Something wrong with hufUncompress");de(xe,Q,ae,Ae),at(xe,Ae,M,V,ce,ae,Y,F,z)}function ht(M,I,V){for(let C=0;CY||(I[F++]=M[V++],F>Y));)I[F++]=M[C++]}function Z(M){let I=M.byteLength;const V=new Array;let C=0;const F=new DataView(M);for(;I>0;){const Y=F.getInt8(C++);if(Y<0){const z=-Y;I-=z+1;for(let k=0;k>8==255?F+=C&255:(V[F]=C,F++),M.value++}function Ye(M,I){I[0]=_e(M[0]),I[1]=_e(M[1]),I[2]=_e(M[5]),I[3]=_e(M[6]),I[4]=_e(M[14]),I[5]=_e(M[15]),I[6]=_e(M[27]),I[7]=_e(M[28]),I[8]=_e(M[2]),I[9]=_e(M[4]),I[10]=_e(M[7]),I[11]=_e(M[13]),I[12]=_e(M[16]),I[13]=_e(M[26]),I[14]=_e(M[29]),I[15]=_e(M[42]),I[16]=_e(M[3]),I[17]=_e(M[8]),I[18]=_e(M[12]),I[19]=_e(M[17]),I[20]=_e(M[25]),I[21]=_e(M[30]),I[22]=_e(M[41]),I[23]=_e(M[43]),I[24]=_e(M[9]),I[25]=_e(M[11]),I[26]=_e(M[18]),I[27]=_e(M[24]),I[28]=_e(M[31]),I[29]=_e(M[40]),I[30]=_e(M[44]),I[31]=_e(M[53]),I[32]=_e(M[10]),I[33]=_e(M[19]),I[34]=_e(M[23]),I[35]=_e(M[32]),I[36]=_e(M[39]),I[37]=_e(M[45]),I[38]=_e(M[52]),I[39]=_e(M[54]),I[40]=_e(M[20]),I[41]=_e(M[22]),I[42]=_e(M[33]),I[43]=_e(M[38]),I[44]=_e(M[46]),I[45]=_e(M[51]),I[46]=_e(M[55]),I[47]=_e(M[60]),I[48]=_e(M[21]),I[49]=_e(M[34]),I[50]=_e(M[37]),I[51]=_e(M[47]),I[52]=_e(M[50]),I[53]=_e(M[56]),I[54]=_e(M[59]),I[55]=_e(M[61]),I[56]=_e(M[35]),I[57]=_e(M[36]),I[58]=_e(M[48]),I[59]=_e(M[49]),I[60]=_e(M[57]),I[61]=_e(M[58]),I[62]=_e(M[62]),I[63]=_e(M[63])}function ot(M){const I=.5*Math.cos(.7853975),V=.5*Math.cos(3.14159/16),C=.5*Math.cos(3.14159/8),F=.5*Math.cos(3*3.14159/16),Y=.5*Math.cos(5*3.14159/16),z=.5*Math.cos(3*3.14159/8),k=.5*Math.cos(7*3.14159/16),Q=new Array(4),ae=new Array(4),ce=new Array(4),xe=new Array(4);for(let Ae=0;Ae<8;++Ae){const Ne=Ae*8;Q[0]=C*M[Ne+2],Q[1]=z*M[Ne+2],Q[2]=C*M[Ne+6],Q[3]=z*M[Ne+6],ae[0]=V*M[Ne+1]+F*M[Ne+3]+Y*M[Ne+5]+k*M[Ne+7],ae[1]=F*M[Ne+1]-k*M[Ne+3]-V*M[Ne+5]-Y*M[Ne+7],ae[2]=Y*M[Ne+1]-V*M[Ne+3]+k*M[Ne+5]+F*M[Ne+7],ae[3]=k*M[Ne+1]-Y*M[Ne+3]+F*M[Ne+5]-V*M[Ne+7],ce[0]=I*(M[Ne+0]+M[Ne+4]),ce[3]=I*(M[Ne+0]-M[Ne+4]),ce[1]=Q[0]+Q[3],ce[2]=Q[1]-Q[2],xe[0]=ce[0]+ce[1],xe[1]=ce[3]+ce[2],xe[2]=ce[3]-ce[2],xe[3]=ce[0]-ce[1],M[Ne+0]=xe[0]+ae[0],M[Ne+1]=xe[1]+ae[1],M[Ne+2]=xe[2]+ae[2],M[Ne+3]=xe[3]+ae[3],M[Ne+4]=xe[3]-ae[3],M[Ne+5]=xe[2]-ae[2],M[Ne+6]=xe[1]-ae[1],M[Ne+7]=xe[0]-ae[0]}for(let Ae=0;Ae<8;++Ae)Q[0]=C*M[16+Ae],Q[1]=z*M[16+Ae],Q[2]=C*M[48+Ae],Q[3]=z*M[48+Ae],ae[0]=V*M[8+Ae]+F*M[24+Ae]+Y*M[40+Ae]+k*M[56+Ae],ae[1]=F*M[8+Ae]-k*M[24+Ae]-V*M[40+Ae]-Y*M[56+Ae],ae[2]=Y*M[8+Ae]-V*M[24+Ae]+k*M[40+Ae]+F*M[56+Ae],ae[3]=k*M[8+Ae]-Y*M[24+Ae]+F*M[40+Ae]-V*M[56+Ae],ce[0]=I*(M[Ae]+M[32+Ae]),ce[3]=I*(M[Ae]-M[32+Ae]),ce[1]=Q[0]+Q[3],ce[2]=Q[1]-Q[2],xe[0]=ce[0]+ce[1],xe[1]=ce[3]+ce[2],xe[2]=ce[3]-ce[2],xe[3]=ce[0]-ce[1],M[0+Ae]=xe[0]+ae[0],M[8+Ae]=xe[1]+ae[1],M[16+Ae]=xe[2]+ae[2],M[24+Ae]=xe[3]+ae[3],M[32+Ae]=xe[3]-ae[3],M[40+Ae]=xe[2]-ae[2],M[48+Ae]=xe[1]-ae[1],M[56+Ae]=xe[0]-ae[0]}function rt(M){for(let I=0;I<64;++I){const V=M[0][I],C=M[1][I],F=M[2][I];M[0][I]=V+1.5747*F,M[1][I]=V-.1873*C-.4682*F,M[2][I]=V+1.8556*C}}function mt(M,I,V){for(let C=0;C<64;++C)I[V+C]=Zo.toHalfFloat(j(M[C]))}function j(M){return M<=1?Math.sign(M)*Math.pow(Math.abs(M),2.2):Math.sign(M)*Math.pow(w,Math.abs(M)-1)}function P(M){return new DataView(M.array.buffer,M.offset.value,M.size)}function pe(M){const I=M.viewer.buffer.slice(M.offset.value,M.offset.value+M.size),V=new Uint8Array(Z(I)),C=new Uint8Array(V.length);return et(V),Re(V,C),new DataView(C.buffer)}function Ie(M){const I=M.array.slice(M.offset.value,M.offset.value+M.size),V=Pv(I),C=new Uint8Array(V.length);return et(V),Re(V,C),new DataView(C.buffer)}function Ge(M){const I=M.viewer,V={value:M.offset.value},C=new Uint16Array(M.columns*M.lines*(M.inputChannels.length*M.type)),F=new Uint8Array(8192);let Y=0;const z=new Array(M.inputChannels.length);for(let Fe=0,Oe=M.inputChannels.length;Fe=8192)throw new Error("Something is wrong with PIZ_COMPRESSION BITMAP_SIZE");if(k<=Q)for(let Fe=0;Fe0;){const Oe=ut(I.buffer,V),Ze=me(I,V),$e=Ze>>2&3,vt=(Ze>>4)-1,Rt=new Int8Array([vt])[0],pt=me(I,V);Y.push({name:Oe,index:Rt,type:pt,compression:$e}),z-=Oe.length+3}const k=De.channels,Q=new Array(M.inputChannels.length);for(let Oe=0;Oe=0&&(ae.idx[vt.index]=Oe),Ze.offset=Oe)}}let ce,xe,Ae;if(F.acCompressedSize>0)switch(F.acCompression){case 0:ce=new Uint16Array(F.totalAcUncompressedCount),ft(M.array,I,V,F.acCompressedSize,ce,F.totalAcUncompressedCount);break;case 1:const Oe=M.array.slice(V.value,V.value+F.totalAcUncompressedCount),Ze=Pv(Oe);ce=new Uint16Array(Ze.buffer),V.value+=F.totalAcUncompressedCount;break}if(F.dcCompressedSize>0){const Oe={array:M.array,offset:V,size:F.dcCompressedSize};xe=new Uint16Array(Ie(Oe).buffer),V.value+=F.dcCompressedSize}if(F.rleRawSize>0){const Oe=M.array.slice(V.value,V.value+F.rleCompressedSize),Ze=Pv(Oe);Ae=Z(Ze.buffer),V.value+=F.rleCompressedSize}let Ne=0;const Fe=new Array(Q.length);for(let Oe=0;Oe>10,V=M&1023;return(M>>15?-1:1)*(I?I===31?V?NaN:1/0:Math.pow(2,I-15)*(1+V/1024):6103515625e-14*(V/1024))}function it(M,I){const V=M.getUint16(I.value,!0);return I.value+=2,V}function tt(M,I){return _e(it(M,I))}function We(M,I,V,C){const F=V.value,Y=[];for(;V.value>4]}}function hl(M,I){const V=K(M,I),C=K(M,I);return[V,C]}function Ps(M,I){const V=K(M,I),C=K(M,I),F=K(M,I);return[V,C,F]}function ar(M,I,V,C,F){if(C==="string"||C==="stringvector"||C==="iccProfile")return wt(I,V,F);if(C==="chlist")return We(M,I,V,F);if(C==="chromaticities")return gt(M,V);if(C==="compression")return Nt(M,V);if(C==="box2i")return $t(M,V);if(C==="envmap")return hi(M,V);if(C==="tiledesc")return fi(M,V);if(C==="lineOrder")return jt(M,V);if(C==="float")return K(M,V);if(C==="v2f")return hl(M,V);if(C==="v3f")return Ps(M,V);if(C==="int")return Ve(M,V);if(C==="rational")return bt(M,V);if(C==="timecode")return ke(M,V);if(C==="preview")return V.value+=F,"skipped";V.value+=F}function Ni(M,I){const V=Math.log2(M);return I=="ROUND_DOWN"?Math.floor(V):Math.ceil(V)}function Va(M,I,V){let C=0;switch(M.levelMode){case"ONE_LEVEL":C=1;break;case"MIPMAP_LEVELS":C=Ni(Math.max(I,V),M.roundingMode)+1;break;case"RIPMAP_LEVELS":throw new Error("THREE.EXRLoader: RIPMAP_LEVELS tiles currently unsupported.")}return C}function Oi(M,I,V,C){const F=new Array(M);for(let Y=0;YM.width?M.width-z:M.blockWidth,M.lines=k+M.blockHeight>M.height?M.height-k:M.blockHeight;const Q=M.columns*M.totalBytes,ce=M.sizeM.height?M.height-F:M.blockHeight;const Y=M.columns*M.totalBytes,k=M.size=M.height)continue;const xe=Q*Y,Ae=(M.height-1-ce)*M.outLineWidth;for(let Ne=0;NeAe:z.scanOrder=Ae=>z.height-1-Ae,M.spec.singleTile){z.blockHeight=M.tiles.ySize,z.blockWidth=M.tiles.xSize;const Ae=Va(M.tiles,z.width,z.height),Ne=Oi(Ae,z.width,M.tiles.xSize,M.tiles.roundingMode),Fe=Oi(Ae,z.height,M.tiles.ySize,M.tiles.roundingMode);z.tileCount=Ne[0]*Fe[0];for(let Oe=0;Oe{Lx(s instanceof ArrayBuffer);try{t(s)}catch(o){a!=null?a(o):console.error(o),this.manager.itemError(e)}},i,a)}};function X8(n){var e,t;return n instanceof ky?n.getContext().getExtension("OES_texture_float_linear")!=null:((t=(e=n.backend).hasFeature)==null?void 0:t.call(e,"float32-filterable"))??!1}const Oj=128,Ij=128,Bj=64,Uj="9627216cc50057994c98a2118f3c4a23765d43b9",W8=`https://media.githubusercontent.com/media/takram-design-engineering/three-geospatial/${Uj}/packages/core/assets/stbn.bin`,Lj="This is not an object",Pj="This is not a Float16Array object",bD="This constructor is not a subclass of Float16Array",Y8="The constructor property value is not an object",Fj="Species constructor didn't return TypedArray object",Hj="Derived constructor created TypedArray object which was too small length",Im="Attempting to access detached ArrayBuffer",JE="Cannot convert undefined or null to object",QE="Cannot mix BigInt and other types, use explicit conversions",MD="@@iterator property is not callable",CD="Reduce of empty array with no initial value",zj="The comparison function must be either a function or undefined",g2="Offset is out of bounds";function ei(n){return(e,...t)=>ja(n,e,t)}function kd(n,e){return ei(Md(n,e).get)}const{apply:ja,construct:im,defineProperty:Gj,get:v2,getOwnPropertyDescriptor:Md,getPrototypeOf:z0,has:$E,ownKeys:q8,set:RD,setPrototypeOf:Z8}=Reflect,Vj=Proxy,{EPSILON:kj,MAX_SAFE_INTEGER:wD,isFinite:j8,isNaN:Cd}=Number,{iterator:io,species:Xj,toStringTag:Cb,for:Wj}=Symbol,Rd=Object,{create:Yy,defineProperty:G0,freeze:Yj,is:DD}=Rd,eT=Rd.prototype,qj=eT.__lookupGetter__?ei(eT.__lookupGetter__):(n,e)=>{if(n==null)throw li(JE);let t=Rd(n);do{const i=Md(t,e);if(i!==void 0)return Vo(i,"get")?i.get:void 0}while((t=z0(t))!==null)},Vo=Rd.hasOwn||ei(eT.hasOwnProperty),K8=Array,J8=K8.isArray,qy=K8.prototype,Zj=ei(qy.join),jj=ei(qy.push),Kj=ei(qy.toLocaleString),Rb=qy[io],Jj=ei(Rb),{abs:Qj,trunc:Q8}=Math,Zy=ArrayBuffer,$j=Zy.isView,$8=Zy.prototype,eK=ei($8.slice),tK=kd($8,"byteLength"),tT=typeof SharedArrayBuffer<"u"?SharedArrayBuffer:null,nK=tT&&kd(tT.prototype,"byteLength"),wb=z0(Uint8Array),iK=wb.from,la=wb.prototype,aK=la[io],rK=ei(la.keys),sK=ei(la.values),oK=ei(la.entries),lK=ei(la.set),ND=ei(la.reverse),cK=ei(la.fill),uK=ei(la.copyWithin),OD=ei(la.sort),zp=ei(la.slice),hK=ei(la.subarray),ea=kd(la,"buffer"),au=kd(la,"byteOffset"),Dn=kd(la,"length"),e6=kd(la,Cb),fK=Uint8Array,vr=Uint16Array,ID=(...n)=>ja(iK,vr,n),Db=Uint32Array,dK=Float32Array,Ju=z0([][io]()),jy=ei(Ju.next),pK=ei(function*(){}().next),mK=z0(Ju),gK=DataView.prototype,vK=ei(gK.getUint16),li=TypeError,x2=RangeError,t6=WeakSet,n6=t6.prototype,xK=ei(n6.add),yK=ei(n6.has),Ky=WeakMap,Nb=Ky.prototype,Px=ei(Nb.get),_K=ei(Nb.has),Ob=ei(Nb.set),i6=new Ky,SK=Yy(null,{next:{value:function(){const n=Px(i6,this);return jy(n)}},[io]:{value:function(){return this}}});function am(n){if(n[io]===Rb&&Ju.next===jy)return n;const e=Yy(SK);return Ob(i6,e,Jj(n)),e}const a6=new Ky,r6=Yy(mK,{next:{value:function(){const n=Px(a6,this);return pK(n)},writable:!0,configurable:!0}});for(const n of q8(Ju))n!=="next"&&G0(r6,n,Md(Ju,n));function BD(n){const e=Yy(r6);return Ob(a6,e,n),e}function Fx(n){return n!==null&&typeof n=="object"||typeof n=="function"}function UD(n){return n!==null&&typeof n=="object"}function Hx(n){return e6(n)!==void 0}function nT(n){const e=e6(n);return e==="BigInt64Array"||e==="BigUint64Array"}function AK(n){try{return J8(n)?!1:(tK(n),!0)}catch{return!1}}function s6(n){if(tT===null)return!1;try{return nK(n),!0}catch{return!1}}function EK(n){return AK(n)||s6(n)}function LD(n){return J8(n)?n[io]===Rb&&Ju.next===jy:!1}function TK(n){return Hx(n)?n[io]===aK&&Ju.next===jy:!1}function Fv(n){if(typeof n!="string")return!1;const e=+n;return n!==e+""||!j8(e)?!1:e===Q8(e)}const zx=Wj("__Float16Array__");function bK(n){if(!UD(n))return!1;const e=z0(n);if(!UD(e))return!1;const t=e.constructor;if(t===void 0)return!1;if(!Fx(t))throw li(Y8);return $E(t,zx)}const iT=1/kj;function MK(n){return n+iT-iT}const o6=6103515625e-14,CK=65504,l6=.0009765625,PD=l6*o6,RK=l6*iT;function wK(n){const e=+n;if(!j8(e)||e===0)return e;const t=e>0?1:-1,i=Qj(e);if(iCK||Cd(r)?t*(1/0):t*r}const c6=new Zy(4),u6=new dK(c6),h6=new Db(c6),Ss=new vr(512),As=new fK(512);for(let n=0;n<256;++n){const e=n-127;e<-24?(Ss[n]=0,Ss[n|256]=32768,As[n]=24,As[n|256]=24):e<-14?(Ss[n]=1024>>-e-14,Ss[n|256]=1024>>-e-14|32768,As[n]=-e-1,As[n|256]=-e-1):e<=15?(Ss[n]=e+15<<10,Ss[n|256]=e+15<<10|32768,As[n]=13,As[n|256]=13):e<128?(Ss[n]=31744,Ss[n|256]=64512,As[n]=24,As[n|256]=24):(Ss[n]=31744,Ss[n|256]=64512,As[n]=13,As[n|256]=13)}function Xs(n){u6[0]=wK(n);const e=h6[0],t=e>>23&511;return Ss[t]+((e&8388607)>>As[t])}const Ib=new Db(2048);for(let n=1;n<1024;++n){let e=n<<13,t=0;for(;!(e&8388608);)e<<=1,t-=8388608;e&=-8388609,t+=947912704,Ib[n]=e|t}for(let n=1024;n<2048;++n)Ib[n]=939524096+(n-1024<<13);const Xd=new Db(64);for(let n=1;n<31;++n)Xd[n]=n<<23;Xd[31]=1199570944;Xd[32]=2147483648;for(let n=33;n<63;++n)Xd[n]=2147483648+(n-32<<23);Xd[63]=3347054592;const f6=new vr(64);for(let n=1;n<64;++n)n!==32&&(f6[n]=1024);function Bn(n){const e=n>>10;return h6[0]=Ib[f6[e]+(n&1023)]+Xd[e],u6[0]}function No(n){const e=+n;return Cd(e)||e===0?0:Q8(e)}function y2(n){const e=No(n);return e<0?0:ee)return 1;if(n===0&&e===0){const a=DD(n,0),r=DD(e,0);if(!a&&r)return-1;if(a&&!r)return 1}return 0}const Bb=2,Gx=new Ky;function Ff(n){return _K(Gx,n)||!$j(n)&&bK(n)}function wn(n){if(!Ff(n))throw li(Pj)}function zv(n,e){const t=Ff(n),i=Hx(n);if(!t&&!i)throw li(Fj);if(typeof e=="number"){let a;if(t){const r=nn(n);a=Dn(r)}else a=Dn(n);if(a=0?a:i+a;if(!(r<0||r>=i))return Bn(t[r])}with(e,t){wn(this);const i=nn(this),a=Dn(i),r=No(e),s=r>=0?r:a+r,o=+t;if(s<0||s>=a)throw x2(g2);const c=new vr(ea(i),au(i),Dn(i)),h=new ta(ea(zp(c))),f=nn(h);return f[s]=Xs(o),h}map(e,...t){wn(this);const i=nn(this),a=Dn(i),r=t[0],s=Hv(i,ta);if(s===ta){const c=new ta(a),h=nn(c);for(let f=0;f=0;--o)r=e(r,Bn(i[o]),o,this);return r}forEach(e,...t){wn(this);const i=nn(this),a=Dn(i),r=t[0];for(let s=0;s=0;--s){const o=Bn(i[s]);if(ja(e,r,[o,s,this]))return o}}findLastIndex(e,...t){wn(this);const i=nn(this),a=Dn(i),r=t[0];for(let s=a-1;s>=0;--s){const o=Bn(i[s]);if(ja(e,r,[o,s,this]))return s}return-1}every(e,...t){wn(this);const i=nn(this),a=Dn(i),r=t[0];for(let s=0;sr)throw x2(g2);for(let c=0;ci(Bn(a),Bn(r))),this}toSorted(e){wn(this);const t=nn(this);if(e!==void 0&&typeof e!="function")throw new li(zj);const i=e!==void 0?e:FD,a=new vr(ea(t),au(t),Dn(t)),r=new ta(ea(zp(a))),s=nn(r);return OD(s,(o,c)=>i(Bn(o),Bn(c))),r}slice(e,t){wn(this);const i=nn(this),a=Hv(i,ta);if(a===ta){const y=new vr(ea(i),au(i),Dn(i));return new ta(ea(zp(y,e,t)))}const r=Dn(i),s=No(e),o=t===void 0?r:No(t);let c;s===-1/0?c=0:s<0?c=r+s>0?r+s:0:c=r0?r+o:0:h=r0?h-c:0,d=new a(f);if(zv(d,f),f===0)return d;const m=ea(i);if(Bm(m))throw li(Im);let g=0;for(;c=1?No(t[0]):a-1;if(r===-1/0)return-1;r>=0?r=r=0;--s)if(Vo(i,s)&&Bn(i[s])===e)return s;return-1}includes(e,...t){wn(this);const i=nn(this),a=Dn(i);let r=No(t[0]);if(r===1/0)return!1;r<0&&(r+=a,r<0&&(r=0));const s=Cd(e);for(let o=r;o{try{t(this.parser(s))}catch(o){a!=null?a(o):console.error(o),this.manager.itemError(e)}},i,a)}};function IK(n){const e=n instanceof Int8Array?M0:n instanceof Uint8Array||n instanceof Uint8ClampedArray?xi:n instanceof Int16Array?C0:n instanceof Uint16Array?Gu:n instanceof Int32Array?Fd:n instanceof Uint32Array?ls:n instanceof ul?sn:n instanceof Float32Array||n instanceof Float64Array?Sn:null;return Lx(e!=null),e}let du=class extends yi{constructor(e,t,i={},a){super(a),this.textureClass=e,this.parser=t,this.options={format:Rn,minFilter:Bt,magFilter:Bt,...i}}load(e,t,i,a){const r=new this.textureClass,s=new OK(this.parser,this.manager);return s.setRequestHeader(this.requestHeader),s.setPath(this.path),s.setWithCredentials(this.withCredentials),s.load(e,o=>{r.image.data=o instanceof ul?new Uint16Array(o.buffer):o;const{width:c,height:h,depth:f,...d}=this.options;c!=null&&(r.image.width=c),h!=null&&(r.image.height=h),"depth"in r.image&&f!=null&&(r.image.depth=f),r.type=IK(o),Object.assign(r,d),r.needsUpdate=!0,t==null||t(r)},i,a),r}};const kx=Nr.clamp;Nr.euclideanModulo;Nr.inverseLerp;const p6=Nr.lerp,aT=Nr.degToRad;Nr.radToDeg;Nr.isPowerOfTwo;Nr.ceilPowerOfTwo;Nr.floorPowerOfTwo;Nr.normalize;function BK(n,e,t,i=0,a=1){return Nr.mapLinear(n,e,t,i,a)}function UK(n){return Math.min(Math.max(n,0),1)}function An(n){return(e,t)=>{e instanceof ri?Object.defineProperty(e,t,{enumerable:!0,get(){var i;return((i=this.defines)==null?void 0:i[n])!=null},set(i){var a;i!==this[t]&&(i?(this.defines??(this.defines={}),this.defines[n]="1"):(a=this.defines)==null||delete a[n],this.needsUpdate=!0)}}):Object.defineProperty(e,t,{enumerable:!0,get(){return this.defines.has(n)},set(i){i!==this[t]&&(i?this.defines.set(n,"1"):this.defines.delete(n),this.setChanged())}})}}function hh(n,{min:e=Number.MIN_SAFE_INTEGER,max:t=Number.MAX_SAFE_INTEGER}={}){return(i,a)=>{i instanceof ri?Object.defineProperty(i,a,{enumerable:!0,get(){var s;const r=(s=this.defines)==null?void 0:s[n];return r!=null?parseInt(r,10):0},set(r){const s=this[a];r!==s&&(this.defines??(this.defines={}),this.defines[n]=kx(r,e,t).toFixed(0),this.needsUpdate=!0)}}):Object.defineProperty(i,a,{enumerable:!0,get(){const r=this.defines.get(n);return r!=null?parseInt(r,10):0},set(r){const s=this[a];r!==s&&(this.defines.set(n,kx(r,e,t).toFixed(0)),this.setChanged())}})}}function Ub(n,{min:e=-1/0,max:t=1/0,precision:i=7}={}){return(a,r)=>{a instanceof ri?Object.defineProperty(a,r,{enumerable:!0,get(){var o;const s=(o=this.defines)==null?void 0:o[n];return s!=null?parseFloat(s):0},set(s){const o=this[r];s!==o&&(this.defines??(this.defines={}),this.defines[n]=kx(s,e,t).toFixed(i),this.needsUpdate=!0)}}):Object.defineProperty(a,r,{enumerable:!0,get(){const s=this.defines.get(n);return s!=null?parseFloat(s):0},set(s){const o=this[r];s!==o&&(this.defines.set(n,kx(s,e,t).toFixed(i)),this.setChanged())}})}}function m6(n,{validate:e}={}){return(t,i)=>{t instanceof ri?Object.defineProperty(t,i,{enumerable:!0,get(){var a;return((a=this.defines)==null?void 0:a[n])??""},set(a){if(a!==this[i]){if((e==null?void 0:e(a))===!1){console.error(`Expression validation failed: ${a}`);return}this.defines??(this.defines={}),this.defines[n]=a,this.needsUpdate=!0}}}):Object.defineProperty(t,i,{enumerable:!0,get(){return this.defines.get(n)??""},set(a){if(a!==this[i]){if((e==null?void 0:e(a))===!1){console.error(`Expression validation failed: ${a}`);return}this.defines.set(n,a),this.setChanged()}}})}}function zD(n,...e){const t={};for(let i=0;ia[s],set:o=>{a[s]=o}}}return Object.defineProperties(n,t),n}function GD(n,e,t){const i={};for(const a of t)i[a]={enumerable:!0,get:()=>e.uniforms[a].value,set:r=>{e.uniforms[a].value=r}};return Object.defineProperties(n,i),n}class _2 extends yi{constructor(e={},t){super(t),this.options=e}load(e,t,i,a){const{width:r,height:s,depth:o}=this.options,c=new is(null,r,s,o),h=new V8(this.manager);return h.setRequestHeader(this.requestHeader),h.setPath(this.path),h.setWithCredentials(this.withCredentials),h.load(e,f=>{const{image:d}=f;c.image={data:d.data,width:r??d.width,height:s??d.height,depth:o??Math.sqrt(d.height)},c.type=f.type,c.format=f.format,c.colorSpace=f.colorSpace,c.needsUpdate=!0;try{t==null||t(c)}catch(m){a!=null?a(m):console.error(m),this.manager.itemError(e)}},i,a),c}}class VD extends yi{constructor(e={},t){super(t),this.options=e}load(e,t,i,a){const{width:r,height:s}=this.options,o=new Pa(null,r,s),c=new V8(this.manager);return c.setRequestHeader(this.requestHeader),c.setPath(this.path),c.setWithCredentials(this.withCredentials),c.load(e,h=>{const{image:f}=h;o.image={data:f.data,width:r??f.width,height:s??f.height},o.type=h.type,o.format=h.format,o.colorSpace=h.colorSpace,o.needsUpdate=!0;try{t==null||t(o)}catch(d){a!=null?a(d):console.error(d),this.manager.itemError(e)}},i,a),o}}const LK=/^[ \t]*#include +"([\w\d./]+)"/gm;function ki(n,e){return n.replace(LK,(t,i)=>{const a=i.split("/").reduce((r,s)=>typeof r!="string"&&r!=null?r[s]:void 0,e);if(typeof a!="string")throw new Error(`Could not find include for ${i}.`);return ki(a,e)})}let Gv;function PK(){if(Gv!=null)return Gv;const n=new Uint32Array([268435456]);return Gv=new Uint8Array(n.buffer,n.byteOffset,n.byteLength)[0]===0,Gv}function FK(n,e,t,i=!0){if(i===PK())return new e(n);const a=Object.assign(new DataView(n),{getFloat16(s,o){return NK(this,s,o)}}),r=new e(a.byteLength/e.BYTES_PER_ELEMENT);for(let s=0,o=0;snew Uint8Array(n),Gp=(n,e)=>FK(n,ul,"getFloat16",e);class v6 extends du{constructor(e){super(is,g6,{format:Ar,minFilter:$n,magFilter:$n,wrapS:wi,wrapT:wi,wrapR:wi,width:Oj,height:Ij,depth:Bj},e)}}const HK=/#pragma unroll_loop_start\s+for\s*\(\s*int\s+i\s*=\s*(\d+)\s*;\s*i\s*<\s*(\d+)\s*;\s*(?:i\s*\+\+|\+\+\s*i)\s*\)\s*{([\s\S]+?)}\s+#pragma unroll_loop_end/g;function zK(n,e,t,i){let a="";for(let r=parseInt(e,10);r= interval.x && depth < interval.y) { + return UNROLLED_LOOP_INDEX; + } + #endif // UNROLLED_LOOP_INDEX < SHADOW_CASCADE_COUNT + } + #pragma unroll_loop_end + return SHADOW_CASCADE_COUNT - 1; +} + +int getFadedCascadeIndex( + const mat4 viewMatrix, + const vec3 worldPosition, + const vec2 intervals[SHADOW_CASCADE_COUNT], + const float near, + const float far, + const float jitter +) { + vec4 viewPosition = viewMatrix * vec4(worldPosition, 1.0); + float depth = viewZToOrthographicDepth(viewPosition.z, near, far); + + vec2 interval; + float intervalCenter; + float closestEdge; + float margin; + int nextIndex = -1; + int prevIndex = -1; + float alpha; + + #pragma unroll_loop_start + for (int i = 0; i < 4; ++i) { + #if UNROLLED_LOOP_INDEX < SHADOW_CASCADE_COUNT + interval = intervals[i]; + intervalCenter = (interval.x + interval.y) * 0.5; + closestEdge = depth < intervalCenter ? interval.x : interval.y; + margin = closestEdge * closestEdge * 0.5; + interval += margin * vec2(-0.5, 0.5); + + #if UNROLLED_LOOP_INDEX < SHADOW_CASCADE_COUNT - 1 + if (depth >= interval.x && depth < interval.y) { + prevIndex = nextIndex; + nextIndex = UNROLLED_LOOP_INDEX; + alpha = saturate(min(depth - interval.x, interval.y - depth) / margin); + } + #else // UNROLLED_LOOP_INDEX < SHADOW_CASCADE_COUNT - 1 + // Don't fade out the last cascade. + if (depth >= interval.x) { + prevIndex = nextIndex; + nextIndex = UNROLLED_LOOP_INDEX; + alpha = saturate((depth - interval.x) / margin); + } + #endif // UNROLLED_LOOP_INDEX < SHADOW_CASCADE_COUNT - 1 + #endif // UNROLLED_LOOP_INDEX < SHADOW_CASCADE_COUNT + } + #pragma unroll_loop_end + + return jitter <= alpha + ? nextIndex + : prevIndex; +} +`,VK=`// cSpell:words logdepthbuf + +float reverseLogDepth(const float depth, const float near, const float far) { + #if defined(USE_LOGDEPTHBUF) || defined(USE_LOGARITHMIC_DEPTH_BUFFER) + float d = pow(2.0, depth * log2(far + 1.0)) - 1.0; + float a = far / (far - near); + float b = far * near / (near - far); + return a + b / d; + #else // defined(USE_LOGARITHMIC_DEPTH_BUFFER) || defined(USE_LOGARITHMIC_DEPTH_BUFFER) + return depth; + #endif // defined(USE_LOGARITHMIC_DEPTH_BUFFER) || defined(USE_LOGARITHMIC_DEPTH_BUFFER) +} + +float linearizeDepth(const float depth, const float near, const float far) { + float ndc = depth * 2.0 - 1.0; + return 2.0 * near * far / (far + near - ndc * (far - near)); +} +`,kK=`float checker(const vec2 uv, const vec2 repeats) { + vec2 c = floor(repeats * uv); + float result = mod(c.x + c.y, 2.0); + return sign(result); +} + +float checker(const vec2 uv, const float repeats) { + return checker(uv, vec2(repeats)); +} +`,XK=`// Reference: https://advances.realtimerendering.com/s2014/index.html#_NEXT_GENERATION_POST + +float interleavedGradientNoise(const vec2 coord) { + const vec3 magic = vec3(0.06711056, 0.00583715, 52.9829189); + return fract(magic.z * fract(dot(coord, magic.xy))); +} +`,WK=`#if !defined(saturate) +#define saturate(a) clamp(a, 0.0, 1.0) +#endif // !defined(saturate) + +float remap(const float x, const float min1, const float max1, const float min2, const float max2) { + return min2 + (x - min1) / (max1 - min1) * (max2 - min2); +} + +vec2 remap(const vec2 x, const vec2 min1, const vec2 max1, const vec2 min2, const vec2 max2) { + return min2 + (x - min1) / (max1 - min1) * (max2 - min2); +} + +vec3 remap(const vec3 x, const vec3 min1, const vec3 max1, const vec3 min2, const vec3 max2) { + return min2 + (x - min1) / (max1 - min1) * (max2 - min2); +} + +vec4 remap(const vec4 x, const vec4 min1, const vec4 max1, const vec4 min2, const vec4 max2) { + return min2 + (x - min1) / (max1 - min1) * (max2 - min2); +} + +float remapClamped( + const float x, + const float min1, + const float max1, + const float min2, + const float max2 +) { + return clamp(min2 + (x - min1) / (max1 - min1) * (max2 - min2), min2, max2); +} + +vec2 remapClamped( + const vec2 x, + const vec2 min1, + const vec2 max1, + const vec2 min2, + const vec2 max2 +) { + return clamp(min2 + (x - min1) / (max1 - min1) * (max2 - min2), min2, max2); +} + +vec3 remapClamped( + const vec3 x, + const vec3 min1, + const vec3 max1, + const vec3 min2, + const vec3 max2 +) { + return clamp(min2 + (x - min1) / (max1 - min1) * (max2 - min2), min2, max2); +} + +vec4 remapClamped( + const vec4 x, + const vec4 min1, + const vec4 max1, + const vec4 min2, + const vec4 max2 +) { + return clamp(min2 + (x - min1) / (max1 - min1) * (max2 - min2), min2, max2); +} + +// Implicitly remap to 0 and 1 +float remap(const float x, const float min1, const float max1) { + return (x - min1) / (max1 - min1); +} + +vec2 remap(const vec2 x, const vec2 min1, const vec2 max1) { + return (x - min1) / (max1 - min1); +} + +vec3 remap(const vec3 x, const vec3 min1, const vec3 max1) { + return (x - min1) / (max1 - min1); +} + +vec4 remap(const vec4 x, const vec4 min1, const vec4 max1) { + return (x - min1) / (max1 - min1); +} + +float remapClamped(const float x, const float min1, const float max1) { + return saturate((x - min1) / (max1 - min1)); +} + +vec2 remapClamped(const vec2 x, const vec2 min1, const vec2 max1) { + return saturate((x - min1) / (max1 - min1)); +} + +vec3 remapClamped(const vec3 x, const vec3 min1, const vec3 max1) { + return saturate((x - min1) / (max1 - min1)); +} + +vec4 remapClamped(const vec4 x, const vec4 min1, const vec4 max1) { + return saturate((x - min1) / (max1 - min1)); +} +`,YK=`// Reference: https://jcgt.org/published/0003/02/01/paper.pdf + +vec2 signNotZero(vec2 v) { + return vec2(v.x >= 0.0 ? 1.0 : -1.0, v.y >= 0.0 ? 1.0 : -1.0); +} + +vec2 packNormalToVec2(vec3 v) { + vec2 p = v.xy * (1.0 / (abs(v.x) + abs(v.y) + abs(v.z))); + return v.z <= 0.0 + ? (1.0 - abs(p.yx)) * signNotZero(p) + : p; +} + +vec3 unpackVec2ToNormal(vec2 e) { + vec3 v = vec3(e.xy, 1.0 - abs(e.x) - abs(e.y)); + if (v.z < 0.0) { + v.xy = (1.0 - abs(v.yx)) * signNotZero(v.xy); + } + return normalize(v); +} +`,qK=`float raySphereFirstIntersection( + const vec3 origin, + const vec3 direction, + const vec3 center, + const float radius +) { + vec3 a = origin - center; + float b = 2.0 * dot(direction, a); + float c = dot(a, a) - radius * radius; + float discriminant = b * b - 4.0 * c; + return discriminant < 0.0 + ? -1.0 + : (-b - sqrt(discriminant)) * 0.5; +} + +float raySphereFirstIntersection(const vec3 origin, const vec3 direction, const float radius) { + return raySphereFirstIntersection(origin, direction, vec3(0.0), radius); +} + +vec4 raySphereFirstIntersection( + const vec3 origin, + const vec3 direction, + const vec3 center, + const vec4 radius +) { + vec3 a = origin - center; + float b = 2.0 * dot(direction, a); + vec4 c = dot(a, a) - radius * radius; + vec4 discriminant = b * b - 4.0 * c; + vec4 mask = step(discriminant, vec4(0.0)); + return mix((-b - sqrt(max(vec4(0.0), discriminant))) * 0.5, vec4(-1.0), mask); +} + +vec4 raySphereFirstIntersection(const vec3 origin, const vec3 direction, const vec4 radius) { + return raySphereFirstIntersection(origin, direction, vec3(0.0), radius); +} + +float raySphereSecondIntersection( + const vec3 origin, + const vec3 direction, + const vec3 center, + const float radius +) { + vec3 a = origin - center; + float b = 2.0 * dot(direction, a); + float c = dot(a, a) - radius * radius; + float discriminant = b * b - 4.0 * c; + return discriminant < 0.0 + ? -1.0 + : (-b + sqrt(discriminant)) * 0.5; +} + +float raySphereSecondIntersection(const vec3 origin, const vec3 direction, const float radius) { + return raySphereSecondIntersection(origin, direction, vec3(0.0), radius); +} + +vec4 raySphereSecondIntersection( + const vec3 origin, + const vec3 direction, + const vec3 center, + const vec4 radius +) { + vec3 a = origin - center; + float b = 2.0 * dot(direction, a); + vec4 c = dot(a, a) - radius * radius; + vec4 discriminant = b * b - 4.0 * c; + vec4 mask = step(discriminant, vec4(0.0)); + return mix((-b + sqrt(max(vec4(0.0), discriminant))) * 0.5, vec4(-1.0), mask); +} + +vec4 raySphereSecondIntersection(const vec3 origin, const vec3 direction, const vec4 radius) { + return raySphereSecondIntersection(origin, direction, vec3(0.0), radius); +} + +void raySphereIntersections( + const vec3 origin, + const vec3 direction, + const vec3 center, + const float radius, + out float intersection1, + out float intersection2 +) { + vec3 a = origin - center; + float b = 2.0 * dot(direction, a); + float c = dot(a, a) - radius * radius; + float discriminant = b * b - 4.0 * c; + if (discriminant < 0.0) { + intersection1 = -1.0; + intersection2 = -1.0; + return; + } else { + float Q = sqrt(discriminant); + intersection1 = (-b - Q) * 0.5; + intersection2 = (-b + Q) * 0.5; + } +} + +void raySphereIntersections( + const vec3 origin, + const vec3 direction, + const float radius, + out float intersection1, + out float intersection2 +) { + raySphereIntersections(origin, direction, vec3(0.0), radius, intersection1, intersection2); +} + +void raySphereIntersections( + const vec3 origin, + const vec3 direction, + const vec3 center, + const vec4 radius, + out vec4 intersection1, + out vec4 intersection2 +) { + vec3 a = origin - center; + float b = 2.0 * dot(direction, a); + vec4 c = dot(a, a) - radius * radius; + vec4 discriminant = b * b - 4.0 * c; + vec4 mask = step(discriminant, vec4(0.0)); + vec4 Q = sqrt(max(vec4(0.0), discriminant)); + intersection1 = mix((-b - Q) * 0.5, vec4(-1.0), mask); + intersection2 = mix((-b + Q) * 0.5, vec4(-1.0), mask); +} + +void raySphereIntersections( + const vec3 origin, + const vec3 direction, + const vec4 radius, + out vec4 intersection1, + out vec4 intersection2 +) { + raySphereIntersections(origin, direction, vec3(0.0), radius, intersection1, intersection2); +} +`,ZK=`vec3 screenToView( + const vec2 uv, + const float depth, + const float viewZ, + const mat4 projectionMatrix, + const mat4 inverseProjectionMatrix +) { + vec4 clip = vec4(vec3(uv, depth) * 2.0 - 1.0, 1.0); + float clipW = projectionMatrix[2][3] * viewZ + projectionMatrix[3][3]; + clip *= clipW; + return (inverseProjectionMatrix * clip).xyz; +} +`,jK=`// A fifth-order polynomial approximation of Turbo color map. +// See: https://observablehq.com/@mbostock/turbo +// prettier-ignore +vec3 turbo(const float x) { + float r = 0.1357 + x * (4.5974 - x * (42.3277 - x * (130.5887 - x * (150.5666 - x * 58.1375)))); + float g = 0.0914 + x * (2.1856 + x * (4.8052 - x * (14.0195 - x * (4.2109 + x * 2.7747)))); + float b = 0.1067 + x * (12.5925 - x * (60.1097 - x * (109.0745 - x * (88.5066 - x * 26.8183)))); + return vec3(r, g, b); +} +`,KK=`// Reference: https://www.gamedev.net/tutorials/programming/graphics/contact-hardening-soft-shadows-made-fast-r4906/ + +vec2 vogelDisk(const int index, const int sampleCount, const float phi) { + const float goldenAngle = 2.39996322972865332; + float r = sqrt(float(index) + 0.5) / sqrt(float(sampleCount)); + float theta = float(index) * goldenAngle + phi; + return r * vec2(cos(theta), sin(theta)); +} +`,x6=GK,y6=VK,JK=kK,_6=XK,fh=WK,QK=YK,Jy=qK,$K=ZK,S6=jK,A6=KK,eJ="9c6dfd0054f077f3ad4695b802e74d4c6a814440",tJ=`https://media.githubusercontent.com/media/takram-design-engineering/three-geospatial/${eJ}/packages/atmosphere/assets/stars.bin`,Wd=64,Yd=16,Qy=32,$y=128,e_=32,t_=8,Ou=t_*e_,Iu=$y,Bu=Qy,qd=256,Zd=64,Xx=1/1e3,E6=100,nJ=new H;function Lb(n,e,t,i){const a=t.projectOnSurface(n,nJ);return a!=null?t.getOsculatingSphereCenter(a,e,i).negate():i.setScalar(0)}var iJ="Invariant failed";function aJ(n,e){if(!n)throw new Error(iJ)}const kD=typeof window<"u"&&window.requestIdleCallback!=null?window.requestIdleCallback:function(n,e={}){const t=e.timeout??1,i=performance.now();return setTimeout(function(){n({get didTimeout(){return e.timeout!=null?!1:performance.now()-i-1>t},timeRemaining:function(){return Math.max(0,1+(performance.now()-i))}})},1)},Ws=`// Based on: https://github.com/ebruneton/precomputed_atmospheric_scattering/blob/master/atmosphere/functions.glsl + +/** + * Copyright (c) 2017 Eric Bruneton + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the copyright holders nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF + * THE POSSIBILITY OF SUCH DAMAGE. + * + * Precomputed Atmospheric Scattering + * Copyright (c) 2008 INRIA + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the copyright holders nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF + * THE POSSIBILITY OF SUCH DAMAGE. + */ + +Number ClampCosine(const Number mu) { + return clamp(mu, Number(-1.0), Number(1.0)); +} + +Length ClampDistance(const Length d) { + return max(d, 0.0 * m); +} + +Length ClampRadius(const AtmosphereParameters atmosphere, const Length r) { + return clamp(r, atmosphere.bottom_radius, atmosphere.top_radius); +} + +Length SafeSqrt(const Area a) { + return sqrt(max(a, 0.0 * m2)); +} + +Length DistanceToTopAtmosphereBoundary(const AtmosphereParameters atmosphere, + const Length r, const Number mu) { + assert(r <= atmosphere.top_radius); + assert(mu >= -1.0 && mu <= 1.0); + Area discriminant = r * r * (mu * mu - 1.0) + + atmosphere.top_radius * atmosphere.top_radius; + return ClampDistance(-r * mu + SafeSqrt(discriminant)); +} + +Length DistanceToBottomAtmosphereBoundary(const AtmosphereParameters atmosphere, + const Length r, const Number mu) { + assert(r >= atmosphere.bottom_radius); + assert(mu >= -1.0 && mu <= 1.0); + Area discriminant = r * r * (mu * mu - 1.0) + + atmosphere.bottom_radius * atmosphere.bottom_radius; + return ClampDistance(-r * mu - SafeSqrt(discriminant)); +} + +bool RayIntersectsGround(const AtmosphereParameters atmosphere, + const Length r, const Number mu) { + assert(r >= atmosphere.bottom_radius); + assert(mu >= -1.0 && mu <= 1.0); + return mu < 0.0 && r * r * (mu * mu - 1.0) + + atmosphere.bottom_radius * atmosphere.bottom_radius >= 0.0 * m2; +} + +Number GetTextureCoordFromUnitRange(const Number x, const int texture_size) { + return 0.5 / Number(texture_size) + x * (1.0 - 1.0 / Number(texture_size)); +} + +vec2 GetTransmittanceTextureUvFromRMu(const AtmosphereParameters atmosphere, + const Length r, const Number mu) { + assert(r >= atmosphere.bottom_radius && r <= atmosphere.top_radius); + assert(mu >= -1.0 && mu <= 1.0); + // Distance to top atmosphere boundary for a horizontal ray at ground level. + Length H = sqrt(atmosphere.top_radius * atmosphere.top_radius - + atmosphere.bottom_radius * atmosphere.bottom_radius); + // Distance to the horizon. + Length rho = + SafeSqrt(r * r - atmosphere.bottom_radius * atmosphere.bottom_radius); + // Distance to the top atmosphere boundary for the ray (r,mu), and its minimum + // and maximum values over all mu - obtained for (r,1) and (r,mu_horizon). + Length d = DistanceToTopAtmosphereBoundary(atmosphere, r, mu); + Length d_min = atmosphere.top_radius - r; + Length d_max = rho + H; + Number x_mu = (d - d_min) / (d_max - d_min); + Number x_r = rho / H; + return vec2(GetTextureCoordFromUnitRange(x_mu, TRANSMITTANCE_TEXTURE_WIDTH), + GetTextureCoordFromUnitRange(x_r, TRANSMITTANCE_TEXTURE_HEIGHT)); +} + +DimensionlessSpectrum GetTransmittanceToTopAtmosphereBoundary( + const AtmosphereParameters atmosphere, + const TransmittanceTexture transmittance_texture, + const Length r, const Number mu) { + assert(r >= atmosphere.bottom_radius && r <= atmosphere.top_radius); + vec2 uv = GetTransmittanceTextureUvFromRMu(atmosphere, r, mu); + // @shotamatsuda: Added for the precomputation stage in half-float precision. + #ifdef TRANSMITTANCE_PRECISION_LOG + // Manually interpolate the transmittance instead of the optical depth. + const vec2 size = vec2(TRANSMITTANCE_TEXTURE_WIDTH, TRANSMITTANCE_TEXTURE_HEIGHT); + const vec3 texel_size = vec3(1.0 / size, 0.0); + vec2 coord = (uv * size) - 0.5; + vec2 i = (floor(coord) + 0.5) * texel_size.xy; + vec2 f = fract(coord); + vec4 t1 = exp(-texture(transmittance_texture, i)); + vec4 t2 = exp(-texture(transmittance_texture, i + texel_size.xz)); + vec4 t3 = exp(-texture(transmittance_texture, i + texel_size.zy)); + vec4 t4 = exp(-texture(transmittance_texture, i + texel_size.xy)); + return DimensionlessSpectrum(mix(mix(t1, t2, f.x), mix(t3, t4, f.x), f.y)); + #else // TRANSMITTANCE_PRECISION_LOG + return DimensionlessSpectrum(texture(transmittance_texture, uv)); + #endif // TRANSMITTANCE_PRECISION_LOG +} + +DimensionlessSpectrum GetTransmittance( + const AtmosphereParameters atmosphere, + const TransmittanceTexture transmittance_texture, + const Length r, const Number mu, const Length d, + const bool ray_r_mu_intersects_ground) { + assert(r >= atmosphere.bottom_radius && r <= atmosphere.top_radius); + assert(mu >= -1.0 && mu <= 1.0); + assert(d >= 0.0 * m); + + Length r_d = ClampRadius(atmosphere, sqrt(d * d + 2.0 * r * mu * d + r * r)); + Number mu_d = ClampCosine((r * mu + d) / r_d); + + if (ray_r_mu_intersects_ground) { + return min( + GetTransmittanceToTopAtmosphereBoundary( + atmosphere, transmittance_texture, r_d, -mu_d) / + GetTransmittanceToTopAtmosphereBoundary( + atmosphere, transmittance_texture, r, -mu), + DimensionlessSpectrum(1.0)); + } else { + return min( + GetTransmittanceToTopAtmosphereBoundary( + atmosphere, transmittance_texture, r, mu) / + GetTransmittanceToTopAtmosphereBoundary( + atmosphere, transmittance_texture, r_d, mu_d), + DimensionlessSpectrum(1.0)); + } +} + +DimensionlessSpectrum GetTransmittanceToSun( + const AtmosphereParameters atmosphere, + const TransmittanceTexture transmittance_texture, + const Length r, const Number mu_s) { + Number sin_theta_h = atmosphere.bottom_radius / r; + Number cos_theta_h = -sqrt(max(1.0 - sin_theta_h * sin_theta_h, 0.0)); + return GetTransmittanceToTopAtmosphereBoundary( + atmosphere, transmittance_texture, r, mu_s) * + smoothstep(-sin_theta_h * atmosphere.sun_angular_radius / rad, + sin_theta_h * atmosphere.sun_angular_radius / rad, + mu_s - cos_theta_h); +} + +InverseSolidAngle RayleighPhaseFunction(const Number nu) { + InverseSolidAngle k = 3.0 / (16.0 * PI * sr); + return k * (1.0 + nu * nu); +} + +InverseSolidAngle MiePhaseFunction(const Number g, const Number nu) { + InverseSolidAngle k = 3.0 / (8.0 * PI * sr) * (1.0 - g * g) / (2.0 + g * g); + return k * (1.0 + nu * nu) / pow(1.0 + g * g - 2.0 * g * nu, 1.5); +} + +vec4 GetScatteringTextureUvwzFromRMuMuSNu(const AtmosphereParameters atmosphere, + const Length r, const Number mu, const Number mu_s, const Number nu, + const bool ray_r_mu_intersects_ground) { + assert(r >= atmosphere.bottom_radius && r <= atmosphere.top_radius); + assert(mu >= -1.0 && mu <= 1.0); + assert(mu_s >= -1.0 && mu_s <= 1.0); + assert(nu >= -1.0 && nu <= 1.0); + + // Distance to top atmosphere boundary for a horizontal ray at ground level. + Length H = sqrt(atmosphere.top_radius * atmosphere.top_radius - + atmosphere.bottom_radius * atmosphere.bottom_radius); + // Distance to the horizon. + Length rho = + SafeSqrt(r * r - atmosphere.bottom_radius * atmosphere.bottom_radius); + Number u_r = GetTextureCoordFromUnitRange(rho / H, SCATTERING_TEXTURE_R_SIZE); + + // Discriminant of the quadratic equation for the intersections of the ray + // (r,mu) with the ground (see RayIntersectsGround). + Length r_mu = r * mu; + Area discriminant = + r_mu * r_mu - r * r + atmosphere.bottom_radius * atmosphere.bottom_radius; + Number u_mu; + if (ray_r_mu_intersects_ground) { + // Distance to the ground for the ray (r,mu), and its minimum and maximum + // values over all mu - obtained for (r,-1) and (r,mu_horizon). + Length d = -r_mu - SafeSqrt(discriminant); + Length d_min = r - atmosphere.bottom_radius; + Length d_max = rho; + u_mu = 0.5 - 0.5 * GetTextureCoordFromUnitRange(d_max == d_min ? 0.0 : + (d - d_min) / (d_max - d_min), SCATTERING_TEXTURE_MU_SIZE / 2); + } else { + // Distance to the top atmosphere boundary for the ray (r,mu), and its + // minimum and maximum values over all mu - obtained for (r,1) and + // (r,mu_horizon). + Length d = -r_mu + SafeSqrt(discriminant + H * H); + Length d_min = atmosphere.top_radius - r; + Length d_max = rho + H; + u_mu = 0.5 + 0.5 * GetTextureCoordFromUnitRange( + (d - d_min) / (d_max - d_min), SCATTERING_TEXTURE_MU_SIZE / 2); + } + + Length d = DistanceToTopAtmosphereBoundary( + atmosphere, atmosphere.bottom_radius, mu_s); + Length d_min = atmosphere.top_radius - atmosphere.bottom_radius; + Length d_max = H; + Number a = (d - d_min) / (d_max - d_min); + Length D = DistanceToTopAtmosphereBoundary( + atmosphere, atmosphere.bottom_radius, atmosphere.mu_s_min); + Number A = (D - d_min) / (d_max - d_min); + // An ad-hoc function equal to 0 for mu_s = mu_s_min (because then d = D and + // thus a = A), equal to 1 for mu_s = 1 (because then d = d_min and thus + // a = 0), and with a large slope around mu_s = 0, to get more texture + // samples near the horizon. + Number u_mu_s = GetTextureCoordFromUnitRange( + max(1.0 - a / A, 0.0) / (1.0 + a), SCATTERING_TEXTURE_MU_S_SIZE); + + Number u_nu = (nu + 1.0) / 2.0; + return vec4(u_nu, u_mu_s, u_mu, u_r); +} + +vec2 GetIrradianceTextureUvFromRMuS(const AtmosphereParameters atmosphere, + const Length r, const Number mu_s) { + assert(r >= atmosphere.bottom_radius && r <= atmosphere.top_radius); + assert(mu_s >= -1.0 && mu_s <= 1.0); + Number x_r = (r - atmosphere.bottom_radius) / + (atmosphere.top_radius - atmosphere.bottom_radius); + Number x_mu_s = mu_s * 0.5 + 0.5; + return vec2(GetTextureCoordFromUnitRange(x_mu_s, IRRADIANCE_TEXTURE_WIDTH), + GetTextureCoordFromUnitRange(x_r, IRRADIANCE_TEXTURE_HEIGHT)); +} + +IrradianceSpectrum GetIrradiance( + const AtmosphereParameters atmosphere, + const IrradianceTexture irradiance_texture, + const Length r, const Number mu_s) { + vec2 uv = GetIrradianceTextureUvFromRMuS(atmosphere, r, mu_s); + return IrradianceSpectrum(texture(irradiance_texture, uv)); +} +`,Ys=`// Based on: https://github.com/ebruneton/precomputed_atmospheric_scattering/blob/master/atmosphere/definitions.glsl + +/** + * Copyright (c) 2017 Eric Bruneton + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the copyright holders nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF + * THE POSSIBILITY OF SUCH DAMAGE. + */ + +#define assert(x) + +#define Length float +#define Wavelength float +#define Angle float +#define SolidAngle float +#define Power float +#define LuminousPower float + +#define Number float +#define InverseLength float +#define Area float +#define Volume float +#define NumberDensity float +#define Irradiance float +#define Radiance float +#define SpectralPower float +#define SpectralIrradiance float +#define SpectralRadiance float +#define SpectralRadianceDensity float +#define ScatteringCoefficient float +#define InverseSolidAngle float +#define LuminousIntensity float +#define Luminance float +#define Illuminance float + +// A generic function from Wavelength to some other type. +#define AbstractSpectrum vec3 +// A function from Wavelength to Number. +#define DimensionlessSpectrum vec3 +// A function from Wavelength to SpectralPower. +#define PowerSpectrum vec3 +// A function from Wavelength to SpectralIrradiance. +#define IrradianceSpectrum vec3 +// A function from Wavelength to SpectralRadiance. +#define RadianceSpectrum vec3 +// A function from Wavelength to SpectralRadianceDensity. +#define RadianceDensitySpectrum vec3 +// A function from Wavelength to ScatteringCoefficient. +#define ScatteringSpectrum vec3 + +// A position in 3D (3 length values). +#define Position vec3 +// A unit direction vector in 3D (3 unit-less values). +#define Direction vec3 +// A vector of 3 luminance values. +#define Luminance3 vec3 +// A vector of 3 illuminance values. +#define Illuminance3 vec3 + +#define TransmittanceTexture sampler2D +#define AbstractScatteringTexture sampler3D +#define ReducedScatteringTexture sampler3D +#define ScatteringTexture sampler3D +#define ScatteringDensityTexture sampler3D +#define IrradianceTexture sampler2D + +const Length m = 1.0; +const Wavelength nm = 1.0; +const Angle rad = 1.0; +const SolidAngle sr = 1.0; +const Power watt = 1.0; +const LuminousPower lm = 1.0; + +#if !defined(PI) +const float PI = 3.14159265358979323846; +#endif // !defined(PI) + +const Length km = 1000.0 * m; +const Area m2 = m * m; +const Volume m3 = m * m * m; +const Angle pi = PI * rad; +const Angle deg = pi / 180.0; +const Irradiance watt_per_square_meter = watt / m2; +const Radiance watt_per_square_meter_per_sr = watt / (m2 * sr); +const SpectralIrradiance watt_per_square_meter_per_nm = watt / (m2 * nm); +const SpectralRadiance watt_per_square_meter_per_sr_per_nm = watt / (m2 * sr * nm); +const SpectralRadianceDensity watt_per_cubic_meter_per_sr_per_nm = watt / (m3 * sr * nm); +const LuminousIntensity cd = lm / sr; +const LuminousIntensity kcd = 1000.0 * cd; +const Luminance cd_per_square_meter = cd / m2; +const Luminance kcd_per_square_meter = kcd / m2; + +struct DensityProfileLayer { + Length width; + Number exp_term; + InverseLength exp_scale; + InverseLength linear_term; + Number constant_term; +}; + +struct DensityProfile { + DensityProfileLayer layers[2]; +}; + +// See AtmosphereParameter.ts for further details. +struct AtmosphereParameters { + IrradianceSpectrum solar_irradiance; + Angle sun_angular_radius; + Length bottom_radius; + Length top_radius; + DensityProfile rayleigh_density; + ScatteringSpectrum rayleigh_scattering; + DensityProfile mie_density; + ScatteringSpectrum mie_scattering; + ScatteringSpectrum mie_extinction; + Number mie_phase_function_g; + DensityProfile absorption_density; + ScatteringSpectrum absorption_extinction; + DimensionlessSpectrum ground_albedo; + Number mu_s_min; +}; +`,n_=`// Based on: https://github.com/ebruneton/precomputed_atmospheric_scattering/blob/master/atmosphere/functions.glsl + +/** + * Copyright (c) 2017 Eric Bruneton + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the copyright holders nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF + * THE POSSIBILITY OF SUCH DAMAGE. + * + * Precomputed Atmospheric Scattering + * Copyright (c) 2008 INRIA + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the copyright holders nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF + * THE POSSIBILITY OF SUCH DAMAGE. + */ + +#ifdef COMBINED_SCATTERING_TEXTURES +vec3 GetExtrapolatedSingleMieScattering( + const AtmosphereParameters atmosphere, const vec4 scattering) { + // Algebraically this can never be negative, but rounding errors can produce + // that effect for sufficiently short view rays. + // @shotamatsuda: Avoid division by infinitesimal values. + // See https://github.com/takram-design-engineering/three-geospatial/issues/47 + if (scattering.r < 1e-5) { + return vec3(0.0); + } + return scattering.rgb * scattering.a / scattering.r * + (atmosphere.rayleigh_scattering.r / atmosphere.mie_scattering.r) * + (atmosphere.mie_scattering / atmosphere.rayleigh_scattering); +} +#endif // COMBINED_SCATTERING_TEXTURES + +IrradianceSpectrum GetCombinedScattering( + const AtmosphereParameters atmosphere, + const ReducedScatteringTexture scattering_texture, + const ReducedScatteringTexture single_mie_scattering_texture, + const Length r, const Number mu, const Number mu_s, const Number nu, + const bool ray_r_mu_intersects_ground, + out IrradianceSpectrum single_mie_scattering) { + vec4 uvwz = GetScatteringTextureUvwzFromRMuMuSNu( + atmosphere, r, mu, mu_s, nu, ray_r_mu_intersects_ground); + Number tex_coord_x = uvwz.x * Number(SCATTERING_TEXTURE_NU_SIZE - 1); + Number tex_x = floor(tex_coord_x); + Number lerp = tex_coord_x - tex_x; + vec3 uvw0 = vec3((tex_x + uvwz.y) / Number(SCATTERING_TEXTURE_NU_SIZE), + uvwz.z, uvwz.w); + vec3 uvw1 = vec3((tex_x + 1.0 + uvwz.y) / Number(SCATTERING_TEXTURE_NU_SIZE), + uvwz.z, uvwz.w); +#ifdef COMBINED_SCATTERING_TEXTURES + vec4 combined_scattering = + texture(scattering_texture, uvw0) * (1.0 - lerp) + + texture(scattering_texture, uvw1) * lerp; + IrradianceSpectrum scattering = IrradianceSpectrum(combined_scattering); + single_mie_scattering = + GetExtrapolatedSingleMieScattering(atmosphere, combined_scattering); +#else // COMBINED_SCATTERING_TEXTURES + IrradianceSpectrum scattering = IrradianceSpectrum( + texture(scattering_texture, uvw0) * (1.0 - lerp) + + texture(scattering_texture, uvw1) * lerp); + single_mie_scattering = IrradianceSpectrum( + texture(single_mie_scattering_texture, uvw0) * (1.0 - lerp) + + texture(single_mie_scattering_texture, uvw1) * lerp); +#endif // COMBINED_SCATTERING_TEXTURES + return scattering; +} + +// @shotamatsuda: Added for reading higher-order scattering texture. +#ifdef HAS_HIGHER_ORDER_SCATTERING_TEXTURE +IrradianceSpectrum GetScattering( + const AtmosphereParameters atmosphere, + const ReducedScatteringTexture scattering_texture, + const Length r, const Number mu, const Number mu_s, const Number nu, + const bool ray_r_mu_intersects_ground) { + vec4 uvwz = GetScatteringTextureUvwzFromRMuMuSNu( + atmosphere, r, mu, mu_s, nu, ray_r_mu_intersects_ground); + Number tex_coord_x = uvwz.x * Number(SCATTERING_TEXTURE_NU_SIZE - 1); + Number tex_x = floor(tex_coord_x); + Number lerp = tex_coord_x - tex_x; + vec3 uvw0 = vec3((tex_x + uvwz.y) / Number(SCATTERING_TEXTURE_NU_SIZE), + uvwz.z, uvwz.w); + vec3 uvw1 = vec3((tex_x + 1.0 + uvwz.y) / Number(SCATTERING_TEXTURE_NU_SIZE), + uvwz.z, uvwz.w); + IrradianceSpectrum scattering = IrradianceSpectrum( + texture(scattering_texture, uvw0) * (1.0 - lerp) + + texture(scattering_texture, uvw1) * lerp); + return scattering; +} +#endif // HAS_HIGHER_ORDER_SCATTERING_TEXTURE + +RadianceSpectrum GetSkyRadiance( + const AtmosphereParameters atmosphere, + const TransmittanceTexture transmittance_texture, + const ReducedScatteringTexture scattering_texture, + const ReducedScatteringTexture single_mie_scattering_texture, + Position camera, const Direction view_ray, const Length shadow_length, + const Direction sun_direction, + out DimensionlessSpectrum transmittance) { + // Compute the distance to the top atmosphere boundary along the view ray, + // assuming the viewer is in space (or NaN if the view ray does not intersect + // the atmosphere). + Length r = length(camera); + Length rmu = dot(camera, view_ray); + // @shotamatsuda: Use SafeSqrt instead. + // See: https://github.com/takram-design-engineering/three-geospatial/pull/26 + Length distance_to_top_atmosphere_boundary = -rmu - + SafeSqrt(rmu * rmu - r * r + + atmosphere.top_radius * atmosphere.top_radius); + // If the viewer is in space and the view ray intersects the atmosphere, move + // the viewer to the top atmosphere boundary (along the view ray): + if (distance_to_top_atmosphere_boundary > 0.0 * m) { + camera = camera + view_ray * distance_to_top_atmosphere_boundary; + r = atmosphere.top_radius; + rmu += distance_to_top_atmosphere_boundary; + } else if (r > atmosphere.top_radius) { + // If the view ray does not intersect the atmosphere, simply return 0. + transmittance = DimensionlessSpectrum(1.0); + return RadianceSpectrum(0.0 * watt_per_square_meter_per_sr_per_nm); + } + // Compute the r, mu, mu_s and nu parameters needed for the texture lookups. + Number mu = rmu / r; + Number mu_s = dot(camera, sun_direction) / r; + Number nu = dot(view_ray, sun_direction); + + // @shotamatsuda: For rendering points below the bottom atmosphere. + #ifdef GROUND + bool ray_r_mu_intersects_ground = RayIntersectsGround(atmosphere, r, mu); + #else // GROUND + bool ray_r_mu_intersects_ground = false; + #endif // GROUND + + transmittance = ray_r_mu_intersects_ground ? DimensionlessSpectrum(0.0) : + GetTransmittanceToTopAtmosphereBoundary( + atmosphere, transmittance_texture, r, mu); + IrradianceSpectrum single_mie_scattering; + IrradianceSpectrum scattering; + if (shadow_length == 0.0 * m) { + scattering = GetCombinedScattering( + atmosphere, scattering_texture, single_mie_scattering_texture, + r, mu, mu_s, nu, ray_r_mu_intersects_ground, + single_mie_scattering); + } else { + // Case of light shafts (shadow_length is the total length noted l in our + // paper): we omit the scattering between the camera and the point at + // distance l, by implementing Eq. (18) of the paper (shadow_transmittance + // is the T(x,x_s) term, scattering is the S|x_s=x+lv term). + Length d = shadow_length; + Length r_p = + ClampRadius(atmosphere, sqrt(d * d + 2.0 * r * mu * d + r * r)); + Number mu_p = (r * mu + d) / r_p; + Number mu_s_p = (r * mu_s + d * nu) / r_p; + + scattering = GetCombinedScattering( + atmosphere, scattering_texture, single_mie_scattering_texture, + r_p, mu_p, mu_s_p, nu, ray_r_mu_intersects_ground, + single_mie_scattering); + DimensionlessSpectrum shadow_transmittance = + GetTransmittance(atmosphere, transmittance_texture, + r, mu, shadow_length, ray_r_mu_intersects_ground); + // @shotamatsuda: Occlude only single Rayleigh scattering by the shadow. +#ifdef HAS_HIGHER_ORDER_SCATTERING_TEXTURE + IrradianceSpectrum higher_order_scattering = GetScattering( + atmosphere, higher_order_scattering_texture, + r_p, mu_p, mu_s_p, nu, ray_r_mu_intersects_ground); + IrradianceSpectrum single_scattering = scattering - higher_order_scattering; + scattering = single_scattering * shadow_transmittance + higher_order_scattering; +#else // HAS_HIGHER_ORDER_SCATTERING_TEXTURE + scattering = scattering * shadow_transmittance; +#endif // HAS_HIGHER_ORDER_SCATTERING_TEXTURE + single_mie_scattering = single_mie_scattering * shadow_transmittance; + } + return scattering * RayleighPhaseFunction(nu) + single_mie_scattering * + MiePhaseFunction(atmosphere.mie_phase_function_g, nu); +} + +// @shotamatsuda: Returns the point on the ray closest to the origin. +vec3 ClosestPointOnRay(const Position camera, const Position point) { + Position ray = point - camera; + Number t = clamp(-dot(camera, ray) / dot(ray, ray), 0.0, 1.0); + return camera + t * ray; +} + +vec2 RaySphereIntersections( + const Position camera, const Direction direction, const Length radius) { + float b = 2.0 * dot(direction, camera); + float c = dot(camera, camera) - radius * radius; + float discriminant = b * b - 4.0 * c; + float Q = sqrt(discriminant); + return vec2(-b - Q, -b + Q) * 0.5; +} + +// @shotamatsuda: Clip the view ray at the bottom atmosphere boundary. +bool ClipAtBottomAtmosphere( + const AtmosphereParameters atmosphere, + const Direction view_ray, inout Position camera, inout Position point) { + const Length eps = 0.0; + Length bottom_radius = atmosphere.bottom_radius + eps; + Length r_camera = length(camera); + Length r_point = length(point); + bool camera_below = r_camera < bottom_radius; + bool point_below = r_point < bottom_radius; + + vec2 t = RaySphereIntersections(camera, view_ray, bottom_radius); + Position intersection = camera + view_ray * (camera_below ? t.y : t.x); + camera = camera_below ? intersection : camera; + point = point_below ? intersection : point; + + return camera_below && point_below; +} + +RadianceSpectrum GetSkyRadianceToPoint( + const AtmosphereParameters atmosphere, + const TransmittanceTexture transmittance_texture, + const ReducedScatteringTexture scattering_texture, + const ReducedScatteringTexture single_mie_scattering_texture, + Position camera, Position point, const Length shadow_length, + const Direction sun_direction, out DimensionlessSpectrum transmittance) { + // @shotamatsuda: Avoid artifacts when the ray does not intersect the top + // atmosphere boundary. + if (length(ClosestPointOnRay(camera, point)) > atmosphere.top_radius) { + transmittance = vec3(1.0); + return vec3(0.0); + } + + Direction view_ray = normalize(point - camera); + if (ClipAtBottomAtmosphere(atmosphere, view_ray, camera, point)) { + transmittance = vec3(1.0); + return vec3(0.0); + } + + // Compute the distance to the top atmosphere boundary along the view ray, + // assuming the viewer is in space (or NaN if the view ray does not intersect + // the atmosphere). + Length r = length(camera); + Length rmu = dot(camera, view_ray); + // @shotamatsuda: Use SafeSqrt instead. + // See: https://github.com/takram-design-engineering/three-geospatial/pull/26 + Length distance_to_top_atmosphere_boundary = -rmu - + SafeSqrt(rmu * rmu - r * r + + atmosphere.top_radius * atmosphere.top_radius); + // If the viewer is in space and the view ray intersects the atmosphere, move + // the viewer to the top atmosphere boundary (along the view ray): + if (distance_to_top_atmosphere_boundary > 0.0 * m) { + camera = camera + view_ray * distance_to_top_atmosphere_boundary; + r = atmosphere.top_radius; + rmu += distance_to_top_atmosphere_boundary; + } + + // Compute the r, mu, mu_s and nu parameters for the first texture lookup. + Number mu = rmu / r; + Number mu_s = dot(camera, sun_direction) / r; + Number nu = dot(view_ray, sun_direction); + Length d = length(point - camera); + bool ray_r_mu_intersects_ground = RayIntersectsGround(atmosphere, r, mu); + + // @shotamatsuda: Hack to avoid rendering artifacts near the horizon, due to + // finite atmosphere texture resolution and finite floating point precision. + // See: https://github.com/ebruneton/precomputed_atmospheric_scattering/pull/32 + if (!ray_r_mu_intersects_ground) { + Number mu_horizon = -SafeSqrt(1.0 - + (atmosphere.bottom_radius * atmosphere.bottom_radius) / (r * r)); + const Number eps = 0.004; + mu = max(mu, mu_horizon + eps); + } + + transmittance = GetTransmittance(atmosphere, transmittance_texture, + r, mu, d, ray_r_mu_intersects_ground); + + IrradianceSpectrum single_mie_scattering; + IrradianceSpectrum scattering = GetCombinedScattering( + atmosphere, scattering_texture, single_mie_scattering_texture, + r, mu, mu_s, nu, ray_r_mu_intersects_ground, + single_mie_scattering); + + // Compute the r, mu, mu_s and nu parameters for the second texture lookup. + // If shadow_length is not 0 (case of light shafts), we want to ignore the + // scattering along the last shadow_length meters of the view ray, which we + // do by subtracting shadow_length from d (this way scattering_p is equal to + // the S|x_s=x_0-lv term in Eq. (17) of our paper). + d = max(d - shadow_length, 0.0 * m); + Length r_p = ClampRadius(atmosphere, sqrt(d * d + 2.0 * r * mu * d + r * r)); + Number mu_p = (r * mu + d) / r_p; + Number mu_s_p = (r * mu_s + d * nu) / r_p; + + IrradianceSpectrum single_mie_scattering_p; + IrradianceSpectrum scattering_p = GetCombinedScattering( + atmosphere, scattering_texture, single_mie_scattering_texture, + r_p, mu_p, mu_s_p, nu, ray_r_mu_intersects_ground, + single_mie_scattering_p); + + // Combine the lookup results to get the scattering between camera and point. + DimensionlessSpectrum shadow_transmittance = transmittance; + if (shadow_length > 0.0 * m) { + // This is the T(x,x_s) term in Eq. (17) of our paper, for light shafts. + shadow_transmittance = GetTransmittance(atmosphere, transmittance_texture, + r, mu, d, ray_r_mu_intersects_ground); + } + // @shotamatsuda: Occlude only single Rayleigh scattering by the shadow. +#ifdef HAS_HIGHER_ORDER_SCATTERING_TEXTURE + IrradianceSpectrum higher_order_scattering = GetScattering( + atmosphere, higher_order_scattering_texture, + r, mu, mu_s, nu, ray_r_mu_intersects_ground); + IrradianceSpectrum single_scattering = scattering - higher_order_scattering; + IrradianceSpectrum higher_order_scattering_p = GetScattering( + atmosphere, higher_order_scattering_texture, + r_p, mu_p, mu_s_p, nu, ray_r_mu_intersects_ground); + IrradianceSpectrum single_scattering_p = + scattering_p - higher_order_scattering_p; + scattering = + single_scattering - shadow_transmittance * single_scattering_p + + higher_order_scattering - transmittance * higher_order_scattering_p; +#else // HAS_HIGHER_ORDER_SCATTERING_TEXTURE + scattering = scattering - shadow_transmittance * scattering_p; +#endif // HAS_HIGHER_ORDER_SCATTERING_TEXTURE + + single_mie_scattering = + single_mie_scattering - shadow_transmittance * single_mie_scattering_p; +#ifdef COMBINED_SCATTERING_TEXTURES + single_mie_scattering = GetExtrapolatedSingleMieScattering( + atmosphere, vec4(scattering, single_mie_scattering.r)); +#endif // COMBINED_SCATTERING_TEXTURES + + // Hack to avoid rendering artifacts when the sun is below the horizon. + single_mie_scattering = single_mie_scattering * + smoothstep(Number(0.0), Number(0.01), mu_s); + + return scattering * RayleighPhaseFunction(nu) + single_mie_scattering * + MiePhaseFunction(atmosphere.mie_phase_function_g, nu); +} + +IrradianceSpectrum GetSunAndSkyIrradiance( + const AtmosphereParameters atmosphere, + const TransmittanceTexture transmittance_texture, + const IrradianceTexture irradiance_texture, + const Position point, const Direction normal, const Direction sun_direction, + out IrradianceSpectrum sky_irradiance) { + Length r = length(point); + Number mu_s = dot(point, sun_direction) / r; + + // Indirect irradiance (approximated if the surface is not horizontal). + sky_irradiance = GetIrradiance(atmosphere, irradiance_texture, r, mu_s) * + (1.0 + dot(normal, point) / r) * 0.5; + + // Direct irradiance. + return atmosphere.solar_irradiance * + GetTransmittanceToSun( + atmosphere, transmittance_texture, r, mu_s) * + max(dot(normal, sun_direction), 0.0); +} + +// @shotamatsuda: Added for the clouds. +IrradianceSpectrum GetSunAndSkyScalarIrradiance( + const AtmosphereParameters atmosphere, + const TransmittanceTexture transmittance_texture, + const IrradianceTexture irradiance_texture, + const Position point, const Direction sun_direction, + out IrradianceSpectrum sky_irradiance) { + Length r = length(point); + Number mu_s = dot(point, sun_direction) / r; + + // Indirect irradiance. Integral over sphere yields 2π. + sky_irradiance = GetIrradiance(atmosphere, irradiance_texture, r, mu_s) * + 2.0 * PI; + + // Direct irradiance. Omit the cosine term. + return atmosphere.solar_irradiance * + GetTransmittanceToSun(atmosphere, transmittance_texture, r, mu_s); +} + +Luminance3 GetSolarLuminance() { + return ATMOSPHERE.solar_irradiance / + (PI * ATMOSPHERE.sun_angular_radius * ATMOSPHERE.sun_angular_radius) * + SUN_SPECTRAL_RADIANCE_TO_LUMINANCE; +} + +Luminance3 GetSkyLuminance( + const Position camera, Direction view_ray, const Length shadow_length, + const Direction sun_direction, out DimensionlessSpectrum transmittance) { + return GetSkyRadiance(ATMOSPHERE, transmittance_texture, + scattering_texture, single_mie_scattering_texture, + camera, view_ray, shadow_length, sun_direction, + transmittance) * SKY_SPECTRAL_RADIANCE_TO_LUMINANCE; +} + +Luminance3 GetSkyLuminanceToPoint( + const Position camera, const Position point, const Length shadow_length, + const Direction sun_direction, out DimensionlessSpectrum transmittance) { + return GetSkyRadianceToPoint(ATMOSPHERE, transmittance_texture, + scattering_texture, single_mie_scattering_texture, + camera, point, shadow_length, sun_direction, transmittance) * + SKY_SPECTRAL_RADIANCE_TO_LUMINANCE; +} + +Illuminance3 GetSunAndSkyIlluminance( + const Position p, const Direction normal, const Direction sun_direction, + out IrradianceSpectrum sky_irradiance) { + IrradianceSpectrum sun_irradiance = GetSunAndSkyIrradiance( + ATMOSPHERE, transmittance_texture, irradiance_texture, p, normal, + sun_direction, sky_irradiance); + sky_irradiance *= SKY_SPECTRAL_RADIANCE_TO_LUMINANCE; + return sun_irradiance * SUN_SPECTRAL_RADIANCE_TO_LUMINANCE; +} + +// @shotamatsuda: Added for the clouds. +Illuminance3 GetSunAndSkyScalarIlluminance( + const Position p, const Direction sun_direction, + out IrradianceSpectrum sky_irradiance) { + IrradianceSpectrum sun_irradiance = GetSunAndSkyScalarIrradiance( + ATMOSPHERE, transmittance_texture, irradiance_texture, p, + sun_direction, sky_irradiance); + sky_irradiance *= SKY_SPECTRAL_RADIANCE_TO_LUMINANCE; + return sun_irradiance * SUN_SPECTRAL_RADIANCE_TO_LUMINANCE; +} + +#define GetSolarRadiance GetSolarLuminance +#define GetSkyRadiance GetSkyLuminance +#define GetSkyRadianceToPoint GetSkyLuminanceToPoint +#define GetSunAndSkyIrradiance GetSunAndSkyIlluminance +#define GetSunAndSkyScalarIrradiance GetSunAndSkyScalarIlluminance +`,pf=`// Based on: https://github.com/ebruneton/precomputed_atmospheric_scattering/blob/master/atmosphere/functions.glsl + +/** + * Copyright (c) 2017 Eric Bruneton + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the copyright holders nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF + * THE POSSIBILITY OF SUCH DAMAGE. + * + * Precomputed Atmospheric Scattering + * Copyright (c) 2008 INRIA + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the copyright holders nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF + * THE POSSIBILITY OF SUCH DAMAGE. + */ + +Number GetLayerDensity(const DensityProfileLayer layer, const Length altitude) { + Number density = layer.exp_term * exp(layer.exp_scale * altitude) + + layer.linear_term * altitude + layer.constant_term; + return clamp(density, Number(0.0), Number(1.0)); +} + +Number GetProfileDensity(const DensityProfile profile, const Length altitude) { + DensityProfileLayer layers[2] = profile.layers; + return altitude < layers[0].width + ? GetLayerDensity(layers[0], altitude) + : GetLayerDensity(layers[1], altitude); +} + +Length ComputeOpticalLengthToTopAtmosphereBoundary( + const AtmosphereParameters atmosphere, const DensityProfile profile, + const Length r, const Number mu) { + assert(r >= atmosphere.bottom_radius && r <= atmosphere.top_radius); + assert(mu >= -1.0 && mu <= 1.0); + // Number of intervals for the numerical integration. + const int SAMPLE_COUNT = 500; + // The integration step, i.e. the length of each integration interval. + Length dx = + DistanceToTopAtmosphereBoundary(atmosphere, r, mu) / Number(SAMPLE_COUNT); + // Integration loop. + Length result = 0.0 * m; + for (int i = 0; i <= SAMPLE_COUNT; ++i) { + Length d_i = Number(i) * dx; + // Distance between the current sample point and the planet center. + Length r_i = sqrt(d_i * d_i + 2.0 * r * mu * d_i + r * r); + // Number density at the current sample point (divided by the number density + // at the bottom of the atmosphere, yielding a dimensionless number). + Number y_i = GetProfileDensity(profile, r_i - atmosphere.bottom_radius); + // Sample weight (from the trapezoidal rule). + Number weight_i = i == 0 || i == SAMPLE_COUNT ? 0.5 : 1.0; + result += y_i * weight_i * dx; + } + return result; +} + +DimensionlessSpectrum ComputeTransmittanceToTopAtmosphereBoundary( + const AtmosphereParameters atmosphere, const Length r, const Number mu) { + assert(r >= atmosphere.bottom_radius && r <= atmosphere.top_radius); + assert(mu >= -1.0 && mu <= 1.0); + vec3 optical_depth = ( + atmosphere.rayleigh_scattering * + ComputeOpticalLengthToTopAtmosphereBoundary( + atmosphere, atmosphere.rayleigh_density, r, mu) + + atmosphere.mie_extinction * + ComputeOpticalLengthToTopAtmosphereBoundary( + atmosphere, atmosphere.mie_density, r, mu) + + atmosphere.absorption_extinction * + ComputeOpticalLengthToTopAtmosphereBoundary( + atmosphere, atmosphere.absorption_density, r, mu)); + // @shotamatsuda: Added for the precomputation stage in half-float precision. + #ifdef TRANSMITTANCE_PRECISION_LOG + return optical_depth; + #else // TRANSMITTANCE_PRECISION_LOG + return exp(-optical_depth); + #endif // TRANSMITTANCE_PRECISION_LOG +} + +Number GetUnitRangeFromTextureCoord(const Number u, const int texture_size) { + return (u - 0.5 / Number(texture_size)) / (1.0 - 1.0 / Number(texture_size)); +} + +void GetRMuFromTransmittanceTextureUv(const AtmosphereParameters atmosphere, + const vec2 uv, out Length r, out Number mu) { + assert(uv.x >= 0.0 && uv.x <= 1.0); + assert(uv.y >= 0.0 && uv.y <= 1.0); + Number x_mu = GetUnitRangeFromTextureCoord(uv.x, TRANSMITTANCE_TEXTURE_WIDTH); + Number x_r = GetUnitRangeFromTextureCoord(uv.y, TRANSMITTANCE_TEXTURE_HEIGHT); + // Distance to top atmosphere boundary for a horizontal ray at ground level. + Length H = sqrt(atmosphere.top_radius * atmosphere.top_radius - + atmosphere.bottom_radius * atmosphere.bottom_radius); + // Distance to the horizon, from which we can compute r: + Length rho = H * x_r; + r = sqrt(rho * rho + atmosphere.bottom_radius * atmosphere.bottom_radius); + // Distance to the top atmosphere boundary for the ray (r,mu), and its minimum + // and maximum values over all mu - obtained for (r,1) and (r,mu_horizon) - + // from which we can recover mu: + Length d_min = atmosphere.top_radius - r; + Length d_max = rho + H; + Length d = d_min + x_mu * (d_max - d_min); + mu = d == 0.0 * m ? Number(1.0) : (H * H - rho * rho - d * d) / (2.0 * r * d); + mu = ClampCosine(mu); +} + +DimensionlessSpectrum ComputeTransmittanceToTopAtmosphereBoundaryTexture( + const AtmosphereParameters atmosphere, const vec2 frag_coord) { + const vec2 TRANSMITTANCE_TEXTURE_SIZE = + vec2(TRANSMITTANCE_TEXTURE_WIDTH, TRANSMITTANCE_TEXTURE_HEIGHT); + Length r; + Number mu; + GetRMuFromTransmittanceTextureUv( + atmosphere, frag_coord / TRANSMITTANCE_TEXTURE_SIZE, r, mu); + return ComputeTransmittanceToTopAtmosphereBoundary(atmosphere, r, mu); +} + +void ComputeSingleScatteringIntegrand( + const AtmosphereParameters atmosphere, + const TransmittanceTexture transmittance_texture, + const Length r, const Number mu, const Number mu_s, const Number nu, + const Length d, const bool ray_r_mu_intersects_ground, + out DimensionlessSpectrum rayleigh, out DimensionlessSpectrum mie) { + Length r_d = ClampRadius(atmosphere, sqrt(d * d + 2.0 * r * mu * d + r * r)); + Number mu_s_d = ClampCosine((r * mu_s + d * nu) / r_d); + DimensionlessSpectrum transmittance = + GetTransmittance( + atmosphere, transmittance_texture, r, mu, d, + ray_r_mu_intersects_ground) * + GetTransmittanceToSun( + atmosphere, transmittance_texture, r_d, mu_s_d); + rayleigh = transmittance * GetProfileDensity( + atmosphere.rayleigh_density, r_d - atmosphere.bottom_radius); + mie = transmittance * GetProfileDensity( + atmosphere.mie_density, r_d - atmosphere.bottom_radius); +} + +Length DistanceToNearestAtmosphereBoundary(const AtmosphereParameters atmosphere, + Length r, Number mu, bool ray_r_mu_intersects_ground) { + if (ray_r_mu_intersects_ground) { + return DistanceToBottomAtmosphereBoundary(atmosphere, r, mu); + } else { + return DistanceToTopAtmosphereBoundary(atmosphere, r, mu); + } +} + +void ComputeSingleScattering( + const AtmosphereParameters atmosphere, + const TransmittanceTexture transmittance_texture, + const Length r, const Number mu, const Number mu_s, const Number nu, + const bool ray_r_mu_intersects_ground, + out IrradianceSpectrum rayleigh, out IrradianceSpectrum mie) { + assert(r >= atmosphere.bottom_radius && r <= atmosphere.top_radius); + assert(mu >= -1.0 && mu <= 1.0); + assert(mu_s >= -1.0 && mu_s <= 1.0); + assert(nu >= -1.0 && nu <= 1.0); + + // Number of intervals for the numerical integration. + const int SAMPLE_COUNT = 50; + // The integration step, i.e. the length of each integration interval. + Length dx = + DistanceToNearestAtmosphereBoundary(atmosphere, r, mu, + ray_r_mu_intersects_ground) / Number(SAMPLE_COUNT); + // Integration loop. + DimensionlessSpectrum rayleigh_sum = DimensionlessSpectrum(0.0); + DimensionlessSpectrum mie_sum = DimensionlessSpectrum(0.0); + for (int i = 0; i <= SAMPLE_COUNT; ++i) { + Length d_i = Number(i) * dx; + // The Rayleigh and Mie single scattering at the current sample point. + DimensionlessSpectrum rayleigh_i; + DimensionlessSpectrum mie_i; + ComputeSingleScatteringIntegrand(atmosphere, transmittance_texture, + r, mu, mu_s, nu, d_i, ray_r_mu_intersects_ground, rayleigh_i, mie_i); + // Sample weight (from the trapezoidal rule). + Number weight_i = (i == 0 || i == SAMPLE_COUNT) ? 0.5 : 1.0; + rayleigh_sum += rayleigh_i * weight_i; + mie_sum += mie_i * weight_i; + } + rayleigh = rayleigh_sum * dx * atmosphere.solar_irradiance * + atmosphere.rayleigh_scattering; + mie = mie_sum * dx * atmosphere.solar_irradiance * atmosphere.mie_scattering; +} + +void GetRMuMuSNuFromScatteringTextureUvwz(const AtmosphereParameters atmosphere, + const vec4 uvwz, out Length r, out Number mu, out Number mu_s, + out Number nu, out bool ray_r_mu_intersects_ground) { + assert(uvwz.x >= 0.0 && uvwz.x <= 1.0); + assert(uvwz.y >= 0.0 && uvwz.y <= 1.0); + assert(uvwz.z >= 0.0 && uvwz.z <= 1.0); + assert(uvwz.w >= 0.0 && uvwz.w <= 1.0); + + // Distance to top atmosphere boundary for a horizontal ray at ground level. + Length H = sqrt(atmosphere.top_radius * atmosphere.top_radius - + atmosphere.bottom_radius * atmosphere.bottom_radius); + // Distance to the horizon. + Length rho = + H * GetUnitRangeFromTextureCoord(uvwz.w, SCATTERING_TEXTURE_R_SIZE); + r = sqrt(rho * rho + atmosphere.bottom_radius * atmosphere.bottom_radius); + + if (uvwz.z < 0.5) { + // Distance to the ground for the ray (r,mu), and its minimum and maximum + // values over all mu - obtained for (r,-1) and (r,mu_horizon) - from which + // we can recover mu: + Length d_min = r - atmosphere.bottom_radius; + Length d_max = rho; + Length d = d_min + (d_max - d_min) * GetUnitRangeFromTextureCoord( + 1.0 - 2.0 * uvwz.z, SCATTERING_TEXTURE_MU_SIZE / 2); + mu = d == 0.0 * m ? Number(-1.0) : + ClampCosine(-(rho * rho + d * d) / (2.0 * r * d)); + ray_r_mu_intersects_ground = true; + } else { + // Distance to the top atmosphere boundary for the ray (r,mu), and its + // minimum and maximum values over all mu - obtained for (r,1) and + // (r,mu_horizon) - from which we can recover mu: + Length d_min = atmosphere.top_radius - r; + Length d_max = rho + H; + Length d = d_min + (d_max - d_min) * GetUnitRangeFromTextureCoord( + 2.0 * uvwz.z - 1.0, SCATTERING_TEXTURE_MU_SIZE / 2); + mu = d == 0.0 * m ? Number(1.0) : + ClampCosine((H * H - rho * rho - d * d) / (2.0 * r * d)); + ray_r_mu_intersects_ground = false; + } + + Number x_mu_s = + GetUnitRangeFromTextureCoord(uvwz.y, SCATTERING_TEXTURE_MU_S_SIZE); + Length d_min = atmosphere.top_radius - atmosphere.bottom_radius; + Length d_max = H; + Length D = DistanceToTopAtmosphereBoundary( + atmosphere, atmosphere.bottom_radius, atmosphere.mu_s_min); + Number A = (D - d_min) / (d_max - d_min); + Number a = (A - x_mu_s * A) / (1.0 + x_mu_s * A); + Length d = d_min + min(a, A) * (d_max - d_min); + mu_s = d == 0.0 * m ? Number(1.0) : + ClampCosine((H * H - d * d) / (2.0 * atmosphere.bottom_radius * d)); + + nu = ClampCosine(uvwz.x * 2.0 - 1.0); +} + +void GetRMuMuSNuFromScatteringTextureFragCoord( + const AtmosphereParameters atmosphere, const vec3 frag_coord, + out Length r, out Number mu, out Number mu_s, out Number nu, + out bool ray_r_mu_intersects_ground) { + const vec4 SCATTERING_TEXTURE_SIZE = vec4( + SCATTERING_TEXTURE_NU_SIZE - 1, + SCATTERING_TEXTURE_MU_S_SIZE, + SCATTERING_TEXTURE_MU_SIZE, + SCATTERING_TEXTURE_R_SIZE); + Number frag_coord_nu = + floor(frag_coord.x / Number(SCATTERING_TEXTURE_MU_S_SIZE)); + Number frag_coord_mu_s = + mod(frag_coord.x, Number(SCATTERING_TEXTURE_MU_S_SIZE)); + vec4 uvwz = + vec4(frag_coord_nu, frag_coord_mu_s, frag_coord.y, frag_coord.z) / + SCATTERING_TEXTURE_SIZE; + GetRMuMuSNuFromScatteringTextureUvwz( + atmosphere, uvwz, r, mu, mu_s, nu, ray_r_mu_intersects_ground); + // Clamp nu to its valid range of values, given mu and mu_s. + nu = clamp(nu, mu * mu_s - sqrt((1.0 - mu * mu) * (1.0 - mu_s * mu_s)), + mu * mu_s + sqrt((1.0 - mu * mu) * (1.0 - mu_s * mu_s))); +} + +void ComputeSingleScatteringTexture(const AtmosphereParameters atmosphere, + const TransmittanceTexture transmittance_texture, const vec3 frag_coord, + out IrradianceSpectrum rayleigh, out IrradianceSpectrum mie) { + Length r; + Number mu; + Number mu_s; + Number nu; + bool ray_r_mu_intersects_ground; + GetRMuMuSNuFromScatteringTextureFragCoord(atmosphere, frag_coord, + r, mu, mu_s, nu, ray_r_mu_intersects_ground); + ComputeSingleScattering(atmosphere, transmittance_texture, + r, mu, mu_s, nu, ray_r_mu_intersects_ground, rayleigh, mie); +} + +AbstractSpectrum GetScattering( + const AtmosphereParameters atmosphere, + const AbstractScatteringTexture scattering_texture, + const Length r, const Number mu, const Number mu_s, const Number nu, + const bool ray_r_mu_intersects_ground) { + vec4 uvwz = GetScatteringTextureUvwzFromRMuMuSNu( + atmosphere, r, mu, mu_s, nu, ray_r_mu_intersects_ground); + Number tex_coord_x = uvwz.x * Number(SCATTERING_TEXTURE_NU_SIZE - 1); + Number tex_x = floor(tex_coord_x); + Number lerp = tex_coord_x - tex_x; + vec3 uvw0 = vec3((tex_x + uvwz.y) / Number(SCATTERING_TEXTURE_NU_SIZE), + uvwz.z, uvwz.w); + vec3 uvw1 = vec3((tex_x + 1.0 + uvwz.y) / Number(SCATTERING_TEXTURE_NU_SIZE), + uvwz.z, uvwz.w); + return AbstractSpectrum(texture(scattering_texture, uvw0) * (1.0 - lerp) + + texture(scattering_texture, uvw1) * lerp); +} + +RadianceSpectrum GetScattering( + const AtmosphereParameters atmosphere, + const ReducedScatteringTexture single_rayleigh_scattering_texture, + const ReducedScatteringTexture single_mie_scattering_texture, + const ScatteringTexture multiple_scattering_texture, + const Length r, const Number mu, const Number mu_s, const Number nu, + const bool ray_r_mu_intersects_ground, + const int scattering_order) { + if (scattering_order == 1) { + IrradianceSpectrum rayleigh = GetScattering( + atmosphere, single_rayleigh_scattering_texture, r, mu, mu_s, nu, + ray_r_mu_intersects_ground); + IrradianceSpectrum mie = GetScattering( + atmosphere, single_mie_scattering_texture, r, mu, mu_s, nu, + ray_r_mu_intersects_ground); + return rayleigh * RayleighPhaseFunction(nu) + + mie * MiePhaseFunction(atmosphere.mie_phase_function_g, nu); + } else { + return GetScattering( + atmosphere, multiple_scattering_texture, r, mu, mu_s, nu, + ray_r_mu_intersects_ground); + } +} + +IrradianceSpectrum GetIrradiance( + const AtmosphereParameters atmosphere, + const IrradianceTexture irradiance_texture, + const Length r, const Number mu_s); + +RadianceDensitySpectrum ComputeScatteringDensity( + const AtmosphereParameters atmosphere, + const TransmittanceTexture transmittance_texture, + const ReducedScatteringTexture single_rayleigh_scattering_texture, + const ReducedScatteringTexture single_mie_scattering_texture, + const ScatteringTexture multiple_scattering_texture, + const IrradianceTexture irradiance_texture, + const Length r, const Number mu, const Number mu_s, const Number nu, + const int scattering_order) { + assert(r >= atmosphere.bottom_radius && r <= atmosphere.top_radius); + assert(mu >= -1.0 && mu <= 1.0); + assert(mu_s >= -1.0 && mu_s <= 1.0); + assert(nu >= -1.0 && nu <= 1.0); + assert(scattering_order >= 2); + + // Compute unit direction vectors for the zenith, the view direction omega and + // and the sun direction omega_s, such that the cosine of the view-zenith + // angle is mu, the cosine of the sun-zenith angle is mu_s, and the cosine of + // the view-sun angle is nu. The goal is to simplify computations below. + vec3 zenith_direction = vec3(0.0, 0.0, 1.0); + vec3 omega = vec3(sqrt(1.0 - mu * mu), 0.0, mu); + Number sun_dir_x = omega.x == 0.0 ? 0.0 : (nu - mu * mu_s) / omega.x; + Number sun_dir_y = sqrt(max(1.0 - sun_dir_x * sun_dir_x - mu_s * mu_s, 0.0)); + vec3 omega_s = vec3(sun_dir_x, sun_dir_y, mu_s); + + const int SAMPLE_COUNT = 16; + const Angle dphi = pi / Number(SAMPLE_COUNT); + const Angle dtheta = pi / Number(SAMPLE_COUNT); + RadianceDensitySpectrum rayleigh_mie = + RadianceDensitySpectrum(0.0 * watt_per_cubic_meter_per_sr_per_nm); + + // Nested loops for the integral over all the incident directions omega_i. + for (int l = 0; l < SAMPLE_COUNT; ++l) { + Angle theta = (Number(l) + 0.5) * dtheta; + Number cos_theta = cos(theta); + Number sin_theta = sin(theta); + bool ray_r_theta_intersects_ground = + RayIntersectsGround(atmosphere, r, cos_theta); + + // The distance and transmittance to the ground only depend on theta, so we + // can compute them in the outer loop for efficiency. + Length distance_to_ground = 0.0 * m; + DimensionlessSpectrum transmittance_to_ground = DimensionlessSpectrum(0.0); + DimensionlessSpectrum ground_albedo = DimensionlessSpectrum(0.0); + if (ray_r_theta_intersects_ground) { + distance_to_ground = + DistanceToBottomAtmosphereBoundary(atmosphere, r, cos_theta); + transmittance_to_ground = + GetTransmittance(atmosphere, transmittance_texture, r, cos_theta, + distance_to_ground, true /* ray_intersects_ground */); + ground_albedo = atmosphere.ground_albedo; + } + + for (int m = 0; m < 2 * SAMPLE_COUNT; ++m) { + Angle phi = (Number(m) + 0.5) * dphi; + vec3 omega_i = + vec3(cos(phi) * sin_theta, sin(phi) * sin_theta, cos_theta); + SolidAngle domega_i = (dtheta / rad) * (dphi / rad) * sin(theta) * sr; + + // The radiance L_i arriving from direction omega_i after n-1 bounces is + // the sum of a term given by the precomputed scattering texture for the + // (n-1)-th order: + Number nu1 = dot(omega_s, omega_i); + RadianceSpectrum incident_radiance = GetScattering(atmosphere, + single_rayleigh_scattering_texture, single_mie_scattering_texture, + multiple_scattering_texture, r, omega_i.z, mu_s, nu1, + ray_r_theta_intersects_ground, scattering_order - 1); + + // and of the contribution from the light paths with n-1 bounces and whose + // last bounce is on the ground. This contribution is the product of the + // transmittance to the ground, the ground albedo, the ground BRDF, and + // the irradiance received on the ground after n-2 bounces. + vec3 ground_normal = + normalize(zenith_direction * r + omega_i * distance_to_ground); + IrradianceSpectrum ground_irradiance = GetIrradiance( + atmosphere, irradiance_texture, atmosphere.bottom_radius, + dot(ground_normal, omega_s)); + incident_radiance += transmittance_to_ground * + ground_albedo * (1.0 / (PI * sr)) * ground_irradiance; + + // The radiance finally scattered from direction omega_i towards direction + // -omega is the product of the incident radiance, the scattering + // coefficient, and the phase function for directions omega and omega_i + // (all this summed over all particle types, i.e. Rayleigh and Mie). + Number nu2 = dot(omega, omega_i); + Number rayleigh_density = GetProfileDensity( + atmosphere.rayleigh_density, r - atmosphere.bottom_radius); + Number mie_density = GetProfileDensity( + atmosphere.mie_density, r - atmosphere.bottom_radius); + rayleigh_mie += incident_radiance * ( + atmosphere.rayleigh_scattering * rayleigh_density * + RayleighPhaseFunction(nu2) + + atmosphere.mie_scattering * mie_density * + MiePhaseFunction(atmosphere.mie_phase_function_g, nu2)) * + domega_i; + } + } + return rayleigh_mie; +} + +RadianceSpectrum ComputeMultipleScattering( + const AtmosphereParameters atmosphere, + const TransmittanceTexture transmittance_texture, + const ScatteringDensityTexture scattering_density_texture, + const Length r, const Number mu, const Number mu_s, const Number nu, + const bool ray_r_mu_intersects_ground) { + assert(r >= atmosphere.bottom_radius && r <= atmosphere.top_radius); + assert(mu >= -1.0 && mu <= 1.0); + assert(mu_s >= -1.0 && mu_s <= 1.0); + assert(nu >= -1.0 && nu <= 1.0); + + // Number of intervals for the numerical integration. + const int SAMPLE_COUNT = 50; + // The integration step, i.e. the length of each integration interval. + Length dx = + DistanceToNearestAtmosphereBoundary( + atmosphere, r, mu, ray_r_mu_intersects_ground) / + Number(SAMPLE_COUNT); + // Integration loop. + RadianceSpectrum rayleigh_mie_sum = + RadianceSpectrum(0.0 * watt_per_square_meter_per_sr_per_nm); + for (int i = 0; i <= SAMPLE_COUNT; ++i) { + Length d_i = Number(i) * dx; + + // The r, mu and mu_s parameters at the current integration point (see the + // single scattering section for a detailed explanation). + Length r_i = + ClampRadius(atmosphere, sqrt(d_i * d_i + 2.0 * r * mu * d_i + r * r)); + Number mu_i = ClampCosine((r * mu + d_i) / r_i); + Number mu_s_i = ClampCosine((r * mu_s + d_i * nu) / r_i); + + // The Rayleigh and Mie multiple scattering at the current sample point. + RadianceSpectrum rayleigh_mie_i = + GetScattering( + atmosphere, scattering_density_texture, r_i, mu_i, mu_s_i, nu, + ray_r_mu_intersects_ground) * + GetTransmittance( + atmosphere, transmittance_texture, r, mu, d_i, + ray_r_mu_intersects_ground) * + dx; + // Sample weight (from the trapezoidal rule). + Number weight_i = (i == 0 || i == SAMPLE_COUNT) ? 0.5 : 1.0; + rayleigh_mie_sum += rayleigh_mie_i * weight_i; + } + return rayleigh_mie_sum; +} + +RadianceDensitySpectrum ComputeScatteringDensityTexture( + const AtmosphereParameters atmosphere, + const TransmittanceTexture transmittance_texture, + const ReducedScatteringTexture single_rayleigh_scattering_texture, + const ReducedScatteringTexture single_mie_scattering_texture, + const ScatteringTexture multiple_scattering_texture, + const IrradianceTexture irradiance_texture, + const vec3 frag_coord, const int scattering_order) { + Length r; + Number mu; + Number mu_s; + Number nu; + bool ray_r_mu_intersects_ground; + GetRMuMuSNuFromScatteringTextureFragCoord(atmosphere, frag_coord, + r, mu, mu_s, nu, ray_r_mu_intersects_ground); + return ComputeScatteringDensity(atmosphere, transmittance_texture, + single_rayleigh_scattering_texture, single_mie_scattering_texture, + multiple_scattering_texture, irradiance_texture, r, mu, mu_s, nu, + scattering_order); +} + +RadianceSpectrum ComputeMultipleScatteringTexture( + const AtmosphereParameters atmosphere, + const TransmittanceTexture transmittance_texture, + const ScatteringDensityTexture scattering_density_texture, + const vec3 frag_coord, out Number nu) { + Length r; + Number mu; + Number mu_s; + bool ray_r_mu_intersects_ground; + GetRMuMuSNuFromScatteringTextureFragCoord(atmosphere, frag_coord, + r, mu, mu_s, nu, ray_r_mu_intersects_ground); + return ComputeMultipleScattering(atmosphere, transmittance_texture, + scattering_density_texture, r, mu, mu_s, nu, + ray_r_mu_intersects_ground); +} + +IrradianceSpectrum ComputeDirectIrradiance( + const AtmosphereParameters atmosphere, + const TransmittanceTexture transmittance_texture, + const Length r, const Number mu_s) { + assert(r >= atmosphere.bottom_radius && r <= atmosphere.top_radius); + assert(mu_s >= -1.0 && mu_s <= 1.0); + + Number alpha_s = atmosphere.sun_angular_radius / rad; + // Approximate average of the cosine factor mu_s over the visible fraction of + // the Sun disc. + Number average_cosine_factor = + mu_s < -alpha_s ? 0.0 : (mu_s > alpha_s ? mu_s : + (mu_s + alpha_s) * (mu_s + alpha_s) / (4.0 * alpha_s)); + + return atmosphere.solar_irradiance * + GetTransmittanceToTopAtmosphereBoundary( + atmosphere, transmittance_texture, r, mu_s) * average_cosine_factor; + +} + +IrradianceSpectrum ComputeIndirectIrradiance( + const AtmosphereParameters atmosphere, + const ReducedScatteringTexture single_rayleigh_scattering_texture, + const ReducedScatteringTexture single_mie_scattering_texture, + const ScatteringTexture multiple_scattering_texture, + const Length r, const Number mu_s, const int scattering_order) { + assert(r >= atmosphere.bottom_radius && r <= atmosphere.top_radius); + assert(mu_s >= -1.0 && mu_s <= 1.0); + assert(scattering_order >= 1); + + const int SAMPLE_COUNT = 32; + const Angle dphi = pi / Number(SAMPLE_COUNT); + const Angle dtheta = pi / Number(SAMPLE_COUNT); + + IrradianceSpectrum result = + IrradianceSpectrum(0.0 * watt_per_square_meter_per_nm); + vec3 omega_s = vec3(sqrt(1.0 - mu_s * mu_s), 0.0, mu_s); + for (int j = 0; j < SAMPLE_COUNT / 2; ++j) { + Angle theta = (Number(j) + 0.5) * dtheta; + for (int i = 0; i < 2 * SAMPLE_COUNT; ++i) { + Angle phi = (Number(i) + 0.5) * dphi; + vec3 omega = + vec3(cos(phi) * sin(theta), sin(phi) * sin(theta), cos(theta)); + SolidAngle domega = (dtheta / rad) * (dphi / rad) * sin(theta) * sr; + + Number nu = dot(omega, omega_s); + result += GetScattering(atmosphere, single_rayleigh_scattering_texture, + single_mie_scattering_texture, multiple_scattering_texture, + r, omega.z, mu_s, nu, false /* ray_r_theta_intersects_ground */, + scattering_order) * + omega.z * domega; + } + } + return result; +} + +void GetRMuSFromIrradianceTextureUv(const AtmosphereParameters atmosphere, + const vec2 uv, out Length r, out Number mu_s) { + assert(uv.x >= 0.0 && uv.x <= 1.0); + assert(uv.y >= 0.0 && uv.y <= 1.0); + Number x_mu_s = GetUnitRangeFromTextureCoord(uv.x, IRRADIANCE_TEXTURE_WIDTH); + Number x_r = GetUnitRangeFromTextureCoord(uv.y, IRRADIANCE_TEXTURE_HEIGHT); + r = atmosphere.bottom_radius + + x_r * (atmosphere.top_radius - atmosphere.bottom_radius); + mu_s = ClampCosine(2.0 * x_mu_s - 1.0); +} + +const vec2 IRRADIANCE_TEXTURE_SIZE = + vec2(IRRADIANCE_TEXTURE_WIDTH, IRRADIANCE_TEXTURE_HEIGHT); + +IrradianceSpectrum ComputeDirectIrradianceTexture( + const AtmosphereParameters atmosphere, + const TransmittanceTexture transmittance_texture, + const vec2 frag_coord) { + Length r; + Number mu_s; + GetRMuSFromIrradianceTextureUv( + atmosphere, frag_coord / IRRADIANCE_TEXTURE_SIZE, r, mu_s); + return ComputeDirectIrradiance(atmosphere, transmittance_texture, r, mu_s); +} + +IrradianceSpectrum ComputeIndirectIrradianceTexture( + const AtmosphereParameters atmosphere, + const ReducedScatteringTexture single_rayleigh_scattering_texture, + const ReducedScatteringTexture single_mie_scattering_texture, + const ScatteringTexture multiple_scattering_texture, + const vec2 frag_coord, const int scattering_order) { + Length r; + Number mu_s; + GetRMuSFromIrradianceTextureUv( + atmosphere, frag_coord / IRRADIANCE_TEXTURE_SIZE, r, mu_s); + return ComputeIndirectIrradiance(atmosphere, + single_rayleigh_scattering_texture, single_mie_scattering_texture, + multiple_scattering_texture, r, mu_s, scattering_order); +} +`,rJ=new H(.2126,.7152,.0722),sJ=["solarIrradiance","sunAngularRadius","bottomRadius","topRadius","rayleighDensity","rayleighScattering","mieDensity","mieScattering","mieExtinction","miePhaseFunctionG","absorptionDensity","absorptionExtinction","groundAlbedo","muSMin","skyRadianceToLuminance","sunRadianceToLuminance"];function oJ(n,e){if(e!=null)for(const t of sJ){const i=e[t];i!=null&&(n[t]instanceof H?n[t].copy(i):n[t]=i)}}class mf{constructor(e,t,i,a,r){this.width=e,this.expTerm=t,this.expScale=i,this.linearTerm=a,this.constantTerm=r}toUniform(){return new ie({width:this.width,exp_term:this.expTerm,exp_scale:this.expScale,linear_term:this.linearTerm,constant_term:this.constantTerm})}}const rT=class{constructor(e){this.solarIrradiance=new H(1.474,1.8504,1.91198),this.sunAngularRadius=.004675,this.bottomRadius=636e4,this.topRadius=642e4,this.rayleighDensity=[new mf(0,0,0,0,0),new mf(0,1,-.125,0,0)],this.rayleighScattering=new H(.005802,.013558,.0331),this.mieDensity=[new mf(0,0,0,0,0),new mf(0,1,-.833333,0,0)],this.mieScattering=new H(.003996,.003996,.003996),this.mieExtinction=new H(.00444,.00444,.00444),this.miePhaseFunctionG=.8,this.absorptionDensity=[new mf(25,0,0,1/15,-2/3),new mf(0,0,0,-1/15,8/3)],this.absorptionExtinction=new H(65e-5,.001881,85e-6),this.groundAlbedo=new dt().setScalar(.1),this.muSMin=Math.cos(aT(120)),this.sunRadianceToLuminance=new H(98242.786222,69954.398112,66475.012354),this.skyRadianceToLuminance=new H(114974.916437,71305.954816,65310.548555),this.sunRadianceToRelativeLuminance=new H,this.skyRadianceToRelativeLuminance=new H,oJ(this,e);const t=rJ.dot(this.sunRadianceToLuminance);this.sunRadianceToRelativeLuminance.copy(this.sunRadianceToLuminance).divideScalar(t),this.skyRadianceToRelativeLuminance.copy(this.skyRadianceToLuminance).divideScalar(t)}toUniform(){return new ie({solar_irradiance:this.solarIrradiance,sun_angular_radius:this.sunAngularRadius,bottom_radius:this.bottomRadius*Xx,top_radius:this.topRadius*Xx,rayleigh_density:{layers:this.rayleighDensity.map(e=>e.toUniform().value)},rayleigh_scattering:this.rayleighScattering,mie_density:{layers:this.mieDensity.map(e=>e.toUniform().value)},mie_scattering:this.mieScattering,mie_extinction:this.mieExtinction,mie_phase_function_g:this.miePhaseFunctionG,absorption_density:{layers:this.absorptionDensity.map(e=>e.toUniform().value)},absorption_extinction:this.absorptionExtinction,ground_albedo:this.groundAlbedo,mu_s_min:this.muSMin})}};rT.DEFAULT=new rT;let k0=rT;const lJ=`precision highp sampler2DArray; + +#include "core/depth" +#include "core/math" +#include "core/packing" +#include "core/transform" +#ifdef HAS_SHADOW +#include "core/raySphereIntersection" +#include "core/cascadedShadowMaps" +#include "core/interleavedGradientNoise" +#include "core/vogelDisk" +#endif // HAS_SHADOW + +#include "bruneton/definitions" + +uniform AtmosphereParameters ATMOSPHERE; +uniform vec3 SUN_SPECTRAL_RADIANCE_TO_LUMINANCE; +uniform vec3 SKY_SPECTRAL_RADIANCE_TO_LUMINANCE; + +uniform sampler2D transmittance_texture; +uniform sampler3D scattering_texture; +uniform sampler2D irradiance_texture; +uniform sampler3D single_mie_scattering_texture; +uniform sampler3D higher_order_scattering_texture; + +#include "bruneton/common" +#include "bruneton/runtime" + +#include "sky" + +uniform sampler2D normalBuffer; + +uniform mat4 projectionMatrix; +uniform mat4 viewMatrix; +uniform mat4 inverseProjectionMatrix; +uniform mat4 inverseViewMatrix; +uniform float bottomRadius; +uniform mat4 worldToECEFMatrix; +uniform float geometricErrorCorrectionAmount; +uniform vec3 sunDirection; +uniform vec3 moonDirection; +uniform float moonAngularRadius; +uniform float lunarRadianceScale; +uniform float albedoScale; + +#ifdef HAS_LIGHTING_MASK +uniform sampler2D lightingMaskBuffer; +#endif // HAS_LIGHTING_MASK + +// prettier-ignore +#define LIGHTING_MASK_CHANNEL_ LIGHTING_MASK_CHANNEL + +#ifdef HAS_OVERLAY +uniform sampler2D overlayBuffer; +#endif // HAS_OVERLAY + +#ifdef HAS_SHADOW +uniform sampler2DArray shadowBuffer; +uniform vec2 shadowIntervals[SHADOW_CASCADE_COUNT]; +uniform mat4 shadowMatrices[SHADOW_CASCADE_COUNT]; +uniform mat4 inverseShadowMatrices[SHADOW_CASCADE_COUNT]; +uniform float shadowFar; +uniform float shadowTopHeight; +uniform float shadowRadius; +uniform sampler3D stbnTexture; +uniform int frame; +#endif // HAS_SHADOW + +#ifdef HAS_SHADOW_LENGTH +uniform sampler2D shadowLengthBuffer; +#endif // HAS_SHADOW_LENGTH + +varying vec3 vCameraPosition; +varying vec3 vRayDirection; +varying vec3 vGeometryAltitudeCorrection; +varying vec3 vEllipsoidRadiiSquared; + +vec3 readNormal(const vec2 uv) { + #ifdef OCT_ENCODED_NORMAL + return unpackVec2ToNormal(texture(normalBuffer, uv).xy); + #else // OCT_ENCODED_NORMAL + return 2.0 * texture(normalBuffer, uv).xyz - 1.0; + #endif // OCT_ENCODED_NORMAL +} + +void correctGeometricError(inout vec3 positionECEF, inout vec3 normalECEF) { + // TODO: The error is pronounced at the edge of the ellipsoid due to the + // large difference between the sphere position and the unprojected position + // at the current fragment. Calculating the sphere position from the fragment + // UV may resolve this. + + // Correct way is slerp, but this will be small-angle interpolation anyways. + vec3 sphereNormal = normalize(positionECEF / vEllipsoidRadiiSquared); + vec3 spherePosition = ATMOSPHERE.bottom_radius * sphereNormal; + normalECEF = mix(normalECEF, sphereNormal, geometricErrorCorrectionAmount); + positionECEF = mix(positionECEF, spherePosition, geometricErrorCorrectionAmount); +} + +#if defined(SUN_LIGHT) || defined(SKY_LIGHT) + +vec3 getSunSkyIrradiance( + const vec3 positionECEF, + const vec3 normal, + const vec3 inputColor, + const float sunTransmittance +) { + // Assume lambertian BRDF. If both SUN_LIGHT and SKY_LIGHT are not defined, + // regard the inputColor as radiance at the texel. + vec3 diffuse = inputColor * albedoScale * RECIPROCAL_PI; + vec3 skyIrradiance; + vec3 sunIrradiance = GetSunAndSkyIrradiance(positionECEF, normal, sunDirection, skyIrradiance); + + #ifdef HAS_SHADOW + sunIrradiance *= sunTransmittance; + #endif // HAS_SHADOW + + #if defined(SUN_LIGHT) && defined(SKY_LIGHT) + return diffuse * (sunIrradiance + skyIrradiance); + #elif defined(SUN_LIGHT) + return diffuse * sunIrradiance; + #elif defined(SKY_LIGHT) + return diffuse * skyIrradiance; + #endif // defined(SUN_LIGHT) && defined(SKY_LIGHT) +} + +#endif // defined(SUN_LIGHT) || defined(SKY_LIGHT) + +#if defined(TRANSMITTANCE) || defined(INSCATTER) + +void applyTransmittanceInscatter(const vec3 positionECEF, float shadowLength, inout vec3 radiance) { + vec3 transmittance; + vec3 inscatter = GetSkyRadianceToPoint( + vCameraPosition, + positionECEF, + shadowLength, + sunDirection, + transmittance + ); + #ifdef TRANSMITTANCE + radiance = radiance * transmittance; + #endif // TRANSMITTANCE + #ifdef INSCATTER + radiance = radiance + inscatter; + #endif // INSCATTER +} + +#endif // defined(TRANSMITTANCE) || defined(INSCATTER) + +#ifdef HAS_SHADOW + +float getSTBN() { + ivec3 size = textureSize(stbnTexture, 0); + vec3 scale = 1.0 / vec3(size); + return texture(stbnTexture, vec3(gl_FragCoord.xy, float(frame % size.z)) * scale).r; +} + +vec2 getShadowUv(const vec3 worldPosition, const int cascadeIndex) { + vec4 clip = shadowMatrices[cascadeIndex] * vec4(worldPosition, 1.0); + clip /= clip.w; + return clip.xy * 0.5 + 0.5; +} + +float getDistanceToShadowTop(const vec3 positionECEF) { + // Distance to the top of the shadows along the sun direction, which matches + // the ray origin of BSM. + return raySphereSecondIntersection( + positionECEF / METER_TO_LENGTH_UNIT, // TODO: Make units consistent + sunDirection, + vec3(0.0), + bottomRadius + shadowTopHeight + ); +} + +float readShadowOpticalDepth(const vec2 uv, const float distanceToTop, const int cascadeIndex) { + // r: frontDepth, g: meanExtinction, b: maxOpticalDepth, a: maxOpticalDepthTail + vec4 shadow = texture(shadowBuffer, vec3(uv, float(cascadeIndex))); + // Omit adding maxOpticalDepthTail to avoid pronounced aliasing. Ground + // shadow will be attenuated by inscatter anyways. + return min(shadow.b, shadow.g * max(0.0, distanceToTop - shadow.r)); +} + +float sampleShadowOpticalDepthPCF( + const vec3 worldPosition, + const float distanceToTop, + const float radius, + const int cascadeIndex +) { + vec2 uv = getShadowUv(worldPosition, cascadeIndex); + if (uv.x < 0.0 || uv.x > 1.0 || uv.y < 0.0 || uv.y > 1.0) { + return 0.0; + } + + vec2 texelSize = vec2(1.0) / vec2(textureSize(shadowBuffer, 0).xy); + float sum = 0.0; + vec2 offset; + #pragma unroll_loop_start + for (int i = 0; i < 16; ++i) { + #if UNROLLED_LOOP_INDEX < SHADOW_SAMPLE_COUNT + offset = vogelDisk( + UNROLLED_LOOP_INDEX, + SHADOW_SAMPLE_COUNT, + interleavedGradientNoise(gl_FragCoord.xy) * PI2 + ); + sum += readShadowOpticalDepth(uv + offset * radius * texelSize, distanceToTop, cascadeIndex); + #endif // UNROLLED_LOOP_INDEX < SHADOW_SAMPLE_COUNT + } + #pragma unroll_loop_end + return sum / float(SHADOW_SAMPLE_COUNT); +} + +float sampleShadowOpticalDepth( + const vec3 worldPosition, + const vec3 positionECEF, + const float radius, + const float jitter +) { + float distanceToTop = getDistanceToShadowTop(positionECEF); + if (distanceToTop <= 0.0) { + return 0.0; + } + int cascadeIndex = getFadedCascadeIndex( + viewMatrix, + worldPosition, + shadowIntervals, + cameraNear, + shadowFar, + jitter + ); + return cascadeIndex >= 0 + ? sampleShadowOpticalDepthPCF(worldPosition, distanceToTop, radius, cascadeIndex) + : 0.0; +} + +float getShadowRadius(const vec3 worldPosition) { + vec4 clip = shadowMatrices[0] * vec4(worldPosition, 1.0); + clip /= clip.w; + + // Offset by 1px in each direction in shadow's clip coordinates. + vec2 shadowSize = vec2(textureSize(shadowBuffer, 0)); + vec3 offset = vec3(2.0 / shadowSize, 0.0); + vec4 clipX = clip + offset.xzzz; + vec4 clipY = clip + offset.zyzz; + + // Convert back to world space. + vec4 worldX = inverseShadowMatrices[0] * clipX; + vec4 worldY = inverseShadowMatrices[0] * clipY; + + // Project into the main camera's clip space. + mat4 viewProjectionMatrix = projectionMatrix * viewMatrix; + vec4 projected = viewProjectionMatrix * vec4(worldPosition, 1.0); + vec4 projectedX = viewProjectionMatrix * worldX; + vec4 projectedY = viewProjectionMatrix * worldY; + projected /= projected.w; + projectedX /= projectedX.w; + projectedY /= projectedY.w; + + // Take the mean of pixel sizes. + vec2 center = (projected.xy * 0.5 + 0.5) * resolution; + vec2 offsetX = (projectedX.xy * 0.5 + 0.5) * resolution; + vec2 offsetY = (projectedY.xy * 0.5 + 0.5) * resolution; + float size = max(length(offsetX - center), length(offsetY - center)); + + return remapClamped(size, 10.0, 50.0, 0.0, shadowRadius); +} + +#endif // HAS_SHADOW + +void mainImage(const vec4 inputColor, const vec2 uv, out vec4 outputColor) { + #if defined(HAS_LIGHTING_MASK) && defined(DEBUG_SHOW_LIGHTING_MASK) + outputColor.rgb = vec3(texture(lightingMaskBuffer, uv).LIGHTING_MASK_CHANNEL_); + outputColor.a = 1.0; + return; + #endif // defined(HAS_LIGHTING_MASK) && defined(DEBUG_SHOW_LIGHTING_MASK) + + float shadowLength = 0.0; + #ifdef HAS_SHADOW_LENGTH + shadowLength = texture(shadowLengthBuffer, uv).r; + #endif // HAS_SHADOW_LENGTH + + #ifdef HAS_OVERLAY + vec4 overlay = texture(overlayBuffer, uv); + if (overlay.a == 1.0) { + outputColor = overlay; + return; + } + #endif // HAS_OVERLAY + + float depth = readDepth(uv); + if (depth >= 1.0 - 1e-8) { + #ifdef SKY + vec3 rayDirection = normalize(vRayDirection); + outputColor.rgb = getSkyRadiance( + vCameraPosition, + rayDirection, + shadowLength, + sunDirection, + moonDirection, + moonAngularRadius, + lunarRadianceScale + ); + outputColor.a = 1.0; + #else // SKY + outputColor = inputColor; + #endif // SKY + + #ifdef HAS_OVERLAY + outputColor.rgb = outputColor.rgb * (1.0 - overlay.a) + overlay.rgb; + #endif // HAS_OVERLAY + return; + } + depth = reverseLogDepth(depth, cameraNear, cameraFar); + + // Reconstruct position and normal in world space. + vec3 viewPosition = screenToView( + uv, + depth, + getViewZ(depth), + projectionMatrix, + inverseProjectionMatrix + ); + vec3 viewNormal; + #ifdef RECONSTRUCT_NORMAL + vec3 dx = dFdx(viewPosition); + vec3 dy = dFdy(viewPosition); + viewNormal = normalize(cross(dx, dy)); + #else // RECONSTRUCT_NORMAL + viewNormal = readNormal(uv); + #endif // RECONSTRUCT_NORMAL + + vec3 worldPosition = (inverseViewMatrix * vec4(viewPosition, 1.0)).xyz; + vec3 worldNormal = (inverseViewMatrix * vec4(viewNormal, 0.0)).xyz; + vec3 positionECEF = (worldToECEFMatrix * vec4(worldPosition, 1.0)).xyz; + positionECEF = positionECEF * METER_TO_LENGTH_UNIT + vGeometryAltitudeCorrection; + vec3 normalECEF = (worldToECEFMatrix * vec4(worldNormal, 0.0)).xyz; + + #ifdef CORRECT_GEOMETRIC_ERROR + correctGeometricError(positionECEF, normalECEF); + #endif // CORRECT_GEOMETRIC_ERROR + + #ifdef HAS_SHADOW + float stbn = getSTBN(); + float radius = getShadowRadius(worldPosition); + float opticalDepth = sampleShadowOpticalDepth(worldPosition, positionECEF, radius, stbn); + float sunTransmittance = exp(-opticalDepth); + #else // HAS_SHADOW + float sunTransmittance = 1.0; + #endif // HAS_SHADOW + + vec3 radiance; + #if defined(SUN_LIGHT) || defined(SKY_LIGHT) + radiance = getSunSkyIrradiance(positionECEF, normalECEF, inputColor.rgb, sunTransmittance); + #ifdef HAS_LIGHTING_MASK + float lightingMask = texture(lightingMaskBuffer, uv).LIGHTING_MASK_CHANNEL_; + radiance = mix(inputColor.rgb, radiance, lightingMask); + #endif // HAS_LIGHTING_MASK + #else // defined(SUN_LIGHT) || defined(SKY_LIGHT) + radiance = inputColor.rgb; + #endif // defined(SUN_LIGHT) || defined(SKY_LIGHT) + + #if defined(TRANSMITTANCE) || defined(INSCATTER) + applyTransmittanceInscatter(positionECEF, shadowLength, radiance); + #endif // defined(TRANSMITTANCE) || defined(INSCATTER) + + outputColor = vec4(radiance, inputColor.a); + + #ifdef HAS_OVERLAY + outputColor.rgb = outputColor.rgb * (1.0 - overlay.a) + overlay.rgb; + #endif // HAS_OVERLAY +} +`,cJ=`uniform mat4 inverseViewMatrix; +uniform mat4 inverseProjectionMatrix; +uniform vec3 cameraPosition; +uniform mat4 worldToECEFMatrix; +uniform vec3 altitudeCorrection; +uniform float geometricErrorCorrectionAmount; +uniform vec3 ellipsoidRadii; + +varying vec3 vCameraPosition; +varying vec3 vRayDirection; +varying vec3 vGeometryAltitudeCorrection; +varying vec3 vEllipsoidRadiiSquared; + +void getCameraRay(out vec3 origin, out vec3 direction) { + bool isPerspective = inverseProjectionMatrix[2][3] != 0.0; // 4th entry in the 3rd column + + if (isPerspective) { + // Calculate the camera ray for a perspective camera. + vec4 viewPosition = inverseProjectionMatrix * vec4(position, 1.0); + vec4 worldDirection = inverseViewMatrix * vec4(viewPosition.xyz, 0.0); + origin = cameraPosition; + direction = worldDirection.xyz; + } else { + // Unprojected points to calculate direction. + vec4 nearPoint = inverseProjectionMatrix * vec4(position.xy, -1.0, 1.0); + vec4 farPoint = inverseProjectionMatrix * vec4(position.xy, -0.9, 1.0); + nearPoint /= nearPoint.w; + farPoint /= farPoint.w; + + // Calculate world values. + vec4 worldDirection = inverseViewMatrix * vec4(farPoint.xyz - nearPoint.xyz, 0.0); + vec4 worldOrigin = inverseViewMatrix * nearPoint; + + // Outputs + direction = worldDirection.xyz; + origin = worldOrigin.xyz; + } +} + +void mainSupport() { + vec3 direction, origin; + getCameraRay(origin, direction); + + vec3 cameraPositionECEF = (worldToECEFMatrix * vec4(origin, 1.0)).xyz; + vCameraPosition = (cameraPositionECEF + altitudeCorrection) * METER_TO_LENGTH_UNIT; + vRayDirection = (worldToECEFMatrix * vec4(direction, 0.0)).xyz; + + vGeometryAltitudeCorrection = altitudeCorrection * METER_TO_LENGTH_UNIT; + // Gradually turn off the altitude correction on geometries as the geometric + // error correction takes effect, because that on the ideal sphere will be + // over corrected. + // See: https://github.com/takram-design-engineering/three-geospatial/pull/23#issuecomment-2542914656 + #ifdef CORRECT_GEOMETRIC_ERROR + vGeometryAltitudeCorrection *= 1.0 - geometricErrorCorrectionAmount; + #endif // CORRECT_GEOMETRIC_ERROR + + vec3 radii = ellipsoidRadii * METER_TO_LENGTH_UNIT; + vEllipsoidRadiiSquared = radii * radii; +} +`,T6=`vec3 getLunarRadiance(const float moonAngularRadius) { + // Not a physical number but the order of 10^-6 relative to the sun may fit. + vec3 radiance = + ATMOSPHERE.solar_irradiance * + 0.000002 / + (PI * moonAngularRadius * moonAngularRadius) * + SUN_SPECTRAL_RADIANCE_TO_LUMINANCE; + return radiance; +} + +float intersectSphere(const vec3 ray, const vec3 point, const float radius) { + vec3 P = -point; + float PoR = dot(P, ray); + float D = dot(P, P) - radius * radius; + return -PoR - sqrt(PoR * PoR - D); +} + +float orenNayarDiffuse(const vec3 L, const vec3 V, const vec3 N) { + float NoL = dot(N, L); + float NoV = dot(N, V); + float s = dot(L, V) - NoL * NoV; + float t = mix(1.0, max(NoL, NoV), step(0.0, s)); + return max(0.0, NoL) * (0.62406015 + 0.41284404 * s / t); +} + +vec3 getSkyRadiance( + const vec3 cameraPosition, + const vec3 rayDirection, + const float shadowLength, + const vec3 sunDirection, + const vec3 moonDirection, + const float moonAngularRadius, + const float lunarRadianceScale +) { + vec3 transmittance; + vec3 radiance = GetSkyRadiance( + cameraPosition, + rayDirection, + shadowLength, + sunDirection, + transmittance + ); + + // Rendering celestial objects without perspective doesn't make sense. + #ifdef PERSPECTIVE_CAMERA + + #if defined(SUN) || defined(MOON) + vec3 ddx = dFdx(rayDirection); + vec3 ddy = dFdy(rayDirection); + float fragmentAngle = length(ddx + ddy) / length(rayDirection); + #endif // defined(SUN) || defined(MOON) + + #ifdef SUN + float viewDotSun = dot(rayDirection, sunDirection); + if (viewDotSun > cos(ATMOSPHERE.sun_angular_radius)) { + float angle = acos(clamp(viewDotSun, -1.0, 1.0)); + float antialias = smoothstep( + ATMOSPHERE.sun_angular_radius, + ATMOSPHERE.sun_angular_radius - fragmentAngle, + angle + ); + radiance += transmittance * GetSolarRadiance() * antialias; + } + #endif // SUN + + #ifdef MOON + float intersection = intersectSphere(rayDirection, moonDirection, moonAngularRadius); + if (intersection > 0.0) { + vec3 normal = normalize(moonDirection - rayDirection * intersection); + float diffuse = orenNayarDiffuse(-sunDirection, rayDirection, normal); + float viewDotMoon = dot(rayDirection, moonDirection); + float angle = acos(clamp(viewDotMoon, -1.0, 1.0)); + float antialias = smoothstep(moonAngularRadius, moonAngularRadius - fragmentAngle, angle); + radiance += + transmittance * + getLunarRadiance(moonAngularRadius) * + lunarRadianceScale * + diffuse * + antialias; + } + #endif // MOON + + #endif // PERSPECTIVE_CAMERA + + return radiance; +} +`;var uJ=Object.defineProperty,nr=(n,e,t,i)=>{for(var a=void 0,r=n.length-1,s;r>=0;r--)(s=n[r])&&(a=s(e,t,a)||a);return a&&uJ(e,t,a),a};const hJ=new H,fJ=new H,dJ=new Mb,b6={blendFunction:dn.NORMAL,octEncodedNormal:!1,reconstructNormal:!1,ellipsoid:bd.WGS84,correctAltitude:!0,correctGeometricError:!0,sunLight:!1,skyLight:!1,transmittance:!0,inscatter:!0,albedoScale:1,sky:!1,sun:!0,moon:!0,moonAngularRadius:.0045,lunarRadianceScale:1,ground:!0};let za=class extends h0{constructor(e=new so,t,i=k0.DEFAULT){const{blendFunction:a,normalBuffer:r=null,octEncodedNormal:s,reconstructNormal:o,irradianceTexture:c=null,scatteringTexture:h=null,transmittanceTexture:f=null,singleMieScatteringTexture:d=null,higherOrderScatteringTexture:m=null,ellipsoid:g,correctAltitude:y,correctGeometricError:E,sunDirection:S,sunIrradiance:v,sunLight:_,skyIrradiance:A,skyLight:b,transmittance:O,inscatter:N,irradianceScale:L,albedoScale:B,sky:w,sun:D,moon:G,moonDirection:J,moonAngularRadius:$,lunarRadianceScale:se,ground:le}={...b6,...t};super("AerialPerspectiveEffect",V0(ki(lJ,{core:{depth:y6,packing:QK,math:fh,transform:$K,raySphereIntersection:Jy,cascadedShadowMaps:x6,interleavedGradientNoise:_6,vogelDisk:A6},bruneton:{common:Ws,definitions:Ys,runtime:n_},sky:T6})),{blendFunction:a,vertexShader:cJ,attributes:Qo.DEPTH,uniforms:new Map(Object.entries({normalBuffer:new ie(r),projectionMatrix:new ie(new lt),viewMatrix:new ie(new lt),inverseProjectionMatrix:new ie(new lt),inverseViewMatrix:new ie(new lt),cameraPosition:new ie(new H),bottomRadius:new ie(i.bottomRadius),ellipsoidRadii:new ie(new H),worldToECEFMatrix:new ie(new lt),altitudeCorrection:new ie(new H),geometricErrorCorrectionAmount:new ie(0),sunDirection:new ie((S==null?void 0:S.clone())??new H),albedoScale:new ie(L??B),moonDirection:new ie((J==null?void 0:J.clone())??new H),moonAngularRadius:new ie($),lunarRadianceScale:new ie(se),overlayBuffer:new ie(null),shadowBuffer:new ie(null),shadowMapSize:new ie(new Ee),shadowIntervals:new ie([]),shadowMatrices:new ie([]),inverseShadowMatrices:new ie([]),shadowFar:new ie(0),shadowTopHeight:new ie(0),shadowRadius:new ie(3),stbnTexture:new ie(null),frame:new ie(0),shadowLengthBuffer:new ie(null),lightingMaskBuffer:new ie(null),ATMOSPHERE:i.toUniform(),SUN_SPECTRAL_RADIANCE_TO_LUMINANCE:new ie(i.sunRadianceToRelativeLuminance),SKY_SPECTRAL_RADIANCE_TO_LUMINANCE:new ie(i.skyRadianceToRelativeLuminance),irradiance_texture:new ie(c),scattering_texture:new ie(h),transmittance_texture:new ie(f),single_mie_scattering_texture:new ie(null),higher_order_scattering_texture:new ie(null)})),defines:new Map([["TRANSMITTANCE_TEXTURE_WIDTH",qd.toFixed(0)],["TRANSMITTANCE_TEXTURE_HEIGHT",Zd.toFixed(0)],["SCATTERING_TEXTURE_R_SIZE",Qy.toFixed(0)],["SCATTERING_TEXTURE_MU_SIZE",$y.toFixed(0)],["SCATTERING_TEXTURE_MU_S_SIZE",e_.toFixed(0)],["SCATTERING_TEXTURE_NU_SIZE",t_.toFixed(0)],["IRRADIANCE_TEXTURE_WIDTH",Wd.toFixed(0)],["IRRADIANCE_TEXTURE_HEIGHT",Yd.toFixed(0)],["METER_TO_LENGTH_UNIT",Xx.toFixed(7)]])}),this.camera=e,this.atmosphere=i,this.overlay=null,this.shadow=null,this.shadowLength=null,this.lightingMask=null,this.combinedScatteringTextures=!1,this.hasHigherOrderScatteringTexture=!1,this.shadowSampleCount=8,this.octEncodedNormal=s,this.reconstructNormal=o,this.singleMieScatteringTexture=d,this.higherOrderScatteringTexture=m,this.ellipsoid=g,this.correctAltitude=y,this.correctGeometricError=E,this.sunLight=v??_,this.skyLight=A??b,this.transmittance=O,this.inscatter=N,this.sky=w,this.sun=D,this.moon=G,this.ground=le}get mainCamera(){return this.camera}set mainCamera(e){this.camera=e}copyCameraSettings(e){const{projectionMatrix:t,matrixWorldInverse:i,projectionMatrixInverse:a,matrixWorld:r}=e,s=this.uniforms;s.get("projectionMatrix").value.copy(t),s.get("viewMatrix").value.copy(i),s.get("inverseProjectionMatrix").value.copy(a),s.get("inverseViewMatrix").value.copy(r);const o=e.getWorldPosition(s.get("cameraPosition").value),c=s.get("worldToECEFMatrix").value,h=hJ.copy(o).applyMatrix4(c);try{const d=dJ.setFromECEF(h).height,m=fJ.set(0,this.ellipsoid.maximumRadius,-Math.max(0,d)).applyMatrix4(t);s.get("geometricErrorCorrectionAmount").value=UK(BK(m.y,41.5,13.8,0,1))}catch{return}const f=s.get("altitudeCorrection");this.correctAltitude?Lb(h,this.atmosphere.bottomRadius,this.ellipsoid,f.value):f.value.setScalar(0)}updateOverlay(){let e=!1;const{uniforms:t,defines:i,overlay:a}=this,r=i.has("HAS_OVERLAY"),s=a!=null;return s!==r&&(s?i.set("HAS_OVERLAY","1"):(i.delete("HAS_OVERLAY"),t.get("overlayBuffer").value=null),e=!0),s&&(t.get("overlayBuffer").value=a.map),e}updateShadow(){let e=!1;const{uniforms:t,defines:i,shadow:a}=this,r=i.has("HAS_SHADOW"),s=a!=null;if(s!==r&&(s?i.set("HAS_SHADOW","1"):(i.delete("HAS_SHADOW"),t.get("shadowBuffer").value=null),e=!0),s){const o=i.get("SHADOW_CASCADE_COUNT"),c=`${a.cascadeCount}`;o!==c&&(i.set("SHADOW_CASCADE_COUNT",a.cascadeCount.toFixed(0)),e=!0),t.get("shadowBuffer").value=a.map,t.get("shadowMapSize").value=a.mapSize,t.get("shadowIntervals").value=a.intervals,t.get("shadowMatrices").value=a.matrices,t.get("inverseShadowMatrices").value=a.inverseMatrices,t.get("shadowFar").value=a.far,t.get("shadowTopHeight").value=a.topHeight}return e}updateShadowLength(){let e=!1;const{uniforms:t,defines:i,shadowLength:a}=this,r=i.has("HAS_SHADOW_LENGTH"),s=a!=null;return s!==r&&(s?i.set("HAS_SHADOW_LENGTH","1"):(i.delete("HAS_SHADOW_LENGTH"),t.get("shadowLengthBuffer").value=null),e=!0),s&&(t.get("shadowLengthBuffer").value=a.map),e}updateLightingMask(){let e=!1;const{uniforms:t,defines:i,lightingMask:a}=this,r=i.has("HAS_LIGHTING_MASK"),s=a!=null;if(s!==r&&(s?i.set("HAS_LIGHTING_MASK","1"):(i.delete("HAS_LIGHTING_MASK"),t.get("lightingMaskBuffer").value=null),e=!0),s){t.get("lightingMaskBuffer").value=a.map;const o=i.get("LIGHTING_MASK_CHANNEL"),c=a.channel;c!==o&&(/^[rgba]$/.test(c)?(i.set("LIGHTING_MASK_CHANNEL",c),e=!0):console.error(`Expression validation failed: ${c}`))}return e}update(e,t,i){this.copyCameraSettings(this.camera);let a=!1;a||(a=this.updateOverlay()),a||(a=this.updateShadow()),a||(a=this.updateShadowLength()),a||(a=this.updateLightingMask()),a&&this.setChanged(),++this.uniforms.get("frame").value}get normalBuffer(){return this.uniforms.get("normalBuffer").value}set normalBuffer(e){this.uniforms.get("normalBuffer").value=e}get irradianceTexture(){return this.uniforms.get("irradiance_texture").value}set irradianceTexture(e){this.uniforms.get("irradiance_texture").value=e}get scatteringTexture(){return this.uniforms.get("scattering_texture").value}set scatteringTexture(e){this.uniforms.get("scattering_texture").value=e}get transmittanceTexture(){return this.uniforms.get("transmittance_texture").value}set transmittanceTexture(e){this.uniforms.get("transmittance_texture").value=e}get singleMieScatteringTexture(){return this.uniforms.get("single_mie_scattering_texture").value}set singleMieScatteringTexture(e){this.uniforms.get("single_mie_scattering_texture").value=e,this.combinedScatteringTextures=e==null}get higherOrderScatteringTexture(){return this.uniforms.get("higher_order_scattering_texture").value}set higherOrderScatteringTexture(e){this.uniforms.get("higher_order_scattering_texture").value=e,this.hasHigherOrderScatteringTexture=e!=null}get ellipsoid(){return this._ellipsoid}set ellipsoid(e){this._ellipsoid=e,this.uniforms.get("ellipsoidRadii").value.copy(e.radii)}get worldToECEFMatrix(){return this.uniforms.get("worldToECEFMatrix").value}get sunDirection(){return this.uniforms.get("sunDirection").value}get sunIrradiance(){return this.sunLight}set sunIrradiance(e){this.sunLight=e}get skyIrradiance(){return this.skyLight}set skyIrradiance(e){this.skyLight=e}get irradianceScale(){return this.albedoScale}set irradianceScale(e){this.albedoScale=e}get albedoScale(){return this.uniforms.get("albedoScale").value}set albedoScale(e){this.uniforms.get("albedoScale").value=e}get moonDirection(){return this.uniforms.get("moonDirection").value}get moonAngularRadius(){return this.uniforms.get("moonAngularRadius").value}set moonAngularRadius(e){this.uniforms.get("moonAngularRadius").value=e}get lunarRadianceScale(){return this.uniforms.get("lunarRadianceScale").value}set lunarRadianceScale(e){this.uniforms.get("lunarRadianceScale").value=e}get stbnTexture(){return this.uniforms.get("stbnTexture").value}set stbnTexture(e){this.uniforms.get("stbnTexture").value=e}get shadowRadius(){return this.uniforms.get("shadowRadius").value}set shadowRadius(e){this.uniforms.get("shadowRadius").value=e}};nr([An("OCT_ENCODED_NORMAL")],za.prototype,"octEncodedNormal");nr([An("RECONSTRUCT_NORMAL")],za.prototype,"reconstructNormal");nr([An("COMBINED_SCATTERING_TEXTURES")],za.prototype,"combinedScatteringTextures");nr([An("HAS_HIGHER_ORDER_SCATTERING_TEXTURE")],za.prototype,"hasHigherOrderScatteringTexture");nr([An("CORRECT_GEOMETRIC_ERROR")],za.prototype,"correctGeometricError");nr([An("SUN_LIGHT")],za.prototype,"sunLight");nr([An("SKY_LIGHT")],za.prototype,"skyLight");nr([An("TRANSMITTANCE")],za.prototype,"transmittance");nr([An("INSCATTER")],za.prototype,"inscatter");nr([An("SKY")],za.prototype,"sky");nr([An("SUN")],za.prototype,"sun");nr([An("MOON")],za.prototype,"moon");nr([An("GROUND")],za.prototype,"ground");nr([hh("SHADOW_SAMPLE_COUNT",{min:1,max:16})],za.prototype,"shadowSampleCount");var pJ=Object.defineProperty,M6=(n,e,t,i)=>{for(var a=void 0,r=n.length-1,s;r>=0;r--)(s=n[r])&&(a=s(e,t,a)||a);return a&&pJ(e,t,a),a};const mJ=new H;function gJ(n,e){let t="",i="";for(let a=1;a",t).replace("#include ",i)}const Pb={ellipsoid:bd.WGS84,correctAltitude:!0,renderTargetCount:1};class X0 extends cl{constructor(e,t=k0.DEFAULT){const{irradianceTexture:i=null,scatteringTexture:a=null,transmittanceTexture:r=null,singleMieScatteringTexture:s=null,higherOrderScatteringTexture:o=null,ellipsoid:c,correctAltitude:h,sunDirection:f,sunAngularRadius:d,renderTargetCount:m,...g}={...Pb,...e};super({toneMapped:!1,depthWrite:!1,depthTest:!1,...g,uniforms:{cameraPosition:new ie(new H),worldToECEFMatrix:new ie(new lt),altitudeCorrection:new ie(new H),sunDirection:new ie((f==null?void 0:f.clone())??new H),ATMOSPHERE:t.toUniform(),SUN_SPECTRAL_RADIANCE_TO_LUMINANCE:new ie(t.sunRadianceToRelativeLuminance),SKY_SPECTRAL_RADIANCE_TO_LUMINANCE:new ie(t.skyRadianceToRelativeLuminance),irradiance_texture:new ie(i),scattering_texture:new ie(a),transmittance_texture:new ie(r),single_mie_scattering_texture:new ie(null),higher_order_scattering_texture:new ie(null),...g.uniforms},defines:{PI:`${Math.PI}`,TRANSMITTANCE_TEXTURE_WIDTH:qd.toFixed(0),TRANSMITTANCE_TEXTURE_HEIGHT:Zd.toFixed(0),SCATTERING_TEXTURE_R_SIZE:Qy.toFixed(0),SCATTERING_TEXTURE_MU_SIZE:$y.toFixed(0),SCATTERING_TEXTURE_MU_S_SIZE:e_.toFixed(0),SCATTERING_TEXTURE_NU_SIZE:t_.toFixed(0),IRRADIANCE_TEXTURE_WIDTH:Wd.toFixed(0),IRRADIANCE_TEXTURE_HEIGHT:Yd.toFixed(0),METER_TO_LENGTH_UNIT:Xx.toFixed(7),...g.defines}}),this.atmosphere=t,this.combinedScatteringTextures=!1,this.hasHigherOrderScatteringTexture=!1,this.singleMieScatteringTexture=s,this.higherOrderScatteringTexture=o,this.ellipsoid=c,this.correctAltitude=h,d!=null&&(this.sunAngularRadius=d),this.renderTargetCount=m}copyCameraSettings(e){const t=this.uniforms,i=e.getWorldPosition(t.cameraPosition.value),a=mJ.copy(i).applyMatrix4(t.worldToECEFMatrix.value),r=t.altitudeCorrection.value;this.correctAltitude?Lb(a,this.atmosphere.bottomRadius,this.ellipsoid,r):r.setScalar(0)}onBeforeCompile(e,t){e.fragmentShader=gJ(e.fragmentShader,this.renderTargetCount)}onBeforeRender(e,t,i,a,r,s){this.copyCameraSettings(i)}get irradianceTexture(){return this.uniforms.irradiance_texture.value}set irradianceTexture(e){this.uniforms.irradiance_texture.value=e}get scatteringTexture(){return this.uniforms.scattering_texture.value}set scatteringTexture(e){this.uniforms.scattering_texture.value=e}get transmittanceTexture(){return this.uniforms.transmittance_texture.value}set transmittanceTexture(e){this.uniforms.transmittance_texture.value=e}get singleMieScatteringTexture(){return this.uniforms.single_mie_scattering_texture.value}set singleMieScatteringTexture(e){this.uniforms.single_mie_scattering_texture.value=e,this.combinedScatteringTextures=e==null}get higherOrderScatteringTexture(){return this.uniforms.higher_order_scattering_texture.value}set higherOrderScatteringTexture(e){this.uniforms.higher_order_scattering_texture.value=e,this.hasHigherOrderScatteringTexture=e!=null}get worldToECEFMatrix(){return this.uniforms.worldToECEFMatrix.value}get sunDirection(){return this.uniforms.sunDirection.value}get sunAngularRadius(){return this.uniforms.ATMOSPHERE.value.sun_angular_radius}set sunAngularRadius(e){this.uniforms.ATMOSPHERE.value.sun_angular_radius=e}get renderTargetCount(){return this._renderTargetCount}set renderTargetCount(e){e!==this.renderTargetCount&&(this._renderTargetCount=e,this.needsUpdate=!0)}}M6([An("COMBINED_SCATTERING_TEXTURES")],X0.prototype,"combinedScatteringTextures");M6([An("HAS_HIGHER_ORDER_SCATTERING_TEXTURE")],X0.prototype,"hasHigherOrderScatteringTexture");/** + @preserve + + Astronomy library for JavaScript (browser and Node.js). + https://github.com/cosinekitty/astronomy + + MIT License + + Copyright (c) 2019-2023 Don Cross + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all + copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + SOFTWARE. +*//** + * @fileoverview Astronomy calculation library for browser scripting and Node.js. + * @author Don Cross + * @license MIT + */const vJ=173.1446326846693,xJ=14959787069098932e-8,Qu=.017453292519943295,yJ=365.24217,XD=new Date("2000-01-01T12:00:00Z"),Oo=2*Math.PI,Fl=3600*(180/Math.PI),Hf=484813681109536e-20,_J=10800*60,SJ=2*_J,AJ=6378.1366,EJ=AJ/xJ,TJ=81.30056,Fb=.0002959122082855911,sT=2825345909524226e-22,oT=8459715185680659e-23,lT=1292024916781969e-23,cT=1524358900784276e-23;function p1(n){if(!Number.isFinite(n))throw console.trace(),`Value is not a finite number: ${n}`;return n}function gf(n){return n-Math.floor(n)}var Gn;(function(n){n.Sun="Sun",n.Moon="Moon",n.Mercury="Mercury",n.Venus="Venus",n.Earth="Earth",n.Mars="Mars",n.Jupiter="Jupiter",n.Saturn="Saturn",n.Uranus="Uranus",n.Neptune="Neptune",n.Pluto="Pluto",n.SSB="SSB",n.EMB="EMB",n.Star1="Star1",n.Star2="Star2",n.Star3="Star3",n.Star4="Star4",n.Star5="Star5",n.Star6="Star6",n.Star7="Star7",n.Star8="Star8"})(Gn||(Gn={}));const bJ=[Gn.Star1,Gn.Star2,Gn.Star3,Gn.Star4,Gn.Star5,Gn.Star6,Gn.Star7,Gn.Star8],MJ=[{ra:0,dec:0,dist:0},{ra:0,dec:0,dist:0},{ra:0,dec:0,dist:0},{ra:0,dec:0,dist:0},{ra:0,dec:0,dist:0},{ra:0,dec:0,dist:0},{ra:0,dec:0,dist:0},{ra:0,dec:0,dist:0}];function CJ(n){const e=bJ.indexOf(n);return e>=0?MJ[e]:null}function C6(n){const e=CJ(n);return e&&e.dist>0?e:null}var ol;(function(n){n[n.From2000=0]="From2000",n[n.Into2000=1]="Into2000"})(ol||(ol={}));const zf={Mercury:[[[[4.40250710144,0,0],[.40989414977,1.48302034195,26087.9031415742],[.050462942,4.47785489551,52175.8062831484],[.00855346844,1.16520322459,78263.70942472259],[.00165590362,4.11969163423,104351.61256629678],[.00034561897,.77930768443,130439.51570787099],[7583476e-11,3.71348404924,156527.41884944518]],[[26087.90313685529,0,0],[.01131199811,6.21874197797,26087.9031415742],[.00292242298,3.04449355541,52175.8062831484],[.00075775081,6.08568821653,78263.70942472259],[.00019676525,2.80965111777,104351.61256629678]]],[[[.11737528961,1.98357498767,26087.9031415742],[.02388076996,5.03738959686,52175.8062831484],[.01222839532,3.14159265359,0],[.0054325181,1.79644363964,78263.70942472259],[.0012977877,4.83232503958,104351.61256629678],[.00031866927,1.58088495658,130439.51570787099],[7963301e-11,4.60972126127,156527.41884944518]],[[.00274646065,3.95008450011,26087.9031415742],[.00099737713,3.14159265359,0]]],[[[.39528271651,0,0],[.07834131818,6.19233722598,26087.9031415742],[.00795525558,2.95989690104,52175.8062831484],[.00121281764,6.01064153797,78263.70942472259],[.00021921969,2.77820093972,104351.61256629678],[4354065e-11,5.82894543774,130439.51570787099]],[[.0021734774,4.65617158665,26087.9031415742],[.00044141826,1.42385544001,52175.8062831484]]]],Venus:[[[[3.17614666774,0,0],[.01353968419,5.59313319619,10213.285546211],[.00089891645,5.30650047764,20426.571092422],[5477194e-11,4.41630661466,7860.4193924392],[3455741e-11,2.6996444782,11790.6290886588],[2372061e-11,2.99377542079,3930.2096962196],[1317168e-11,5.18668228402,26.2983197998],[1664146e-11,4.25018630147,1577.3435424478],[1438387e-11,4.15745084182,9683.5945811164],[1200521e-11,6.15357116043,30639.856638633]],[[10213.28554621638,0,0],[.00095617813,2.4640651111,10213.285546211],[7787201e-11,.6247848222,20426.571092422]]],[[[.05923638472,.26702775812,10213.285546211],[.00040107978,1.14737178112,20426.571092422],[.00032814918,3.14159265359,0]],[[.00287821243,1.88964962838,10213.285546211]]],[[[.72334820891,0,0],[.00489824182,4.02151831717,10213.285546211],[1658058e-11,4.90206728031,20426.571092422],[1378043e-11,1.12846591367,11790.6290886588],[1632096e-11,2.84548795207,7860.4193924392],[498395e-11,2.58682193892,9683.5945811164],[221985e-11,2.01346696541,19367.1891622328],[237454e-11,2.55136053886,15720.8387848784]],[[.00034551041,.89198706276,10213.285546211]]]],Earth:[[[[1.75347045673,0,0],[.03341656453,4.66925680415,6283.0758499914],[.00034894275,4.62610242189,12566.1516999828],[3417572e-11,2.82886579754,3.523118349],[3497056e-11,2.74411783405,5753.3848848968],[3135899e-11,3.62767041756,77713.7714681205],[2676218e-11,4.41808345438,7860.4193924392],[2342691e-11,6.13516214446,3930.2096962196],[1273165e-11,2.03709657878,529.6909650946],[1324294e-11,.74246341673,11506.7697697936],[901854e-11,2.04505446477,26.2983197998],[1199167e-11,1.10962946234,1577.3435424478],[857223e-11,3.50849152283,398.1490034082],[779786e-11,1.17882681962,5223.6939198022],[99025e-10,5.23268072088,5884.9268465832],[753141e-11,2.53339052847,5507.5532386674],[505267e-11,4.58292599973,18849.2275499742],[492392e-11,4.20505711826,775.522611324],[356672e-11,2.91954114478,.0673103028],[284125e-11,1.89869240932,796.2980068164],[242879e-11,.34481445893,5486.777843175],[317087e-11,5.84901948512,11790.6290886588],[271112e-11,.31486255375,10977.078804699],[206217e-11,4.80646631478,2544.3144198834],[205478e-11,1.86953770281,5573.1428014331],[202318e-11,2.45767790232,6069.7767545534],[126225e-11,1.08295459501,20.7753954924],[155516e-11,.83306084617,213.299095438]],[[6283.0758499914,0,0],[.00206058863,2.67823455808,6283.0758499914],[4303419e-11,2.63512233481,12566.1516999828]],[[8721859e-11,1.07253635559,6283.0758499914]]],[[],[[.00227777722,3.4137662053,6283.0758499914],[3805678e-11,3.37063423795,12566.1516999828]]],[[[1.00013988784,0,0],[.01670699632,3.09846350258,6283.0758499914],[.00013956024,3.05524609456,12566.1516999828],[308372e-10,5.19846674381,77713.7714681205],[1628463e-11,1.17387558054,5753.3848848968],[1575572e-11,2.84685214877,7860.4193924392],[924799e-11,5.45292236722,11506.7697697936],[542439e-11,4.56409151453,3930.2096962196],[47211e-10,3.66100022149,5884.9268465832],[85831e-11,1.27079125277,161000.6857376741],[57056e-11,2.01374292245,83996.84731811189],[55736e-11,5.2415979917,71430.69561812909],[174844e-11,3.01193636733,18849.2275499742],[243181e-11,4.2734953079,11790.6290886588]],[[.00103018607,1.10748968172,6283.0758499914],[1721238e-11,1.06442300386,12566.1516999828]],[[4359385e-11,5.78455133808,6283.0758499914]]]],Mars:[[[[6.20347711581,0,0],[.18656368093,5.0503710027,3340.6124266998],[.01108216816,5.40099836344,6681.2248533996],[.00091798406,5.75478744667,10021.8372800994],[.00027744987,5.97049513147,3.523118349],[.00010610235,2.93958560338,2281.2304965106],[.00012315897,.84956094002,2810.9214616052],[8926784e-11,4.15697846427,.0172536522],[8715691e-11,6.11005153139,13362.4497067992],[6797556e-11,.36462229657,398.1490034082],[7774872e-11,3.33968761376,5621.8429232104],[3575078e-11,1.6618650571,2544.3144198834],[4161108e-11,.22814971327,2942.4634232916],[3075252e-11,.85696614132,191.4482661116],[2628117e-11,.64806124465,3337.0893083508],[2937546e-11,6.07893711402,.0673103028],[2389414e-11,5.03896442664,796.2980068164],[2579844e-11,.02996736156,3344.1355450488],[1528141e-11,1.14979301996,6151.533888305],[1798806e-11,.65634057445,529.6909650946],[1264357e-11,3.62275122593,5092.1519581158],[1286228e-11,3.06796065034,2146.1654164752],[1546404e-11,2.91579701718,1751.539531416],[1024902e-11,3.69334099279,8962.4553499102],[891566e-11,.18293837498,16703.062133499],[858759e-11,2.4009381194,2914.0142358238],[832715e-11,2.46418619474,3340.5951730476],[83272e-10,4.49495782139,3340.629680352],[712902e-11,3.66335473479,1059.3819301892],[748723e-11,3.82248614017,155.4203994342],[723861e-11,.67497311481,3738.761430108],[635548e-11,2.92182225127,8432.7643848156],[655162e-11,.48864064125,3127.3133312618],[550474e-11,3.81001042328,.9803210682],[55275e-10,4.47479317037,1748.016413067],[425966e-11,.55364317304,6283.0758499914],[415131e-11,.49662285038,213.299095438],[472167e-11,3.62547124025,1194.4470102246],[306551e-11,.38052848348,6684.7479717486],[312141e-11,.99853944405,6677.7017350506],[293198e-11,4.22131299634,20.7753954924],[302375e-11,4.48618007156,3532.0606928114],[274027e-11,.54222167059,3340.545116397],[281079e-11,5.88163521788,1349.8674096588],[231183e-11,1.28242156993,3870.3033917944],[283602e-11,5.7688543494,3149.1641605882],[236117e-11,5.75503217933,3333.498879699],[274033e-11,.13372524985,3340.6797370026],[299395e-11,2.78323740866,6254.6266625236]],[[3340.61242700512,0,0],[.01457554523,3.60433733236,3340.6124266998],[.00168414711,3.92318567804,6681.2248533996],[.00020622975,4.26108844583,10021.8372800994],[3452392e-11,4.7321039319,3.523118349],[2586332e-11,4.60670058555,13362.4497067992],[841535e-11,4.45864030426,2281.2304965106]],[[.00058152577,2.04961712429,3340.6124266998],[.00013459579,2.45738706163,6681.2248533996]]],[[[.03197134986,3.76832042431,3340.6124266998],[.00298033234,4.10616996305,6681.2248533996],[.00289104742,0,0],[.00031365539,4.4465105309,10021.8372800994],[34841e-9,4.7881254926,13362.4497067992]],[[.00217310991,6.04472194776,3340.6124266998],[.00020976948,3.14159265359,0],[.00012834709,1.60810667915,6681.2248533996]]],[[[1.53033488271,0,0],[.1418495316,3.47971283528,3340.6124266998],[.00660776362,3.81783443019,6681.2248533996],[.00046179117,4.15595316782,10021.8372800994],[8109733e-11,5.55958416318,2810.9214616052],[7485318e-11,1.77239078402,5621.8429232104],[5523191e-11,1.3643630377,2281.2304965106],[382516e-10,4.49407183687,13362.4497067992],[2306537e-11,.09081579001,2544.3144198834],[1999396e-11,5.36059617709,3337.0893083508],[2484394e-11,4.9254563992,2942.4634232916],[1960195e-11,4.74249437639,3344.1355450488],[1167119e-11,2.11260868341,5092.1519581158],[1102816e-11,5.00908403998,398.1490034082],[899066e-11,4.40791133207,529.6909650946],[992252e-11,5.83861961952,6151.533888305],[807354e-11,2.10217065501,1059.3819301892],[797915e-11,3.44839203899,796.2980068164],[740975e-11,1.49906336885,2146.1654164752]],[[.01107433345,2.03250524857,3340.6124266998],[.00103175887,2.37071847807,6681.2248533996],[128772e-9,0,0],[.0001081588,2.70888095665,10021.8372800994]],[[.00044242249,.47930604954,3340.6124266998],[8138042e-11,.86998389204,6681.2248533996]]]],Jupiter:[[[[.59954691494,0,0],[.09695898719,5.06191793158,529.6909650946],[.00573610142,1.44406205629,7.1135470008],[.00306389205,5.41734730184,1059.3819301892],[.00097178296,4.14264726552,632.7837393132],[.00072903078,3.64042916389,522.5774180938],[.00064263975,3.41145165351,103.0927742186],[.00039806064,2.29376740788,419.4846438752],[.00038857767,1.27231755835,316.3918696566],[.00027964629,1.7845459182,536.8045120954],[.0001358973,5.7748104079,1589.0728952838],[8246349e-11,3.5822792584,206.1855484372],[8768704e-11,3.63000308199,949.1756089698],[7368042e-11,5.0810119427,735.8765135318],[626315e-10,.02497628807,213.299095438],[6114062e-11,4.51319998626,1162.4747044078],[4905396e-11,1.32084470588,110.2063212194],[5305285e-11,1.30671216791,14.2270940016],[5305441e-11,4.18625634012,1052.2683831884],[4647248e-11,4.69958103684,3.9321532631],[3045023e-11,4.31676431084,426.598190876],[2609999e-11,1.56667394063,846.0828347512],[2028191e-11,1.06376530715,3.1813937377],[1764763e-11,2.14148655117,1066.49547719],[1722972e-11,3.88036268267,1265.5674786264],[1920945e-11,.97168196472,639.897286314],[1633223e-11,3.58201833555,515.463871093],[1431999e-11,4.29685556046,625.6701923124],[973272e-11,4.09764549134,95.9792272178]],[[529.69096508814,0,0],[.00489503243,4.2208293947,529.6909650946],[.00228917222,6.02646855621,7.1135470008],[.00030099479,4.54540782858,1059.3819301892],[.0002072092,5.45943156902,522.5774180938],[.00012103653,.16994816098,536.8045120954],[6067987e-11,4.42422292017,103.0927742186],[5433968e-11,3.98480737746,419.4846438752],[4237744e-11,5.89008707199,14.2270940016]],[[.00047233601,4.32148536482,7.1135470008],[.00030649436,2.929777887,529.6909650946],[.00014837605,3.14159265359,0]]],[[[.02268615702,3.55852606721,529.6909650946],[.00109971634,3.90809347197,1059.3819301892],[.00110090358,0,0],[8101428e-11,3.60509572885,522.5774180938],[6043996e-11,4.25883108339,1589.0728952838],[6437782e-11,.30627119215,536.8045120954]],[[.00078203446,1.52377859742,529.6909650946]]],[[[5.20887429326,0,0],[.25209327119,3.49108639871,529.6909650946],[.00610599976,3.84115365948,1059.3819301892],[.00282029458,2.57419881293,632.7837393132],[.00187647346,2.07590383214,522.5774180938],[.00086792905,.71001145545,419.4846438752],[.00072062974,.21465724607,536.8045120954],[.00065517248,5.9799588479,316.3918696566],[.00029134542,1.67759379655,103.0927742186],[.00030135335,2.16132003734,949.1756089698],[.00023453271,3.54023522184,735.8765135318],[.00022283743,4.19362594399,1589.0728952838],[.00023947298,.2745803748,7.1135470008],[.00013032614,2.96042965363,1162.4747044078],[970336e-10,1.90669633585,206.1855484372],[.00012749023,2.71550286592,1052.2683831884],[7057931e-11,2.18184839926,1265.5674786264],[6137703e-11,6.26418240033,846.0828347512],[2616976e-11,2.00994012876,1581.959348283]],[[.0127180152,2.64937512894,529.6909650946],[.00061661816,3.00076460387,1059.3819301892],[.00053443713,3.89717383175,522.5774180938],[.00031185171,4.88276958012,536.8045120954],[.00041390269,0,0]]]],Saturn:[[[[.87401354025,0,0],[.11107659762,3.96205090159,213.299095438],[.01414150957,4.58581516874,7.1135470008],[.00398379389,.52112032699,206.1855484372],[.00350769243,3.30329907896,426.598190876],[.00206816305,.24658372002,103.0927742186],[792713e-9,3.84007056878,220.4126424388],[.00023990355,4.66976924553,110.2063212194],[.00016573588,.43719228296,419.4846438752],[.00014906995,5.76903183869,316.3918696566],[.0001582029,.93809155235,632.7837393132],[.00014609559,1.56518472,3.9321532631],[.00013160301,4.44891291899,14.2270940016],[.00015053543,2.71669915667,639.897286314],[.00013005299,5.98119023644,11.0457002639],[.00010725067,3.12939523827,202.2533951741],[5863206e-11,.23656938524,529.6909650946],[5227757e-11,4.20783365759,3.1813937377],[6126317e-11,1.76328667907,277.0349937414],[5019687e-11,3.17787728405,433.7117378768],[459255e-10,.61977744975,199.0720014364],[4005867e-11,2.24479718502,63.7358983034],[2953796e-11,.98280366998,95.9792272178],[387367e-10,3.22283226966,138.5174968707],[2461186e-11,2.03163875071,735.8765135318],[3269484e-11,.77492638211,949.1756089698],[1758145e-11,3.2658010994,522.5774180938],[1640172e-11,5.5050445305,846.0828347512],[1391327e-11,4.02333150505,323.5054166574],[1580648e-11,4.37265307169,309.2783226558],[1123498e-11,2.83726798446,415.5524906121],[1017275e-11,3.71700135395,227.5261894396],[848642e-11,3.1915017083,209.3669421749]],[[213.2990952169,0,0],[.01297370862,1.82834923978,213.299095438],[.00564345393,2.88499717272,7.1135470008],[.00093734369,1.06311793502,426.598190876],[.00107674962,2.27769131009,206.1855484372],[.00040244455,2.04108104671,220.4126424388],[.00019941774,1.2795439047,103.0927742186],[.00010511678,2.7488034213,14.2270940016],[6416106e-11,.38238295041,639.897286314],[4848994e-11,2.43037610229,419.4846438752],[4056892e-11,2.92133209468,110.2063212194],[3768635e-11,3.6496533078,3.9321532631]],[[.0011644133,1.17988132879,7.1135470008],[.00091841837,.0732519584,213.299095438],[.00036661728,0,0],[.00015274496,4.06493179167,206.1855484372]]],[[[.04330678039,3.60284428399,213.299095438],[.00240348302,2.85238489373,426.598190876],[.00084745939,0,0],[.00030863357,3.48441504555,220.4126424388],[.00034116062,.57297307557,206.1855484372],[.0001473407,2.11846596715,639.897286314],[9916667e-11,5.79003188904,419.4846438752],[6993564e-11,4.7360468972,7.1135470008],[4807588e-11,5.43305312061,316.3918696566]],[[.00198927992,4.93901017903,213.299095438],[.00036947916,3.14159265359,0],[.00017966989,.5197943111,426.598190876]]],[[[9.55758135486,0,0],[.52921382865,2.39226219573,213.299095438],[.01873679867,5.2354960466,206.1855484372],[.01464663929,1.64763042902,426.598190876],[.00821891141,5.93520042303,316.3918696566],[.00547506923,5.0153261898,103.0927742186],[.0037168465,2.27114821115,220.4126424388],[.00361778765,3.13904301847,7.1135470008],[.00140617506,5.70406606781,632.7837393132],[.00108974848,3.29313390175,110.2063212194],[.00069006962,5.94099540992,419.4846438752],[.00061053367,.94037691801,639.897286314],[.00048913294,1.55733638681,202.2533951741],[.00034143772,.19519102597,277.0349937414],[.00032401773,5.47084567016,949.1756089698],[.00020936596,.46349251129,735.8765135318],[9796004e-11,5.20477537945,1265.5674786264],[.00011993338,5.98050967385,846.0828347512],[208393e-9,1.52102476129,433.7117378768],[.00015298404,3.0594381494,529.6909650946],[6465823e-11,.17732249942,1052.2683831884],[.00011380257,1.7310542704,522.5774180938],[3419618e-11,4.94550542171,1581.959348283]],[[.0618298134,.2584351148,213.299095438],[.00506577242,.71114625261,206.1855484372],[.00341394029,5.79635741658,426.598190876],[.00188491195,.47215589652,220.4126424388],[.00186261486,3.14159265359,0],[.00143891146,1.40744822888,7.1135470008]],[[.00436902572,4.78671677509,213.299095438]]]],Uranus:[[[[5.48129294297,0,0],[.09260408234,.89106421507,74.7815985673],[.01504247898,3.6271926092,1.4844727083],[.00365981674,1.89962179044,73.297125859],[.00272328168,3.35823706307,149.5631971346],[.00070328461,5.39254450063,63.7358983034],[.00068892678,6.09292483287,76.2660712756],[.00061998615,2.26952066061,2.9689454166],[.00061950719,2.85098872691,11.0457002639],[.0002646877,3.14152083966,71.8126531507],[.00025710476,6.11379840493,454.9093665273],[.0002107885,4.36059339067,148.0787244263],[.00017818647,1.74436930289,36.6485629295],[.00014613507,4.73732166022,3.9321532631],[.00011162509,5.8268179635,224.3447957019],[.0001099791,.48865004018,138.5174968707],[9527478e-11,2.95516862826,35.1640902212],[7545601e-11,5.236265824,109.9456887885],[4220241e-11,3.23328220918,70.8494453042],[40519e-9,2.277550173,151.0476698429],[3354596e-11,1.0654900738,4.4534181249],[2926718e-11,4.62903718891,9.5612275556],[349034e-10,5.48306144511,146.594251718],[3144069e-11,4.75199570434,77.7505439839],[2922333e-11,5.35235361027,85.8272988312],[2272788e-11,4.36600400036,70.3281804424],[2051219e-11,1.51773566586,.1118745846],[2148602e-11,.60745949945,38.1330356378],[1991643e-11,4.92437588682,277.0349937414],[1376226e-11,2.04283539351,65.2203710117],[1666902e-11,3.62744066769,380.12776796],[1284107e-11,3.11347961505,202.2533951741],[1150429e-11,.93343589092,3.1813937377],[1533221e-11,2.58594681212,52.6901980395],[1281604e-11,.54271272721,222.8603229936],[1372139e-11,4.19641530878,111.4301614968],[1221029e-11,.1990065003,108.4612160802],[946181e-11,1.19253165736,127.4717966068],[1150989e-11,4.17898916639,33.6796175129]],[[74.7815986091,0,0],[.00154332863,5.24158770553,74.7815985673],[.00024456474,1.71260334156,1.4844727083],[9258442e-11,.4282973235,11.0457002639],[8265977e-11,1.50218091379,63.7358983034],[915016e-10,1.41213765216,149.5631971346]]],[[[.01346277648,2.61877810547,74.7815985673],[623414e-9,5.08111189648,149.5631971346],[.00061601196,3.14159265359,0],[9963722e-11,1.61603805646,76.2660712756],[992616e-10,.57630380333,73.297125859]],[[.00034101978,.01321929936,74.7815985673]]],[[[19.21264847206,0,0],[.88784984413,5.60377527014,74.7815985673],[.03440836062,.32836099706,73.297125859],[.0205565386,1.7829515933,149.5631971346],[.0064932241,4.52247285911,76.2660712756],[.00602247865,3.86003823674,63.7358983034],[.00496404167,1.40139935333,454.9093665273],[.00338525369,1.58002770318,138.5174968707],[.00243509114,1.57086606044,71.8126531507],[.00190522303,1.99809394714,1.4844727083],[.00161858838,2.79137786799,148.0787244263],[.00143706183,1.38368544947,11.0457002639],[.00093192405,.17437220467,36.6485629295],[.00071424548,4.24509236074,224.3447957019],[.00089806014,3.66105364565,109.9456887885],[.00039009723,1.66971401684,70.8494453042],[.00046677296,1.39976401694,35.1640902212],[.00039025624,3.36234773834,277.0349937414],[.00036755274,3.88649278513,146.594251718],[.00030348723,.70100838798,151.0476698429],[.00029156413,3.180563367,77.7505439839],[.00022637073,.72518687029,529.6909650946],[.00011959076,1.7504339214,984.6003316219],[.00025620756,5.25656086672,380.12776796]],[[.01479896629,3.67205697578,74.7815985673]]]],Neptune:[[[[5.31188633046,0,0],[.0179847553,2.9010127389,38.1330356378],[.01019727652,.48580922867,1.4844727083],[.00124531845,4.83008090676,36.6485629295],[.00042064466,5.41054993053,2.9689454166],[.00037714584,6.09221808686,35.1640902212],[.00033784738,1.24488874087,76.2660712756],[.00016482741,7727998e-11,491.5579294568],[9198584e-11,4.93747051954,39.6175083461],[899425e-10,.27462171806,175.1660598002]],[[38.13303563957,0,0],[.00016604172,4.86323329249,1.4844727083],[.00015744045,2.27887427527,38.1330356378]]],[[[.03088622933,1.44104372644,38.1330356378],[.00027780087,5.91271884599,76.2660712756],[.00027623609,0,0],[.00015355489,2.52123799551,36.6485629295],[.00015448133,3.50877079215,39.6175083461]]],[[[30.07013205828,0,0],[.27062259632,1.32999459377,38.1330356378],[.01691764014,3.25186135653,36.6485629295],[.00807830553,5.18592878704,1.4844727083],[.0053776051,4.52113935896,35.1640902212],[.00495725141,1.5710564165,491.5579294568],[.00274571975,1.84552258866,175.1660598002],[.0001201232,1.92059384991,1021.2488945514],[.00121801746,5.79754470298,76.2660712756],[.00100896068,.3770272493,73.297125859],[.00135134092,3.37220609835,39.6175083461],[7571796e-11,1.07149207335,388.4651552382]]]]};function RJ(n){var e,t,i,a,r,s,o;const c=2e3+(n-14)/yJ;return c<-500?(e=(c-1820)/100,-20+32*e*e):c<500?(e=c/100,t=e*e,i=e*t,a=t*t,r=t*i,s=i*i,10583.6-1014.41*e+33.78311*t-5.952053*i-.1798452*a+.022174192*r+.0090316521*s):c<1600?(e=(c-1e3)/100,t=e*e,i=e*t,a=t*t,r=t*i,s=i*i,1574.2-556.01*e+71.23472*t+.319781*i-.8503463*a-.005050998*r+.0083572073*s):c<1700?(e=c-1600,t=e*e,i=e*t,120-.9808*e-.01532*t+i/7129):c<1800?(e=c-1700,t=e*e,i=e*t,a=t*t,8.83+.1603*e-.0059285*t+13336e-8*i-a/1174e3):c<1860?(e=c-1800,t=e*e,i=e*t,a=t*t,r=t*i,s=i*i,o=i*a,13.72-.332447*e+.0068612*t+.0041116*i-37436e-8*a+121272e-10*r-1699e-10*s+875e-12*o):c<1900?(e=c-1860,t=e*e,i=e*t,a=t*t,r=t*i,7.62+.5737*e-.251754*t+.01680668*i-.0004473624*a+r/233174):c<1920?(e=c-1900,t=e*e,i=e*t,a=t*t,-2.79+1.494119*e-.0598939*t+.0061966*i-197e-6*a):c<1941?(e=c-1920,t=e*e,i=e*t,21.2+.84493*e-.0761*t+.0020936*i):c<1961?(e=c-1950,t=e*e,i=e*t,29.07+.407*e-t/233+i/2547):c<1986?(e=c-1975,t=e*e,i=e*t,45.45+1.067*e-t/260-i/718):c<2005?(e=c-2e3,t=e*e,i=e*t,a=t*t,r=t*i,63.86+.3345*e-.060374*t+.0017275*i+651814e-9*a+2373599e-11*r):c<2050?(e=c-2e3,62.92+.32217*e+.005589*e*e):c<2150?(e=(c-1820)/100,-20+32*e*e-.5628*(2150-c)):(e=(c-1820)/100,-20+32*e*e)}let wJ=RJ;function WD(n){return n+wJ(n)/86400}class cc{constructor(e){if(e instanceof cc){this.date=e.date,this.ut=e.ut,this.tt=e.tt;return}const t=1e3*3600*24;if(e instanceof Date&&Number.isFinite(e.getTime())){this.date=e,this.ut=(e.getTime()-XD.getTime())/t,this.tt=WD(this.ut);return}if(Number.isFinite(e)){this.date=new Date(XD.getTime()+e*t),this.ut=e,this.tt=WD(this.ut);return}throw"Argument must be a Date object, an AstroTime object, or a numeric UTC Julian date."}static FromTerrestrialTime(e){let t=new cc(e);for(;;){const i=e-t.tt;if(Math.abs(i)<1e-12)return t;t=t.AddDays(i)}}toString(){return this.date.toISOString()}AddDays(e){return new cc(this.ut+e)}}function dh(n){return n instanceof cc?n:new cc(n)}function DJ(n){function e(m){return m%SJ*Hf}const t=n.tt/36525,i=e(128710479305e-5+t*1295965810481e-4),a=e(335779.526232+t*17395272628478e-4),r=e(107226070369e-5+t*1602961601209e-3),s=e(450160.398036-t*69628905431e-4);let o=Math.sin(s),c=Math.cos(s),h=(-172064161-174666*t)*o+33386*c,f=(92052331+9086*t)*c+15377*o,d=2*(a-r+s);return o=Math.sin(d),c=Math.cos(d),h+=(-13170906-1675*t)*o-13696*c,f+=(5730336-3015*t)*c-4587*o,d=2*(a+s),o=Math.sin(d),c=Math.cos(d),h+=(-2276413-234*t)*o+2796*c,f+=(978459-485*t)*c+1374*o,d=2*s,o=Math.sin(d),c=Math.cos(d),h+=(2074554+207*t)*o-698*c,f+=(-897492+470*t)*c-291*o,o=Math.sin(i),c=Math.cos(i),h+=(1475877-3633*t)*o+11817*c,f+=(73871-184*t)*c-1924*o,{dpsi:-135e-6+h*1e-7,deps:388e-6+f*1e-7}}function R6(n){var e=n.tt/36525,t=((((-434e-10*e-576e-9)*e+.0020034)*e-1831e-7)*e-46.836769)*e+84381.406;return t/3600}var Vv;function w6(n){if(!Vv||Math.abs(Vv.tt-n.tt)>1e-6){const e=DJ(n),t=R6(n),i=t+e.deps/3600;Vv={tt:n.tt,dpsi:e.dpsi,deps:e.deps,ee:e.dpsi*Math.cos(t*Qu)/15,mobl:t,tobl:i}}return Vv}function NJ(n,e){const t=n*Qu,i=Math.cos(t),a=Math.sin(t);return[e[0],e[1]*i-e[2]*a,e[1]*a+e[2]*i]}function OJ(n,e){return NJ(R6(n),e)}function IJ(n){const e=n.tt/36525;function t(ht,et){const Re=[];let Z;for(Z=0;Z<=et-ht;++Z)Re.push(0);return{min:ht,array:Re}}function i(ht,et,Re,Z){const Ue=[];for(let ze=0;ze<=et-ht;++ze)Ue.push(t(Re,Z));return{min:ht,array:Ue}}function a(ht,et,Re){const Z=ht.array[et-ht.min];return Z.array[Re-Z.min]}function r(ht,et,Re,Z){const Ue=ht.array[et-ht.min];Ue.array[Re-Ue.min]=Z}let s,o,c,h,f,d,m,g,y,E,S,v,_,A,b,O,N,L,B,w,D,G,J,$=i(-6,6,1,4),se=i(-6,6,1,4);function le(ht,et){return a($,ht,et)}function q(ht,et){return a(se,ht,et)}function te(ht,et,Re){return r($,ht,et,Re)}function ee(ht,et,Re){return r(se,ht,et,Re)}function de(ht,et,Re,Z,Ue){Ue(ht*Re-et*Z,et*Re+ht*Z)}function ue(ht){return Math.sin(Oo*ht)}m=e*e,y=0,J=0,S=0,v=3422.7;var Pe=ue(.19833+.05611*e),He=ue(.27869+.04508*e),Ke=ue(.16827-.36903*e),nt=ue(.34734-5.37261*e),xt=ue(.10498-5.37899*e),fe=ue(.42681-.41855*e),Be=ue(.14943-5.37511*e);for(L=.84*Pe+.31*He+14.27*Ke+7.26*nt+.28*xt+.24*fe,B=2.94*Pe+.31*He+14.27*Ke+9.34*nt+1.12*xt+.83*fe,w=-6.4*Pe-1.89*fe,D=.21*Pe+.31*He+14.27*Ke-88.7*nt-15.3*xt+.24*fe-1.86*Be,G=L-w,g=-3332e-9*ue(.59734-5.37261*e)-539e-9*ue(.35498-5.37899*e)-64e-9*ue(.39943-5.37511*e),_=Oo*gf(.60643382+1336.85522467*e-313e-8*m)+L/Fl,A=Oo*gf(.37489701+1325.55240982*e+2565e-8*m)+B/Fl,b=Oo*gf(.99312619+99.99735956*e-44e-8*m)+w/Fl,O=Oo*gf(.25909118+1342.2278298*e-892e-8*m)+D/Fl,N=Oo*gf(.82736186+1236.85308708*e-397e-8*m)+G/Fl,f=1;f<=4;++f){switch(f){case 1:c=A,o=4,h=1.000002208;break;case 2:c=b,o=3,h=.997504612-.002495388*e;break;case 3:c=O,o=4,h=1.000002708+139.978*g;break;case 4:c=N,o=6,h=1;break;default:throw`Internal error: I = ${f}`}for(te(0,f,1),te(1,f,Math.cos(c)*h),ee(0,f,0),ee(1,f,Math.sin(c)*h),d=2;d<=o;++d)de(le(d-1,f),q(d-1,f),le(1,f),q(1,f),(ht,et)=>(te(d,f,ht),ee(d,f,et)));for(d=1;d<=o;++d)te(-d,f,le(d,f)),ee(-d,f,-q(d,f))}function Je(ht,et,Re,Z){for(var Ue={x:1,y:0},ze=[0,ht,et,Re,Z],Qe=1;Qe<=4;++Qe)ze[Qe]!==0&&de(Ue.x,Ue.y,le(ze[Qe],Qe),q(ze[Qe],Qe),(Ye,ot)=>(Ue.x=Ye,Ue.y=ot));return Ue}function ve(ht,et,Re,Z,Ue,ze,Qe,Ye){var ot=Je(Ue,ze,Qe,Ye);y+=ht*ot.y,J+=et*ot.y,S+=Re*ot.x,v+=Z*ot.x}ve(13.902,14.06,-.001,.2607,0,0,0,4),ve(.403,-4.01,.394,.0023,0,0,0,3),ve(2369.912,2373.36,.601,28.2333,0,0,0,2),ve(-125.154,-112.79,-.725,-.9781,0,0,0,1),ve(1.979,6.98,-.445,.0433,1,0,0,4),ve(191.953,192.72,.029,3.0861,1,0,0,2),ve(-8.466,-13.51,.455,-.1093,1,0,0,1),ve(22639.5,22609.07,.079,186.5398,1,0,0,0),ve(18.609,3.59,-.094,.0118,1,0,0,-1),ve(-4586.465,-4578.13,-.077,34.3117,1,0,0,-2),ve(3.215,5.44,.192,-.0386,1,0,0,-3),ve(-38.428,-38.64,.001,.6008,1,0,0,-4),ve(-.393,-1.43,-.092,.0086,1,0,0,-6),ve(-.289,-1.59,.123,-.0053,0,1,0,4),ve(-24.42,-25.1,.04,-.3,0,1,0,2),ve(18.023,17.93,.007,.1494,0,1,0,1),ve(-668.146,-126.98,-1.302,-.3997,0,1,0,0),ve(.56,.32,-.001,-.0037,0,1,0,-1),ve(-165.145,-165.06,.054,1.9178,0,1,0,-2),ve(-1.877,-6.46,-.416,.0339,0,1,0,-4),ve(.213,1.02,-.074,.0054,2,0,0,4),ve(14.387,14.78,-.017,.2833,2,0,0,2),ve(-.586,-1.2,.054,-.01,2,0,0,1),ve(769.016,767.96,.107,10.1657,2,0,0,0),ve(1.75,2.01,-.018,.0155,2,0,0,-1),ve(-211.656,-152.53,5.679,-.3039,2,0,0,-2),ve(1.225,.91,-.03,-.0088,2,0,0,-3),ve(-30.773,-34.07,-.308,.3722,2,0,0,-4),ve(-.57,-1.4,-.074,.0109,2,0,0,-6),ve(-2.921,-11.75,.787,-.0484,1,1,0,2),ve(1.267,1.52,-.022,.0164,1,1,0,1),ve(-109.673,-115.18,.461,-.949,1,1,0,0),ve(-205.962,-182.36,2.056,1.4437,1,1,0,-2),ve(.233,.36,.012,-.0025,1,1,0,-3),ve(-4.391,-9.66,-.471,.0673,1,1,0,-4),ve(.283,1.53,-.111,.006,1,-1,0,4),ve(14.577,31.7,-1.54,.2302,1,-1,0,2),ve(147.687,138.76,.679,1.1528,1,-1,0,0),ve(-1.089,.55,.021,0,1,-1,0,-1),ve(28.475,23.59,-.443,-.2257,1,-1,0,-2),ve(-.276,-.38,-.006,-.0036,1,-1,0,-3),ve(.636,2.27,.146,-.0102,1,-1,0,-4),ve(-.189,-1.68,.131,-.0028,0,2,0,2),ve(-7.486,-.66,-.037,-.0086,0,2,0,0),ve(-8.096,-16.35,-.74,.0918,0,2,0,-2),ve(-5.741,-.04,0,-9e-4,0,0,2,2),ve(.255,0,0,0,0,0,2,1),ve(-411.608,-.2,0,-.0124,0,0,2,0),ve(.584,.84,0,.0071,0,0,2,-1),ve(-55.173,-52.14,0,-.1052,0,0,2,-2),ve(.254,.25,0,-.0017,0,0,2,-3),ve(.025,-1.67,0,.0031,0,0,2,-4),ve(1.06,2.96,-.166,.0243,3,0,0,2),ve(36.124,50.64,-1.3,.6215,3,0,0,0),ve(-13.193,-16.4,.258,-.1187,3,0,0,-2),ve(-1.187,-.74,.042,.0074,3,0,0,-4),ve(-.293,-.31,-.002,.0046,3,0,0,-6),ve(-.29,-1.45,.116,-.0051,2,1,0,2),ve(-7.649,-10.56,.259,-.1038,2,1,0,0),ve(-8.627,-7.59,.078,-.0192,2,1,0,-2),ve(-2.74,-2.54,.022,.0324,2,1,0,-4),ve(1.181,3.32,-.212,.0213,2,-1,0,2),ve(9.703,11.67,-.151,.1268,2,-1,0,0),ve(-.352,-.37,.001,-.0028,2,-1,0,-1),ve(-2.494,-1.17,-.003,-.0017,2,-1,0,-2),ve(.36,.2,-.012,-.0043,2,-1,0,-4),ve(-1.167,-1.25,.008,-.0106,1,2,0,0),ve(-7.412,-6.12,.117,.0484,1,2,0,-2),ve(-.311,-.65,-.032,.0044,1,2,0,-4),ve(.757,1.82,-.105,.0112,1,-2,0,2),ve(2.58,2.32,.027,.0196,1,-2,0,0),ve(2.533,2.4,-.014,-.0212,1,-2,0,-2),ve(-.344,-.57,-.025,.0036,0,3,0,-2),ve(-.992,-.02,0,0,1,0,2,2),ve(-45.099,-.02,0,-.001,1,0,2,0),ve(-.179,-9.52,0,-.0833,1,0,2,-2),ve(-.301,-.33,0,.0014,1,0,2,-4),ve(-6.382,-3.37,0,-.0481,1,0,-2,2),ve(39.528,85.13,0,-.7136,1,0,-2,0),ve(9.366,.71,0,-.0112,1,0,-2,-2),ve(.202,.02,0,0,1,0,-2,-4),ve(.415,.1,0,.0013,0,1,2,0),ve(-2.152,-2.26,0,-.0066,0,1,2,-2),ve(-1.44,-1.3,0,.0014,0,1,-2,2),ve(.384,-.04,0,0,0,1,-2,-2),ve(1.938,3.6,-.145,.0401,4,0,0,0),ve(-.952,-1.58,.052,-.013,4,0,0,-2),ve(-.551,-.94,.032,-.0097,3,1,0,0),ve(-.482,-.57,.005,-.0045,3,1,0,-2),ve(.681,.96,-.026,.0115,3,-1,0,0),ve(-.297,-.27,.002,-9e-4,2,2,0,-2),ve(.254,.21,-.003,0,2,-2,0,-2),ve(-.25,-.22,.004,.0014,1,3,0,-2),ve(-3.996,0,0,4e-4,2,0,2,0),ve(.557,-.75,0,-.009,2,0,2,-2),ve(-.459,-.38,0,-.0053,2,0,-2,2),ve(-1.298,.74,0,4e-4,2,0,-2,0),ve(.538,1.14,0,-.0141,2,0,-2,-2),ve(.263,.02,0,0,1,1,2,0),ve(.426,.07,0,-6e-4,1,1,-2,-2),ve(-.304,.03,0,3e-4,1,-1,2,0),ve(-.372,-.19,0,-.0027,1,-1,-2,2),ve(.418,0,0,0,0,0,4,0),ve(-.33,-.04,0,0,3,0,2,0);function at(ht,et,Re,Z,Ue){return ht*Je(et,Re,Z,Ue).y}E=0,E+=at(-526.069,0,0,1,-2),E+=at(-3.352,0,0,1,-4),E+=at(44.297,1,0,1,-2),E+=at(-6,1,0,1,-4),E+=at(20.599,-1,0,1,0),E+=at(-30.598,-1,0,1,-2),E+=at(-24.649,-2,0,1,0),E+=at(-2,-2,0,1,-2),E+=at(-22.571,0,1,1,-2),E+=at(10.985,0,-1,1,-2),y+=.82*ue(.7736-62.5512*e)+.31*ue(.0466-125.1025*e)+.35*ue(.5785-25.1042*e)+.66*ue(.4591+1335.8075*e)+.64*ue(.313-91.568*e)+1.14*ue(.148+1331.2898*e)+.21*ue(.5918+1056.5859*e)+.44*ue(.5784+1322.8595*e)+.24*ue(.2275-5.7374*e)+.28*ue(.2965+2.6929*e)+.33*ue(.3132+6.3368*e),s=O+J/Fl;let ft=(1.000002708+139.978*g)*(18518.511+1.189+S)*Math.sin(s)-6.24*Math.sin(3*s)+E;return{geo_eclip_lon:Oo*gf((_+y/Fl)/Oo),geo_eclip_lat:Math.PI/(180*3600)*ft,distance_au:Fl*EJ/(.999953253*v)}}function BJ(n,e){return[n.rot[0][0]*e[0]+n.rot[1][0]*e[1]+n.rot[2][0]*e[2],n.rot[0][1]*e[0]+n.rot[1][1]*e[1]+n.rot[2][1]*e[2],n.rot[0][2]*e[0]+n.rot[1][2]*e[1]+n.rot[2][2]*e[2]]}function UJ(n,e,t){const i=D6(e,t);return BJ(i,n)}function D6(n,e){const t=n.tt/36525;let i=84381.406,a=((((-951e-10*t+132851e-9)*t-.00114045)*t-1.0790069)*t+5038.481507)*t,r=((((3337e-10*t-467e-9)*t-.00772503)*t+.0512623)*t-.025754)*t+i,s=((((-56e-9*t+170663e-9)*t-.00121197)*t-2.3814292)*t+10.556403)*t;i*=Hf,a*=Hf,r*=Hf,s*=Hf;const o=Math.sin(i),c=Math.cos(i),h=Math.sin(-a),f=Math.cos(-a),d=Math.sin(-r),m=Math.cos(-r),g=Math.sin(s),y=Math.cos(s),E=y*f-h*g*m,S=y*h*c+g*m*f*c-o*g*d,v=y*h*o+g*m*f*o+c*g*d,_=-g*f-h*y*m,A=-g*h*c+y*m*f*c-o*y*d,b=-g*h*o+y*m*f*o+c*y*d,O=h*d,N=-d*f*c-o*m,L=-d*f*o+m*c;if(e===ol.Into2000)return new wd([[E,S,v],[_,A,b],[O,N,L]]);if(e===ol.From2000)return new wd([[E,_,O],[S,A,N],[v,b,L]]);throw"Invalid precess direction"}function LJ(n){const e=.779057273264+.00273781191135448*n.ut,t=n.ut%1;let i=360*((e+t)%1);return i<0&&(i+=360),i}let kv;function PJ(n){if(!kv||kv.tt!==n.tt){const e=n.tt/36525;let t=15*w6(n).ee;const i=LJ(n);let a=((t+.014506+((((-368e-10*e-29956e-9)*e-44e-8)*e+1.3915817)*e+4612.156534)*e)/3600+i)%360/15;a<0&&(a+=24),kv={tt:n.tt,st:a}}return kv.st}function FJ(n){const e=dh(n);return PJ(e)}function HJ(n,e){const t=w6(n),i=t.mobl*Qu,a=t.tobl*Qu,r=t.dpsi*Hf,s=Math.cos(i),o=Math.sin(i),c=Math.cos(a),h=Math.sin(a),f=Math.cos(r),d=Math.sin(r),m=f,g=-d*s,y=-d*o,E=d*c,S=f*s*c+o*h,v=f*o*c-s*h,_=d*h,A=f*s*h-o*c,b=f*o*h+s*c;if(e===ol.From2000)return new wd([[m,E,_],[g,S,A],[y,v,b]]);if(e===ol.Into2000)return new wd([[m,g,y],[E,S,v],[_,A,b]]);throw"Invalid precess direction"}class ws{constructor(e,t,i,a){this.x=e,this.y=t,this.z=i,this.t=a}Length(){return Math.hypot(this.x,this.y,this.z)}}class zJ{constructor(e,t,i,a,r,s,o){this.x=e,this.y=t,this.z=i,this.vx=a,this.vy=r,this.vz=s,this.t=o}}let GJ=class{constructor(e,t,i){this.lat=p1(e),this.lon=p1(t),this.dist=p1(i)}};class wd{constructor(e){this.rot=e}}function uT(n){const e=dh(n),t=IJ(e),i=t.distance_au*Math.cos(t.geo_eclip_lat),a=[i*Math.cos(t.geo_eclip_lon),i*Math.sin(t.geo_eclip_lon),t.distance_au*Math.sin(t.geo_eclip_lat)],r=OJ(e,a),s=UJ(r,e,ol.Into2000);return new ws(s[0],s[1],s[2],e)}function Qf(n,e,t){let i=1,a=0;for(let r of n){let s=0;for(let[c,h,f]of r)s+=c*Math.cos(h+e*f);let o=i*s;t&&(o%=Oo),a+=o,i*=e}return a}function S2(n,e){let t=1,i=0,a=0,r=0;for(let s of n){let o=0,c=0;for(let[h,f,d]of s){let m=f+e*d;o+=h*d*Math.sin(m),r>0&&(c+=h*Math.cos(m))}a+=r*i*c-t*o,i=t,t*=e,++r}return a}const rm=365250,hT=0,fT=1,dT=2;function pT(n){return new Ta(n[0]+44036e-11*n[1]-190919e-12*n[2],-479966e-12*n[0]+.917482137087*n[1]-.397776982902*n[2],.397776982902*n[1]+.917482137087*n[2])}function N6(n,e,t){const i=t*Math.cos(e),a=Math.cos(n),r=Math.sin(n);return[i*a,i*r,t*Math.sin(e)]}function m1(n,e){const t=e.tt/rm,i=Qf(n[hT],t,!0),a=Qf(n[fT],t,!1),r=Qf(n[dT],t,!1),s=N6(i,a,r);return pT(s).ToAstroVector(e)}function VJ(n,e){const t=e/rm,i=Qf(n[hT],t,!0),a=Qf(n[fT],t,!1),r=Qf(n[dT],t,!1),s=S2(n[hT],t),o=S2(n[fT],t),c=S2(n[dT],t),h=Math.cos(i),f=Math.sin(i),d=Math.cos(a),m=Math.sin(a),g=+(c*d*h)-r*m*h*o-r*d*f*s,y=+(c*d*f)-r*m*f*o+r*d*h*s,E=+(c*m)+r*d*o,S=N6(i,a,r),v=[g/rm,y/rm,E/rm],_=pT(S),A=pT(v);return new $u(e,_,A)}function Xv(n,e,t,i){const a=i/(i+Fb),r=m1(zf[t],e);n.x+=a*r.x,n.y+=a*r.y,n.z+=a*r.z}function kJ(n){const e=new ws(0,0,0,n);return Xv(e,n,Gn.Jupiter,sT),Xv(e,n,Gn.Saturn,oT),Xv(e,n,Gn.Uranus,lT),Xv(e,n,Gn.Neptune,cT),e}const mT=51,XJ=29200,Gf=146,Io=201,Su=[[-73e4,[-26.118207232108,-14.376168177825,3.384402515299],[.0016339372163656,-.0027861699588508,-.0013585880229445]],[-700800,[41.974905202127,-.448502952929,-12.770351505989],[.00073458569351457,.0022785014891658,.00048619778602049]],[-671600,[14.706930780744,44.269110540027,9.353698474772],[-.00210001479998,.00022295915939915,.00070143443551414]],[-642400,[-29.441003929957,-6.43016153057,6.858481011305],[.00084495803960544,-.0030783914758711,-.0012106305981192]],[-613200,[39.444396946234,-6.557989760571,-13.913760296463],[.0011480029005873,.0022400006880665,.00035168075922288]],[-584e3,[20.2303809507,43.266966657189,7.382966091923],[-.0019754081700585,.00053457141292226,.00075929169129793]],[-554800,[-30.65832536462,2.093818874552,9.880531138071],[61010603013347e-18,-.0031326500935382,-.00099346125151067]],[-525600,[35.737703251673,-12.587706024764,-14.677847247563],[.0015802939375649,.0021347678412429,.00019074436384343]],[-496400,[25.466295188546,41.367478338417,5.216476873382],[-.0018054401046468,.0008328308359951,.00080260156912107]],[-467200,[-29.847174904071,10.636426313081,12.297904180106],[-.00063257063052907,-.0029969577578221,-.00074476074151596]],[-438e3,[30.774692107687,-18.236637015304,-14.945535879896],[.0020113162005465,.0019353827024189,-20937793168297e-19]],[-408800,[30.243153324028,38.656267888503,2.938501750218],[-.0016052508674468,.0011183495337525,.00083333973416824]],[-379600,[-27.288984772533,18.643162147874,14.023633623329],[-.0011856388898191,-.0027170609282181,-.00049015526126399]],[-350400,[24.519605196774,-23.245756064727,-14.626862367368],[.0024322321483154,.0016062008146048,-.00023369181613312]],[-321200,[34.505274805875,35.125338586954,.557361475637],[-.0013824391637782,.0013833397561817,.00084823598806262]],[-292e3,[-23.275363915119,25.818514298769,15.055381588598],[-.0016062295460975,-.0023395961498533,-.00024377362639479]],[-262800,[17.050384798092,-27.180376290126,-13.608963321694],[.0028175521080578,.0011358749093955,-.00049548725258825]],[-233600,[38.093671910285,30.880588383337,-1.843688067413],[-.0011317697153459,.0016128814698472,.00084177586176055]],[-204400,[-18.197852930878,31.932869934309,15.438294826279],[-.0019117272501813,-.0019146495909842,-19657304369835e-18]],[-175200,[8.528924039997,-29.618422200048,-11.805400994258],[.0031034370787005,.0005139363329243,-.00077293066202546]],[-146e3,[40.94685725864,25.904973592021,-4.256336240499],[-.00083652705194051,.0018129497136404,.0008156422827306]],[-116800,[-12.326958895325,36.881883446292,15.217158258711],[-.0021166103705038,-.001481442003599,.00017401209844705]],[-87600,[-.633258375909,-30.018759794709,-9.17193287495],[.0032016994581737,-.00025279858672148,-.0010411088271861]],[-58400,[42.936048423883,20.344685584452,-6.588027007912],[-.00050525450073192,.0019910074335507,.00077440196540269]],[-29200,[-5.975910552974,40.61180995846,14.470131723673],[-.0022184202156107,-.0010562361130164,.00033652250216211]],[0,[-9.875369580774,-27.978926224737,-5.753711824704],[.0030287533248818,-.0011276087003636,-.0012651326732361]],[29200,[43.958831986165,14.214147973292,-8.808306227163],[-.00014717608981871,.0021404187242141,.00071486567806614]],[58400,[.67813676352,43.094461639362,13.243238780721],[-.0022358226110718,-.00063233636090933,.00047664798895648]],[87600,[-18.282602096834,-23.30503958666,-1.766620508028],[.0025567245263557,-.0019902940754171,-.0013943491701082]],[116800,[43.873338744526,7.700705617215,-10.814273666425],[.00023174803055677,.0022402163127924,.00062988756452032]],[146e3,[7.392949027906,44.382678951534,11.629500214854],[-.002193281545383,-.00021751799585364,.00059556516201114]],[175200,[-24.981690229261,-16.204012851426,2.466457544298],[.001819398914958,-.0026765419531201,-.0013848283502247]],[204400,[42.530187039511,.845935508021,-12.554907527683],[.00065059779150669,.0022725657282262,.00051133743202822]],[233600,[13.999526486822,44.462363044894,9.669418486465],[-.0021079296569252,.00017533423831993,.00069128485798076]],[262800,[-29.184024803031,-7.371243995762,6.493275957928],[.00093581363109681,-.0030610357109184,-.0012364201089345]],[292e3,[39.831980671753,-6.078405766765,-13.909815358656],[.0011117769689167,.0022362097830152,.00036230548231153]],[321200,[20.294955108476,43.417190420251,7.450091985932],[-.0019742157451535,.00053102050468554,.00075938408813008]],[350400,[-30.66999230216,2.318743558955,9.973480913858],[45605107450676e-18,-.0031308219926928,-.00099066533301924]],[379600,[35.626122155983,-12.897647509224,-14.777586508444],[.0016015684949743,.0021171931182284,.00018002516202204]],[408800,[26.133186148561,41.232139187599,5.00640132622],[-.0017857704419579,.00086046232702817,.00080614690298954]],[438e3,[-29.57674022923,11.863535943587,12.631323039872],[-.00072292830060955,-.0029587820140709,-.000708242964503]],[467200,[29.910805787391,-19.159019294,-15.013363865194],[.0020871080437997,.0018848372554514,-38528655083926e-18]],[496400,[31.375957451819,38.050372720763,2.433138343754],[-.0015546055556611,.0011699815465629,.00083565439266001]],[525600,[-26.360071336928,20.662505904952,14.414696258958],[-.0013142373118349,-.0026236647854842,-.00042542017598193]],[554800,[22.599441488648,-24.508879898306,-14.484045731468],[.0025454108304806,.0014917058755191,-.00030243665086079]],[584e3,[35.877864013014,33.894226366071,-.224524636277],[-.0012941245730845,.0014560427668319,.00084762160640137]],[613200,[-21.538149762417,28.204068269761,15.321973799534],[-.001731211740901,-.0021939631314577,-.0001631691327518]],[642400,[13.971521374415,-28.339941764789,-13.083792871886],[.0029334630526035,.00091860931752944,-.00059939422488627]],[671600,[39.526942044143,28.93989736011,-2.872799527539],[-.0010068481658095,.001702113288809,.00083578230511981]],[700800,[-15.576200701394,34.399412961275,15.466033737854],[-.0020098814612884,-.0017191109825989,70414782780416e-18]],[73e4,[4.24325283709,-30.118201690825,-10.707441231349],[.0031725847067411,.0001609846120227,-.00090672150593868]]];class Ta{constructor(e,t,i){this.x=e,this.y=t,this.z=i}clone(){return new Ta(this.x,this.y,this.z)}ToAstroVector(e){return new ws(this.x,this.y,this.z,e)}static zero(){return new Ta(0,0,0)}quadrature(){return this.x*this.x+this.y*this.y+this.z*this.z}add(e){return new Ta(this.x+e.x,this.y+e.y,this.z+e.z)}sub(e){return new Ta(this.x-e.x,this.y-e.y,this.z-e.z)}incr(e){this.x+=e.x,this.y+=e.y,this.z+=e.z}decr(e){this.x-=e.x,this.y-=e.y,this.z-=e.z}mul(e){return new Ta(e*this.x,e*this.y,e*this.z)}div(e){return new Ta(this.x/e,this.y/e,this.z/e)}mean(e){return new Ta((this.x+e.x)/2,(this.y+e.y)/2,(this.z+e.z)/2)}neg(){return new Ta(-this.x,-this.y,-this.z)}}class $u{constructor(e,t,i){this.tt=e,this.r=t,this.v=i}clone(){return new $u(this.tt,this.r,this.v)}sub(e){return new $u(this.tt,this.r.sub(e.r),this.v.sub(e.v))}}function WJ(n){let[e,[t,i,a],[r,s,o]]=n;return new $u(e,new Ta(t,i,a),new Ta(r,s,o))}function Wv(n,e,t,i){const a=i/(i+Fb),r=VJ(zf[t],e);return n.r.incr(r.r.mul(a)),n.v.incr(r.v.mul(a)),r}function Vp(n,e,t){const i=t.sub(n),a=i.quadrature();return i.mul(e/(a*Math.sqrt(a)))}class Hb{constructor(e){let t=new $u(e,new Ta(0,0,0),new Ta(0,0,0));this.Jupiter=Wv(t,e,Gn.Jupiter,sT),this.Saturn=Wv(t,e,Gn.Saturn,oT),this.Uranus=Wv(t,e,Gn.Uranus,lT),this.Neptune=Wv(t,e,Gn.Neptune,cT),this.Jupiter.r.decr(t.r),this.Jupiter.v.decr(t.v),this.Saturn.r.decr(t.r),this.Saturn.v.decr(t.v),this.Uranus.r.decr(t.r),this.Uranus.v.decr(t.v),this.Neptune.r.decr(t.r),this.Neptune.v.decr(t.v),this.Sun=new $u(e,t.r.mul(-1),t.v.mul(-1))}Acceleration(e){let t=Vp(e,Fb,this.Sun.r);return t.incr(Vp(e,sT,this.Jupiter.r)),t.incr(Vp(e,oT,this.Saturn.r)),t.incr(Vp(e,lT,this.Uranus.r)),t.incr(Vp(e,cT,this.Neptune.r)),t}}let O6=class I6{constructor(e,t,i,a){this.tt=e,this.r=t,this.v=i,this.a=a}clone(){return new I6(this.tt,this.r.clone(),this.v.clone(),this.a.clone())}},B6=class{constructor(e,t){this.bary=e,this.grav=t}};function Wx(n,e,t,i){return new Ta(e.x+n*(t.x+n*i.x/2),e.y+n*(t.y+n*i.y/2),e.z+n*(t.z+n*i.z/2))}function YD(n,e,t){return new Ta(e.x+n*t.x,e.y+n*t.y,e.z+n*t.z)}function gT(n,e){const t=n-e.tt,i=new Hb(n),a=Wx(t,e.r,e.v,e.a),r=i.Acceleration(a).mean(e.a),s=Wx(t,e.r,e.v,r),o=e.v.add(r.mul(t)),c=i.Acceleration(s),h=new O6(n,s,o,c);return new B6(i,h)}const YJ=[];function U6(n,e){const t=Math.floor(n);return t<0?0:t>=e?e-1:t}function vT(n){const e=WJ(n),t=new Hb(e.tt),i=e.r.add(t.Sun.r),a=e.v.add(t.Sun.v),r=t.Acceleration(i),s=new O6(e.tt,i,a,r);return new B6(t,s)}function qJ(n,e){const t=Su[0][0];if(eSu[mT-1][0])return null;const i=U6((e-t)/XJ,mT-1);if(!n[i]){const r=n[i]=[];r[0]=vT(Su[i]).grav,r[Io-1]=vT(Su[i+1]).grav;let s,o=r[0].tt;for(s=1;s0;--s)a[s]=gT(o-=Gf,a[s+1]).grav;for(s=Io-2;s>0;--s){const c=s/(Io-1);r[s].r=r[s].r.mul(1-c).add(a[s].r.mul(c)),r[s].v=r[s].v.mul(1-c).add(a[s].v.mul(c)),r[s].a=r[s].a.mul(1-c).add(a[s].a.mul(c))}}return n[i]}function qD(n,e,t){let i=vT(n);const a=Math.ceil((e-i.grav.tt)/t);for(let r=0;r1)throw"Object is too distant for light-travel solver.";const o=e.AddDays(-s);if(i=Math.abs(o.tt-t.tt),i<1e-9)return r;t=o}throw`Light-travel time solver did not converge: dt = ${i}`}class KJ{constructor(e,t,i,a){this.observerBody=e,this.targetBody=t,this.aberration=i,this.observerPos=a}Position(e){this.aberration&&(this.observerPos=Um(this.observerBody,e));const t=Um(this.targetBody,e);return new ws(t.x-this.observerPos.x,t.y-this.observerPos.y,t.z-this.observerPos.z,e)}}function JJ(n,e,t,i){const a=dh(n);if(C6(t)){const o=Um(t,a),c=Um(e,a);return new ws(o.x-c.x,o.y-c.y,o.z-c.z,a)}let r;r=Um(e,a);const s=new KJ(e,t,i,r);return jJ(o=>s.Position(o),a)}function QJ(n,e,t){const i=dh(e);switch(n){case Gn.Earth:return new ws(0,0,0,i);case Gn.Moon:return uT(i);default:const a=JJ(i,Gn.Earth,n,t);return a.t=i,a}}var ZD;(function(n){n[n.Pericenter=0]="Pericenter",n[n.Apocenter=1]="Apocenter"})(ZD||(ZD={}));function $J(n,e){return new wd([[e.rot[0][0]*n.rot[0][0]+e.rot[1][0]*n.rot[0][1]+e.rot[2][0]*n.rot[0][2],e.rot[0][1]*n.rot[0][0]+e.rot[1][1]*n.rot[0][1]+e.rot[2][1]*n.rot[0][2],e.rot[0][2]*n.rot[0][0]+e.rot[1][2]*n.rot[0][1]+e.rot[2][2]*n.rot[0][2]],[e.rot[0][0]*n.rot[1][0]+e.rot[1][0]*n.rot[1][1]+e.rot[2][0]*n.rot[1][2],e.rot[0][1]*n.rot[1][0]+e.rot[1][1]*n.rot[1][1]+e.rot[2][1]*n.rot[1][2],e.rot[0][2]*n.rot[1][0]+e.rot[1][2]*n.rot[1][1]+e.rot[2][2]*n.rot[1][2]],[e.rot[0][0]*n.rot[2][0]+e.rot[1][0]*n.rot[2][1]+e.rot[2][0]*n.rot[2][2],e.rot[0][1]*n.rot[2][0]+e.rot[1][1]*n.rot[2][1]+e.rot[2][1]*n.rot[2][2],e.rot[0][2]*n.rot[2][0]+e.rot[1][2]*n.rot[2][1]+e.rot[2][2]*n.rot[2][2]]])}function eQ(n,e,t){const i=p1(t)*Qu,a=Math.cos(i),r=Math.sin(i),s=(e+1)%3,o=(e+2)%3,c=e;let h=[[0,0,0],[0,0,0],[0,0,0]];return h[s][s]=a*n.rot[s][s]-r*n.rot[s][o],h[s][o]=r*n.rot[s][s]+a*n.rot[s][o],h[s][c]=n.rot[s][c],h[o][s]=a*n.rot[o][s]-r*n.rot[o][o],h[o][o]=r*n.rot[o][s]+a*n.rot[o][o],h[o][c]=n.rot[o][c],h[c][s]=a*n.rot[c][s]-r*n.rot[c][o],h[c][o]=r*n.rot[c][s]+a*n.rot[c][o],h[c][c]=n.rot[c][c],new wd(h)}function tQ(n,e){e=dh(e);const t=n.lat*Qu,i=n.lon*Qu,a=n.dist*Math.cos(t);return new ws(a*Math.cos(i),a*Math.sin(i),n.dist*Math.sin(t),e)}function nQ(n){n=dh(n);const e=D6(n,ol.From2000),t=HJ(n,ol.From2000);return $J(e,t)}var jD;(function(n){n.Penumbral="penumbral",n.Partial="partial",n.Annular="annular",n.Total="total"})(jD||(jD={}));var KD;(function(n){n[n.Invalid=0]="Invalid",n[n.Ascending=1]="Ascending",n[n.Descending=-1]="Descending"})(KD||(KD={}));function zb(n){return n instanceof cc?n:new cc(n instanceof Date?n:new Date(n))}function iQ(n,e=new H){const{x:t,y:i,z:a}=n;return e.set(t,i,a)}function aQ(n,e=new lt){const[t,i,a]=n.rot;return e.set(t[0],i[0],a[0],0,t[1],i[1],a[1],0,t[2],i[2],a[2],0,0,0,0,1)}function rQ(n,e=new lt){const t=zb(n),i=eQ(nQ(t),2,-15*FJ(t));return aQ(i,e)}function L6(n,e,t,i,a){const r=QJ(n,e,!1);return iQ(r,t),i!=null,t.normalize()}function sQ(n,e=new H,t){return L6(Gn.Sun,zb(n),e,t)}function oQ(n,e=new H,t){return L6(Gn.Moon,zb(n),e,t)}const lQ=`precision highp float; +precision highp sampler3D; + +#include "bruneton/definitions" +#include "bruneton/common" +#include "bruneton/precompute" + +uniform AtmosphereParameters ATMOSPHERE; + +uniform sampler2D transmittanceTexture; + +layout(location = 0) out vec4 outputColor; + +void main() { + vec3 deltaIrradiance; + vec3 irradiance; + deltaIrradiance = ComputeDirectIrradianceTexture( + ATMOSPHERE, + transmittanceTexture, + gl_FragCoord.xy + ); + irradiance = vec3(0.0); + outputColor = vec4(OUTPUT, 1.0); +} +`,cQ=`precision highp float; +precision highp sampler3D; + +#include "bruneton/definitions" +#include "bruneton/common" +#include "bruneton/precompute" + +uniform AtmosphereParameters ATMOSPHERE; + +uniform mat3 luminanceFromRadiance; +uniform sampler3D singleRayleighScatteringTexture; +uniform sampler3D singleMieScatteringTexture; +uniform sampler3D multipleScatteringTexture; +uniform int scatteringOrder; + +layout(location = 0) out vec4 outputColor; + +void main() { + vec3 deltaIrradiance; + vec3 irradiance; + deltaIrradiance = ComputeIndirectIrradianceTexture( + ATMOSPHERE, + singleRayleighScatteringTexture, + singleMieScatteringTexture, + multipleScatteringTexture, + gl_FragCoord.xy, + scatteringOrder + ); + irradiance = luminanceFromRadiance * deltaIrradiance; + outputColor = vec4(OUTPUT, 1.0); +} +`,uQ=`precision highp float; +precision highp sampler3D; + +#include "bruneton/definitions" +#include "bruneton/common" +#include "bruneton/precompute" + +uniform AtmosphereParameters ATMOSPHERE; + +uniform mat3 luminanceFromRadiance; +uniform sampler2D transmittanceTexture; +uniform sampler3D scatteringDensityTexture; +uniform int layer; + +layout(location = 0) out vec4 outputColor; + +void main() { + vec4 deltaMultipleScattering; + vec4 scattering; + float nu; + deltaMultipleScattering.rgb = ComputeMultipleScatteringTexture( + ATMOSPHERE, + transmittanceTexture, + scatteringDensityTexture, + vec3(gl_FragCoord.xy, float(layer) + 0.5), + nu + ); + deltaMultipleScattering.a = 1.0; + scattering = vec4( + luminanceFromRadiance * deltaMultipleScattering.rgb / RayleighPhaseFunction(nu), + 0.0 + ); + outputColor = OUTPUT; +} +`,hQ=`precision highp float; +precision highp sampler3D; + +#include "bruneton/definitions" +#include "bruneton/common" +#include "bruneton/precompute" + +uniform AtmosphereParameters ATMOSPHERE; + +uniform sampler2D transmittanceTexture; +uniform sampler3D singleRayleighScatteringTexture; +uniform sampler3D singleMieScatteringTexture; +uniform sampler3D multipleScatteringTexture; +uniform sampler2D irradianceTexture; +uniform int scatteringOrder; +uniform int layer; + +layout(location = 0) out vec4 scatteringDensity; + +void main() { + scatteringDensity.rgb = ComputeScatteringDensityTexture( + ATMOSPHERE, + transmittanceTexture, + singleRayleighScatteringTexture, + singleMieScatteringTexture, + multipleScatteringTexture, + irradianceTexture, + vec3(gl_FragCoord.xy, float(layer) + 0.5), + scatteringOrder + ); + scatteringDensity.a = 1.0; +} +`,fQ=`precision highp float; +precision highp sampler3D; + +#include "bruneton/definitions" +#include "bruneton/common" +#include "bruneton/precompute" + +uniform AtmosphereParameters ATMOSPHERE; + +uniform mat3 luminanceFromRadiance; +uniform sampler2D transmittanceTexture; +uniform int layer; + +layout(location = 0) out vec4 outputColor; + +void main() { + vec4 deltaRayleigh; + vec4 deltaMie; + vec4 scattering; + vec4 singleMieScattering; + ComputeSingleScatteringTexture( + ATMOSPHERE, + transmittanceTexture, + vec3(gl_FragCoord.xy, float(layer) + 0.5), + deltaRayleigh.rgb, + deltaMie.rgb + ); + deltaRayleigh.a = 1.0; + deltaMie.a = 1.0; + scattering = vec4( + luminanceFromRadiance * deltaRayleigh.rgb, + (luminanceFromRadiance * deltaMie.rgb).r + ); + singleMieScattering.rgb = luminanceFromRadiance * deltaMie.rgb; + singleMieScattering.a = 1.0; + outputColor = OUTPUT; +} +`,dQ=`precision highp float; +precision highp sampler3D; + +#include "bruneton/definitions" +#include "bruneton/common" +#include "bruneton/precompute" + +uniform AtmosphereParameters ATMOSPHERE; + +layout(location = 0) out vec4 transmittance; + +void main() { + transmittance.rgb = ComputeTransmittanceToTopAtmosphereBoundaryTexture( + ATMOSPHERE, + gl_FragCoord.xy + ); + transmittance.a = 1.0; +} +`,pQ=` + precision highp float; + in vec2 position; + void main() { + gl_Position = vec4(position, 1.0, 1.0); + } +`;function Yx(n,e,t){const i=new oi(e,t,{depthBuffer:!1,type:n,format:Rn}),a=i.texture;return a.minFilter=Bt,a.magFilter=Bt,a.wrapS=Vn,a.wrapT=Vn,a.colorSpace=pa,i}function $f(n,e,t,i){const a=new P3(e,t,i,{depthBuffer:!1,type:n,format:Rn}),r=a.texture;return r.minFilter=Bt,r.magFilter=Bt,r.wrapS=Vn,r.wrapT=Vn,r.wrapR=Vn,r.colorSpace=pa,a}function mQ(n){const e=n[Symbol.iterator]();return new Promise((t,i)=>{const a=()=>{try{const{value:r,done:s}=e.next();s===!0?t(r):kD(a)}catch(r){i(r instanceof Error?r:new Error)}};kD(a)})}async function JD(n,e,t){const{width:i,height:a}=e,r=t.type===sn?new Uint16Array(i*a*4):new Float32Array(i*a*4);await n.readRenderTargetPixelsAsync(e,0,0,e.width,e.height,r),t.userData.imageData=r}class gQ{constructor(e){this.lambdas=new H,this.luminanceFromRadiance=new kt,e===sn&&(this.opticalDepth=Yx(e,qd,Zd)),this.deltaIrradiance=Yx(e,Wd,Yd),this.deltaRayleighScattering=$f(e,Ou,Iu,Bu),this.deltaMieScattering=$f(e,Ou,Iu,Bu),this.deltaScatteringDensity=$f(e,Ou,Iu,Bu),this.deltaMultipleScattering=this.deltaRayleighScattering}dispose(){var e;(e=this.opticalDepth)==null||e.dispose(),this.deltaIrradiance.dispose(),this.deltaRayleighScattering.dispose(),this.deltaMieScattering.dispose(),this.deltaScatteringDensity.dispose()}}class vf extends cl{constructor(e){super({glslVersion:cs,vertexShader:pQ,...e,defines:{TRANSMITTANCE_TEXTURE_WIDTH:qd.toFixed(0),TRANSMITTANCE_TEXTURE_HEIGHT:Zd.toFixed(0),SCATTERING_TEXTURE_R_SIZE:Qy.toFixed(0),SCATTERING_TEXTURE_MU_SIZE:$y.toFixed(0),SCATTERING_TEXTURE_MU_S_SIZE:e_.toFixed(0),SCATTERING_TEXTURE_NU_SIZE:t_.toFixed(0),IRRADIANCE_TEXTURE_WIDTH:Wd.toFixed(0),IRRADIANCE_TEXTURE_HEIGHT:Yd.toFixed(0),...e.defines}})}set additive(e){this.transparent=e,this.blending=e?M3:ga,this.blendEquation=js,this.blendEquationAlpha=js,this.blendSrc=Uf,this.blendDst=Uf,this.blendSrcAlpha=Uf,this.blendDstAlpha=Uf}setUniforms(e){const t=this.uniforms;t.luminanceFromRadiance!=null&&t.luminanceFromRadiance.value.copy(e.luminanceFromRadiance),t.singleRayleighScatteringTexture!=null&&(t.singleRayleighScatteringTexture.value=e.deltaRayleighScattering.texture),t.singleMieScatteringTexture!=null&&(t.singleMieScatteringTexture.value=e.deltaMieScattering.texture),t.multipleScatteringTexture!=null&&(t.multipleScatteringTexture.value=e.deltaMultipleScattering.texture),t.scatteringDensityTexture!=null&&(t.scatteringDensityTexture.value=e.deltaScatteringDensity.texture),t.irradianceTexture!=null&&(t.irradianceTexture.value=e.deltaIrradiance.texture)}}class P6{constructor(e,{type:t=X8(e)?Sn:sn,combinedScattering:i=!0,higherOrderScattering:a=!0}={}){var r,s;this.transmittanceMaterial=new vf({fragmentShader:ki(dQ,{bruneton:{common:Ws,definitions:Ys,precompute:pf}})}),this.directIrradianceMaterial=new vf({fragmentShader:ki(lQ,{bruneton:{common:Ws,definitions:Ys,precompute:pf}}),uniforms:{transmittanceTexture:new ie(null)}}),this.singleScatteringMaterial=new vf({fragmentShader:ki(fQ,{bruneton:{common:Ws,definitions:Ys,precompute:pf}}),uniforms:{luminanceFromRadiance:new ie(new kt),transmittanceTexture:new ie(null),layer:new ie(0)}}),this.scatteringDensityMaterial=new vf({fragmentShader:ki(hQ,{bruneton:{common:Ws,definitions:Ys,precompute:pf}}),uniforms:{transmittanceTexture:new ie(null),singleRayleighScatteringTexture:new ie(null),singleMieScatteringTexture:new ie(null),multipleScatteringTexture:new ie(null),irradianceTexture:new ie(null),scatteringOrder:new ie(0),layer:new ie(0)}}),this.indirectIrradianceMaterial=new vf({fragmentShader:ki(cQ,{bruneton:{common:Ws,definitions:Ys,precompute:pf}}),uniforms:{luminanceFromRadiance:new ie(new kt),singleRayleighScatteringTexture:new ie(null),singleMieScatteringTexture:new ie(null),multipleScatteringTexture:new ie(null),scatteringOrder:new ie(0)}}),this.multipleScatteringMaterial=new vf({fragmentShader:ki(uQ,{bruneton:{common:Ws,definitions:Ys,precompute:pf}}),uniforms:{luminanceFromRadiance:new ie(new kt),transmittanceTexture:new ie(null),scatteringDensityTexture:new ie(null),layer:new ie(0)}}),this.mesh=new Xn(new Us(2,2)),this.scene=new al().add(this.mesh),this.camera=new so,this.updating=!1,this.renderer=e,this.type=t,this.transmittanceRenderTarget=Yx(t,qd,Zd),this.scatteringRenderTarget=$f(t,Ou,Iu,Bu),this.irradianceRenderTarget=Yx(t,Wd,Yd),i||(this.singleMieScatteringRenderTarget=$f(t,Ou,Iu,Bu)),a&&(this.higherOrderScatteringRenderTarget=$f(t,Ou,Iu,Bu)),this.textures={transmittanceTexture:this.transmittanceRenderTarget.texture,scatteringTexture:this.scatteringRenderTarget.texture,irradianceTexture:this.irradianceRenderTarget.texture,singleMieScatteringTexture:(r=this.singleMieScatteringRenderTarget)==null?void 0:r.texture,higherOrderScatteringTexture:(s=this.higherOrderScatteringRenderTarget)==null?void 0:s.texture}}render3DRenderTarget(e,t){for(let i=0;i{this.dispose(e),this.disposeQueue=void 0};return}const{textures:t=!0}=e;t||(this.transmittanceRenderTarget.textures.splice(0,1),this.scatteringRenderTarget.textures.splice(0,1),this.irradianceRenderTarget.textures.splice(0,1),(i=this.singleMieScatteringRenderTarget)==null||i.textures.splice(0,1),(a=this.higherOrderScatteringRenderTarget)==null||a.textures.splice(0,1)),this.transmittanceRenderTarget.dispose(),this.scatteringRenderTarget.dispose(),this.irradianceRenderTarget.dispose(),(r=this.singleMieScatteringRenderTarget)==null||r.dispose(),(s=this.higherOrderScatteringRenderTarget)==null||s.dispose(),this.transmittanceMaterial.dispose(),this.directIrradianceMaterial.dispose(),this.singleScatteringMaterial.dispose(),this.scatteringDensityMaterial.dispose(),this.indirectIrradianceMaterial.dispose(),this.multipleScatteringMaterial.dispose(),this.mesh.geometry.dispose()}}function vQ(n){var e=[];if(n.length===0)return"";if(typeof n[0]!="string")throw new TypeError("Url must be a string. Received "+n[0]);if(n[0].match(/^[^/:]+:\/*$/)&&n.length>1){var t=n.shift();n[0]=t+n[0]}n[0].match(/^file:\/\/\//)?n[0]=n[0].replace(/^([^/:]+):\/*/,"$1:///"):n[0]=n[0].replace(/^([^/:]+):\/*/,"$1://");for(var i=0;i0&&(a=a.replace(/^[\/]+/,"")),i0?"?":"")+s.join("&"),r}function xQ(){var n;return typeof arguments[0]=="object"?n=arguments[0]:n=[].slice.call(arguments),vQ(n)}const QD={width:qd,height:Zd},xf={width:Ou,height:Iu,depth:Bu},$D={width:Wd,height:Yd};class F6 extends yi{constructor({format:e="exr",type:t=sn,combinedScattering:i=!0,higherOrderScattering:a=!0}={},r){super(r),this.format=e,this.type=t,this.combinedScattering=i,this.higherOrderScattering=a}setType(e){return this.type=X8(e)?Sn:sn,this}setTypeFromRenderer(e){return this.setType(e)}load(e,t,i,a){const r={},s=({key:o,loader:c,path:h})=>(c.setRequestHeader(this.requestHeader),c.setPath(this.path),c.setWithCredentials(this.withCredentials),c.load(xQ(e,h),f=>{f.type=this.type,this.type===Sn&&(f.image.data=new Float32Array(new ul(f.image.data.buffer))),f.minFilter=Bt,f.magFilter=Bt,r[`${o}Texture`]=f,r.irradianceTexture!=null&&r.scatteringTexture!=null&&r.transmittanceTexture!=null&&(this.combinedScattering||r.singleMieScatteringTexture!=null)&&(!this.higherOrderScattering||r.higherOrderScatteringTexture!=null)&&(t==null||t(r))},i,a));return this.format==="exr"?{transmittanceTexture:s({key:"transmittance",loader:new VD(QD,this.manager),path:"transmittance.exr"}),scatteringTexture:s({key:"scattering",loader:new _2(xf,this.manager),path:"scattering.exr"}),irradianceTexture:s({key:"irradiance",loader:new VD($D,this.manager),path:"irradiance.exr"}),singleMieScatteringTexture:this.combinedScattering?void 0:s({key:"singleMieScattering",loader:new _2(xf,this.manager),path:"single_mie_scattering.exr"}),higherOrderScatteringTexture:this.higherOrderScattering?s({key:"higherOrderScattering",loader:new _2(xf,this.manager),path:"higher_order_scattering.exr"}):void 0}:{transmittanceTexture:s({key:"transmittance",loader:new du(Pa,Gp,QD,this.manager),path:"transmittance.bin"}),scatteringTexture:s({key:"scattering",loader:new du(is,Gp,xf,this.manager),path:"scattering.bin"}),irradianceTexture:s({key:"irradiance",loader:new du(Pa,Gp,$D,this.manager),path:"irradiance.bin"}),singleMieScatteringTexture:this.combinedScattering?void 0:s({key:"singleMieScattering",loader:new du(is,Gp,xf,this.manager),path:"single_mie_scattering.bin"}),higherOrderScatteringTexture:this.higherOrderScattering?s({key:"higherOrderScattering",loader:new du(is,Gp,xf,this.manager),path:"higher_order_scattering.bin"}):void 0}}}const yQ=`precision highp float; +precision highp sampler3D; + +#define RECIPROCAL_PI 0.3183098861837907 + +#include "core/raySphereIntersection" + +#include "bruneton/definitions" + +uniform AtmosphereParameters ATMOSPHERE; +uniform vec3 SUN_SPECTRAL_RADIANCE_TO_LUMINANCE; +uniform vec3 SKY_SPECTRAL_RADIANCE_TO_LUMINANCE; + +uniform sampler2D transmittance_texture; +uniform sampler3D scattering_texture; +uniform sampler2D irradiance_texture; +uniform sampler3D single_mie_scattering_texture; +uniform sampler3D higher_order_scattering_texture; + +#include "bruneton/common" +#include "bruneton/runtime" + +#include "sky" + +uniform vec3 sunDirection; +uniform vec3 moonDirection; +uniform float moonAngularRadius; +uniform float lunarRadianceScale; +uniform vec3 groundAlbedo; + +#ifdef HAS_SHADOW_LENGTH +uniform sampler2D shadowLengthBuffer; +#endif // HAS_SHADOW_LENGTH + +in vec2 vUv; +in vec3 vCameraPosition; +in vec3 vRayDirection; + +layout(location = 0) out vec4 outputColor; + +#include + +void main() { + float shadowLength = 0.0; + #ifdef HAS_SHADOW_LENGTH + shadowLength = texture(shadowLengthBuffer, vUv).r; + #endif // HAS_SHADOW_LENGTH + + vec3 cameraPosition = vCameraPosition; + vec3 rayDirection = normalize(vRayDirection); + + #ifdef GROUND_ALBEDO + + float r = length(cameraPosition); + float mu = dot(cameraPosition, rayDirection) / r; + bool intersectsGround = RayIntersectsGround(ATMOSPHERE, r, mu); + if (intersectsGround) { + float distanceToGround = raySphereFirstIntersection( + cameraPosition, + rayDirection, + ATMOSPHERE.bottom_radius + ); + vec3 groundPosition = rayDirection * distanceToGround + cameraPosition; + vec3 surfaceNormal = normalize(groundPosition); + vec3 skyIrradiance; + vec3 sunIrradiance = GetSunAndSkyIrradiance( + cameraPosition, + surfaceNormal, + sunDirection, + skyIrradiance + ); + vec3 transmittance; + vec3 inscatter = GetSkyRadianceToPoint( + cameraPosition, + ATMOSPHERE.bottom_radius * surfaceNormal, + shadowLength, + sunDirection, + transmittance + ); + vec3 radiance = groundAlbedo * RECIPROCAL_PI * (sunIrradiance + skyIrradiance); + outputColor.rgb = radiance * transmittance + inscatter; + } else { + outputColor.rgb = getSkyRadiance( + cameraPosition, + rayDirection, + shadowLength, + sunDirection, + moonDirection, + moonAngularRadius, + lunarRadianceScale + ); + } + + #else // GROUND_ALBEDO + + outputColor.rgb = getSkyRadiance( + cameraPosition, + rayDirection, + shadowLength, + sunDirection, + moonDirection, + moonAngularRadius, + lunarRadianceScale + ); + + #endif // GROUND_ALBEDO + + outputColor.a = 1.0; + + #include +} +`,_Q=`precision highp float; +precision highp sampler3D; + +uniform mat4 inverseProjectionMatrix; +uniform mat4 inverseViewMatrix; +uniform vec3 cameraPosition; +uniform mat4 worldToECEFMatrix; +uniform vec3 altitudeCorrection; + +layout(location = 0) in vec3 position; + +out vec2 vUv; +out vec3 vCameraPosition; +out vec3 vRayDirection; + +void getCameraRay(out vec3 origin, out vec3 direction) { + bool isPerspective = inverseProjectionMatrix[2][3] != 0.0; // 4th entry in the 3rd column + + if (isPerspective) { + // Calculate the camera ray for a perspective camera. + vec4 viewPosition = inverseProjectionMatrix * vec4(position, 1.0); + vec4 worldDirection = inverseViewMatrix * vec4(viewPosition.xyz, 0.0); + origin = cameraPosition; + direction = worldDirection.xyz; + } else { + // Unprojected points to calculate direction. + vec4 nearPoint = inverseProjectionMatrix * vec4(position.xy, -1.0, 1.0); + vec4 farPoint = inverseProjectionMatrix * vec4(position.xy, -0.9, 1.0); + nearPoint /= nearPoint.w; + farPoint /= farPoint.w; + + // Calculate world values + vec4 worldDirection = inverseViewMatrix * vec4(farPoint.xyz - nearPoint.xyz, 0.0); + vec4 worldOrigin = inverseViewMatrix * nearPoint; + + // Outputs + direction = worldDirection.xyz; + origin = worldOrigin.xyz; + } +} + +void main() { + vUv = position.xy * 0.5 + 0.5; + + vec3 direction, origin; + getCameraRay(origin, direction); + + vec3 cameraPositionECEF = (worldToECEFMatrix * vec4(origin, 1.0)).xyz; + vCameraPosition = (cameraPositionECEF + altitudeCorrection) * METER_TO_LENGTH_UNIT; + vRayDirection = (worldToECEFMatrix * vec4(direction, 0.0)).xyz; + + gl_Position = vec4(position.xy, 1.0, 1.0); +} +`;var SQ=Object.defineProperty,Gb=(n,e,t,i)=>{for(var a=void 0,r=n.length-1,s;r>=0;r--)(s=n[r])&&(a=s(e,t,a)||a);return a&&SQ(e,t,a),a};const H6={...Pb,sun:!0,moon:!0,moonAngularRadius:.0045,lunarRadianceScale:1,ground:!0,groundAlbedo:new dt(0)};class i_ extends X0{constructor(e){const{sun:t,moon:i,moonDirection:a,moonAngularRadius:r,lunarRadianceScale:s,ground:o,groundAlbedo:c,...h}={...H6,...e};super({name:"SkyMaterial",glslVersion:cs,vertexShader:_Q,fragmentShader:ki(yQ,{core:{raySphereIntersection:Jy},bruneton:{common:Ws,definitions:Ys,runtime:n_},sky:T6}),...h,uniforms:{inverseProjectionMatrix:new ie(new lt),inverseViewMatrix:new ie(new lt),moonDirection:new ie((a==null?void 0:a.clone())??new H),moonAngularRadius:new ie(r),lunarRadianceScale:new ie(s),groundAlbedo:new ie(c.clone()),shadowLengthBuffer:new ie(null),...h.uniforms},defines:{PERSPECTIVE_CAMERA:"1"},depthTest:!0}),this.shadowLength=null,this.sun=t,this.moon=i,this.ground=o}onBeforeRender(e,t,i,a,r,s){super.onBeforeRender(e,t,i,a,r,s);const{uniforms:o,defines:c}=this;o.inverseProjectionMatrix.value.copy(i.projectionMatrixInverse),o.inverseViewMatrix.value.copy(i.matrixWorld);const h=c.PERSPECTIVE_CAMERA!=null,f=i.isPerspectiveCamera===!0;f!==h&&(f?c.PERSPECTIVE_CAMERA="1":delete c.PERSPECTIVE_CAMERA,this.needsUpdate=!0);const d=this.groundAlbedo,m=c.GROUND_ALBEDO!=null,g=d.r!==0||d.g!==0||d.b!==0;g!==m&&(g?this.defines.GROUND_ALBEDO="1":delete this.defines.GROUND_ALBEDO,this.needsUpdate=!0);const y=this.shadowLength,E=c.HAS_SHADOW_LENGTH!=null,S=y!=null;S!==E&&(S?c.HAS_SHADOW_LENGTH="1":(delete c.HAS_SHADOW_LENGTH,o.shadowLengthBuffer.value=null),this.needsUpdate=!0),S&&(o.shadowLengthBuffer.value=y.map)}get moonDirection(){return this.uniforms.moonDirection.value}get moonAngularRadius(){return this.uniforms.moonAngularRadius.value}set moonAngularRadius(e){this.uniforms.moonAngularRadius.value=e}get lunarRadianceScale(){return this.uniforms.lunarRadianceScale.value}set lunarRadianceScale(e){this.uniforms.lunarRadianceScale.value=e}get groundAlbedo(){return this.uniforms.groundAlbedo.value}}Gb([An("SUN")],i_.prototype,"sun");Gb([An("MOON")],i_.prototype,"moon");Gb([An("GROUND")],i_.prototype,"ground");class AQ extends Xt{constructor(e){super();const t=new Int16Array(e),i=new Uint8Array(e),a=new Xu(t,5),r=new Xu(i,10);this.setAttribute("position",new Ns(a,3,0,!0)),this.setAttribute("magnitude",new Ns(r,1,6,!0)),this.setAttribute("color",new Ns(r,3,7,!0)),this.boundingSphere=new zi(new H,1)}}const EQ=`precision highp float; +precision highp sampler3D; + +#include "bruneton/definitions" + +uniform AtmosphereParameters ATMOSPHERE; +uniform vec3 SUN_SPECTRAL_RADIANCE_TO_LUMINANCE; +uniform vec3 SKY_SPECTRAL_RADIANCE_TO_LUMINANCE; + +uniform sampler2D transmittance_texture; +uniform sampler3D scattering_texture; +uniform sampler2D irradiance_texture; +uniform sampler3D single_mie_scattering_texture; +uniform sampler3D higher_order_scattering_texture; + +#include "bruneton/common" +#include "bruneton/runtime" + +uniform vec3 sunDirection; + +in vec3 vCameraPosition; +in vec3 vRayDirection; + +layout(location = 0) out vec4 outputColor; + +#include + +in vec3 vColor; + +void main() { + #if !defined(PERSPECTIVE_CAMERA) + outputColor = vec4(0.0); + discard; // Rendering celestial objects without perspective doesn't make sense. + #endif // !defined(PERSPECTIVE_CAMERA) + + #ifdef BACKGROUND + vec3 rayDirection = normalize(vRayDirection); + float r = length(vCameraPosition); + float mu = dot(vCameraPosition, rayDirection) / r; + + if (RayIntersectsGround(ATMOSPHERE, r, mu)) { + discard; + } + + vec3 transmittance; + vec3 radiance = GetSkyRadiance( + vCameraPosition, + normalize(vRayDirection), + 0.0, // Shadow length + sunDirection, + transmittance + ); + radiance += transmittance * vColor; + outputColor = vec4(radiance, 1.0); + #else // BACKGROUND + outputColor = vec4(vColor, 1.0); + #endif // BACKGROUND + + #include +} +`,TQ=`precision highp float; +precision highp sampler3D; + +#define saturate(x) clamp(x, 0.0, 1.0) + +uniform mat4 projectionMatrix; +uniform mat4 modelViewMatrix; +uniform mat4 viewMatrix; +uniform mat4 matrixWorld; +uniform vec3 cameraPosition; +uniform float cameraFar; +uniform mat4 worldToECEFMatrix; +uniform vec3 altitudeCorrection; +uniform float pointSize; +uniform vec2 magnitudeRange; +uniform float intensity; + +layout(location = 0) in vec3 position; +layout(location = 1) in float magnitude; +layout(location = 2) in vec3 color; + +out vec3 vCameraPosition; +out vec3 vRayDirection; +out vec3 vEllipsoidCenter; +out vec3 vColor; + +void main() { + // Magnitude is stored between 0 to 1 within the given range. + float m = mix(magnitudeRange.x, magnitudeRange.y, magnitude); + vec3 v = pow(vec3(10.0), -vec3(magnitudeRange, m) / 2.5); + vColor = vec3(intensity * color); + vColor *= saturate((v.z - v.y) / (v.x - v.y)); + + #ifdef BACKGROUND + vec3 worldDirection = normalize(matrixWorld * vec4(position, 1.0)).xyz; + vec3 cameraPositionECEF = (worldToECEFMatrix * vec4(cameraPosition, 1.0)).xyz; + vCameraPosition = (cameraPositionECEF + altitudeCorrection) * METER_TO_LENGTH_UNIT; + vRayDirection = (worldToECEFMatrix * vec4(worldDirection, 0.0)).xyz; + gl_Position = + projectionMatrix * viewMatrix * vec4(cameraPosition + worldDirection * cameraFar, 1.0); + #else // BACKGROUND + gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0); + #endif // BACKGROUND + + gl_PointSize = pointSize; +} +`;var bQ=Object.defineProperty,z6=(n,e,t,i)=>{for(var a=void 0,r=n.length-1,s;r>=0;r--)(s=n[r])&&(a=s(e,t,a)||a);return a&&bQ(e,t,a),a};const G6={...Pb,pointSize:1,intensity:1,background:!0,ground:!0};let Vb=class extends X0{constructor(e){const{pointSize:t,radianceScale:i,intensity:a,background:r,ground:s,...o}={...G6,...e};super({name:"StarsMaterial",glslVersion:cs,vertexShader:TQ,fragmentShader:ki(EQ,{bruneton:{common:Ws,definitions:Ys,runtime:n_}}),...o,uniforms:{projectionMatrix:new ie(new lt),modelViewMatrix:new ie(new lt),viewMatrix:new ie(new lt),matrixWorld:new ie(new lt),cameraFar:new ie(0),pointSize:new ie(0),magnitudeRange:new ie(new Ee(-2,8)),intensity:new ie(i??a),...o.uniforms},defines:{PERSPECTIVE_CAMERA:"1"}}),this.pointSize=t,this.background=r,this.ground=s}onBeforeRender(e,t,i,a,r,s){super.onBeforeRender(e,t,i,a,r,s);const o=this.uniforms;o.projectionMatrix.value.copy(i.projectionMatrix),o.modelViewMatrix.value.copy(i.modelViewMatrix),o.viewMatrix.value.copy(i.matrixWorldInverse),o.matrixWorld.value.copy(r.matrixWorld),o.cameraFar.value=i.far,o.pointSize.value=this.pointSize*e.getPixelRatio();const c=i.isPerspectiveCamera===!0;this.defines.PERSPECTIVE_CAMERA!=null!==c&&(c?this.defines.PERSPECTIVE_CAMERA="1":delete this.defines.PERSPECTIVE_CAMERA,this.needsUpdate=!0)}get magnitudeRange(){return this.uniforms.magnitudeRange.value}get radianceScale(){return this.intensity}set radianceScale(e){this.intensity=e}get intensity(){return this.uniforms.intensity.value}set intensity(e){this.uniforms.intensity.value=e}};z6([An("BACKGROUND")],Vb.prototype,"background");z6([An("GROUND")],Vb.prototype,"ground");function eh(){return eh=Object.assign?Object.assign.bind():function(n){for(var e=1;eMath.PI/2}function wQ(n,e,t,i){const a=W0.setFromMatrixPosition(n.matrixWorld),r=a.clone();r.project(e),eN.set(r.x,r.y),t.setFromCamera(eN,e);const s=t.intersectObjects(i,!0);if(s.length){const o=s[0].distance;return a.distanceTo(t.ray.origin)Math.abs(n)<1e-10?0:n;function V6(n,e,t=""){let i="matrix3d(";for(let a=0;a!==16;a++)i+=xT(e[a]*n.elements[a])+(a!==15?",":")");return t+i}const OQ=(n=>e=>V6(e,n))([1,-1,1,1,1,-1,1,1,1,-1,1,1,1,-1,1,1]),IQ=(n=>(e,t)=>V6(e,n(t),"translate(-50%,-50%)"))(n=>[1/n,1/n,1/n,1,-1/n,-1/n,-1/n,-1,1/n,1/n,1/n,1,1,1,1,1]);function BQ(n){return n&&typeof n=="object"&&"current"in n}const UQ=he.forwardRef(({children:n,eps:e=.001,style:t,className:i,prepend:a,center:r,fullscreen:s,portal:o,distanceFactor:c,sprite:h=!1,transform:f=!1,occlude:d,onOcclude:m,castShadow:g,receiveShadow:y,material:E,geometry:S,zIndexRange:v=[16777271,0],calculatePosition:_=CQ,as:A="div",wrapperClass:b,pointerEvents:O="auto",...N},L)=>{const{gl:B,camera:w,scene:D,size:G,raycaster:J,events:$,viewport:se}=jn(),[le]=he.useState(()=>document.createElement(A)),q=he.useRef(null),te=he.useRef(null),ee=he.useRef(0),de=he.useRef([0,0]),ue=he.useRef(null),Pe=he.useRef(null),He=(o==null?void 0:o.current)||$.connected||B.domElement.parentNode,Ke=he.useRef(null),nt=he.useRef(!1),xt=he.useMemo(()=>d&&d!=="blending"||Array.isArray(d)&&d.length&&BQ(d[0]),[d]);he.useLayoutEffect(()=>{const at=B.domElement;d&&d==="blending"?(at.style.zIndex=`${Math.floor(v[0]/2)}`,at.style.position="absolute",at.style.pointerEvents="none"):(at.style.zIndex=null,at.style.position=null,at.style.pointerEvents=null)},[d]),he.useLayoutEffect(()=>{if(te.current){const at=q.current=f5.createRoot(le);if(D.updateMatrixWorld(),f)le.style.cssText="position:absolute;top:0;left:0;pointer-events:none;overflow:hidden;";else{const ft=_(te.current,w,G);le.style.cssText=`position:absolute;top:0;left:0;transform:translate3d(${ft[0]}px,${ft[1]}px,0);transform-origin:0 0;`}return He&&(a?He.prepend(le):He.appendChild(le)),()=>{He&&He.removeChild(le),at.unmount()}}},[He,f]),he.useLayoutEffect(()=>{b&&(le.className=b)},[b]);const fe=he.useMemo(()=>f?{position:"absolute",top:0,left:0,width:G.width,height:G.height,transformStyle:"preserve-3d",pointerEvents:"none"}:{position:"absolute",transform:r?"translate3d(-50%,-50%,0)":"none",...s&&{top:-G.height/2,left:-G.width/2,width:G.width,height:G.height},...t},[t,r,s,G,f]),Be=he.useMemo(()=>({position:"absolute",pointerEvents:O}),[O]);he.useLayoutEffect(()=>{if(nt.current=!1,f){var at;(at=q.current)==null||at.render(he.createElement("div",{ref:ue,style:fe},he.createElement("div",{ref:Pe,style:Be},he.createElement("div",{ref:L,className:i,style:t,children:n}))))}else{var ft;(ft=q.current)==null||ft.render(he.createElement("div",{ref:L,style:fe,className:i,children:n}))}});const Je=he.useRef(!0);Ls(at=>{if(te.current){w.updateMatrixWorld(),te.current.updateWorldMatrix(!0,!1);const ft=f?de.current:_(te.current,w,G);if(f||Math.abs(ee.current-w.zoom)>e||Math.abs(de.current[0]-ft[0])>e||Math.abs(de.current[1]-ft[1])>e){const ht=RQ(te.current,w);let et=!1;xt&&(Array.isArray(d)?et=d.map(ze=>ze.current):d!=="blending"&&(et=[D]));const Re=Je.current;if(et){const ze=wQ(te.current,w,J,et);Je.current=ze&&!ht}else Je.current=!ht;Re!==Je.current&&(m?m(!Je.current):le.style.display=Je.current?"block":"none");const Z=Math.floor(v[0]/2),Ue=d?xt?[v[0],Z]:[Z-1,0]:v;if(le.style.zIndex=`${NQ(te.current,w,Ue)}`,f){const[ze,Qe]=[G.width/2,G.height/2],Ye=w.projectionMatrix.elements[5]*Qe,{isOrthographicCamera:ot,top:rt,left:mt,bottom:j,right:P}=w,pe=OQ(w.matrixWorldInverse),Ie=ot?`scale(${Ye})translate(${xT(-(P+mt)/2)}px,${xT((rt+j)/2)}px)`:`translateZ(${Ye}px)`;let Ge=te.current.matrixWorld;h&&(Ge=w.matrixWorldInverse.clone().transpose().copyPosition(Ge).scale(te.current.scale),Ge.elements[3]=Ge.elements[7]=Ge.elements[11]=0,Ge.elements[15]=1),le.style.width=G.width+"px",le.style.height=G.height+"px",le.style.perspective=ot?"":`${Ye}px`,ue.current&&Pe.current&&(ue.current.style.transform=`${Ie}${pe}translate(${ze}px,${Qe}px)`,Pe.current.style.transform=IQ(Ge,1/((c||10)/400)))}else{const ze=c===void 0?1:DQ(te.current,w)*c;le.style.transform=`translate3d(${ft[0]}px,${ft[1]}px,0) scale(${ze})`}de.current=ft,ee.current=w.zoom}}if(!xt&&Ke.current&&!nt.current)if(f){if(ue.current){const ft=ue.current.children[0];if(ft!=null&&ft.clientWidth&&ft!=null&&ft.clientHeight){const{isOrthographicCamera:ht}=w;if(ht||S)N.scale&&(Array.isArray(N.scale)?N.scale instanceof H?Ke.current.scale.copy(N.scale.clone().divideScalar(1)):Ke.current.scale.set(1/N.scale[0],1/N.scale[1],1/N.scale[2]):Ke.current.scale.setScalar(1/N.scale));else{const et=(c||10)/400,Re=ft.clientWidth*et,Z=ft.clientHeight*et;Ke.current.scale.set(Re,Z,1)}nt.current=!0}}}else{const ft=le.children[0];if(ft!=null&&ft.clientWidth&&ft!=null&&ft.clientHeight){const ht=1/se.factor,et=ft.clientWidth*ht,Re=ft.clientHeight*ht;Ke.current.scale.set(et,Re,1),nt.current=!0}Ke.current.lookAt(at.camera.position)}});const ve=he.useMemo(()=>({vertexShader:f?void 0:` + /* + This shader is from the THREE's SpriteMaterial. + We need to turn the backing plane into a Sprite + (make it always face the camera) if "transfrom" + is false. + */ + #include + + void main() { + vec2 center = vec2(0., 1.); + float rotation = 0.0; + + // This is somewhat arbitrary, but it seems to work well + // Need to figure out how to derive this dynamically if it even matters + float size = 0.03; + + vec4 mvPosition = modelViewMatrix * vec4( 0.0, 0.0, 0.0, 1.0 ); + vec2 scale; + scale.x = length( vec3( modelMatrix[ 0 ].x, modelMatrix[ 0 ].y, modelMatrix[ 0 ].z ) ); + scale.y = length( vec3( modelMatrix[ 1 ].x, modelMatrix[ 1 ].y, modelMatrix[ 1 ].z ) ); + + bool isPerspective = isPerspectiveMatrix( projectionMatrix ); + if ( isPerspective ) scale *= - mvPosition.z; + + vec2 alignedPosition = ( position.xy - ( center - vec2( 0.5 ) ) ) * scale * size; + vec2 rotatedPosition; + rotatedPosition.x = cos( rotation ) * alignedPosition.x - sin( rotation ) * alignedPosition.y; + rotatedPosition.y = sin( rotation ) * alignedPosition.x + cos( rotation ) * alignedPosition.y; + mvPosition.xy += rotatedPosition; + + gl_Position = projectionMatrix * mvPosition; + } + `,fragmentShader:` + void main() { + gl_FragColor = vec4(0.0, 0.0, 0.0, 0.0); + } + `}),[f]);return he.createElement("group",eh({},N,{ref:te}),d&&!xt&&he.createElement("mesh",{castShadow:g,receiveShadow:y,ref:Ke},S||he.createElement("planeGeometry",null),E||he.createElement("shaderMaterial",{side:da,vertexShader:ve.vertexShader,fragmentShader:ve.fragmentShader})))}),Xb=parseInt(_c.replace(/\D+/g,""));function tN(n,e){if(e===W5)return console.warn("THREE.BufferGeometryUtils.toTrianglesDrawMode(): Geometry already defined as triangles."),n;if(e===Mx||e===I3){let t=n.getIndex();if(t===null){const s=[],o=n.getAttribute("position");if(o!==void 0){for(let c=0;c>>1|(ii&21845)<<1;Hl=(Hl&52428)>>>2|(Hl&13107)<<2,Hl=(Hl&61680)>>>4|(Hl&3855)<<4,_T[ii]=((Hl&65280)>>>8|(Hl&255)<<8)>>>1}var Lm=function(n,e,t){for(var i=n.length,a=0,r=new Ql(e);a>>c]=h}else for(o=new Ql(i),a=0;a>>15-n[a]);return o},Y0=new $r(288);for(var ii=0;ii<144;++ii)Y0[ii]=8;for(var ii=144;ii<256;++ii)Y0[ii]=9;for(var ii=256;ii<280;++ii)Y0[ii]=7;for(var ii=280;ii<288;++ii)Y0[ii]=8;var Z6=new $r(32);for(var ii=0;ii<32;++ii)Z6[ii]=5;var zQ=Lm(Y0,9,1),GQ=Lm(Z6,5,1),A2=function(n){for(var e=n[0],t=1;te&&(e=n[t]);return e},_s=function(n,e,t){var i=e/8|0;return(n[i]|n[i+1]<<8)>>(e&7)&t},E2=function(n,e){var t=e/8|0;return(n[t]|n[t+1]<<8|n[t+2]<<16)>>(e&7)},VQ=function(n){return(n/8|0)+(n&7&&1)},kQ=function(n,e,t){(t==null||t>n.length)&&(t=n.length);var i=new(n instanceof Ql?Ql:n instanceof yT?yT:$r)(t-e);return i.set(n.subarray(e,t)),i},XQ=function(n,e,t){var i=n.length;if(!i||t&&!t.l&&i<5)return e||new $r(0);var a=!e||t,r=!t||t.i;t||(t={}),e||(e=new $r(i*3));var s=function(fe){var Be=e.length;if(fe>Be){var Je=new $r(Math.max(Be*2,fe));Je.set(e),e=Je}},o=t.f||0,c=t.p||0,h=t.b||0,f=t.l,d=t.d,m=t.m,g=t.n,y=i*8;do{if(!f){t.f=o=_s(n,c,1);var E=_s(n,c+1,3);if(c+=3,E)if(E==1)f=zQ,d=GQ,m=9,g=5;else if(E==2){var A=_s(n,c,31)+257,b=_s(n,c+10,15)+4,O=A+_s(n,c+5,31)+1;c+=14;for(var N=new $r(O),L=new $r(19),B=0;B>>4;if(S<16)N[B++]=S;else{var $=0,se=0;for(S==16?(se=3+_s(n,c,3),c+=2,$=N[B-1]):S==17?(se=3+_s(n,c,7),c+=3):S==18&&(se=11+_s(n,c,127),c+=7);se--;)N[B++]=$}}var le=N.subarray(0,A),q=N.subarray(A);m=A2(le),g=A2(q),f=Lm(le,m,1),d=Lm(q,g,1)}else throw"invalid block type";else{var S=VQ(c)+4,v=n[S-4]|n[S-3]<<8,_=S+v;if(_>i){if(r)throw"unexpected EOF";break}a&&s(h+v),e.set(n.subarray(S,_),h),t.b=h+=v,t.p=c=_*8;continue}if(c>y){if(r)throw"unexpected EOF";break}}a&&s(h+131072);for(var te=(1<>>4;if(c+=$&15,c>y){if(r)throw"unexpected EOF";break}if(!$)throw"invalid length/literal";if(ue<256)e[h++]=ue;else if(ue==256){de=c,f=null;break}else{var Pe=ue-254;if(ue>264){var B=ue-257,He=k6[B];Pe=_s(n,c,(1<>>4;if(!Ke)throw"invalid distance";c+=Ke&15;var q=HQ[nt];if(nt>3){var He=X6[nt];q+=E2(n,c)&(1<y){if(r)throw"unexpected EOF";break}a&&s(h+131072);for(var xt=h+Pe;h>>4>7||(n[0]<<8|n[1])%31)throw"invalid zlib data";if(n[1]&32)throw"invalid zlib data: preset dictionaries not supported"};function Yv(n,e){return XQ((YQ(n),n.subarray(2,-4)),e)}var qQ=typeof TextDecoder<"u"&&new TextDecoder,ZQ=0;try{qQ.decode(WQ,{stream:!0}),ZQ=1}catch{}const jQ=n=>n&&n.isCubeTexture;class KQ extends Xn{constructor(e,t){var i,a;const r=jQ(e),o=((a=r?(i=e.image[0])==null?void 0:i.width:e.image.width)!=null?a:1024)/4,c=Math.floor(Math.log2(o)),h=Math.pow(2,c),f=3*Math.max(h,16*7),d=4*h,m=[r?"#define ENVMAP_TYPE_CUBE":"",`#define CUBEUV_TEXEL_WIDTH ${1/f}`,`#define CUBEUV_TEXEL_HEIGHT ${1/d}`,`#define CUBEUV_MAX_MIP ${c}.0`],g=` + varying vec3 vWorldPosition; + void main() + { + vec4 worldPosition = ( modelMatrix * vec4( position, 1.0 ) ); + vWorldPosition = worldPosition.xyz; + + gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 ); + } + `,y=m.join(` +`)+` + #define ENVMAP_TYPE_CUBE_UV + varying vec3 vWorldPosition; + uniform float radius; + uniform float height; + uniform float angle; + #ifdef ENVMAP_TYPE_CUBE + uniform samplerCube map; + #else + uniform sampler2D map; + #endif + // From: https://www.shadertoy.com/view/4tsBD7 + float diskIntersectWithBackFaceCulling( vec3 ro, vec3 rd, vec3 c, vec3 n, float r ) + { + float d = dot ( rd, n ); + + if( d > 0.0 ) { return 1e6; } + + vec3 o = ro - c; + float t = - dot( n, o ) / d; + vec3 q = o + rd * t; + + return ( dot( q, q ) < r * r ) ? t : 1e6; + } + // From: https://www.iquilezles.org/www/articles/intersectors/intersectors.htm + float sphereIntersect( vec3 ro, vec3 rd, vec3 ce, float ra ) + { + vec3 oc = ro - ce; + float b = dot( oc, rd ); + float c = dot( oc, oc ) - ra * ra; + float h = b * b - c; + + if( h < 0.0 ) { return -1.0; } + + h = sqrt( h ); + + return - b + h; + } + vec3 project() + { + vec3 p = normalize( vWorldPosition ); + vec3 camPos = cameraPosition; + camPos.y -= height; + float intersection = sphereIntersect( camPos, p, vec3( 0.0 ), radius ); + if( intersection > 0.0 ) { + + vec3 h = vec3( 0.0, - height, 0.0 ); + float intersection2 = diskIntersectWithBackFaceCulling( camPos, p, h, vec3( 0.0, 1.0, 0.0 ), radius ); + p = ( camPos + min( intersection, intersection2 ) * p ) / radius; + } else { + p = vec3( 0.0, 1.0, 0.0 ); + } + return p; + } + #include + #include + void main() + { + vec3 projectedWorldPosition = project(); + + #ifdef ENVMAP_TYPE_CUBE + vec3 outcolor = textureCube( map, projectedWorldPosition ).rgb; + #else + vec3 direction = normalize( projectedWorldPosition ); + vec2 uv = equirectUv( direction ); + vec3 outcolor = texture2D( map, uv ).rgb; + #endif + gl_FragColor = vec4( outcolor, 1.0 ); + #include + #include <${Xb>=154?"colorspace_fragment":"encodings_fragment"}> + } + `,E={map:{value:e},height:{value:(t==null?void 0:t.height)||15},radius:{value:(t==null?void 0:t.radius)||100}},S=new B0(1,16),v=new Di({uniforms:E,fragmentShader:y,vertexShader:g,side:da});super(S,v)}set radius(e){this.material.uniforms.radius.value=e}get radius(){return this.material.uniforms.radius.value}set height(e){this.material.uniforms.height.value=e}get height(){return this.material.uniforms.height.value}}var JQ=Object.defineProperty,QQ=(n,e,t)=>e in n?JQ(n,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):n[e]=t,$Q=(n,e,t)=>(QQ(n,e+"",t),t);class e${constructor(){$Q(this,"_listeners")}addEventListener(e,t){this._listeners===void 0&&(this._listeners={});const i=this._listeners;i[e]===void 0&&(i[e]=[]),i[e].indexOf(t)===-1&&i[e].push(t)}hasEventListener(e,t){if(this._listeners===void 0)return!1;const i=this._listeners;return i[e]!==void 0&&i[e].indexOf(t)!==-1}removeEventListener(e,t){if(this._listeners===void 0)return;const a=this._listeners[e];if(a!==void 0){const r=a.indexOf(t);r!==-1&&a.splice(r,1)}}dispatchEvent(e){if(this._listeners===void 0)return;const i=this._listeners[e.type];if(i!==void 0){e.target=this;const a=i.slice(0);for(let r=0,s=a.length;re in n?t$(n,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):n[e]=t,Ht=(n,e,t)=>(n$(n,typeof e!="symbol"?e+"":e,t),t);const qv=new oh,nN=new Lo,i$=Math.cos(70*(Math.PI/180)),iN=(n,e)=>(n%e+e)%e;let a$=class extends e${constructor(e,t){super(),Ht(this,"object"),Ht(this,"domElement"),Ht(this,"enabled",!0),Ht(this,"target",new H),Ht(this,"minDistance",0),Ht(this,"maxDistance",1/0),Ht(this,"minZoom",0),Ht(this,"maxZoom",1/0),Ht(this,"minPolarAngle",0),Ht(this,"maxPolarAngle",Math.PI),Ht(this,"minAzimuthAngle",-1/0),Ht(this,"maxAzimuthAngle",1/0),Ht(this,"enableDamping",!1),Ht(this,"dampingFactor",.05),Ht(this,"enableZoom",!0),Ht(this,"zoomSpeed",1),Ht(this,"enableRotate",!0),Ht(this,"rotateSpeed",1),Ht(this,"enablePan",!0),Ht(this,"panSpeed",1),Ht(this,"screenSpacePanning",!0),Ht(this,"keyPanSpeed",7),Ht(this,"zoomToCursor",!1),Ht(this,"autoRotate",!1),Ht(this,"autoRotateSpeed",2),Ht(this,"reverseOrbit",!1),Ht(this,"reverseHorizontalOrbit",!1),Ht(this,"reverseVerticalOrbit",!1),Ht(this,"keys",{LEFT:"ArrowLeft",UP:"ArrowUp",RIGHT:"ArrowRight",BOTTOM:"ArrowDown"}),Ht(this,"mouseButtons",{LEFT:lu.ROTATE,MIDDLE:lu.DOLLY,RIGHT:lu.PAN}),Ht(this,"touches",{ONE:cu.ROTATE,TWO:cu.DOLLY_PAN}),Ht(this,"target0"),Ht(this,"position0"),Ht(this,"zoom0"),Ht(this,"_domElementKeyEvents",null),Ht(this,"getPolarAngle"),Ht(this,"getAzimuthalAngle"),Ht(this,"setPolarAngle"),Ht(this,"setAzimuthalAngle"),Ht(this,"getDistance"),Ht(this,"getZoomScale"),Ht(this,"listenToKeyEvents"),Ht(this,"stopListenToKeyEvents"),Ht(this,"saveState"),Ht(this,"reset"),Ht(this,"update"),Ht(this,"connect"),Ht(this,"dispose"),Ht(this,"dollyIn"),Ht(this,"dollyOut"),Ht(this,"getScale"),Ht(this,"setScale"),this.object=e,this.domElement=t,this.target0=this.target.clone(),this.position0=this.object.position.clone(),this.zoom0=this.object.zoom,this.getPolarAngle=()=>f.phi,this.getAzimuthalAngle=()=>f.theta,this.setPolarAngle=ne=>{let me=iN(ne,2*Math.PI),Le=f.phi;Le<0&&(Le+=2*Math.PI),me<0&&(me+=2*Math.PI);let K=Math.abs(me-Le);2*Math.PI-K{let me=iN(ne,2*Math.PI),Le=f.theta;Le<0&&(Le+=2*Math.PI),me<0&&(me+=2*Math.PI);let K=Math.abs(me-Le);2*Math.PI-Ki.object.position.distanceTo(i.target),this.listenToKeyEvents=ne=>{ne.addEventListener("keydown",we),this._domElementKeyEvents=ne},this.stopListenToKeyEvents=()=>{this._domElementKeyEvents.removeEventListener("keydown",we),this._domElementKeyEvents=null},this.saveState=()=>{i.target0.copy(i.target),i.position0.copy(i.object.position),i.zoom0=i.object.zoom},this.reset=()=>{i.target.copy(i.target0),i.object.position.copy(i.position0),i.object.zoom=i.zoom0,i.object.updateProjectionMatrix(),i.dispatchEvent(a),i.update(),c=o.NONE},this.update=(()=>{const ne=new H,me=new H(0,1,0),Le=new Yi().setFromUnitVectors(e.up,me),K=Le.clone().invert(),Se=new H,_e=new Yi,it=2*Math.PI;return function(){const We=i.object.position;Le.setFromUnitVectors(e.up,me),K.copy(Le).invert(),ne.copy(We).sub(i.target),ne.applyQuaternion(Le),f.setFromVector3(ne),i.autoRotate&&c===o.NONE&&se(J()),i.enableDamping?(f.theta+=d.theta*i.dampingFactor,f.phi+=d.phi*i.dampingFactor):(f.theta+=d.theta,f.phi+=d.phi);let gt=i.minAzimuthAngle,Nt=i.maxAzimuthAngle;isFinite(gt)&&isFinite(Nt)&&(gt<-Math.PI?gt+=it:gt>Math.PI&&(gt-=it),Nt<-Math.PI?Nt+=it:Nt>Math.PI&&(Nt-=it),gt<=Nt?f.theta=Math.max(gt,Math.min(Nt,f.theta)):f.theta=f.theta>(gt+Nt)/2?Math.max(gt,f.theta):Math.min(Nt,f.theta)),f.phi=Math.max(i.minPolarAngle,Math.min(i.maxPolarAngle,f.phi)),f.makeSafe(),i.enableDamping===!0?i.target.addScaledVector(g,i.dampingFactor):i.target.add(g),i.zoomToCursor&&w||i.object.isOrthographicCamera?f.radius=Ke(f.radius):f.radius=Ke(f.radius*m),ne.setFromSpherical(f),ne.applyQuaternion(K),We.copy(i.target).add(ne),i.object.matrixAutoUpdate||i.object.updateMatrix(),i.object.lookAt(i.target),i.enableDamping===!0?(d.theta*=1-i.dampingFactor,d.phi*=1-i.dampingFactor,g.multiplyScalar(1-i.dampingFactor)):(d.set(0,0,0),g.set(0,0,0));let $t=!1;if(i.zoomToCursor&&w){let jt=null;if(i.object instanceof Jn&&i.object.isPerspectiveCamera){const hi=ne.length();jt=Ke(hi*m);const fi=hi-jt;i.object.position.addScaledVector(L,fi),i.object.updateMatrixWorld()}else if(i.object.isOrthographicCamera){const hi=new H(B.x,B.y,0);hi.unproject(i.object),i.object.zoom=Math.max(i.minZoom,Math.min(i.maxZoom,i.object.zoom/m)),i.object.updateProjectionMatrix(),$t=!0;const fi=new H(B.x,B.y,0);fi.unproject(i.object),i.object.position.sub(fi).add(hi),i.object.updateMatrixWorld(),jt=ne.length()}else console.warn("WARNING: OrbitControls.js encountered an unknown camera type - zoom to cursor disabled."),i.zoomToCursor=!1;jt!==null&&(i.screenSpacePanning?i.target.set(0,0,-1).transformDirection(i.object.matrix).multiplyScalar(jt).add(i.object.position):(qv.origin.copy(i.object.position),qv.direction.set(0,0,-1).transformDirection(i.object.matrix),Math.abs(i.object.up.dot(qv.direction))h||8*(1-_e.dot(i.object.quaternion))>h?(i.dispatchEvent(a),Se.copy(i.object.position),_e.copy(i.object.quaternion),$t=!1,!0):!1}})(),this.connect=ne=>{i.domElement=ne,i.domElement.style.touchAction="none",i.domElement.addEventListener("contextmenu",wt),i.domElement.addEventListener("pointerdown",mt),i.domElement.addEventListener("pointercancel",P),i.domElement.addEventListener("wheel",Ge)},this.dispose=()=>{var ne,me,Le,K,Se,_e;i.domElement&&(i.domElement.style.touchAction="auto"),(ne=i.domElement)==null||ne.removeEventListener("contextmenu",wt),(me=i.domElement)==null||me.removeEventListener("pointerdown",mt),(Le=i.domElement)==null||Le.removeEventListener("pointercancel",P),(K=i.domElement)==null||K.removeEventListener("wheel",Ge),(Se=i.domElement)==null||Se.ownerDocument.removeEventListener("pointermove",j),(_e=i.domElement)==null||_e.ownerDocument.removeEventListener("pointerup",P),i._domElementKeyEvents!==null&&i._domElementKeyEvents.removeEventListener("keydown",we)};const i=this,a={type:"change"},r={type:"start"},s={type:"end"},o={NONE:-1,ROTATE:0,DOLLY:1,PAN:2,TOUCH_ROTATE:3,TOUCH_PAN:4,TOUCH_DOLLY_PAN:5,TOUCH_DOLLY_ROTATE:6};let c=o.NONE;const h=1e-6,f=new LE,d=new LE;let m=1;const g=new H,y=new Ee,E=new Ee,S=new Ee,v=new Ee,_=new Ee,A=new Ee,b=new Ee,O=new Ee,N=new Ee,L=new H,B=new Ee;let w=!1;const D=[],G={};function J(){return 2*Math.PI/60/60*i.autoRotateSpeed}function $(){return Math.pow(.95,i.zoomSpeed)}function se(ne){i.reverseOrbit||i.reverseHorizontalOrbit?d.theta+=ne:d.theta-=ne}function le(ne){i.reverseOrbit||i.reverseVerticalOrbit?d.phi+=ne:d.phi-=ne}const q=(()=>{const ne=new H;return function(Le,K){ne.setFromMatrixColumn(K,0),ne.multiplyScalar(-Le),g.add(ne)}})(),te=(()=>{const ne=new H;return function(Le,K){i.screenSpacePanning===!0?ne.setFromMatrixColumn(K,1):(ne.setFromMatrixColumn(K,0),ne.crossVectors(i.object.up,ne)),ne.multiplyScalar(Le),g.add(ne)}})(),ee=(()=>{const ne=new H;return function(Le,K){const Se=i.domElement;if(Se&&i.object instanceof Jn&&i.object.isPerspectiveCamera){const _e=i.object.position;ne.copy(_e).sub(i.target);let it=ne.length();it*=Math.tan(i.object.fov/2*Math.PI/180),q(2*Le*it/Se.clientHeight,i.object.matrix),te(2*K*it/Se.clientHeight,i.object.matrix)}else Se&&i.object instanceof Rr&&i.object.isOrthographicCamera?(q(Le*(i.object.right-i.object.left)/i.object.zoom/Se.clientWidth,i.object.matrix),te(K*(i.object.top-i.object.bottom)/i.object.zoom/Se.clientHeight,i.object.matrix)):(console.warn("WARNING: OrbitControls.js encountered an unknown camera type - pan disabled."),i.enablePan=!1)}})();function de(ne){i.object instanceof Jn&&i.object.isPerspectiveCamera||i.object instanceof Rr&&i.object.isOrthographicCamera?m=ne:(console.warn("WARNING: OrbitControls.js encountered an unknown camera type - dolly/zoom disabled."),i.enableZoom=!1)}function ue(ne){de(m/ne)}function Pe(ne){de(m*ne)}function He(ne){if(!i.zoomToCursor||!i.domElement)return;w=!0;const me=i.domElement.getBoundingClientRect(),Le=ne.clientX-me.left,K=ne.clientY-me.top,Se=me.width,_e=me.height;B.x=Le/Se*2-1,B.y=-(K/_e)*2+1,L.set(B.x,B.y,1).unproject(i.object).sub(i.object.position).normalize()}function Ke(ne){return Math.max(i.minDistance,Math.min(i.maxDistance,ne))}function nt(ne){y.set(ne.clientX,ne.clientY)}function xt(ne){He(ne),b.set(ne.clientX,ne.clientY)}function fe(ne){v.set(ne.clientX,ne.clientY)}function Be(ne){E.set(ne.clientX,ne.clientY),S.subVectors(E,y).multiplyScalar(i.rotateSpeed);const me=i.domElement;me&&(se(2*Math.PI*S.x/me.clientHeight),le(2*Math.PI*S.y/me.clientHeight)),y.copy(E),i.update()}function Je(ne){O.set(ne.clientX,ne.clientY),N.subVectors(O,b),N.y>0?ue($()):N.y<0&&Pe($()),b.copy(O),i.update()}function ve(ne){_.set(ne.clientX,ne.clientY),A.subVectors(_,v).multiplyScalar(i.panSpeed),ee(A.x,A.y),v.copy(_),i.update()}function at(ne){He(ne),ne.deltaY<0?Pe($()):ne.deltaY>0&&ue($()),i.update()}function ft(ne){let me=!1;switch(ne.code){case i.keys.UP:ee(0,i.keyPanSpeed),me=!0;break;case i.keys.BOTTOM:ee(0,-i.keyPanSpeed),me=!0;break;case i.keys.LEFT:ee(i.keyPanSpeed,0),me=!0;break;case i.keys.RIGHT:ee(-i.keyPanSpeed,0),me=!0;break}me&&(ne.preventDefault(),i.update())}function ht(){if(D.length==1)y.set(D[0].pageX,D[0].pageY);else{const ne=.5*(D[0].pageX+D[1].pageX),me=.5*(D[0].pageY+D[1].pageY);y.set(ne,me)}}function et(){if(D.length==1)v.set(D[0].pageX,D[0].pageY);else{const ne=.5*(D[0].pageX+D[1].pageX),me=.5*(D[0].pageY+D[1].pageY);v.set(ne,me)}}function Re(){const ne=D[0].pageX-D[1].pageX,me=D[0].pageY-D[1].pageY,Le=Math.sqrt(ne*ne+me*me);b.set(0,Le)}function Z(){i.enableZoom&&Re(),i.enablePan&&et()}function Ue(){i.enableZoom&&Re(),i.enableRotate&&ht()}function ze(ne){if(D.length==1)E.set(ne.pageX,ne.pageY);else{const Le=St(ne),K=.5*(ne.pageX+Le.x),Se=.5*(ne.pageY+Le.y);E.set(K,Se)}S.subVectors(E,y).multiplyScalar(i.rotateSpeed);const me=i.domElement;me&&(se(2*Math.PI*S.x/me.clientHeight),le(2*Math.PI*S.y/me.clientHeight)),y.copy(E)}function Qe(ne){if(D.length==1)_.set(ne.pageX,ne.pageY);else{const me=St(ne),Le=.5*(ne.pageX+me.x),K=.5*(ne.pageY+me.y);_.set(Le,K)}A.subVectors(_,v).multiplyScalar(i.panSpeed),ee(A.x,A.y),v.copy(_)}function Ye(ne){const me=St(ne),Le=ne.pageX-me.x,K=ne.pageY-me.y,Se=Math.sqrt(Le*Le+K*K);O.set(0,Se),N.set(0,Math.pow(O.y/b.y,i.zoomSpeed)),ue(N.y),b.copy(O)}function ot(ne){i.enableZoom&&Ye(ne),i.enablePan&&Qe(ne)}function rt(ne){i.enableZoom&&Ye(ne),i.enableRotate&&ze(ne)}function mt(ne){var me,Le;i.enabled!==!1&&(D.length===0&&((me=i.domElement)==null||me.ownerDocument.addEventListener("pointermove",j),(Le=i.domElement)==null||Le.ownerDocument.addEventListener("pointerup",P)),bt(ne),ne.pointerType==="touch"?Tt(ne):pe(ne))}function j(ne){i.enabled!==!1&&(ne.pointerType==="touch"?ut(ne):Ie(ne))}function P(ne){var me,Le,K;ke(ne),D.length===0&&((me=i.domElement)==null||me.releasePointerCapture(ne.pointerId),(Le=i.domElement)==null||Le.ownerDocument.removeEventListener("pointermove",j),(K=i.domElement)==null||K.ownerDocument.removeEventListener("pointerup",P)),i.dispatchEvent(s),c=o.NONE}function pe(ne){let me;switch(ne.button){case 0:me=i.mouseButtons.LEFT;break;case 1:me=i.mouseButtons.MIDDLE;break;case 2:me=i.mouseButtons.RIGHT;break;default:me=-1}switch(me){case lu.DOLLY:if(i.enableZoom===!1)return;xt(ne),c=o.DOLLY;break;case lu.ROTATE:if(ne.ctrlKey||ne.metaKey||ne.shiftKey){if(i.enablePan===!1)return;fe(ne),c=o.PAN}else{if(i.enableRotate===!1)return;nt(ne),c=o.ROTATE}break;case lu.PAN:if(ne.ctrlKey||ne.metaKey||ne.shiftKey){if(i.enableRotate===!1)return;nt(ne),c=o.ROTATE}else{if(i.enablePan===!1)return;fe(ne),c=o.PAN}break;default:c=o.NONE}c!==o.NONE&&i.dispatchEvent(r)}function Ie(ne){if(i.enabled!==!1)switch(c){case o.ROTATE:if(i.enableRotate===!1)return;Be(ne);break;case o.DOLLY:if(i.enableZoom===!1)return;Je(ne);break;case o.PAN:if(i.enablePan===!1)return;ve(ne);break}}function Ge(ne){i.enabled===!1||i.enableZoom===!1||c!==o.NONE&&c!==o.ROTATE||(ne.preventDefault(),i.dispatchEvent(r),at(ne),i.dispatchEvent(s))}function we(ne){i.enabled===!1||i.enablePan===!1||ft(ne)}function Tt(ne){switch(Ve(ne),D.length){case 1:switch(i.touches.ONE){case cu.ROTATE:if(i.enableRotate===!1)return;ht(),c=o.TOUCH_ROTATE;break;case cu.PAN:if(i.enablePan===!1)return;et(),c=o.TOUCH_PAN;break;default:c=o.NONE}break;case 2:switch(i.touches.TWO){case cu.DOLLY_PAN:if(i.enableZoom===!1&&i.enablePan===!1)return;Z(),c=o.TOUCH_DOLLY_PAN;break;case cu.DOLLY_ROTATE:if(i.enableZoom===!1&&i.enableRotate===!1)return;Ue(),c=o.TOUCH_DOLLY_ROTATE;break;default:c=o.NONE}break;default:c=o.NONE}c!==o.NONE&&i.dispatchEvent(r)}function ut(ne){switch(Ve(ne),c){case o.TOUCH_ROTATE:if(i.enableRotate===!1)return;ze(ne),i.update();break;case o.TOUCH_PAN:if(i.enablePan===!1)return;Qe(ne),i.update();break;case o.TOUCH_DOLLY_PAN:if(i.enableZoom===!1&&i.enablePan===!1)return;ot(ne),i.update();break;case o.TOUCH_DOLLY_ROTATE:if(i.enableZoom===!1&&i.enableRotate===!1)return;rt(ne),i.update();break;default:c=o.NONE}}function wt(ne){i.enabled!==!1&&ne.preventDefault()}function bt(ne){D.push(ne)}function ke(ne){delete G[ne.pointerId];for(let me=0;me{Pe(ne),i.update()},this.dollyOut=(ne=$())=>{ue(ne),i.update()},this.getScale=()=>m,this.setScale=ne=>{de(ne),i.update()},this.getZoomScale=()=>$(),t!==void 0&&this.connect(t),this.update()}};function qx(n){if(typeof TextDecoder<"u")return new TextDecoder().decode(n);let e="";for(let t=0,i=n.length;t=2.0 are supported."));return}const c=new F$(r,{path:t||this.resourcePath||"",crossOrigin:this.crossOrigin,requestHeader:this.requestHeader,manager:this.manager,ktx2Loader:this.ktx2Loader,meshoptDecoder:this.meshoptDecoder});c.fileLoader.setRequestHeader(this.requestHeader);for(let h=0;h=0&&o[f]===void 0&&console.warn('THREE.GLTFLoader: Unknown extension "'+f+'".')}}c.setExtensions(s),c.setPlugins(o),c.parse(i,a)}parseAsync(e,t){const i=this;return new Promise(function(a,r){i.parse(e,t,a,r)})}}function s$(){let n={};return{get:function(e){return n[e]},add:function(e,t){n[e]=t},remove:function(e){delete n[e]},removeAll:function(){n={}}}}const hn={KHR_BINARY_GLTF:"KHR_binary_glTF",KHR_DRACO_MESH_COMPRESSION:"KHR_draco_mesh_compression",KHR_LIGHTS_PUNCTUAL:"KHR_lights_punctual",KHR_MATERIALS_CLEARCOAT:"KHR_materials_clearcoat",KHR_MATERIALS_DISPERSION:"KHR_materials_dispersion",KHR_MATERIALS_IOR:"KHR_materials_ior",KHR_MATERIALS_SHEEN:"KHR_materials_sheen",KHR_MATERIALS_SPECULAR:"KHR_materials_specular",KHR_MATERIALS_TRANSMISSION:"KHR_materials_transmission",KHR_MATERIALS_IRIDESCENCE:"KHR_materials_iridescence",KHR_MATERIALS_ANISOTROPY:"KHR_materials_anisotropy",KHR_MATERIALS_UNLIT:"KHR_materials_unlit",KHR_MATERIALS_VOLUME:"KHR_materials_volume",KHR_TEXTURE_BASISU:"KHR_texture_basisu",KHR_TEXTURE_TRANSFORM:"KHR_texture_transform",KHR_MESH_QUANTIZATION:"KHR_mesh_quantization",KHR_MATERIALS_EMISSIVE_STRENGTH:"KHR_materials_emissive_strength",EXT_MATERIALS_BUMP:"EXT_materials_bump",EXT_TEXTURE_WEBP:"EXT_texture_webp",EXT_TEXTURE_AVIF:"EXT_texture_avif",EXT_MESHOPT_COMPRESSION:"EXT_meshopt_compression",EXT_MESH_GPU_INSTANCING:"EXT_mesh_gpu_instancing"};class o${constructor(e){this.parser=e,this.name=hn.KHR_LIGHTS_PUNCTUAL,this.cache={refs:{},uses:{}}}_markDefs(){const e=this.parser,t=this.parser.json.nodes||[];for(let i=0,a=t.length;i=0)throw new Error("THREE.GLTFLoader: setKTX2Loader must be called before loading KTX2 textures");return null}return t.loadTextureImage(e,r.source,s)}}class S${constructor(e){this.parser=e,this.name=hn.EXT_TEXTURE_WEBP,this.isSupported=null}loadTexture(e){const t=this.name,i=this.parser,a=i.json,r=a.textures[e];if(!r.extensions||!r.extensions[t])return null;const s=r.extensions[t],o=a.images[s.source];let c=i.textureLoader;if(o.uri){const h=i.options.manager.getHandler(o.uri);h!==null&&(c=h)}return this.detectSupport().then(function(h){if(h)return i.loadTextureImage(e,s.source,c);if(a.extensionsRequired&&a.extensionsRequired.indexOf(t)>=0)throw new Error("THREE.GLTFLoader: WebP required by asset but unsupported.");return i.loadTexture(e)})}detectSupport(){return this.isSupported||(this.isSupported=new Promise(function(e){const t=new Image;t.src="data:image/webp;base64,UklGRiIAAABXRUJQVlA4IBYAAAAwAQCdASoBAAEADsD+JaQAA3AAAAAA",t.onload=t.onerror=function(){e(t.height===1)}})),this.isSupported}}class A${constructor(e){this.parser=e,this.name=hn.EXT_TEXTURE_AVIF,this.isSupported=null}loadTexture(e){const t=this.name,i=this.parser,a=i.json,r=a.textures[e];if(!r.extensions||!r.extensions[t])return null;const s=r.extensions[t],o=a.images[s.source];let c=i.textureLoader;if(o.uri){const h=i.options.manager.getHandler(o.uri);h!==null&&(c=h)}return this.detectSupport().then(function(h){if(h)return i.loadTextureImage(e,s.source,c);if(a.extensionsRequired&&a.extensionsRequired.indexOf(t)>=0)throw new Error("THREE.GLTFLoader: AVIF required by asset but unsupported.");return i.loadTexture(e)})}detectSupport(){return this.isSupported||(this.isSupported=new Promise(function(e){const t=new Image;t.src="data:image/avif;base64,AAAAIGZ0eXBhdmlmAAAAAGF2aWZtaWYxbWlhZk1BMUIAAADybWV0YQAAAAAAAAAoaGRscgAAAAAAAAAAcGljdAAAAAAAAAAAAAAAAGxpYmF2aWYAAAAADnBpdG0AAAAAAAEAAAAeaWxvYwAAAABEAAABAAEAAAABAAABGgAAABcAAAAoaWluZgAAAAAAAQAAABppbmZlAgAAAAABAABhdjAxQ29sb3IAAAAAamlwcnAAAABLaXBjbwAAABRpc3BlAAAAAAAAAAEAAAABAAAAEHBpeGkAAAAAAwgICAAAAAxhdjFDgQAMAAAAABNjb2xybmNseAACAAIABoAAAAAXaXBtYQAAAAAAAAABAAEEAQKDBAAAAB9tZGF0EgAKCBgABogQEDQgMgkQAAAAB8dSLfI=",t.onload=t.onerror=function(){e(t.height===1)}})),this.isSupported}}class E${constructor(e){this.name=hn.EXT_MESHOPT_COMPRESSION,this.parser=e}loadBufferView(e){const t=this.parser.json,i=t.bufferViews[e];if(i.extensions&&i.extensions[this.name]){const a=i.extensions[this.name],r=this.parser.getDependency("buffer",a.buffer),s=this.parser.options.meshoptDecoder;if(!s||!s.supported){if(t.extensionsRequired&&t.extensionsRequired.indexOf(this.name)>=0)throw new Error("THREE.GLTFLoader: setMeshoptDecoder must be called before loading compressed files");return null}return r.then(function(o){const c=a.byteOffset||0,h=a.byteLength||0,f=a.count,d=a.byteStride,m=new Uint8Array(o,c,h);return s.decodeGltfBufferAsync?s.decodeGltfBufferAsync(f,d,m,a.mode,a.filter).then(function(g){return g.buffer}):s.ready.then(function(){const g=new ArrayBuffer(f*d);return s.decodeGltfBuffer(new Uint8Array(g),f,d,m,a.mode,a.filter),g})})}else return null}}class T${constructor(e){this.name=hn.EXT_MESH_GPU_INSTANCING,this.parser=e}createNodeMesh(e){const t=this.parser.json,i=t.nodes[e];if(!i.extensions||!i.extensions[this.name]||i.mesh===void 0)return null;const a=t.meshes[i.mesh];for(const h of a.primitives)if(h.mode!==Wr.TRIANGLES&&h.mode!==Wr.TRIANGLE_STRIP&&h.mode!==Wr.TRIANGLE_FAN&&h.mode!==void 0)return null;const s=i.extensions[this.name].attributes,o=[],c={};for(const h in s)o.push(this.parser.getDependency("accessor",s[h]).then(f=>(c[h]=f,c[h])));return o.length<1?null:(o.push(this.parser.createNodeMesh(e)),Promise.all(o).then(h=>{const f=h.pop(),d=f.isGroup?f.children:[f],m=h[0].count,g=[];for(const y of d){const E=new lt,S=new H,v=new Yi,_=new H(1,1,1),A=new k3(y.geometry,y.material,m);for(let b=0;b=152?{TEXCOORD_0:"uv",TEXCOORD_1:"uv1",TEXCOORD_2:"uv2",TEXCOORD_3:"uv3"}:{TEXCOORD_0:"uv",TEXCOORD_1:"uv2"},COLOR_0:"color",WEIGHTS_0:"skinWeight",JOINTS_0:"skinIndex"},zl={scale:"scale",translation:"position",rotation:"quaternion",weights:"morphTargetInfluences"},N$={CUBICSPLINE:void 0,LINEAR:md,STEP:pd},b2={OPAQUE:"OPAQUE",MASK:"MASK",BLEND:"BLEND"};function O$(n){return n.DefaultMaterial===void 0&&(n.DefaultMaterial=new P0({color:16777215,emissive:0,metalness:1,roughness:1,transparent:!1,depthTest:!0,side:os})),n.DefaultMaterial}function ru(n,e,t){for(const i in t.extensions)n[i]===void 0&&(e.userData.gltfExtensions=e.userData.gltfExtensions||{},e.userData.gltfExtensions[i]=t.extensions[i])}function Uo(n,e){e.extras!==void 0&&(typeof e.extras=="object"?Object.assign(n.userData,e.extras):console.warn("THREE.GLTFLoader: Ignoring primitive type .extras, "+e.extras))}function I$(n,e,t){let i=!1,a=!1,r=!1;for(let h=0,f=e.length;h0||n.search(/^data\:image\/jpeg/)===0?"image/jpeg":n.search(/\.webp($|\?)/i)>0||n.search(/^data\:image\/webp/)===0?"image/webp":"image/png"}const P$=new lt;class F${constructor(e={},t={}){this.json=e,this.extensions={},this.plugins={},this.options=t,this.cache=new s$,this.associations=new Map,this.primitiveCache={},this.nodeCache={},this.meshCache={refs:{},uses:{}},this.cameraCache={refs:{},uses:{}},this.lightCache={refs:{},uses:{}},this.sourceCache={},this.textureCache={},this.nodeNamesUsed={};let i=!1,a=!1,r=-1;typeof navigator<"u"&&typeof navigator.userAgent<"u"&&(i=/^((?!chrome|android).)*safari/i.test(navigator.userAgent)===!0,a=navigator.userAgent.indexOf("Firefox")>-1,r=a?navigator.userAgent.match(/Firefox\/([0-9]+)\./)[1]:-1),typeof createImageBitmap>"u"||i||a&&r<98?this.textureLoader=new rb(this.options.manager):this.textureLoader=new WB(this.options.manager),this.textureLoader.setCrossOrigin(this.options.crossOrigin),this.textureLoader.setRequestHeader(this.options.requestHeader),this.fileLoader=new oa(this.options.manager),this.fileLoader.setResponseType("arraybuffer"),this.options.crossOrigin==="use-credentials"&&this.fileLoader.setWithCredentials(!0)}setExtensions(e){this.extensions=e}setPlugins(e){this.plugins=e}parse(e,t){const i=this,a=this.json,r=this.extensions;this.cache.removeAll(),this.nodeCache={},this._invokeAll(function(s){return s._markDefs&&s._markDefs()}),Promise.all(this._invokeAll(function(s){return s.beforeRoot&&s.beforeRoot()})).then(function(){return Promise.all([i.getDependencies("scene"),i.getDependencies("animation"),i.getDependencies("camera")])}).then(function(s){const o={scene:s[0][a.scene||0],scenes:s[0],animations:s[1],cameras:s[2],asset:a.asset,parser:i,userData:{}};return ru(r,o,a),Uo(o,a),Promise.all(i._invokeAll(function(c){return c.afterRoot&&c.afterRoot(o)})).then(function(){for(const c of o.scenes)c.updateMatrixWorld();e(o)})}).catch(t)}_markDefs(){const e=this.json.nodes||[],t=this.json.skins||[],i=this.json.meshes||[];for(let a=0,r=t.length;a{const c=this.associations.get(s);c!=null&&this.associations.set(o,c);for(const[h,f]of s.children.entries())r(f,o.children[h])};return r(i,a),a.name+="_instance_"+e.uses[t]++,a}_invokeOne(e){const t=Object.values(this.plugins);t.push(this);for(let i=0;i=2&&S.setY(w,N[L*c+1]),c>=3&&S.setZ(w,N[L*c+2]),c>=4&&S.setW(w,N[L*c+3]),c>=5)throw new Error("THREE.GLTFLoader: Unsupported itemSize in sparse BufferAttribute.")}}return S})}loadTexture(e){const t=this.json,i=this.options,r=t.textures[e].source,s=t.images[r];let o=this.textureLoader;if(s.uri){const c=i.manager.getHandler(s.uri);c!==null&&(o=c)}return this.loadTextureImage(e,r,o)}loadTextureImage(e,t,i){const a=this,r=this.json,s=r.textures[e],o=r.images[t],c=(o.uri||o.bufferView)+":"+s.sampler;if(this.textureCache[c])return this.textureCache[c];const h=this.loadImageSource(t,i).then(function(f){f.flipY=!1,f.name=s.name||o.name||"",f.name===""&&typeof o.uri=="string"&&o.uri.startsWith("data:image/")===!1&&(f.name=o.uri);const m=(r.samplers||{})[s.sampler]||{};return f.magFilter=sN[m.magFilter]||Bt,f.minFilter=sN[m.minFilter]||Sr,f.wrapS=oN[m.wrapS]||wi,f.wrapT=oN[m.wrapT]||wi,a.associations.set(f,{textures:e}),f}).catch(function(){return null});return this.textureCache[c]=h,h}loadImageSource(e,t){const i=this,a=this.json,r=this.options;if(this.sourceCache[e]!==void 0)return this.sourceCache[e].then(d=>d.clone());const s=a.images[e],o=self.URL||self.webkitURL;let c=s.uri||"",h=!1;if(s.bufferView!==void 0)c=i.getDependency("bufferView",s.bufferView).then(function(d){h=!0;const m=new Blob([d],{type:s.mimeType});return c=o.createObjectURL(m),c});else if(s.uri===void 0)throw new Error("THREE.GLTFLoader: Image "+e+" is missing URI and bufferView");const f=Promise.resolve(c).then(function(d){return new Promise(function(m,g){let y=m;t.isImageBitmapLoader===!0&&(y=function(E){const S=new vn(E);S.needsUpdate=!0,m(S)}),t.load(lc.resolveURL(d,r.path),y,void 0,g)})}).then(function(d){return h===!0&&o.revokeObjectURL(c),Uo(d,s),d.userData.mimeType=s.mimeType||L$(s.uri),d}).catch(function(d){throw console.error("THREE.GLTFLoader: Couldn't load texture",c),d});return this.sourceCache[e]=f,f}assignTexture(e,t,i,a){const r=this;return this.getDependency("texture",i.index).then(function(s){if(!s)return null;if(i.texCoord!==void 0&&i.texCoord>0&&(s=s.clone(),s.channel=i.texCoord),r.extensions[hn.KHR_TEXTURE_TRANSFORM]){const o=i.extensions!==void 0?i.extensions[hn.KHR_TEXTURE_TRANSFORM]:void 0;if(o){const c=r.associations.get(s);s=r.extensions[hn.KHR_TEXTURE_TRANSFORM].extendTexture(s,o),r.associations.set(s,c)}}return a!==void 0&&(typeof a=="number"&&(a=a===aN?Au:$o),"colorSpace"in s?s.colorSpace=a:s.encoding=a===Au?aN:r$),e[t]=s,s})}assignFinalMaterial(e){const t=e.geometry;let i=e.material;const a=t.attributes.tangent===void 0,r=t.attributes.color!==void 0,s=t.attributes.normal===void 0;if(e.isPoints){const o="PointsMaterial:"+i.uuid;let c=this.cache.get(o);c||(c=new Ty,ri.prototype.copy.call(c,i),c.color.copy(i.color),c.map=i.map,c.sizeAttenuation=!1,this.cache.add(o,c)),i=c}else if(e.isLine){const o="LineBasicMaterial:"+i.uuid;let c=this.cache.get(o);c||(c=new Ca,ri.prototype.copy.call(c,i),c.color.copy(i.color),c.map=i.map,this.cache.add(o,c)),i=c}if(a||r||s){let o="ClonedMaterial:"+i.uuid+":";a&&(o+="derivative-tangents:"),r&&(o+="vertex-colors:"),s&&(o+="flat-shading:");let c=this.cache.get(o);c||(c=i.clone(),r&&(c.vertexColors=!0),s&&(c.flatShading=!0),a&&(c.normalScale&&(c.normalScale.y*=-1),c.clearcoatNormalScale&&(c.clearcoatNormalScale.y*=-1)),this.cache.add(o,c),this.associations.set(c,this.associations.get(i))),i=c}e.material=i}getMaterialType(){return P0}loadMaterial(e){const t=this,i=this.json,a=this.extensions,r=i.materials[e];let s;const o={},c=r.extensions||{},h=[];if(c[hn.KHR_MATERIALS_UNLIT]){const d=a[hn.KHR_MATERIALS_UNLIT];s=d.getMaterialType(),h.push(d.extendParams(o,r,t))}else{const d=r.pbrMetallicRoughness||{};if(o.color=new dt(1,1,1),o.opacity=1,Array.isArray(d.baseColorFactor)){const m=d.baseColorFactor;o.color.setRGB(m[0],m[1],m[2],$o),o.opacity=m[3]}d.baseColorTexture!==void 0&&h.push(t.assignTexture(o,"map",d.baseColorTexture,Au)),o.metalness=d.metallicFactor!==void 0?d.metallicFactor:1,o.roughness=d.roughnessFactor!==void 0?d.roughnessFactor:1,d.metallicRoughnessTexture!==void 0&&(h.push(t.assignTexture(o,"metalnessMap",d.metallicRoughnessTexture)),h.push(t.assignTexture(o,"roughnessMap",d.metallicRoughnessTexture))),s=this._invokeOne(function(m){return m.getMaterialType&&m.getMaterialType(e)}),h.push(Promise.all(this._invokeAll(function(m){return m.extendMaterialParams&&m.extendMaterialParams(e,o)})))}r.doubleSided===!0&&(o.side=da);const f=r.alphaMode||b2.OPAQUE;if(f===b2.BLEND?(o.transparent=!0,o.depthWrite=!1):(o.transparent=!1,f===b2.MASK&&(o.alphaTest=r.alphaCutoff!==void 0?r.alphaCutoff:.5)),r.normalTexture!==void 0&&s!==Qa&&(h.push(t.assignTexture(o,"normalMap",r.normalTexture)),o.normalScale=new Ee(1,1),r.normalTexture.scale!==void 0)){const d=r.normalTexture.scale;o.normalScale.set(d,d)}if(r.occlusionTexture!==void 0&&s!==Qa&&(h.push(t.assignTexture(o,"aoMap",r.occlusionTexture)),r.occlusionTexture.strength!==void 0&&(o.aoMapIntensity=r.occlusionTexture.strength)),r.emissiveFactor!==void 0&&s!==Qa){const d=r.emissiveFactor;o.emissive=new dt().setRGB(d[0],d[1],d[2],$o)}return r.emissiveTexture!==void 0&&s!==Qa&&h.push(t.assignTexture(o,"emissiveMap",r.emissiveTexture,Au)),Promise.all(h).then(function(){const d=new s(o);return r.name&&(d.name=r.name),Uo(d,r),t.associations.set(d,{materials:e}),r.extensions&&ru(a,d,r),d})}createUniqueName(e){const t=yn.sanitizeNodeName(e||"");return t in this.nodeNamesUsed?t+"_"+ ++this.nodeNamesUsed[t]:(this.nodeNamesUsed[t]=0,t)}loadGeometries(e){const t=this,i=this.extensions,a=this.primitiveCache;function r(o){return i[hn.KHR_DRACO_MESH_COMPRESSION].decodePrimitive(o,t).then(function(c){return lN(c,o,t)})}const s=[];for(let o=0,c=e.length;o0&&B$(v,r),v.name=t.createUniqueName(r.name||"mesh_"+e),Uo(v,r),S.extensions&&ru(a,v,S),t.assignFinalMaterial(v),d.push(v)}for(let g=0,y=d.length;g1?f=new jo:h.length===1?f=h[0]:f=new fn,f!==h[0])for(let d=0,m=h.length;d{const d=new Map;for(const[m,g]of a.associations)(m instanceof ri||m instanceof vn)&&d.set(m,g);return f.traverse(m=>{const g=a.associations.get(m);g!=null&&d.set(m,g)}),d};return a.associations=h(r),r})}_createAnimationTracks(e,t,i,a,r){const s=[],o=e.name?e.name:e.uuid,c=[];zl[r.path]===zl.weights?e.traverse(function(m){m.morphTargetInfluences&&c.push(m.name?m.name:m.uuid)}):c.push(o);let h;switch(zl[r.path]){case zl.weights:h=qu;break;case zl.rotation:h=Zu;break;case zl.position:case zl.scale:h=ju;break;default:switch(i.itemSize){case 1:h=qu;break;case 2:case 3:default:h=ju;break}break}const f=a.interpolation!==void 0?N$[a.interpolation]:md,d=this._getArrayFromAccessor(i);for(let m=0,g=c.length;m($=q.indexOf(f))&&se=B.byteLength||!(le=d(B)))&&s(1,"no header found"),(q=le.match(w))||s(3,"bad initial token"),se.valid|=1,se.programtype=q[1],se.string+=le+` +`;le=d(B),le!==!1;){if(se.string+=le+` +`,le.charAt(0)==="#"){se.comments+=le+` +`;continue}if((q=le.match(D))&&(se.gamma=parseFloat(q[1])),(q=le.match(G))&&(se.exposure=parseFloat(q[1])),(q=le.match(J))&&(se.valid|=2,se.format=q[1]),(q=le.match($))&&(se.valid|=4,se.height=parseInt(q[1],10),se.width=parseInt(q[2],10)),se.valid&2&&se.valid&4)break}return se.valid&2||s(3,"missing format specifier"),se.valid&4||s(3,"missing image size specifier"),se},g=function(B,w,D){const G=w;if(G<8||G>32767||B[0]!==2||B[1]!==2||B[2]&128)return new Uint8Array(B);G!==(B[2]<<8|B[3])&&s(3,"wrong scanline width");const J=new Uint8Array(4*w*D);J.length||s(4,"unable to allocate buffer space");let $=0,se=0;const le=4*G,q=new Uint8Array(4),te=new Uint8Array(le);let ee=D;for(;ee>0&&seB.byteLength&&s(1),q[0]=B[se++],q[1]=B[se++],q[2]=B[se++],q[3]=B[se++],(q[0]!=2||q[1]!=2||(q[2]<<8|q[3])!=G)&&s(3,"bad rgbe scanline format");let de=0,ue;for(;de128;if(He&&(ue-=128),(ue===0||de+ue>le)&&s(3,"bad scanline data"),He){const Ke=B[se++];for(let nt=0;nt=152;class G$ extends Hy{constructor(e){super(e),this.type=sn}parse(e){const w=Math.pow(2.7182818,2.2);function D(U,W){for(var oe=0,Te=0;Te<65536;++Te)(Te==0||U[Te>>3]&1<<(Te&7))&&(W[oe++]=Te);for(var De=oe-1;oe<65536;)W[oe++]=0;return De}function G(U){for(var W=0;W<16384;W++)U[W]={},U[W].len=0,U[W].lit=0,U[W].p=null}const J={l:0,c:0,lc:0};function $(U,W,oe,Te,De){for(;oe>oe&(1<0;--W){var Te=oe+se[W]>>1;se[W]=oe,oe=Te}for(var W=0;W<65537;++W){var De=U[W];De>0&&(U[W]=De|se[De]++<<6)}}function q(U,W,oe,Te,De,Me,M){for(var I=oe,V=0,C=0;De<=Me;De++){if(I.value-oe.value>Te)return!1;$(6,V,C,U,I);var F=J.l;if(V=J.c,C=J.lc,M[De]=F,F==63){if(I.value-oe.value>Te)throw"Something wrong with hufUnpackEncTable";$(8,V,C,U,I);var Y=J.l+6;if(V=J.c,C=J.lc,De+Y>Me+1)throw"Something wrong with hufUnpackEncTable";for(;Y--;)M[De++]=0;De--}else if(F>=59){var Y=F-59+2;if(De+Y>Me+1)throw"Something wrong with hufUnpackEncTable";for(;Y--;)M[De++]=0;De--}}le(M)}function te(U){return U&63}function ee(U){return U>>6}function de(U,W,oe,Te){for(;W<=oe;W++){var De=ee(U[W]),Me=te(U[W]);if(De>>Me)throw"Invalid table entry";if(Me>14){var M=Te[De>>Me-14];if(M.len)throw"Invalid table entry";if(M.lit++,M.p){var I=M.p;M.p=new Array(M.lit);for(var V=0;V0;V--){var M=Te[(De<<14-Me)+C];if(M.len||M.p)throw"Invalid table entry";M.len=Me,M.lit=W,C++}}return!0}const ue={c:0,lc:0};function Pe(U,W,oe,Te){U=U<<8|St(oe,Te),W+=8,ue.c=U,ue.lc=W}const He={c:0,lc:0};function Ke(U,W,oe,Te,De,Me,M,I,V,C){if(U==W){Te<8&&(Pe(oe,Te,De,M),oe=ue.c,Te=ue.lc),Te-=8;var F=oe>>Te,F=new Uint8Array([F])[0];if(V.value+F>C)return!1;for(var Y=I[V.value-1];F-- >0;)I[V.value++]=Y}else if(V.value32767?W-65536:W}const fe={a:0,b:0};function Be(U,W){var oe=xt(U),Te=xt(W),De=Te,Me=oe+(De&1)+(De>>1),M=Me,I=Me-De;fe.a=M,fe.b=I}function Je(U,W){var oe=nt(U),Te=nt(W),De=oe-(Te>>1)&65535,Me=Te+De-32768&65535;fe.a=Me,fe.b=De}function ve(U,W,oe,Te,De,Me,M){for(var I=M<16384,V=oe>De?De:oe,C=1,F;C<=V;)C<<=1;for(C>>=1,F=C,C>>=1;C>=1;){for(var Y=0,z=Y+Me*(De-F),k=Me*C,Q=Me*F,ae=Te*C,ce=Te*F,xe,Ae,Ne,Fe;Y<=z;Y+=Q){for(var Oe=Y,Ze=Y+Te*(oe-F);Oe<=Ze;Oe+=ce){var $e=Oe+ae,vt=Oe+k,Rt=vt+ae;I?(Be(U[Oe+W],U[vt+W]),xe=fe.a,Ne=fe.b,Be(U[$e+W],U[Rt+W]),Ae=fe.a,Fe=fe.b,Be(xe,Ae),U[Oe+W]=fe.a,U[$e+W]=fe.b,Be(Ne,Fe),U[vt+W]=fe.a,U[Rt+W]=fe.b):(Je(U[Oe+W],U[vt+W]),xe=fe.a,Ne=fe.b,Je(U[$e+W],U[Rt+W]),Ae=fe.a,Fe=fe.b,Je(xe,Ae),U[Oe+W]=fe.a,U[$e+W]=fe.b,Je(Ne,Fe),U[vt+W]=fe.a,U[Rt+W]=fe.b)}if(oe&C){var vt=Oe+k;I?Be(U[Oe+W],U[vt+W]):Je(U[Oe+W],U[vt+W]),xe=fe.a,U[vt+W]=fe.b,U[Oe+W]=xe}}if(De&C)for(var Oe=Y,Ze=Y+Te*(oe-F);Oe<=Ze;Oe+=ce){var $e=Oe+ae;I?Be(U[Oe+W],U[$e+W]):Je(U[Oe+W],U[$e+W]),xe=fe.a,U[$e+W]=fe.b,U[Oe+W]=xe}F=C,C>>=1}return Y}function at(U,W,oe,Te,De,Me,M,I,V,C){for(var F=0,Y=0,z=I,k=Math.trunc(De.value+(Me+7)/8);De.value=14;){var Q=F>>Y-14&16383,ae=W[Q];if(ae.len)Y-=ae.len,Ke(ae.lit,M,F,Y,oe,Te,De,V,C,z),F=He.c,Y=He.lc;else{if(!ae.p)throw"hufDecode issues";var ce;for(ce=0;ce=xe&&ee(U[ae.p[ce]])==(F>>Y-xe&(1<>=Ae,Y-=Ae;Y>0;){var ae=W[F<<14-Y&16383];if(ae.len)Y-=ae.len,Ke(ae.lit,M,F,Y,oe,Te,De,V,C,z),F=He.c,Y=He.lc;else throw"hufDecode issues"}return!0}function ft(U,W,oe,Te,De,Me){var M={value:0},I=oe.value,V=Ve(W,oe),C=Ve(W,oe);oe.value+=4;var F=Ve(W,oe);if(oe.value+=4,V<0||V>=65537||C<0||C>=65537)throw"Something wrong with HUF_ENCSIZE";var Y=new Array(65537),z=new Array(16384);G(z);var k=Te-(oe.value-I);if(q(U,W,oe,k,V,C,Y),F>8*(Te-(oe.value-I)))throw"Something wrong with hufUncompress";de(Y,V,C,z),at(Y,z,U,W,oe,F,C,Me,De,M)}function ht(U,W,oe){for(var Te=0;TeMe||(W[De++]=U[oe++],De>Me));)W[De++]=U[Te++]}function Z(U){for(var W=U.byteLength,oe=new Array,Te=0,De=new DataView(U);W>0;){var Me=De.getInt8(Te++);if(Me<0){var M=-Me;W-=M+1;for(var I=0;I>8==255?De+=Te&255:(oe[De]=Te,De++),U.value++}function Qe(U,W){W[0]=Se(U[0]),W[1]=Se(U[1]),W[2]=Se(U[5]),W[3]=Se(U[6]),W[4]=Se(U[14]),W[5]=Se(U[15]),W[6]=Se(U[27]),W[7]=Se(U[28]),W[8]=Se(U[2]),W[9]=Se(U[4]),W[10]=Se(U[7]),W[11]=Se(U[13]),W[12]=Se(U[16]),W[13]=Se(U[26]),W[14]=Se(U[29]),W[15]=Se(U[42]),W[16]=Se(U[3]),W[17]=Se(U[8]),W[18]=Se(U[12]),W[19]=Se(U[17]),W[20]=Se(U[25]),W[21]=Se(U[30]),W[22]=Se(U[41]),W[23]=Se(U[43]),W[24]=Se(U[9]),W[25]=Se(U[11]),W[26]=Se(U[18]),W[27]=Se(U[24]),W[28]=Se(U[31]),W[29]=Se(U[40]),W[30]=Se(U[44]),W[31]=Se(U[53]),W[32]=Se(U[10]),W[33]=Se(U[19]),W[34]=Se(U[23]),W[35]=Se(U[32]),W[36]=Se(U[39]),W[37]=Se(U[45]),W[38]=Se(U[52]),W[39]=Se(U[54]),W[40]=Se(U[20]),W[41]=Se(U[22]),W[42]=Se(U[33]),W[43]=Se(U[38]),W[44]=Se(U[46]),W[45]=Se(U[51]),W[46]=Se(U[55]),W[47]=Se(U[60]),W[48]=Se(U[21]),W[49]=Se(U[34]),W[50]=Se(U[37]),W[51]=Se(U[47]),W[52]=Se(U[50]),W[53]=Se(U[56]),W[54]=Se(U[59]),W[55]=Se(U[61]),W[56]=Se(U[35]),W[57]=Se(U[36]),W[58]=Se(U[48]),W[59]=Se(U[49]),W[60]=Se(U[57]),W[61]=Se(U[58]),W[62]=Se(U[62]),W[63]=Se(U[63])}function Ye(U){const W=.5*Math.cos(.7853975),oe=.5*Math.cos(3.14159/16),Te=.5*Math.cos(3.14159/8),De=.5*Math.cos(3*3.14159/16),Me=.5*Math.cos(5*3.14159/16),M=.5*Math.cos(3*3.14159/8),I=.5*Math.cos(7*3.14159/16);for(var V=new Array(4),C=new Array(4),F=new Array(4),Y=new Array(4),z=0;z<8;++z){var k=z*8;V[0]=Te*U[k+2],V[1]=M*U[k+2],V[2]=Te*U[k+6],V[3]=M*U[k+6],C[0]=oe*U[k+1]+De*U[k+3]+Me*U[k+5]+I*U[k+7],C[1]=De*U[k+1]-I*U[k+3]-oe*U[k+5]-Me*U[k+7],C[2]=Me*U[k+1]-oe*U[k+3]+I*U[k+5]+De*U[k+7],C[3]=I*U[k+1]-Me*U[k+3]+De*U[k+5]-oe*U[k+7],F[0]=W*(U[k+0]+U[k+4]),F[3]=W*(U[k+0]-U[k+4]),F[1]=V[0]+V[3],F[2]=V[1]-V[2],Y[0]=F[0]+F[1],Y[1]=F[3]+F[2],Y[2]=F[3]-F[2],Y[3]=F[0]-F[1],U[k+0]=Y[0]+C[0],U[k+1]=Y[1]+C[1],U[k+2]=Y[2]+C[2],U[k+3]=Y[3]+C[3],U[k+4]=Y[3]-C[3],U[k+5]=Y[2]-C[2],U[k+6]=Y[1]-C[1],U[k+7]=Y[0]-C[0]}for(var Q=0;Q<8;++Q)V[0]=Te*U[16+Q],V[1]=M*U[16+Q],V[2]=Te*U[48+Q],V[3]=M*U[48+Q],C[0]=oe*U[8+Q]+De*U[24+Q]+Me*U[40+Q]+I*U[56+Q],C[1]=De*U[8+Q]-I*U[24+Q]-oe*U[40+Q]-Me*U[56+Q],C[2]=Me*U[8+Q]-oe*U[24+Q]+I*U[40+Q]+De*U[56+Q],C[3]=I*U[8+Q]-Me*U[24+Q]+De*U[40+Q]-oe*U[56+Q],F[0]=W*(U[Q]+U[32+Q]),F[3]=W*(U[Q]-U[32+Q]),F[1]=V[0]+V[3],F[2]=V[1]-V[2],Y[0]=F[0]+F[1],Y[1]=F[3]+F[2],Y[2]=F[3]-F[2],Y[3]=F[0]-F[1],U[0+Q]=Y[0]+C[0],U[8+Q]=Y[1]+C[1],U[16+Q]=Y[2]+C[2],U[24+Q]=Y[3]+C[3],U[32+Q]=Y[3]-C[3],U[40+Q]=Y[2]-C[2],U[48+Q]=Y[1]-C[1],U[56+Q]=Y[0]-C[0]}function ot(U){for(var W=0;W<64;++W){var oe=U[0][W],Te=U[1][W],De=U[2][W];U[0][W]=oe+1.5747*De,U[1][W]=oe-.1873*Te-.4682*De,U[2][W]=oe+1.8556*Te}}function rt(U,W,oe){for(var Te=0;Te<64;++Te)W[oe+Te]=Zo.toHalfFloat(mt(U[Te]))}function mt(U){return U<=1?Math.sign(U)*Math.pow(Math.abs(U),2.2):Math.sign(U)*Math.pow(w,Math.abs(U)-1)}function j(U){return new DataView(U.array.buffer,U.offset.value,U.size)}function P(U){var W=U.viewer.buffer.slice(U.offset.value,U.offset.value+U.size),oe=new Uint8Array(Z(W)),Te=new Uint8Array(oe.length);return et(oe),Re(oe,Te),new DataView(Te.buffer)}function pe(U){var W=U.array.slice(U.offset.value,U.offset.value+U.size),oe=Yv(W),Te=new Uint8Array(oe.length);return et(oe),Re(oe,Te),new DataView(Te.buffer)}function Ie(U){for(var W=U.viewer,oe={value:U.offset.value},Te=new Uint16Array(U.width*U.scanlineBlockSize*(U.channels*U.type)),De=new Uint8Array(8192),Me=0,M=new Array(U.channels),I=0;I=8192)throw"Something is wrong with PIZ_COMPRESSION BITMAP_SIZE";if(V<=C)for(var I=0;I0;){var I=Tt(W.buffer,oe),V=ne(W,oe),C=V>>2&3,F=(V>>4)-1,Y=new Int8Array([F])[0],z=ne(W,oe);Me.push({name:I,index:Y,type:z,compression:C}),M-=I.length+3}for(var k=Oi.channels,Q=new Array(U.channels),ae=0;ae=0&&(Ae.idx[Fe.index]=Ne),ce.offset=Ne)}if(De.acCompressedSize>0)switch(De.acCompression){case 0:var $e=new Uint16Array(De.totalAcUncompressedCount);ft(U.array,W,oe,De.acCompressedSize,$e,De.totalAcUncompressedCount);break;case 1:var Oe=U.array.slice(oe.value,oe.value+De.totalAcUncompressedCount),Ze=Yv(Oe),$e=new Uint16Array(Ze.buffer);oe.value+=De.totalAcUncompressedCount;break}if(De.dcCompressedSize>0){var vt={array:U.array,offset:oe,size:De.dcCompressedSize},Rt=new Uint16Array(pe(vt).buffer);oe.value+=De.dcCompressedSize}if(De.rleRawSize>0){var Oe=U.array.slice(oe.value,oe.value+De.rleCompressedSize),Ze=Yv(Oe),pt=Z(Ze.buffer);oe.value+=De.rleCompressedSize}for(var Ct=0,je=new Array(Q.length),ae=0;ae>10,oe=U&1023;return(U>>15?-1:1)*(W?W===31?oe?NaN:1/0:Math.pow(2,W-15)*(1+oe/1024):6103515625e-14*(oe/1024))}function _e(U,W){var oe=U.getUint16(W.value,!0);return W.value+=2,oe}function it(U,W){return Se(_e(U,W))}function tt(U,W,oe,Te){for(var De=oe.value,Me=[];oe.valuezt.height?zt.height-W:zt.scanlineBlockSize;const Te=zt.size=zt.height)break;for(let M=0;M{const o={attributeIDs:this.defaultAttributeIDs,attributeTypes:this.defaultAttributeTypes,useUniqueIDs:!1};this.decodeGeometry(s,o).then(t).catch(a)},i,a)}decodeDracoFile(e,t,i,a){const r={attributeIDs:i||this.defaultAttributeIDs,attributeTypes:a||this.defaultAttributeTypes,useUniqueIDs:!!i};this.decodeGeometry(e,r).then(t)}decodeGeometry(e,t){for(const c in t.attributeTypes){const h=t.attributeTypes[c];h.BYTES_PER_ELEMENT!==void 0&&(t.attributeTypes[c]=h.name)}const i=JSON.stringify(t);if(C2.has(e)){const c=C2.get(e);if(c.key===i)return c.promise;if(e.byteLength===0)throw new Error("THREE.DRACOLoader: Unable to re-decode a buffer with different settings. Buffer has already been transferred.")}let a;const r=this.workerNextTaskID++,s=e.byteLength,o=this._getWorker(r,s).then(c=>(a=c,new Promise((h,f)=>{a._callbacks[r]={resolve:h,reject:f},a.postMessage({type:"decode",id:r,taskConfig:t,buffer:e},[e])}))).then(c=>this._createGeometry(c.geometry));return o.catch(()=>!0).then(()=>{a&&r&&this._releaseTask(a,r)}),C2.set(e,{key:i,promise:o}),o}_createGeometry(e){const t=new Xt;e.index&&t.setIndex(new pn(e.index.array,1));for(let i=0;i{i.load(e,a,void 0,r)})}preload(){return this._initDecoder(),this}_initDecoder(){if(this.decoderPending)return this.decoderPending;const e=typeof WebAssembly!="object"||this.decoderConfig.type==="js",t=[];return e?t.push(this._loadLibrary("draco_decoder.js","text")):(t.push(this._loadLibrary("draco_wasm_wrapper.js","text")),t.push(this._loadLibrary("draco_decoder.wasm","arraybuffer"))),this.decoderPending=Promise.all(t).then(i=>{const a=i[0];e||(this.decoderConfig.wasmBinary=i[1]);const r=k$.toString(),s=["/* draco decoder */",a,"","/* worker */",r.substring(r.indexOf("{")+1,r.lastIndexOf("}"))].join(` +`);this.workerSourceURL=URL.createObjectURL(new Blob([s]))}),this.decoderPending}_getWorker(e,t){return this._initDecoder().then(()=>{if(this.workerPool.lengthr._taskLoad?-1:1});const i=this.workerPool[this.workerPool.length-1];return i._taskCosts[e]=t,i._taskLoad+=t,i})}_releaseTask(e,t){e._taskLoad-=e._taskCosts[t],delete e._callbacks[t],delete e._taskCosts[t]}debug(){console.log("Task load: ",this.workerPool.map(e=>e._taskLoad))}dispose(){for(let e=0;e{const d=f.draco,m=new d.Decoder,g=new d.DecoderBuffer;g.Init(new Int8Array(c),c.byteLength);try{const y=t(d,m,g,h),E=y.attributes.map(S=>S.array.buffer);y.index&&E.push(y.index.array.buffer),self.postMessage({type:"decode",id:o.id,geometry:y},E)}catch(y){console.error(y),self.postMessage({type:"error",id:o.id,error:y.message})}finally{d.destroy(g),d.destroy(m)}});break}};function t(s,o,c,h){const f=h.attributeIDs,d=h.attributeTypes;let m,g;const y=o.GetEncodedGeometryType(c);if(y===s.TRIANGULAR_MESH)m=new s.Mesh,g=o.DecodeBufferToMesh(c,m);else if(y===s.POINT_CLOUD)m=new s.PointCloud,g=o.DecodeBufferToPointCloud(c,m);else throw new Error("THREE.DRACOLoader: Unexpected geometry type.");if(!g.ok()||m.ptr===0)throw new Error("THREE.DRACOLoader: Decoding failed: "+g.error_msg());const E={index:null,attributes:[]};for(const S in f){const v=self[d[S]];let _,A;if(h.useUniqueIDs)A=f[S],_=o.GetAttributeByUniqueId(m,A);else{if(A=o.GetAttributeId(m,s[f[S]]),A===-1)continue;_=o.GetAttribute(m,A)}E.attributes.push(a(s,o,m,S,v,_))}return y===s.TRIANGULAR_MESH&&(E.index=i(s,o,m)),s.destroy(m),E}function i(s,o,c){const f=c.num_faces()*3,d=f*4,m=s._malloc(d);o.GetTrianglesUInt32Array(c,d,m);const g=new Uint32Array(s.HEAPF32.buffer,m,f).slice();return s._free(m),{array:g,itemSize:1}}function a(s,o,c,h,f,d){const m=d.num_components(),y=c.num_points()*m,E=y*f.BYTES_PER_ELEMENT,S=r(s,f),v=s._malloc(E);o.GetAttributeDataArrayForAllPoints(c,d,S,E,v);const _=new f(s.HEAPF32.buffer,v,y).slice();return s._free(v),{name:h,array:_,itemSize:m}}function r(s,o){switch(o){case Float32Array:return s.DT_FLOAT32;case Int8Array:return s.DT_INT8;case Int16Array:return s.DT_INT16;case Int32Array:return s.DT_INT32;case Uint8Array:return s.DT_UINT8;case Uint16Array:return s.DT_UINT16;case Uint32Array:return s.DT_UINT32}}}let Zv;const R2=()=>{if(Zv)return Zv;const n="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",e="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",t=new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,3,2,0,0,5,3,1,0,1,12,1,0,10,22,2,12,0,65,0,65,0,65,0,252,10,0,0,11,7,0,65,0,253,15,26,11]),i=new Uint8Array([32,0,65,253,3,1,2,34,4,106,6,5,11,8,7,20,13,33,12,16,128,9,116,64,19,113,127,15,10,21,22,14,255,66,24,54,136,107,18,23,192,26,114,118,132,17,77,101,130,144,27,87,131,44,45,74,156,154,70,167]);if(typeof WebAssembly!="object")return{supported:!1};let a=n;WebAssembly.validate(t)&&(a=e);let r;const s=WebAssembly.instantiate(o(a),{}).then(d=>{r=d.instance,r.exports.__wasm_call_ctors()});function o(d){const m=new Uint8Array(d.length);for(let y=0;y96?E-71:E>64?E-65:E>47?E+4:E>46?63:62}let g=0;for(let y=0;y{t&&t(i),n&&(jv||(jv=new V$),jv.setDecoderPath(typeof n=="string"?n:J6),i.setDRACOLoader(jv)),e&&i.setMeshoptDecoder(typeof R2=="function"?R2():R2)}}const a_=(n,e,t,i)=>sl(Wb,n,Q6(e,t,i));a_.preload=(n,e,t,i)=>sl.preload(Wb,n,Q6(e,t,i));a_.clear=n=>sl.clear(Wb,n);a_.setDecoderPath=n=>{J6=n};function X$(n,e,t){const i=jn(g=>g.size),a=jn(g=>g.viewport),r=typeof n=="number"?n:i.width*a.dpr,s=i.height*a.dpr,o=(typeof n=="number"?t:n)||{},{samples:c=0,depth:h,...f}=o,d=h??o.depthBuffer,m=he.useMemo(()=>{const g=new oi(r,s,{minFilter:Bt,magFilter:Bt,type:sn,...f});return d&&(g.depthTexture=new N0(r,s,Sn)),g.samples=c,g},[]);return he.useLayoutEffect(()=>{m.setSize(r,s),c&&(m.samples=c)},[c,m,r,s]),he.useEffect(()=>()=>m.dispose(),[]),m}const W$=n=>typeof n=="function",Y$=he.forwardRef(({envMap:n,resolution:e=256,frames:t=1/0,makeDefault:i,children:a,...r},s)=>{const o=jn(({set:S})=>S),c=jn(({camera:S})=>S),h=jn(({size:S})=>S),f=he.useRef(null);he.useImperativeHandle(s,()=>f.current,[]);const d=he.useRef(null),m=X$(e);he.useLayoutEffect(()=>{r.manual||(f.current.aspect=h.width/h.height)},[h,r]),he.useLayoutEffect(()=>{f.current.updateProjectionMatrix()});let g=0,y=null;const E=W$(a);return Ls(S=>{E&&(t===1/0||g{if(i){const S=c;return o(()=>({camera:f.current})),()=>o(()=>({camera:S}))}},[f,i,o]),he.createElement(he.Fragment,null,he.createElement("perspectiveCamera",eh({ref:f},r),!E&&a),he.createElement("group",{ref:d},E&&a(m.texture)))}),q$=he.forwardRef(({makeDefault:n,camera:e,regress:t,domElement:i,enableDamping:a=!0,keyEvents:r=!1,onChange:s,onStart:o,onEnd:c,...h},f)=>{const d=jn(N=>N.invalidate),m=jn(N=>N.camera),g=jn(N=>N.gl),y=jn(N=>N.events),E=jn(N=>N.setEvents),S=jn(N=>N.set),v=jn(N=>N.get),_=jn(N=>N.performance),A=e||m,b=i||y.connected||g.domElement,O=he.useMemo(()=>new a$(A),[A]);return Ls(()=>{O.enabled&&O.update()},-1),he.useEffect(()=>(r&&O.connect(r===!0?b:r),O.connect(b),()=>void O.dispose()),[r,b,t,O,d]),he.useEffect(()=>{const N=w=>{d(),t&&_.regress(),s&&s(w)},L=w=>{o&&o(w)},B=w=>{c&&c(w)};return O.addEventListener("change",N),O.addEventListener("start",L),O.addEventListener("end",B),()=>{O.removeEventListener("start",L),O.removeEventListener("end",B),O.removeEventListener("change",N)}},[s,o,c,O,d,E]),he.useEffect(()=>{if(n){const N=v().controls;return S({controls:O}),()=>S({controls:N})}},[n,O]),he.createElement("primitive",eh({ref:f,object:O,enableDamping:a},h))});function Z$(){const n=new Xt,e=new Float32Array([-1,-1,3,-1,-1,3]);return n.boundingSphere=new zi,n.boundingSphere.set(new H,1/0),n.setAttribute("position",new pn(e,2)),n}const j$=he.forwardRef(function({children:e,...t},i){const a=he.useMemo(Z$,[]);return he.createElement("mesh",eh({ref:i,geometry:a,frustumCulled:!1},t),e)}),$6=(n,e,t)=>{let i;switch(n){case xi:i=new Uint8ClampedArray(e*t*4);break;case sn:i=new Uint16Array(e*t*4);break;case ls:i=new Uint32Array(e*t*4);break;case M0:i=new Int8Array(e*t*4);break;case C0:i=new Int16Array(e*t*4);break;case Fd:i=new Int32Array(e*t*4);break;case Sn:i=new Float32Array(e*t*4);break;default:throw new Error("Unsupported data type")}return i};let Kv;const K$=(n,e,t,i)=>{if(Kv!==void 0)return Kv;const a=new oi(1,1,i);e.setRenderTarget(a);const r=new Xn(new Us,new Qa({color:16777215}));e.render(r,t),e.setRenderTarget(null);const s=$6(n,a.width,a.height);return e.readRenderTargetPixels(a,0,0,a.width,a.height,s),a.dispose(),r.geometry.dispose(),r.material.dispose(),Kv=s[0]!==0,Kv};class Yb{constructor(e){Ei(this,"_renderer");Ei(this,"_rendererIsDisposable",!1);Ei(this,"_material");Ei(this,"_scene");Ei(this,"_camera");Ei(this,"_quad");Ei(this,"_renderTarget");Ei(this,"_width");Ei(this,"_height");Ei(this,"_type");Ei(this,"_colorSpace");Ei(this,"_supportsReadPixels",!0);Ei(this,"render",()=>{this._renderer.setRenderTarget(this._renderTarget);try{this._renderer.render(this._scene,this._camera)}catch(e){throw this._renderer.setRenderTarget(null),e}this._renderer.setRenderTarget(null)});var i,a,r,s,o,c,h,f,d,m,g,y,E,S,v,_;this._width=e.width,this._height=e.height,this._type=e.type,this._colorSpace=e.colorSpace;const t={format:Rn,depthBuffer:!1,stencilBuffer:!1,type:this._type,colorSpace:this._colorSpace,anisotropy:((i=e.renderTargetOptions)==null?void 0:i.anisotropy)!==void 0?(a=e.renderTargetOptions)==null?void 0:a.anisotropy:1,generateMipmaps:((r=e.renderTargetOptions)==null?void 0:r.generateMipmaps)!==void 0?(s=e.renderTargetOptions)==null?void 0:s.generateMipmaps:!1,magFilter:((o=e.renderTargetOptions)==null?void 0:o.magFilter)!==void 0?(c=e.renderTargetOptions)==null?void 0:c.magFilter:Bt,minFilter:((h=e.renderTargetOptions)==null?void 0:h.minFilter)!==void 0?(f=e.renderTargetOptions)==null?void 0:f.minFilter:Bt,samples:((d=e.renderTargetOptions)==null?void 0:d.samples)!==void 0?(m=e.renderTargetOptions)==null?void 0:m.samples:void 0,wrapS:((g=e.renderTargetOptions)==null?void 0:g.wrapS)!==void 0?(y=e.renderTargetOptions)==null?void 0:y.wrapS:Vn,wrapT:((E=e.renderTargetOptions)==null?void 0:E.wrapT)!==void 0?(S=e.renderTargetOptions)==null?void 0:S.wrapT:Vn};if(this._material=e.material,e.renderer?this._renderer=e.renderer:(this._renderer=Yb.instantiateRenderer(),this._rendererIsDisposable=!0),this._scene=new al,this._camera=new Rr,this._camera.position.set(0,0,10),this._camera.left=-.5,this._camera.right=.5,this._camera.top=.5,this._camera.bottom=-.5,this._camera.updateProjectionMatrix(),!K$(this._type,this._renderer,this._camera,t)){let A;switch(this._type){case sn:A=this._renderer.extensions.has("EXT_color_buffer_float")?Sn:void 0;break}A!==void 0?(console.warn(`This browser does not support reading pixels from ${this._type} RenderTargets, switching to ${Sn}`),this._type=A):(this._supportsReadPixels=!1,console.warn("This browser dos not support toArray or toDataTexture, calls to those methods will result in an error thrown"))}this._quad=new Xn(new Us,this._material),this._quad.geometry.computeBoundingBox(),this._scene.add(this._quad),this._renderTarget=new oi(this.width,this.height,t),this._renderTarget.texture.mapping=((v=e.renderTargetOptions)==null?void 0:v.mapping)!==void 0?(_=e.renderTargetOptions)==null?void 0:_.mapping:pc}static instantiateRenderer(){const e=new ky;return e.setSize(128,128),e}toArray(){if(!this._supportsReadPixels)throw new Error("Can't read pixels in this browser");const e=$6(this._type,this._width,this._height);return this._renderer.readRenderTargetPixels(this._renderTarget,0,0,this._width,this._height,e),e}toDataTexture(e){const t=new Pa(this.toArray(),this.width,this.height,Rn,this._type,(e==null?void 0:e.mapping)||pc,(e==null?void 0:e.wrapS)||Vn,(e==null?void 0:e.wrapT)||Vn,(e==null?void 0:e.magFilter)||Bt,(e==null?void 0:e.minFilter)||Bt,(e==null?void 0:e.anisotropy)||1,Fi);return t.generateMipmaps=(e==null?void 0:e.generateMipmaps)!==void 0?e==null?void 0:e.generateMipmaps:!1,t}disposeOnDemandRenderer(){this._renderer.setRenderTarget(null),this._rendererIsDisposable&&(this._renderer.dispose(),this._renderer.forceContextLoss())}dispose(e){this.disposeOnDemandRenderer(),e&&this.renderTarget.dispose(),this.material instanceof Di&&Object.values(this.material.uniforms).forEach(t=>{t.value instanceof vn&&t.value.dispose()}),Object.values(this.material).forEach(t=>{t instanceof vn&&t.dispose()}),this.material.dispose(),this._quad.geometry.dispose()}get width(){return this._width}set width(e){this._width=e,this._renderTarget.setSize(this._width,this._height)}get height(){return this._height}set height(e){this._height=e,this._renderTarget.setSize(this._width,this._height)}get renderer(){return this._renderer}get renderTarget(){return this._renderTarget}set renderTarget(e){this._renderTarget=e,this._width=e.width,this._height=e.height}get material(){return this._material}get type(){return this._type}get colorSpace(){return this._colorSpace}}class e9 extends Error{}class t9 extends Error{}const Wp=(n,e,t)=>{const i=new RegExp(`${e}="([^"]*)"`,"i").exec(n);if(i)return i[1];const a=new RegExp(`<${e}[^>]*>([\\s\\S]*?)`,"i").exec(n);if(a){const r=a[1].match(/([^<]*)<\/rdf:li>/g);return r&&r.length===3?r.map(s=>s.replace(/<\/?rdf:li>/g,"")):a[1].trim()}if(t!==void 0)return t;throw new Error(`Can't find ${e} in gainmap metadata`)},J$=n=>{let e;typeof TextDecoder<"u"?e=new TextDecoder().decode(n):e=n.toString();let t=e.indexOf("",t),a=e.slice(t,i+10);try{const r=Wp(a,"hdrgm:GainMapMin","0"),s=Wp(a,"hdrgm:GainMapMax"),o=Wp(a,"hdrgm:Gamma","1"),c=Wp(a,"hdrgm:OffsetSDR","0.015625"),h=Wp(a,"hdrgm:OffsetHDR","0.015625"),f=/hdrgm:HDRCapacityMin="([^"]*)"/.exec(a),d=f?f[1]:"0",m=/hdrgm:HDRCapacityMax="([^"]*)"/.exec(a);if(!m)throw new Error("Incomplete gainmap metadata");const g=m[1];return{gainMapMin:Array.isArray(r)?r.map(y=>parseFloat(y)):[parseFloat(r),parseFloat(r),parseFloat(r)],gainMapMax:Array.isArray(s)?s.map(y=>parseFloat(y)):[parseFloat(s),parseFloat(s),parseFloat(s)],gamma:Array.isArray(o)?o.map(y=>parseFloat(y)):[parseFloat(o),parseFloat(o),parseFloat(o)],offsetSdr:Array.isArray(c)?c.map(y=>parseFloat(y)):[parseFloat(c),parseFloat(c),parseFloat(c)],offsetHdr:Array.isArray(h)?h.map(y=>parseFloat(y)):[parseFloat(h),parseFloat(h),parseFloat(h)],hdrCapacityMin:parseFloat(d),hdrCapacityMax:parseFloat(g)}}catch{}t=e.indexOf("{const a=this.options.debug,r=new DataView(e.buffer);if(r.getUint16(0)!==65496){i(new Error("Not a valid jpeg"));return}const s=r.byteLength;let o=2,c=0,h;for(;o250){i(new Error(`Found no marker after ${c} loops 😵`));return}if(r.getUint8(o)!==255){i(new Error(`Not a valid marker at offset 0x${o.toString(16)}, found: 0x${r.getUint8(o).toString(16)}`));return}if(h=r.getUint8(o+1),a&&console.log(`Marker: ${h.toString(16)}`),h===226){a&&console.log("Found APP2 marker (0xffe2)");const f=o+4;if(r.getUint32(f)===1297106432){const d=f+4;let m;if(r.getUint16(d)===18761)m=!1;else if(r.getUint16(d)===19789)m=!0;else{i(new Error("No valid endianness marker found in TIFF header"));return}if(r.getUint16(d+2,!m)!==42){i(new Error("Not valid TIFF data! (no 0x002A marker)"));return}const g=r.getUint32(d+4,!m);if(g<8){i(new Error("Not valid TIFF data! (First offset less than 8)"));return}const y=d+g,E=r.getUint16(y,!m),S=y+2;let v=0;for(let O=S;O{const e=J$(n);if(!e)throw new t9("Gain map XMP metadata not found");const i=await new Q$({extractFII:!0,extractNonFII:!0}).extract(n);if(i.length!==2)throw new e9("Gain map recovery image not found");return{sdr:new Uint8Array(await i[0].arrayBuffer()),gainMap:new Uint8Array(await i[1].arrayBuffer()),metadata:e}},cN=n=>new Promise((e,t)=>{const i=document.createElement("img");i.onload=()=>{e(i)},i.onerror=a=>{t(a)},i.src=URL.createObjectURL(n)});class eee extends yi{constructor(t,i){super(i);Ei(this,"_renderer");Ei(this,"_renderTargetOptions");Ei(this,"_internalLoadingManager");Ei(this,"_config");this._config=t,t.renderer&&(this._renderer=t.renderer),this._internalLoadingManager=new Fy}setRenderer(t){return this._renderer=t,this}setRenderTargetOptions(t){return this._renderTargetOptions=t,this}prepareQuadRenderer(){this._renderer||console.warn("WARNING: A Renderer was not passed to this Loader constructor or in setRenderer, the result of this Loader will need to be converted to a Data Texture with toDataTexture() before you can use it in your renderer.");const t=this._config.createMaterial({gainMapMax:[1,1,1],gainMapMin:[0,0,0],gamma:[1,1,1],offsetHdr:[1,1,1],offsetSdr:[1,1,1],hdrCapacityMax:1,hdrCapacityMin:0,maxDisplayBoost:1,gainMap:new vn,sdr:new vn});return this._config.createQuadRenderer({width:16,height:16,type:sn,colorSpace:Fi,material:t,renderer:this._renderer,renderTargetOptions:this._renderTargetOptions})}async processImages(t,i,a){const r=i?new Blob([i],{type:"image/jpeg"}):void 0,s=new Blob([t],{type:"image/jpeg"});let o,c,h=!1;if(typeof createImageBitmap>"u"){const f=await Promise.all([r?cN(r):Promise.resolve(void 0),cN(s)]);c=f[0],o=f[1],h=a==="flipY"}else{const f=await Promise.all([r?createImageBitmap(r,{imageOrientation:a||"flipY"}):Promise.resolve(void 0),createImageBitmap(s,{imageOrientation:a||"flipY"})]);c=f[0],o=f[1]}return{sdrImage:o,gainMapImage:c,needsFlip:h}}createTextures(t,i,a){const r=new vn(i||new ImageData(2,2),pc,Vn,Vn,Bt,e0,Rn,xi,1,Fi);r.flipY=a,r.needsUpdate=!0;const s=new vn(t,pc,Vn,Vn,Bt,e0,Rn,xi,1,Kn);return s.flipY=a,s.needsUpdate=!0,{gainMap:r,sdr:s}}updateQuadRenderer(t,i,a,r,s){t.width=i.width,t.height=i.height,t.material.gainMap=a,t.material.sdr=r,t.material.gainMapMin=s.gainMapMin,t.material.gainMapMax=s.gainMapMax,t.material.offsetHdr=s.offsetHdr,t.material.offsetSdr=s.offsetSdr,t.material.gamma=s.gamma,t.material.hdrCapacityMin=s.hdrCapacityMin,t.material.hdrCapacityMax=s.hdrCapacityMax,t.material.maxDisplayBoost=Math.pow(2,s.hdrCapacityMax),t.material.needsUpdate=!0}}const tee=` +varying vec2 vUv; + +void main() { + vUv = uv; + gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0); +} +`,nee=` +// min half float value +#define HALF_FLOAT_MIN vec3( -65504, -65504, -65504 ) +// max half float value +#define HALF_FLOAT_MAX vec3( 65504, 65504, 65504 ) + +uniform sampler2D sdr; +uniform sampler2D gainMap; +uniform vec3 gamma; +uniform vec3 offsetHdr; +uniform vec3 offsetSdr; +uniform vec3 gainMapMin; +uniform vec3 gainMapMax; +uniform float weightFactor; + +varying vec2 vUv; + +void main() { + vec3 rgb = texture2D( sdr, vUv ).rgb; + vec3 recovery = texture2D( gainMap, vUv ).rgb; + vec3 logRecovery = pow( recovery, gamma ); + vec3 logBoost = gainMapMin * ( 1.0 - logRecovery ) + gainMapMax * logRecovery; + vec3 hdrColor = (rgb + offsetSdr) * exp2( logBoost * weightFactor ) - offsetHdr; + vec3 clampedHdrColor = max( HALF_FLOAT_MIN, min( HALF_FLOAT_MAX, hdrColor )); + gl_FragColor = vec4( clampedHdrColor , 1.0 ); +} +`;class iee extends Di{constructor({gamma:t,offsetHdr:i,offsetSdr:a,gainMapMin:r,gainMapMax:s,maxDisplayBoost:o,hdrCapacityMin:c,hdrCapacityMax:h,sdr:f,gainMap:d}){super({name:"GainMapDecoderMaterial",vertexShader:tee,fragmentShader:nee,uniforms:{sdr:{value:f},gainMap:{value:d},gamma:{value:new H(1/t[0],1/t[1],1/t[2])},offsetHdr:{value:new H().fromArray(i)},offsetSdr:{value:new H().fromArray(a)},gainMapMin:{value:new H().fromArray(r)},gainMapMax:{value:new H().fromArray(s)},weightFactor:{value:(Math.log2(o)-c)/(h-c)}},blending:ga,depthTest:!1,depthWrite:!1});Ei(this,"_maxDisplayBoost");Ei(this,"_hdrCapacityMin");Ei(this,"_hdrCapacityMax");this._maxDisplayBoost=o,this._hdrCapacityMin=c,this._hdrCapacityMax=h,this.needsUpdate=!0,this.uniformsNeedUpdate=!0}get sdr(){return this.uniforms.sdr.value}set sdr(t){this.uniforms.sdr.value=t}get gainMap(){return this.uniforms.gainMap.value}set gainMap(t){this.uniforms.gainMap.value=t}get offsetHdr(){return this.uniforms.offsetHdr.value.toArray()}set offsetHdr(t){this.uniforms.offsetHdr.value.fromArray(t)}get offsetSdr(){return this.uniforms.offsetSdr.value.toArray()}set offsetSdr(t){this.uniforms.offsetSdr.value.fromArray(t)}get gainMapMin(){return this.uniforms.gainMapMin.value.toArray()}set gainMapMin(t){this.uniforms.gainMapMin.value.fromArray(t)}get gainMapMax(){return this.uniforms.gainMapMax.value.toArray()}set gainMapMax(t){this.uniforms.gainMapMax.value.fromArray(t)}get gamma(){const t=this.uniforms.gamma.value;return[1/t.x,1/t.y,1/t.z]}set gamma(t){const i=this.uniforms.gamma.value;i.x=1/t[0],i.y=1/t[1],i.z=1/t[2]}get hdrCapacityMin(){return this._hdrCapacityMin}set hdrCapacityMin(t){this._hdrCapacityMin=t,this.calculateWeight()}get hdrCapacityMax(){return this._hdrCapacityMax}set hdrCapacityMax(t){this._hdrCapacityMax=t,this.calculateWeight()}get maxDisplayBoost(){return this._maxDisplayBoost}set maxDisplayBoost(t){this._maxDisplayBoost=Math.max(1,Math.min(65504,t)),this.calculateWeight()}calculateWeight(){const t=(Math.log2(this._maxDisplayBoost)-this._hdrCapacityMin)/(this._hdrCapacityMax-this._hdrCapacityMin);this.uniforms.weightFactor.value=Math.max(0,Math.min(1,t))}}class n9 extends eee{constructor(e,t){super({renderer:e,createMaterial:i=>new iee(i),createQuadRenderer:i=>new Yb(i)},t)}async render(e,t,i,a){const{sdrImage:r,gainMapImage:s,needsFlip:o}=await this.processImages(i,a,"flipY"),{gainMap:c,sdr:h}=this.createTextures(r,s,o);this.updateQuadRenderer(e,r,c,h,t),e.render()}}class aee extends n9{load([e,t,i],a,r,s){const o=this.prepareQuadRenderer();let c,h,f;const d=async()=>{if(c&&h&&f){try{await this.render(o,f,c,h)}catch(w){this.manager.itemError(e),this.manager.itemError(t),this.manager.itemError(i),typeof s=="function"&&s(w),o.disposeOnDemandRenderer();return}typeof a=="function"&&a(o),this.manager.itemEnd(e),this.manager.itemEnd(t),this.manager.itemEnd(i),o.disposeOnDemandRenderer()}};let m=!0,g=0,y=0,E=!0,S=0,v=0,_=!0,A=0,b=0;const O=()=>{if(typeof r=="function"){const w=g+S+A,D=y+v+b,G=m&&E&&_;r(new ProgressEvent("progress",{lengthComputable:G,loaded:D,total:w}))}};this.manager.itemStart(e),this.manager.itemStart(t),this.manager.itemStart(i);const N=new oa(this._internalLoadingManager);N.setResponseType("arraybuffer"),N.setRequestHeader(this.requestHeader),N.setPath(this.path),N.setWithCredentials(this.withCredentials),N.load(e,async w=>{if(typeof w=="string")throw new Error("Invalid sdr buffer");c=w,await d()},w=>{m=w.lengthComputable,y=w.loaded,g=w.total,O()},w=>{this.manager.itemError(e),typeof s=="function"&&s(w)});const L=new oa(this._internalLoadingManager);L.setResponseType("arraybuffer"),L.setRequestHeader(this.requestHeader),L.setPath(this.path),L.setWithCredentials(this.withCredentials),L.load(t,async w=>{if(typeof w=="string")throw new Error("Invalid gainmap buffer");h=w,await d()},w=>{E=w.lengthComputable,v=w.loaded,S=w.total,O()},w=>{this.manager.itemError(t),typeof s=="function"&&s(w)});const B=new oa(this._internalLoadingManager);return B.setRequestHeader(this.requestHeader),B.setPath(this.path),B.setWithCredentials(this.withCredentials),B.load(i,async w=>{if(typeof w!="string")throw new Error("Invalid metadata string");f=JSON.parse(w),await d()},w=>{_=w.lengthComputable,b=w.loaded,A=w.total,O()},w=>{this.manager.itemError(i),typeof s=="function"&&s(w)}),o}}class ree extends n9{load(e,t,i,a){const r=this.prepareQuadRenderer(),s=new oa(this._internalLoadingManager);return s.setResponseType("arraybuffer"),s.setRequestHeader(this.requestHeader),s.setPath(this.path),s.setWithCredentials(this.withCredentials),this.manager.itemStart(e),s.load(e,async o=>{if(typeof o=="string")throw new Error("Invalid buffer, received [string], was expecting [ArrayBuffer]");const c=new Uint8Array(o);let h,f,d;try{const m=await $$(c);h=m.sdr,f=m.gainMap,d=m.metadata}catch(m){if(m instanceof t9||m instanceof e9)console.warn(`Failure to reconstruct an HDR image from ${e}: Gain map metadata not found in the file, HDRJPGLoader will render the SDR jpeg`),d={gainMapMin:[0,0,0],gainMapMax:[1,1,1],gamma:[1,1,1],hdrCapacityMin:0,hdrCapacityMax:1,offsetHdr:[0,0,0],offsetSdr:[0,0,0]},h=c;else throw m}try{await this.render(r,d,h.buffer,f==null?void 0:f.buffer)}catch(m){this.manager.itemError(e),typeof a=="function"&&a(m),r.disposeOnDemandRenderer();return}typeof t=="function"&&t(r),this.manager.itemEnd(e),r.disposeOnDemandRenderer()},i,o=>{this.manager.itemError(e),typeof a=="function"&&a(o)}),r}}const f0={apartment:"lebombo_1k.hdr",city:"potsdamer_platz_1k.hdr",dawn:"kiara_1_dawn_1k.hdr",forest:"forest_slope_1k.hdr",lobby:"st_fagans_interior_1k.hdr",night:"dikhololo_night_1k.hdr",park:"rooitou_park_1k.hdr",studio:"studio_small_03_1k.hdr",sunset:"venice_sunset_1k.hdr",warehouse:"empty_warehouse_01_1k.hdr"},i9="https://raw.githack.com/pmndrs/drei-assets/456060a26bbeb8fdf79326f224b6d99b8bcce736/hdri/",td=n=>Array.isArray(n),qb=["/px.png","/nx.png","/py.png","/ny.png","/pz.png","/nz.png"];function r_({files:n=qb,path:e="",preset:t=void 0,colorSpace:i=void 0,extensions:a}={}){t&&(Zb(t),n=f0[t],e=i9);const r=td(n),{extension:s,isCubemap:o}=jb(n),c=Kb(s);if(!c)throw new Error("useEnvironment: Unrecognized file extension: "+n);const h=jn(g=>g.gl);he.useLayoutEffect(()=>{if(s!=="webp"&&s!=="jpg"&&s!=="jpeg")return;function g(){sl.clear(c,r?[n]:n)}h.domElement.addEventListener("webglcontextlost",g,{once:!0})},[n,h.domElement]);const f=sl(c,r?[n]:n,g=>{(s==="webp"||s==="jpg"||s==="jpeg")&&g.setRenderer(h),g.setPath==null||g.setPath(e),a&&a(g)});let d=r?f[0]:f;if(s==="jpg"||s==="jpeg"||s==="webp"){var m;d=(m=d.renderTarget)==null?void 0:m.texture}return d.mapping=o?no:hd,d.colorSpace=i??(o?"srgb":"srgb-linear"),d}const see={files:qb,path:"",preset:void 0,extensions:void 0};r_.preload=n=>{const e={...see,...n};let{files:t,path:i=""}=e;const{preset:a,extensions:r}=e;a&&(Zb(a),t=f0[a],i=i9);const{extension:s}=jb(t);if(s==="webp"||s==="jpg"||s==="jpeg")throw new Error("useEnvironment: Preloading gainmaps is not supported");const o=Kb(s);if(!o)throw new Error("useEnvironment: Unrecognized file extension: "+t);sl.preload(o,td(t)?[t]:t,c=>{c.setPath==null||c.setPath(i),r&&r(c)})};const oee={files:qb,preset:void 0};r_.clear=n=>{const e={...oee,...n};let{files:t}=e;const{preset:i}=e;i&&(Zb(i),t=f0[i]);const{extension:a}=jb(t),r=Kb(a);if(!r)throw new Error("useEnvironment: Unrecognized file extension: "+t);sl.clear(r,td(t)?[t]:t)};function Zb(n){if(!(n in f0))throw new Error("Preset must be one of: "+Object.keys(f0).join(", "))}function jb(n){var e;const t=td(n)&&n.length===6,i=td(n)&&n.length===3&&n.some(s=>s.endsWith("json")),a=td(n)?n[0]:n;return{extension:t?"cube":i?"webp":a.startsWith("data:application/exr")?"exr":a.startsWith("data:application/hdr")?"hdr":a.startsWith("data:image/jpeg")?"jpg":(e=a.split(".").pop())==null||(e=e.split("?"))==null||(e=e.shift())==null?void 0:e.toLowerCase(),isCubemap:t,isGainmap:i}}function Kb(n){return n==="cube"?PB:n==="hdr"?z$:n==="exr"?G$:n==="jpg"||n==="jpeg"?ree:n==="webp"?aee:null}const lee=n=>n.current&&n.current.isScene,cee=n=>lee(n)?n.current:n;function Jb(n,e,t,i,a={}){var r,s,o,c;a={backgroundBlurriness:0,backgroundIntensity:1,backgroundRotation:[0,0,0],environmentIntensity:1,environmentRotation:[0,0,0],...a};const h=cee(e||t),f=h.background,d=h.environment,m={backgroundBlurriness:h.backgroundBlurriness,backgroundIntensity:h.backgroundIntensity,backgroundRotation:(r=(s=h.backgroundRotation)==null||s.clone==null?void 0:s.clone())!==null&&r!==void 0?r:[0,0,0],environmentIntensity:h.environmentIntensity,environmentRotation:(o=(c=h.environmentRotation)==null||c.clone==null?void 0:c.clone())!==null&&o!==void 0?o:[0,0,0]};return n!=="only"&&(h.environment=i),n&&(h.background=i),Ks(h,a),()=>{n!=="only"&&(h.environment=d),n&&(h.background=f),Ks(h,m)}}function Qb({scene:n,background:e=!1,map:t,...i}){const a=jn(r=>r.scene);return he.useLayoutEffect(()=>{if(t)return Jb(e,n,a,t,i)}),null}function a9({background:n=!1,scene:e,blur:t,backgroundBlurriness:i,backgroundIntensity:a,backgroundRotation:r,environmentIntensity:s,environmentRotation:o,...c}){const h=r_(c),f=jn(d=>d.scene);return he.useLayoutEffect(()=>Jb(n,e,f,h,{backgroundBlurriness:t??i,backgroundIntensity:a,backgroundRotation:r,environmentIntensity:s,environmentRotation:o})),he.useEffect(()=>()=>{h.dispose()},[h]),null}function uee({children:n,near:e=.1,far:t=1e3,resolution:i=256,frames:a=1,map:r,background:s=!1,blur:o,backgroundBlurriness:c,backgroundIntensity:h,backgroundRotation:f,environmentIntensity:d,environmentRotation:m,scene:g,files:y,path:E,preset:S=void 0,extensions:v}){const _=jn(B=>B.gl),A=jn(B=>B.scene),b=he.useRef(null),[O]=he.useState(()=>new al),N=he.useMemo(()=>{const B=new z3(i);return B.texture.type=sn,B},[i]);he.useEffect(()=>()=>{N.dispose()},[N]),he.useLayoutEffect(()=>{if(a===1){const B=_.autoClear;_.autoClear=!0,b.current.update(_,O),_.autoClear=B}return Jb(s,g,A,N.texture,{backgroundBlurriness:o??c,backgroundIntensity:h,backgroundRotation:f,environmentIntensity:d,environmentRotation:m})},[n,O,N.texture,g,A,s,a,_]);let L=1;return Ls(()=>{if(a===1/0||LSb({GroundProjectedEnvImpl:KQ}),[]),he.useEffect(()=>()=>{r.dispose()},[r]);const o=he.useMemo(()=>[s],[s]),c=(e=n.ground)==null?void 0:e.height,h=(t=n.ground)==null?void 0:t.radius,f=(i=(a=n.ground)==null?void 0:a.scale)!==null&&i!==void 0?i:1e3;return he.createElement(he.Fragment,null,he.createElement(Qb,eh({},n,{map:s})),he.createElement("groundProjectedEnvImpl",{args:o,scale:f,height:c,radius:h}))}function fee(n){return n.ground?he.createElement(hee,n):n.map?he.createElement(Qb,n):n.children?he.createElement(uee,n):he.createElement(a9,n)}const q0=he.createContext({}),dee=({ref:n,textures:e,ellipsoid:t=bd.WGS84,correctAltitude:i=!0,ground:a=!0,date:r,children:s})=>{const o=he.useRef({sunDirection:new H,moonDirection:new H,worldToECEFMatrix:new lt,inertialToECEFMatrix:new lt,overlay:null,shadow:null,shadowLength:null,lightingMask:null}),c=jn(({gl:E})=>E),h=he.useMemo(()=>typeof e=="string"?new F6().setType(c).load(e):void 0,[e,c]);he.useEffect(()=>{if(h!=null)return()=>{for(const E of Object.values(h))E==null||E.dispose()}},[h]);const f=he.useMemo(()=>e==null?new P6(c):void 0,[e,c]);he.useEffect(()=>{if(f!=null)return f.update().catch(E=>{console.error(E)}),()=>{f.dispose()}},[f]);const d=(f==null?void 0:f.textures)??(typeof e=="string"?h:e),m=he.useMemo(()=>({textures:d,ellipsoid:t,correctAltitude:i,ground:a,transientStates:o.current}),[d,t,i,a]),g=he.useMemo(()=>{const{sunDirection:E,moonDirection:S,inertialToECEFMatrix:v}=o.current;return _=>{rQ(_,v),sQ(_,E).applyMatrix4(v),oQ(_,S).applyMatrix4(v)}},[]),y=r!=null&&!isNaN(+r)?+r:void 0;return he.useEffect(()=>{y!=null&&g(y)},[y,g]),he.useImperativeHandle(n,()=>({...o.current,textures:d,updateByDate:g}),[d,g]),It.jsx(q0.Provider,{value:m,children:s})};function s_(n){const{irradianceTexture:e,scatteringTexture:t,transmittanceTexture:i,singleMieScatteringTexture:a,higherOrderScatteringTexture:r,ellipsoid:s,correctAltitude:o,sunDirection:c,sunAngularRadius:h,ground:f,renderTargetCount:d,...m}=n;return[{irradianceTexture:e,scatteringTexture:t,transmittanceTexture:i,singleMieScatteringTexture:a,higherOrderScatteringTexture:r,ellipsoid:s,correctAltitude:o,sunDirection:c,sunAngularRadius:h,ground:f,renderTargetCount:d},m]}function pee(n){const e=he.useMemo(()=>typeof n=="string"?new v6().load(n):void 0,[n]);return he.useEffect(()=>{if(e!=null)return()=>{e.dispose()}},[e]),(typeof n=="string"?e:n)??null}const mee=({ref:n,stbnTexture:e=W8,...t})=>{const{textures:i,transientStates:a,...r}=he.useContext(q0),[s,{blendFunction:o,...c}]=s_({...b6,...r,...i,...t}),h=he.useContext(bb),{normalPass:f,camera:d}=h,m="geometryPass"in h&&h.geometryPass instanceof Tb&&"geometryTexture"in h.geometryPass&&h.geometryPass.geometryTexture instanceof vn?h.geometryPass.geometryTexture:void 0,g=he.useMemo(()=>new za(void 0,{blendFunction:o}),[o]);he.useEffect(()=>()=>{g.dispose()},[g]);const[y,E]=he.useState(!1);Ls(()=>{a!=null&&(g.sunDirection.copy(a.sunDirection),g.moonDirection.copy(a.moonDirection),g.worldToECEFMatrix.copy(a.worldToECEFMatrix),g.overlay=a.overlay,g.shadow=a.shadow,g.shadowLength=a.shadowLength,g.lightingMask=a.lightingMask,!y&&g.shadow!=null&&E(!0))});const S=pee(y?e:void 0);return It.jsx("primitive",{ref:n,object:g,mainCamera:d,normalBuffer:m??(f==null?void 0:f.texture)??null,...s,...c,stbnTexture:S,octEncodedNormal:m!=null})};function gee(n){return e=>{for(const t of n)ET(t,e)}}function vee(n){return e=>{const t=[];for(const i of n){const a=ET(i,e),r=typeof a=="function";t.push(r?a:()=>ET(i,null))}return()=>{for(const i of t)i()}}}function ET(n,e){if(typeof n=="function")return n(e);n&&(n.current=e)}var xee=parseInt(he.version.split(".")[0],10)>=19?vee:gee;const yee=({ref:n,...e})=>{const{textures:t,transientStates:i,...a}=he.useContext(q0),[r,{sun:s,moon:o,moonDirection:c,moonAngularRadius:h,lunarRadianceScale:f,groundAlbedo:d,...m}]=s_({...H6,...a,...t,...e}),g=he.useMemo(()=>new i_,[]);return he.useEffect(()=>()=>{g.dispose()},[g]),Ls(()=>{i!=null&&(g.sunDirection.copy(i.sunDirection),g.moonDirection.copy(i.moonDirection),g.worldToECEFMatrix.copy(i.worldToECEFMatrix),g.shadowLength=i.shadowLength)}),It.jsx(j$,{renderOrder:E6,...m,ref:n,children:It.jsx("primitive",{object:g,...r,sun:s,moon:o,moonDirection:c,moonAngularRadius:h,lunarRadianceScale:f,groundAlbedo:d})})},_ee=({ref:n,data:e=tJ,...t})=>{const{textures:i,transientStates:a,...r}=he.useContext(q0),[s,{pointSize:o,radianceScale:c,intensity:h,background:f,...d}]=s_({...G6,...r,...i,...t}),[m,g]=he.useState(typeof e!="string"?e:void 0);he.useEffect(()=>{if(typeof e=="string"){const _=new k8;(async()=>{g(await _.loadAsync(e))})().catch(A=>{console.error(A)})}else g(e)},[e]);const y=he.useMemo(()=>m!=null?new AQ(m):void 0,[m]);he.useEffect(()=>()=>{y==null||y.dispose()},[y]);const E=he.useMemo(()=>new Vb,[]);he.useEffect(()=>()=>{E.dispose()},[E]);const S=he.useRef(null);Ls(({camera:_})=>{var A;a!=null&&_.isPerspectiveCamera===!0&&(E.sunDirection.copy(a.sunDirection),(A=S.current)==null||A.setRotationFromMatrix(a.inertialToECEFMatrix),E.worldToECEFMatrix.copy(a.worldToECEFMatrix))});const v=jn(({camera:_})=>_);return y==null||v.isPerspectiveCamera!==!0?null:It.jsxs("points",{ref:xee([S,n]),frustumCulled:!1,renderOrder:E6+1,...d,children:[It.jsx("primitive",{object:y}),It.jsx("primitive",{object:E,...s,pointSize:o,radianceScale:c,intensity:h,background:f,depthTest:!0,depthWrite:!1})]})};new F6;const uN=n_,hN=Ws,fN=Ys;class o_{constructor(e=0,t=0,i=0,a=0){this.expTerm=e,this.exponent=t,this.linearTerm=i,this.constantTerm=a}set(e=0,t=0,i=0,a=0){return this.expTerm=e,this.exponent=t,this.linearTerm=i,this.constantTerm=a,this}clone(){return new o_(this.expTerm,this.exponent,this.linearTerm,this.constantTerm)}copy(e){return this.expTerm=e.expTerm,this.exponent=e.exponent,this.linearTerm=e.linearTerm,this.constantTerm=e.constantTerm,this}}const See=["channel","altitude","height","densityScale","shapeAmount","shapeDetailAmount","weatherExponent","shapeAlteringBias","coverageFilterWidth","shadow","densityProfile"];function Aee(n,e){if(e!=null)for(const t of See){const i=e[t];i!=null&&(n[t]instanceof o_?n[t].copy(i):n[t]=i)}}const TT=class r9{constructor(e){this.channel="r",this.altitude=0,this.height=0,this.densityScale=.2,this.shapeAmount=1,this.shapeDetailAmount=1,this.weatherExponent=1,this.shapeAlteringBias=.35,this.coverageFilterWidth=.6,this.densityProfile=new o_(0,0,.75,.25),this.shadow=!1,this.set(e)}set(e){return Aee(this,e),this}clone(){return new r9(this)}copy(e){return this.channel=e.channel,this.altitude=e.altitude,this.height=e.height,this.densityScale=e.densityScale,this.shapeAmount=e.shapeAmount,this.shapeDetailAmount=e.shapeDetailAmount,this.weatherExponent=e.weatherExponent,this.shapeAlteringBias=e.shapeAlteringBias,this.coverageFilterWidth=e.coverageFilterWidth,this.densityProfile.copy(e.densityProfile),this.shadow=e.shadow,this}};TT.DEFAULT=new TT;let Bo=TT;const yf=Array.from({length:8},()=>({value:0,flag:0})),Yp=Array.from({length:3},()=>({min:0,max:0}));function Eee(n,e){return n.value!==e.value?n.value-e.value:n.flag-e.flag}const bT=class s9 extends Array{constructor(e){super(new Bo(e==null?void 0:e[0]),new Bo(e==null?void 0:e[1]),new Bo(e==null?void 0:e[2]),new Bo(e==null?void 0:e[3]))}set(e){return this[0].set(e==null?void 0:e[0]),this[1].set(e==null?void 0:e[1]),this[2].set(e==null?void 0:e[2]),this[3].set(e==null?void 0:e[3]),this}reset(){return this[0].copy(Bo.DEFAULT),this[1].copy(Bo.DEFAULT),this[2].copy(Bo.DEFAULT),this[3].copy(Bo.DEFAULT),this}clone(){return new s9(this)}copy(e){return this[0].copy(e[0]),this[1].copy(e[1]),this[2].copy(e[2]),this[3].copy(e[3]),this}get localWeatherChannels(){return this[0].channel+this[1].channel+this[2].channel+this[3].channel}packValues(e,t){return t.set(this[0][e],this[1][e],this[2][e],this[3][e])}packSums(e,t,i){return i.set(this[0][e]+this[0][t],this[1][e]+this[1][t],this[2][e]+this[2][t],this[3][e]+this[3][t])}packDensityProfiles(e,t){return t.set(this[0].densityProfile[e],this[1].densityProfile[e],this[2].densityProfile[e],this[3].densityProfile[e])}packIntervalHeights(e,t){for(let s=0;s<4;++s){const o=this[s];let c=yf[s];c.value=o.altitude,c.flag=0,c=yf[s+4],c.value=o.altitude+o.height,c.flag=1}yf.sort(Eee);let i=0,a=0;for(let s=0;s0){const h=Yp[i++];h.min=yf[s-1].value,h.max=o}a+=c===0?1:-1}for(;i<3;++i){const s=Yp[i];s.min=0,s.max=0}let r=Yp[0];e.x=r.min,t.x=r.max,r=Yp[1],e.y=r.min,t.y=r.max,r=Yp[2],e.z=r.min,t.z=r.max}};bT.DEFAULT=new bT([{channel:"r",altitude:750,height:650,densityScale:.2,shapeAmount:1,shapeDetailAmount:1,weatherExponent:1,shapeAlteringBias:.35,coverageFilterWidth:.6,shadow:!0},{channel:"g",altitude:1e3,height:1200,densityScale:.2,shapeAmount:1,shapeDetailAmount:1,weatherExponent:1,shapeAlteringBias:.35,coverageFilterWidth:.6,shadow:!0},{channel:"b",altitude:7500,height:500,densityScale:.003,shapeAmount:.4,shapeDetailAmount:0,weatherExponent:1,shapeAlteringBias:.35,coverageFilterWidth:.5},{channel:"a"}]);let o9=bT;var Tee="Invariant failed";function $l(n,e){if(!n)throw new Error(Tee)}let l9=class MT{constructor(e,t){this.near=[new H,new H,new H,new H],this.far=[new H,new H,new H,new H],e!=null&&t!=null&&this.setFromCamera(e,t)}clone(){return new MT().copy(this)}copy(e){for(let t=0;t<4;++t)this.near[t].copy(e.near[t]),this.far[t].copy(e.far[t]);return this}setFromCamera(e,t){const i=e.isOrthographicCamera===!0,a=e.projectionMatrixInverse;this.near[0].set(1,1,-1),this.near[1].set(1,-1,-1),this.near[2].set(-1,-1,-1),this.near[3].set(-1,1,-1);for(let r=0;r<4;++r)this.near[r].applyMatrix4(a);this.far[0].set(1,1,1),this.far[1].set(1,-1,1),this.far[2].set(-1,-1,1),this.far[3].set(-1,1,1);for(let r=0;r<4;++r){const s=this.far[r];s.applyMatrix4(a);const o=Math.abs(s.z);i?s.z*=Math.min(t/o,1):s.multiplyScalar(Math.min(t/o,1))}return this}split(e,t=[]){for(let i=0;i{for(let r=0;r{for(let r=0;r{for(let r=0;r{const i=new Ee;for(let a=0;a<16;++a)if(gN[a]===t){i.set((a%4+.5)/4,(Math.floor(a/4)+.5)/4);break}return[...n,i]},[]),Oee={resolutionScale:1,lightShafts:!0,shapeDetail:!0,turbulence:!0,haze:!0,clouds:{multiScatteringOctaves:8,accurateSunSkyLight:!0,accuratePhaseFunction:!1,maxIterationCount:500,minStepSize:50,maxStepSize:1e3,maxRayDistance:2e5,perspectiveStepScale:1.01,minDensity:1e-5,minExtinction:1e-5,minTransmittance:.01,maxIterationCountToGround:3,maxIterationCountToSun:2,minSecondaryStepSize:100,secondaryStepScale:2,maxShadowLengthIterationCount:500,minShadowLengthStepSize:50,maxShadowLengthRayDistance:2e5},shadow:{cascadeCount:3,mapSize:new Ee(512,512),maxIterationCount:50,minStepSize:100,maxStepSize:1e3,minDensity:1e-5,minExtinction:1e-5,minTransmittance:1e-4}},Vt=Oee,Iee={low:{...Vt,lightShafts:!1,shapeDetail:!1,turbulence:!1,clouds:{...Vt.clouds,accurateSunSkyLight:!1,maxIterationCount:200,minStepSize:100,maxRayDistance:1e5,minDensity:1e-4,minExtinction:1e-4,minTransmittance:.1,maxIterationCountToGround:0,maxIterationCountToSun:1},shadow:{...Vt.shadow,maxIterationCount:25,minDensity:1e-4,minExtinction:1e-4,minTransmittance:.01,cascadeCount:2,mapSize:new Ee(256,256)}},medium:{...Vt,lightShafts:!1,turbulence:!1,clouds:{...Vt.clouds,minDensity:1e-4,minExtinction:1e-4,accurateSunSkyLight:!1,maxIterationCountToSun:2,maxIterationCountToGround:1},shadow:{...Vt.shadow,minDensity:1e-4,minExtinction:1e-4,mapSize:new Ee(256,256)}},high:Vt,ultra:{...Vt,clouds:{...Vt.clouds,minStepSize:10},shadow:{...Vt.shadow,mapSize:new Ee(1024,1024)}}},Bee=`precision highp float; +precision highp sampler3D; +precision highp sampler2DArray; + +#include +#include + +#include "core/depth" +#include "core/math" +#include "core/turbo" +#include "core/generators" +#include "core/raySphereIntersection" +#include "core/cascadedShadowMaps" +#include "core/interleavedGradientNoise" +#include "core/vogelDisk" + +#include "atmosphere/bruneton/definitions" + +uniform AtmosphereParameters ATMOSPHERE; +uniform vec3 SUN_SPECTRAL_RADIANCE_TO_LUMINANCE; +uniform vec3 SKY_SPECTRAL_RADIANCE_TO_LUMINANCE; + +uniform sampler2D transmittance_texture; +uniform sampler3D scattering_texture; +uniform sampler2D irradiance_texture; +uniform sampler3D single_mie_scattering_texture; +uniform sampler3D higher_order_scattering_texture; + +#include "atmosphere/bruneton/common" +#include "atmosphere/bruneton/runtime" + +#include "types" +#include "parameters" +#include "clouds" + +#if !defined(RECIPROCAL_PI4) +#define RECIPROCAL_PI4 0.07957747154594767 +#endif // !defined(RECIPROCAL_PI4) + +uniform sampler2D depthBuffer; +uniform mat4 viewMatrix; +uniform mat4 reprojectionMatrix; +uniform mat4 viewReprojectionMatrix; +uniform float cameraNear; +uniform float cameraFar; +uniform float cameraHeight; +uniform vec2 temporalJitter; +uniform vec2 targetUvScale; +uniform float mipLevelScale; + +// Scattering +const vec2 scatterAnisotropy = vec2(SCATTER_ANISOTROPY_1, SCATTER_ANISOTROPY_2); +const float scatterAnisotropyMix = SCATTER_ANISOTROPY_MIX; +uniform float skyLightScale; +uniform float groundBounceScale; +uniform float powderScale; +uniform float powderExponent; + +// Primary raymarch +uniform int maxIterationCount; +uniform float minStepSize; +uniform float maxStepSize; +uniform float maxRayDistance; +uniform float perspectiveStepScale; + +// Secondary raymarch +uniform int maxIterationCountToSun; +uniform int maxIterationCountToGround; +uniform float minSecondaryStepSize; +uniform float secondaryStepScale; + +// Beer shadow map +uniform sampler2DArray shadowBuffer; +uniform vec2 shadowTexelSize; +uniform vec2 shadowIntervals[SHADOW_CASCADE_COUNT]; +uniform mat4 shadowMatrices[SHADOW_CASCADE_COUNT]; +uniform float shadowFar; +uniform float maxShadowFilterRadius; + +// Shadow length +#ifdef SHADOW_LENGTH +uniform int maxShadowLengthIterationCount; +uniform float minShadowLengthStepSize; +uniform float maxShadowLengthRayDistance; +#endif // SHADOW_LENGTH + +in vec2 vUv; +in vec3 vCameraPosition; +in vec3 vCameraDirection; // Direction to the center of screen +in vec3 vRayDirection; // Direction to the texel +in vec3 vViewPosition; +in GroundIrradiance vGroundIrradiance; +in CloudsIrradiance vCloudsIrradiance; + +layout(location = 0) out vec4 outputColor; +layout(location = 1) out vec3 outputDepthVelocity; +#ifdef SHADOW_LENGTH +layout(location = 2) out float outputShadowLength; +#endif // SHADOW_LENGTH + +float readDepth(const vec2 uv) { + #if DEPTH_PACKING == 3201 + return unpackRGBAToDepth(texture(depthBuffer, uv)); + #else // DEPTH_PACKING == 3201 + return texture(depthBuffer, uv).r; + #endif // DEPTH_PACKING == 3201 +} + +float getViewZ(const float depth) { + #ifdef PERSPECTIVE_CAMERA + return perspectiveDepthToViewZ(depth, cameraNear, cameraFar); + #else // PERSPECTIVE_CAMERA + return orthographicDepthToViewZ(depth, cameraNear, cameraFar); + #endif // PERSPECTIVE_CAMERA +} + +vec3 ecefToWorld(const vec3 positionECEF) { + return (ecefToWorldMatrix * vec4(positionECEF - altitudeCorrection, 1.0)).xyz; +} + +vec2 getShadowUv(const vec3 worldPosition, const int cascadeIndex) { + vec4 clip = shadowMatrices[cascadeIndex] * vec4(worldPosition, 1.0); + clip /= clip.w; + return clip.xy * 0.5 + 0.5; +} + +float getDistanceToShadowTop(const vec3 rayPosition) { + // Distance to the top of the shadows along the sun direction, which matches + // the ray origin of BSM. + return raySphereSecondIntersection( + rayPosition, + sunDirection, + vec3(0.0), + bottomRadius + shadowTopHeight + ); +} + +#ifdef DEBUG_SHOW_CASCADES + +const vec3 cascadeColors[4] = vec3[4]( + vec3(1.0, 0.0, 0.0), + vec3(0.0, 1.0, 0.0), + vec3(0.0, 0.0, 1.0), + vec3(1.0, 1.0, 0.0) +); + +vec3 getCascadeColor(const vec3 rayPosition) { + vec3 worldPosition = ecefToWorld(rayPosition); + int cascadeIndex = getCascadeIndex( + viewMatrix, + worldPosition, + shadowIntervals, + cameraNear, + shadowFar + ); + vec2 uv = getShadowUv(worldPosition, cascadeIndex); + if (uv.x < 0.0 || uv.x > 1.0 || uv.y < 0.0 || uv.y > 1.0) { + return vec3(1.0); + } + return cascadeColors[cascadeIndex]; +} + +vec3 getFadedCascadeColor(const vec3 rayPosition, const float jitter) { + vec3 worldPosition = ecefToWorld(rayPosition); + int cascadeIndex = getFadedCascadeIndex( + viewMatrix, + worldPosition, + shadowIntervals, + cameraNear, + shadowFar, + jitter + ); + return cascadeIndex >= 0 + ? cascadeColors[cascadeIndex] + : vec3(1.0); +} + +#endif // DEBUG_SHOW_CASCADES + +float readShadowOpticalDepth( + const vec2 uv, + const float distanceToTop, + const float distanceOffset, + const int cascadeIndex +) { + // r: frontDepth, g: meanExtinction, b: maxOpticalDepth, a: maxOpticalDepthTail + // Also see the discussion here: https://x.com/shotamatsuda/status/1885322308908442106 + vec4 shadow = texture(shadowBuffer, vec3(uv, float(cascadeIndex))); + float distanceToFront = max(0.0, distanceToTop - distanceOffset - shadow.r); + return min(shadow.b + shadow.a, shadow.g * distanceToFront); +} + +float sampleShadowOpticalDepthPCF( + const vec3 worldPosition, + const float distanceToTop, + const float distanceOffset, + const float radius, + const int cascadeIndex +) { + vec2 uv = getShadowUv(worldPosition, cascadeIndex); + if (uv.x < 0.0 || uv.x > 1.0 || uv.y < 0.0 || uv.y > 1.0) { + return 0.0; + } + if (radius < 0.1) { + return readShadowOpticalDepth(uv, distanceToTop, distanceOffset, cascadeIndex); + } + float sum = 0.0; + vec2 offset; + #pragma unroll_loop_start + for (int i = 0; i < 16; ++i) { + #if UNROLLED_LOOP_INDEX < SHADOW_SAMPLE_COUNT + offset = vogelDisk( + UNROLLED_LOOP_INDEX, + SHADOW_SAMPLE_COUNT, + interleavedGradientNoise(gl_FragCoord.xy + temporalJitter * resolution) * PI2 + ); + sum += readShadowOpticalDepth( + uv + offset * radius * shadowTexelSize, + distanceToTop, + distanceOffset, + cascadeIndex + ); + #endif // UNROLLED_LOOP_INDEX < SHADOW_SAMPLE_COUNT + } + #pragma unroll_loop_end + return sum / float(SHADOW_SAMPLE_COUNT); +} + +float sampleShadowOpticalDepth( + const vec3 rayPosition, + const float distanceOffset, + const float radius, + const float jitter +) { + float distanceToTop = getDistanceToShadowTop(rayPosition); + if (distanceToTop <= 0.0) { + return 0.0; + } + vec3 worldPosition = ecefToWorld(rayPosition); + int cascadeIndex = getFadedCascadeIndex( + viewMatrix, + worldPosition, + shadowIntervals, + cameraNear, + shadowFar, + jitter + ); + return cascadeIndex >= 0 + ? sampleShadowOpticalDepthPCF( + worldPosition, + distanceToTop, + distanceOffset, + radius, + cascadeIndex + ) + : 0.0; +} + +#ifdef DEBUG_SHOW_SHADOW_MAP +vec4 getCascadedShadowMaps(vec2 uv) { + vec4 coord = vec4(vUv, vUv - 0.5) * 2.0; + vec4 shadow = vec4(0.0); + if (uv.y > 0.5) { + if (uv.x < 0.5) { + shadow = texture(shadowBuffer, vec3(coord.xw, 0.0)); + } else { + #if SHADOW_CASCADE_COUNT > 1 + shadow = texture(shadowBuffer, vec3(coord.zw, 1.0)); + #endif // SHADOW_CASCADE_COUNT > 1 + } + } else { + if (uv.x < 0.5) { + #if SHADOW_CASCADE_COUNT > 2 + shadow = texture(shadowBuffer, vec3(coord.xy, 2.0)); + #endif // SHADOW_CASCADE_COUNT > 2 + } else { + #if SHADOW_CASCADE_COUNT > 3 + shadow = texture(shadowBuffer, vec3(coord.zy, 3.0)); + #endif // SHADOW_CASCADE_COUNT > 3 + } + } + + #if !defined(DEBUG_SHOW_SHADOW_MAP_TYPE) + #define DEBUG_SHOW_SHADOW_MAP_TYPE 0 + #endif // !defined(DEBUG_SHOW_SHADOW_MAP_TYPE + + const float frontDepthScale = 1e-5; + const float meanExtinctionScale = 10.0; + const float maxOpticalDepthScale = 0.01; + vec3 color; + #if DEBUG_SHOW_SHADOW_MAP_TYPE == 1 + color = vec3(shadow.r * frontDepthScale); + #elif DEBUG_SHOW_SHADOW_MAP_TYPE == 2 + color = vec3(shadow.g * meanExtinctionScale); + #elif DEBUG_SHOW_SHADOW_MAP_TYPE == 3 + color = vec3((shadow.b + shadow.a) * maxOpticalDepthScale); + #else // DEBUG_SHOW_SHADOW_MAP_TYPE + color = + (shadow.rgb + vec3(0.0, 0.0, shadow.a)) * + vec3(frontDepthScale, meanExtinctionScale, maxOpticalDepthScale); + #endif // DEBUG_SHOW_SHADOW_MAP_TYPE + return vec4(color, 1.0); +} +#endif // DEBUG_SHOW_SHADOW_MAP + +vec2 henyeyGreenstein(const vec2 g, const float cosTheta) { + vec2 g2 = g * g; + // prettier-ignore + return RECIPROCAL_PI4 * + ((1.0 - g2) / max(vec2(1e-7), pow(1.0 + g2 - 2.0 * g * cosTheta, vec2(1.5)))); +} + +#ifdef ACCURATE_PHASE_FUNCTION + +float draine(float u, float g, float a) { + float g2 = g * g; + // prettier-ignore + return (1.0 - g2) * + (1.0 + a * u * u) / + (4.0 * (1.0 + a * (1.0 + 2.0 * g2) / 3.0) * PI * pow(1.0 + g2 - 2.0 * g * u, 1.5)); +} + +// Numerically-fitted large particles (d=10) phase function It won't be +// plausible without a more precise multiple scattering. +// Reference: https://research.nvidia.com/labs/rtr/approximate-mie/ +float phaseFunction(const float cosTheta, const float attenuation) { + const float gHG = 0.988176691700256; // exp(-0.0990567/(d-1.67154)) + const float gD = 0.5556712547839497; // exp(-2.20679/(d+3.91029) - 0.428934) + const float alpha = 21.995520856274638; // exp(3.62489 - 8.29288/(d+5.52825)) + const float weight = 0.4819554318404214; // exp(-0.599085/(d-0.641583)-0.665888) + return mix( + henyeyGreenstein(vec2(gHG) * attenuation, cosTheta).x, + draine(cosTheta, gD * attenuation, alpha), + weight + ); +} + +#else // ACCURATE_PHASE_FUNCTION + +float phaseFunction(const float cosTheta, const float attenuation) { + const vec2 g = scatterAnisotropy; + const vec2 weights = vec2(1.0 - scatterAnisotropyMix, scatterAnisotropyMix); + // A similar approximation is described in the Frostbite's paper, where phase + // angle is attenuated instead of anisotropy. + return dot(henyeyGreenstein(g * attenuation, cosTheta), weights); +} + +#endif // ACCURATE_PHASE_FUNCTION + +float phaseFunction(const float cosTheta) { + return phaseFunction(cosTheta, 1.0); +} + +float marchOpticalDepth( + const vec3 rayOrigin, + const vec3 rayDirection, + const int maxIterationCount, + const float mipLevel, + const float jitter, + out float rayDistance +) { + int iterationCount = int( + max(0.0, remap(mipLevel, 0.0, 1.0, float(maxIterationCount + 1), 1.0) - jitter) + ); + if (iterationCount == 0) { + // Fudge factor to approximate the mean optical depth. + // TODO: Remove it. + return 0.5; + } + float stepSize = minSecondaryStepSize / float(iterationCount); + float nextDistance = stepSize * jitter; + float opticalDepth = 0.0; + for (int i = 0; i < iterationCount; ++i) { + rayDistance = nextDistance; + vec3 position = rayDistance * rayDirection + rayOrigin; + vec2 uv = getGlobeUv(position); + float height = length(position) - bottomRadius; + WeatherSample weather = sampleWeather(uv, height, mipLevel); + MediaSample media = sampleMedia(weather, position, uv, mipLevel, jitter); + opticalDepth += media.extinction * stepSize; + nextDistance += stepSize; + stepSize *= secondaryStepScale; + } + return opticalDepth; +} + +float marchOpticalDepth( + const vec3 rayOrigin, + const vec3 rayDirection, + const int maxIterationCount, + const float mipLevel, + const float jitter +) { + float rayDistance; + return marchOpticalDepth( + rayOrigin, + rayDirection, + maxIterationCount, + mipLevel, + jitter, + rayDistance + ); +} + +float approximateMultipleScattering(const float opticalDepth, const float cosTheta) { + // Multiple scattering approximation + // See: https://fpsunflower.github.io/ckulla/data/oz_volumes.pdf + // a: attenuation, b: contribution, c: phase attenuation + vec3 coeffs = vec3(1.0); // [a, b, c] + const vec3 attenuation = vec3(0.5, 0.5, 0.5); // Should satisfy a <= b + float scattering = 0.0; + float beerLambert; + #pragma unroll_loop_start + for (int i = 0; i < 12; ++i) { + #if UNROLLED_LOOP_INDEX < MULTI_SCATTERING_OCTAVES + beerLambert = exp(-opticalDepth * coeffs.y); + scattering += coeffs.x * beerLambert * phaseFunction(cosTheta, coeffs.z); + coeffs *= attenuation; + #endif // UNROLLED_LOOP_INDEX < MULTI_SCATTERING_OCTAVES + } + #pragma unroll_loop_end + return scattering; +} + +// TODO: Construct spherical harmonics of degree 2 using 2 sample points +// positioned near the horizon occlusion points on the sun direction plane. +vec3 getGroundSunSkyIrradiance( + const vec3 position, + const vec3 surfaceNormal, + const float height, + out vec3 skyIrradiance +) { + #ifdef ACCURATE_SUN_SKY_LIGHT + return GetSunAndSkyIrradiance( + (position - surfaceNormal * height) * METER_TO_LENGTH_UNIT, + surfaceNormal, + sunDirection, + skyIrradiance + ); + #else // ACCURATE_SUN_SKY_LIGHT + skyIrradiance = vGroundIrradiance.sky; + return vGroundIrradiance.sun; + #endif // ACCURATE_SUN_SKY_LIGHT +} + +vec3 getCloudsSunSkyIrradiance(const vec3 position, const float height, out vec3 skyIrradiance) { + #ifdef ACCURATE_SUN_SKY_LIGHT + return GetSunAndSkyScalarIrradiance(position * METER_TO_LENGTH_UNIT, sunDirection, skyIrradiance); + #else // ACCURATE_SUN_SKY_LIGHT + float alpha = remapClamped(height, minHeight, maxHeight); + skyIrradiance = mix(vCloudsIrradiance.minSky, vCloudsIrradiance.maxSky, alpha); + return mix(vCloudsIrradiance.minSun, vCloudsIrradiance.maxSun, alpha); + #endif // ACCURATE_SUN_SKY_LIGHT +} + +#ifdef GROUND_BOUNCE +vec3 approximateRadianceFromGround( + const vec3 position, + const vec3 surfaceNormal, + const float height, + const float mipLevel, + const float jitter +) { + float opticalDepthToGround = marchOpticalDepth( + position, + -surfaceNormal, + maxIterationCountToGround, + mipLevel, + jitter + ); + vec3 skyIrradiance; + vec3 sunIrradiance = getGroundSunSkyIrradiance(position, surfaceNormal, height, skyIrradiance); + const float groundAlbedo = 0.3; + vec3 groundIrradiance = skyIrradiance + (1.0 - coverage) * sunIrradiance; + vec3 bouncedRadiance = groundAlbedo * RECIPROCAL_PI * groundIrradiance; + return bouncedRadiance * exp(-opticalDepthToGround); +} +#endif // GROUND_BOUNCE + +vec4 marchClouds( + const vec3 rayOrigin, + const vec3 rayDirection, + const vec2 rayNearFar, + const float cosTheta, + const float jitter, + const float rayStartTexelsPerPixel, + out float frontDepth, + out ivec3 sampleCount +) { + vec3 radianceIntegral = vec3(0.0); + float transmittanceIntegral = 1.0; + float weightedDistanceSum = 0.0; + float transmittanceSum = 0.0; + + float maxRayDistance = rayNearFar.y - rayNearFar.x; + float stepSize = minStepSize + (perspectiveStepScale - 1.0) * rayNearFar.x; + // I don't understand why spatial aliasing remains unless doubling the jitter. + float rayDistance = stepSize * jitter * 2.0; + + for (int i = 0; i < maxIterationCount; ++i) { + if (rayDistance > maxRayDistance) { + break; // Termination + } + + vec3 position = rayDistance * rayDirection + rayOrigin; + float height = length(position) - bottomRadius; + float mipLevel = log2(max(1.0, rayStartTexelsPerPixel + rayDistance * 1e-5)); + + #if !defined(DEBUG_MARCH_INTERVALS) + if (insideLayerIntervals(height)) { + stepSize *= perspectiveStepScale; + rayDistance += mix(stepSize, maxStepSize, min(1.0, mipLevel)); + continue; + } + #endif // !defined(DEBUG_MARCH_INTERVALS) + + // Sample rough weather. + vec2 uv = getGlobeUv(position); + WeatherSample weather = sampleWeather(uv, height, mipLevel); + + #ifdef DEBUG_SHOW_SAMPLE_COUNT + ++sampleCount.x; + #endif // DEBUG_SHOW_SAMPLE_COUNT + + if (!any(greaterThan(weather.density, vec4(minDensity)))) { + // Step longer in empty space. + // TODO: This produces banding artifacts. + // Possible improvement: Binary search refinement + stepSize *= perspectiveStepScale; + rayDistance += mix(stepSize, maxStepSize, min(1.0, mipLevel)); + continue; + } + + // Sample detailed participating media. + MediaSample media = sampleMedia(weather, position, uv, mipLevel, jitter, sampleCount); + + if (media.extinction > minExtinction) { + vec3 skyIrradiance; + vec3 sunIrradiance = getCloudsSunSkyIrradiance(position, height, skyIrradiance); + vec3 surfaceNormal = normalize(position); + + // March optical depth to the sun for finer details, which BSM lacks. + float sunRayDistance = 0.0; + float opticalDepth = marchOpticalDepth( + position, + sunDirection, + maxIterationCountToSun, + mipLevel, + jitter, + sunRayDistance + ); + + if (height < shadowTopHeight) { + // Obtain the optical depth from BSM at the ray position. + opticalDepth += sampleShadowOpticalDepth( + position, + // Take account of only positions further than the marched ray + // distance. + sunRayDistance, + // Apply PCF only when the sun is close to the horizon. + maxShadowFilterRadius * remapClamped(dot(sunDirection, surfaceNormal), 0.1, 0.0), + jitter + ); + } + + vec3 radiance = sunIrradiance * approximateMultipleScattering(opticalDepth, cosTheta); + + #ifdef GROUND_BOUNCE + // Fudge factor for the irradiance from ground. + if (height < shadowTopHeight && mipLevel < 0.5) { + vec3 groundRadiance = approximateRadianceFromGround( + position, + surfaceNormal, + height, + mipLevel, + jitter + ); + radiance += groundRadiance * RECIPROCAL_PI4 * groundBounceScale; + } + #endif // GROUND_BOUNCE + + // Crude approximation of sky gradient. Better than none in the shadows. + float skyGradient = dot(weather.heightFraction * 0.5 + 0.5, media.weight); + radiance += skyIrradiance * RECIPROCAL_PI4 * skyGradient * skyLightScale; + + // Finally multiply by scattering. + radiance *= media.scattering; + + #ifdef POWDER + radiance *= 1.0 - powderScale * exp(-media.extinction * powderExponent); + #endif // POWDER + + #ifdef DEBUG_SHOW_CASCADES + if (height < shadowTopHeight) { + radiance = 1e-3 * getFadedCascadeColor(position, jitter); + } + #endif // DEBUG_SHOW_CASCADES + + // Energy-conserving analytical integration of scattered light + // See 5.6.3 in https://media.contentapi.ea.com/content/dam/eacom/frostbite/files/s2016-pbs-frostbite-sky-clouds-new.pdf + float transmittance = exp(-media.extinction * stepSize); + float clampedExtinction = max(media.extinction, 1e-7); + vec3 scatteringIntegral = (radiance - radiance * transmittance) / clampedExtinction; + radianceIntegral += transmittanceIntegral * scatteringIntegral; + transmittanceIntegral *= transmittance; + + // Aerial perspective affecting clouds + // See 5.9.1 in https://media.contentapi.ea.com/content/dam/eacom/frostbite/files/s2016-pbs-frostbite-sky-clouds-new.pdf + weightedDistanceSum += rayDistance * transmittanceIntegral; + transmittanceSum += transmittanceIntegral; + } + + if (transmittanceIntegral <= minTransmittance) { + break; // Early termination + } + + // Take a shorter step because we've already hit the clouds. + stepSize *= perspectiveStepScale; + rayDistance += stepSize; + } + + // The final product of 5.9.1 and we'll evaluate this in aerial perspective. + frontDepth = transmittanceSum > 0.0 ? weightedDistanceSum / transmittanceSum : -1.0; + + return vec4(radianceIntegral, remapClamped(transmittanceIntegral, 1.0, minTransmittance)); +} + +#ifdef SHADOW_LENGTH + +float marchShadowLength( + const vec3 rayOrigin, + const vec3 rayDirection, + const vec2 rayNearFar, + const float jitter +) { + float shadowLength = 0.0; + float maxRayDistance = rayNearFar.y - rayNearFar.x; + float stepSize = minShadowLengthStepSize; + float rayDistance = stepSize * jitter; + const float attenuationFactor = 1.0 - 5e-4; + float attenuation = 1.0; + + // TODO: This march is closed, and sample resolution can be much lower. + // Refining the termination by binary search will make it much more efficient. + for (int i = 0; i < maxShadowLengthIterationCount; ++i) { + if (rayDistance > maxRayDistance) { + break; // Termination + } + vec3 position = rayDistance * rayDirection + rayOrigin; + float opticalDepth = sampleShadowOpticalDepth(position, 0.0, 0.0, jitter); + shadowLength += (1.0 - exp(-opticalDepth)) * stepSize * attenuation; + stepSize *= perspectiveStepScale; + rayDistance += stepSize; + } + return shadowLength; +} + +#endif // SHADOW_LENGTH + +#ifdef HAZE + +vec4 approximateHaze( + const vec3 rayOrigin, + const vec3 rayDirection, + const float maxRayDistance, + const float cosTheta, + const float shadowLength +) { + float modulation = remapClamped(coverage, 0.2, 0.4); + if (cameraHeight * modulation < 0.0) { + return vec4(0.0); + } + float density = modulation * hazeDensityScale * exp(-cameraHeight * hazeExponent); + if (density < 1e-7) { + return vec4(0.0); // Prevent artifact in views from space + } + + // Blend two normals by the difference in angle so that normal near the + // ground becomes that of the origin, and in the sky that of the horizon. + vec3 normalAtOrigin = normalize(rayOrigin); + vec3 normalAtHorizon = (rayOrigin - dot(rayOrigin, rayDirection) * rayDirection) / bottomRadius; + float alpha = remapClamped(dot(normalAtOrigin, normalAtHorizon), 0.9, 1.0); + vec3 normal = mix(normalAtOrigin, normalAtHorizon, alpha); + + // Analytical optical depth where density exponentially decreases with height. + // Based on: https://iquilezles.org/articles/fog/ + float angle = max(dot(normal, rayDirection), 1e-5); + float exponent = angle * hazeExponent; + float linearTerm = density / hazeExponent / angle; + + // Derive the optical depths separately for with and without shadow length. + float expTerm = 1.0 - exp(-maxRayDistance * exponent); + float shadowExpTerm = 1.0 - exp(-min(maxRayDistance, shadowLength) * exponent); + float opticalDepth = expTerm * linearTerm; + float shadowOpticalDepth = max((expTerm - shadowExpTerm) * linearTerm, 0.0); + float transmittance = saturate(1.0 - exp(-opticalDepth)); + float shadowTransmittance = saturate(1.0 - exp(-shadowOpticalDepth)); + + vec3 skyIrradiance = vGroundIrradiance.sky; + vec3 sunIrradiance = vGroundIrradiance.sun; + vec3 inscatter = sunIrradiance * phaseFunction(cosTheta) * shadowTransmittance; + inscatter += skyIrradiance * RECIPROCAL_PI4 * skyLightScale * transmittance; + inscatter *= hazeScatteringCoefficient / (hazeAbsorptionCoefficient + hazeScatteringCoefficient); + return vec4(inscatter, transmittance); +} + +#endif // HAZE + +void applyAerialPerspective( + const vec3 cameraPosition, + const vec3 frontPosition, + const float shadowLength, + inout vec4 color +) { + vec3 transmittance; + vec3 inscatter = GetSkyRadianceToPoint( + cameraPosition * METER_TO_LENGTH_UNIT, + frontPosition * METER_TO_LENGTH_UNIT, + shadowLength * METER_TO_LENGTH_UNIT, + sunDirection, + transmittance + ); + color.rgb = color.rgb * transmittance + inscatter * color.a; +} + +bool rayIntersectsGround(const vec3 cameraPosition, const vec3 rayDirection) { + float r = length(cameraPosition); + float mu = dot(cameraPosition, rayDirection) / r; + return mu < 0.0 && r * r * (mu * mu - 1.0) + bottomRadius * bottomRadius >= 0.0; +} + +struct IntersectionResult { + bool ground; + vec4 first; + vec4 second; +}; + +IntersectionResult getIntersections(const vec3 cameraPosition, const vec3 rayDirection) { + IntersectionResult intersections; + intersections.ground = rayIntersectsGround(cameraPosition, rayDirection); + raySphereIntersections( + cameraPosition, + rayDirection, + bottomRadius + vec4(0.0, minHeight, maxHeight, shadowTopHeight), + intersections.first, + intersections.second + ); + return intersections; +} + +vec2 getRayNearFar(const IntersectionResult intersections) { + vec2 nearFar; + if (cameraHeight < minHeight) { + // View below the clouds + if (intersections.ground) { + nearFar = vec2(-1.0); // No clouds to the ground + } else { + nearFar = vec2(intersections.second.y, intersections.second.z); + nearFar.y = min(nearFar.y, maxRayDistance); + } + } else if (cameraHeight < maxHeight) { + // View inside the total cloud layer + if (intersections.ground) { + nearFar = vec2(cameraNear, intersections.first.y); + } else { + nearFar = vec2(cameraNear, intersections.second.z); + } + } else { + // View above the clouds + nearFar = vec2(intersections.first.z, intersections.second.z); + if (intersections.ground) { + // Clamp the ray at the min height. + nearFar.y = intersections.first.y; + } + } + return nearFar; +} + +#ifdef SHADOW_LENGTH +vec2 getShadowRayNearFar(const IntersectionResult intersections) { + vec2 nearFar; + if (cameraHeight < shadowTopHeight) { + if (intersections.ground) { + nearFar = vec2(cameraNear, intersections.first.x); + } else { + nearFar = vec2(cameraNear, intersections.second.w); + } + } else { + nearFar = vec2(intersections.first.w, intersections.second.w); + if (intersections.ground) { + // Clamp the ray at the ground. + nearFar.y = intersections.first.x; + } + } + nearFar.y = min(nearFar.y, maxShadowLengthRayDistance); + return nearFar; +} +#endif // SHADOW_LENGTH + +#ifdef HAZE +vec2 getHazeRayNearFar(const IntersectionResult intersections) { + vec2 nearFar; + if (cameraHeight < maxHeight) { + if (intersections.ground) { + nearFar = vec2(cameraNear, intersections.first.x); + } else { + nearFar = vec2(cameraNear, intersections.second.z); + } + } else { + nearFar = vec2(cameraNear, intersections.second.z); + if (intersections.ground) { + // Clamp the ray at the ground. + nearFar.y = intersections.first.x; + } + } + return nearFar; +} +#endif // HAZE + +float getRayDistanceToScene(const vec3 rayDirection, out float viewZ) { + float depth = readDepth(vUv * targetUvScale + temporalJitter); + if (depth < 1.0 - 1e-7) { + depth = reverseLogDepth(depth, cameraNear, cameraFar); + viewZ = getViewZ(depth); + return -viewZ / dot(rayDirection, vCameraDirection); + } + viewZ = 0.0; + return 0.0; +} + +void main() { + #ifdef DEBUG_SHOW_SHADOW_MAP + outputColor = getCascadedShadowMaps(vUv); + outputDepthVelocity = vec3(0.0); + #ifdef SHADOW_LENGTH + outputShadowLength = 0.0; + #endif // SHADOW_LENGTH + return; + #endif // DEBUG_SHOW_SHADOW_MAP + + vec3 cameraPosition = vCameraPosition + altitudeCorrection; + vec3 rayDirection = normalize(vRayDirection); + float cosTheta = dot(sunDirection, rayDirection); + + IntersectionResult intersections = getIntersections(cameraPosition, rayDirection); + vec2 rayNearFar = getRayNearFar(intersections); + #ifdef SHADOW_LENGTH + vec2 shadowRayNearFar = getShadowRayNearFar(intersections); + #endif // SHADOW_LENGTH + #ifdef HAZE + vec2 hazeRayNearFar = getHazeRayNearFar(intersections); + #endif // HAZE + + float sceneViewZ; + float rayDistanceToScene = getRayDistanceToScene(rayDirection, sceneViewZ); + if (rayDistanceToScene > 0.0) { + rayNearFar.y = min(rayNearFar.y, rayDistanceToScene); + #ifdef SHADOW_LENGTH + shadowRayNearFar.y = min(shadowRayNearFar.y, rayDistanceToScene); + #endif // SHADOW_LENGTH + #ifdef HAZE + hazeRayNearFar.y = min(hazeRayNearFar.y, rayDistanceToScene); + #endif // HAZE + } + + bool intersectsGround = any(lessThan(rayNearFar, vec2(0.0))); + bool intersectsScene = rayNearFar.y < rayNearFar.x; + + float stbn = getSTBN(); + + vec4 color = vec4(0.0); + float frontDepth = rayNearFar.y; + vec3 depthVelocity = vec3(0.0); + float shadowLength = 0.0; + bool hitClouds = false; + + if (!intersectsGround && !intersectsScene) { + vec3 rayOrigin = rayNearFar.x * rayDirection + cameraPosition; + + vec2 globeUv = getGlobeUv(rayOrigin); + #ifdef DEBUG_SHOW_UV + outputColor = vec4(vec3(checker(globeUv, localWeatherRepeat + localWeatherOffset)), 1.0); + outputDepthVelocity = vec3(0.0); + #ifdef SHADOW_LENGTH + outputShadowLength = 0.0; + #endif // SHADOW_LENGTH + return; + #endif // DEBUG_SHOW_UV + + float mipLevel = getMipLevel(globeUv * localWeatherRepeat) * mipLevelScale; + mipLevel = mix(0.0, mipLevel, min(1.0, 0.2 * cameraHeight / maxHeight)); + + float marchedFrontDepth; + ivec3 sampleCount = ivec3(0); + color = marchClouds( + rayOrigin, + rayDirection, + rayNearFar, + cosTheta, + stbn, + pow(2.0, mipLevel), + marchedFrontDepth, + sampleCount + ); + + #ifdef DEBUG_SHOW_SAMPLE_COUNT + outputColor = vec4(vec3(sampleCount) / vec3(500.0, 5.0, 5.0), 1.0); + outputDepthVelocity = vec3(0.0); + #ifdef SHADOW_LENGTH + outputShadowLength = 0.0; + #endif // SHADOW_LENGTH + return; + #endif // DEBUG_SHOW_SAMPLE_COUNT + + // Front depth will be -1.0 when no samples are accumulated. + hitClouds = marchedFrontDepth >= 0.0; + if (hitClouds) { + frontDepth = rayNearFar.x + marchedFrontDepth; + + #ifdef SHADOW_LENGTH + // Clamp the shadow length ray at the clouds. + shadowRayNearFar.y = mix( + shadowRayNearFar.y, + min(frontDepth, shadowRayNearFar.y), + color.a // Interpolate by the alpha for smoother edges. + ); + + // Shadow length must be computed before applying aerial perspective. + if (all(greaterThanEqual(shadowRayNearFar, vec2(0.0)))) { + shadowLength = marchShadowLength( + shadowRayNearFar.x * rayDirection + cameraPosition, + rayDirection, + shadowRayNearFar, + stbn + ); + } + #endif // SHADOW_LENGTH + + #ifdef HAZE + // Clamp the haze ray at the clouds. + hazeRayNearFar.y = mix( + hazeRayNearFar.y, + min(frontDepth, hazeRayNearFar.y), + color.a // Interpolate by the alpha for smoother edges. + ); + #endif // HAZE + + // Apply aerial perspective. + vec3 frontPosition = cameraPosition + frontDepth * rayDirection; + applyAerialPerspective(cameraPosition, frontPosition, shadowLength, color); + + // Velocity for temporal resolution. + vec3 frontPositionWorld = ecefToWorld(frontPosition); + vec4 prevClip = reprojectionMatrix * vec4(frontPositionWorld, 1.0); + prevClip /= prevClip.w; + vec2 prevUv = prevClip.xy * 0.5 + 0.5; + vec2 velocity = vUv - prevUv; + depthVelocity = vec3(frontDepth, velocity); + } + } + + if (!hitClouds) { + #ifdef SHADOW_LENGTH + if (all(greaterThanEqual(shadowRayNearFar, vec2(0.0)))) { + shadowLength = marchShadowLength( + shadowRayNearFar.x * rayDirection + cameraPosition, + rayDirection, + shadowRayNearFar, + stbn + ); + } + #endif // SHADOW_LENGTH + + // Velocity for temporal resolution. Here reproject in the view space for + // greatly reducing the precision errors. + frontDepth = sceneViewZ < 0.0 ? -sceneViewZ : cameraFar; + vec3 frontView = vViewPosition * frontDepth; + vec4 prevClip = viewReprojectionMatrix * vec4(frontView, 1.0); + prevClip /= prevClip.w; + vec2 prevUv = prevClip.xy * 0.5 + 0.5; + vec2 velocity = vUv - prevUv; + depthVelocity = vec3(frontDepth, velocity); + } + + #ifdef DEBUG_SHOW_FRONT_DEPTH + outputColor = vec4(turbo(frontDepth / maxRayDistance), 1.0); + outputDepthVelocity = vec3(0.0); + #ifdef SHADOW_LENGTH + outputShadowLength = 0.0; + #endif // SHADOW_LENGTH + return; + #endif // DEBUG_SHOW_FRONT_DEPTH + + #ifdef HAZE + vec4 haze = approximateHaze( + cameraNear * rayDirection + cameraPosition, + rayDirection, + hazeRayNearFar.y - hazeRayNearFar.x, + cosTheta, + shadowLength + ); + color.rgb = mix(color.rgb, haze.rgb, haze.a); + color.a = color.a * (1.0 - haze.a) + haze.a; + #endif // HAZE + + outputColor = color; + outputDepthVelocity = depthVelocity; + #ifdef SHADOW_LENGTH + outputShadowLength = shadowLength * METER_TO_LENGTH_UNIT; + #endif // SHADOW_LENGTH +} +`,u9=`float getSTBN() { + ivec3 size = textureSize(stbnTexture, 0); + vec3 scale = 1.0 / vec3(size); + return texture(stbnTexture, vec3(gl_FragCoord.xy, float(frame % size.z)) * scale).r; +} + +// Straightforward spherical mapping +vec2 getSphericalUv(const vec3 position) { + vec2 st = normalize(position.yx); + float phi = atan(st.x, st.y); + float theta = asin(normalize(position).z); + return vec2(phi * RECIPROCAL_PI2 + 0.5, theta * RECIPROCAL_PI + 0.5); +} + +vec2 getCubeSphereUv(const vec3 position) { + // Cube-sphere relaxation by: http://mathproofs.blogspot.com/2005/07/mapping-cube-to-sphere.html + // TODO: Tile and fix seams. + // Possible improvements: + // https://iquilezles.org/articles/texturerepetition/ + // https://gamedev.stackexchange.com/questions/184388/fragment-shader-map-dot-texture-repeatedly-over-the-sphere + // https://github.com/mmikk/hextile-demo + + vec3 n = normalize(position); + vec3 f = abs(n); + vec3 c = n / max(f.x, max(f.y, f.z)); + vec2 m; + if (all(greaterThan(f.yy, f.xz))) { + m = c.y > 0.0 ? vec2(-n.x, n.z) : n.xz; + } else if (all(greaterThan(f.xx, f.yz))) { + m = c.x > 0.0 ? n.yz : vec2(-n.y, n.z); + } else { + m = c.z > 0.0 ? n.xy : vec2(n.x, -n.y); + } + + vec2 m2 = m * m; + float q = dot(m2.xy, vec2(-2.0, 2.0)) - 3.0; + float q2 = q * q; + vec2 uv; + uv.x = sqrt(1.5 + m2.x - m2.y - 0.5 * sqrt(-24.0 * m2.x + q2)) * (m.x > 0.0 ? 1.0 : -1.0); + uv.y = sqrt(6.0 / (3.0 - uv.x * uv.x)) * m.y; + return uv * 0.5 + 0.5; +} + +vec2 getGlobeUv(const vec3 position) { + return getCubeSphereUv(position); +} + +float getMipLevel(const vec2 uv) { + const float mipLevelScale = 0.1; + vec2 coord = uv * resolution; + vec2 ddx = dFdx(coord); + vec2 ddy = dFdy(coord); + float deltaMaxSqr = max(dot(ddx, ddx), dot(ddy, ddy)) * mipLevelScale; + return max(0.0, 0.5 * log2(max(1.0, deltaMaxSqr))); +} + +bool insideLayerIntervals(const float height) { + bvec3 gt = greaterThan(vec3(height), minIntervalHeights); + bvec3 lt = lessThan(vec3(height), maxIntervalHeights); + return any(bvec3(gt.x && lt.x, gt.y && lt.y, gt.z && lt.z)); +} + +struct WeatherSample { + vec4 heightFraction; // Normalized height of each layer + vec4 density; +}; + +vec4 shapeAlteringFunction(const vec4 heightFraction, const vec4 bias) { + // Apply a semi-circle transform to round the clouds towards the top. + vec4 biased = pow(heightFraction, bias); + vec4 x = clamp(biased * 2.0 - 1.0, -1.0, 1.0); + return 1.0 - x * x; +} + +WeatherSample sampleWeather(const vec2 uv, const float height, const float mipLevel) { + WeatherSample weather; + weather.heightFraction = remapClamped(vec4(height), minLayerHeights, maxLayerHeights); + + vec4 localWeather = pow( + textureLod( + localWeatherTexture, + uv * localWeatherRepeat + localWeatherOffset, + mipLevel + ).LOCAL_WEATHER_CHANNELS, + weatherExponents + ); + #ifdef SHADOW + localWeather *= shadowLayerMask; + #endif // SHADOW + + vec4 heightScale = shapeAlteringFunction(weather.heightFraction, shapeAlteringBiases); + + // Modulation to control weather by coverage parameter. + // Reference: https://github.com/Prograda/Skybolt/blob/master/Assets/Core/Shaders/Clouds.h#L63 + vec4 factor = 1.0 - coverage * heightScale; + weather.density = remapClamped( + mix(localWeather, vec4(1.0), coverageFilterWidths), + factor, + factor + coverageFilterWidths + ); + + return weather; +} + +vec4 getLayerDensity(const vec4 heightFraction) { + // prettier-ignore + return densityProfile.expTerms * exp(densityProfile.exponents * heightFraction) + + densityProfile.linearTerms * heightFraction + + densityProfile.constantTerms; +} + +struct MediaSample { + float density; + vec4 weight; + float scattering; + float extinction; +}; + +MediaSample sampleMedia( + const WeatherSample weather, + const vec3 position, + const vec2 uv, + const float mipLevel, + const float jitter, + out ivec3 sampleCount +) { + vec4 density = weather.density; + + // TODO: Define in physical length. + vec3 surfaceNormal = normalize(position); + float localWeatherSpeed = length(localWeatherOffset); + vec3 evolution = -surfaceNormal * localWeatherSpeed * 2e4; + + vec3 turbulence = vec3(0.0); + #ifdef TURBULENCE + vec2 turbulenceUv = uv * localWeatherRepeat * turbulenceRepeat; + turbulence = + turbulenceDisplacement * + (texture(turbulenceTexture, turbulenceUv).rgb * 2.0 - 1.0) * + dot(density, remapClamped(weather.heightFraction, vec4(0.3), vec4(0.0))); + #endif // TURBULENCE + + vec3 shapePosition = (position + evolution + turbulence) * shapeRepeat + shapeOffset; + float shape = texture(shapeTexture, shapePosition).r; + density = remapClamped(density, vec4(1.0 - shape) * shapeAmounts, vec4(1.0)); + + #ifdef DEBUG_SHOW_SAMPLE_COUNT + ++sampleCount.y; + #endif // DEBUG_SHOW_SAMPLE_COUNT + + #ifdef SHAPE_DETAIL + if (mipLevel * 0.5 + (jitter - 0.5) * 0.5 < 0.5) { + vec3 detailPosition = (position + turbulence) * shapeDetailRepeat + shapeDetailOffset; + float detail = texture(shapeDetailTexture, detailPosition).r; + // Fluffy at the top and whippy at the bottom. + vec4 modifier = mix( + vec4(pow(detail, 6.0)), + vec4(1.0 - detail), + remapClamped(weather.heightFraction, vec4(0.2), vec4(0.4)) + ); + modifier = mix(vec4(0.0), modifier, shapeDetailAmounts); + density = remapClamped(density * 2.0, vec4(modifier * 0.5), vec4(1.0)); + + #ifdef DEBUG_SHOW_SAMPLE_COUNT + ++sampleCount.z; + #endif // DEBUG_SHOW_SAMPLE_COUNT + } + #endif // SHAPE_DETAIL + + // Apply the density profiles. + density = saturate(density * densityScales * getLayerDensity(weather.heightFraction)); + + MediaSample media; + float densitySum = density.x + density.y + density.z + density.w; + media.weight = density / densitySum; + media.scattering = densitySum * scatteringCoefficient; + media.extinction = densitySum * absorptionCoefficient + media.scattering; + return media; +} + +MediaSample sampleMedia( + const WeatherSample weather, + const vec3 position, + const vec2 uv, + const float mipLevel, + const float jitter +) { + ivec3 sampleCount; + return sampleMedia(weather, position, uv, mipLevel, jitter, sampleCount); +} +`,Uee=`precision highp float; +precision highp sampler3D; + +#include "atmosphere/bruneton/definitions" + +uniform AtmosphereParameters ATMOSPHERE; +uniform vec3 SUN_SPECTRAL_RADIANCE_TO_LUMINANCE; +uniform vec3 SKY_SPECTRAL_RADIANCE_TO_LUMINANCE; + +uniform sampler2D transmittance_texture; +uniform sampler3D scattering_texture; +uniform sampler2D irradiance_texture; +uniform sampler3D single_mie_scattering_texture; +uniform sampler3D higher_order_scattering_texture; + +#include "atmosphere/bruneton/common" +#include "atmosphere/bruneton/runtime" + +#include "types" + +uniform mat4 inverseProjectionMatrix; +uniform mat4 inverseViewMatrix; +uniform vec3 cameraPosition; +uniform mat4 worldToECEFMatrix; +uniform vec3 altitudeCorrection; + +// Atmosphere +uniform float bottomRadius; +uniform vec3 sunDirection; + +// Cloud layers +uniform float minHeight; +uniform float maxHeight; + +layout(location = 0) in vec3 position; + +out vec2 vUv; +out vec3 vCameraPosition; +out vec3 vCameraDirection; // Direction to the center of screen +out vec3 vRayDirection; // Direction to the texel +out vec3 vViewPosition; + +out GroundIrradiance vGroundIrradiance; +out CloudsIrradiance vCloudsIrradiance; + +void sampleSunSkyIrradiance(const vec3 positionECEF) { + vGroundIrradiance.sun = GetSunAndSkyScalarIrradiance( + positionECEF * METER_TO_LENGTH_UNIT, + sunDirection, + vGroundIrradiance.sky + ); + + vec3 surfaceNormal = normalize(positionECEF); + vec2 radii = (bottomRadius + vec2(minHeight, maxHeight)) * METER_TO_LENGTH_UNIT; + vCloudsIrradiance.minSun = GetSunAndSkyScalarIrradiance( + surfaceNormal * radii.x, + sunDirection, + vCloudsIrradiance.minSky + ); + vCloudsIrradiance.maxSun = GetSunAndSkyScalarIrradiance( + surfaceNormal * radii.y, + sunDirection, + vCloudsIrradiance.maxSky + ); +} + +void main() { + vUv = position.xy * 0.5 + 0.5; + + vec3 viewPosition = (inverseProjectionMatrix * vec4(position, 1.0)).xyz; + vec3 worldDirection = (inverseViewMatrix * vec4(viewPosition.xyz, 0.0)).xyz; + vec3 cameraDirection = normalize((inverseViewMatrix * vec4(0.0, 0.0, -1.0, 0.0)).xyz); + vCameraPosition = (worldToECEFMatrix * vec4(cameraPosition, 1.0)).xyz; + vCameraDirection = (worldToECEFMatrix * vec4(cameraDirection, 0.0)).xyz; + vRayDirection = (worldToECEFMatrix * vec4(worldDirection, 0.0)).xyz; + vViewPosition = viewPosition; + + sampleSunSkyIrradiance(vCameraPosition + altitudeCorrection); + + gl_Position = vec4(position.xy, 1.0, 1.0); +} +`,h9=`uniform vec2 resolution; +uniform int frame; +uniform sampler3D stbnTexture; + +// Atmosphere +uniform float bottomRadius; +uniform mat4 worldToECEFMatrix; +uniform mat4 ecefToWorldMatrix; +uniform vec3 altitudeCorrection; +uniform vec3 sunDirection; + +// Participating medium +uniform float scatteringCoefficient; +uniform float absorptionCoefficient; + +// Primary raymarch +uniform float minDensity; +uniform float minExtinction; +uniform float minTransmittance; + +// Shape and weather +uniform sampler2D localWeatherTexture; +uniform vec2 localWeatherRepeat; +uniform vec2 localWeatherOffset; +uniform float coverage; +uniform sampler3D shapeTexture; +uniform vec3 shapeRepeat; +uniform vec3 shapeOffset; + +#ifdef SHAPE_DETAIL +uniform sampler3D shapeDetailTexture; +uniform vec3 shapeDetailRepeat; +uniform vec3 shapeDetailOffset; +#endif // SHAPE_DETAIL + +#ifdef TURBULENCE +uniform sampler2D turbulenceTexture; +uniform vec2 turbulenceRepeat; +uniform float turbulenceDisplacement; +#endif // TURBULENCE + +// Haze +#ifdef HAZE +uniform float hazeDensityScale; +uniform float hazeExponent; +uniform float hazeScatteringCoefficient; +uniform float hazeAbsorptionCoefficient; +#endif // HAZE + +// Cloud layers +uniform vec4 minLayerHeights; +uniform vec4 maxLayerHeights; +uniform vec3 minIntervalHeights; +uniform vec3 maxIntervalHeights; +uniform vec4 densityScales; +uniform vec4 shapeAmounts; +uniform vec4 shapeDetailAmounts; +uniform vec4 weatherExponents; +uniform vec4 shapeAlteringBiases; +uniform vec4 coverageFilterWidths; +uniform float minHeight; +uniform float maxHeight; +uniform float shadowTopHeight; +uniform float shadowBottomHeight; +uniform vec4 shadowLayerMask; +uniform CloudDensityProfile densityProfile; +`,CT=`struct GroundIrradiance { + vec3 sun; + vec3 sky; +}; + +struct CloudsIrradiance { + vec3 minSun; + vec3 minSky; + vec3 maxSun; + vec3 maxSky; +}; + +struct CloudDensityProfile { + vec4 expTerms; + vec4 exponents; + vec4 linearTerms; + vec4 constantTerms; +}; +`;var Lee=Object.defineProperty,ir=(n,e,t,i)=>{for(var a=void 0,r=n.length-1,s;r>=0;r--)(s=n[r])&&(a=s(e,t,a)||a);return a&&Lee(e,t,a),a};const Pee=new H,Fee=new Mb;let Ga=class extends X0{constructor({parameterUniforms:e,layerUniforms:t,atmosphereUniforms:i},a=k0.DEFAULT){super({name:"CloudsMaterial",glslVersion:cs,vertexShader:ki(Uee,{atmosphere:{bruneton:{common:hN,definitions:fN,runtime:uN}},types:CT}),fragmentShader:V0(ki(Bee,{core:{depth:y6,math:fh,turbo:S6,generators:JK,raySphereIntersection:Jy,cascadedShadowMaps:x6,interleavedGradientNoise:_6,vogelDisk:A6},atmosphere:{bruneton:{common:hN,definitions:fN,runtime:uN}},types:CT,parameters:h9,clouds:u9})),uniforms:{...e,...t,...i,depthBuffer:new ie(null),viewMatrix:new ie(new lt),inverseProjectionMatrix:new ie(new lt),inverseViewMatrix:new ie(new lt),reprojectionMatrix:new ie(new lt),viewReprojectionMatrix:new ie(new lt),resolution:new ie(new Ee),cameraNear:new ie(0),cameraFar:new ie(0),cameraHeight:new ie(0),frame:new ie(0),temporalJitter:new ie(new Ee),targetUvScale:new ie(new Ee),mipLevelScale:new ie(1),stbnTexture:new ie(null),skyLightScale:new ie(1),groundBounceScale:new ie(1),powderScale:new ie(.8),powderExponent:new ie(150),maxIterationCount:new ie(Vt.clouds.maxIterationCount),minStepSize:new ie(Vt.clouds.minStepSize),maxStepSize:new ie(Vt.clouds.maxStepSize),maxRayDistance:new ie(Vt.clouds.maxRayDistance),perspectiveStepScale:new ie(Vt.clouds.perspectiveStepScale),minDensity:new ie(Vt.clouds.minDensity),minExtinction:new ie(Vt.clouds.minExtinction),minTransmittance:new ie(Vt.clouds.minTransmittance),maxIterationCountToSun:new ie(Vt.clouds.maxIterationCountToSun),maxIterationCountToGround:new ie(Vt.clouds.maxIterationCountToGround),minSecondaryStepSize:new ie(Vt.clouds.minSecondaryStepSize),secondaryStepScale:new ie(Vt.clouds.secondaryStepScale),shadowBuffer:new ie(null),shadowTexelSize:new ie(new Ee),shadowIntervals:new ie(Array.from({length:4},()=>new Ee)),shadowMatrices:new ie(Array.from({length:4},()=>new lt)),shadowFar:new ie(0),maxShadowFilterRadius:new ie(6),shadowLayerMask:new ie(new Yt().setScalar(1)),maxShadowLengthIterationCount:new ie(Vt.clouds.maxShadowLengthIterationCount),minShadowLengthStepSize:new ie(Vt.clouds.minShadowLengthStepSize),maxShadowLengthRayDistance:new ie(Vt.clouds.maxShadowLengthRayDistance),hazeDensityScale:new ie(3e-5),hazeExponent:new ie(.001),hazeScatteringCoefficient:new ie(.9),hazeAbsorptionCoefficient:new ie(.5)}},a),this.temporalUpscale=!0,this.depthPacking=0,this.localWeatherChannels="rgba",this.shapeDetail=Vt.shapeDetail,this.turbulence=Vt.turbulence,this.shadowLength=Vt.lightShafts,this.haze=Vt.haze,this.multiScatteringOctaves=Vt.clouds.multiScatteringOctaves,this.accurateSunSkyLight=Vt.clouds.accurateSunSkyLight,this.accuratePhaseFunction=Vt.clouds.accuratePhaseFunction,this.shadowCascadeCount=Vt.shadow.cascadeCount,this.shadowSampleCount=8,this.scatterAnisotropy1=.7,this.scatterAnisotropy2=-.2,this.scatterAnisotropyMix=.5}onBeforeRender(e,t,i,a,r,s){const o=this.defines.USE_LOGARITHMIC_DEPTH_BUFFER!=null,c=e.capabilities.logarithmicDepthBuffer;c!==o&&(c?this.defines.USE_LOGARITHMIC_DEPTH_BUFFER="1":delete this.defines.USE_LOGARITHMIC_DEPTH_BUFFER);const h=this.defines.POWDER!=null,f=this.uniforms.powderScale.value>0;f!==h&&(f?this.defines.POWDER="1":delete this.defines.POWDER,this.needsUpdate=!0);const d=this.defines.GROUND_BOUNCE!=null;(this.uniforms.groundBounceScale.value>0&&this.uniforms.maxIterationCountToGround.value>0)!==d&&(f?this.defines.GROUND_BOUNCE="1":delete this.defines.GROUND_BOUNCE,this.needsUpdate=!0)}copyCameraSettings(e){e.isPerspectiveCamera===!0?this.defines.PERSPECTIVE_CAMERA!=="1"&&(this.defines.PERSPECTIVE_CAMERA="1",this.needsUpdate=!0):this.defines.PERSPECTIVE_CAMERA!=null&&(delete this.defines.PERSPECTIVE_CAMERA,this.needsUpdate=!0);const t=this.uniforms;t.viewMatrix.value.copy(e.matrixWorldInverse),t.inverseViewMatrix.value.copy(e.matrixWorld);const i=this.previousProjectionMatrix??e.projectionMatrix,a=this.previousViewMatrix??e.matrixWorldInverse,r=t.inverseProjectionMatrix.value,s=t.inverseViewMatrix.value,o=t.reprojectionMatrix.value,c=t.viewReprojectionMatrix.value;if(this.temporalUpscale){const d=t.frame.value%16,m=t.resolution.value,g=c9[d],y=(g.x-.5)/m.x*4,E=(g.y-.5)/m.y*4;t.temporalJitter.value.set(y,E),t.mipLevelScale.value=.25,r.copy(e.projectionMatrix),r.elements[8]+=y*2,r.elements[9]+=E*2,r.invert(),o.copy(i),o.elements[8]+=y*2,o.elements[9]+=E*2,o.multiply(a),c.copy(o).multiply(s)}else t.temporalJitter.value.setScalar(0),t.mipLevelScale.value=1,r.copy(e.projectionMatrixInverse),o.copy(i).multiply(a),c.copy(o).multiply(s);t.cameraNear.value=e.near,t.cameraFar.value=e.far;const h=e.getWorldPosition(t.cameraPosition.value),f=Pee.copy(h).applyMatrix4(t.worldToECEFMatrix.value);try{t.cameraHeight.value=Fee.setFromECEF(f).height}catch{}}copyReprojectionMatrix(e){this.previousProjectionMatrix??(this.previousProjectionMatrix=new lt),this.previousViewMatrix??(this.previousViewMatrix=new lt),this.previousProjectionMatrix.copy(e.projectionMatrix),this.previousViewMatrix.copy(e.matrixWorldInverse)}setSize(e,t,i,a){this.uniforms.resolution.value.set(e,t),i!=null&&a!=null?this.uniforms.targetUvScale.value.set(e/i,t/a):this.uniforms.targetUvScale.value.setScalar(1),this.previousProjectionMatrix=void 0,this.previousViewMatrix=void 0}setShadowSize(e,t){this.uniforms.shadowTexelSize.value.set(1/e,1/t)}get depthBuffer(){return this.uniforms.depthBuffer.value}set depthBuffer(e){this.uniforms.depthBuffer.value=e}get accurateSunSkyIrradiance(){return this.accurateSunSkyLight}set accurateSunSkyIrradiance(e){this.accurateSunSkyLight=e}};ir([hh("DEPTH_PACKING")],Ga.prototype,"depthPacking");ir([m6("LOCAL_WEATHER_CHANNELS",{validate:n=>/^[rgba]{4}$/.test(n)})],Ga.prototype,"localWeatherChannels");ir([An("SHAPE_DETAIL")],Ga.prototype,"shapeDetail");ir([An("TURBULENCE")],Ga.prototype,"turbulence");ir([An("SHADOW_LENGTH")],Ga.prototype,"shadowLength");ir([An("HAZE")],Ga.prototype,"haze");ir([hh("MULTI_SCATTERING_OCTAVES",{min:1,max:12})],Ga.prototype,"multiScatteringOctaves");ir([An("ACCURATE_SUN_SKY_LIGHT")],Ga.prototype,"accurateSunSkyLight");ir([An("ACCURATE_PHASE_FUNCTION")],Ga.prototype,"accuratePhaseFunction");ir([hh("SHADOW_CASCADE_COUNT",{min:1,max:4})],Ga.prototype,"shadowCascadeCount");ir([hh("SHADOW_SAMPLE_COUNT",{min:1,max:16})],Ga.prototype,"shadowSampleCount");ir([Ub("SCATTER_ANISOTROPY_1")],Ga.prototype,"scatterAnisotropy1");ir([Ub("SCATTER_ANISOTROPY_2")],Ga.prototype,"scatterAnisotropy2");ir([Ub("SCATTER_ANISOTROPY_MIX")],Ga.prototype,"scatterAnisotropyMix");const Hee=`// Taken from https://gist.github.com/TheRealMJP/c83b8c0f46b63f3a88a5986f4fa982b1 +// TODO: Use 5-taps version: https://www.shadertoy.com/view/MtVGWz +// Or even 4 taps (requires preprocessing in the input buffer): +// https://www.shadertoy.com/view/4tyGDD + +/** + * MIT License + * + * Copyright (c) 2019 MJP + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +vec4 textureCatmullRom(sampler2D tex, vec2 uv) { + vec2 texSize = vec2(textureSize(tex, 0)); + + // We're going to sample a a 4x4 grid of texels surrounding the target UV + // coordinate. We'll do this by rounding down the sample location to get the + // exact center of our "starting" texel. The starting texel will be at + // location [1, 1] in the grid, where [0, 0] is the top left corner. + vec2 samplePos = uv * texSize; + vec2 texPos1 = floor(samplePos - 0.5) + 0.5; + + // Compute the fractional offset from our starting texel to our original + // sample location, which we'll feed into the Catmull-Rom spline function to + // get our filter weights. + vec2 f = samplePos - texPos1; + + // Compute the Catmull-Rom weights using the fractional offset that we + // calculated earlier. These equations are pre-expanded based on our knowledge + // of where the texels will be located, which lets us avoid having to evaluate + // a piece-wise function. + vec2 w0 = f * (-0.5 + f * (1.0 - 0.5 * f)); + vec2 w1 = 1.0 + f * f * (-2.5 + 1.5 * f); + vec2 w2 = f * (0.5 + f * (2.0 - 1.5 * f)); + vec2 w3 = f * f * (-0.5 + 0.5 * f); + + // Work out weighting factors and sampling offsets that will let us use + // bilinear filtering to simultaneously evaluate the middle 2 samples from the + // 4x4 grid. + vec2 w12 = w1 + w2; + vec2 offset12 = w2 / (w1 + w2); + + // Compute the final UV coordinates we'll use for sampling the texture + vec2 texPos0 = texPos1 - 1.0; + vec2 texPos3 = texPos1 + 2.0; + vec2 texPos12 = texPos1 + offset12; + + texPos0 /= texSize; + texPos3 /= texSize; + texPos12 /= texSize; + + vec4 result = vec4(0.0); + result += texture(tex, vec2(texPos0.x, texPos0.y)) * w0.x * w0.y; + result += texture(tex, vec2(texPos12.x, texPos0.y)) * w12.x * w0.y; + result += texture(tex, vec2(texPos3.x, texPos0.y)) * w3.x * w0.y; + + result += texture(tex, vec2(texPos0.x, texPos12.y)) * w0.x * w12.y; + result += texture(tex, vec2(texPos12.x, texPos12.y)) * w12.x * w12.y; + result += texture(tex, vec2(texPos3.x, texPos12.y)) * w3.x * w12.y; + + result += texture(tex, vec2(texPos0.x, texPos3.y)) * w0.x * w3.y; + result += texture(tex, vec2(texPos12.x, texPos3.y)) * w12.x * w3.y; + result += texture(tex, vec2(texPos3.x, texPos3.y)) * w3.x * w3.y; + + return result; +} + +vec4 textureCatmullRom(sampler2DArray tex, vec3 uv) { + vec2 texSize = vec2(textureSize(tex, 0)); + vec2 samplePos = uv.xy * texSize; + vec2 texPos1 = floor(samplePos - 0.5) + 0.5; + vec2 f = samplePos - texPos1; + vec2 w0 = f * (-0.5 + f * (1.0 - 0.5 * f)); + vec2 w1 = 1.0 + f * f * (-2.5 + 1.5 * f); + vec2 w2 = f * (0.5 + f * (2.0 - 1.5 * f)); + vec2 w3 = f * f * (-0.5 + 0.5 * f); + vec2 w12 = w1 + w2; + vec2 offset12 = w2 / (w1 + w2); + vec2 texPos0 = texPos1 - 1.0; + vec2 texPos3 = texPos1 + 2.0; + vec2 texPos12 = texPos1 + offset12; + texPos0 /= texSize; + texPos3 /= texSize; + texPos12 /= texSize; + vec4 result = vec4(0.0); + result += texture(tex, vec3(texPos0.x, texPos0.y, uv.z)) * w0.x * w0.y; + result += texture(tex, vec3(texPos12.x, texPos0.y, uv.z)) * w12.x * w0.y; + result += texture(tex, vec3(texPos3.x, texPos0.y, uv.z)) * w3.x * w0.y; + result += texture(tex, vec3(texPos0.x, texPos12.y, uv.z)) * w0.x * w12.y; + result += texture(tex, vec3(texPos12.x, texPos12.y, uv.z)) * w12.x * w12.y; + result += texture(tex, vec3(texPos3.x, texPos12.y, uv.z)) * w3.x * w12.y; + result += texture(tex, vec3(texPos0.x, texPos3.y, uv.z)) * w0.x * w3.y; + result += texture(tex, vec3(texPos12.x, texPos3.y, uv.z)) * w12.x * w3.y; + result += texture(tex, vec3(texPos3.x, texPos3.y, uv.z)) * w3.x * w3.y; + return result; +} +`,zee=`precision highp float; +precision highp sampler2DArray; + +#include "core/turbo" +#include "catmullRomSampling" +#include "varianceClipping" + +uniform sampler2D colorBuffer; +uniform sampler2D depthVelocityBuffer; +uniform sampler2D colorHistoryBuffer; + +#ifdef SHADOW_LENGTH +uniform sampler2D shadowLengthBuffer; +uniform sampler2D shadowLengthHistoryBuffer; +#endif // SHADOW_LENGTH + +uniform vec2 texelSize; +uniform int frame; +uniform float varianceGamma; +uniform float temporalAlpha; +uniform vec2 jitterOffset; + +in vec2 vUv; + +layout(location = 0) out vec4 outputColor; +#ifdef SHADOW_LENGTH +layout(location = 1) out float outputShadowLength; +#endif // SHADOW_LENGTH + +const ivec2 neighborOffsets[9] = ivec2[9]( + ivec2(-1, -1), + ivec2(-1, 0), + ivec2(-1, 1), + ivec2(0, -1), + ivec2(0, 0), + ivec2(0, 1), + ivec2(1, -1), + ivec2(1, 0), + ivec2(1, 1) +); + +const ivec4[4] bayerIndices = ivec4[4]( + ivec4(0, 12, 3, 15), + ivec4(8, 4, 11, 7), + ivec4(2, 14, 1, 13), + ivec4(10, 6, 9, 5) +); + +vec4 getClosestFragment(const ivec2 coord) { + vec4 result = vec4(1e7, 0.0, 0.0, 0.0); + vec4 neighbor; + #pragma unroll_loop_start + for (int i = 0; i < 9; ++i) { + neighbor = texelFetchOffset(depthVelocityBuffer, coord, 0, neighborOffsets[i]); + if (neighbor.r < result.r) { + result = neighbor; + } + } + #pragma unroll_loop_end + return result; +} + +void temporalUpscale( + const ivec2 coord, + const ivec2 lowResCoord, + const bool currentFrame, + out vec4 outputColor, + out float outputShadowLength +) { + vec4 currentColor = texelFetch(colorBuffer, lowResCoord, 0); + #ifdef SHADOW_LENGTH + vec4 currentShadowLength = vec4(texelFetch(shadowLengthBuffer, lowResCoord, 0).rgb, 1.0); + #endif // SHADOW_LENGTH + + if (currentFrame) { + // Use the texel just rendered without any accumulation. + outputColor = currentColor; + #ifdef SHADOW_LENGTH + outputShadowLength = currentShadowLength.r; + #endif // SHADOW_LENGTH + return; + } + + vec4 depthVelocity = getClosestFragment(lowResCoord); + vec2 velocity = depthVelocity.gb; + vec2 prevUv = vUv - velocity; + if (prevUv.x < 0.0 || prevUv.x > 1.0 || prevUv.y < 0.0 || prevUv.y > 1.0) { + outputColor = currentColor; + #ifdef SHADOW_LENGTH + outputShadowLength = currentShadowLength.r; + #endif // SHADOW_LENGTH + return; // Rejection + } + + // Variance clipping with a large variance gamma seems to work fine for + // upsampling. This increases ghosting, of course, but it's hard to notice on + // clouds. + // vec4 historyColor = textureCatmullRom(colorHistoryBuffer, prevUv); + vec4 historyColor = texture(colorHistoryBuffer, prevUv); + vec4 clippedColor = varianceClipping(colorBuffer, vUv, currentColor, historyColor, varianceGamma); + outputColor = clippedColor; + + #ifdef SHADOW_LENGTH + // Sampling the shadow length history using scene depth doesn't make much + // sense, but it's too hard to derive it properly. At least this approach + // resolves the edges of scene objects. + // vec4 historyShadowLength = vec4(textureCatmullRom(shadowLengthHistoryBuffer, prevUv).rgb, 1.0); + vec4 historyShadowLength = vec4(texture(shadowLengthHistoryBuffer, prevUv).rgb, 1.0); + vec4 clippedShadowLength = varianceClipping( + shadowLengthBuffer, + vUv, + currentShadowLength, + historyShadowLength, + varianceGamma + ); + outputShadowLength = clippedShadowLength.r; + #endif // SHADOW_LENGTH +} + +void temporalAntialiasing(const ivec2 coord, out vec4 outputColor, out float outputShadowLength) { + vec4 currentColor = texelFetch(colorBuffer, coord, 0); + #ifdef SHADOW_LENGTH + vec4 currentShadowLength = vec4(texelFetch(shadowLengthBuffer, coord, 0).rgb, 1.0); + #endif // SHADOW_LENGTH + + vec4 depthVelocity = getClosestFragment(coord); + vec2 velocity = depthVelocity.gb; + + vec2 prevUv = vUv - velocity; + if (prevUv.x < 0.0 || prevUv.x > 1.0 || prevUv.y < 0.0 || prevUv.y > 1.0) { + outputColor = currentColor; + #ifdef SHADOW_LENGTH + outputShadowLength = currentShadowLength.r; + #endif // SHADOW_LENGTH + return; // Rejection + } + + vec4 historyColor = texture(colorHistoryBuffer, prevUv); + vec4 clippedColor = varianceClipping(colorBuffer, coord, currentColor, historyColor); + outputColor = mix(clippedColor, currentColor, temporalAlpha); + + #ifdef SHADOW_LENGTH + vec4 historyShadowLength = vec4(texture(shadowLengthHistoryBuffer, prevUv).rgb, 1.0); + vec4 clippedShadowLength = varianceClipping( + shadowLengthBuffer, + coord, + currentShadowLength, + historyShadowLength + ); + outputShadowLength = mix(clippedShadowLength.r, currentShadowLength.r, temporalAlpha); + #endif // SHADOW_LENGTH +} + +void main() { + ivec2 coord = ivec2(gl_FragCoord.xy); + + #if !defined(SHADOW_LENGTH) + float outputShadowLength; + #endif // !defined(SHADOW_LENGTH) + + #ifdef TEMPORAL_UPSCALE + ivec2 lowResCoord = coord / 4; + int bayerValue = bayerIndices[coord.x % 4][coord.y % 4]; + bool currentFrame = bayerValue == frame % 16; + temporalUpscale(coord, lowResCoord, currentFrame, outputColor, outputShadowLength); + #else // TEMPORAL_UPSCALE + temporalAntialiasing(coord, outputColor, outputShadowLength); + #endif // TEMPORAL_UPSCALE + + #if defined(SHADOW_LENGTH) && defined(DEBUG_SHOW_SHADOW_LENGTH) + outputColor = vec4(turbo(outputShadowLength * 0.05), 1.0); + #endif // defined(SHADOW_LENGTH) && defined(DEBUG_SHOW_SHADOW_LENGTH) + + #ifdef DEBUG_SHOW_VELOCITY + outputColor.rgb = outputColor.rgb + vec3(abs(texture(depthVelocityBuffer, vUv).gb) * 10.0, 0.0); + #endif // DEBUG_SHOW_VELOCITY +} +`,Gee=`precision highp float; + +layout(location = 0) in vec3 position; + +out vec2 vUv; + +void main() { + vUv = position.xy * 0.5 + 0.5; + gl_Position = vec4(position.xy, 1.0, 1.0); +} +`,f9=`#ifdef VARIANCE_9_SAMPLES +#define VARIANCE_OFFSET_COUNT 8 +const ivec2 varianceOffsets[8] = ivec2[8]( + ivec2(-1, -1), + ivec2(-1, 1), + ivec2(1, -1), + ivec2(1, 1), + ivec2(1, 0), + ivec2(0, -1), + ivec2(0, 1), + ivec2(-1, 0) +); +#else // VARIANCE_9_SAMPLES +#define VARIANCE_OFFSET_COUNT 4 +const ivec2 varianceOffsets[4] = ivec2[4](ivec2(1, 0), ivec2(0, -1), ivec2(0, 1), ivec2(-1, 0)); +#endif // VARIANCE_9_SAMPLES + +// Reference: https://github.com/playdeadgames/temporal +vec4 clipAABB(const vec4 current, const vec4 history, const vec4 minColor, const vec4 maxColor) { + vec3 pClip = 0.5 * (maxColor.rgb + minColor.rgb); + vec3 eClip = 0.5 * (maxColor.rgb - minColor.rgb) + 1e-7; + vec4 vClip = history - vec4(pClip, current.a); + vec3 vUnit = vClip.xyz / eClip; + vec3 aUnit = abs(vUnit); + float maUnit = max(aUnit.x, max(aUnit.y, aUnit.z)); + if (maUnit > 1.0) { + return vec4(pClip, current.a) + vClip / maUnit; + } + return history; +} + +#ifdef VARIANCE_SAMPLER_ARRAY +#define VARIANCE_SAMPLER sampler2DArray +#define VARIANCE_SAMPLER_COORD ivec3 +#else // VARIANCE_SAMPLER_ARRAY +#define VARIANCE_SAMPLER sampler2D +#define VARIANCE_SAMPLER_COORD ivec2 +#endif // VARIANCE_SAMPLER_ARRAY + +// Variance clipping +// Reference: https://developer.download.nvidia.com/gameworks/events/GDC2016/msalvi_temporal_supersampling.pdf +vec4 varianceClipping( + const VARIANCE_SAMPLER inputBuffer, + const VARIANCE_SAMPLER_COORD coord, + const vec4 current, + const vec4 history, + const float gamma +) { + vec4 moment1 = current; + vec4 moment2 = current * current; + vec4 neighbor; + #pragma unroll_loop_start + for (int i = 0; i < 8; ++i) { + #if UNROLLED_LOOP_INDEX < VARIANCE_OFFSET_COUNT + neighbor = texelFetchOffset(inputBuffer, coord, 0, varianceOffsets[i]); + moment1 += neighbor; + moment2 += neighbor * neighbor; + #endif // UNROLLED_LOOP_INDEX < VARIANCE_OFFSET_COUNT + } + #pragma unroll_loop_end + + const float N = float(VARIANCE_OFFSET_COUNT + 1); + vec4 mean = moment1 / N; + vec4 varianceGamma = sqrt(max(moment2 / N - mean * mean, 0.0)) * gamma; + vec4 minColor = mean - varianceGamma; + vec4 maxColor = mean + varianceGamma; + return clipAABB(clamp(mean, minColor, maxColor), history, minColor, maxColor); +} + +vec4 varianceClipping( + const VARIANCE_SAMPLER inputBuffer, + const VARIANCE_SAMPLER_COORD coord, + const vec4 current, + const vec4 history +) { + return varianceClipping(inputBuffer, coord, current, history, 1.0); +} + +vec4 varianceClipping( + const sampler2D inputBuffer, + const vec2 coord, + const vec4 current, + const vec4 history, + const float gamma +) { + vec4 moment1 = current; + vec4 moment2 = current * current; + vec4 neighbor; + #pragma unroll_loop_start + for (int i = 0; i < 8; ++i) { + #if UNROLLED_LOOP_INDEX < VARIANCE_OFFSET_COUNT + neighbor = textureOffset(inputBuffer, coord, varianceOffsets[i]); + moment1 += neighbor; + moment2 += neighbor * neighbor; + #endif // UNROLLED_LOOP_INDEX < VARIANCE_OFFSET_COUNT + } + #pragma unroll_loop_end + + const float N = float(VARIANCE_OFFSET_COUNT + 1); + vec4 mean = moment1 / N; + vec4 varianceGamma = sqrt(max(moment2 / N - mean * mean, 0.0)) * gamma; + vec4 minColor = mean - varianceGamma; + vec4 maxColor = mean + varianceGamma; + return clipAABB(clamp(mean, minColor, maxColor), history, minColor, maxColor); +} + +vec4 varianceClipping( + const sampler2D inputBuffer, + const vec2 coord, + const vec4 current, + const vec4 history +) { + return varianceClipping(inputBuffer, coord, current, history, 1.0); +} +`;var Vee=Object.defineProperty,d9=(n,e,t,i)=>{for(var a=void 0,r=n.length-1,s;r>=0;r--)(s=n[r])&&(a=s(e,t,a)||a);return a&&Vee(e,t,a),a};class $b extends cl{constructor({colorBuffer:e=null,depthVelocityBuffer:t=null,shadowLengthBuffer:i=null,colorHistoryBuffer:a=null,shadowLengthHistoryBuffer:r=null}={}){super({name:"CloudsResolveMaterial",glslVersion:cs,vertexShader:Gee,fragmentShader:V0(ki(zee,{core:{turbo:S6},catmullRomSampling:Hee,varianceClipping:f9})),uniforms:{colorBuffer:new ie(e),depthVelocityBuffer:new ie(t),shadowLengthBuffer:new ie(i),colorHistoryBuffer:new ie(a),shadowLengthHistoryBuffer:new ie(r),texelSize:new ie(new Ee),frame:new ie(0),jitterOffset:new ie(new Ee),varianceGamma:new ie(2),temporalAlpha:new ie(.1)}}),this.temporalUpscale=!0,this.shadowLength=!0}setSize(e,t){this.uniforms.texelSize.value.set(1/e,1/t)}onBeforeRender(e,t,i,a,r,s){const o=this.uniforms.frame.value%16,c=c9[o],h=(c.x-.5)*4,f=(c.y-.5)*4;this.uniforms.jitterOffset.value.set(h,f)}}d9([An("TEMPORAL_UPSCALE")],$b.prototype,"temporalUpscale");d9([An("SHADOW_LENGTH")],$b.prototype,"shadowLength");class p9 extends Ha{constructor(e,t){super(e),this._mainCamera=new so;const{shadow:i}=t;this.shadow=i}get mainCamera(){return this._mainCamera}set mainCamera(e){this._mainCamera=e}}function w2(n,{depthVelocity:e,shadowLength:t}){const i=new oi(1,1,{depthBuffer:!1,type:sn});i.texture.minFilter=Bt,i.texture.magFilter=Bt,i.texture.name=n;let a;e&&(a=i.texture.clone(),a.isRenderTargetTexture=!0,i.depthVelocity=a,i.textures.push(a));let r;return t&&(r=i.texture.clone(),r.isRenderTargetTexture=!0,r.format=Ar,i.shadowLength=r,i.textures.push(r)),Object.assign(i,{depthVelocity:a??null,shadowLength:r??null})}class kee extends p9{constructor({parameterUniforms:e,layerUniforms:t,atmosphereUniforms:i,...a},r){super("CloudsPass",a),this.atmosphere=r,this.width=0,this.height=0,this.currentMaterial=new Ga({parameterUniforms:e,layerUniforms:t,atmosphereUniforms:i},r),this.currentPass=new qE(this.currentMaterial),this.resolveMaterial=new $b,this.resolvePass=new qE(this.resolveMaterial),this.initRenderTargets({depthVelocity:!0,shadowLength:Vt.lightShafts})}copyCameraSettings(e){this.currentMaterial.copyCameraSettings(e)}initialize(e,t,i){this.currentPass.initialize(e,t,i),this.resolvePass.initialize(e,t,i)}initRenderTargets(e){var s,o,c;(s=this.currentRenderTarget)==null||s.dispose(),(o=this.resolveRenderTarget)==null||o.dispose(),(c=this.historyRenderTarget)==null||c.dispose();const t=w2("Clouds",e),i=w2("Clouds.A",{...e,depthVelocity:!1}),a=w2("Clouds.B",{...e,depthVelocity:!1});this.currentRenderTarget=t,this.resolveRenderTarget=i,this.historyRenderTarget=a;const r=this.resolveMaterial.uniforms;r.colorBuffer.value=t.texture,r.depthVelocityBuffer.value=t.depthVelocity,r.shadowLengthBuffer.value=t.shadowLength,r.colorHistoryBuffer.value=a.texture,r.shadowLengthHistoryBuffer.value=a.shadowLength}copyShadow(){const e=this.shadow,t=this.currentMaterial.uniforms;for(let i=0;i + +#include "core/math" +#include "core/raySphereIntersection" +#include "types" +#include "parameters" +#include "structuredSampling" +#include "clouds" + +uniform mat4 inverseShadowMatrices[CASCADE_COUNT]; +uniform mat4 reprojectionMatrices[CASCADE_COUNT]; + +// Primary raymarch +uniform int maxIterationCount; +uniform float minStepSize; +uniform float maxStepSize; +uniform float opticalDepthTailScale; + +in vec2 vUv; + +layout(location = 0) out vec4 outputColor[CASCADE_COUNT]; + +// Redundant notation for prettier. +#if CASCADE_COUNT == 1 +layout(location = 1) out vec3 outputDepthVelocity[CASCADE_COUNT]; +#elif CASCADE_COUNT == 2 +layout(location = 2) out vec3 outputDepthVelocity[CASCADE_COUNT]; +#elif CASCADE_COUNT == 3 +layout(location = 3) out vec3 outputDepthVelocity[CASCADE_COUNT]; +#elif CASCADE_COUNT == 4 +layout(location = 4) out vec3 outputDepthVelocity[CASCADE_COUNT]; +#endif // CASCADE_COUNT + +vec4 marchClouds( + const vec3 rayOrigin, + const vec3 rayDirection, + const float maxRayDistance, + const float jitter, + const float mipLevel +) { + // Setup structured volume sampling (SVS). + // While SVS introduces spatial aliasing, it is indeed temporally stable, + // which is important for lower-resolution shadow maps where a flickering + // single pixel can be highly noticeable. + vec3 normal = getStructureNormal(rayDirection, jitter); + float rayDistance; + float stepSize; + intersectStructuredPlanes( + normal, + rayOrigin, + rayDirection, + clamp(maxRayDistance / float(maxIterationCount), minStepSize, maxStepSize), + rayDistance, + stepSize + ); + + #ifdef TEMPORAL_JITTER + rayDistance -= stepSize * jitter; + #endif // TEMPORAL_JITTER + + float extinctionSum = 0.0; + float maxOpticalDepth = 0.0; + float maxOpticalDepthTail = 0.0; + float transmittanceIntegral = 1.0; + float weightedDistanceSum = 0.0; + float transmittanceSum = 0.0; + + int sampleCount = 0; + for (int i = 0; i < maxIterationCount; ++i) { + if (rayDistance > maxRayDistance) { + break; // Termination + } + + vec3 position = rayDistance * rayDirection + rayOrigin; + float height = length(position) - bottomRadius; + + #if !defined(DEBUG_MARCH_INTERVALS) + if (insideLayerIntervals(height)) { + rayDistance += stepSize; + continue; + } + #endif // !defined(DEBUG_MARCH_INTERVALS) + + // Sample rough weather. + vec2 uv = getGlobeUv(position); + WeatherSample weather = sampleWeather(uv, height, mipLevel); + + if (any(greaterThan(weather.density, vec4(minDensity)))) { + // Sample detailed participating media. + // Note this assumes an homogeneous medium. + MediaSample media = sampleMedia(weather, position, uv, mipLevel, jitter); + if (media.extinction > minExtinction) { + extinctionSum += media.extinction; + maxOpticalDepth += media.extinction * stepSize; + transmittanceIntegral *= exp(-media.extinction * stepSize); + weightedDistanceSum += rayDistance * transmittanceIntegral; + transmittanceSum += transmittanceIntegral; + ++sampleCount; + } + } + + if (transmittanceIntegral <= minTransmittance) { + // A large amount of optical depth accumulates in the tail, beyond the + // point of minimum transmittance. The expected optical depth seems to + // decrease exponentially with the number of samples taken before reaching + // the minimum transmittance. + // See the discussion here: https://x.com/shotamatsuda/status/1886259549931520437 + maxOpticalDepthTail = min( + opticalDepthTailScale * stepSize * exp(float(1 - sampleCount)), + stepSize * 0.5 // Excessive optical depth only introduces aliasing. + ); + break; // Early termination + } + rayDistance += stepSize; + } + + if (sampleCount == 0) { + return vec4(maxRayDistance, 0.0, 0.0, 0.0); + } + float frontDepth = min(weightedDistanceSum / transmittanceSum, maxRayDistance); + float meanExtinction = extinctionSum / float(sampleCount); + return vec4(frontDepth, meanExtinction, maxOpticalDepth, maxOpticalDepthTail); +} + +void getRayNearFar( + const vec3 sunPosition, + const vec3 rayDirection, + out float rayNear, + out float rayFar +) { + vec4 firstIntersections = raySphereFirstIntersection( + sunPosition, + rayDirection, + vec3(0.0), + bottomRadius + vec4(shadowTopHeight, shadowBottomHeight, 0.0, 0.0) + ); + rayNear = max(0.0, firstIntersections.x); + rayFar = firstIntersections.y; + if (rayFar < 0.0) { + rayFar = 1e6; + } +} + +void cascade( + const int cascadeIndex, + const float mipLevel, + out vec4 outputColor, + out vec3 outputDepthVelocity +) { + vec2 clip = vUv * 2.0 - 1.0; + vec4 point = inverseShadowMatrices[cascadeIndex] * vec4(clip.xy, -1.0, 1.0); + point /= point.w; + vec3 sunPosition = (worldToECEFMatrix * vec4(point.xyz, 1.0)).xyz + altitudeCorrection; + + vec3 rayDirection = normalize(-sunDirection); + float rayNear; + float rayFar; + getRayNearFar(sunPosition, rayDirection, rayNear, rayFar); + + vec3 rayOrigin = rayNear * rayDirection + sunPosition; + float stbn = getSTBN(); + vec4 color = marchClouds(rayOrigin, rayDirection, rayFar - rayNear, stbn, mipLevel); + outputColor = color; + + // Velocity for temporal resolution. + #ifdef TEMPORAL_PASS + vec3 frontPosition = color.x * rayDirection + rayOrigin; + vec3 frontPositionWorld = (ecefToWorldMatrix * vec4(frontPosition - altitudeCorrection, 1.0)).xyz; + vec4 prevClip = reprojectionMatrices[cascadeIndex] * vec4(frontPositionWorld, 1.0); + prevClip /= prevClip.w; + vec2 prevUv = prevClip.xy * 0.5 + 0.5; + vec2 velocity = (vUv - prevUv) * resolution; + outputDepthVelocity = vec3(color.x, velocity); + #else // TEMPORAL_PASS + outputDepthVelocity = vec3(0.0); + #endif // TEMPORAL_PASS +} + +// TODO: Calculate from the main camera frustum perhaps? +const float mipLevels[4] = float[4](0.0, 0.5, 1.0, 2.0); + +void main() { + #pragma unroll_loop_start + for (int i = 0; i < 4; ++i) { + #if UNROLLED_LOOP_INDEX < CASCADE_COUNT + cascade(UNROLLED_LOOP_INDEX, mipLevels[i], outputColor[i], outputDepthVelocity[i]); + #endif // UNROLLED_LOOP_INDEX < CASCADE_COUNT + } + #pragma unroll_loop_end +} +`,Yee=`precision highp float; + +layout(location = 0) in vec3 position; + +out vec2 vUv; + +void main() { + vUv = position.xy * 0.5 + 0.5; + gl_Position = vec4(position.xy, 1.0, 1.0); +} +`,qee=`// Implements Structured Volume Sampling in fragment shader: +// https://github.com/huwb/volsample +// Implementation reference: +// https://www.shadertoy.com/view/ttVfDc + +void getIcosahedralVertices(const vec3 direction, out vec3 v1, out vec3 v2, out vec3 v3) { + // Normalization scalers to fit dodecahedron to unit sphere. + const float a = 0.85065080835204; // phi / sqrt(2 + phi) + const float b = 0.5257311121191336; // 1 / sqrt(2 + phi) + + // Derive the vertices of icosahedron where triangle intersects the direction. + // See: https://www.ppsloan.org/publications/AmbientDice.pdf + const float kT = 0.6180339887498948; // 1 / phi + const float kT2 = 0.38196601125010515; // 1 / phi^2 + vec3 absD = abs(direction); + float selector1 = dot(absD, vec3(1.0, kT2, -kT)); + float selector2 = dot(absD, vec3(-kT, 1.0, kT2)); + float selector3 = dot(absD, vec3(kT2, -kT, 1.0)); + v1 = selector1 > 0.0 ? vec3(a, b, 0.0) : vec3(-b, 0.0, a); + v2 = selector2 > 0.0 ? vec3(0.0, a, b) : vec3(a, -b, 0.0); + v3 = selector3 > 0.0 ? vec3(b, 0.0, a) : vec3(0.0, a, -b); + vec3 octantSign = sign(direction); + v1 *= octantSign; + v2 *= octantSign; + v3 *= octantSign; +} + +void swapIfBigger(inout vec4 a, inout vec4 b) { + if (a.w > b.w) { + vec4 t = a; + a = b; + b = t; + } +} + +void sortVertices(inout vec3 a, inout vec3 b, inout vec3 c) { + const vec3 base = vec3(0.5, 0.5, 1.0); + vec4 aw = vec4(a, dot(a, base)); + vec4 bw = vec4(b, dot(b, base)); + vec4 cw = vec4(c, dot(c, base)); + swapIfBigger(aw, bw); + swapIfBigger(bw, cw); + swapIfBigger(aw, bw); + a = aw.xyz; + b = bw.xyz; + c = cw.xyz; +} + +vec3 getPentagonalWeights(const vec3 direction, const vec3 v1, const vec3 v2, const vec3 v3) { + float d1 = dot(v1, direction); + float d2 = dot(v2, direction); + float d3 = dot(v3, direction); + vec3 w = exp(vec3(d1, d2, d3) * 40.0); + return w / (w.x + w.y + w.z); +} + +vec3 getStructureNormal( + const vec3 direction, + const float jitter, + out vec3 a, + out vec3 b, + out vec3 c, + out vec3 weights +) { + getIcosahedralVertices(direction, a, b, c); + sortVertices(a, b, c); + weights = getPentagonalWeights(direction, a, b, c); + return jitter < weights.x + ? a + : jitter < weights.x + weights.y + ? b + : c; +} + +vec3 getStructureNormal(const vec3 direction, const float jitter) { + vec3 a, b, c, weights; + return getStructureNormal(direction, jitter, a, b, c, weights); +} + +// Reference: https://github.com/huwb/volsample/blob/master/src/unity/Assets/Shaders/RayMarchCore.cginc +void intersectStructuredPlanes( + const vec3 normal, + const vec3 rayOrigin, + const vec3 rayDirection, + const float samplePeriod, + out float stepOffset, + out float stepSize +) { + float NoD = dot(rayDirection, normal); + stepSize = samplePeriod / abs(NoD); + + // Skips leftover bit to get from rayOrigin to first strata plane. + stepOffset = -mod(dot(rayOrigin, normal), samplePeriod) / NoD; + + // mod() gives different results depending on if the arg is negative or + // positive. This line makes it consistent, and ensures the first sample is in + // front of the viewer. + if (stepOffset < 0.0) { + stepOffset += stepSize; + } +} +`;var Zee=Object.defineProperty,jd=(n,e,t,i)=>{for(var a=void 0,r=n.length-1,s;r>=0;r--)(s=n[r])&&(a=s(e,t,a)||a);return a&&Zee(e,t,a),a};class ph extends cl{constructor({parameterUniforms:e,layerUniforms:t,atmosphereUniforms:i}){super({name:"ShadowMaterial",glslVersion:cs,vertexShader:Yee,fragmentShader:V0(ki(Wee,{core:{math:fh,raySphereIntersection:Jy},types:CT,parameters:h9,structuredSampling:qee,clouds:u9})),uniforms:{...e,...t,...i,inverseShadowMatrices:new ie(Array.from({length:4},()=>new lt)),reprojectionMatrices:new ie(Array.from({length:4},()=>new lt)),resolution:new ie(new Ee),frame:new ie(0),stbnTexture:new ie(null),maxIterationCount:new ie(Vt.shadow.maxIterationCount),minStepSize:new ie(Vt.shadow.minStepSize),maxStepSize:new ie(Vt.shadow.maxStepSize),minDensity:new ie(Vt.shadow.minDensity),minExtinction:new ie(Vt.shadow.minExtinction),minTransmittance:new ie(Vt.shadow.minTransmittance),opticalDepthTailScale:new ie(2)},defines:{SHADOW:"1",TEMPORAL_PASS:"1",TEMPORAL_JITTER:"1"}}),this.localWeatherChannels="rgba",this.cascadeCount=Vt.shadow.cascadeCount,this.temporalPass=!0,this.temporalJitter=!0,this.shapeDetail=Vt.shapeDetail,this.turbulence=Vt.turbulence,this.cascadeCount=Vt.shadow.cascadeCount}setSize(e,t){this.uniforms.resolution.value.set(e,t)}}jd([m6("LOCAL_WEATHER_CHANNELS",{validate:n=>/^[rgba]{4}$/.test(n)})],ph.prototype,"localWeatherChannels");jd([hh("CASCADE_COUNT",{min:1,max:4})],ph.prototype,"cascadeCount");jd([An("TEMPORAL_PASS")],ph.prototype,"temporalPass");jd([An("TEMPORAL_JITTER")],ph.prototype,"temporalJitter");jd([An("SHAPE_DETAIL")],ph.prototype,"shapeDetail");jd([An("TURBULENCE")],ph.prototype,"turbulence");const jee=`precision highp float; +precision highp sampler2DArray; + +#define VARIANCE_9_SAMPLES 1 +#define VARIANCE_SAMPLER_ARRAY 1 + +#include "varianceClipping" + +uniform sampler2DArray inputBuffer; +uniform sampler2DArray historyBuffer; + +uniform vec2 texelSize; +uniform float varianceGamma; +uniform float temporalAlpha; + +in vec2 vUv; + +layout(location = 0) out vec4 outputColor[CASCADE_COUNT]; + +const ivec2 neighborOffsets[9] = ivec2[9]( + ivec2(-1, -1), + ivec2(-1, 0), + ivec2(-1, 1), + ivec2(0, -1), + ivec2(0, 0), + ivec2(0, 1), + ivec2(1, -1), + ivec2(1, 0), + ivec2(1, 1) +); + +vec4 getClosestFragment(const ivec3 coord) { + vec4 result = vec4(1e7, 0.0, 0.0, 0.0); + vec4 neighbor; + #pragma unroll_loop_start + for (int i = 0; i < 9; ++i) { + neighbor = texelFetchOffset( + inputBuffer, + coord + ivec3(0, 0, CASCADE_COUNT), + 0, + neighborOffsets[i] + ); + if (neighbor.r < result.r) { + result = neighbor; + } + } + #pragma unroll_loop_end + return result; +} + +void cascade(const int cascadeIndex, out vec4 outputColor) { + ivec3 coord = ivec3(gl_FragCoord.xy, cascadeIndex); + vec4 current = texelFetch(inputBuffer, coord, 0); + + vec4 depthVelocity = getClosestFragment(coord); + vec2 velocity = depthVelocity.gb * texelSize; + vec2 prevUv = vUv - velocity; + if (prevUv.x < 0.0 || prevUv.x > 1.0 || prevUv.y < 0.0 || prevUv.y > 1.0) { + outputColor = current; + return; // Rejection + } + + vec4 history = texture(historyBuffer, vec3(prevUv, float(cascadeIndex))); + vec4 clippedHistory = varianceClipping(inputBuffer, coord, current, history, varianceGamma); + outputColor = mix(clippedHistory, current, temporalAlpha); +} + +void main() { + #pragma unroll_loop_start + for (int i = 0; i < 4; ++i) { + #if UNROLLED_LOOP_INDEX < CASCADE_COUNT + cascade(UNROLLED_LOOP_INDEX, outputColor[i]); + #endif // UNROLLED_LOOP_INDEX < CASCADE_COUNT + } + #pragma unroll_loop_end +} +`,Kee=`precision highp float; + +layout(location = 0) in vec3 position; + +out vec2 vUv; + +void main() { + vUv = position.xy * 0.5 + 0.5; + gl_Position = vec4(position.xy, 1.0, 1.0); +} +`;var Jee=Object.defineProperty,Qee=(n,e,t,i)=>{for(var a=void 0,r=n.length-1,s;r>=0;r--)(s=n[r])&&(a=s(e,t,a)||a);return a&&Jee(e,t,a),a};class m9 extends cl{constructor({inputBuffer:e=null,historyBuffer:t=null}={}){super({name:"ShadowResolveMaterial",glslVersion:cs,vertexShader:Kee,fragmentShader:V0(ki(jee,{varianceClipping:f9})),uniforms:{inputBuffer:new ie(e),historyBuffer:new ie(t),texelSize:new ie(new Ee),varianceGamma:new ie(1),temporalAlpha:new ie(.01)},defines:{}}),this.cascadeCount=Vt.shadow.cascadeCount}setSize(e,t){this.uniforms.texelSize.value.set(1/e,1/t)}}Qee([hh("CASCADE_COUNT",{min:1,max:4})],m9.prototype,"cascadeCount");function D2(n){const e=new aB(1,1,1,{depthBuffer:!1});return e.texture.type=sn,e.texture.minFilter=Bt,e.texture.magFilter=Bt,e.texture.name=n,e}class $ee extends p9{constructor({parameterUniforms:e,layerUniforms:t,atmosphereUniforms:i,...a}){super("ShadowPass",a),this.width=0,this.height=0,this.currentMaterial=new ph({parameterUniforms:e,layerUniforms:t,atmosphereUniforms:i}),this.currentPass=new vN(this.currentMaterial),this.resolveMaterial=new m9,this.resolvePass=new vN(this.resolveMaterial),this.initRenderTargets()}initialize(e,t,i){this.currentPass.initialize(e,t,i),this.resolvePass.initialize(e,t,i)}initRenderTargets(){var r,s,o;(r=this.currentRenderTarget)==null||r.dispose(),(s=this.resolveRenderTarget)==null||s.dispose(),(o=this.historyRenderTarget)==null||o.dispose();const e=D2("Shadow"),t=this.temporalPass?D2("Shadow.A"):null,i=this.temporalPass?D2("Shadow.B"):null;this.currentRenderTarget=e,this.resolveRenderTarget=t,this.historyRenderTarget=i;const a=this.resolveMaterial.uniforms;a.inputBuffer.value=e.texture,a.historyBuffer.value=(i==null?void 0:i.texture)??null}copyShadow(){const e=this.shadow,t=this.currentMaterial.uniforms;for(let i=0;i0&&(ca&&(a=d),f&&d>s&&(s=d)),N2[o]=f?1:0}i!==1/0?(n.minHeight.value=i,n.maxHeight.value=a):($l(a===0),n.minHeight.value=0),r!==1/0?(n.shadowBottomHeight.value=r,n.shadowTopHeight.value=s):($l(s===0),n.shadowBottomHeight.value=0),n.shadowLayerMask.value.fromArray(N2)}function ite(n,e){return{bottomRadius:new ie(n.bottomRadius),topRadius:new ie(n.topRadius),worldToECEFMatrix:new ie(e.worldToECEFMatrix),ecefToWorldMatrix:new ie(e.ecefToWorldMatrix),altitudeCorrection:new ie(e.altitudeCorrection),sunDirection:new ie(e.sunDirection)}}const ate=`uniform sampler2D cloudsBuffer; + +void mainImage(const vec4 inputColor, const vec2 uv, out vec4 outputColor) { + #ifdef SKIP_RENDERING + outputColor = inputColor; + #else // SKIP_RENDERING + vec4 clouds = texture(cloudsBuffer, uv); + outputColor.rgb = inputColor.rgb * (1.0 - clouds.a) + clouds.rgb; + outputColor.a = inputColor.a * (1.0 - clouds.a) + clouds.a; + #endif // SKIP_RENDERING +} +`;var rte=Object.defineProperty,ste=(n,e,t,i)=>{for(var a=void 0,r=n.length-1,s;r>=0;r--)(s=n[r])&&(a=s(e,t,a)||a);return a&&rte(e,t,a),a};const qp=new H,ote=new Ee,lte=new kt,cte=["maxIterationCount","minStepSize","maxStepSize","maxRayDistance","perspectiveStepScale","minDensity","minExtinction","minTransmittance","maxIterationCountToSun","maxIterationCountToGround","minSecondaryStepSize","secondaryStepScale","maxShadowFilterRadius","maxShadowLengthIterationCount","minShadowLengthStepSize","maxShadowLengthRayDistance","hazeDensityScale","hazeExponent","hazeScatteringCoefficient","hazeAbsorptionCoefficient"],ute=["multiScatteringOctaves","accurateSunSkyLight","accuratePhaseFunction"],hte=["maxIterationCount","minStepSize","maxStepSize","minDensity","minExtinction","minTransmittance","opticalDepthTailScale"],fte=["temporalJitter"],dte=["temporalPass"],pte=["cascadeCount","mapSize","maxFar","farScale","splitMode","splitLambda"],Do={type:"change"},g9={resolutionScale:Vt.resolutionScale,width:as.AUTO_SIZE,height:as.AUTO_SIZE};class v9 extends h0{constructor(e=new so,t,i=k0.DEFAULT){var f,d,m,g;super("CloudsEffect",ate,{attributes:Qo.DEPTH,uniforms:new Map([["cloudsBuffer",new ie(null)]])}),this.camera=e,this.atmosphere=i,this.cloudLayers=o9.DEFAULT.clone(),this.correctAltitude=!0,this.localWeatherRepeat=new Ee().setScalar(100),this.localWeatherOffset=new Ee,this.shapeRepeat=new H().setScalar(3e-4),this.shapeOffset=new H,this.shapeDetailRepeat=new H().setScalar(.006),this.shapeDetailOffset=new H,this.turbulenceRepeat=new Ee().setScalar(20),this.worldToECEFMatrix=new lt,this.ecefToWorldMatrix=new lt,this.altitudeCorrection=new H,this.sunDirection=new H,this.localWeatherVelocity=new Ee,this.shapeVelocity=new H,this.shapeDetailVelocity=new H,this._atmosphereOverlay=null,this._atmosphereShadow=null,this._atmosphereShadowLength=null,this.events=new tr,this.frame=0,this.shadowCascadeCount=0,this.shadowMapSize=new Ee,this.onResolutionChange=()=>{this.setSize(this.resolution.baseWidth,this.resolution.baseHeight)},this.skipRendering=!0;const{resolutionScale:a,width:r,height:s,resolutionX:o=r,resolutionY:c=s}={...g9,...t};this.shadowMaps=new Nee({cascadeCount:Vt.shadow.cascadeCount,mapSize:Vt.shadow.mapSize,splitLambda:.6}),this.parameterUniforms=ete({localWeatherTexture:((f=this.proceduralLocalWeather)==null?void 0:f.texture)??null,localWeatherRepeat:this.localWeatherRepeat,localWeatherOffset:this.localWeatherOffset,shapeTexture:((d=this.proceduralShape)==null?void 0:d.texture)??null,shapeRepeat:this.shapeRepeat,shapeOffset:this.shapeOffset,shapeDetailTexture:((m=this.proceduralShapeDetail)==null?void 0:m.texture)??null,shapeDetailRepeat:this.shapeDetailRepeat,shapeDetailOffset:this.shapeDetailOffset,turbulenceTexture:((g=this.proceduralTurbulence)==null?void 0:g.texture)??null,turbulenceRepeat:this.turbulenceRepeat}),this.layerUniforms=tte(),this.atmosphereUniforms=ite(i,{worldToECEFMatrix:this.worldToECEFMatrix,ecefToWorldMatrix:this.ecefToWorldMatrix,altitudeCorrection:this.altitudeCorrection,sunDirection:this.sunDirection});const h={shadow:this.shadowMaps,parameterUniforms:this.parameterUniforms,layerUniforms:this.layerUniforms,atmosphereUniforms:this.atmosphereUniforms};this.shadowPass=new $ee(h),this.shadowPass.mainCamera=e,this.cloudsPass=new kee(h,i),this.cloudsPass.mainCamera=e,this.clouds=zD(GD({},this.cloudsPass.currentMaterial,cte),this.cloudsPass.currentMaterial,ute),this.shadow=zD(GD({},this.shadowPass.currentMaterial,hte),this.shadowPass.currentMaterial,fte,this.shadowPass,dte,this.shadowMaps,pte),this.resolution=new as(this,o,c,a),this.resolution.addEventListener("change",this.onResolutionChange)}get mainCamera(){return this.camera}set mainCamera(e){this.camera=e,this.shadowPass.mainCamera=e,this.cloudsPass.mainCamera=e}initialize(e,t,i){this.shadowPass.initialize(e,t,i),this.cloudsPass.initialize(e,t,i)}updateSharedUniforms(e){nte(this.layerUniforms,this.cloudLayers);const{parameterUniforms:t}=this;t.localWeatherOffset.value.add(ote.copy(this.localWeatherVelocity).multiplyScalar(e)),t.shapeOffset.value.add(qp.copy(this.shapeVelocity).multiplyScalar(e)),t.shapeDetailOffset.value.add(qp.copy(this.shapeDetailVelocity).multiplyScalar(e));const i=this.worldToECEFMatrix;this.ecefToWorldMatrix.copy(i).invert();const a=this.camera.getWorldPosition(qp).applyMatrix4(this.worldToECEFMatrix),r=this.altitudeCorrection;this.correctAltitude?Lb(a,this.atmosphere.bottomRadius,this.ellipsoid,r):r.setScalar(0);const s=this.ellipsoid.getSurfaceNormal(a,qp),o=this.sunDirection.dot(s),c=p6(1e6,1e3,o),h=lte.setFromMatrix4(i).transpose();this.shadowMaps.update(this.camera,qp.copy(this.sunDirection).applyMatrix3(h),c)}updateWeatherTextureChannels(){const e=this.cloudLayers.localWeatherChannels;this.cloudsPass.currentMaterial.localWeatherChannels=e,this.shadowPass.currentMaterial.localWeatherChannels=e}updateAtmosphereComposition(){const{shadowMaps:e,shadowPass:t,cloudsPass:i}=this,a=t.currentMaterial.uniforms,r=i.currentMaterial.uniforms,s=this._atmosphereOverlay,o=Object.assign(this._atmosphereOverlay??{},{map:i.outputBuffer});s!==o&&(this._atmosphereOverlay=o,Do.target=this,Do.property="atmosphereOverlay",this.events.dispatchEvent(Do));const c=this._atmosphereShadow,h=Object.assign(this._atmosphereShadow??{},{map:t.outputBuffer,mapSize:e.mapSize,cascadeCount:e.cascadeCount,intervals:r.shadowIntervals.value,matrices:r.shadowMatrices.value,inverseMatrices:a.inverseShadowMatrices.value,far:e.far,topHeight:r.shadowTopHeight.value});c!==h&&(this._atmosphereShadow=h,Do.target=this,Do.property="atmosphereShadow",this.events.dispatchEvent(Do));const f=this._atmosphereShadowLength,d=i.shadowLengthBuffer!=null?Object.assign(this._atmosphereShadowLength??{},{map:i.shadowLengthBuffer}):null;f!==d&&(this._atmosphereShadowLength=d,Do.target=this,Do.property="atmosphereShadowLength",this.events.dispatchEvent(Do))}update(e,t,i=0){var o,c,h,f;const{shadowMaps:a,shadowPass:r,cloudsPass:s}=this;if(a.cascadeCount!==this.shadowCascadeCount||!a.mapSize.equals(this.shadowMapSize)){const{width:d,height:m}=a.mapSize,g=a.cascadeCount;this.shadowMapSize.set(d,m),this.shadowCascadeCount=g,r.setSize(d,m,g),s.setShadowSize(d,m,g)}(o=this.proceduralLocalWeather)==null||o.render(e,i),(c=this.proceduralShape)==null||c.render(e,i),(h=this.proceduralShapeDetail)==null||h.render(e,i),(f=this.proceduralTurbulence)==null||f.render(e,i),++this.frame,this.updateSharedUniforms(i),this.updateWeatherTextureChannels(),r.update(e,this.frame,i),s.shadowBuffer=r.outputBuffer,s.update(e,this.frame,i),this.updateAtmosphereComposition(),this.uniforms.get("cloudsBuffer").value=this.cloudsPass.outputBuffer}setSize(e,t){const{resolution:i}=this;i.setBaseSize(e,t);const{width:a,height:r}=i;this.cloudsPass.setSize(a,r)}setDepthTexture(e,t){this.shadowPass.setDepthTexture(e,t),this.cloudsPass.setDepthTexture(e,t)}set qualityPreset(e){const{clouds:t,shadow:i,...a}=Iee[e];Object.assign(this,a),Object.assign(this.clouds,t),Object.assign(this.shadow,i)}get localWeatherTexture(){return this.proceduralLocalWeather??this.parameterUniforms.localWeatherTexture.value}set localWeatherTexture(e){e instanceof vn||e==null?(this.proceduralLocalWeather=void 0,this.parameterUniforms.localWeatherTexture.value=e):(this.proceduralLocalWeather=e,this.parameterUniforms.localWeatherTexture.value=e.texture)}get shapeTexture(){return this.proceduralShape??this.parameterUniforms.shapeTexture.value}set shapeTexture(e){e instanceof is||e==null?(this.proceduralShape=void 0,this.parameterUniforms.shapeTexture.value=e):(this.proceduralShape=e,this.parameterUniforms.shapeTexture.value=e.texture)}get shapeDetailTexture(){return this.proceduralShapeDetail??this.parameterUniforms.shapeDetailTexture.value}set shapeDetailTexture(e){e instanceof is||e==null?(this.proceduralShapeDetail=void 0,this.parameterUniforms.shapeDetailTexture.value=e):(this.proceduralShapeDetail=e,this.parameterUniforms.shapeDetailTexture.value=e.texture)}get turbulenceTexture(){return this.proceduralTurbulence??this.parameterUniforms.turbulenceTexture.value}set turbulenceTexture(e){e instanceof vn||e==null?(this.proceduralTurbulence=void 0,this.parameterUniforms.turbulenceTexture.value=e):(this.proceduralTurbulence=e,this.parameterUniforms.turbulenceTexture.value=e.texture)}get stbnTexture(){return this.cloudsPass.currentMaterial.uniforms.stbnTexture.value}set stbnTexture(e){this.cloudsPass.currentMaterial.uniforms.stbnTexture.value=e,this.shadowPass.currentMaterial.uniforms.stbnTexture.value=e}get resolutionScale(){return this.resolution.scale}set resolutionScale(e){this.resolution.scale=e}get temporalUpscale(){return this.cloudsPass.temporalUpscale}set temporalUpscale(e){this.cloudsPass.temporalUpscale=e}get lightShafts(){return this.cloudsPass.lightShafts}set lightShafts(e){this.cloudsPass.lightShafts=e}get shapeDetail(){return this.cloudsPass.currentMaterial.shapeDetail}set shapeDetail(e){this.cloudsPass.currentMaterial.shapeDetail=e,this.shadowPass.currentMaterial.shapeDetail=e}get turbulence(){return this.cloudsPass.currentMaterial.turbulence}set turbulence(e){this.cloudsPass.currentMaterial.turbulence=e,this.shadowPass.currentMaterial.turbulence=e}get haze(){return this.cloudsPass.currentMaterial.haze}set haze(e){this.cloudsPass.currentMaterial.haze=e}get scatteringCoefficient(){return this.parameterUniforms.scatteringCoefficient.value}set scatteringCoefficient(e){this.parameterUniforms.scatteringCoefficient.value=e}get absorptionCoefficient(){return this.parameterUniforms.absorptionCoefficient.value}set absorptionCoefficient(e){this.parameterUniforms.absorptionCoefficient.value=e}get coverage(){return this.parameterUniforms.coverage.value}set coverage(e){this.parameterUniforms.coverage.value=e}get turbulenceDisplacement(){return this.parameterUniforms.turbulenceDisplacement.value}set turbulenceDisplacement(e){this.parameterUniforms.turbulenceDisplacement.value=e}get scatterAnisotropy1(){return this.cloudsPass.currentMaterial.scatterAnisotropy1}set scatterAnisotropy1(e){this.cloudsPass.currentMaterial.scatterAnisotropy1=e}get scatterAnisotropy2(){return this.cloudsPass.currentMaterial.scatterAnisotropy2}set scatterAnisotropy2(e){this.cloudsPass.currentMaterial.scatterAnisotropy2=e}get scatterAnisotropyMix(){return this.cloudsPass.currentMaterial.scatterAnisotropyMix}set scatterAnisotropyMix(e){this.cloudsPass.currentMaterial.scatterAnisotropyMix=e}get skyIrradianceScale(){return this.skyLightScale}set skyIrradianceScale(e){this.skyLightScale=e}get skyLightScale(){return this.cloudsPass.currentMaterial.uniforms.skyLightScale.value}set skyLightScale(e){this.cloudsPass.currentMaterial.uniforms.skyLightScale.value=e}get groundIrradianceScale(){return this.groundBounceScale}set groundIrradianceScale(e){this.groundBounceScale=e}get groundBounceScale(){return this.cloudsPass.currentMaterial.uniforms.groundBounceScale.value}set groundBounceScale(e){this.cloudsPass.currentMaterial.uniforms.groundBounceScale.value=e}get powderScale(){return this.cloudsPass.currentMaterial.uniforms.powderScale.value}set powderScale(e){this.cloudsPass.currentMaterial.uniforms.powderScale.value=e}get powderExponent(){return this.cloudsPass.currentMaterial.uniforms.powderExponent.value}set powderExponent(e){this.cloudsPass.currentMaterial.uniforms.powderExponent.value=e}get atmosphereOverlay(){return this._atmosphereOverlay}get atmosphereShadow(){return this._atmosphereShadow}get atmosphereShadowLength(){return this._atmosphereShadowLength}get irradianceTexture(){return this.cloudsPass.currentMaterial.irradianceTexture}set irradianceTexture(e){this.cloudsPass.currentMaterial.irradianceTexture=e}get scatteringTexture(){return this.cloudsPass.currentMaterial.scatteringTexture}set scatteringTexture(e){this.cloudsPass.currentMaterial.scatteringTexture=e}get transmittanceTexture(){return this.cloudsPass.currentMaterial.transmittanceTexture}set transmittanceTexture(e){this.cloudsPass.currentMaterial.transmittanceTexture=e}get singleMieScatteringTexture(){return this.cloudsPass.currentMaterial.singleMieScatteringTexture}set singleMieScatteringTexture(e){this.cloudsPass.currentMaterial.singleMieScatteringTexture=e}get higherOrderScatteringTexture(){return this.cloudsPass.currentMaterial.higherOrderScatteringTexture}set higherOrderScatteringTexture(e){this.cloudsPass.currentMaterial.higherOrderScatteringTexture=e}get ellipsoid(){return this.cloudsPass.currentMaterial.ellipsoid}set ellipsoid(e){this.cloudsPass.currentMaterial.ellipsoid=e}get sunAngularRadius(){return this.cloudsPass.currentMaterial.sunAngularRadius}set sunAngularRadius(e){this.cloudsPass.currentMaterial.sunAngularRadius=e}}ste([An("SKIP_RENDERING")],v9.prototype,"skipRendering");const x9=128,y9=32,l_="45a1c6c1bb9fd38b3680fd120795ff4c32df68ff",mte=`https://media.githubusercontent.com/media/takram-design-engineering/three-geospatial/${l_}/packages/clouds/assets/local_weather.png`,gte=`https://media.githubusercontent.com/media/takram-design-engineering/three-geospatial/${l_}/packages/clouds/assets/shape.bin`,vte=`https://media.githubusercontent.com/media/takram-design-engineering/three-geospatial/${l_}/packages/clouds/assets/shape_detail.bin`,xte=`https://media.githubusercontent.com/media/takram-design-engineering/three-geospatial/${l_}/packages/clouds/assets/turbulence.png`,yte=he.createContext(null),_te=({layers:n,disableDefault:e=!1,children:t})=>{const[i,a]=he.useState();return he.useLayoutEffect(()=>{n.set(e?Array(4).fill(Bo.DEFAULT):o9.DEFAULT),a({layers:n,indexPool:[0,1,2,3],disableDefault:e})},[n,e]),i!=null&&It.jsx(yte.Provider,{value:i,children:t})};function xN(n,e){const t=he.useMemo(()=>typeof n=="string"?new rb().load(n,i=>{i.minFilter=e0,i.magFilter=Bt,i.wrapS=wi,i.wrapT=wi,i.colorSpace=pa,i.needsUpdate=!0}):void 0,[n]);return he.useEffect(()=>{if(t!=null)return()=>{t.dispose()}},[t]),(typeof n=="string"?t:n)??null}function yN(n,e){const t=he.useMemo(()=>typeof n=="string"?new du(is,g6,{width:e,height:e,depth:e,format:Ar,minFilter:Bt,magFilter:Bt,wrapS:wi,wrapT:wi,wrapR:wi,colorSpace:pa}).load(n):void 0,[n,e]);return he.useEffect(()=>{if(t!=null)return()=>{t.dispose()}},[t]),(typeof n=="string"?t:n)??null}function Ste(n){const e=he.useMemo(()=>typeof n=="string"?new v6().load(n):void 0,[n]);return he.useEffect(()=>{if(e!=null)return()=>{e.dispose()}},[e]),(typeof n=="string"?e:n)??null}const Ate=({ref:n,disableDefaultLayers:e=!1,localWeatherTexture:t=mte,shapeTexture:i=gte,shapeDetailTexture:a=vte,turbulenceTexture:r=xte,stbnTexture:s=W8,children:o,...c})=>{const{textures:h,transientStates:f,...d}=he.useContext(q0),[m,g]=s_({...g9,...d,...h,...c}),y=he.useMemo(()=>new v9,[]);he.useEffect(()=>()=>{y.dispose()},[y]),Ls(()=>{f!=null&&(y.sunDirection.copy(f.sunDirection),y.worldToECEFMatrix.copy(f.worldToECEFMatrix))}),he.useEffect(()=>{if(f!=null)return f.overlay=y.atmosphereOverlay,f.shadow=y.atmosphereShadow,f.shadowLength=y.atmosphereShadowLength,()=>{f.overlay=null,f.shadow=null,f.shadowLength=null}},[y,f]);const E=he.useCallback(N=>{if(f!=null)switch(N.property){case"atmosphereOverlay":f.overlay=y.atmosphereOverlay;break;case"atmosphereShadow":f.shadow=y.atmosphereShadow;break;case"atmosphereShadowLength":f.shadowLength=y.atmosphereShadowLength;break}},[y,f]);he.useEffect(()=>(y.events.addEventListener("change",E),()=>{y.events.removeEventListener("change",E)}),[y,E]),jn(({gl:N})=>N);const S=xN(t),v=yN(i,x9),_=yN(a,y9),A=xN(r),b=Ste(s),{camera:O}=he.useContext(bb);return It.jsxs(It.Fragment,{children:[It.jsx("primitive",{ref:n,object:y,mainCamera:O,...m,localWeatherTexture:S,shapeTexture:v,shapeDetailTexture:_,turbulenceTexture:A,stbnTexture:b,...g}),It.jsx(_te,{layers:y.cloudLayers,disableDefault:e,children:o})]})};class _9{constructor({size:e,fragmentShader:t}){this.needsRender=!0,this.camera=new so,this.size=e,this.material=new cl({glslVersion:cs,vertexShader:` + in vec3 position; + out vec2 vUv; + void main() { + vUv = position.xy * 0.5 + 0.5; + gl_Position = vec4(position.xy, 0.0, 1.0); + } + `,fragmentShader:t,uniforms:{layer:new ie(0)}}),this.mesh=new Xn(new Us(2,2),this.material),this.renderTarget=new P3(e,e,e,{depthBuffer:!1,format:Ar});const i=this.renderTarget.texture;i.minFilter=Bt,i.magFilter=Bt,i.wrapS=wi,i.wrapT=wi,i.wrapR=wi,i.colorSpace=pa,i.needsUpdate=!0}dispose(){this.renderTarget.dispose(),this.material.dispose()}render(e,t){if(this.needsRender){this.needsRender=!1;for(let i=0;i{i.traverse(a=>{if(a.isMesh){const r=a;if(r.castShadow=!0,r.receiveShadow=!0,r.geometry&&!r.geometry.attributes.tangent&&r.geometry.attributes.position&&r.geometry.attributes.uv)try{r.geometry.computeTangents()}catch(s){console.warn("Failed to compute tangents",s)}if(r.material){const s=r.material;s.transparent=!1,s.depthWrite=!0,s.depthTest=!0,s.side=os,(s.map||s.alphaMap)&&(s.alphaTest=.5)}}})},[i]),It.jsx("primitive",{object:i,position:e,scale:t})}const Ote=()=>{const{gl:n,size:e}=jn(),t=he.useMemo(()=>new al,[]),i=he.useMemo(()=>new Jn(50,e.width/e.height,.1,1e3),[e]),a=he.useRef(null);return he.useEffect(()=>{i.position.set(0,0,5),i.lookAt(0,0,0)},[i]),Ls((r,s)=>{a.current&&(a.current.rotation.y+=s*.5);const o=n.autoClear;n.autoClear=!1,n.clearDepth(),n.render(t,i),n.autoClear=o},2),w8(It.jsxs(It.Fragment,{children:[It.jsx("ambientLight",{intensity:1}),It.jsx("directionalLight",{position:[5,5,5],intensity:2}),It.jsx(fee,{preset:"city",background:!1}),It.jsx("group",{ref:a,children:It.jsx(he.Suspense,{fallback:null,children:It.jsx(Nte,{url:"/pkg/atmosphere/assets/card.glb",position:[0,0,0],scale:.5})})})]}),t)},Ite=()=>{const{gl:n,camera:e}=jn(),[t,i]=he.useState(null);he.useEffect(()=>{n.toneMapping=ns,n.toneMappingExposure=10;const y=new P6(n);return y.update().then(E=>{i(E),y.dispose({textures:!1})}),()=>{}},[n]);const[a,r,s,o]=he.useMemo(()=>[new Rte,new Tte,new Mte,new Dte],[]),{longitude:c,latitude:h,height:f}={longitude:139.767,latitude:35.68,height:3e3},d=he.useRef(null),m=he.useRef(null);he.useEffect(()=>{if(d.current&&e){const y=new Mb,E=new H,S=new H,v=new H,_=new Yi;y.set(aT(c),aT(h),f),y.toECEF(E),bd.WGS84.getSurfaceNormal(E,S),_.setFromUnitVectors(e.up,S),v.copy(e.position).sub(d.current.target),v.applyQuaternion(_),e.up.copy(S),e.position.copy(E).add(new H(0,500,2e3).applyQuaternion(_)),d.current.target.copy(E),d.current.update()}},[e,c,h,f]);const g=he.useMemo(()=>new Date("2000-06-01T03:00:00Z"),[]);return Ls(()=>{m.current&&m.current.updateByDate(g)}),t?It.jsxs(It.Fragment,{children:[It.jsx(Y$,{makeDefault:!0,far:1e6,near:10}),It.jsx(q$,{ref:d,makeDefault:!0,minDistance:100}),It.jsxs(dee,{ref:m,textures:t,children:[It.jsx(yee,{}),It.jsx(_ee,{}),It.jsxs(hj,{enableNormalPass:!0,frameBufferType:sn,multisampling:8,children:[It.jsx(Ate,{qualityPreset:"high",coverage:.4,localWeatherTexture:a,shapeTexture:r,shapeDetailTexture:s,turbulenceTexture:o}),It.jsx(mee,{sky:!0,sunLight:!0,skyLight:!0}),It.jsx(pj,{mode:Za.AGX})]})]}),It.jsx(Ote,{})]}):It.jsx(UQ,{center:!0,children:"Generating Atmosphere..."})};function Bte(){return It.jsx("div",{style:{width:"100vw",height:"100vh"},children:It.jsx(eZ,{gl:{antialias:!1,depth:!1,logarithmicDepthBuffer:!0,stencil:!1},children:It.jsx(Ite,{})})})}_F.createRoot(document.getElementById("root")).render(It.jsx(IT.StrictMode,{children:It.jsx(Bte,{})})); diff --git a/static/pkg/atmosphere/assets/index-DiUrG-eg.css b/static/pkg/atmosphere/assets/index-DiUrG-eg.css new file mode 100644 index 00000000..0207e874 --- /dev/null +++ b/static/pkg/atmosphere/assets/index-DiUrG-eg.css @@ -0,0 +1 @@ +body{margin:0;padding:0;width:100vw;height:100vh;overflow:hidden} diff --git a/static/pkg/atmosphere/index.html b/static/pkg/atmosphere/index.html new file mode 100644 index 00000000..32be6dae --- /dev/null +++ b/static/pkg/atmosphere/index.html @@ -0,0 +1,14 @@ + + + + + + + Three Clouds + + + + +

+ +

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૛fQVxTv#;MiOFyEQ*GLkWTu$P8+ygxN@Tw- zG-J5n(_WXasdV2}!6%+A)W6oMoSZZ-D$DY6wA69uBB=gU+j1h4aQ2NK+^%Xzo)-Y~cH{7I<GMQ1kXP6msJcmbbnmBqJkE1pPRCjbG8z<0dC>7TOHmoeF`>0G)$pi$0N+e;rURS- zoVa%w?X&Sg;A(U4VEF37KGlx21^(Ie!fm8Na;3CJ&u@4CVJhrR;kE5v-fqx>UVu$i zztEZ0D-)NoOI?g(K>dA42KXatyG#ZZ0XJuA4oV={`2Hdpiw`U1H1uy1u|GJvG87#8 zYOQNrY8ILqzqwK(O?zm575L*xvU*aR0?Od`cbwH!ZMwL!q9VWt?0cT$U!NHch~@cZ znfF(}2M6_Di)i;YAKu?|#M7x3&(3|$7Df!@Yz4xqAZJ3Yx=#Upwapud5^_w$l?Q_z_k;d*ciI)5GSn*JL*71B$+$UQ zPcn3T*NPDQ;}2m9Jd&%bQf$^&(7fP=k>agiT~$4`fxi&^b=&Z;uY_~|U6KIi={B}6 zF;NFU=+GYoEIl#foU3nE6q@_rX3Fvfiw-uN+ISle`1(LGSwaTC-s7Dn)p6&$8Ywlj zkiH?+_Wwi`!2;4}6nsKQ3m(DUknYrK+w*Wc730mWI_{8m2pa0V5Oq*&-+V+ROX|ceE#>07(&xe?;}BET%XHfrQ8U%-zhC&F`8S*|4KWG8?aX)vZJUXtJka7Ro*HMGjM_UG$Kk)mlJ9&FP#sQH_}=iL8M-}8q;SVclzEq(XVWEd_3t@1 zuwkMx9cR}M8>J7;srR-a?on!awYxg|r@QtF*i?>eB0`q4EZ`c!u=K!VkUNbMN6%m$ zDE73OY})m@5615egVf?$xAMS-HL#`y^T80tQSup-{uX5pA=*jF$3!&nppNgEt&5Tbz9>rg7IaI8>cqJwGam243 znGk(Jh0lM+|z_i(G5W^f7&Q5yI)5731|?J<7Uy+S0(nacH1@Bp?6 zVc2vDY1eDD*>i20z`@$r^5-=gLVT>LQZ3bF<28EOnGa(H$MJ_2-HkCF7U zV)wbxX*4Oq&tp?rL*$vorw$+MYcHv zA1;426RgpTXZb}5wXyn~F>K#3@_mS+*Kv30(foa{0nR8|8;5)AwQ4u^Vz0?NHun3s zLXZN|G4$Y{MHuoo`VE%d0D|^hye{wumaTTMLr&_$1HVWwGWK+?=fr$r9ARvM$2@uM z{H3O+k@99rE=E%%%_OOfEBf9T5#l6b2rkzvTQA+CCwQwoFI}yyf+hQxD#}I>I~ORG zhQJ9~hn6yR%pbc><0YJC6F`64wkWRbPF;4ez$s>*JUCnoWI*iGunPG zwK099e>b9f(c8a!2KICQSZ|Bv?_jgJ=xKI>giHOd5WA5+H*Uu6+qn9gUuC+ucb&F~ z1#Yr8IqRB;Qflpd>Vuf|pVCIQnMIn7cpQ8?%59XgVd$Hp>RPPFwuL@ucA%G~sWo~t zws`WCzNIInNWDDYYOb6epWLRv8ZF|Ip&G*V+v-OJzPv!}l%4SWld`_pLOgU7{yBH; zyQ0bhUyOrl1?tk;^4L9i(E%a+4Yp-Td{STX6pYz*? zwW-Uo-R-4BwH#q~Ho=|!%V8`_-@A`~Zm1*d8w!A7d{ADSG~yR6D~-PbZFj(0O8X>z zc#Xt;%wtNcZ{N=*)QB+mVD-|HA0Fwm1|eoS?>H-V_^8V z3gYV`2gUf^Zv`- zlPfr?&boIEqo}Cdn5nK9lYT;N0K(8c+F6eD2@HgojKUU8uCtGzY0{)N`krD6WBlzf znJj{#jG;zG5#=dARp$r4i5ml=`#T=1ydvw8f~meAeq^L3vXXm=h8b}aIXX!J@erSs zgLsIj@c!J7FZu7oQf*wV#b07^G-OscxXHXQDo(w+nZiiS$na5ZGW2v|~0+;g<#`}mWDXt|Pdc|{@UVnzF5t)0YGsMT_!OB-dxM#TX;eBl9w67719 zHJ*;R__>3X?b@QgYv!S(^!LGBnRsS>-MD8yxz>%>WV~yBDC39kXJEDe2BVxD+TD=3 zv9ftfu%}(2SsR)4Zf@2}d%0d*A~M@W)oW|!M6G;T$XVeN+Rq0Hj^=Wdu|p#FA9~+D z@J6(H9X-KbbA0J(CCuuMIRu&xIN?N6>-NjMwCQ!~JWK3jTv}mi$CbvkD)ujHs`@h; zHbUzws)9T5`&D0elZKfrbro;eQP*ed`*!bOLp$FbHqD>>o6mx|vGHR6Cj?*qu0F3F zFrk08iE7h9)3Ox8Q}@uhn`|)@;U_Ts6Dz%kPyys4e=q&Fq{ zN-OyrN0|O3W-Uj+hQf!zC*mg8?5kSI1uR>fVrHmir=JrvUWZP3iu#SEiI1Qk3oAxh^8W-H=@`{h_^yKmxx^c-rnaji|6PrFd`JWNLpqwo zM^@ze&yE9+2l2{xBBwX9UoY3BF8Qe#oX3?DiD*^XfH|98PL8+lB00=lb=@ph6G^ju zHcfbNU@C z92`Z!!Ca*1P|aXO!IQ;?x4_q>2%X#weK`(->~-Y&t!9xMLNN><@G(;nXU0UD){884W(*!L7#KNzraQaPdWaJy;-HE)C2P@=LQ~3 zGG`^h`|T5|g%69+k`9d;SNr8kWyH1-v1R^Z@7Tlatb#pggKKa#5lAA|Z5jneN|qZ= znyKFt0wnl@!J44`N=IMj^H*{uukIV~`G~SV(F})b7 z!(oh!6hp4O&%lidWXlhrzSPvN^U#Sm5g=2}9x>cNf?Zs>*j`Me>9D-0H8wBxEH(cN zP&y17n5kgmnj)CNLvXbd4$|hQ@qrR*3KcR@U15E$UB4ze3+6u490&it{S)I;$K(8t zmb$;mFngrH-Lg=h*_k4yda!ivsvC7?CJqfyooLIyA5pYnwMZ`1C)~Y{9I0W0KxFSP z%z#CLlpJn78}f&w_0D(Gqde@$^`(_X9W<+1-7Q;7iIOLe&)Uftq#w3wP#LM!VAZ>EDX|pJZo#>{ZV9Z8fS`(_VFl@{{?9v8Qr~!xt?y1>oO24VleZe zX0+k5g7C2jNaCNDv-vLjRtq?Q2@qv-#f*_&T*D8;snMQi#7UuD@GFwzWrx?B}a)_ufWXeRXU zEa8sWI9R4o)iV}cb{frd8om47rka9L0dFT&&C2akIm{uTfNE5_S{rCwnzRJYN1ANq zL{{ayXj~@UUG?Sln0%p;5sJSkR9oID6%)kSK9+!ozaH8&44v|6{`30_cC-0aUmA%X zzN?Ul&fZhkZX#q13l*E17@GN3Q;rdz@5NUQD<%3)@Nh&ULiHgjNAQmKotDOki=Fr8 z!(r)y{1KnlX#O~Jc>T_ zG6y}!I-D7*oP19rRrzj%R;6=I!QNg9GzxSTUuAQf1v;gb>$k|V-!6zFT^WD5=oc~` zUsj-Yv-imIKD~1Dcm4B6mBpy3$7H2R8*!v(42P1OxU2;P&zDAT0?vplQ%2&#Obj++ z@fN!M@-)hSYiogM+pVK*o^)n%WloJ zsdis8+dSA6X&*G4T_jz%EG{iN+T%I*ST&L~YKt-X{x^|de)r*jP|?G%e&);^Qw>Xl zo@;$Ezhvxbhuu7N70tNbL19s=0C?txvw96>M!7;@8>a#9>=P9^M*5d~nBX|&`5c7y;we?Gy(3NQ$BOS=DK>Z`+|e7?6)1f&HdlvGOT4k-~Oq!ds`IWt2g8JVPKAs}~i zaL|SC7!{bPQ$+Eqf{H7K*Zmex@P=-3#ScQfGX-BQ ztaEZm#61w$o@g|YP@#G5mmdw5pG*RjmADvg_e%b0bBOk@ED_Yw%zbklvHnor5FeNP z679{AP;w6UD#{ZS8VXrGlNmns(}2Kik%&};0Tj4D<-D2cR&R0HVldomcSm*k5o+Mu zX{(SaV1c;D4V4t<)zt3LTez%yg|9VJnE((mpE$2xX@NMYBsY4vayQNIt?+;59*}mG zFlQTrv_{DGuw;gmMsbjrNq;E~ss24|O1a|(&cZIlf{e%{4N6<_e1-76Xib}7vv$NQ zr!8g}SoX!Ya^T(@Rs{~<@_za8JuNb)N%@W#y2iI_e*swc0KnSNjW7vSR)T!uqnL|- z!>7a}Q?nGEOMWyExfx58EKJ}D`F5nrV-b!Qw*hJ14T{ONX%A<#5~GHUN9|bOqlKw< zPg9=bzIb+m|9(yQe)D(cK>rkdm2I-boTsC648YVF4gxqHs{de2X%@23_*x@+`l7b7 ztT=Zn;pT*kV%%4gjrAam!173P;mHHdBEp<-X@-0@LCZqnmPP(g>T`GJF?5ARFv32jcL*X>T z?f?s4?}G{m^FJj-&kLR5R!dv}4!!}{knc+(6 zJ`BUPrNpS;`8I^^!};Da);+B(=p75T()}a^>~_MaIHD!@0<7=rcq`G$*5Re36i6>0 zbqT1%k+6T}_EdGFuZh+p19&$UzJ(reNjP}kwWN_POa!;eRwnAmTrV@jM(kC z_wU%S^(=VTz=qF~#@O5ojHM_o)?~?c(zGXnvp_!ct^O=z8>hmt`j~#y+1!Lr{KZ#a z`79Xg@dmtJxG@s*oXdY^vwbp~nHLs9tF1+p!Q&~-$qmbi z?3Rre&vA|?{b)<Hk;MvERdjx1#LK*NzY}YNc zk|g~g_c~)PoYLq5j(|x9f&!Yv=pGXc5_d?vALu{3UcfyN?yNf|`tZg>74tRF9ge^< z7f89N9||P!jn$HD`Gw(P5Om0GsHa)v+25Z~yIr}>RPrJEN#Yk8Zn6~@ujk)UXC=Nv z_=? zFUAB|p}c~S*HY^)OSJk+U#Av9v2HS!_mucFBV^AQAJTtdaiWZ_W#z9gKgRo719*lB zO!f5mf$GF@vsu8E=76R?rOexjqa9`Q(vDGwKLiKG{7Lsl4Ncyx{bL~%tMA3| z-nwc2@ZYkk$K~QOM+k(MLWI8AsZun-C@_6BsLHOAZ&kUYT_q1^gd>DYnsDz7AjP94J&gvTNCFPIQ^i0cGVvO5xj6RnYFAp#}~_eXs7N0DvM&}zO-gSg+>PM z&;|fx=3EZ*!@KCaz>-k@lRF4 z5acVh+HQK=EdvjIe{4MM*!pDhI6Qe+>=436%KMTYLRT0^&SFam&fc-z*h)ccg5@h* zd|g+L2em(t`lT0bFuu>6m4lg1(htzz`6d~wzaeVyZ($#8NwhCJ0TCQP3G!Bw9+#N= zh4wEsR6{jQEDgT%kkX`NQMeHkq~m+k3_z?ii@+S^YZfBr(v~FqF@VzNO9{H;tb1HRe$sUvui} z=leBI4@sns|3UJNb7(W-PjovSdz9Om3)FZLM1KRZlT7KHelR7c@QPXyHv8uGZ5fN# zwulVOj8N<)>dzm1?JU?ylZ^d0r5xvS5G|94&-&S~+pk{F{~)&^HPam8P7_8HUrdqGyb$@fZ#yL5dqS_;Xceb5L5Da zn0`3bCwAtfyYVpq z0gl1qQ_KoJXsXtQfO1ENW0|~hN-=c6e8qgdJkEpW)dOUgwmE5)AbE7A zJWrn|FuqqX{{c3Ey*oWVft-4@divmdC4_x822n@8qU{oXFed!(qtWMxuT5c_IF{C3 zf*-khawj+5XffP|SYO4*I4AzN2;au92ty_0lvNiC0aAApZ7Ta}gAt)IE~B-IuS!8XbHGIjLPubz%5`KXw=#y#yA5u^vQ z!dU?*A`$Plx5EIy>UF$>ZUtUXxwFeNJWxzp6U5!G*wu(qg8YA;8H z^ZQY3$Ld=-4>VqWm}eNPwj^!i)*0YQX6hz|e3+%qBdy*uDS80+YdyTLMA@JMk$nP& z2J+1v-Rq|ijU`&h)mI_fS8N6TAH2RjiQ_#H1J*A6n;<^v^$zqm6#cDlw#!T7;u`gi z@?Uo^e3Phf2HJekjHsPF+RZ54IUT;6$WN|Ki0^)hI>cx=X^*4ciwu)>m$$T#Z`6mz zv2Rv2Q5{69^(v4!tE--HWgSCH3OrK<{*&|Ln+KCJC8kB!_Y@uQ+sluKYX_x2@BW_f z)^@HsTVH1#RGN~@BwaM}Ab~lQBFI;5ff%{Sq2u?fE?D6^pDuQ2 zX|7}%VqPwj_@v!S=o>44INNp#(UcdMq0@RX6*cH{|J$W`ITFI7QuEq3$w!E|#Xd($ z+fbYTZt-aUWE;lvv8Vm{8V@Vx4;i27V0Z0|%k^REty3A$6kgp=E^Gq}AI-zxf$fv*g|3~a^VDSI>!)D{)f*5B@11Az z|45ITj`T+TeOx&pbd*F>*J6WR&&!XBC+Q(8uWoJ2wF@ZtjCSc=uk1fCe%ihus}3*zG88s;HOIGO$o?frDTLW3D} z(6HWPvyX14&tYcoZKrKnh97EmmE^c~QiMJRt)DTc^JVJmUu08ZZSx29{_?eckSnM` z1RLRg5!033)JqW7>5`FgQI(2#(6{Hn|3R3OFF~_azlBAvMxMpx1Gun%lDWlO&iJeY zdB7W2PR8W)@UZOlc3W=+UL1&sO@BZ=9UoIW9` zoS~>1R@UI!JXhGR7yb!9@Z0YzXH71D`?h&k3zRTM@RPih7ZXrTATfGIZ2OyQp`kyE zUHs7eu6+`yuy2wX1|?Q+p)X;-fp_}BCX859=|U4jIEj2c0o1g@{X@!Cn&#RojcfQF z7=B>aZIF07m=0f-i8$>3Ow3wb{OA8|dirvL~LlO~iyKbX9QSU#~>moD~8 zHZQ2{pB5|IB1ZNvb}X~nJxNQDgb8ckEQ*8!JWpOtfvYI#EVH_HK5 zRPU_>e;t>f2P$8i{~dp>y`s8knv2`v(u9FEFnHpMXGU^|=g~K@yE-hzutKDGLIL2t zC17h;HrNbBCXk~)QM)a(_!yDlfS2M8lb|G7>sded!uPsFAT=IQRs&xhS9&K|!hCF) z&+_T}-!D6G#)SR)*wi*z zhbK|c6mJJ|MVMWr+YrF5s-n^nU04v=<$e_FZRcET+dLW}qMVC2dA$J$XYC?#!WqdE z*R4Sc4UE7&*8&)w&ki0SeM#)1&Th$VmAoDUc5AKQypHSJ>pdUfx^or2unS!?sB2?Z z8uoDN3GDHd9PA5)%sOwA3)C9W6#jmSN7Q6qvkY0d9>gEDU0Kr%$Y*s)72=L-R&WaE zgv=1__M^$Mj3@>xh0qCX7D=84lQ&y$yPQX54%i$1DK6*Unamo^;ZDZTd>l|&EEpIB z%#=_=#=dpKgZdv0>Go$cB1d8Go|xaI$Y<4`3VdqJle%zD%>SuiN9lyH zvCYLOuFJ_pU9q)qk$&(P=={RPG^qH-9)AcFpPVD2l>Ln3P{J(s(svUXqL<7zF!THX z86q*$CkARRj_WO9^b2G)B~eGLzPZ5CkJhZS4y@S&xJ=_dh@xEU7y8Q-Z~tncSEim* zzqA|ef=P_oHQU+mlq@x+KFdS^tuq*(zh0~r;Kmr1af9}{?V;Vq-H(6Vr&g}*ZUBgi zWxJ>_Sez>R%?rHh9+GT={4E&KI9-Y0(FT$$?{;%vSul`n1y+!*feCdtcw!KDF6UKv zFY%{0(A0b$j0_Bel3#qKF6{Sq@?TuP`CfPOnt}K8!?wpv zS~#+B9^e5KIycGoq(T4u^IPD+ED-#f;X74j7_OD33_06$bDR!R;_P@#|E=79{j5+7 zw5!w5kV*G=8@%hGWyA)@iMsb(UL1>Q*#-Q7+ z_*Uuzxz_HL`AaWlju_U{qjU<#ncYx&d(mOd43jLZKWsQ$#FT4hcsim#?Ch~bByqrUqQZgN1QX$!|?;(%fy_Rgd z`;n9tjvaD`*rQG4LH0Yd2SV8M=>3D#b~m~>vBW1K2TL21(yR|F9J8AKzh5ueK9fU)Ta3jZO9T?_1A1I(h+0~h?eWgnKhyE{O zxid}~j71er7CPU)#Wv&tnDez-kzc(9Et}>>=$i9g+s0n#3ycLQ59&MkBhm*g*JOug zT1zKE)GrKE>_4>yuVxVi@quuYbC6yCcKW;uJ(CGQ;8qr(5x(_k=4DU^=8n(WtvVlH znXBITUN1uZg}(fUMajqGgO0=82Qfc!W1P`HVG*43Q9sZySR1ifP|5CkdwB0LhTLPX^n>_U7RyhdxEEKjNRX+iU4C`A52+p4hJdH`GR;oe#(>~L)1nM zMgXTXfA_E@vXrCe@X32azw(H?SMccCJ6 zKc;jt(T+b7q1yIja_nG9*Nbib1A_t?f4RMZlh$F~$+4CcBK3{P(S-h$q|W;9NrWQ*Z5HK)mdpo~zQm@-D` z1n3D-(NLoDNhuVM+oU%Ich+Emy)M?>0M`Y&LrQOZ3-z{p2&|nX!Cs=e zf;jQe{aJwhj`1!)YWJsx==M>&$|7>gG#v>AeL8+^8IGM-lqd-e>vjbO{ob3lZN+hr zXAXJu_?a|I{+n53qsK4lvUS}NBHLoPgMPXC0M)iM&`ARAAG?h)HmA^x3B{f$V&92Qn_^vI5xp(Z9*ZfU9q38`? z2V>E!G&)J#apMKxW9HpA->vUNurhV8kx51lM$tQL6{MNV_dZhL!8Y2x*9Yy+RofwZ zTG~r+-zTV!*nuK`a%~YU)JOGj>1^PsJ;t1N`hy$%Q#=QGDj;GS*~6N2YyO3ch9GZW z^i+c5%I^_wu|I7+LwUk~Os3kOY5=V<9^>}rGx<<5!80-~S?WBE;MH!S$S|Rgz(ACw zAij0%+e^al?61QF*PhAKcjAk2gn9Vd%KVtUKE~BCsnGpgd`qRao1{vekDNP=gg@%< zTC98fRt8Y`(T8dpG3iY-hh^i-MS}H3B@ENFgGr=`@8SrS*>hMA@$V&I~!htoMMAyz6#T zKdjH?BD>VO;%<><#qxaqU*LO@EUDln%;(K@vQSbQh{|{>BH`Yx#Z^>M)j2ls)6Npd z8Wm>iOJOE;Y!CcoH7iVXH?il2lLMzY+;d_)>f2sns1-ihq^MPW1sKTK9 zq?_rsqp#z2g*kgP8>x0FP_+vjG9y;k52fc_7BKCV%ZqX=gRwZag?ZB3s-O@$cUG%w z+SlaCtEo=mvodh3D0*ooh{P)Gz;Z(YpZr?VHRiAx^`tcC`D8^+n#- zIGsDEg>hyU^i`-geacQO$@d+kU*KPB&#F8HWJr6X%?O0w);byM*e82`-oZC*jW!0O z^ACM$QjBc4$`?w26La>+&kk*(f@BKjtW1M3?hj!&6zluznWt!L{kF!Tz%zI2t|RM? zm9@5@PaQq?CLDAgmZ6%Re z@HpEE@P+$hmsK3KxGGIwTy6h?WWF+MWRLmo%D~TQgQ@Q%_iptgXC8B(;>t-&nr=g! zskduoG~Q9j)VSQiCN?a(Al8n%V5d@Zr{d^-55wV64cnR&4Q-fTWhuGM*G#4%8V?ha z=?%wjREO{`JMkYE%f(Zo<@$xDVi~g0*$3wH-TXL6z3~275NZx{=7)oaB5#~yK4pfW zGAS!PEZf*|zxj{i(LNsRl$s8Kx02cxSKv1Tj`h$}oQttPDD?3M(nw5L7Z*b8qDx?b z(-X{&n@Jr*Bj(Ka3mydYNbVY51cJXawdSB#q41~zzcwQI{BODR^*v}<6V7}44mQz8T(Le6eKc~i5x0hOm&_g4+;ey&BS1>iM&1-=NGn+y=cJ|jB zv9&kzdMx2yz>Gf!Bc$uiae~@yU%A`nAD-migP!HSEt1La2|NVonp zEPX#!2?G_tNLMcW5OjXy+?)jp29WiOD5d`-f)3o?&W)MyUf3BiF2?lDP=^qkTPY7+yM9gw32t&Kzc8m+jlws_fYumTnttI~) z?L@*xA?UeT4ZN)x^AQm=v=$zyUAEw9kXRT)wwMhhboJ@sbKo@u{Oq)S$7SLBR)^EE z$$Z!Btrqcmd+eHi*pWbTR}qT26APQ`=NFIPH;pX2;6zPV0T%sp2OPtF7*&!vd<`L& zoFWPx==5yx_bc2-M$eE7t&OhlqD$-zT~UiV&q?;Rc0dx$yT@A3_qa=(KkmC*xe*r~7+n}zqkUbOO+c*^q( zdi(S1Y2dZt*4jJ7rzV3I)eftEGTe0etvg=|`bHW0h4N2mH??JMy2~@4gEPx$WDLh9 zX(>ClA`nl*EU>>R+fTLD%GtNP3W3(&#>HBW1Wlx~L>s@jTAaRYn?Skll(nvmaXt4O z#sT@u(jul1zY(Lto-^dOTI&&d3QZ~rR*)wfJ12r*ucHvKM?MmYT;lILTaMHf`E3P! zg4G;OXwpD>2m-1JxMe2sH(}z)u#V#(-N845i@b(Y6HQ7iFz3XAK9T%YTB*ZPNAE6k zlX)bT2y-?gNehuu8+8|sot%Q}|I47ezx_GhNb@|t=3BqG(qytPj`I?Vf}Q$I5t}Fj zJPr_nnC7Ml!_r9du|!S2ucn+R@bS@Y79gAxP%7wBXuj&}D2m+_VVSk$HtiG50Q=-# zxGtAxNgj)QZARyspQ`${GgPPYbCFRoJin*CuC^`fw3VflqGxx_y*wx#zTcJ>}>%#;-7e9d6^)W9gcX-(hJ;~&F{U;1^< z$OEyI{4tDP1AA%_i5t!Q3fw!_lork~A|G1S+3^0s>KQV~aDP!acKnUKH-QFi4{Al_g#Qp$ zV<87G9IrWc;y>lUc(!UwoIv4+Kms2L7i7Ng6~9^16h^j@Ir?7i z;*O!V5*mv=KgZ!pYZ1TNa+wDCTm6p6csu0R(kC809ytqNwUM7*sL=o21B|Id_P33& zJeMiMC_^pa{qpBoa_Eihq1FH&3OS2ovLfgq@hduPL{dN7P0enRfkLm4J$;RUYFNk; zDl}XZ?s<65zDd-7P04RQfudu}3`$@oAI44b?#&9t?dL7*A6Q(psiEXer%nrdRObTx z%`MXu0`{b@Dku2PREdCB=~+y%#!{gQR0z@)m+Y;W41C=2t+)IQDLrGFA-rY510}ou z2ZF(@y8s|}sMl?hn!GVB5`1S8m&2SbX8Qae62~b|IIy-{{nOIy;OFVL#{fG0Kyfmw z99OOZ|HPOFu){>plJRgH`W|SnzWFLj<+rs+7=0k1nw_uG=5T{-DCBYjqya4~a$dT3_f3 z=dUKT(@AImeffqH%mb+{#9GY^gC}}*f2hBc1k(E6Sy@jrm) zV3TnTdp`!oZ*?Oc0{#HB^}=lxLc992s+%1&@eX(694HiGP#J?w6F)h@ioMYnFu+?* zY+BFa4xSjM3FI?&E_K5RGn{%t=|i`yrunBen1jxU4F zIdTIUCj%g$b(@tDMV0Ti)7KFI!v$!;0D9Hcz>z=Aolhf^I&?262yHy+#|aatZ%yr)PdbA^%j*BQv)Q{`zXAf!4fvX53=S!jE|L?@cd)Qq8!kB_N$XB$IqNgxB_R=$~1~ZI|*2 znbKv+&$rfq3`Me)Wm2RzPfU4|8=&rKs!rqTTVE@N^3C@tJCM%%bwVEztlbWUG7#Ly zll*gH`g1%1nfO!Ki+&jSlFEGCE@2(=3VI%70O7&PexO)cf;RvU2`soF-gH+-S-y4! z18WU+`RTY#`R$JMVK5tMW=mX*KC=?n(ypf(k2O&K2SO_8H2$|w@DLOvG4YZXNt_sl7jwGtZ#msl~|mk_o@iRqYDK6HMAoe6?JkNKL)UOy5A z*d%uMV8GT6VDns*indH{BAT$Fjx0p62TxK5Nd7%`@Qk?NPAui6g1tXxEL zY@dudT0P{EL%Jj~n&4`{@THzgpVzv35zJP==6bKM6?&i@!SVt&K|TpiVQq4ix=2q+ zzi{k411!v3zl&x*yWL`Z*<}ixGP-$f+UBLhR1%F~cn5F_L_4KMbk2t+>`xUfApXgI z_x}s-NyzarxFQdMFVZ%wg_-+!qIdgGb=!9MyUK0C-X_&X~19m^{S<9wkRP_Q$YVE3FBH z@N311@qi|>`sj`vLV`c7UD{Br#*OG`Zf}`D$lmPT7K8UASwe0WwKJdSrRqIBMVrgx zE&x|la1jPARti~bPq{6&n(PUc$@n5YPk@%#qH4!kvxP#J>8gd>yCp1ZA5ZS~A9mI? z+AtYAlg~kJ`~j}SFoB&)4@8wHIBKI2mC2~5D^Vp5;cjDMh{sYNS^)kx!MO0vvi^9b z_Al}mAQQqawxXefro1Qr`yDPXZ0HIWVF%#5^>5~CO1>*kN_IC$d-`%4@BdsE0_6RAeV5fO*dUPPg$O?5ag#7E(f}I9 zT;E(*`GdF@4oy|aytHACDrr($4<||v4 zMj%+}IDlBwf&peAiCk`5+QCTQ`p{>HDEMuR7jCEDF0Opv$uKhh|5xs)@jJf$h;-G%!fXS@oB8)N=$%QN|~|6J`B#*z7HsT+$v9=yjL}58&b&nywi}e8pO+|?+X07AKVn3|9C8GZBM8j}RWIdw2aZNdM{LhtXaQ%k~stY-i|5=<^ z5s*$lAY1uo!axAktK2oL2RjjM_4+C?C8a+@iw7-NQ67M#)2wtp2P8jpGZM!wNO8yC zL-5L;j)B7AIR^JGm7Pe0;3O3#{NsuB%k~(D5cZgr@_yE}`)KNB5z2z?&_egigR(U-*+b- zO@qlt8-7KO>6oX)A^r)?{x1C%8@(kR(jrno?(X`r5e-kMh+GPWrY;UZrvr3V~jH zAEm}K>5$^~m`#y_vtXPlR%(wu|FMqQi@Fo!eAvx#&Ujt*Nv4<&A!x}4YT9V`mn@p5 zt}hp;{LwusacC!M(n%q5nb}Mkh}jU4m%QmS+hIeIwOyPScY(v3^pxck=~N1_5g_y<8Ebm~l`h>3{qJC@K%g;vS*%V}P6iC_Idi-+^+e%+JlP0LP|CO=rm*a1wm42yJIi z9$_BKHodc)3>Vs+A80BEF8$=X**6$|^VC>~xkQc|2SqdP!joG3{Qn9XS2@)PmWppC zL^Ibb_=>rY{8uI|kttZiwipi;xya)I#}YEdyqE?c0YNOlJ<;jVRF!dsYL-NYV=>Phz)CB@=tzgy=TwB&Etj*h8VbkG;}OWOM(9$Cs@8}#ZW=m%{glq$Mp2)uj6 z#deI*wR>wt>pJ_J({%lK=zU^jtwWNsz z0=m0h&3K_R0XlV-nv-9|L%VK7|3yTsF=GyE@Ov4R%qkmx*WLbbyPlDWdE==ID_XPt>poJO;RBr5 z=8S2z3Ph>ZAcT|0EKvlgm%je<&Af^;W3^!1`}m}m9iD5}(bB?fDk{D0JQ$S^(_zSb zikkmpN2W4v2A0O2$nMH}GWC-!@xHvMx+l^}t!yC|7PGRqQW-6}Z+gy$4>Y+>@@u`j z7dq!nxC$e1K@BPtoo@>|9UD$R&sR4O?m7IPM7jQlRQz z9Z~F=$Fm^?Q>l#7a|AweZ1x~*-|SpyY}Gf|aAM~|08UdCc5vfm@)2n|6Sd$z3(or) zlOF~#*~0^TWSa*)At$se^>W^g{o;V#&`ZFC?bU?hd~!7;rWiAWW{ZV&@9Qnmd77az z+Hatnf8uVL0D-mrlP(l|r^(0uT}AP3Jkf@5w)MEA|-B)AZ%{ zb?p^U@s5b^>+v?laC&;-1Enw*gB?PO6HQvs5f6I6+T!@ovD34J-B;am)5QYh!|m$Y z9x;JTRcJfavfgNMtGw47Z?b3ETcII`J$YFNhPMKE;#s$EzF+6~s3V;FAQbvZG2;HM z{xYBM@$ZS!DCqq}u#k`Ytu%bihq`msyRGeXKsA;JP~uD>IP2Hg*-f#|RJTLc(BKYm=EvyB(>3 z{8h{A8wvCuBxkZv()-bzqa9)ECvzc;;ZX3tgE!F_M5ekR06_iz;@9&7=mjcdykM}~ z69E01jx<3lUD+3&VU)vBSOB8U9;Fg$`Ud6z&b}FoZFLb{+K}ga^!VWRS$-(;6JelJ0XcO=rY#s2 zV&U#%?a4+J=Go-nde+SCq&IZ(J$N6$WFW*%;YcgtKZ?!!I@f6c1@_E7ZOVm-@qx$v z51-?5z8@q+K2^#??KmDcTc4!2aPCI`E78>$0s3JG@IoK({@m3}8RiE%Bi!AVLgmui z5wMv-^ts6%b2`u+2c&Cho+L5p2eOohp?kMyU%uTmI0y<`$bf~}lFiI?XnCzOn)r2I zL1L7q<;n}cT?EPgPS2DxK@d4;!EZlo50HKehn!Y@573i&CZsO`AaMmUDY0v0f^Yr} zMbA;OCdH~4+99mZ1)nRv(@O*DwuGN=|BNaK3t-=5m14A)2|GnO{H0Ewb~S+XSkg?$ zVk~?3I`$2@#=F3prLUNlTX8Q!7$s*I`W=Vu<{cLtEKa_x#|QFZdkBnOPVxEPr@kng z;ZV!%(ii7pzA{{m@0pCq0L}3Oil^v+%mC7fllg@fttI3!Il)Gp zL!_H10`juJ>*ibS82S6X?S}eJr(lH@$>OyrZ_UxC_1sf`Kh4D*%KhO8`7fc&eVx8~o*x=GJl(D<{Q!drK zi`b+LPT}bVuG5yM@00u!(zqNWeeHbf+3NTQrio_|0QHarjNe>@w;O#9)fDMU8so(! zL7y|5U9WxBI4hW7w=1^sjxY%ndwa1s4Bh{t5N9F8o!Mb(=RpP(7sLcwwuZyxNyprG z$)D6xgN_k#h;;xg1wkaf9`}vGER?@(UfVre`si)<9AJ-e8gj;dqCimzaQ8i_DzWyh ze8q`h8Vz}0!}ksgg7<-VGhj4DQpy*KkBYo7j~(d-X5UB3uIqGqT-+jT@{SshAf)e~ zy3avQ72`Ih*Ah3xa(L%_KNX;Lj0?am0+IKJlgWC9tZPK%r2v*n6P(@cV07IL_p8Xr ze(6|Wb9qH$RLHa=u8-?)&VqKUI~YN374pt|JgOi(P9|xQN(joB-!s{l;nraS(F~uD zCw8D4Swdo%yNS**SAY{K)aGoZIzqR36>Nw-eyRK@{0EO!R!7xaQwI~0<>so7a;%&!O^Ood@_ylZj~H@W;i-D>qosD& zIdjdI&5I&!_P1UTcc-F874ghGW??V!ylY!Rm-oDjE7_UW%rv#F7UOoaQ$56r{_&pG zkmvdy$A>xl+w?y+y{*MKIv?Rm9B~-3kApv|5VKS8ydiagcje{FDc=5q677a-Lho@5 z(RGY3W>EB0pL_FK_EbH41y2S1i4odQ{QrBn`tIE+JJavm^;Pe&S6~?u3CHy3%mVdo z;{n{=sW+eviWntK@;!zTMmo1E&lm)`x4$W*DAjHU|L*@SkLj2Wpyc9u*tq)4hp!}Q zlg65N$;ps{pULaci;vhBC0=F!YM)u(K5(S@tDXlLk#lPLA&Qpj^QMyD)@S7NjBoQU zeKC*zy8tLhxnj1d^8re@p~nqWxkFKBL7~Ay!5`07wc-i9>cJL58iW5 zglVVsUMyeUtZ*^R#|sm2@c{2le_py5o7B6=+w|{oPT-NJ-16BbF^960#?vV4wjUkH ze%WNHsqIe=H&~ND)*7_by7!)9W7COH)=BY zO39RILoFnu$gI<^OlGR{Hl79_|H28JT;EZN4pn1)G}al1sB@+<9*r0F;kK~`E~LJx z9&mXr_1_!i$?2?ya&3$0r)PFw=V{iFdC%d4Wt4Q}MBTO{<>g~h1QR9=2Y0xK=6uzI zv|B=|BI8;t#vUhQNbCgaldg<>P0-;L5FdgE-qTT@S?DEto75!pPOwOHW_;2bc;8Cf zIlQxs0|eGY4I_MAc zt>`)uE;7r&R83M~J7hiF-GM|U!ObR>epI4mPD#zDC4~xTX!Zr3Yc_xU_~mIpQ!tUZ z?*Eoh?^fe)_4z60x!ElnmIetb-*n0j??=wm<5A)s&Qtici)fM{^p4NMCru>APZhJS zm?xzok~?V*Y;$>R(eg9-Kg6{rgro{qy@_PhI~lqz6*_jnCPR1X(wBfp+_#ChLW$qe?JW zQ~kdw51?p6HVcU~L0zQqLIkI|58 zAwujjMh>l=z~*D>7=ipb5s2+?F%TG#xP{^AaO=$9`aOATH#kEvOidiP|J5X4Kv(=(4J#C=0u1asw6C$#Hq|) zF(3|)Ybd(72)#ibI4ey0Q!LqR_qubwW0eGjA@Ca*&4!|zqbpb=`^yyHe{NgEqySQNh%j!GE9Y5KC)=y6mO)BPl>wY z@rK^h!EVE6C4RGwR}{WVKsFtxXyW4=(vmsO2g#QBv)t2R*$+R6xjJ!Vp10gs6)>#} zSMUqS3+ME^<99_C$5O9*Mn3Z|tJUduV!B#W1V6S^;Y6N%KE|wg9&CUWuM} zH8|32h`BFVF^SpedFBnH6Fp!%%wc_XpW`e^_zVbxdiIBDPU|>Vr~#UgJ}%7CYu6pj zoK)_*&ro;BQkmJv@iGKFBSEOSrChttmnNaPqxuV^V)vuKgx)@tvL!d5$99G-h3nBN z-KzAnQ9ap*Zz+s1cxF&9aT<4H@C5Zo zyYlXVZ?X_kUbKk#Jo#dqJ>~c~eUH8rReT0PBV|e<+8RemH`jM~ytX$T;G0mRFuSC= z5I#OK;Ekd&5E;IfFN4(@{;wB+Gn2tpBXq;zGj@2340kV;;`uc2PN@N4+6q#pAFNdP zw>}NX7)ge729E}L`UTYES-l{73xTBh_@x(s_jH;!IQ4S+?!{g{esD3^a7Xvlq!YIq zHw)8{_E%<}vt+P5eKDn* z^*-y2e|E_9q=`<5T=GHPYX-47ty6oy*Ph3Bb`q0bOWV*6%keN$90i@5^kqZL8K zezP*lGae2qrF7GO(yS`w{KXnqu8Mxn_J3@Rx(y&}X^B;lA^3vkn`Hs9LX66Xq01bq zk&+%fg?Z35O1*K`!GIkf^F5w*kQ_p;F{9omEY0-^_&o{9_o>veIN@*_L#Js1$9c;< zktPmz#wv|KNkmXS%%V4f?3L8M7{4H%l%4!Z7t>pGc2q$%($>>Glz2%!eks&Rvchrm zrm}Pin|R}k38o*wHK7bVsKnth0?q%R^e#6C7tg2j^xf4n6Tx;?mM}(dB^@vgq~~!G zL=d_rS(_$XDd=mURoFr!$kk;>Vn`8od-W zKOZCpo=ws9D+2=6(z{2dkNU%ozkGQ@&v!wsF8-)e0n54^%Ij&qfN8?P92SBm7ry%r z|HzuA2fXB1uZgxBA^&c3QFr&vuP|-VZn@70N_`UsTuaA(y{C-b4c&87qLbPXpS6Je zFHgN~U!5n&SnN=Q9;S4zv!A}OH0v0zUUTu)AOxRi1a8|Q7c%=Omd*%b6R+?}D%PYP zmp+iLJ@@|Lz5VfH@BMFp3kN;&`Oh_|TJ^@cC+1si&$xtl7ESZM`#z-Cea^Zj=HaZI z#MEu12!tSP^3_lBVJ;;WyC#NBb!#AJIr5_8;J}+VAAe4nkNDhJ@^&={7edgyP+K+X z(LZZ9Tq4cqdtKh3BUVN`-^ex5X1iEA|94MUHKowISCTgT)7KraG!M9vAiOLCdf2?3 zGI!B8YhTxX)95BUnX~U~VRgibfDI@f!L!9#)hBwkBe>+-7PCk_Q~Mv7KQ0QAT9a3H ztxqSAq3g(zcC^wKA$wW#ODM1HhOU`jGOn`AGJf#89e1&+W zU)Ro|C-~t1f>2HhK=sEz&9>3Xl~}eV^_!oMIX*X|>6ZK`C>L4Fvw7xQ$?JQ{;^{$- zb};`%f56b_AX_*Mr|Bk=iJgt)tubr+ahe&jVx3}hHk!B67JLi@giO|V4{Yyrm^qHz z;W45)pc;ICAUx&u5k542$7{Dy2xG|rE#4M_n&C0lwC$UI_RTTQr_$@crjx;>q)?xn4mNAXihr)ku5%mUGs~ zb?}ELU?+%I&avhQJ+8URbdPq)D*0e3JivOkH;%)!+LsBYPAQ;i5uh?{#IB zN+h#vvN9w4BH0v4>DrOK_jc`Um+ZawxVZK;e#htY(f9ZM$3J+VbKcK+p4anwUe7rV zTaRyFKhHZbXm#dE^;)qeF!*>l^~YfR^8;E5UtVK3evcNa&f8yz=kx*`rJ|1AcoIFU zZsxBTnWkhXhB};QNb!ch;6Ual2dWW*c>4Nn@ZS{TemDn99CX91sARkOJv|ReE`m-h z?i$Gr#?sQLPuw>8)l^OHgqExP4hC~hE_?K$Ts09-I9u|qyv_qN7ooE@O;ct1&B+I< zt*A*H1}$=YwP!|UQPWO4_{-IC^B8^OLw-jAUdSTI9s-M8X*Q;iTT;7;T_?&0yRZ9T zU&yr)lG_K!03lBJ&Z3RpuwXFoKEOG;U<_>cm8WodYvJ@e&|25CCebc=I%oa%3Q1vE;$AnB;)`2MVNqAqPMA)rOycdg}N%bOy! zSht0YoZ0Sn!aCPDV1OED=oFs#2*xmN7z%mq@eQq4e!#Bi$~;SEZ}T2E{d8o)cQB5A z0CT2&a7-s*;+s}aftE%5I{mmnT)X(-k@!AE+O(h*@X)|lmv7Zc`+uUn8ZubdscB$$ zu!Fk|&TF^AhK+uQ@iG4|=k+wdJIbnPrdg187zf16Sd#S`kH>9wkh-jjqLiBAM7_wQKQe9&WqS-5Te+yl!^PD<6BpG ztN3L-C@*JjA3S2MXB3B7c0Hzmx$M%w?eP?8uXWw%dhe__BLGYk4{t|9zGljnW!@Pg zAU*dO5>dEVJ6>aU3*a-2BT@D5V%?{THYfL~Fm8NI#!bFdt$j|E*26N9w+9 zSj{@6cx*FeoH{!}R^&NgIbLe{ri65^e*K5nPT4c~PW#p6shhd5I^Rr_=bb(TUNI~U zy9GQ>R3(vCZ+g;cKAjm!VaL)$N9Vm!iU|W~?311ooaqPhu4l6byqGXm$DCnpfdGWY ze8by{HNo!DSxM)GI5cmOy?8<1+=1!7v+$YBa02Ol-?bKEWGR~y+Fx11 zT64n_+QxtLdU&*wceUKLfxkdqLC~bk)naVdT8IqQ{qY@%;ZRX(65^F?5eGCCPRW@h+Ukn2`K(LE9#(ux)A^J8b+d$!q{S^qz7#dd!^RRT=F_BYL|&bBuUO3C5tU> zGG{w(H`z|$&e_}r*q=ozqJ^mHQTUpLolML3HH$jysz(jRMc9eeNZWX4>*$8c>zyZi zma7Ak?lSuNa&kCouecM{Cfkp77}I>ia5V>8UbyK>re9vYBqs;@C)94%K0D(^In@Ll zpV|n0pJ;oMnhJO)s!@54RS&;Dj(8Y)J5~bV{SBeR1;^6rv+L)>4p6|v`OU{RJgFIV zj~aX43%YBTK8(2=lmR{>hYXG8*SIg)Y%y;T?4h5Q4twjLJG2|{1FkC zXp`+4pJGxM-IWYG5a{!|t(q~Vdbc0U@TDWTe02F6>z4y?m&fdWi!9?8ZseH@AV)6u zp<#VydTn`!wZ!=#S^k2}@)R!ZUHJ4w^d~&DdxF%~AmRLl2TF*%ipur&L>8F87RpN| zd1|0HVTl>^?GghhrQeHIg-AK>!qc)yf7IkUfcJ}_Y zo~QC0U~+OZG%t@>#Org5Ymh1Y2><91Mx|Y|xHz+qhq4h`0)kq;HMEakwnotL+ zuu_+R`FD4I&fuCRNIWdP?Kw{HD}HgM!}wLTvw4b_ZTJfS-v6EBJQmG2iBnR-dFj7Q zpMsz>DiK=loEouwcpVh&TO81lbPvw3P?Vxy%5cY^{R@RS6(1Z zeQ-d!5uFa+ZG1b|upv`-t2=~+$7V2p){qwmYi>I?J>05oIUg9a8IaIZm{-D4HcvBN)JNDPIwOTryVYca5nVTYqYYPtL|9%FVRC z=jobXKj1*-VJI0eSp*9dvz>TOkPivMg|2%Xr4b8*rF-P^O65^#=R{rw72fXs%20Z0y{638tZ4k9XC zu680@mW0EWmZk#2%L zutB3;k6*n_`Vt7fTqp&Z!0$Kq6*w}kQqj>;Pr!E-pltn-fc5WHui!lRzzbU1QcbJyhF)dDO2JYAC+n-e%I_DJdLZPLpyXWQ zlRVN>OLUh7P8P3tNX+u#n%z>2l(IA8h=0Q43gT>}KPgO$MAGXcf1&7T%1wROHM{aU zm6gPrzQtcYcYe%E+GxcRXH_=rFZN`9u6U8`K~(ful4TSJ#d;fohjw{>?{rpu8usP0 z^X7EM>C%_45p*}1%77Dy>YDoX_&`b~kN@YZq@xcd%4ZP%sL2xv&-QilKXa6#uL$QC zM7AF~C=QzXZ6D#-i{YYKFIX#otfL*(zkcXO0btrhYT7W_Vry{#n3l$PAJbK+7(Lxt-IDmpbf~`-b@5xnhWX*qRKI#d;l4=#I+_{Z zDLL>47H#n^e-hIF#fR(?lLAcpR)WokjWCC0KjhJncTwgW;gg{Bxp8Dt_R!4EN-7N_ zQ}@ZMbtwKMQgnCGU8mqQIA6jkeCH)2cMAdOJg0^dHC?CA>NGJoE<8Xx&L{m zK(#0rO?FMkgx`1a&aTDS`gz7BS|kxbDU7<}=%mk;sB~1o4XZ&q9IZMP1YaR0ZTh6! zv+?L{7YZ4Nmx5oq7E`<(q$p@}<{QeYxAtr7nqQbt^sAL=I(^WMp58(vWgd$Z5oH}G zxZ-V=e}6psej(%&*LCzT{iyjpehn)>Gt>ts&Q7!tE13|=cN2nc?UabzKtWa;DMbx0 zzF0HvjzOW=GmV+9Xn5JLwj+D|yaj=m4u@=06#bR@7Q1XW|4XXFc`mr7tmH6PaI>_i z+3KqvQ&M7U+Vu1?%D7L?OEFXKgj1>XeBO)hmeVzusBq!Ht_^akazMqE?dW*Qy8 zoZ9Yp9{IQ2-krrf9-T!$_c=|J>BNR?WhbRll*v@b==LC8*zAI zb4a6qP~pE^WLoE2-?LrZ@Y-%{8#BwqLq*2&Ng4UkC(1PM(EHx{IqbgIgy5rk{aaf{ zI?1MGvl;6e66$y^H&#Uw<{Pd}@rc^ujq_ib%>{*xF4Fz-(M6;fozE_XiF%LOQoXIk z*0yjy>bc7%y(!DSv1|nY)=_2spiLt5PsA*`!sU)N`7b@V@+rSKe97jeq{EDS)lECJ zA&I~h7&Z1)&CpQFZCkya|tOIhr z%qHciZ8xOEjou<~=|Xjm2T$Vx5>noYA$8g1yXBHQB0nk6>${uwR^Q!(FdpW-1WG9< zZvDak%|qeV1>2BU zx1=ocZC`DJGBhYkQvA= zG{WC8=!G!w8TST!zGL6o*-@ITV)IMj+tc}u|0`RbJw%Wb^0{r#p1^m@3G1pCIJs-@ zeMF{ae5M<|#FG%HsJi<9U>o3g|CFwbWv`!_%_6IB{wDJ?v?gpEU_+NCXSncOH7~u* zSJbt;%?kNidv?!eTryTaELJaNi8(E@C8n+la}B+TsOKTRwb*Ei@f}{4C(guRQxA+t z+gIM!81VO#Wy<<7q8U$)SD>Vz#Md|SP6>@mzh6g)6H?nMg?JstpD?9Zo|YWdwz=Wn zIhQl0+=Di|^`jxlm!TO=WOQJaj~zy#_BV`+&}I06$Io+wa3z*Rc|s2FGmj% zEy#_zE@bU1<_9#b9z)e_O|fsDw}mKlncx}uc#@bJA(lNpo)@WuYw?<+Z_qA~EIfM| zA#)UQ`s%U@*?Rvv>ghr(=|Pdmg5WJTZXIEK+NPKos>qupb3Q&UJfP6=8FqHs>6*ve z;Te@}kmt_^yiH)03S&CnGX6MTe%_XbM8KUNEZqYB{bQ{>nzVb8dV$`Yp41Qqi^in@ z@rX4G@S3jAk<^Wa5p9-|*_=`aMzm zQTWfbl?o1K!5@2?@mh-hOAXm6`>H3QN7J>;>SzN*s$BGqP^HDTl*hS$H(wy2nrzld zb2o+JUZF`JwukT(&=)Hbs`XQYX{@c}Or@E?gBI>_%(P)#lU+3tBK`8-@!vv_OBab0 zw@KM-$_t1hi5+7Z%>~i11aYG@ow%A46a515iaA>{rftpCAzz#RAIC0Bb)A4y+?&>& zBe0ADe`#j;DJCh?P(;5i#7r*p;X6YZfo1t$#*sZ@VsYWqV#uN4@JOdv9<>VuI4uyK zGH!(B=$^c(zBgv=^ghj`4rDSun#1QuQWp}0j{Sp{x##Jl6gR@{pLN+Z-!XIaLqK9o ziJTDx3lS01z0ab;i>?RU5$+GT|I$NL?LO@3kto9S?9DK5BJ9BnvOwtdJ0Zu;$U?#3pe)TGI1Um)Ih9L8ppnwqf|PF~@3-KIZgG6i5Xp@C+u9`DoEnE0@TBOKGZx)e1PHpnze4=ihL8PM|g< zzTT6~)QR{O<*KjRQXzHm(JJvtgcd06C|%vzDM=1<*fB|h`|>CXx@m34efhP`J0GxI z3G|`65S+^)5fEf0ofYb77UWKI^H_8jQ0%-QlY? zPbz#tsaM@oiTR~#sY!|1=7+w-bLuaVhViHZrB)Qa@MptEMJbuNKekf66$mtO_23K0K|ps%9txD%CQdw;9>I5 zL3=tT%cAj$`Ijs1V|`0Oa>qj$u3|hk<{LKI$45!oL10LdXf7=AMS6MYP-QcvLjq3< zs6@o5t1w;W-7g8ic&ur?>K-rcEhXMw^~TutltmDX%!2Bdcs@6RO&K~r9~FFDEW5QK zG<}m88e{Oe6eF;uxEgHkoABw zGtZ@Mg{p(oQyFk5PR;H+U3q;)1|a|46;+IHk|i^>*K8M2?+;N^%^1mn53D{Y zhuycD!bV`J>Q3d~KXD{36FAix*kfjHCWv?9&NS!I*YPQ(LbTXh4M@`69uK&RyYq4n zW-ff`(*u1;fVCV?Mrc)>)Y|nqY%QtuYzrs^ikBu$8maeVPFpnk^DuxM!o7L+d4&Wy zSA=~Epca!T_w@`~OS1FO&t4-$vb6#mw-8w9(eTkohA_d!@#8gFk3i-DAEb>TOvWL-`s(D*c!89-~Z$ z?^vs=ZeE*g{pw|FI*D*lSK)ryNCzsTm zK@;fhz3C`BH8t<~?bw|(RSV+kzi*g4_So{+Xoe|K0g`1VqnuiK(-^p zvu6Ppx;9$IBiPr?7MP=JFJB`*wH^#q7&#gFTNLHCVr69Ozg6$gwY6H_h^C+j|1ugk z78~%|Sr{|lN7Q&w`7WO`YQIR^UV65&hvBD!<8+bF7^$dVeKlUr)7;Q@!cI^--H^AD z=U59ln{)lmp|nulRoF_d2pS!38Jq8 z>C8-bb_coO;TDJ8R7;Ywo~c!*i_n|*IinHR!}DJP614pjKhWFxOUXFJyGmO0QQizQ zT4k;6W!@Zm0Z9$Kor9wsVJtaUDNt|(kuBQT~525I7E}01T8JiNa5zX zsE1AHsjAdkR1wT^Bf?$1I^N8joq=$1oiSfIK8-qt$XViOu_Q%WLIQ^CEOaD?nU`1k z#?5A3BI624MNCFVmSMSNl-pTna^-$Sq|ZA2rao{C9utPpEo;Aea}O1z$;h3kG8j=Q z!5yhyJ|=y+a?E4r?5k6*RH>92{mx<}fcpzR7Fhy*I?|YZmFS=usZGc|)xKMFj2`{N zH86dt1=u8_{2kKD3y5UnLNm&05xo5~BbEhvr~Codqu!f}O0Tc4%2Ea?0-8L0%0|Xb z`Mu$1NpAzass)bR8`#TV?$fqY$3=5zOhO}#eU7GU(BHQlfRTl_xncGDzR)|b|M%Y3 z>(@mMRrYnnN?@PW8{MLU-At+URrCcum8H%WO)N%!y#_eR^4fx}4*5@FF1S)APWWx2 zK?;XsAc|F3i#Oa$kbZsb@Z<|Q9x9>hOIb~3E_KF(!Q^VHZf(JRQS;Yla#~*WghNEM z>|cp)f)kq$j^wf3IAWctj!q)*7pPjF&EpSc68{Zl&v;c{y|=3PVvCG^ia8UG4nE%8 z`1z`_5M)4S59Lq8#0|HfmhU`T)R~(f@K~DNW>Gsj3RHM=BvOO7c3wy}YU2|tf$sij zx;3xGU|vZKa1aO?FDGzNk;no(8CP8N0yTkDS}^I_HRUetMufa=y?&Ls2x|7w4)M`_ z5e#RbBW+fBdG$ra-yovSGWoszvj?}y1naqX8#qhR_@@VvLZG1Pwuw5>DG>N>=OG$< z7Y=w*`V^pwx6^@SsJ$6TJPK-L4K~FW1#vr@9|o-cSxy}MWU(u6PWB?X5{>J(17*Hr z6}fXCsdtnVd<}iiqbBKUjpMmXXiiC9-F!8cYsTwn`@fz*l?_M|lsNT`K?$p~asqdR ztf6881f#nH{Hoie?rl_in+?&&^cRW=bLeMRj!1h@L;>kBVHZGTO=6(byK;t}&JdlR z02TzaJ25^{JCj$tGtaHl$yAcvw#UM1T$8X>ccLSu^m_Mt2HTev?3wFfuc~H3uI={v zl}(dF%L%8XGxU|ctJNg`cQ>RxVUwK6JGY2~qy6lR-DPLa;)?5TjyzO*-RTeIJ$iX2 zBW&4Mizf0hj8>zhL{NXrG<56m-ARSpAb$dOryUyGJ>E@kIRCb_oi9%`*Dc>bq-fpp zAD77#tY+Knw?nx2ImxhkuP8{4Rg6SE&D1mw!Jzff!DCb1Vomb(GfSo-vZ!2 zoq*}~dn|Qj%n;q}tEDv(*M>@UFo{@5lzbQ-U6)x<_R*EYC3hteX2HB|rrJyB{>+X? zKOAK|p(9b+#yR8ilr~mS27dub zQs}blES6x2DRfF30!mFWlBR2T3sfq-w3u0hS7G43Jq3`2 zS^YP#m(hu(h`k0vyA7c{ zpq3s@*-0&|r5)FOF2}LX$t!QO0F()ru~V)g5~T0aahxY9$h$Xd&{WmC0*VZtF!>sF zRsGlUrzc@E2b#P~QTi2zOCo$b(Z0vKa>@SeY=K7F8t#iE)>xVzSGL`|EHz$xygfZt zWMR$efr2;hQ2Ot@!f7~KrBwWpjK$>8Bt8;!G%betDs$X`0d=8F^w64k9vgG*kW9ucT(0_Ef#HX}O-4$W=x;6`#bPkJtcd<|BlEpTJKzG6<#6x3S zAOnu!2f#xAoEW2L(y@yBY46k0n(TzEgAB+Jwp=L64*-n`LVWQkE~!+qkT)I+f7uM5 zQ4-$;eh20-#*m($ms<~eu6IY5=E&GiME~wGKs7Td%W|-Hn%^$XL7@c1K7EHl%E=?x z{Z5Y?EF^+ddtI~)`YL3=9&N`-(NNzuO?2z{#EIh)4v=R0?T*XI1*bPle^DNK@ zcK9vB(B59}4b>V;m?VX+-&doMIf{l-x)=8CMBWOGiN1JiBjo+1Bs841#RhHv`VZeA zDNUX1+*lnltTAx1MYF#}E=GBa`b_pKQvX(y8K8Jmlg{SKrn@jvy+-60Y{`;?-)57X zTzfuemL!twErDhY*^?Dep+Hvgn{03wXQH2_lPSwFlD97nXW6oGf2ZzjJO@Z&=cOay z213S2^aoqsvY$%)XOPL)0v$Hz#<|LNjN^jtCWumT-NK`fcrNeZb2!Jbn#dE#ot=(s zukob;HP zS=)g-^7g=`)b2*& zMa0r~+qo2bsA+?$<25IQ4}^mC4`M9AU`u5A&+%cfTY?l1jec}NZt*5$=*g)bn{YSiKJ^}hCDuy-d; zTXM2W?+wbTWsX)?aM;%`Flc5gk@6FYol)aU+;Aft5E($iH2n*G%)b;Cw6$;{^HWgz z2sc+%vGv=A0^VH$2h{LL0h{5M(4Z^K@1VfSfZ5{%)PX|DMgFB~fjynd&B#S<|F%(> z9$syVM}NZ;lrx?M6F+VfXr%v&o zX-Xo854V9_(p{nZvE01c1$Vi7h!)x1Ni%)PFdfC)nSmzYRfz&VG5m$yVO=^E+W&f?4Nq#f0g*mq3SAL76)sG=4(ZEm|u1yY@nM* zpce<#-4KW3?On_%;h4Xx+E zSN>a)AVp9}UnJ2$zpj0YA5LKcv6fX^HNj#&M|3IOnC+?hoAZ`y$irzTY9NDm_gv0K?}tq ztNY4@ecv|jf7K{SkS3psjUxvKsr%+)gL=^R{8Uqn^+2|s0}8twtCB~+hfb7y+2?tN zfVT|8x2;-1;~cXf(m$Jj7$$8P)0+EeYl=zYE8=761&lFZR&SfZqwXO${|JaM9F~O* zLkV6KxM4heVrS-kdOef72)*XrLI<7iHGd27*RN-&0f9dk)IqGn%bnN;PEuQYtFnwA zqz=mu9gm&b^FJJTv>tCT641VYd~3notM{zMSosESCl(0rL0GxL37ac*`4Vw zC7nJyPSVFVz?mnnitsSOBo%q4$OBu}zlY&?VhX7CuiFpXeP3BSUq*>x9ePDu)v%rqE*>%FzCV}oZ5zn< z2talf=t}^~F6+e(KT)LUP~FeqFp@hq<^^(z)%_AqisbrvTQ@^8iky#`Sfr8zG*~#k zA&X;HJviWbt9Fyp2Ek+AI~A(nDkr^$=TDTKHhx{^0!5Qv3-jFagSVPJUzI=9*349JwJ>ImbJ#|>HhQgB;i8N9#Y+Lx!#Mj@9Byv=tEPB zE7W_~KFX8_*!q8;yAPVHUeXL~Jc4$?Ni?PK8$Cf*7jrL~e3Ec3BrE-*0$G}o?qv+x zoB2aFN1BtcPh0l{@E0t=>ZG8;icL;O9P8+fLHnTlm7*9}=6%{Ex_6Yig3keVv7mFA8^aS>6p}p>krNQD1nMjCOade zOp9ty<5ofxiABJ4OWfArOP3WJ)A#gE4z;>T9-zOr%qc_Qg7!+tJ%Wh@f5xyojI+Ci%kO-Tit9 z<2oyJ<{3Ysxyt~=5vu&9JxnucAQUJp5A!lrQ+2jbz$2Y~T^Vf)QWs>ew|CtCb*P#d znXu|SFp#l0bnnT3$24-p%t5(skH<@xe`>%*+Gw{q`K#`RW6bP zK$9eYgh8p5lS54h<|Ra|xyyge^m2{&7zOROJ?k>{+u43-tSAD}b_x0R#I=^*e%*Uw zhe3c7Qcv01kzwYyol^7S+rEsE?$Mpgypf3lh$PAekz1B|iJ$1juP9Yrt1Rl1$ymM}$N``{%&9LT!W}OER|*H(IN1SJl%FeHRJl*j z<8(9Dqk>>A=AMk=ZUJVN(+%} zDRXUU$6>I~?f+Jd58#lTBAY%LMJMYaa3S9wYj}E!&&$O;ga)YAY9q4W!gR@B7)Fa< z3PrAm8v)7h>hDd1{gFBNdt>eNJpsjKtZs8vW!sGq?)DAbi{{J5O`oj|jX+(+L1&JN zcSCH?n?nNC_`-y}sS8JW?%4>hTVZhvOmh!$Fa9eNFkJP#pDj!1a_RH z4o?^9jM8IkcIq)JjVF)EGX$8p(0ut{V6HQw^$}3&Hx0c;-+tZHXOm*j`vVdtNg#W(nJp`5H3BKrr z!vDmBa&jL4U#aVnYp~kLrQlA>l3?o8445cy*gMs2#77WiL8?eHX>>lMzcZw3ECN(B zcbD!kzw85!Vslg+o_1bNiNGms_&F)XqwihaTA+jTb}EO^y$T}XscHxzsIN}5%Y!K* zqISuk^AzCiA{z?H?O-DRJ@vqAin>ClNF)O?hDyD6*M7Q-gSHTb4E=)G;VC-G?9!PJA&`!vWBg3I@zqe}whqKU88LL62W{VPjRXN9*4SYz5|WYAa$vHXR2Q_z;VWbaP?cU+qt0OIeinWt)Mo!z!`yc1aHAK+!(_aL6vZkdN zT8zR>8D8pw1J8(#JZWvxOwG3#kiT$x^*p~EMdl~KW`Oe2Fn>NZ|D)Y&2NOI$Eq{Uv zg%dB;940^m(V4+WZuY#$d1*#v zz!}pr#cvk*=Ee<~5BYPsKR=dV;p(qceQkw;BagXu1YGkNg1S~8cO;TOepmr zN87r@F)Qi&>fFcI4~ez$pTsgnblP`!qQX$b5f5(=+>KJSug$g0?diNLiWhJ<4g=dn zVqQU+!<9N4){RiuyV!15n@K6>wRj+V(!+e%1uHKQB>}d5JD`vCsWUhBC1ZVkMdN{U ztezxdHd)fvbZ~WO22Nu)&UWkNV0qHyT({alTH5Tdg8nzKR<(Yw{hI||&@OdLvbm0d z#zJ=^X68aa^J;k10)@!oaz%N2M6B)!6$&RnMRiJQEP&;Y=qorOX7{Oy6nO*Aj$tRI z8<$;n|F&2ZyQldnW%bv2p+tg9z326C8)jV4+5JbT~KjdLb<2O%RQ_L4R zF)683a7Ny$1`ef2h2VXZ7P*blYs5&4bI&_R*~(n$(FAtR%dcJ7ZQlY)sSJ<}FWwUu zLOK`$o!+%(+!s3LsWZ2)Z8KzT=N>9_f)yyI^mJo&VA-GdqmpVY#eOBpef|28Aw&b! z@wqN%(4CGVV-a#MAwSvlO)1&4!Y3nLWY3g4Fl~1;8SolHGyITLp}0&PYA6hE*=}+* zUP?3lL$BsPXT^8^BDk!lgg+eqOb+o?t*RgP?%55q4O=_}m9f0~koFZusICem2xN}j z2)`6taF9Nv+-|_7T@wW_K?BL`AST~UUvJ{w{T8{*Ba;L&xFL1E(Hz$Z^g(zxvO%#! z`ymNS4{1y1ylbx7Ft*$Shr|>TN`ZG?q;XGk0g|InD@la8Nd;V@C@YE%`ZPvc`m|5w z!LQJ@{=%jWPwp5P*itlLJU$;Z+h(SRMaBKP{gLI9el?~4nYW48=_hfG&uP^ffR0q) zax))z$FqDdG)SF41?4`@up%p<7rW7TW98(5qP2$`qzb~%3AyVmH`@BLyd_Ki^xEOJkT+`s99Qt`}Omye7&VS!ZjH-j)Y{`=web$S|v$o`6Fc8P% z`H5gIgeZ{_1P=F?+}BeZUBsY|uui_6n-?-ZTBr|=B7{2QDAS+zX^+ znR`{`rVx+-7Pq+Op5PtVe*Na=W_>%EUN6^QZV({%vf>Qs{8r7qS9%SMj} z4{CljvZ+@MES2jmnvJVOad*CY^jbkaTn=K$pkj^^x4jE-h}84L+x&3H$!|vdp`qto zu-g^!aJMzM$M)2aP-go1Y6{ZTpzC@z2?vNBD^Jf}mq1Qog6pdjt;pk=HdKdl`#w|9 zd_0ySqy7~&EGE1prA-`kD6Sz9bH-dK*454<^PKlFfAmw{Xj)pXU(zkfPa?&;fBtcH z-T&FPF1(_^7Dd8Jj9n{C@q5X&%V$H5l0Z5}C>T+y?|b_sv&wd6x>aBtOQmnCk|G@ReCli>Wi7EX~y3of|imS!T|ITJf%ddvM;|)w`v08w$Ru}XM zU@UVZCv9e+mw3WLr84O(u|QR1r}JHpu~2L!wbmx*LGxHpe;03=on-c;fsL2f?M?T< zD*v!~lx53T1(za^x6I6cyusrCO33p+CDP2dtbeLL6k-+je!%_8@D(*|M^Pb8$X*l? zK~e@0VG{fW^uyN$>*QLYHZHQ~`hF=K)|ZYndZA?XR?V1Xb+09hVk{0O){1@gSqQE2 zZ{auMi+%$rOCU%{>zE#M&cG~(>6E|4vK%67>uv*m(t|a+MPxNKOra|!zP1grg7>%! zB_I5}65)8{{j{?fCi0kNp|1fNC_?V|lax)mZ)XhX$loY~v*UoS#N+aeisYJ)J1bzfm<@SqWAc;LenudT!VZ_W?!u?*8zEL`zST(yCCy*O_p zBY8+l5X(dHQVU@4-**Uq4#H|-{Il}Y4;iucjW6)eu6Y(xAJ%9C7V@A;7Wm9phQK`> zF?4zcRyi@W#jNeCP6I>wK(KJG1D08$NDk$kO2fH<+Az*y^o7 z`n*Ft!#F22YMi@9AAv`>Q1CSPaERBjP40bmZgwAEw06^kS=St)cLcWv)9hv@Bs>+RZgOHEfGi4BDAKSR#}&6I zkezhH-C?$FQ)Y?UGhkm|v$uK;U45oL)Y3WjwLj;|^R}{w;NyoqUnHdcYxYg{Eh|%& zygyLySQRipbN|baeJa`ds>^7=@r{yeY21T*c9470=NTBvV-vtLM{HZHya2EvA^ww> z13|2Za8cM=OTszE!Ad*tQ*fZd+OX4ydx?_6B?kBE&24WG*p`w#Nw$2V+>z#-@BYD# zSVr__djMy?aa4%JpQYr9ofuGa>wfHb^U~*$q#QKs^R4owA`55wrs|)#H`Gl68<#Z| zn|!Bu3qstexv-UooDLU{5_}_ao<8#IV$H4i$4K+pU$@uQu>&_#{Nsvg;dod^0c%Nu zuIQQr3gCxn1 zC*6{^tsp@P)REwf1`?Y@c!saDJzFm+M$ylM(qRpE_oudU2Pow1&lsGAU+MrABL1ju z^FP+>2(P8N(!t>S3$M<`=Q;TlC@Z^ZR&P8khw{^$H<#tFa(>N|>{ze_S7-`07P=_` zk6!Y9J})H|;Z;f|o4i)os@Q?YL$xnR>PtuQeknK|d4iyI1a=NlWSe@P1{6M*wVS~A zJhj42p(b7?GoF37+}4#1d%~uF8crXWrp`)|=;bH|Z1>($^8>1gfMq)Kv7f$?AEsbA7{Vy%Q$8#`~}&s%FiGoqouHc-mx@lbF|x>vSM*G33q4@wvw=PDoPc#5qC|8*VG7kpVwUJvZF&nbs8@+0e?!>9Oy@t|v`;2hfE)5sM zTKQ_nKGKYGCXT5Ma~yx$PqVlz5w9#(YtV~F)^s;w^c$F{QAE9}(_7&N6^T5x+XxpP zrs}zecTH_LIHuR^*oAD@T04>IHe^7wiiEkLsL4ldtWXvH0Yc11?<&xEIjpqXY%WuUy7} zUje>ZEHE$K+Y5nLCe@V9+vsXB@+vy`B3E1q#R81nmHsbdRQoEded!ZET#}ri05_WO zx8%K&>b7?ntlbjd_KjMo0b=V-vG42c!3P*M4vHrCY(;ViaZDKqJ5!$c5OB2KK#K}O zNfjV+X6A`#TuQ@_N6ZGCsSVIrV^9LP(lQ@t_>-Cieqe^K8x6p6wa~xF^!|C0Z?ku5 zw@k_=nD*+`CN9JK3<4SrP7K&McX~5>&6bV5)yIQUv!3PH^Q=R+Y@Z z@RYY!Kt`%}MEmoPH)91AaBYFfz~jKR30S@%!~2G50kAwxwq&V0`K2Oqsp*(_Sf}6I zN}n+O8Om?iBmj2_j0!$*FB_*$m;_xJt)%t5OS5G#XOgH#rH3vU6mtv2IGhKwH zm1^2+!)I!K9(P+nGLey*?w<&&jISm7e?7;4t^uSFkJ}N&yRQh&)bT#B@oW3_)A@q% z7%*UF08TVW+FJ6T{gxRvGa;&&Bj!)F=F~R0axou;+%4==9`|7m-m1T`+0n=1=msD4 z?RgR0oj+%Er8Z)d4H9=8mfd|W{sKJsABHlG55KscnDh_q#yMT_Mf&#E7#i5BDuZlW zLZpUc5>!MWpBpRRx;PM=Slx6`CfYh#n^DOu6eNDjUfG5Yyu)z{A2eYT%TknJK#5 zd>}rcN3s-YU%u(?<5!y^^4|8Tn+HTTXJ|gSCsC}>ZyZ!JE=!;?D%hD8P>X9T9GNq7 zwgzdn#SbeB>NmjrclrJ!@WK7`MmMr)uZyMGByGg>9#G6gF%j(enTWY28z-MM%n;%FbMDRl@5jcb z`Y;}=hQl(bUjnqb+JWw@eBDcc>YoW(w=}GO!=o_L#CFUufNH*7{{?l}RuD0zEvN6) zJ7TtH{|08caVI#+S5xq^Hu#=51yDA_lD0G3^UrwpWo}hT(Ft8?e@crADSJTC3P_tf zyx<_V8l=GhW^0vS@%*d>hH!HRe(Rrf2Y9Y{f2#efiheb?YT_0AfGdZW#q}SvcIMzj zykDxb04GzetTRK=&tLw#=i~~(B=5Isn}I1zdI#hM%sr~FgMvvJA~LdUZ-L~70K8EP z@f%3d&h892+(c(NKHf61(<)W|=fu8BF)0?R{j~G-IyZX`fTLA)A=c#W)Zr9;7orJ= z{MM)}t^eMXjImHt@fs9aen(9wb;a$b>3%av>aCIwngI(GOpD&{TgXSLR=e%JW_ayc z33NLb-)&9{&Vz7X%~?ohUvG;ebZ_A+TZI$MueIW!<6O#sIKjf5G$$`}h+pNuw}@q2 zCW|$u^~pg!=QzXn)m2ahz+C~%1XNT$Giv0u#F3s@ULM~pz+48}Wz~RI3q15lX8yZt zjcUU~R}yc@WsgU}l~IvlzwM1)>+z-+ld+EBF<$%{cnVL0u@+)QX5TXCpWlderTR39 z{b-#S*A=iQJ_K`jcvV#)p>+TtZ4cRvMx1Q)@)Qll|NgBowI28BpKS{7sic1KrBWSR zkQApa?gazmx=&z4MuGDO2DrtMlHC6a8m*@PW*aVt(@*HoAs&ftEV0lA#U@)ll>`lK zaPng2ml5jo?i=u0ElS_{BLf5_y9;Km$aSzhXFaV+f_C&gM7Ogb-__3n5MDJ z`502PbL(S6YRGIQ+KY#;!z$dgoWQw);A@HI=z?oXG(7%1_cX-PtWACrdJ1yNZ+E;U zz>hakz(YG!;Zw9bf3yJdodR;zvat| z8Fi5F$4i8_F|Y9?!fXo}E`n!h3aESi`-m|C#wnn1sN!wYo?-E1 zY`_J;Fm~t-pJ3X1z9&JT71rjw&^S_~HBv;QOND#N1ex~|ea2-1zDw1^<70)k4YfOLtJba$tKAcE2$ ziiD)nH86l6E!_-_Xgv3-QO8Xu#_9b05St5{JryOmIcRj3p}Nla#iC---t+-z*qK0jQfid3i6z>_LA$ zef82u|Crx3R-?k$8N7=(mWPeOG7j*ovQ3O+l8zxR(!5 z?2`Oxz>l)kVgJ+2WeHw{`4_O3WWfVw4q4etdZs<(amM@Ge75u}vNXQ>|Y(yJ&x6!PNe< z1gtavk%|AXSG-_<`_J~AusqgBpPEI6kf0>KQF})K^7~T@^a^Fqss2gx)|dZxV%CM- z|B68V9_M95nGo_fP_&bV{LobN!|;M9uH+!%998ZZ;x?eK@p}f_AUk$DZ(?M{NM*8e z7mj-$)PA-r5Ule^s8ICtiW)$P`r66t2roOIU~TYx2Td^ zLt{wJhx<|!es9hu?RmmMc>Qh}S%QRiM^6}Y?QMZ9vK6OWREM|~Uj79j_&k)%clh<7 z{~l(mfn}`?(tPar9@mN@bu-)0T>d!#FrwEk>mqj9Mp1u5v7!lZ3r5Qa$ZlMMbdQk_ zhuFbi3~6gHj1s_-&j82b7l45PJl`E%$D=w_EU32AF)fwQoXq-AXSX%{Pp$mr{$twd z&tjEz=UVurYrNR(uIya713O zDtY?+>2+K)ol^;(4-+nno1nQ&Pi#QPq6&7D0Rwhod{P3M(8k+3e)J4uN4=A^mz&zv zJwAt_{+A-_TyiJ!G3#|vjn!I;o;<$IjAXi7u`iu_*{h^5kissnwrnPQdF`0-b@AWW z8sFCq()>nksLMlx4$>@Nf~3B{8T?kLRN58UMj=_IU!YLnz6u{}=`e1s&T39jcXTQJ z?puS@w3T`{lW^(3?Yw$N@BuSKF~pYOideDeNvk;sFp9ZEGgd7 zSRRG`_lk*ciKW(B4(op*vYJP3Sm$=jh)_C9-F=?1r9)oDx^T~M9j&wvuqtL77|TRd0daaKH?2p8&;EE=n%pRa#tJE;{Wm|g* ze>hdU325=^EBa!Xicm5Kcf z$vzkib~Ln5fq`}bWKWfbD3N!Oh=0?efAn9X)s8neN>+CJjf4GiVQuow2vJkt`{w}EDjoBV7*Y+sd%T~h`)3ALu5jV?(zhxl?b#PhiBQC4Yp{!;}9Me`GBwi zZQ03y68r+ybo0BJe3?{Idu2cq$0wtSNh0j(&|w6^ zqU9I{4lv=oIGn~oiYv0TIKrg3AfE+!)h6>CzlmQiCDjDInSS~2%CS4|ruSE?h*pP& zkU{=r$AP5x++OR+rpng?W-R}*#2-TXS>3`M;Y<7meq`u@3iXd6Vx{ta`P}iN-;4KX zMSg8YANhc;BhsUv_^m5j9#lIQN{(>(X)#|8hhmAhRt*yMpg9w)!M77N`K|0tw}T2< z!G<2g%4VFxu#TgzzNWRLQp>hoIf?59ez;6C>R2N_SCd~0qn6P`m zxOLzJrSUt<*<8h!D?iIjXm7smfgV>HHwSaq6k2gOjKp9Bdd%w)+I}lL;$~3q)|Mp4 z2!I`rwYKwG2DpHy_RZs|@`)e0{(AwUcaaXt|Gk#NkJkU9l2rRy`j7)74vP_ldmDm_ zdYTOPG?oUu1id&Qw3Avp;LR!h-;tk*N{nUVyAH6+JpjTTw2;n}^nD@Y?-3*I!5G(V z?b?)4@mySdAQZwqKk!p$kiAJNn9Q_hMLW!$( zpC%NL30`>!0dn>z|04@koI{4%B@;YP9P z%pcPoF}NUrnZw{Kfkid)ltIMw?ClZqI4+{hWJ1?l#881lsdmN**}xVhV~U&>krs^5 z^~k{0h!r8_B@JNC8T)uIS60FRa@1$J-jh_|h9vw+Ox4%TkD*d$EQkP}x>)NXQwXIj(03;=O?6ik)!TCus5z)6C{faKb)?$$p2^}#={B;G$K1Tn~<$2 zUevMpCbtCKgcTv-9}dW#g56Uck%6s!@?WHjw8j3<7N7BL+EZ|KoR03*-GCN8;@WZ9D2LIlOiX5pFJ5u);O*7#pDsTNir5x|?+N{B z#@_LnR|f;dmgpFd9*|Zs{b?2woVdO-3>zj)5hIYxVU5cy(YrZ?{;iNh$dEwo^_9@~ z0_RvnbtaoO)Fr2d8O+Dgf1=*vW5w7ap8oF0V|xDY8&zI?RlB$;VkH|OHAmrX=*p@P zK&nIqW`4Jv2^h0hGif|CenuKE(Qr~!Bh z{V**Uli}`de@lR0FL;O&T^1q>y`;}5&X#<~SFg}Mw*V^CP)r*BZal5#a5D|O1xidX za~RO013myArbu22Rz29SW+EQTBBZfXRFz21!mjR_pPn*W@iD$S@A5=BRIfU7siqsA z-L_}BV&qQHlRoJxZ2Y37!R4XI#f39&$;`c;-Bv_q$g2J93FPEk!%VD_LRIEpq((sE z{QOZhwrQRQMqK#^Oyb=w|0DnFJJMTswYSJF6|?*IpjZ3yYe20a=1zoVt+d1x6Vzwm^yvK>?#^8BDGYooPHi@}UDIm} zufo=xyc%1-=VDYhuUT^tmMf2{7y8`nah2hQUp30+kv$NfQ;=sgJ#VD+tL0@GO_2#` zwrApH=Mc4=8{>0Gjz@K=C0`M?ZU?I0F-P;690UI+ynJ`orF#{7TOZ+F-M5pMwm}- zEA4Eqn_YedSE_+*+x(h()|a5c)pGB{uC*H0wtlnb28UX$BOBkH?FXuU=sTyG4pUd# z;nK8RGlTosM0;y%gw>s6@B4(TXqp9FdiF{<2PDoG*dOe+kligIGv~`$8%@=f$sh(I zJ)3mfNu4Q=Fu@<}>ut^J1|zdX|I0c#GZ^VImgVhgTQf#yhIR}7ptACEmD2>sOG$ZCG&wA?k=UEX9^XAhjlgY zfkI1n+iLfGyrTZBb#13h$K>+H<5dkB0dr(2+TsDqs$n-nt)&66q2)N{$tC?dcU`eA zQE)h$`B7cLo<7$*79jscXQ)wid1N=)UnUmtV~rn3Ha>_QlD&sLCVzy;LYL)2M5LOV zX9W<^kkOWfujB!R0{`;@9E&%Uzq4UqJkIg0aX*Oy@3=|)*Jl^^Q0~%;`GR9BMzw}a zjf;lxw+tR@?-mQAKi=A+fw(xlY@t5tt=oOoZrrFK=Ti5kt1d{TVLt1+k5TS#t){i} z%M(qo{q)|eNnr{n8J3*r-QTu`jS(F0d=ijA-eCSpCa6wvQzXcjyWo-_e?t0i#Im6g z*djZye&oq7IvlmkE2s$AeQdxPt3Sa9DG|sepstH-N@zgKloZo;yibjvkOH6D`UBuf z!?d>{>c+!J&4z?P{S{$U?pVIw?<56$gk5z)FXPlw)?DQ*XX@|Ut{%^51ilLDrEay7 z$KUxOVjZuY-n^whe*;h?Kng*@ z{YvKgAhLnwf}uCs?^(x#@gjR-Ozqmk&0R#ths4RdID3$dZUm6Aw}3j;$;OGYN%5G; zc7zXqWbuS!^)5 z%?RM}6~`uH0!A0&JykJ3`FR3`mloP*9#l{FSUflBN_ZJM-Xkzn|NAG8kz=9`Q@{r_wfP$*X~_~&wId0A z?mtq5E%vgs*x3y~kluD8eO{t9BHricA0>h0g6 zBx&I&{CL-B?E9}H5=JRP-&5GmRsHbYkM+RXI7!e@i=*cE#v`}Xd~`CQpkOWQGOxVg z?KJLgNa=uWC8PyBy-k*9)ET-ePEqWDI&GL@%4^n^mop|U-Rl8D6Q)0gW!}ZDy zTmH_ioBXZ0bULcQC$5{VlB-rkf5;rX?Kf|u-*w2xU62VH-=gY~BF_PIAn6#&!-y?A8{d<=}i0RAGjfCx)fTJ-&1e2m2{OM1_J2b`?S_h^6h>LH9 z%T@FWVm{uo^$*z`oAKm|e7-Uho|QWUf2gnv&!?UNFaN*iS4^>^E#iIz-+8=rEm?xl zn~?zj@J=O+ly5yFv;bXPEFN^0*F8TaH1}iG^Wasq(rEhkEsYqU<%uz?GexW23`-KU zySU%vli4{$eP$BY(4nD(ZXjZA3b-}xhdg9TUJh3({S@IrFIM;aNsf8dA@P$Vv&GMS zfc+E?D&!%&YGMeg)R&d|Zvp3NEk!1Pct3XJ{$JpXPq(OD+~>WB(SMj_m%Ct`d9@xA zKDf|s>g$c~AQ@xac=fXgWjlKN**3lG`!Vg9?(I%+U&S4#`o)I*Zt}CWpq0Gw>RT~K zJ|X<6w{SAOuLw?cb?)!~G+O(>lg1~=(a!|0>#wAfDtK;+Vb3nlL`N2f@GtQFja{AB z6lSqIrS~~^jjtMd{v{+#5dD|#>NEuh*+@QXKJ5mXWtR+Ur(IY0r6uk2kA#a1--;u? zu>!!-Bpb2Bf?A)cRbjprKQ@MOP96%T3PL0k*4f6kQ#3wb+UB&P>f}zq`DbH2Z z+s8)J^d+$P#$e$`^Kayw5p#`R=Tk$Kd`1c!5eL5jyoRS=8Cw=R4|ELWO_F|M?x`G| zmB$evuva2=ecQ$qE!`aPgiRz|U9HU1b|J`@vX1tq#t~|+ay$-J@Jppj%0j%MW5oB} zLgl(imx%uCJV%*8BQ+oUjJ5~SB106%%($W;mSQZ5Zm~n9D`LtXkuE z_qTq}5%2<{H6*2D#s}WR=0O%LXN=pi1!1lR&sptfUhA=AV@eeIOrO9P*ClgN5Uo60 zG^u`B-t75=^vHRrd%kuaf<(5@_hmhI>g^No&wPJY*>gJbOn7heGLnV`JU#EGlvpez zHqjN0n-U=ap;Mx$_T;P=N7}7-n;@2B5}K={z@hD_>^}8$wp|hMhR{d87oi1Z)qzio zR55MjgLm%0nOIaC9rivM(a`=?V3u$|F$t_N%M*SjW~+N-;pEen&9c zqFvZia!gE(96^Vp4pQG};^~(NfI;znrKL^u%o(%$8ERNuMy*c7;qS`QO0$Ii#?#VN z!UGu2sdn!Qm`S-3Rw`(P`s9xNA`c5S?0NI(OjOS^e^{MJ|!qVMM-(!v)wP0We)_p^`zz`0= zx395H?gDT`qy0%mGfnymWRk1SdRV5}z*Qd^#*Z%az)5%BtDo&}iY7!OPN~zLVqM(S z&eFE6}k}Mb5myVJfk@7+Q_pUvCH!09Wdb$h-_HFe)=)e6pL@)v~ z^XAh-$|9$8EwH;+*sYPQnftp-oL4b5P)yS#+$oCIY z{)f}#w`?>Ak-ox<{43B~csIYzzvWE77+xLDiS1u>PA#bpIOALw;-5yI0|rSTZ08-I z@3r3rV)gi=-kIsOv=-ZFK2y2*FZLccvXM=ni#JrY@=NUL=*ZzcB$;eSXIM8lAPrBo0DbbSnB=akmbk0PaNBttdWHCN} zLjy_(x&HF~YRqEtSDNbeap)VGGD|J;@Q*14NBc`Y{SRorQ~Da?;i8sm(dBD87BhG0 zN@kHRs`bdDahPfG$%(+OPYBrlo(B3a)}|f-zAG*{0sgWu(3P=CJaW0pi6V1*&qw9e z>Cww4V?%};>uHpi6&{9ULA@ux^7_h4^6$+Pbtd3M|Er?KF>xGGnQR)c#bvsQ{w z!V8azI5jHZ5?<9nXp z0N?Rct}wHS@9uM2XzR!NEx`O%UL#QZ!gU8P5Q}fHW|vcdK5sOwY5BDJJ^0W`Lch|D z841KQ%pV+2G5BUEhsYek%B-{Kp5qmEC;KcrkMB4fZ{1+jcCF%CkPZEk#~JpiA)3cv zx(D~_0PVCJ110kejg-B=+QI(t;1cmjm3*;O=}1QzZ)DQ}PR&b-X?TxKtrt{*Xa|2NW`rPl>p;Q@VvZf^-Ie3 zBNf%iiQJVWWs;VITs@BiJRUugIDv(i8$3|mdLMUnU^JKv>(J1Pb(py*mR| zYq=gi25)j%o!iwk@02svn8RQJGz~du zb0TV^EP>jT8^ZnU@pNsVLW2u#v%drR74Ef}g@yWEbM(@ODEV?H9lI6;X)4+uqS|Q? z`saHO;sM`B-k2nNMN{969KKB%+(%frfG8fSwgQ639eXp-BxHAksVz_FB)@y%`@f)& z0C0O_xNNJ`sbLUe5Zkm@%+bW*kM0#*REqb>exi<@-|Ju@0-(fls*9psAp!XkA$5*x zkbwJut9`@?rT0Vz(jew!t)h9ym{VPv5AIpN~ynl*&^ePA$Z^aqBa zF@obj@3Cu`LGBejy9^*kx7{fJrZ=@4bEONBjishgG`LI{OA~?r1z-NYkwuoh_k$wP z6;eYw3fM@afUs(Gd&OH|H~MCHTa1f+FboI-E3=*))3Yk$ek%u>GE*Mir_VuZUYT|0 z@3C63{MjI$eA*_{(6}CICkgfO3y6^8x0Q^+k8DeJ-s`rV=6@=17;3s6D!>AdI^Vr4 zlqYD9&%gE>+rA@PY$^?dOLr&M&$5o!2mUHo%#d9=04Upghk@2fJnrR)6*yJ* zBtCYj_}$*4lz+wWRq#Z^?yq@Gc@>lD@64%7y9`^c1e~y+y`uMw3-$8|S-_%f2S!nu z^CRFFpc=8b2}SS?%j|NA4>PrCGhm1+S2qmw&gE5w-?d?*Tpg=8F8|b{jXjn%v7g}( z@E94jD_#E9^h`iXj#LP0Cdg&;_%<1L|EJGTG_}Watyv0jKYeOr$C_dsFgAHN@h2~JCn-0elLt*ki`1@EyR{~Th zk%MHmDo4S4@{sF)_r&2+<@&hUZ>()bryEK}^->M8)c&`zqKFwHcH?y{`t5{CfLoS9 zyV)UYZUozB_qZ!zg4Wuf9$50~@BouE%?AmqPb1L(;)LNl+$yE+obF=S>eG0a`Cu+A z8}6&EN2>rkI1GJ%yK#QitTX^ekYQ#YI~^z8O^VW}i2a&F1AKO|!0a$4VJ=rdZe_t* z{rT7f!$vs6tAVxi`C9zBAJh-5xJ?CL*T0gaTvaI8SQ^?P#XZvkRVrSbk*U9ua%st% zwq~^qZ4QeECr^0?6i&65>Smk*??5ijXIbOmPPYuk+FXX+lh5|i@m8ixA(6^1^Z>+4 zrC57C`EW2uO@Faj`MVr6U}07cB@Zz6!dmUkpB>Xln6W1^lH%(EJ%cL}e-F!t1N3EU zYo-bNPs1Peokez!F~gGh!p#rBz^9zWeI)LD>|QE#&!hjDSY!S~oLl{3kDM8IGF(AG zy1Avg)&&WDT5H$gF25DwxZAeE;@Hi|CEJ*8RpA<4@9i1ls7pyX05VJ=s?Hlj(nY&R z;120$MtM+R{t&)TuN8N|c}>7}O;hrc49g=8&npRRIRlpgUC5a3Chcq^vYlyYq1Z72 z*xcW>>zU&I=4rzE;4R_hx|s5kcR@jt89mx)_OVHRvONwhiiXMul+w2oly3?2@LvPt7CiHwvVLao-Cj5%J z;n;r0Ji+(w*p=R{kgBzD|E4Lkoq_i&^1G+hjwdl=X)@5v%re3>27f^L=@J*jiZSh< zG~TDqD8C_nf_+&P$i)$kH9j$)X-@y<48Ptk=Zw1#l%F+VzJBju(($OQ<1y_xey}N* z`b>6j%WiJ0CD>OflmVbMi=n}l+vO&U*??cSxN46BVl``TDk1FxvBr_?J+rsvZqJ^P z@)m6VD#({^fKo8Dhb2hfMuSpI7}S5cTxmgZ1_Fs!P5J_ojvhA&XXHi>X)jP>if)R zGv8ULPqyfg)t$&}DRMD?ukU=C_2MC4{ou%7Rb@`k zBEanI$rSp3I=rL;(BbJ8V^=H3`HxY&J2Mg(9sWo!-8)-G2K6yB3Xm(Zr?g}NQ32>R zbFL)SrPg&nm)CXR|0f@+tJ@6??WzUyiZ@NaoHJM`6iHZ8^;$HO^*ZGGI2>bpAhI>H zCn}hE3s>!K#Tvc@p#RJ??l^4Z;RBYhRZs-Omtg!(w}az-Fb7 z7;-RO*dNnnV1Dl+Ck`S3ao({it#OSmft{3Nw??{i+qsH>Ot_KIv8t9|CInjgwU4X< zwd*PE#xL2}bT_kC*Pixy__A}=hRt!~{ma6XMu*?H+%U_SBgsqI;*`AZHbc_Fb8Bv9 zlT&}$s>VKd>Ay$CuKB-C?f_ahs(SQm8Xbw=21n=<2OdEyX)4f85}WWXzw`?HY3|Uc0btS$~HvDG>o z!uj4*toZrKW{ub+CpqyW>?Bhh@qK>*%6lfOU!(6mCr!&&!fk^e;TbgIhUYVIEz-U= zQ&}ayEE{M;k?MxtA5Y?K!zAC34Hix`VYD)j7i;En(Obi0i&9=&SnvnUUUkM_mXg@- zl9tj#*lL{VQ9tPjS4TWN1e3BVlg3~nke?Rq^0tY+N&37Et8tr$kT1D{G}KI2^0tVL z#2I(-AG~=nR{_rUGQ+@_CJJ_^NSCTVb^jM{fyjOy>^2nc}jzsw06b< z?jL5&cZy9fOGO>I`(aw|lvzHmmITwGeBh>v$xez3Rohkmvv&Nt-cAcr=>2PjWRs<; zHYYRLkk%|&6{D|ETY-da&-%{FEo*HSIR+V9Sjp=sYH0lacOxak){gNa0s}PdBF)M{ z4fO#zX_LbR^|rSaB4ziAxzzk#IS+&c?{fwg8Kcd^Ynu2xb&^6~XRa{Dl9w7(lQQd1 z?pp;a_Fp3~uSQAq_QqOji%BqDH)d#GMuK0kvv-1~w_&1(O?5+IuU_o)5rm2j|K(l0 zBO3fS?jA*M=pqqgpR8_e9);*cpBxLzKDE>vPSS?Sfr~KYLJL_|LZ||A%YFokR|gnh ze)JV*l&-(!`!eS>J@?z!LM0j5UKq~>MN>wg824o|r=`D-*m!#mFXoh<*dS|nUxa=p z&U)!_TSAR%%8;ors*11q%gFAB`JSA(CwjbFuFXe~)~(Iy-=p&c^G@0ePTEyAETu)> z3>I=JHLB+&uRR^PD3Jj*+^+qucs+{#=jEUG7Bx;$C+}jO*Vrf`qXnBAMm-v5ONg(A z=V)_eF|p)_bkXmn@AI+F=uWLHMn-Y~f9WK*a_ehPsk3cC{+<*1(!cY@b0VCj&KYm- zn`g=$kWj<5ab4^~v-4WYg1934V{GJX0)90Vkj$bP$&Rs$bbA`m^sS`EYG(BTI%8mP zf23=z|MugWn@&1j6XtPZblyHQT8{lKZ64eCOF|tL&~IL&k(PI@P=$`jYn|eHJN!}` zsU=T6BpxKDixNn$ks|U-%uha#?T8Q9Lnph0+1%K1xyug+2bL@n?|7YQBI^oue9(Bl zTluqnd-fp-0ZBEtWNl$#)$swAeVNhw;QQyS-oDdh>^a1yqr@6EvK!*7&*Sg-tpMuK zW%sieI;y(s)uns#8`W93DE{HTdF9;>?C|7ha)lGt%0h$=7)kGDaNAZJKJxR=i)jx` zzQwFT;$!LMbgw0T;aw* zImEG%b{3!?; zv%){RYn6z1EF;TT!kX@*UcE3hj_%i(UH9AHv;VSG#gg{gBdOd}f~m@+kMep^iPcWJ z_l(xNU6)^-!1}*FDbq1?=T~*u`=6GrRF>k6*;LtoMw6zbnVSKQSeZVbALKBkhfWg( zpsQ=GZir%sL)P?NmPVfGe7@f9Aq~bCc$Ykc*T28{x05S}#!>RYrqo=iwAaaQkGpV`18;qNfBLQMw4Y=27&5_c*5stPx&@c=y~8U-lWupc`2D3Rh2@&p ztU`J7VXw`puFD*|CyeY~fjuP~3TUKwotpm_Ja|E6NSxk8ADz^)D;rM7T(ur+c@F*)qE0QI<-O7(vNnrG|Z# zGZQAts2t2I2^XquBjTDu)8Rk%iY=4<$8kmzGqZKU1|7U7=V5N!?tLT45T%gtq0`8N zs;5bKHv?QZW45eR>B+>sbpEzG*Z7LI+H3FDKZ=&Um1-WfXV=xIAq@jtSZ+@>h{ff= zti9E*L2QnFZ^>=B(hq9pqsn!kH^nZ;)97l|#<*4cCS5zfNT_r4|8>RX>Z~b#OAT(( zX%pJ!nbjtUdp>V))eUS$=>m2`sYF~B;nGP+95cd(SV2$zO_UTt72@mtr)KYZevB zvDge5HVJ+bh8!H4ph?2{V%!)s+5R77+}HIwA9dN_wfrG?jB|!$KR!Ek{B^Msf=X8@ zkMFj|ib~ZR|Iu1uJafUF>?YJrW1nl)di{=e+@DEM$j96BcGFpn56+ARyB~OMe`|}Y zWEbYmI`XLEe<$bO46i+~%!4&1ag|iX!5zkf4arwvH~!597#Y^hw$j z2X8fMMq!-v{++HobuqdwOwN`mV`esZ-E!Qh_B*)HQWW~9rtyJ8Qg=VH^EBD)VRgoZ zm0Mb?lkink>IO9Fj6JsfW0CdVrf0;Bwn-`$7`7;-!_ybA#1Uf(lI5qG26P*@mQ*9y zYFCl&kHvcm>ALH(HdZU*J?-PxLwI*@ozF!4Ss(tU5VKzW`+Vj5vSav@I9i>VJoM zHiM{x(c_&CzH`a$9dF1%3?9W3LAA_f782#-;YOU9dFmteHHNctXvN3 zO8o;(U-1ZvKW+IggzOrOJ0x0m5q;d7e#k~Bc(07zv13R@4{18sEHy+I=!e&)cM%~# zX;2;1dhO*5?ln&fwILeAHe&r=cPp!P&q6`jL08Jhulg33!<=+0wih7K}L?ngY?P8 zIsJ9jaDTbLki#%j>|XpfcUlMCTt9m+s5sf$au%vGC zHY^`)stJqFt~@U9v0`*M$sDT{2x@4(w(w!23YGv7^BYh!i`LeldacizwK`*=H^NPX zw!ykSd*K~Id<`qxRtG9L8U!={w)BK3{LWp9dpY9IXyLnzJ}b6UACRUmvm1iFtlu23 zyPlp8r`&G{^MYe0%3)SKbJy0s%P(ltvN+mJl9(kwbfYxHpS!v2KH;|oY%Y^yXTGyF zGl^BNZ=;RB_ODWUnr@`neY>E%77y*%AmFrDWUeAmpa|W1My3?GtbL(9=zdTNv9A;G zh5a5&_P9`=tJQxWQ2`_0jI`O99qf8N74)^tl&|5G_pHWI-3R#!JYf*uW!3LSE6J*I zEU3|*D6!k$d>!$_=?JEhj8e*#2r3Z05d)%kvY91FQ~v5dzD z^4}kO37dKu-BIxibrZGu)yrevTYK7?LBr+Whvinbqn#*ztzF(V@xI!NqPIQ_q@6rr z^)D&}WAFv*OLA1V*8MV_AD769p?^pwT4qL9I zz(vRo@+Qxewcap#kMB5Zq``YlkVss`+~pv$L=qSH%YqtW>)P&Hf9k7HRzH;RpqiEz z*v;T9-EERes4mPBMOs@-2hd1M7p@8W!^&4y8QX%*^RNy2EchyKTocz2q{Wq|7Fk{y zqm^4&$e}s_PZONuh96#ZHgYR^(N5;(e__LVVYSfi#D^XC`lg z4EssH^z|PNTd7QP02eMO5mEM+;k)cU_)JV&q?|w#%CQLYy~a||l#sG-(Nq+#r@u>! zi};PJ-^{d-1KZez{u8Ah+MW1%Xz6I>DTzaz)ZGQkuEMa!3I%PPg+m|h5C0%F_FX2n zaEN!bWuHXQ`w%=TkER8^V#OqPyYJU()EwN{hipDb%yDlBUNM+)MCZ!VD^NE#W*p4fa?4remdf#MQRr&dNF z$j!i0>SQ-@f3j~jybb3EIcCJ}5zZ#N>*01AEtag@=FGIcy3rrN`S7 z<4H_vt3&!_|Lbb?W{sfY-_`_jGr_x`*Z><5xoVFH%V5aD+;4QSIuxH*Z7c zkjo7xim#voa^vXwk8^%n+CZ%cWzfKvR2=$vZbAJ`y%~>KQ z3O8Bj=PH`MFR{7!Bf|JenU!TU7RrQ&d;TscjDS{H@#cMWZ1@L_`HG{I{VyzYkd?~2 zF>y3+Y6!!f$G2J9k2^e?RYgHQFnfcwX0b^|!i6r7jA}Q8h_VR7e9HuP6)CDtjb9Bi zIaL3_lFhrpxbfQzEjt+X7ezVc_JxKw3n=?@Pw)BfWbr;QMy*02DaKxh(SN zhc2tdk#q+xs2;AV{fJiCsLYE9FXqKj*e^fb4^2WP)b1kWYXt_w9tRZOGD;yI;cr$P zr(nKJn}i6eo+r}W->DCF1GbglNJ{O$n6IkFz3h6s7QbzoH4X9dI-4)@vt%;xWwJeH zi83SCcX3g)mVyEYU0nV9pAe&lBPN05 zpv;QTr@as_x7B!3`_zEnMD`he%>4W!b|VRd;d3o?F#(drYee>WA)Lf{oEi1@{lV2u zAaIf?VE}V>igCHcLwZh+blg!d3mMA>71-Sl*YW;g#(uJ7F(I$1!yg&Lw?&v)>FVj_ znqCo0OVdcNb@DBO^kE47@pJW$({PH(R2p+y!EDPtS@AE4@4spQfmcXR`GTsnb($ln zVF-qd$P>BgBO@=`Wbw{{_`G3i$E)keccQekd%0tk*YaRE-f_|EyW8Z}PAhefZ(#89 zyoFFzepSQDQHkfQt0$66!%v8Pkc><6Ekv9$tf2GTyAPC6z5YV3?LX;X|GU#w=H1Y> zm(!8lo=($@hmF?!XTava9rS&o)I|0vetwaNot1|sZ2M@gK@NFR!TRJ$zZN+t3b#IP zlcZKHy$utOy^ViY1?{bW90_32t@1Q+ZROY^&{J0U82 zqKELbc}tJ@fCZdjSS;P?`?P0WAkjBZ&%Y5bV;4r?VL|RVWj_#o@DUP=rXx{tCWDcm z^?yy2xmEG=)b*<(t7vQJlza1*wg0H6{X^cukE-@{s^>lUJf2IU!7yo}hic}kiee<4 zGd@#vDEbb{ef;y%FmrB%-@v``;HjvTADi-LmAzR3 zs)mAq36plwD4GiFCOj_(gvL$9q|#SDjwa;-=*0<|P>G=jItSY?WM1TmhCSL?=iK-H zemv7skz0-KeSL;_AmMFHt092EmgY%B6zWklc(nP*1Jdep?cb}_Wk~iP{@OzfB}U88 zvBQH9WVh!7yRV&+*K(Q2-V>a%w&;_T4YJ8x9HGQ}`utEHLyNqpFj69*psI@yz$#gq zw+Szlbb9BYI5+qDip5*ckD@{;5b=_*H@y{s0e?7&EQ@k{XJ^Z23k8HWACr&Qr8^?N zUJnq4Y2HTU-!?P{Pr(q4YaBpairb@d08%S2cwtigr@Ew4%$8l}cQx_)*(hEIM4u>t zQ2q4B9Jg?_FzVr$+~bSZKKEi%<%hi2FL-uwAp=*W(a-eUNVHQcJ!-a89h^tcS>e+KfdbOY`QR(Q{wD-c%pu${WSj(wZm>GX7{<$RT*n!%$Izl%h@@lpb5SI3i3E1;%%gb+@uyT> zk0&qSizRKV$VInM9%vq;ti*Nb5iV|09GDF=7_nstaWK^z3L%_kqb|Z*WS)jEC>K*<%K@Ku{B%uNsy!iChy-NU{s|$)jwyXnyvkr(f5> z+ji7XwfQXOy#F~@FH`gOWNdA7?>vDB$Ctzf{Ja*@N0U|9{NA%Yt_~ex?zM+bCCW%| z0V7pd2n&L+S)a3eO88wLk}G3F7DF>}uC`FAhVHs(KXn{K+mwBD9Ph}XfxbKl{vhn* zy!jdHRE(^Hso&_y_${_`I(ZfCK(^X<2_rlHr!DPAT+e0Ca$aP(D;f$;OVVuXn@k>d z$l;%t&;6`T)Et8aTc(JhJwi7!LN|JQd`?lilDh=Su2Ejo&5{xoBqwNGzCpTjf5n{o z$7e$K&J4V`$>AcLvLuy!>s!&@*Sn5nUVK5QN#@!$GPQd=eByhFpRdJV#}szuWc6>C zvB&NY=$0MOj#~zzSSK>6SgKeVgVyziz@0awb5nSG(O#!ZjMNTV(V$QFkxc0qvOx+> zE&PrAa%mqpGrH#0UK>k2?#T=>xA;INvkJpO)~xcylVzMVD^6yz)8q;Z(Lx7adkL0l z3q?8p!<@8O(ev_`M-x+c>nhPF{m|eL2QKtS7IG3-m1u8}Tq-H|=6+Jte122AL;T{_ z^0&%O`}+(BuY5C+R#Imi*#WA7Eqump@Rs$RoXu4cQM1x}{{27kweURHe5^-$AUua`dH(p0X^UcH}Jcwk<28M?T@=){7H&PnIeZ4Y~%9 zQ}eQh*Q4nG!IAL7*6bjrV=gG=JMn#6wTRkZi-*KI^!!mqPjxM!`U7%srZ;Y8JcWS) z(m!+VM!1ciswsHmX%Ai*$>c@gd{buZ(oeqWEl0F`dXw8C^gii|%+P>o!?%C+bQ)m8 z7;kM>8@P;1=bpKXC#r;lvgN*!#?KE_M{Ir)6lrmKb#(q`%mxQ+;=1tFb5bR@nMa_I zglnGN%;tMvJ)-u4^KD0lC$*>9QIqn(G9Ryx6Hh#cK-1zD8Hq*Lw78C&HP!U3UQL+( zi=uLsk7JrG5ds9aU+Wub*kBD*cBde%-gV8TFpYl3Buy>xbgT`*$J4U2Re!vQESrWG z?ySE7eC6ob>+8~5iJl=Q1S=WxC{_F_YxMjH4qKe~j6uw`>Toxjh`D%*nu<5kkd-9i zwRP=XaVMvFceF6l!879Ob`mf2j6;+HMpoB-bFM(_dgDInNQaNEU+bP@+Xu%sUJ8m4pU6DD)V1ho;pvJe~-qYZ^~7RKsnzvLo}7)W?D%Y>za)oq;aS0 z*VLaH8PL7>#675M;PZMZ0k^=tvLP#6ba63cpgmifCmCV08B0`<`#7 zFio0XYb9Kij)T8t^B}5-L{w<@1(WcI2KtOByd1!E1>*AYrk_(xP3cxb1KMAB zF2I&t7V~-!Ugk%ZEr0A=n@g48#{#bgDYy2bFu`yvmzdx8eIu&|s;!lWMZftWa zrW#lNZeqA|a@me?j+9*6V*U*SL{1-)oE~w5!mmFDz3|c~rJV8NP-f2?LT3WSUpEFTJGiK(_bf_&Ne2-iSPKzgUWm3>RzcJKt&lIJu~WE!;ObcD=^$I!&9El*OW z*DKFbOp`6Q4s222?z!_IY+aj_^}kBScw7}cX!u);$Hp(8f7F0vwXW~%Iid>64wM`f za;=}i@NI1kFqrKJ4=DsEoHkQGD$J!Q$$y=*-S0ocoyuf2?m zsb5u6&>ikt?I9^+(EaSa1QtZqOQOul-&M7{&o0U!?jy-%QWtJe*Z-sHJHwi4p0`m@ z1Qbwu7o-WIAOcDi5kaX+6Opc3`A-6%L_yiatW=) z`TKvf&}O#Z3VLi0;0L)QkZ7aBDxbV}>dwp;%8TV?*RbApL&(FXGt255x+3UN*xn9?kT*N7DlG^p0 zeNG86g)~o;X%k`K8X8ruw7WN=iVCERHo)VWO=W@WImHiZN&qIfAY+`5*ZahQ{c3%- zm&}PO$mx9s1q_d_?|4FQ^#+?D_9DB@fspvuue`koyg$w7$c*ElX>fiMCL)qEfdA&9 z-KGh6`F*cKx(wF7`xFIW&S8`&O@JLY4@27>&m%l9{LmD6JKsWn8*4?I0Xx5#zI(ME z^s=HZ{_&)9=-Sjh%r`=Rf)%dMw_>Ma?W-gz$GG(m=dFpHc^$<5e(SPZOnTQgd4j$@ z;^HcW^fhG>@u4B+jsl{Uc>yr9R7w`R^r~F7PGA~Vt9pRF5P~0E>iZ3)|p(Ku+hsdw)}O;g6oyy z@s#e_Vx(;9#`88lr^73rsQ?VS zTJXecdJNEp-KY=vr5x|6Dd>5<3 zHCwgD=`bV?d+N0&D$EGW`rEo-KgpVCCZ>oMf|=m?|H#hH>U3y~!i+NZ=8SXItfrS+ z+=sH1B+%UV*8Bq5Lcew(>iY;ic;(g;qhIV(MO;_FUUr$!Jx)AZXxQBg)IVz}1221R z(!F{b{Op$F31A zYUdH)yi+T{yIB;2T!J1=?|=uN~hQplZ| zg1O%q=QuaTr^|?zW3B9{TT6w1TzI!PvhSrE*-YMj;CZ^q+=_IeK-zI9yY(vbg`=e z=1QxdoOVxZ<4R4di3*GEK*V-#3jGW}Yg;QgUGzOe>jduRd(R8`r6!`d+Dx(ANQJAJ zHkOQB@qhE%#hujE2)m?l6<^^hhp%;Gu5(GCk)r<@-5If$-5Nk#dSbxBw@=;S8^1bvA77r4S0~XnoepXKUdyrQEdSj#d=-DmGY@XxJ z{*I#^k+g8LVzuTxH-#|EZSH=yql``JG6f}y%B6H5s009QI=c_jt`uL9j+py$i}|V2 zS=ivhd)|IP{dNY2q9by{<<5kNrtB!P@DQI;sojc#OVJ~@=u0OCtNOHW8m_KCQjm^Z zUkg-N8R?@z(=Hvj>yuuW`*&~^ZB(I1V8}X@_V6mZm!JGBLEPDwr z3RE3;Z7m1h0fU2}^4I?NXxjzNMc|>|b>Juld$z{8hmsyDOu_(jd)59%P*G4DrvV3S z>CmZ$K)HtT;Djf|ERMwks9HEvc-3Xd64Qf#Pu~iAu65aayC`&=h1bXrCm!?%z^<7E4l6G2pvoqL{L5OA&|2=eLuwtFix!%IU+`$#n zP~%wBL3L+T`(VPjG_Bn=%k;OqlWrLOQ{eSd^80QCu&5Q(qxw3c^}ahpx#`YX!V}Azhw+wD>thRE6ZhH7H-yPhnf2d`tb*S|DpOsq!U~&=t zF;yWlhlN3AF+nQYL6og`5{IeIRi->)(jTDuxUC|&MhD;q4-U@F@9Ws-s{`T9ugw5` z9?(kqo^ncjYD^H++Z2S>4dobowRIzLKu;QpNm$vH^+eiAc`!EQbIv8{zsB*6R)5{H z`{pSE@E$^1UBTjU-O=#Ztr#lGKm|{0Kx5j0;HBxJ$>66#pc68^Dy^ZL8-*)@H=JCr zDQWlyyjF+;J3jZbt-lpD%>CDN)Rlqsn2kfWwP{sGsgiUDF9@dC>e zF^?#2F zLAz3~bn@X~v6eNZu*6Is3&%trccL-lp>MPS zH{R|)PL_*Pc|ihtJmHvJ@=__yoFY}Dsrb!YJ0gO?%*wPR&kJ|2%7$mT`<$!g=m)1O zN>%xKY5=*QbJV2RqVlALanCSfUN0zLI7c=aJP-#xn3fxnxfq|~d+00!vGvA++8D`m z|6&2we?-irQ_m?Ps(}?z$#ChUci5@LtGmt`&fkxf&OR&KJ90UM>U|;f)mLnrXa1iN z$#n0U)$GFavsLrAiO1eO1O=BcwgY>af`}qSa2w|ciuWEkAl1_TB_eMc(6pXmcgKHG z5<#Zm_~ip0AtsHc()^BYwWKn4iKSHv=)OFn4#II_+%R5M2a(ixpWNaJS9w=52=Lbn_JWX=-UcSv`VL8ZWFU9o4)3ka7|>`wHuiS?A(8c72)13QChJ* zl1}iNFo|0{JNcmO$AkP+RzJ;yU9cS4foGG~q{MNPZTWD)rv!j&7krzj+ql>QdlPFl zn|xInI!9cUV4mc1UY9ln3%u^w~P;TPDhRo-l1 zuL{N*^mb(2n~ip^Hea%2xb)WlM!`~+c<+_>O(96c)1tdifl zBar#iV6XJ7zlzyc6S#flRUbyfgGJ~h6Ha;sNo+{ zbq24nme5@p`<*WT7w}r%jG`p9W#Q60S62B{dt;~Kn*qUI&7r|dh+7*SW&c$DZCX64 z7-a$ISn&(4Oi?dlyv5D}45x@zTr6ePjB+Jb<*OT;kbuDD;f-US6@Ao3Z$TA-Rrozp zd>Su4%SBD3ovjTe(g|@k+`Cb8&B$6YdGBpa+#lRmQ~a-)m!Y_QB1Gi|l|}m5cZ5cM z(`+#;JsxlWonXOWE8BDqoMO81OE>@)282RfMiHJ?iTxZWo)Z61KBE@!rU~dC0Pw2r z3YSf#n+Ay2}hiN*j=0+49oPn~K zu&CT%t8*=scXR+6U(Geu=MM3%{GR^zg}*{0-1g5GuZ(}=8lVyd(12PQVE$*CEYv;0 z6SaFI6kg#U>=W0A=&e>UM*z5ed1d%|f_2@K!M}FBIIvI)*{<2+gbr^MM09VqpozD6 z45>esaypPHaidgj*k|_}O6p2Cyo`Ql%xt>}gy3Wlf^zJIu#FLo!P1vu+P@gfdiCKO zj;c0s?bDRlac?W;L}9(kqVkHQ^2m6I#IuH>gCjtX{3=gg=y&CG zDBGPjF^1aMeTUu5o+|K4>hB0=Fe`pe{obVMqmIiU=Ma2$Is+_Hyl?iW3J$+G?AExB zXrzEk@10F}aahoJdINC!?;@kQTr`Hh7a!;?$?puQfCz^Nju3}-`|4j0OJXU#0w*0D z7XI$Y*?#udkPE&vmy$;u7Ezt>w02@L+Snln**3hn1+yvHQ>fb=Ecqko_gpiWI~#!p zQxVVH@bKqtr3^Gf^sD2+!1*DeOEtH#LtZ4WBiyQk_eiaI^+X$XbU}9U$;Jfzn0Nwc zNvRRqSiHKvsCs$i)1RUBS_F7I|FOzU2~+p%Hd1UdYU`te=*;ufJTFNjAb@zw9#|5{ z*CqohAlqNgt{uw4`${Qm)&v2WWex*o)jlN$Q*CLIyiQl=%=8UN+br&AWg<8X#O$&J!8dU!|n zt(La6PEH8q~Fe4b%Jf4HGPmpsZth*lU z1b*WatKpc~*9B|bEqh<)8>rDr$5eovf%2#o5z%n;Lp=GoJJyO6JGJGSEe6$ec51%O zL#0-ndsbl3WqV!{uVbO)L?M()H-gwN_!XGjq`3CLc*2EtJU!JbaADl50ScVo26PAb zB15=+JCmmwqroQ-ppRBPZaU$z6{UC3y+s#u;T&+<56OG#d(hCo0-yt;5uSEEX^Hkq zbH{zq*tMmc`XJE%89IYHCx<9_v-#jmkQFduGh@G|?8xk`-OSjNi#0O(HNIZo?2HDq zquE}pI9GRKtbMQKdu0C1>f!BA5REe@-IEh{a+81Z^0nklySE7rWm^>eIp0My*52eh z+-;=r$~ckrsf&C8AN}#Y+s-}(>h^ zyTGnePcFq$f&Fpf2L?%~bp{mhRu(C1U>CuTc~7wPv*tI__`%#pK5gZtbzz^EmU9S?POEjl&_XZ;SbrVNLxlgoTPuNIBq8D^rnx0r3G+7xtr3F|@ zn*yd}CX@Gg!uyU}JkEN0b-*44=J7rL^T#nj2Z(H^-R9*qZdY^KVa|*Zl*Hd6We|zTZgj>=Y}IuvtEJMl!ueJp>0Zay*|}=4qa=af-3_ml94WaC zN}GU8yY6u{a@VqbUHz~b6K{3c^fvW*-n0ZAnw4tlV-4#avx_;L2#e;t z{?l74Nx^{AY3}zcQ$QazAQk3r`BQ7U>#FWR=yqhrGvA%CF3V(1TkGJ<0_j=yr#E$6 zFXT^q*yLsVMOSWo1Bpv80b}9wb>%^8;LI=gA;&){2l{M*0r(5zw1n+(+8y~SDMGFs zO+9vb)>M4L?u%9WzJ&$N;0bAQQVyZ9<681Vs4$lt-?+QTFUQ@_qOz9rs)Qu0L?HVC zHX=EaCa2ThY{MU6{xMAFO`T@WV)YxyQ3F%7*+?iJ(@(BX?>CKI4vk|psE9^;! z&#*41>5aI@j3YWLfRmFbiB)%KCK8SRZjS521FG@B-g)x#7rR%E2bPl|wo?gApJ2jg zJ0-WKo62*Fa!<9g-t=HPI?_?TS;DuMz*=lB{rJ}?Rmd%nvh`Srq?JpMnq5=D7x9c$ zECZPdul6dO^nOuegGC#9nk73d5kV{ZCZCS5EAxdRBOSzDmv=Sm)grO+>+u@hi*fXDzf&JL=Jq)JKQI*g>gXmRfNZukx&)dTybK~4c}mKyXH|bh z{mKiEdt}5)e=%mjr1u!@#g>gxZD3ygyB|zG0f?Kp-LS*V>&oM~N|ZjDzS5t8#qovA zrbIv0{fdxbv3n7#sO-1Wh-UDQ(@%XJ)~!!XR`$z(>D=1 zyqSU=R&B|yB``N?xZ}^+I`4Q}7tg#~JWk}}Qx1)*k+CyAY6wwV)cnyNQ}MbmH~99M z(-6u~kbfi@9mj9$J)62UnDJ`?_X)BR)nH?c08~%C!rRct6}}KjFubCn*8{QO!E4h5 zu{2Oy8XL#~PMP`G_U~0Kz^mR_bV*UG{5T3UcG>Q?@LHQM{-ScT^rA?=6MN;yI$8*n zUH@FXrEP!t#JGk0n@(Jw(m%^fyI$ojQiyi$leH+=#4;3LNznRKr*bfuSh*ctt?9=O zkMxc{=yL?-El~ObfoUJIO@0fHsgC?E1M@$;*F=b=CQGj0YFdmkYB4cv{0ja^b|%7y zO_dLxU zL)=)l5ep__8Ts1UsXqS}9;E;!aZ;7q+Vfdey?1`yXNavd>p%G?b*RDHur-I10D*ou zjGp4MT06Y59s556>{k~?qd0!3Z36a#D2RIV!)>2!6qe{T%EnK8Y5p8is;`_-xU~9V z!%r#71jGItwOiy@Toc>nBFe_{Dg?%33xjI)f@AN!!BLx9ls&xoEN_}R3BCS^Nbn?D z)rGcJrvGf2p!Qs)`O~~@Dd#1c$pru{bf}lIaZU%2B-RqsCB!`>rf|ep?Vf}6*Z@*C zN>BKgt+|E21NsY+`7i?XB_Z}hD;;%Vqi44!aog*$3O6_9Me&-4<}A^N$+&n zR;Dvb4T!JsngZuNlMt4_x)PX=G?dOR5A~AE5f(Z{S%7p++C!xV@u;dpeDhQWH}hVQ zq_V=P!@q%P^!V37fM?5IK>$}0$6UG*DUQ~GK4)HwRYp2J1#;3G-iIm({HUcgEn`N)fJdBQR*{;nX%wZw1Y&(ZjgTcqhZmz^QG^T&F6Ks#f0NjVwmFQzRC zHu1uIdgVzwE75U^DmR4#h;xrX-jeE0M-yiTWPcyHafj$~QVGNn6 zbfNXC>qAY&pkkcI&1FB*9`Q}V!9mV%fA*JH!XI748E<@21diBLzmkkJ8}oeL!`))I zk&}0w_t9QVI0N2@=dUXU8j)Cn`FyLmqGw4h$4jGdppic<-Ej{qZ@>bd4V5ONHBPPn zsFWTh4mO$B{t-HmA)E1~g9+{p&=L*2K9;`0?_1tarA)gaAIDQt(s%3kh^li@kd%0AL6Ex$fUEfCO)q!U5v?&+@N}21LuNktI2^=Jph;iX1Rn5v zvW96QzuZREPtUgn(liEsv->GBR{3Sr8ged|ZpNU(gH1T9Tlb%+GR;@=h-Iyvb}xtW zi{+`Y@+`9FK#y5eoVd1&LiotR4A2?;yHXk_?Dfx%Y=7D=usZ!~4CKWTF4E2zWVu#A z7!9QO_(nWio_a?Pgl^>igU>TD0QkcJXq*o);!|B%KHBg*p)H_P5eTj`qSK|LzY=_0 z*`!BS|G7R@S3c_tMEI^P&HnbSG|i~`YJE-#_=TL@H+;a{X2O`Cj0{|eaj*tkUp={i z0Ql;K(ErAArw zJB^{-i4jx?bO~q;TJFDqrDx33gZMh`#;fqb8 zyH(f^+o){5BqF;Gk4Ufb)0gjpkRn*r>|uWa*z5o7VL(Fj3O z>{y=OxbBFvbXviLOKGbRMo)_Xc5cvFz1D}8F)e&*;6#=2n zDdoA|@unMp_~jIs`viHEArCk%X@OMx2_}<9QYOJ4D?YrHqT<9Is**fB*iPu>j?s_3 z6(U_|JGAsVD0M=3lprnP?G(7$pF$+pQavpkM=koT9{aj#@Ri9NI{x%1G&j@gt}bi^ z9s4{Xk5}%wJ7T2bRkCHeUz!cSKXP4F@mP)><#5!gD~$Ac`f|s2f)}BuFZ37&w)O|W?g!?bVyB#R4SP!*02JJ1v&3>kB? z67BU)H^G?vfD20Zwlb2eI!k$)Vi7p|Oy&~=FS}EC2pfo*MW^YhXcs3(R35F)28ca< z*1!~!6dP4x`!|=)FC7lV;7hCo;DNL}a{eh^S;pl=L?!lJd6o8<2Fqr;1PY+0cTEAx%l8J5H<=;7K8qlhzKD5iYRH$ z=Z~?5T=iiC{I>sXRxC{hqwKQKK*MQ&E>a*n1Y2pm$<`K4Bl+i^YlMA;olt+ z*|$-(CHd2Zc9o9YZJ45G8X+_PXq~^W^GRoXnZk!t1+=3Gz(|%Z5xq7()lIaZE(N?| z%cjNsTT}kF{hdY2FSr)S{!IbYQr)rH%M1ttW)M!(bEoq)`U_C~YkGOg$^EsDh1L+o zLswp#!Ohj@-BEnZ6JWDp;eR#!{oO}>tH$SqpM@CO%S?=Nt4b2pwfs?8XZ7+wk^K37 z0<0FEZzCjmA7KcMlrt$nGKnJO|B-ZS_Yb%pE^t&Nn{P zSC{VR7wI*{{9kDw&?hK+Cam$c%x9L=V$Xi|%)0!0*WWvGH@03zE=Kre28_}FE|0+H z>v=U82dAr^AW#Fj6PnJ0u}B^Nx%5N(xhDSu|6;alX)gYgG!(8!LMDIojsQN?r zsuU=G7k{nuKVq%#Su6he^VjD`o|F5Zc4V$uh&2;+7=|m}ZL9a0oNuB0?~dCH$^0sr z9e!(^ZF{C14ez#%`fyon|NkA17iOc1QLJJ!p*GeKzQU!V^DSiGGk61arKgww`x$@J zh5TAM&htMQK6OiCw~c;SP;CZn{CAn6=i14A$7NvlxH%tvx#JGGB6J=k`oGH`^{6(7 zZ_G+UFD+_$nOo*>S*s4(-HV+JwfL=8{#-0hFrd%YS$ zL3*E`BKI{~EzkV#{$;g`uyez-_`|#?a-MnqL4;uhcFSB8E;<|?yybVq^S?WV!_N;7 zt6sz*9V>G6e5w%9cZ`n0#SYCyyW{EqyX!H^u;wK@IC|~O%;D=!z=ti*g&96~K9cJ7 zePP5mdkaWo@UJw|>K9`gl$Q`w5*MRz{9)ApE>IX>>ikjyMo;VWXw*PLSn6#nV1er2gl4~ULV+cTR;1B+Hk%H~gTX25S zhmA)ZEqlFBGXB5crVxI^u?c#%1apS)4Q|Lv|DS93G%mt&mB;#1QO!i~|EX>G#kUPX z!5e;EQ6m3;Bh&@nstg-86Yu`tk=Xc6&=%)!n(V_)?rC-}44%+?DInz6$@@6`{ls^{ za}_*WM9Qi}shHN4eo6bfkW;^EUSRZqJ;d8aX7hb+=mrkxx&+Plp@*w$ItNDrLZc&c zFD+I`)6mqI8@y|$G~+f#C>L;VVVCvO|HT3vO2ztdQbc_z@>7m<8Sb5huKJ7$Vj5yl zF@vp$`2oVr4!SA^Wa5Zn=m42L#o){A6o-~2x0Qd8QPrzt7xR}_{7CnOLrj4dg-Akg zJz7*Xts;}V$^6G#4J|13t+;1>4ab+iQ?bX#we*qq_Ldv=OIpbrg_s@v9_o*4-Q9hB z@KAC+c{gX9=tjiRQ8*5_E)UK7F1GqL42Sn9&F#oS$~Sy4t0h&-M2j!c2jOq-8)IW? zk(*S?^6^oZblO_KqWsReKeD$pPpENLOVf_HTs61VmEo8J)#xW<_PmsOin>*rTPHk- z^ltY#cfH}T5d6l3#|SQV@el`1ASv%gQ(R@6B`0l`fWHaq+=_zfkLK|vjk5AN`tkM8 z5n@;>CyM$aZL%VKP!C^-KSYG)X!}(6T?=dP2BKYeG%|v8nIr@sA{6|Jk14(qQ?mOA zoV!&J@kK%((|p#+#z|l%f8Nz%e90TkRM=1pM(os^<0|7a2G;7;9g@Htb6{*{s|VYv zV8Zs(y2YQE*o0xSG(=r)xp9*07o$vxl6_M{ z_O|4;-W{Vn`Md_%dw%hTNPzYD_ z);$>Qm~;Dgi)r-|=nU1S!RDw^W=KHLEeXBSXpE{$r%rV~?;z)y=rPt!(kn20u;ySx! zB`tI_d}TI((VZT4wHmXnK6O}-5#4;UQQMkpYpPDkdDrcO;Vrcs(!ur1SIIteFM{0A zB)9JpUEDSK<}JV(Y84ZLm3n8JG7M_x&5f13TNL)Zg%i3fy00c9T_#NIhBZ=0x&=+Y zeyp^@A}Ci!?_U_YCEQiBN_p+Py)}8yh(C&)Gt&Br<6IO%JmIzUZuDbb5BtzPX^Wj3;2X}<}%(q>Q-68eUxgd2V z|5=RD{W;Fc8Y!BFL$|y4g(#lJ*VAtk_^$eaUKB}y-;1|Jw$D8w_|`a6yNf%cTX{ntf9mhO_gtU+`M7ni$H!s`1)iGJ2O%(2 zrrjIRw*)mGz8*QF*jHTL)ee$_L}`EUxP;D3t$ZPAuQam{AoQmqApwc@>9Y4Tn62Ah{q zlC9nuhDq*Rfn7F=;*;T zgbD93N#$qW1kaL5Q)QH6@w{>UE9JstTvqE&!?CDXHeP_cvTbiViRiEo=&4u6Lg2!c z!gI=nE8X+0)DY6GBLY%C!;e)m#XR)-cF1k)_TXoWrE5_puHLDpr_W|pPN2l6wZFF>MX4!Tp2{Ps% zZNHhy8Z1{kwcU!qI0puA8!LffNgK! z+%T+asUkaZmxN!7j@Z|V_O=`iH=!uLNVWNBKcF^N9|hPnUAyUM(`gD}q40>^bjsJ! z4_KtQcpC?29%jDy;rBpHNN!*K%S{T3(EZ_Hkl2)viJ$5jm8)h)l^hdEOJ6|80|DSv z1zk}|P-Um$*C)}ApcS~0^RP0vQw=Z9PN8?PxOihXst1cA`IbKJGaJQPjxpd3j0mBZ zmG&gTs3+J;DU~Pu?kb*131rxnql)>#2{U)+I-^D|I^41QM76ZrN-5P=PQ5ewK10J1 z`vJbEobyFf+&WKVMP|e{LK8_zuy=mH?B0VrL-Dq4 zf4z2e{R02dz(`F9!$#NObDnQwoU!!}p7SFtL%j_i!&BJSVcjlAU zNAqS2B@Um$@x!~V^XnVkWKNHmx>eW-E9(|$zBD2?WFx%o!$#1?f?DXXHlaL^n&QgY zR#}P{Mc52dK|ABO?$8Pf81IzlusuU;lkVO1LR8^{3>Pa4*@|w~mWHpKUBmgF%hHi@ zaRZDi<~C6g-sHpSE0C_~b-7_RpUX#`Itkmmu-hg&Zga=bA##J|55;ZBR^f^Y`Rs|q z*u&}TKS{H31qFF}6FY~pyHs07sQAXWZ|c%Nwl@E*A}`vj;Coh4(zvYC;6_L6FYBzQ zLdoy_Jk^HVyM;|!@5=?xHCOrU`66`RoZ6;4NL zElX7;=aTrWMCM*>MIo0n^PML19cMmdmWR4p=yoX7KJ9*YMI|nQY*JCfv4F1pq_gT< zIXdb(byXbZk>4+|$_GmchMC0w0u~CfMTF(~YYCbQxZ|uI%BaRMC+Wv6o z#z&?5?fO_TAl*oZ$l|)&3|#B&fM5*b`LlFB-BF)QDWOgTq-=8|~Jgj@&}qk-2evH6TBON~;rf z?zF}5vbPx@tv)zKcMr|+8Y)TQP5CqTFhMw!+;_Po))ARbc=t48hnD(n%OkiFfo8rp zv}*TOzMn)wYgF5w`QYJN&3M{=w~Cr5xs^>$3uP<=o^p#zWZ7bUa0oZ2bTn1@#=Y;e z$4K!w%si*(9k|uy;4I$H9WuP^{dT)Bbou0%JY$Qr3NJ+uQfrRE((Jwps!``_Pe z?e?M!n6{?aoW3+m)OPni*O`##is6`+F|vtcDu^sRR1$Ndvt-U-(i0nI_Zvi*XX}Xa z+4nn`!RTx2mDA*835SOI3{TO(mY81Qm#g-IJdmp`rW_qw&$T>oUDyE6{J5mHZj=q= zrN|`rCLTH>=1uYVZS8^@lEC+j5ljsU#@*&SUhfP zcy_5?9eyUCV%z3{sv^bYE8ndtnyF!a<1?2q#y^opMPA%m$KU)7n@!ejAv=k?JEmK* zT_3Mwt%W|-<>J;%f_u7fBC@9gU3ks+K{>gNo$!lgm(h6b!?HO)g+myW;muY9lm>T* zca!l#VL}?QQ0!b^5r48?{L;MR2H>SBQ&HH7Jwyn$sWFlT7d`J|WbQVxw(Q-KL&Zu$ zzvy#xN9t=ctFGLbQ0FVprNLooEe0e3T2wF7B(@Lm=H=w905qGU8efAS~ z&4MHL3)@^sxx`!f*a^Eq+5@eV3Ut|X+&zSeUF0j~Ah-g-B-{RA-sbKu_f{+SVa72A zx`wc(CUFi2?3424ZzvM>0R7t{`3|$+nFx#;&DfbqyjThu>Fr%k6!;(YY0iMj9S1sS#guM)bC)BwmJDKWp2 z1X5Nko8r&qOf%10KI`)`IoQiG9Oj^a9Np}A*V^LO#XLk?SaBSQ_GoxmEqpn5Q<$Xx z!UPUioX^{@DLj>EIy#Nw?eeADFO%{&z(g?2F0YktlH&^?ydtI?> z);}{1k6>U!AL`z3KRZ(d7?DbAg0%Ky4>=enDH88lzK^2^?uu zT5Jv_aiGX}ivzq?vJ@fzyJcj%AMl@s?TCHH&+@#D--O!KoVQX!*C%Q&jm~R#776Pd6C4=u<=05NlzR7>I8FQB6bf1Up#^VdK+*=e^#!8N_ zt15QcEDM0_eq!VelV}ffH_B#c&h~r*HZ3P?%^ioPkC$@6Cb8RK_nP$M3u@lBuwgf; zVGLS#d4ONWq?fXFq;h%~-%n{NXYRq)A#T_SBXQVuk`H1_3;m`mhlh3c30bGMhL5Klo;@Y9M({;!;|JFpeXTY0|&9 zusZp<$vJXHC?iSzxz>Swb>+6RhWm`n=&O_afH60eo$+BKnbV>pswIF}&yil9NnL!> zL*RmR#EFlv9Z4+w=(0@OneWQ%^TiGovLf`DgNT7b_hWW~r9^qj-b;^1XyfAoHftq_ zmM>T2{>4R|S(`Pj4YJw&wzlHp%T;A!`v%s>j|Q6eZ{(le*wM`_@SIA{Uj2goIcqpr zC+O!F&x^Y=Lc*iICgOtTS7Ln^HA>z+5e4%>Ns3Jn7LgH(WC~wBKR!RvgLg?HkDw+M zn1@Ri@HFp$8KC|sv{&x__orOpXu6ea0Fu^|Ls|A7YvPmLufG-%(Std<^je_!c<=#M zjq-7}mVFB$J?ciHp_Y%(S*u_tvg05v6y~IQ1X^neWJGOMQ@ctW00o;IUl!ck}$pO?3^76WKdSHfTf3`8i=Vz?)oO@I(siSR-Dg(DSg~ z0kwFTgZ8GI13{0LLCMnaXX>+cbaMo3-lrq(C!;yx=ux$rHIPne>ES6t|B0x^2vIOj zrEU26Pztt&bANPw^i5GLDMo0d!hPvYMZuyEq(qXGn)vFP?G*O2-h-_d6{{MEELY_t zswaJXH#YW8P-JK6us5hlQc)DH7&Q%(%sJ@LC|18}qr=J_w>h|YhvtJ`V9-XYL#3nKhLheW`gQLdulqFd+T{4V4jJ^;4MG6{}w!=bTr?K!UdQtHMN@RliQiYtxg z+vmlm;ey9mJ&D*SeS7TRQoX4+D+%C!*}@n}UdIIH6IbNR7%jxc0=q%xM44_@h4|crea$+) z_bJ`4UjJvP_m0@U^n7Yp#<8C%_gtsebN?614Lg-1bPZZPs`WO?xqgHmSJ0))u5NRd zV72c@eDLPsqSRNl+pBAZ>BsK_ycN7B$LOO|t?r)n&sgaUC2R3V?SU4Tx2AlLkKNSS z8D7t$i8n<2L0?Lly0=P8A=xZUX=x`WleNqSwEF4s@uKrYYAX*Xat&ALGvS(|?{~f} z4OL?Aw8$nEcJHR2%ugw?VyFrMx*OCqg5GaCP#fZIJ8at*LY5T)n3iF|r3M+3PNp9G zTLVnwPiCYM^esq`@EzrDYpA+5YEuP1GAU45xD=%pDh_mzT56YVWPiica(}= ze&fT~P|q{z(b3D?>=iD_yVX++dUW3J7ABm)dT0LeIo!oIw{U&l+ksk`-?hzRw5yNt zyF@WbMK>vQ$1BR|(&EEaUFAyJZ8f8X9OBTBOL2>wU1$ zN|fZgXZTPbgVOqQdr86mo~EW7Pa9IJFg@SEY|7L(jbzBl_hVs+(twz=_!#;cNXF&) zdTo_E%E^|STgX?XZ}V)0DL!5@Ylmo-t@|wAe|`~MxJW(T+6CT|9h4-MQ~{2q_RkMf zl7nyNH>?K`0;ucF=O_}xfgI{CemaLwaB&tXq;TEGRncg)5tm;NH(}Q!2#xaXch3fBn(UOj0(J^^lZ^rEL+=SH;MOP>ilmM!CV z`|XyW98kO+4OnBq*SM9uhX?4QFL%9vfU#SQXfnb<=4i|PNgo^qxfZ_l!!9Uo66EZ-%x&0*)El$7+m~e14_?FQSj}P-wM{r>yDRpaPS*7<50f5M|>#^ z3k5bRgEvKJttO6kcOOF_2BXkHlTJd!nd^%cm7fsLvyX1kccvG0r_Ceo#2@_R^0=Vg z|AU2`(lyrsMrk!1y(R5i_7#!eLXUj`o*lWqzf+lpcV^kvvJpXZ=f})Hrkgxldyyn_ z&8&}%aG9QV14VU;BEeU)Ia|!0ADOu7H(u#QpgvS&COH(UvSAa~&Cl~NQLLP0ZHeWN z|11djZTO4+syrB^@ottK{h?t&s6;Z-+wvJpJqWqTKQ=TxNLf{|DeRmMVen=i-VlcHHM| ztTC6rMp8cbn$bu_@nUAL$U`9h_2iC-q|s0*>ZR`5EvI`dvuLe7@%`h?>SuyV1XK|9^z#N!ATnEAn5USg}@CWNjClz&O{Y(kJn#JrNX!Ru%@Y zmqZv(UYd}dd|HB*&t|T~u^EZ~$e0Oe3OV(T=9+UXdM$Ro>g+s--a`o(-+`WMyTHjT zbaQ2dzAez#6f$0mqwjEc$1PQguhuV`<(;eIDVN(qVMs=(uxi~0jf=P>WnKofm(?y% z;RZHxNhKpM1vlD@VnMH8*&T_4fU77ZmcSuvk^hgTZ}DgP{okJ?r-}|liB2MNDCK?X(fSg!HW3QKuc!IZI^HK%Stvs^Yxp1A2HcAb(H zfq*JBVewbr<9hY#F%KFym0_fZ+#st5fbYqWAj5Ya2Y>JkzWN?n(_G)oF(;ZGx1gTd zQGQCojbklzfU`{v-J)Bf>7{Gd@T8%OuSu*c-wL3-|>5*+au08B&b;Y;PVl$l`})TtV1^s4G{UXZ}UcU#2m z$Q6qJMKM8IQ`9OH!3;d>6#8A!`I2rNoVZFJCerr;Xkd}JpM%FMW4m4JO-lfuwJWQ^gWYtY zWhS??Nx^Eyqn$b`FgzSx^9z2^eHG=JC2$rTbaWVqCyJqynsyr~SDj+Ew=>@Y1iPj+2c?#`1yfbLji( zjj8Kj^n-r3{ml#TTIvhX+T3D0J0?j|3vm0Q*gX|RdJjN?gz+qq9`f`urO_ce?R&rX zTB|4H?Ut0(g!*PXR`14`m4jiUFW3?I6 zHrOFhHzQ?nXtiH}+=N1<#bm76h;JV2lS=zJ==Vyh#oaB{7pm7b{ytPItO0Jo?rO)m z4brLx*C2V>yH)#q7HjbE$|z>q!8Itlh&SR()9l5pzk9e#yJah+N&UgK*KdPWknclc zTsYs_1p9R>1zRn)>U)=2|wnn|-tuuXKvr=k#->XBfN-*4t12$lv;9_~H3uZLS*? z;1-MSqrEwPcdLdZ%KA)1mUsyX)#jU7m{&O&ZK0)z)lG>N6}t4>ZNKNQMhUt;eDq!2 z=qA6Gc^S_UTaU8cfc|^u({XHz9Xe|OyGMjS+GoK9ox+OWZWnDcq3_4z(R~{Jmk(LG zsa@QImw6lPJGkKL2Z%yL{8PoJJK+m+jS<%xPTg3Jai@MEVhYmy)vsQ7uSafrVI_2R z{Ayb;u3GscKHLLT!esY7K6N<}fUd)ZE#7JKp@nKRBm{0>DSKvZTQiZ(N9Z6w>dg zBRJ<*{Azn_Ui0OH5!tGYIo4*~-6*5G(W|9Jt1)7&9U}|I`s^wl{)so|{!C;n(CyI- z&4HUF0vp|0yhZkgcV*sj;jI?MdLotO&;0)^fUW{|uT1#Y^4k!78`GQn_yY^0;mWzT zVr8BHE9HHSsU(+n=_L!!z?1hF{QxxWx|^=BU*&`k+}v>1H9C3J2Z-2=@1qV+)1tbS z^(3vE9qe{I5a;%q00fY4aggcGneHk@Fy$0Y#Dom-KhEWd1HkSHT{)+fzcuD>ld}Hl z<*7@~iar)muhMEClhOUiJo)KNiWjNu3s0h}r?!J;NF6!io??{y%Kj^9rb>qerUbz4)_I99Lj71_^&g^toNOH_a@|c8{G)Nx=bJlSt|75W z?&Eax1Lq&0<+}j-{@UBlJRg_OfNO zF0Eml3h7RT`^^3U{C}TWWk2)`Y;#E={L!@E@ZR_XQLFMPa)H@hNj8^##qkckD+ifM zz{kIt_0dZ2f!^aC&A@XIh-KsV2V(muKt8@a>#_H8l`)?wdM{BiN;R9=aBu@UAhM6v zj&TplKNLZ0H1Di3JwCn2`$nV|TG$(v#y9aMb~M!Rj03@8F+>wa?W%=hQAinC(BlpC zrsyv{5h_{k;98Ypf!)ppsMGbJ3wJ}$Wfi}c+Jtg!ZHCTVlUJcX)E9DHnpwO$ zTj?EbBqnsjpbWqvWiM}=Yu3s(My@~w*k7)U9Rjs90<~Sd%t%wv=dzdk!BSB3uJc^q zvyk2X3g2JQPAg0*z5KRZP9vj%gQXRN!rZhjPlrF{n+7kot0to{uH%CtWzlO*=t;S| z*6be5fzaXdnIY1?bcR36VW%q>h^?Fl%tV$h&fJa|ggvYH9z$*m zAql3(AgYjIqGqCiYj{j@LX^-H+tW-bm0`h0dy`C&u@{GEf$M&WGhx*0g)#hnx;&zV zU@^EquE{^6AhQN?Fd}axJeV}dty6oySoKXa!hdkO|GprN4THN4FVV*&^>lm7;29T% zBs_jpqiWz!W))ooSxQN0h~ih7EZigLQuvOg&Z}RpPAKCpNfs}{a`Si9u&_eFsnxnE zrM+=f_viwMAoFH)l!pnQnHbrv@D#=s(J(yB`_i1HwRdvjo7GL4VRwhRY=*EF&{L7j zZvPkEj^t;VaAeBEWG^eYRpd&T%g6ePvaKDg+cWl;AR`DF;&=@9&E9lU&e`%L$)r@1 zq7>t3o^b<-DeE|olH#TfKach*$wYxeD2In~W*~Y=+yE8C> zO$uKztO})hkNOMMm$8K{{+F`)3+NRU1nDfjT%NV3;&GR4_=JF0NV&r*42E1CU%t!@ z2*ch)FgL@9o^Rlf z`{C?}N{h|(gbQ)|8E{hh7S!U;1KQ=Qzjk}{7*5*w06&#o@gxs~%+J_4%Af)vXQHH`Zl7*DZsU9IMfqjCsk$D=L(%qT?_iTRuOwuR{|e2SI_;g@#&SPmE@~R zC-Qekku@&^T4|zO=O704eAVbi343Ndy(X#CRkE zL&-$rA*^7v0|lIFZ}U5CdwhFQ@TMxRW0ZfWeGVY>Z0v=c}np5Z%*c zLJ)4gq-Gde_QEQ4sKCG(cz(0KY3W8{U~Iy2%w{?D+b%WL@x1Sm?1OkX@m*e#GG+Yh z5Fai22TV8}pnM>&Agg9cibcD@A~E7hbwH+S|3g7CNjD9g5GG~ZB88e~x#n>!dp_}2 z{@zqee0~0nrvgL8O7_7m_@|z6r~hEQxVD7m_J^iZ#WzqD%eCXm4<%<4g(h=PmQ66e zH=>irDv}>UA8_6&R=%%la+Cn(!W3gK0xUyLaUWH@&{lANxgjZ&BgY^KA;=HmR>z*G zS=8HA`=qjrh%_A0|IV#x`sq8{UL|9Fj~dOa#gP2~L_^)#+8O&+w9MUVDBS6!|LQu` zNrRWyIfjD;vW&_uXjq*^6TJxa&1VQrf$a+qUih?%tJ;GR_KrH*f`}sJ_Lng9yj-5^r>GnMy~itua_4|)x;#)(~TH_?O5RLhMVi_15AKd=;SWl?l@9d*5v1R@+e z*N~l}u=g$Uz8z?7SUN6|5`7kV-3s`uMTK(#m(Ob}yAaS=gF<$eL>V6AnV%!N1j_nN zi1bF6n;)Sgk-L^|>Ns?Do{){i+ta0|9le3GwElcF@nk1^Ec$3pYxTTLwT&2#aL!TA zqr)zNgWCESs*|&UYs&N#gQ(D~zAGSy!F#V#0~y5Ei-Bl_0xDA`7VTE< zAvv!Xy-BY9o*x`K`5IK&y~&;UGde!0`rpLu^I7oU zcjO&kW^>)MB9LHe5K3=0{7FDdLQ_yn?RSloH1!Z}vB8>iFhG8gez_*6#)1&p7P z7%{LJZYpRo1vNQAXKSi>H$1+ZDvoEd>O6RyU6uMeCUouF*0`-3`&>99>@y(sySvX# zHeFf`18kZfpClyjSewnaYrr4w?v{=3A=PV6ryqdlCy2nH7Nfr>_0OkJHQf<25tcHRtUCvbxORG%u>?5# z$VpTpU^?*8h;peuKC7LUOoJJ2g09?DvTRjPblRrJ-({Ww@FthX!Q~l;@wZc|X*%qJ z_p-!ZalO;hwCGL1&#Rj|$5k<0=+ew6=C1|yAb6Nhk+H|vO3pdqvjHzt!-)ZzhV6>; zQfz1j+gV2-{pbSBMTL$l^M1KsA>60uF}<^S`fiM_^)v@i!U7vpb=bcH=GK@q>Vgt8 z^!8=rJ42xWVRN4@XICdEaxWU}gp>~ki9sNg#&dBGU3%A?n<5E8l?V3By>?c*ZTHLY zS**rf9m^e|^Sw%EM11RqT2nnJN`>zZR^M}&`ME6Yo~<-A>hJ{QA5?v_r2{Ky{gyX% zxHv6lxCOi`>~-s?qw@+2Y;DIAcy0^b_wc9U9S{`OSQ))sbB^NP0XNgrSV!zseO%55kU=C<_Ff1U zKTxy4&lmKk>$kEjzW;D+Vk9HLPms#?U4&p0b@7iwNoNm~|G6B;l40Fj7EC`Q<+ZX) zv7tQx)mu_A;}4}KLRh+kM-KSv5H_lh;A9Dx2bP=UbS(K29TV;IaxXgV?^#+wp!{Di zhQVyr_mNwyx&oZJWgkSOj6Rf#5QpNQ%{6>q4lm4SV8BlJ@g|9lbGizYMWKPyr>)O+ zzu12|`k7)Z40W`**?bbv<*=PVorl`z2cy7q^;7IGjA1LWT-mX_NTx5rTAJz}6@Gj= zRfE|zW$N!p-rzpk3zdqYO3uTpcBu{2<%QaJ9|}29+sxLJ0sJ)nlqNfxet0Wt6b6Rq zhAWm$yeW*49xrns@09-b*N#)uO~E{dYH5I4!?%jr-|!I>tA5;b7fQ3m>Bk4x!Pa){ zzZOb68Ef1qp-%o%#jsvSp?^XyKH3AhhQpuNEk$xYvt>Tn2=ABFDzvnyiEob#f{8@H zozj)3Nl8QJf_1D@$eg=#F{faDY# zUDpi_Z5~3(->EPq-RF)SJlUZlg*`mU7}3d_WNbn{6^R16d2{YA_ese6WLfix3gqKG zF{dNT@3xccCcR)YxhZm%%K{ z`tZt?5x=YNbN}hw=;C{}GK( zst1sZL_2^T`>h2>dqI5r{)y!Gs6K^x{sxfYE!UgcY#HZq?-q~48Bumq@c8z)ZC7}C z?=YTMLR-6OZ`j^^aQB1;-j9W1FUDPY-S$*t%X%J7Fk*KWt1RZ7=_pAGB6B;;|HLK~faT2u+8$2^Pas#MsmE1-%bT=6y$K=1fbFQv@?cM$2sbcCJg$;|#ccQ-gw2uGlG(d;x%>}BFRy1N@qepLd`&^IBk<9Z3_O>B(uy-H7PDz;9sn{9LYTK`7xjMUN}FiEM(2Uw5*|lJW=n=!cG@2i=kL;M)NYVi6$C+T^#Kv292a<=%97 z?xJp;uWm0MS}jCB67(u4+m_%l-1W7~N8MEN!RNgmz0_r!;{+4syMcF#<8L!lnPl=Y z$OvD!T1q?~y)KIH_sxav`9M5fno%VlM^E*A0?M~-R=cxha%I!Bw9=5TaH0Ju%yo zh;|X3CuazQUnD(r@xGhOm}d{nZQkq63zsuC{83+@EpB4L@m-Z|eC%=D+1T3& zMc$u!CUx-Z+47@cawvA;!|&2YE9xj1SKv^!-(oq|CJ_Sa6zIX09kvU%n@qcq#bTd5 zu+t3&h_mN;rUOBu&ySc>mAK8+OQNlrj_=m`_J@6Ofk z9_ti>5I=yd#c@^7?j4G7lok+t369ZjtVd#Umut>0-Bvw8R64%n>}Yt27ffhAD zI9;II0dB?j51jSembD?;0f@Bw9Ha9eogN885^y)?fC;VF^x^g`9vwb005YH3;MBBu$Oh zB@vvi-*xnK1iRt{{s{}pLWAOwZQlh2J;UwTsNQ2s2GE)Cr&k+oj-8+2gpi^T1jJ~f z@9ZZj3$L@!gIqD{hg{_r3(8L&>*%rxj&Cv5==-@TBxF0ax8-||Y8AVKo$0g_(_0hg z5=&H2oH6|y+$m8Vd}c2DW9j70egBpHB-!FdNhH7*&RODQq_e*z640%OFX78mS12Tw z4rs^CVhJoi4nAMmi@joT^PgvV74eYhz3L*Ke;-Gn=-rujc#sG26%ARDzrk3t%Mj-W28n*`sQrB6d0JlPcvg9pC2^3p0v3)!3 z>Op+u8pB2%r?8ieWmxqP6Q##`)AVcS`DKV7|2uJfyp2*>>SCFUIKS<8g1bq;mKz|jxCCU>@*cOdM#WDIYGdO^vk)C)Q`7Iy7=4w& z0Dm_DJMK6T#`<93AaE9nnp1Io51$`I7+1a?hD?)N{04r&@o_Q|#(5b*Za3F25`SeB z0Io;>j*l$nG=&0_-MuNYE-Qc=t<>R#)BSsAk$8y z4o7?avl^>#&|$lRpw;*gJ0;9Ny1t9kTEX>nxM*IuT_6t7fYo!KyGheed-QcF-fZ%3 zim{-05PyY!HaCh5!JB7E6wb$Op#qhew>ef8c0&dWv+mhfvQn72Nm#aCh^GtZ!Gt$| zTd@7_|7{SNvZ=&!`8SPkU$2 zHvDwky*h2cdbzpgKrAV!{yJN3taKlt9f92z{YP+9wUG4lEC(@d`)HNuLjUaZ@0QIt0({seO{|PAE{=C z08d)!Q>DR>SUoDnbhZr$4JQy?fnX~zXltE)Z@UudolDW!elD6|F>-=nVnXg}KcMnq z^AD)8DOR`ad~*kkr?tK#$w!0`Pg=?)p%a$7Ym_NIR%0tV>`X?%Tcq{EfdO2o`u*CDrJtq%qC-b#=QIsALsF4sKaSct;} zcDQT;$_L>g!g9Zh9&u^DB%O-iQrr>vFY!(*%h$G&L{!UvXv>$jSWUkwC;P7;q`lB<5Yd_o$5UO&!02^w!$>X0|iTKb&XY-T&-6K zr|sof8cK5Vvq2(RHhd|V{MT3oDS#;$2bWm&C|%3aOB4Eqr1hfOHSUDiCuiF?SloOM zCup+1Wn!+MK|kKQ8KjG0(1P@FrN=uB&r zd%eJHCYbtc$9sP(Ul?s`w}U#wgy}Z(tN`$;aCK|Pj>#-&0biVx=u9L2-R+G>4caVl zN10wSHGcHr_lMPH>iiZ8g|I1gWh@CfKKQhhpC~_`?>7JXIJXO@!|iFx)T!K&1NH_w zk!fOnT+W>pU?{me(8jM;xw$*QJ4Rk}1dZjBocFTbbiAsdJNx#KvtbR8r0vau%k6mO~7!gr_@Mc0Ym=+ zjM4u}suK>OsO~g`HKNN{E}Sn?%5fLWf7h)fxOIPfgxBEW>2+K)iKlwF@9N6Ycr7cu zxV`+8-=~d4gVNQ!UXB*+HuIdiyTl7V%NQeG6veYY{tTL5D3?71+HscA8U@~Vsn*@U zFn2{>PESRS-n2Tw@v=NLymzmr0kKwm=h4DpP)`O*k{WRQ55UCrL&F8nH|L(%KX-k+ z2*1TmemJ-t-}yQH=qMYy~Rr{`}c8Fcq? ziW+c0vV}n1)u!Ti>>HixR57k7q#iry=Xvj!JG)OCUUXdz0hvv(5=HC7Kdl#4<47oX zMZjjOyb(A5t~bl1Zq?dlS#M!&xH$9_CS)<1W0!tD5gjNaRqAboD~}?Enmk@*%;8FV zUK1UUDP<2AQM}+mqc*(`GmbW55UEz-)1su(q%QN3JKdzg4+cJv{Px=s2qxHele<+c+~dT5s6KVg zBx5}Zv1^AP+crjHCSV&XbcKP+{%2BVS=q3-%*LN1=ngj65CLeV=ICOX_e#0t=wovApdDC4mJ`Y`hN0Fq=^&X};8c zHEX{z9}Kw`wAZj@^L9Is(-Yz)!Z49wiLAS7h~U-Ea*s+Viv(8wN@fTD8O@u&Fp4dL z9UsVRaxEban>}~oR0(w9=xdnF?&Zo#1=ON5(;}~hOF0T)9rF?)B!X+{s_c9VkM2NP zXpyJBZgAQ4RB6*_F(XyxTc>sKDjnaGZKa&GZ} zNG1JQ`}x%-VP=1@7`~5~(fhY~PCtM3-(<>kS-`UfcLO%s;pLaMt@syy@yyYMs#79o zb*J1rs{EaXRo^?+A%Oye;f_sR0 z)qAAdIxgD53K6;^*n;b4bWgDlfo4gouV+zD*--TRuoe30q}aa>BhkX8jTkC##1$Zv zpn~uPvc98@N;c^lI0bB1&vxLVZuhe*$lkzBnIMOYUrnwDY5RRi2|b?O&6;}|rGnZ*;w-)LG%1iZlkmABGY zjlMi=(%69Vt~s;^yWdi3|Gx{~*uCv1M>o;lSJ){dy4XP6azn!;k16Cm#0mM<6^U-!1T}SNnvEE>t0x!; z*c-j&H+W$u1WLwe{VC`YUk6vpd}wpyqn)}mdti&Z1KtfS?5g!F571FFHy8iK$@(852v6c0I%KD|@97&#KDX;*H7;|6Sb*SQ%a zsgFXNc7PK_dn9_Syxk>49+dLZ!I@|H);vm zQCv9PX#iY^6|z-*pLjpVBpX)WgQ6=TXF7-SC9SJM4MIOaxj^;>2C3m`0&8AM=iGe= zRVUxZ8QryW5}dY?;jTVZgZKUyTlQu&7LVTS|Jh%4?Z!g;rs`OtZbW&1)aO3I$v$!9 zWMYVs%-8Ko{!Oigq zMP()x?Mem4d z@%P@@vrDxxmAeyC??Fxppj1OYfc^UAy^WT0)ApWc=>`^;5|Y0%w7l>z7TRohHtEYyJMP*K$|4xj5TkY_hdpA26{rI@KOSFSA_HO zM(ZxjSPatDlr~8{gSbVxn9^0acryjD(!W#}Z);87d$wk&o5q+rQ;H*IY*dOHz$m0w zC0)vnn*Kom{MvoD$M^@~x-9?UwOq`#FS7mpUV;HVct?n{PNjHfSZV$@9NpoMVhTAd zTP6DbgvP4{;yeAqsVL$BFS`7M^xOlD^V*>G-=tG^1A{ZGmakx7I;YY=bgrUs-ZC#h z1yqrJ_Jrig%}+vd+@W5#TYB$&Z6;JBg^^=PG+N9xu@2X~t7mgO z0RZYgQwTitXP}!1b5r{>-Vn2Vj#5CP%3QscLVdhr&=SpjI^;0jzJ2BA6KpaDJknPAjs4K1dh zaxXxEu1`N7*Jaou-$OP|Ir01%0kCzw_C5%h^iUkGRY5%mwaX-AfYHC{KYMEmk6*vl zc0L3|9+fsVO#A#!fhv8z)gl;$SI_BLv=C+N7PU9nwcqV!Q@_YZ&#(D&fqJi2ssGIn zwToQyIy}AO%*v?B>hF7TUnv#2D1@rS&XWypuT}`I$Jx2j~(&pthc_&eQnU;a&W+Ri(vUC)s6 z#^T44poBHRNs(K$+JEXd9G<8UWhE0^NEC$ajcKd`aQf^TXS(v(;>N42E_GubrdK$O z_%8Tm7K1FADXnubqf!z;?U@S~|C{!23+{Q6LXWqIZ~b_DdfISaF{Ug&=zi9dw>IU` zWWRyGpYpGiq+PoI$;W5RaQ>YYX(*oiTzkavWz%RRG`_5F&C-jt>G2AAUO6vAKR%##PtUF~)>uO019 zz7m;#kojWrEGFzfJ);;r(~p3#A|$tuRc+BFOR zm5z4~D4(HgF$2Ocq)oAclk#2mIc6Yb$p!RQ6KOfI|K&yMRFZP5)h5HCKSR((HJ7*# z6Pzyn$Q#kUeWLto?pA&^d>n;>%XdX8`(fdM-eX$Zi*fi6CpRx*yXLOuc1&<4t%V>C zggv0W>QixB2E96Vb>QB%E#d;DK_8OJ6cT`ZEvml;()kM30Uh=-2G6s7Wh-zWzBFNO zM6E}DXlXL7Od*0|pH#i~us;YgG_0sDS`X{)4t!}xjW!T{4?Px(5LQZ(yq|gw8KCaJ{SVO={;^iHPXH>$VlUH0l_)u6^g*;C%@PKVhX*@LXvWPEn8s zw-}kJv=)aP2eKzo5C1ESis&PVcI2)C9z3gsJ^M|gz=TgM40rl#Wx;m`3T|ST;@n1~1QL7rWF*>^FURu99=)wI}kvvt8&FW+nz7u+r3lHv*r-%4pcq-6!^ih zN)>6a6Pai({{p|9h5O}zya|2ECIxw*T{k|`Y-ew&C;-8iJHhPc&PowgDM!ul1Kkom z(kU3?7}jX_mP_;BO~q9e8b7V(mKwgW+Wzt*>I8bpnr|tGtK6rQm{|!m#s9ENF*u0#ieRASxC;T1j%mI z+#;--2;45oUaU>6S2*xT@nXcxGydDnH78u?ubX6qI}N}GLNXifh$ZsGyatds(AF}( zKwIGy2v#3)Rs4Ls(u(u9@>!hk0Z^ywL^CRZA{V))B<<{Sl6kh>bUrCP+X&weDPQE(!0EMsFwE4AGCtr zi~<9vZ54>MiYBgBf9n$Og#b}iOIuPbdNW54dsF%e_S=y+?CXE!Cl%r_$w!^6R-0dx zML9hdRzh?ID-Q3T5Tq6Q1qGc!)Tv9>XC2`MiFyu;Ak&*0qM5~6^99$_TK8HemRG<_ z#J{ARqZ;k2x5M2Oo9jowhe7|WXPIM@wW6~aunlCv;Vv?)@Ri2HzcVF$rIUOhLZ_6> zaYR{&;F%!C_c~x80#%9L+$gy6a?5ddKRPtA>$eYa=-MVEdL|58xvE zf9;OS)Y%t>lAvTPQEYIzvYMC~%~MPN30*&SCzzZy5(olbD?J-dzQ3cG*6UAcw0fqO znF@|6+^m~oplwUILFu}B*yrCqW&>8V!*p{2!)}Xp`hflkqHcotb;yO3<=pJJ$-7(h zNxwAWBfrdc6V?7NkICKZb-A3UU76P( zvE;yB%X?FE$y7HM6#599o9jwVG^(RZGv4m(aJKP@JvI5dLyk?b^?u{OqZaM-FMB|B z$ah6MxTl|X_0IvXvj#E7YhlA%V9_rN@~>6zQmhuZK}G$!hMOgT3i%|X^aa(yypPpM?ub#V?sgT_EW1kmrAp1d9XLsN$iLP~EUQt_As+y>b_l%b92lMyjbyd# zrT(0b3t7JTdC5LCyyAL_Oe-j2n+ePv9<06uHRFo{9E{?t^=M26$$ECz1?c>^s&*Kzz6#Q(kD<7Sz%==4VQuf;o-UUer~gm1C^3Px5f0buJj_S zq*N4q!ATGQR36B_6}Wx+ZgANI7syCeAhrp-h2Kzp11kzt07L)5em|=hnlALsq}oyr zfm-WFU}KF!!Hn;lBK}l)`1=En9HLCY+9eRe41=k zR=R0}2|tYs6zv_8h_+bOkM0iq<37=UCqzp;0=)sM)+W4h`&M1G|1=yeN0ZUF`9s*V z84R?w$mVq`JG2_OSWDabo8XqU5~wTH!S)Q+d*-2loP!Ee>szWUc9&TW*Q2HYhAG!6 zW4QR^3i{jpxT~KI_T?8XL+3ku)7P&2+}p_pAHR4pE;rZw&&J&l`en_h*PP7w=N{Tx zo8)IzUR1CKVzcm)+K^*y+@QXRyRmtRXI&#FHnos%YxCN5K+fkm!71@~cv?^xjPKqw zvZ5q+5)f#}4mg|7N;eT{X3m%otimp^#gRz{b>keRbJY;cUc{pzCN@NAl7^dh~h;_DgOrGubW^=F7%d$--DIaVSf zYjR~tvG@?dJH^7V9dT0pzTQ-PgJI!asV=hI!e3X$oI)Jc;-{K4xS21P7YoW4Ss?h7$)rH4~Sm>)rx8K6%5|dPR^-Y*(H8z-wqAi z`G8@;tO{-7&6RCmjv1KjXT4KJMYE=!9G# zHkL}DKaGZ73Z>;Pq@HuMrRMX1oYes-4y4qarBH$9Ut`cs6!1Qm+-w54su>c)e|x7h z7CsyVMJ)VJkMmUDFYwi_#cyAm>9c$DiHB*HB}F~gd+|z=dBuL!?C z?)s#}m>-!)s|Im_(odD!Ha>T38ZB`^aIBBB4tU7V8374UfUYk`BhS{JOgJm5YHP;^ ziV>-oNeoymC5VD^5|ISM*0xJbp4 z5h!C5GARI_W4pNC_@Wx`6}g&$2NTiMQjKGs22b0fc(Vfkj{-Xn1G5Qk`NFY@_q=`%M{)N zu;(SOeMuVuS09g8S!l+zO$mDvt-}^WjLhi4urOqRYBC-cD@4sZ51d zT<;*6F7Bkp9KWbst1|P8yJc?WPTx!yHxYoTHHH5xV~cw{n=Ld6SreLrPMrbP9P4Yf zFbjY&Xb^d(#j>cq+#UTZ@MS=sbgDbrS~m~%0Mz;@;jC)KY6Hx$)^+6Fom=$^*fdc$ zq@~FC&A+Q_v;|z4=OUV7A6RoEQSN6j>rdB`=4CBE%3Br=klgh|JDgrm{xct@x0@Z& zgR4H9Xu2Z{ap9x@Pb^(bWxAI&J#f~1s;^dDKJ^BjBnwgd_8skKA~H9e-NL{AgJcO@ zh%>-z7T9BguY6TGe?^ahKnw23pncDf5W#aKN$TS3Xi>sEW1Y6>U;XMujaEF$Kwz;u zqbimgq^TJo@d9`v{5r+gg-vMrXiaSk&p!&7J-Pi=N23n(Z`@(# zav7>#YE1_P0lerU$TFCG&rEDtuU~&CJorP**7?!jx-j?vabrhy!>l|GQ?_M2{V4K; zTKp}^@2y9WbJym?>rDoEY(j*9IA2Qs`|{b9XtVCku#S* z``d;4_$@YCl0)IUP)W1@zFqGD5Mg?(ELf_UoxwD62|poqZnVb7m6)qv6&U8JZx`N{h@2LP35v};iI!*vBPCb}uH?bnNi2}Ud ztiednq{7KPR@w0jr}9{Ol&nXB_T~4dPJcfR6cofGn3!!o^2}lRsRi)nQY_s+h29;^ zeH3IZWj6&m@q~N2jAGNA!O&acfafOZHP0m-#!Y_gdF=1 zi>50?vdEIRIrS(9gE~baOYwc}AH3>)cqj#-2669>ZGAL2`8DK13LsUbJw8b~%De*C^9Z0sJUCh`v&3^D+pOu41O+cutSkP*0H zAuc)j?z0z)n+IgrRl{n+-iMm~qo~H|bv*rsEaBl!wSgQa9Ok8&yQXwk4nUr#atP1lH0FyT$ za+rlHAL^?0Qrdd9M9JsgX#2i7GyU{ln6Le(Ua;m*(dX$>iIUc5Rt)-fcq$8@0!hrN zV@~g>vQ(sw;h!I$*N=-ZK@o1VPr2NFgpfbBwI$|>!j@}Sp?L@;P{ed&fgEMeVZRZ` zywrVC+Hn1fLPK`8ORatxJe3=#hR;@U)_;uit~d~!hP0C$IG3L`*{tcl?~m!1uA%r_jH}CFuap$-)rap@DO}!Dk7gCv7LjG}T_I}NfN6LZ5$N5?3B)_eaour@S z4D|e!&0X>X3~qx^01McZ?3DystfIea71E~i=7XJ#p34CJ;IRwvzHOfsfm zL5j9i>&adVy>;5)%Sbxitd9|Bx1V89HYJ}{cLDe4=}AOFM6r7>nFdywgocH}GyK}N zuGD#Mg=&Sq-P%?UJg`vXxsALdyr0>&2_~<$wFQ5;C8vTX5WO z^ncRS;pT_l2Jk1BuVi#upLXJh1S;$npHv2ce2<(#*Z{>1^Mw_IRZ7V6%|uk05}xL2 z;qk-xxzTaZz&pRPN#yB9Sc8|K62D5(92gGBj-0Gt>#7HWm@WR z@?VobmSrEGIo&DcX`nZx=MlhB9SL*?jJf5X^eYxW4O*g@gJprAT9u2cofE~qj@`R< zhYJjJw;Eaw>uh>&HK+rjPhi}?TGfF>z_e7Hg&^JL|4@@R>fXP|<2=ZFIvYFl=YSZ< zcT8g$y4$?9JP&40T-D!ouP^-8rZ`0#ItS5r)I7`KKD zcOp_hW!b77kRo4CppAt8xSdxR-jMs7h*-;D|3{m8`lXkl3UMqI8dPf*D5sjqV)bm$ zMy$QKf4gMVz0m%<%G+u9`K`)COiQOaeG2DQP3`vHnx3l_s#V@=!Y>J# zd0M~=l^rj9VF0I+s1;hV@m)8P6&RMq)y1!69x$71#tOXRVU`io=d=d>U zyGH#BthC70u-hC1CbOdU?prvA&BqhXr@f#s2R>7psFnU`Gv?^LOspi?7$B5NKsaWM zP%PG|C%V71?SAYRcbeGuJ4d@em#ChZl|a2~)slh!GmK<@M|a)|Nf=(?UH^lxWQN8j zpSm=sx-V-o_+{_{@I%d91RKF9WMx`e)yw%d6jNKjB9aSXQYwl+k)>=B(f}qh%kM7u{YVG&aq32nt?Zj?tP;0-x){fAuR-)_o;Z zfcR2h=!7+E$jE-aTJYM3vk*a^(NKlBWVTFhKCb7h_eUZ^{&_F{cy$@bbtUuQfolJa z_=z~Gp&GwOAIonuyd@Ra5grTz^|^zMfgv2DUm7F=8UAh=8q&;1JUwjipwy*0BY9q zy2J5l9Z~w#ZKR5)!!xe6u)=;)8k&g`6esEiZh}xi<9`QObsYI7?ZA%Y?i&Ja`sTu; zMkO-;l2bV2&(%XL7r1^6R%QBuxX3{Y)}&q7yY^k%lTA4!@(B-6IEogfcLvB)9lw~{ zwLMc6_~d_d{6g_z6RX~`fI#=c`wek!NlljU_~yt8f0$-%1yyjzAONXBSy}PM|ab-1-xT&MnJ;2AJ~gNXtRaYWC5&OnSY0R4oZC-k{*X)nec+ zvmQ;luIYajce{2RFU|eYi>~o8Z|M1dxd468yYH;Qwf!%_qz%{EG$p;D-ZZYl@ReFV;--b-q^KsO-EO`NUHS^eGXHx@3vqFqWk zX+eNmLH6_u2~tUgRW z8}N{qJ}aQh1A)Z9Xhl&D`ESjPxZ(V*E80S<+87tj?puHP>sz+y^&smC=;4;jG{l`BYx2j=Bz0%gv{^&y>`O72zZUrAB)5``N}XJZ6&rz?=oX(uX)A&%2Ya z(k>);b*-pN#3hG15BRw(_C0*7AWjyxJ2`C3z9)M^P`eOjc3nVHr`l|*a(v{;ay>%D zQ(+%rfuf6zckjAloR|=o3P(Y>N~!bCUR{kPC1_!+-+z*R>RSW}LGAjj#&;?IQ8{8U z)Y)|!IqB_F*l(_2?K`bNGFaJ)QOTzj{h+#`up^3=3|f$TjC`INh$@G$Wm{Bz1bEdF z@8pycB~kye?f&DbjL8j)63<<%>9UwvX?8ovpc_NZvGjjRU9!AFj=c9X{~U)rA_gwg z*gl$=c>;a_ESyL@3nYKpxHQ0(5Yan)4VCH3;>J2dmw$^J^veo;`a`wXC*HP+eRMhK zO^xBRoANR+W`U7vwPPhenz{m>G=4x)u2PU@v2c5Oo%^nK+cry&T`)ji#H_`uYC%O`+djjS%Fgheuy<{5kK^Rjp}Q{;Fn zNIVd~eHTqTIa0dF|K(0|!j)|0W|NPlM_MAV7erLCuFhXH*db8SiLG~Ib$~p(JP^%; zG^@a|Zgst9qf)&EDK>Lx3MVZ%;(6T7xW`w7?~);MxRDkTDSYnyiO)V%NWFCL;HR3k z{&Az-&%4i;jeTs#VAOzR>g&Q4kVf^F7& z>gC_Qi11hvxkn|9@8cuBx;MnA0o`35@#9c!`H- z&@3D%@#YLrZFy!quGl6NCKz7l4D)->1B`@uo{glOcr7kI@hO~?^l}t7LfQQJ8Bo=^ zyP@RuTItCDRfB{w|E!R+=QC`S|BHTbH-}LYWUF)$H*h_h)d=p@8qRLvSU2Z>qrSL7 z+U|We1qr5pR#Omf&R9_0otZJvO}|`N|1D1O&7qVj$|)A3QzmFGx+iWOr~`=bsc^B$ zPLDs13K>J7@qU*9} zyA(7Hl{9CiI%m|lha1C`I|$?WK;mrpP3dAVEmiz@fkDGPmStXbPEp!ETQ6|USJc4P zqR;s@@-W(e`^feq^zu+*t>B~B3F*>#>5dYSbJaRyGVO}JPN({o=QxgWej zhZEmpKlCjERNJGNzkyhIesFySlk#m_ZTsz&?cEnkXMesO;*&!ae%|nKA2`YgCtVw2 z07YkjE2WlSZ4ck0^8N`ZaJd6~XTTacBBBIs{9VXr20@vS!YmFZZc4O+A`Sr(m%)aS zTyDFc|A{v-T#dkF?O}}mp2nrEKn8YGyEp|KE~Vfqkw#ZWK*eSrzqQk1FWhP7Cs-&* z;5t;XN$+1XqR>sNqHyBJ3F#$@^$4Nts~+1KJy0|@X%w|`Q0(8iH<+j zJ~j)%(VkTq>rtwe|Ji}nY;I2ViOLH4xW%$x)JyD*lYVv=M^gaW^a!SX@|2o8iq#f) z`vcRYv$UtmJM1M5g3!27U`}rtW2i;)4y2W_ZTDfAeQlcyo}~MPh^xu0JA6`)LuV5hC8T9 zA^yh#Q#xiD|6wcOK-$`PH>pkf{{nvS0x>+AoRthLKd2vUjyEs;yX})RndtGDibdHs4@&vbR7SP+pF=u8IO;52RJ!DSiox_8xNyn;ejOTugo%KenUoYR!@j z7Q5Y`7*iXCIK@Govgw`)-1+R@Bf!233@2jm!ex+T2})VX;Ctfwsn57XHb3NzJk8{X zGA}>Tk;hXneCjeU(%k0^2my>qaB8v4B%1?8vV1EH=eTsD9C|CKRTyoi47xAD6=Y<i!!Y1ZL=a`*n3nQC&xa4#OeL%=SRpo5@i<_5Q!{c zV>o+!<88;dqb)A?29pd|*+n(h zf!`5PMPfpgQDUVHYDm4!gBpb!5YZ9l>u)egBveIGpyHL~y?)EX#qjH*X7ocb$j(Id+Am4FTn%uH?|COuCZ5sI=DcnS&Or1v*n$r~ z-M3J2Ou_6CH+sZ_>#U6f9)QiVeM|^rE&f(-3`*)|1;8=2QNK1wCtX20t#G*mX=5n$zOeULe)bg{UgbL&ZD z(iK2`tR74Z}y79_~)3-02@a~vubBkbsc$le5fvPg#BBo>)- zcO-0*#iz(F@Rz6u4c9C8g2WS+Sx_*edUjsuuTta*Q`evr5N+R95Lx@CIWR^8xJK%8 zRE6%XC-*(Peqd&LH9#ugtR_BgEq{QQ4VJy{^PwT0ngIijkhnubGyS+t;~SV%Z1@8bxNkVe_CQ$h1s6d7das+dDpL z0c|RfnW+_g72vLUfF1iX)*RFV9-HwG%;+%~*U6U}uc@q840@e*N%jqfiru|VWT=uN zXxh$a5RP+)9BmI=nT37U%u*VV;N2kDP%(I86b-zQDWieEK5%Z@Sl%8s$Jy1#bE;4; zP(=XVGe^yoas0sm-=MYuGz? zbP2`nZ~dD=@m&FkLwo%3XdT~MF47bJH8tkzXNtd#Z5V|VUVC`;$oA8(Bv5^zh+;JN z68b5xcmosNzh&vGqipmS2hAr&^evpgUa!1|%U|JbNg2t4SKaoQ&e%CP2FJac^LUUmVA8M=;QE2Ygt@lj*`OR(CxLRI~kdLAd@Mp6s)bHUZQ>c+J>`+)7|?kz7EEyPba@p~~^Vh$T`2B<@DZ z(uKxA;mw{7^)WZW8mp+9lzC!x%{&ybbH0-dDQ)lD;p9?% zsa6wJ0cSLVRQ+w)&PeIPHnUHnPenZrIc9wKP$IvL10dQb`r+@*ASaB57;;_={c7Qn zq>sE2ug3?QX5}8)g}v7HBmFnXhEjmjqC==uY~xhPvJY@oGACQn^j)!0_=)PL(=+QwT3B;J>0coB{Fw(kq{j#C zRWx(Ygl5fbz&i10AEDl7ZPQ&4YK!>V+-2iaW65mRdGrR;97X?M?f$|3c7*gVQTY}T z4X?5e%TVg6cotI6_*rH$%OOuFY&it33(q#uAFj!pm?eDhT>aA+^V*^i|28I5$#DD9 z-5wYdjEefpvEuDS;)@5-gB=+pgWBzz-p}4k+yz*bSJdt+e+Ie_v*nco1)HTYkjz&R!<_S$@_Vg7z`4NOhI>_+)BjEChkp z4n57H^PkRfS>~G411l{@OT*Cb1yujxEH;J|;78Kik#D(}x^&S+u6_bE^L*_`z9;y1 z%Ra!wL&(>+(?Jl+S3hD^Z|V4al1~Z5R0A6A`eGXx;k{-Ic(!L9hYV4aX6Aa9lgL_& z0WTVC?0wrXWk0bGM?=)NDGz$ai7r%f8vVZmYSf#8-e6KZxl{TG#Xjm4#|dLQJ;Y~+ z!O?Z!KQ_#k0g1yM`7NGHhos53tlLfF2*%$d1=z~``2lGnQU|qe^C`oSU<#*BugOjM za?kN&P>j3(2ZeriAgVJ2%-D}B)8lu+K_V|4&g}0*XIo{diLkl~hS>t4TfT=p`}YHd z(0%}7DYIG$LGQF>vZL9@X(lP7`q&NXMmy*o<`~Rz=VYyqZh3*nXvjHE z;8iWnajn#!gBHasfwYOnTubRNTdxj;$?mre-(Zc1U6;)F@!4-ej#Dx8pHq0Oq8MX7 z4=?&_WwVMq?jshlY8r7-tX8>Pa}EFqU}?#9tiq;j31AxW^T)rh%%lG)*@C*-C=UXz zEGatBdJa$ee!zECqi%@QQh!HX3tp4_2~3goGEE;J2%4_Jmn%UCPND*lfBs-m*IMQ zsxa5GdKPvo*X5!d9kzI4fj3T3u&Rtuwq{YvF~Csriv&e|j0|LHZV>Ba!#WnaD*6)n$V%|;rPhKC z{%B(DfNn%H>vtz8bhg50#RKgSm{kwmtZ*eXn@n#V7J&ybD}1xc=o-R+*DOE$V&8SX z7S_^H7De6#3q1&nE_?7DBlSS}X%%pReT@I5mfH(iIjM7!a- zr7#zf*+cBDn2zKx42o^wq^tSyK)I>bhi_Zhq@7W1SCYN!;63{QhU$}j!))!+*V6HZ zHU6!=^l*8n!12Mp>V7?krrU8;5rs;zXD@S$I)2a8bJO3u>bCmc_O|FfLv4t^%SPt0 znPe$+U)VO#9QSWvuwkN+fr2TnZyzrU-7AqOk=v#s0|nhWumEKJCcz{ZcS}V9s(75z zL42CfiU=><`f-9gMe`WcDf11%3SB`ct7z}62vIJJffLguaxWUH)~d@^5)Ky#))FL4 zW^K0&JM+I{jaAlP=7um72?W%9aX>4K9+m)PFN_6)(_9DPq?5aHEV zS6|kcsw<4`++5;|cFF>v+&HjVzep&?mSq=vSxO4MRejv)%!OdLx4hLBMAn)^U#1?k ztJHP13m3HF$#pCo<(l;vUy){QcnW%0;S)4{_;PxGOR;Y57wvpYB;QoTY^FbD=qJ>3 zx~P;R9JXq4Wd>?DyLRBN_-WrJq3Jay#6EMtc5>4TuQR@V>$>wlV}KBTRc8|mVl^0* z!rU3EREl)gS8gy5@rwzBd5q##%?Oe9^76O_n=)1)8rXlBGvN|51M{$Ba~GGSo_|%K zuy}eoSark4T0tAm1fLyhU+@eg9pFl_{7}U$AU?|J_?^)du2=Y4#Gi{#eO7V&Vm8E& z?;=?)a&H^q3uHZicOhLNiu?z)Wa`c{X@cVo|=&j%!%Z;O>V<#20et~^-g^X-Fy%?^%I>Qb6Q#R{kCk^E4)@L&9 zezZPNnnX<(h)0IFl|lXor@N`Mm8-{`1}CGhVS3q1LFn32jwdNq_U`JlFI2Ld+$EeD z&apiH+2hQL+gtmyJ;66Zhqm`QMx~6*wNGn7O2_DczXvyUL?;lA8{7evkf3DBHiiPt zG9-|V5AEmu;MfIGR!MM6{1)`D{z69OxJYMvX8)C`nR$E`t#_H^(uI9I)qm#cQu^}W zE)+lvEZQbSq-EB8xK6@V%-M&#lIiV>!2Dz?Tp#a7!zVuF&qesclJ>)@ilKqSCaOqN z?y5h$9!f?o4dcz3SV*og6iZisdO)j_PHt^bXJwgAx9fjp`9+OCK}>7IHy|o2mST7O zW=?s%q+G<^pRyM zZM%An4aGIRdaYGQtct0N%Eex#>?Cl9W+tN{W5 z&8$2yNMZm{Z#eL%IqD)*o%$$J{W04dGl9s zT`hY5>4OqDae|>llgmE77yxSavro-#b~llb5*L8_fOpzsWR!&am1vD*)c!SFg){^Z zAGaC(?I|p!C@@fQg9UHLmsGh^1DZlzTJ4H7XgpDE1jVW(b?ij@U=aY8JCASF~M&| z=!cP5n=ry*x>+!mU9;y?E0I80Oz}TqaV9yu-H%uQwz5?iDWR?OH(zJPT0rJq@3bZ8 zU8#*2!`C1_4cS-`b07(SPoK=a`MXg{1vl90D#5mGQ-VuIgy3$Ir#?8RB>A%AjXE)g znM=2$Q|8IZ75bmF1=rP9IqT30)s5Q_+Ft|=3XeW#?{>N2Tf{Xgo2w7Ew9I7q0j0k+HB|=E3l)1HsN@y>6*_dY!cn}vxW=Ljw5}Ih)t2P9V<8W zrWN>&F5TM^VwZS|rDRp?%BdIj1`SI()kI3eX3Mi>FgWl2-R97g{UBHLUVLO!q=3sq zYEbL*os4XKnDivaZqjY&BU9%&3KEYnt^>52GwY*2e%{mswCFLbQN{bZ%&&YR8uMi& zRE4mbxC$nAtj^Uxj#^1Y{~D2Nnmk=WT}`P8dXvKEk}rFCQ#z+gX7-zl`)98XKl%FB z5KD9vVVYnltIUyUH3FN^>_HuX)u~L~OBzPhr=6zH-xzJ&hDZNQ#_896fkTF?L^V%M z@>*_4<#8YGEl?hIPT`#SfB>K4TfUZrc^K)~k%d%P&H7?Z1#&XUyZOuKdKbJjMwbBv zxG(Pqm0Jb+_$qddORe>EFDv~H4~-9#=oa>7Lx<|_&w~BVQITjxZ zH_+LCF2Hhx12?6}@ z(-NkqV;PYh4as}XCd%gu;c0`{cKr=Z--Y-ke;BGk0VC9opQr~$Y2s|zpRjp^vTgr` z(W(IV<&hNHA5ETX+@GA%@NUFZ&*nEXD7u4ZIf}U4EKJAlQwHb@jBSR2d*CB&Bb>T> zG$a}4+jQwI%4i|~mSpCZNbpLx$BfNJeK2M=`yeyppfOo`J%yO}T1LZY=S2Mr$0HLS zoXf$ayR7$Pf6RLyp!hthaM(n#YxFDj>9kwA&v`<51{{5LVxt(hg4^bwI&Kpk5rZoT z-|S-aDdlxKKKwAe{*t+!DEr_9V-Pi9T_R;o=v#RD$N8UKpz)fy^TD4jb|_y^>CNVO zb!NR9+fx=2Vz%e$UpabT90TmN-VF36B?vTEbIGvGbzL&idUid;ZV|>UQO6Lh&;Gql z#cZM<=9j**|2pl8;;Yj1klRAOF3}6T-LE!Jdk$t(MsNMVP(kX)x_TyHWyS|qOyO^P z)=yr>?)75;NGuJHqKJiQWJ?i&(b)meUf0SDI1Z{EOLR5v-_o_{+dT3jwydSqJp{5l}Wip6YqFg904c? zOPeiU@i5U;)GPuZycZ((WmTI-XSy)g4_jrehu*UKwubkM5X%~F$$qGrww?@Wg|+wD zv(0Wll8Xb8Hc)cOAGlUQ` z{eD0d6yc`FLNc4^hT({ssbW@9q4oj{pDT6|k3GTOF;j_YnWk*BD8-=h6;p2{uI=Ww z+bZfWOxnkC8eS_;3|K!e$`~RZ`j~5Y%p9*m&3uK9@W-wAP^sSd-PN1y!Z zSMjKW=Db630U>CoMfb83|C~v$cPz}{VZxNa;-`IxIAV3Sx zm}sLZZO@Jhxzw>=rWj0$q5Ogy0aITZ+bTjAvp0vSeT{g@M;a$|g3Db~_IUPRdm z0lC%sir)2nxZmIV+Qabtn*VYERzB#y4z&wV(q0IV`RoU|K?h`6{Vb$mo94SB1+^2x zQ@w;`J6#kdk$K<-pUCCRj@>SY$TM}<+@|v_AqHW*18zDOw>B=(3U%@T|Itn>t)y+J z9dk=ZP1ZxVv2tR>VfuP!mofS7mY|56Y99Cqkt-o@>H zfLWJl`{Np$q_ufQ)!HkWiDmcpqt8jEcTcBJ?i>Ay5l1$ePY-M3>p0V&j?|Bg_Mc9{ zit%{WT(BYtv^r568`dCVQ0#ent@S8cJ{nGbtmz2;3YMfQlO2Uw3>!`=WZk7-3HnO> z$|q@(2w7^vSWMcj)@C&3HmzKqUx*tYz$`t84_vvzhnvO`9XhE5OjU@+<93haz@rdx zBB~s{RaZ-vSetyX?eJ`@l#s05!d6!}+wx)>^RP4qEwvB%`ir3C^$?IJ7-?ZATTC{g zhDZUGhpVi44#7Ogdg_JlZm7dkh=2DZhGgHpEZ< zvrvL^w5cIZA*#(Q-+Z~#!NZtAeOFk3waytYWY$n!S#JA*bJKSZ>mh%h24VgNsvP^Z z-Cr@*Ke^sPk}&d4XIXa(vGR?lKMT0rhnG*Rel?Zrd=?1QQn_Gh*Arx_AGqb#m&uZQ z_KK-1_L(+-5aDI}ihTG>aJ@&q(E6F)BQs(SaGOq6jAQnPx9d|-`|9eUAM)8Y4>R?$ zfI}N94oJ@HYz*0tITwHFyQe;Ph9bw1Eg`ulXnNhB7c-B~w?}z;uFO~&aM+m3!y#7V zV-}xgDo^Umd(4~5JF(21rg0gO1V!iDfFzmVO3JmA?j3hYMl5dFD$0BccQT~r9}r7* zwF}eo&7wJ590+8SYHIiN0?msa92Q zV8$c;1ja~LkvM-me^~Xz_Us~Q8`cfGJIHzeX*7UJ-INyQ&B%U{F1SNrO!eXCiRPx4 ze{F8y{l~jxssff(2OUt2Ao&KE3Ektej{uZXgXKhQ&n^qOM+hQh>E{z>k`J`wQ3B>g3Y~oh(=}UV4dLhFU6s?}>zVDo z@+~84E)x|pB0Uv~4Ii8d z8}BM0AW*d=8V^Og+sr~k(~ptQjQBjLBwz3F1jFb9{we}FvA+JRb*^YdANEy@u+LgkCEHSwMo5OEq1b*2k2X}$?4jWjPQY7N3+UGiJ=MWoby?wC$vNCW zFQ7Eh6K-atnpFY0lDDsrf7~tosxR#NzRFV=BrmD1BO81=juf9gsaOx7U%=s8*oOmD z;n}fQy5so7pN5N%2Ifiz@<(SXajwKVy-;`*M#^tH+lev5Ypxw&38lkr714wKI97u0 zaUeiju>sAfuEM5xe5!Db9dt{fFCYEND!hIb#0zBqSUe0sKp#brT$09{y&BI^IUmm_ ze^-xhHW$R_IrO)~;Xm6f37bJ$15VHs&$58iD{B}$>*V^bnMajAMTK*ETUTMl81R0$ zHd@~_AA&7{lM5oYX~@w9H|O@9uH5vk^g9jk5l9n44t^S5&sz+LpIFe6ovI;R9E5x> zPvoa0>*`#-)`%HS5tpY@Kl8hr!60#xz!s+B2@ZS^ zT~!*?npJ16^pRru;9Dav-tV~)=PdQ$DfPn0#Q~X1uAJA{zj6mCI$MmTNzXR-SE{lS z^cK1OGd5*~anGEq-#z3wsU6+e1s`n4b6}fRGE3{+Rqi!BZel6ROYL-E0)hT?Eq_v; z?C^o=wctoS`n6>#c`J3IsE;6TsS=+j<370oOf6f76|%)kd@~#c_Ro@PD`6-ihL_I# zfdxQkaFC2uEEnQ}RDY#Le>@j&ZcngX%qd;Qg9zB?#j+dtKFJ`~P`^?xf$h~f0dvO` z79Va?-+^a`!qK{A(M0AhOpULtmT?7yWk zk(7Q$KNx9L&vt5!Iy}Y)Q|q?w`wG9rHXTYG{StLXbI!VOyaQr_<9S(S%R!2&dO_h0 zpS~#bj+i@%a0qD`Vf7NUAo1h;$akYv=QQx!wXXEMX=UXN`}Pxmh4NvX)fzS+#e&t^hzCo{u`G>r$?)1y!mUp#h28!F<>&A6Xb^)#B7E%yoh zeb|*eP_*SdQDoI?%$eM*6a7;$b>@-e;6s$?sikb{dcp^Eo@lZ zb$qF7*6J*SFdL1b53$A?KihW!9usAs;Um47zJo|`=u$=F2<1LXiAMo${BTR> zh2ut%nPXKbMRJeJ(>O*}4$Rx8s{5wC9mn=_*=GY=j`Ft5R9pM`BX)ZqNP8BBGXsBf z=0iC)ol?@u)(fX_#z4l88=Y8t3(rYUj$}h3ifPtI%CO290;d= zM#P_##SiA^WHB)9fY`un*{nbzvt>C$dBe7;Ptm5dw8V{LWAjYY_o0m1Pyk#{U#6vU znFvAmHdLMZsEsyh2SmHQkMb9LM-EV4Z2^dO8#@hi@ugMOh( zUZ?RS>}oh^zq_IODivwumt-ClKy}B$4a62j-X5n>WS(?vs%<2_Td$%XX|VtFgp?k1 zRQ;_E2k7-R>%~xPoelWL1m{>zqjj`-=rD>am9t~A*aHpQ@U{m2yVB0HN1qiWTavf^ zr|>3OwdAAx>f?w-G!rY00UKOK@xCstkYrM_n!e47f`{AvPJaUIK7(Xv&*EE71LiL4pb+l`iF}|^CWrv45bo*|$X`a$OQ+*hf0Sm+E?D;XR&QH`gtGZnC%<$5 zO$G{v{h3B7O?CMSW#zT4=!fs3Dmqb0;^&m-vcy`YO>dCl>*gaf##B6!RXPzJWODf0 zTk>Y*rSRPz7bl_L8G>mECJc4;df7CuHHT*A+@gS)RPGuBmu|MXhwW}%?p*D*N_ojs zL7^|>!Ln zsyIL59Tdq9XCE-hSZQH;vPI~NdVK6qHz1##lF|h=1O$wF4lyIlvBTrUZy4eFKCL=t zlTIRDf&imK>X#-KhP!$dHd(*P?ql!ol=N-gNVF}v273B)dFx&(F`B1Y9*P@=XxF-M zgr&FBf3vu`{J>70Hg4bxDSNJ|-`?^(Tb`FV=!)?fQ8^Egg# z`@K$_e?$yNh49<8KgcP$X*Kili4KVz)c!v_sEj9RjAOurg`$>q81-CY#6doQ_GPg| z0X%!eT!Lm*vA7OfSBFL{ZxKDwC|%kG{MOIXG@&j-kGl)kHMstb-W}ryoJu|4N=)|9 zms|e{I*fblPM{Cqfwb*Mn{oq;VlSLjWYcl(`42Z8x-$E`+4eYe79Ifg3pGcv)5rxwnD|NB-ik`kZrsoy>?>Aqg(S`n=~ z;=wlixwDo4Zsp-jh30MxPXFEJ!Il=ZF4gWi8(Md1t8E~M$SZSf)C*`wz&``if6}tv zN*xH?)5f%gEUtB=N&`e_8zy18uL9Zr4M;993*$~K#z!dlBD(QGGhTH9Km^;5+BC|N zow$wzfhoNDS61?lms1`CH+EDJ{z6|J%|49Lv|4yLkvrDFKB{BKe(F23ju1#o4}767 zvn@cgj20?QL%aGvEJ^8MD48rC4^1X3gaeb2K0j32M`rdOoeNni%w65Zj)Ra92J1Kd zOIz)8wYa`Th&O*Lay{z*zVS%pcGKtF^RSsU2eWm@oz985m6$zjT;swnd)MiH zcfB~2JOmG*)w^9lBr#c%cR;=D6r$X*_e1PIOoE1`0Y+;Yx8WkMA`^o(2 z)~`~#WM8QQ;&QEvLV~vvxA^P@1#kVpmzvk!ce(uzQbwl2zmO`X1m#?fAQ^SS`8VEL zy`8V^njYT+OZchpA2hr!Vm1X3EIpYf>24F%$o4!1u|$;i2YFY)O`80{x!aO(u0OoT z@A-|uZW_wk;D7GG`Lu62)0#RBHz~$bu_tobH)-l%=&3f4z zakey0c5=p;7BYjoA@`LZSFFOT`n*bX26(pZ_V8xN35{o-9W?Df1|wm=(!w znbxD-Yy-g^))5s3p%oTD#YaR}pLWFM+NjXt1TXYD?ssbe+cR(z-l@g_rv}h-e($gZ z{jCS+jZ`pbsLBKQ91f_JV^Gnxzi@jDdt43Ec z(1U5<0sfT?;-jrtEcYq1uEeh`{~CP2$d?7xI%YuR&pMEAh5f5BAMqml(UKj)@ZwK! z516{62(fr&sW^d~)v-~Iu&nm%J5*atAd4H&YreAZiGRyiG(J@303A-sXKNyjDKN5u zKq{=pO9VIEN#(X%82JK>j}xb%a`6$!nFC~{qv1IF>s^PU$J0}87RHIgm*4M6G5bJO zML+sy5K5PqG_zL1_Q0JYTa1DiGpvP0;k{zldW$s&WW_Yy*oWNKBS<(F5B_@{26yyn+g*^GrDj#A~F-gW~=8UT6` zpb4cj;7p%qEzHF+^wS$PxVTQr}gF2-C4M^=Q;oJotD%AU4?L3}A0uC|l_ z64uJ(a3#a3V(*eyS9iHc(BtW$gap@i6ou39{bULD?_V!v>eJ6XKUo1RW3)+f!`z5z z$%EdlEaCEvWLyxf3X;z5Z(%y?{`T7^J*7vkz5Bn?VGNTsJXr(xI)=1wXsuwrF)bIj zmRuc3DGaxB)&Hss_Uvo|Lm}5zsYo1quqDagfkNqCR`KH@( zURATmdA+o@j1^rwTkPjv1nfj>2*SO;{a7ogGt(Un^ZEt%3UHYLDc$_XeNVX6#lI5g zkx{gUJAj1(vB_5;unZ3j`fB$|N)ocy{m?p)vyE*{b4+I<7;HXrYWA2sJe97=|ta`TV^Of~* zc-$-ha5t?|M8`MXUw~oJ$@}78>&g%5Y{X*mlrXmVo1AqMKq$<=rDU`*H&Xx$eLjbp z{mJg@5Li>wUV&mO)I0~+Nx^|T%oIFW_de!2pHyq3M@+K4s@p0<7BxoZWDC-jz_y>G z%c7jDU2BC?Ysh)xUHa<}zI-h_=7=C^!ep#T%jPTT=wJehu~hZXNc|?*5L;byLbj?1QE1{yB7|O^^OwJ@X#Z`f4ET3^ZTWHEYkzEvo9Na##?i|jD5{kSIg+8&-O-RNY3VkXYpf!G--T@q4eb<*Jf##DhQxqu)7-& z69-ecR~l25cuzi>sv{8;{5y5*cwRBwyj=M(`S^EX56$nXu5_;a)Q1F7C$E_bxF=rq z>#2~C|A6}%kSthzdTBvSmxfp3&K+ zUi%?$Er^i(A}(zxGT`*KDn#%f{i#durvV$$_%Cqi;P4oJm(U;sF8&(!B~>1&l7}(> z&YVpg(AqAR`KG+xO3?yt8uIc{YO@kRg8G@$WZa2c18_+b@PS^h;NmClW}}^=eD;#? zy=Id*^xe_3n3MV<@Bn1&ENxx2DbI#LzjS3aV4>L&sCNgzpCkbYiB{Q%{5S3$%QyJM z#MpcCfjxcxPBS%yatf+L3Xs*dZDNkxF~Hujas^VcS;Tj#y+5})Ups}$Y&VgB9UaNB z_`BwCdM_3?36oz}P*Sp)Ud$CFEODvyH$$2yRj(TVvic6?(VysS05^r{h@q74wYi-In%PQ3LqVZ;qr;te3$G3cd zf2_)z*E+0Ig5A}{@kx~^T{#tKE$Dm9M&t^!GyHITCz_jzJ>cu%_p-lsxrx@%MG~aZ zrcGuRqLY_6c>4*3_lU`p6;y2sKfQnE?+`MZcJEns1z5#a`^hF+ui^7O7l z&*=_7=`fGlLiDzg3s8LSMoFNC-Pn}3RS2c~L7f#Z0j$qo-}uqo=9kl*UNsgp*gH+% zIPrKNwGUR`I=V#n%&OfFlLfTiRevB&uLoDC^v~Yqc%H=gP%e4-Uydh1vl2^P=lvuI zGM_Ua!wy_(zEomgdxZBUR9_F<$VRaX9D$bedHX?rfEjBQ6pjL*$x-CmkFmA0z$t%> zlJUQH4moLhv=_cg`zyWuF43{)k&pZijqM1>`pA#0*_Y?Rp}?)`=iOv`u@FH&y#GzX zm;E~g1e3Q$*v5XWumpC1(e3KYhQjVRtR4?_`z~Sy#r03$A!m!W{dnci^)8$f{$LCx zr$XH^(RcVh`{*O-H^#7;M()0@m24vXIo7L$VmFdG{15BTsxgyjR<7&6;7+!8Ph{7F zz1s)VJC3pP3%&;ltOJ-#)grUr(JVTBGLZiRTH74PU z{vHcJA4nWrU9&GOi>I%>0s1og5?i9}X6SxnvuB4N5E5+NiRiH-E=5p>ePSOUCzz-T zYX8e657N97^Y&vPiXM1`ARuly*8bE8-0UUk>R>G}w({Bfef#mbPy)*??rsI!+B_0c(&`8DeZC=$ncvfpY12NQL@CP191+Z z_Xf%BCt%Ic`F$3p3wa}E24}RA&bGxJ!n*^6t}ArOivvx=O$siy4Mm-Hu7XDG^>yc} zoj`FvhBJZrPAueWbMt)<4S8npfQgpD((?TbYs=^mM7kHj3Rk=TQwE{BH`xBPsq!1C zNg-P7pm!@KDfOU~so73~Tazr~x9_a36~k zODCr$ye<67_6jgP~&UA+C$ps2~C@S>rb5y3==ig$3! zV>8THC^EkxdFu_G@%UiW>2%7*7?!pPn4D2wXC6g1KUR2RI{fm?%tmocIpEy*M*f7i zkA#1JMO3qKVp9gTtIofxPA^HP*-Y;D4N~Kv+KJ}KZqTOWU$HMtgund&(#%T={nPSE zIkS279tpb_dKQFWRGaqFlCMY|S>bv0oZ*k(R)@!j+>suvt9mDIkJyl=N$^P8&SRhBtDnAxJ4vGuRKH~|(&On)F z^#02QnC!;C8^>SUAgcDAH0U&MOLfV=x5MVoSEfXDI%hg;l!Y6dO@AZY60W*mA*|8& z;W!Wq#roQaOpDUrlR12CJzMMZ-s$bx#Kb=e^nV|l;U$SM52szw-OOQ|ft=Kk+<_bJdg@V`$h6A-cf?{^^a%Yc~6|9$8#0eI#AeIBd)|6l#j zYWzPf6QLfE|Nr*{HSFj7S;*E@KKbn3Au=p-S}@iT&#hslKizO=i@=Bf{eRf|^LQxV z?++Xwl~l5nqU=QpSt^lrLS-wHU3N*bj_m7IqP+NR`y0XNcWZFiw$0g@6m!E=x^?Tqr9R0tyszztk!Y!I?mUjn4_Hh?4}{O%WYKIX@j`7tgoQ7(>;~Ab&xZR;^S|FZgm}Ps(15c`(Km^1{mNqx(a$q2% z6D#jboQRCF%H3vHigEMeC;Vz_er^c^yg1hUh^mT~aJ;}|zIoydKE`QLYU-|4X*#^y z-D~Q*8Y0T~_pPA+n|wbTh>o&ti-EhF7~}^x_?*mCQ2+YJ5xit*UJ#L009)K44y*P= z+@@l8fS^*5RG-vS`V$wXYAY*H)neuS+>^I)&4hQm-%)u*oeY8ECe?K$_?2RKpgx?{g(?sFo#Ao4)OvJK!Uz4J1YtsKnr8&;3Be3@_d?OC zZiZ6C^n}TCp|{=FYskp(V(8xeW;!R@bKiofMM>CQm31uk+|kg9#nkIH2)wkJ{^BT* z#}o=96cXj_$;Wi)&bzx7=sHMh!h{0-b}#4Oh)SLu**3}xv`B&&RpMWxoW%bpGU>IJ z?^tsx6f}6NP!T4Ps;pdOYT!0Sk=rF#BkZuK$dBY#Zu(TUdlO&I%cXu4pI+n`hPX<2 zMDEWj7*a!ur%ASYt6WxlDL(YBvnH3oDkY0)wiGl2Y$L$haYs8c(*hQDzGzTN1xAb7 zI6n4;m|ea@#PxkN&k@48{1dZIQUBKzv#Hd)r_ZKCdodKf44AG^dGV!IxeQ8NtmaLD zNZMgSGdM#OM*Mspp^?w5=czEjA@77yrHT@fHb~MGb(sMUF+Ftzqf3W}(iB$TQ8gTQ zN3&m2h5xZ?`zWx_?eB0b^xNESrd?~^OGB3H+3#LoZ=>%3EGj3z0u_THAE2i>VvpZVH*dmh6zR3^_yGNeqfFlzlEB0GSpetVyzZkbipEU#w$ zJ;Wa!xgj&P&Yeq?_-x?F$|Ey9vs?IbTGg933|eff{a3XKg^urJvbWqhw@u1-!>4ZB zIQ-n%`^S(!RS$&zy|{^pz)PWb+bI1~t@c)|&8P8-tZ0tC=ILFuDxnqW!~Gf~gYH3G zj3i8<9f7F+wy7)4do!gILr1%@WxalKHGd~H2|Dv|; zCN`c}6&?^^Q~Z%*ih4ehg`Ad~S~Mik3cqUZsO)D4jNVqGeJ!W#U^hM~Ooc(1Gj4do zC+tRX7rIi7zO1mE5#(6L0A8V>Ifq578z-@t573Sdys_K3Ju$*H)R?1Pz)hHSs?`zm z(lm1WI(VGPn!7<@<@YJ~gxybZ*u7!D%~Dv7VQiGWXyP(J$JE=Ghv(1(2w`wl0V~*8l0v)1iABJJ5<4}Os5rT}qaLX;tbvU)ma5hnxqScctFh+1{ z$M|Y1o^LlpfK^acE<6$f3${l%BsK*gYoERd$iMcrb>bg^7exO93F6?gY;^y0F&??- z64qn2Z!g3Vmy9RCg5fa;(jR#8#-<4&ucRvj3241wfSXwMnnBpmU0TDm1iX@W;3zci zwj2~!Qi5XylgAZcy3Mj`(Z%^`Wn+V=I=gfj#frSb>G%O-M-njUf`>Zney5=A ziA5bFI4O}EypDfm8hSesL&*RXC2V87dhuR3WfH4-4;nrzW(a1w2iO#dYtl7dbhQ{E zL%rv(?~RrQk9RtTye3!fdo;g3=m;;U$JI`=w4$>D#sZsBUorsocS$9m%0QVf=U&o$ z1X-nsQteJBsM$7C#%Z-KiDM6{5e|;~Gq2HNnlNBR?k^qN4=sPi|I^ zIRg}A9uRUYCj|BEXJ~Ep3mEk8i!=leyiQ{)lmn7sk^=556Oke&iVj~?4`DGC>O zUr*S-Fg;i#bqQZrA67KIQw&*kC_&r_+jA+dwm93M@B`P9yDEa3uA z=!bMGpEPA<@_?A#2dPR8hvuCKcZzR>?P4fFHF4ZlD=5uabpu?i=y5TaGJq_2Bi3fN zyOW3oFO}F8l^}^xDjeXyTsaDn*xL@_6LUzczivK|rnw_6}Z-v2>}2+q?1ZAd8@fv5@uGJ;@o z)olieTI;>&Kuk}GoPtr}4XfQ0H$(Mwb;tj(@A2m<8~?Z-6eUUE#J!WJeXVLG`I~fw zeEH0QTcn`NH>5SGR$1lq;GOH0@R^a_ZX`3-T(tt5@Am@X2h=X8-hV|FdrhA$PaH$j z-3S9jH3-UPziek8dXLz)s~R?l2TN+wHqZtwh5c#xVkwQA3cFo=6c(RW1#y4I!1T;Y zmS$p-1E~icoOdoayn3l;FJ_f89-b#}A8N5p0O(+aAl=Q~s>K*VcYC^fOAOU0vN+5& zBq`DzNI6DVN0zx919peGCgaVA@@s9?7H`YslFBD&gg`WlIZTML6Cl_xx?-U#xkZ}rjK!&ci~%}$^Tj_)OI%DV^aUaqe|k(t`_#`2 z!?2B~`6;l?#-%9xWY+4pu)aWuxm;#S+->IY)V_7t3?L_{LX{bED5L6-vb@b-Evvdb zEwQ43gWKd*Gu-*yh;Ox7nQtNsBsGb>&G@7H(@)eLrzWdn63Yy%>@mBUIOfqvFI0@J zG3<9JbmXkqelz(KzSaTH3Qlo=A;>F`)y!DZ z-N@n>fw^_C`(Z;<*$UKop<+(03I#`spu4}BjrGuWFsp&Qn&<_`%DzEgW7+UT{=uyz za~hA)QLuu5#0;Yb^)k92=LN!Bz2#@>)o+&~6;9Qjy-WaO64R>MN-04+j-Se5K@R=B zE&R~*AYyW~jex?<4v_@Rjvn)Mz^;83q%eI=F z{AI#hfi97MQVG;P^nYS$_N^ynYD`^;HC5+VNft3E$@?AARBbP<`OucwJ)+ zWEW}>Y-~4Zk@Lm}ubP-pHttAT_-q>C`i1W20N^0^uuZh6oR4jqB%KwFXxTMFS8~`u zsk`&Fp7gBr6fkLkYFG`|_N;@c1YI_&zTpT_r4rDurGAve7LbRH0_fMqM-J|9nuVdl zS*AAj@ep;&;BFsZLXt5ul9>44qzVACS^uSa5|7?GMqwO^p#?MMxX@gB`g%T4#3Wb4 z@~2|IQAFGQAyS7ZK_EG(A^^dh%c*VUotl1!EkuqS*iH#vrRiF%+aZ*XAv^Dft27v; z4UG3|EljIXXo(Futy{zWWFr*3KETW%?AHquA-Y3Ot*w9~;{<_4_0(e4W65yj_C>-z z%fkN>9I$S)_syE;fcbJKVz;zp1%}tCuao%OL?D-k%>MwIR)w%-puZj&5S=L7zxdOy zl6u)kO5yT%v2Qy24l4!dP4R>6Rxs4%$W5RfW&*m-+s=7d8`) zr*y^UTo92r*bh-59IZ~4XIj?xoE$AOk{_24-TIpT4YB>lzle&cpnr(ALRjIUfW5n3 zzwC6tz{UoxNeurIFe_V>Yb#v)U+WIX{U0gQOiy)SM5;tDtZPVGsAMTLw0`#XHwkQA zTB@~FwN$e~KeOPv#jEcs{dqve*d`O3#J^;#5RUelBIc?W>w!&W__I;!zBhLMxBfXktuU1W4VA>X_(kpOOIvrI#wasFt|{LhJ#Tajq#;8%Iy=qnh? zkgem8Mgx=6p@b)5xpE+*h1y2`;|R2Px0hKr^xx3iyFi5hwmgZ4(cq5l$fM!v%!<@S zl6?MPBAUz+Fek#5h1h7bb?Xz2*c@`qsu~U!Xx2>m5HK>mtc;N%_}AdRLRR$z0)3f9 z%lkUo4UV*?+ScD;4-9NrQ5_}g=|1qU<}%k~XR9I^MMmHfl)Z2BF$f%aj3?qXf~t-; z6o7y7zobw~Zs8foBnn1`y2Nses97c}sR%6pO3OEF2`JXvouvWlungH+k4~}jrv}Fh6fBPsCv7J&L*aJt( zHE+Dht0p?`)X-XWw8Lf&l8d0zmvU=cnBM;&SyTZK>hZUG3!O2X8+S5kC-fT<_bC%d8)2Z1&lBWo5n3WI{0NzZ;in* z)A{)y3zv8daS{5bHd^*>hHbS3(ov{%50l@>NWx(PF5%UZ6LCSyO<%ySzzh+QhM+N? zb&MpS8(14p!}d57Mm8`xa?GW|Vm`=|w(0#n{Y9#1GJ-ij*Z^mm1#Em{IoLdS4QyF< zWCbEDKZ z!tF<1i97MKvAsFuUi##@gp75o_8S2W85_3Ka?^EvU+hN1PIa}^%X}7pB|gWV_R(7A zRO!c8+A)&6M;CM+qrvq`KR~aS^)+B%&w*pBQ{mIpKMe3VG>@8A)OaN+L((8wa_o5I zwVADpO2&*Cu>B&G<$nNMZOsX{wcl!`ItINsS9qhI`Qw92Yi(-Dbm-d(v#|CP%-OYU zXSAc!TK?=ilfB5Ldv6_TlalXU;f7v&15T5F-Vceb9gVwQv6~tUiT|P&u0K>P_Ijwf z_l+;n>Bbtej4JG%-8q8MZ8@1Rk=Z{o8%y_Fy4sfjelF4N#W|RTTh!z5nmYEzG4_Hi zRf|}2cc}`-%dJr}N5lU)F8uC$2gl1!xBRq3OlALMGqr;vQD)Wfw-_QOu0?x@E zFUgM;120L5UU}wQ>2wL|;x9ia3ZhOPvpv>F^iDtQa%T&jwLiaHpK|Wh$AIumf$8_! zG3%baVM^IY=ZQ-V4Q;pZCY{TqwZ|mH6GNRs$xi`oyz-6g6Aj1evvKb0ha24lGpZ4p zIXRtd`lTuT&+CJA^BvheH{R%<>CR<~uir|1Du#BM6nyf#W=^wMU7Tt0^G_>2G{J|1 zb0g-h#5w8G2o04C0fh}t;$=B8Bg5#8shQSuL(-ABmGpmI!DT;d{d-Zmbfb=kDup^) z|4~6U#y2x`zcnsUL5tIK+^V$!JDWt6G2-kQs>Y^i>xG+~uvHfQ!D;l#f22btleKc$ zvO>^sZB-{(C{1y@h+lZWKP9GWD|O;DKHQs~C?E0?UZKuuXvFpevv)QDe(7jf5DkV( zGnb{k75-`K-L2Ese7ah%aA?>6C$63v8WuE@=g+vAJ$@RQoxyS8!lFxQ>D#?2VgaGL z%)&wEa|Ovssc-j*>EhGBLy>ImeVFw3T$DABnL6hwsaKcB?{!=3*t^`3_*vPW&MfB| z4|{r>LEQ(qRfwA?=i|Xe$_US+o5cPn6A`B+C2zV*&)N)?jh(#1qw!*$iN3M5Jgc~6 z^JMbFT=Sds&U0?0>;^GO;_5i>n|JpWe$iu@N2lMP2_Wv@H;ww;aA5Ptt;`Wl8|7(6 zFpqaP-7V;Oy*Cx+7;|`Xe-Gz8^u+>`!dqZlS$V&~r`QNSHF+gOCH&-3U8TN+Wj2dy ziN9Syqmuq_44$MPcFXPRFvg734!3AigWaW}@EhqyD9tmU9L{>lACv~bn!9)0&i}w9_O$$a!C!S!o+|BSMo&m+zn>@tF`gG64EUa4 zWNGidPb>KxDXfy1Zxjd?`f%`j5aq01N8f6BgMFmV^Mekrb!-;p=+)scwty9Gh=M$E z8ujP+H(Yf8#>?Ke-yu4O;kJs6D}n!*ZTGCCxFbV@PfA5yx>Z;tvUe8MkbNLggRL!lt!Z3M1x-gPxOAcUnszt7Pd0A& zok?NezZ9tK%e9H2TRz^{MIVI|4Atc46)8Zi)lcel5pT9YoIqpqA1zNM|yT5_cocQ`Bp zB!PI?F_Sk*p47QP2>lsZ73TSmTglh>WWuW-sc>}t`&cWs==E~Un;wWM_!aKvK@XAa zXoU4VUA3nV5zalq9b1vKI*u*8aw-1szVWMw?KY^r!lmOKv}C@slhlyMZFJwEc(M4C z#s&-TD`L)$h9B9Z?6d_};>L0hHY4uNt|#jHT^%huox_u#ewah_%-cnL=S!}nYz}M# zhX~EJWzVYB@uDj}==qrJxx#y6#EXJ4xXGI>+1F^Bacg}T$l%AzrDDS0&e)iLVP_4} z9jtZ6qc}omD>lA||CT;=EKgec==l>zV$bn2P%R&8$=RwOztgHvfvih?9UQty1=;HN zfzkz!+h)tF`+Bmj7vt;p=LUL4W|Pgzs%-yF*?f@t!iB$txDK(A`LT4Z;e)z8HgI8T ztT4J=g@1k!K<`9Zi@8IchQGtUr9UTgUoHU5_6ehsC)?^oVg@@ zRA({uR8{X<*N1oZv*TARpy%>82j~P>SMA^2xI>$chw#5+W3G+=`BM1Mx^3iyNTc(w zBOx1H%h<9o;>D9MW2+ucd>%M-SnMyTZ$yLByI2ac<`wjKs!-p_W!@vC@Uz*~61edhTe9QXX{_=|6Y3(WAtSDcq$D}JyYo87NU_81novr)Z7oP5pLeXR31gQ)B% zdED_=!R2eG2hRxZWqyzmQAY=dDZ9GuMQ{6L9+I;$Z*?#|P)Frmz{qn49s6xza-~b% zv_DuS>F<;#?6Wmg{HNZ%f(N2gj3rh-Tzmg*jqM@Uu&=?G13e<(k9JOJoM~^ku{N?^ zQ*K(C2eXT1T>!3iMjkGl!p^j}?hz`-NbyQhoN!s&1ysYU6l)Q{tVbh#{wq#u~P} zk!2*cjH!F*QoQL`Y5u*T^MV(OpPqOF@#;4T26O7}Mo=gIad+9X0%ZpAC$VeO@a7nyu|1h0~v1Tb`f{&r=Z@M2k`Ek=# z!g_?q=M0;iATgZzcOFQNiT~5d=ib_!{#0nAuDY+kL4}oLYbIgyku( zCdBqP|0(@LCxhst#uZ_?b0SIEVi5u#8V~s?cQXB-_zi>nHbScRe(l^plCXa7&!+s) z69s&mm6g(A_80ffP3dPnq%5nzf}9&ufi3hlP5dAoSs64JjP-E*Cz1pQZ#w*&%Rqf8 zzSjB!OW@(> zpd1c&GITTQlT5?+HAXg05sw71>x&+@T{&#O&^dnfN&yFEAd6>vNjE5n&U|;o4Xm1f z7B9-qW8bv@KR|Z+%zw}l7B=n^b-UkrNyzuRi|=km>${vjEPJJOTbpW=`pSv;3%)ly zf^5d7^)bz2@7}k*e%T+~{?=jhPw#ijl_~Dn(Nrc=DQyuN^RD4UGwreUzUru9)PQaD zwJ9+D(6L~GeB!MS{!)Dj>TEXf z?cd9p9P_OgsUIuv9SuU5?IQAVESFxUV0Yq0bLg3fW*;K89*UAMgY|D_Lt}?yU^%=0 z)V^t*^Rf{`l{)tLIe2OjmFAcPC|iMV9|#YJ)MS|L*wjlc{iHN$$TV|NH#(|L?E=8^-_c zIK}ZFS^sx`*R%h1>;HT7|2;D8AHK6JcQfL>!#{_+!ENJPRXR@5Akgdk#(G@G1c87% z5SM}eEmIJPV*vy@_TmT-I}hrv6-5FkaTk5ldq9}uMIhMWIgob(_$q1{1PTNyUadHR zKx&yFkbrMav&mnN_2Gv`dbdFPe}6u-m81aQ9QD_AN~8w=HR+`1o)C8z~J6( z4*cN*$HXP?{Gy)%{v+tGAPkvUo4S|0+P<@~80^}|$O(T9vKjgq{{HOo*NtTNVR5I! zipMt&JsFM?XSvy$$_u`iF18O!TmO3D&#vZ)y5Pu0yZV0l$kwLuulocztJ)5v6=M(! z{se}vZ9v!6r0)>&hGA6;bc zCmPXR7)u5seV7$$o?Y7%H7taz)gl=Ro7|@;5QsR^Z@>@Yb#prZYS$ncFGkNicSrhV zE6-_%wobCn#$x8<)Ln-aj?(?rm2gZZ2@_R$Z4u-07AMAN?U?HEZRcjL1iI7ZUiwnP z22pO-s#a*2{Buk`4&)$R%gE={dY{-vu7>yHSI|H2@U#;HJaHfpYEc?Fc9XP3+};a9 z8Q+`gg-C?%>0McLTpov)=H;&z+9lsp$Mcggzm{rjoA)O3jKwb)a1uxJr%uPaz_x1# zy#dP8I*NGx&)~X3Pe7mW>mVdhEs5I?M;&$<3RYnK`Q`18E;C$>q`4FR(og=l2wroL zZ4VZOX{LAi*8QAW2A3hY>enCh5Q z8Nu}>GSu(`q2AzcT?eO^4;8g66!zO6lUCq1$h{{OS6r>Ww$7NgOT5nU&H331%~G(~ zIjQ^mB9Sx$q}@&Ae>h#T!u_e!nS0J<$Tt5^FiJbZ5WTg$!e|u>+Ov(O)j`EKqZYFG z&niS-KIpWwTC*wns^JYrg?)W}uJK|cw1rt|5dhLis~kz|?GL>JFWfEy)dNm&nquAh zTrN8ase5(bWcul$XC-LMQBv>NscnM=r>07aBPAl@RTll2{^yNDTq?aiY8P)B_WtPw z99`w_Cr0$7)5Q^$ahP0@y80qfsWE01Yk4=E{FNsi7Zt3m8GA1dx~s-M{Rdh$yG_MQ zYT6y0!>6`AC(T}d4wYGa2Dz$<6o~L)n2Vr}NPtj440psC>Y}Yfwt?}bL@r;H#gco) zcJbZeVsmbD7p@8Bu61nK*ZK`SlI&E!HiKUY2_mt9+QTmEU&);NPR65ze_#yNQ>MSJ z0o84BMobfc(G*R$o})~4L*Mkj@B^yCPcuCVY*ZEA>4q?Nng?ZPb^VR!b9;V*z(-}{ zGlf$=y~qY_9tUC|V?!Go|KOYai8ho2=4Oidb}m-~hflRcoL3%At8+WOy}k_--rhg= zt9&rO^e{1RDX!w3Xeki!&Q;8{JnN(u@TscbdCy>RYNBC_t*Ys(`Nu&<|BirFmLAu1%mZT%Jc}AB{7L^IZpSAcBlrM{{r>tw}VaFz|}oLzqUC6p$Z9 z>upQMALSs7acHipTX1~?XFBBZtbfJu7nX&TuBJh+ePo}kt&39N7vc8Z*1mcseSP&} znyLxq1ND#WUfZDR{L0s+rz?xM4 z=ky!6rWn>Tccgu8zg8ayZDBmOIKEA)xBIH2)?ga3prY9u^KCT6P~IT0`$^?hx@${? zd(d8{El_wJ)SAU^cHDINZtTgQ!SxJ~7}Yoa-$ZRq}U4lVph+ zKh$+Y;k8z(>QZ77)dwhvKE0{QM$-HF-5-80(&Ny7az;6&QcT^S+VC8i7+Y!ZOXKS< zR3e9V$yJ{Nfi?|8ab2g>M`j`1vo4pUZWxUXtLH64rUOJ|v?JiDyVKWGxeeNV(p@_RpBC%PlHN)z`I3EAyGaZCQ+*8JJjTm?Nya$HrJC^`@g8e8bgMrWoZqpU5thWDMSwmvsbbw>om3@ zgM>O7yqh`?zS)14_;6s4_QH{KV{uXhdldu$B5@-=`uWLpt0OC4zD?Y_yYzEjq-o*8 z85HLOQbeeM-$?JIGJ#BA&r_I(P3*9;#jeYxp6$_4*NXqB1}yNk-l~iva-#tf&9CZo z1RtMYg=Lms_PPx1K{j1yDlWN*kEjuyk$${=m)>;aqT%P7~U;gSNA8a{}sy7d$fe%**D( z*GoHAP(WM-6~?l7QpQxY~>6E)8L=l5zNN=ACW!Vdx7b0By>8=S0qt2 z2_g-TXUfckSD`h}8^rMh0XppWx1~<3`AJ7D#PwHDwUv8gTkAcZ;G6B;cR8*2Sxxhq z)a!ie8UHoxmP2&cg-a385BmcA! z$RPosnUk4OvwEH#yi1|t3C1C?bNHm65xv(K)7+|A4Ho>Di%EV4h3)%~`=_4q=Klmsk5@CQ%v z?MUzq33wFFw^vU(O@?kIw$0b)A_oceft+4buKTplidDu)~0`n1jdN685lJWywdLE087}rtQ;75p?&l76Ze3 zX%X}uO{DVS0jZCJ)K&a@YdY>JnZN*4)8K=o=9ArG+@Z6MTywgrvtaw6bs@$<=ya+7 zT+cbHPO(J)G*iPhK{nJ}Uv(*O-F#rpIOK-ECS#fX|>S#MPYjdv}?VR3_W)u?YILdOo~Tpz&{UF7Q>u}ORU z*k!7>LA-0%pxl4a-5J;d@R>DK@f1ft6%l zo>oJy#e1P9nw6_tK6z?Fi1aE57LCRKziHmt z7XaJcr!S=U|6y{-?~bvx8o86DGZTkTJ&x0gMnH>-EOM-1-_xuJOWS8ai`J-Q+la4>1$^mkc(ouYoSw8C`75K&cN5i%| z2Jueivo~RNIWKjoX|q$D0=Ms+5j4b{3kr;K9g}xBXCQqUcm7P{Qkr(_BNcnN?Flij zs#h6H^AwUR2vRc+^YL5UxZC^ZEc+&qDWN^K-2W_*d%?^d$!teG8e=d>S-kK~BGFaW zdsWv8a!JqX?M2zKO-lR6HZGjzuaa&2U6&>w%hdy*&F_~JJ6;cu2BK$CgdEz^L+FJx zAnQ<4f*!^<_2m`R8#iN(8hKPoW6@PJRttLLE~jPmNlSvSDnDbb1`E%5z6(+6hZ^6B~W7H7`!l z^|^=J52VBZ`i83%&owD(JH)fsJ(3SKOY&LVUH@ceD|KxS>j7l?N|$=e;qVc$v2nw3 z=eWa;S?qVn;4E9aEFd7nHimDCwi6ris-H_slX%X>uEx=4SmQBo35RYXF7`@_Y1^}K4+Hpm{d07(mQval zT0>p5ef19+b=9sZ#mrEq91WVO0|Yt`expyKgorIH<(Lh^2aoUQxIYqUSASaRe{~@R z(mu*xS=SPgs{n46O{n^9aOH5DGGlwlOpl`N$=nFk3K~WIX7@C?C0#WB2 zl}Z(vE)awsn+FUZo~HA#W&0k$RQzMbR=g zb=ZD6qmewgfi9nDJ35a=jirqD7C$As-|>3;$xjsKkrGT#SWxH^e<1b#ZVZrt3e+y7 znDWpKuw8XktbW9PU5Cdu)n1RNX1uNYdMUo?Jd5av8NxGj-l=Z2W1kw7RZsoA8>+G4 ziW2f%>cE+Nhh0605aD#W$4fhmb)Ff?>}$fOHQR8%eSWBh7r?3`O{DMSgB-)ivPb9M z!^O0$bT-w)6Y{%nHx^wnkfzt3Ie$S~Qu=Ve)WJTTGmMLwJld{CK7tlii8ug3XS+N; z=6b@x+XP%!Qk^jjth-enJ}`oK*>G*nzEiQ`Geja6{4Cf~fY(;7lK-#|WmFN-BrhwA z*?7-`o6ZY5Wyjdz7IBY)SUAQQA&+|&yp=L8VzWN{Od~2ov44zmsP%W@L>Wu!dS-CO z<)*nyp})MnblowfA`!q%2NLIj*OYU6K8&wRI?=3lFMej^soo2)P-#h{K!M`j`=Gb)0x z;m)gJI&><9t+fGxkzOgfdv)G1FR&Pt2tvJ%^#h<61F zYWB8CGm>eOD}XXPb5o>cAt2~LjX02>nIpNSTQV?MG-&h~PWe#lZT0Loikp$N*gSpv zW;F*EZ5xqCuEM1B{kp@GC%dSdcf}DPvrC2Qm-{jFN1sj=Isfus0h2N~LG3RW3^mNw z{KRoxs>iLHx$w|2rj7zBeaMiW+l4AmcCZ3udafKCoec8j}N8AULzDZ>|18>JaC-I3F9x= z8_XF9Zg4urbD3P$^WE%v1m9+xuAZP%gO{kpm!gHxJ@k#G?L|<{DIgFH7j|Rl5qv3f zt0i3DTXlbJ2Ak$)b0I@x$#TbVQ4(Go@ezKxdTgl(nPwOzzXW+31F`S{a+9mB9BABd zQcFF%Wgp!9fg&O^kM)1&U=uRVPw6RKrDXsz^;>C*mAfO(QUokiuoraMqxzL~g2`Ikj;$3G(MT$D}(RtH@9e^usLBv$X zIik;hj!_7BMoMc-0M)iLa3Nm4OR|^r^mV56{!{*=v+JZ1VpDvet!H`z5>4{1X4@OI zk;p~gAW{#sCj(+$WGmJ7fr9fy=|?CNt1lfnO7z$Yq7*+|NPELIiMQPGG4;z}w>o|? zX+>XUo~ateylwxqwbA$Mi>`_ z)5J`aqgVNGI~pKeuJ58qLO3UoH$?4RbriBk$t*!cIHJ*}39(=nnKf^192LJ2XNm6% z=U#Gc>S|j`k^4>p`(0n*V!(}5cHi|^XWF#SRIBRyqt?|J4l732 zBXHq9vj#x(I5xJM4!m$Zcv_>UA4o|+V)dd}i1V=KNM);b2e) zV4$jQFANkVG{(MvZUHH0^3jlWueDW%6}zhPO<`;+!)M-{9amfAc1L4V)wubFykw|o zkJ9mv_L@-^f93vcaauz|!EQ(~sRkEV$uR+okqgT^BtzgdZ(5$4f(-|7pAiB0DbVtznX zE@~hCjNh64k5!c9Ba8X7i`a6ZXqsFzNlu5g(n{PWR7H%bI?{bvDHe<4(I(a{09d}2E z&S;BJKfTeo3~`RgJQ&va+ z{G&yQ$~lOSmxzee7nx5|-ldJ5-JZ98+?Dlcc(F8RGs)Oth`;EPnQ5LhbYh8l05o&@ z@^ABZn81M?8p$#xD){JpNlHTLuh-x(?gb8a;mCe3ZIyBLE36kt!y&1&f|~3aX3L zVs5j>p9H5V!*p5(-v*}qDt=VOE17t)A);TmM%t-{1he;Ue|8KsQ~3T=jPxzQ^`NNL zeO1cAzs_OmH}uL|sLI%Mj+d~WJAejVsuILf@R7T9P{pXkdFe#dv4TD1cVt?4%}xZ3 z9`xHl91au04l8(zD{M`&X-$zQ9BFlVc7oY2N{CIh&J?yV!eTq^S7tLV2r-*xcb=>s&)ggxg6D0ex7q%Rs!A-NJwbhBe zuHXHOBe<6C#aY_?e$zw(MWNnNA@{bN)J9deTrKx{TPNZh`YW9yrh3H8s-A;I?U^%X zX&P84$Vfl=avCyw>&svS_*|-^;*aLS^Q@k;TS0;y4cG}a0MlztZj~&$d&C++ymUbo zZvflo{0-l3sV%bB*cJxJ)VStPH)H|uJ=5rWpFx_i_0J+DpH>yXL<46=)1Jf?pGT;eZ;YTu^tW^v{7{^QHNqEo`~i4G`AEttS@eIHrld#O1mr1F8TLF8w}B%|d8ywizI8`>b`q zUZ;@R*^Pdb9;sSbrJRo^2Pfo0s&9sh+@WG&r$&Q8yHEh4Uj-m~TrOc~@$A-@+6t&{ zLgisSymLe@A9!?!+*U4DR4~}}NJJzmt+6ko?Mi`H^H9@d;VrXZ7sEpNAqk>-~P(XCG@JfOKiHl%X~ftiQ7^q3r)0aj?ZbnImolDYXyION z)@eqXaUsVxt^viySQnp@Sf(B=ySG}xKte#yhP8OqdOgwm!~#!!TZNR$AL93x><$`F zOQy(Qveps32y(>JbUH4g&79seWtllMkOe|2P`P@q<; z;j%eIGQmKQ16UEYI}J|X$@WTM^D^+0PL&BQJ){`sqqzUNVDF>7%|=BWkCl&|Ef;hh zkR;cR%(3aa!DadPnjCiW!QSC)Gn#-yUVStn9wD^80=Bv@@7iurH8~y0Gv?NNAzn2z zIOSu}BUkZ9s-Z3yUmp|#wRbP#Q~Ym;=y>f$*bqu?2{xgdV%I z0MvBq_qbHe`R0SKN56I}qA7$6r>h|p{FoCb1%f)K(YH#2QfwI02SI>DGOE*Y;M_O_ z;EH?xbyNl`C|zx+dTa~2tElN^6LFv0L8nwc$9Um6dJg86$O&?axqA#??bV{rf43HDk6HAKy62+IVjcClZ3 zaQ4B@qD-f7bF89Ox60Hi+syOIn)^MP99x~shT)$p*lI!nT{1XYzrFVI!ysqy(lcC9 zfIGaOPYXFVOVfTsmJ88S?lq*_C=duT{A!#O{p!Pmm90!I&^H*Cys$tF% zjv6lD?cB_zTX`i{ZFk>kex}NGu=J%)TSJ=-U3yn&=4GSPo6cc_E<+mp4hLfHcZ9we z;kyo?xN}w$3*uU+IIB=(4!LEB%fra|yTO_2t75QJ)6!@nV=_z2ic<5LzdhVfVW2+Q zLD_6iBte&-b6!lpXML@^PRy3C9YR#W{+3ICvDKVYZYXo~Gco0wkJTpqIO-0<{^j5y z^ApT=>E6^nyTOosRNd7#S&<*sXMSvWd&oWzt*AJB#Qn0Ai^o`NTTibdsGadmybFME zgiR@{ADFZC&a;0~6Eg*FrzfV2@|fcAsu{XOGhRsSJrK0ImdnzMG$+Mz%~q59PgwYF zYt4i)Vj$~2@+I-hAyVKTr?y6v?dV*5%^h*D;d~Ox^iI>OOKr@z>YTp6?ar2&=qjXi?YAPp|-ID{0=R9ZTuAOhH^&n)em<2^E zrlP(P*=9y0rPDTSwEIzf4(N~6bpd=}#~+#c?I1Fx|BJ&~4BQRm;6kvZpzUtWnZ4iw zRU`r;uyn#NYwbAE<4X|5b*nEAJBB-7SGm@Iwq8x*I4H{Pi1rG%_PHfqtvjW%7F!Ko zzT*{3>PP22k2ucC}~b8xpiq_-(2bbMjAbuqWt|@8$D^?GYHiihq{^06C?cN8fTO~9_?|qZU^IwrB4zeub-Zy=)=Uo3X73A zc=;Vl@58YQ#_4?%ZNbUrI_G@cZD82jC*4uf=!md1n*l4s(&YH?arfr)ZfAYaCS8P0 zkreZ1jp%+CA3KOH<+&P1CH`6_1PWT}iWQnZn!R+WW6~c#Icb(2o9of4Z_L&78oS4ctY=;HZ2HdzZ(RHCKR<~niF_}Zjps5YvW|D^;e5<$xO$@;fV-@mP zq7l6&pO#J*F&rDf`HW42hF`iqv<)Ig5Z+n|N&^=DENE-Tv@P6!Sw{c zmmS)AYOoto?a1D&uaxSdqCoLT_TgJA`kAPyAz{3KiW233L}dz zA|uHbhjpOzkFMQld%xEPubqPd=CVBm8+cy#Sa(HB;$4d0=^_R29;tCLuOhfZ+!`x2 zowaLOcUOAWqWS-dW@=S3!R9#S4#1$GIpg>Ap9Er!iDpt%R7R~6Jx7JVQ_-Io3T@;y zWGE8q>@{(U>N%8K-rD`^4eEUR8QX*l1)R@}rN>jX;IueR zXs@glmmC`_r~7spK{?C~jLA0Bj8M!cq2eW{m3ubzn*3TLuu=K|9*a6-)}!uR{(z_X zKNmG%95)DW==>#Z1AIj&@vJH3Q<`*cp}T`IPp0pTS-AOpF6 za#U=X)OIlm)V|)}BXRs5_2KScu@xKTC(te$OT+QI9^b;Lib4b;Ey(bm1oy0*A7|Ae z4iFt$HqL)PV}kk3h4gIS#0kY zw9v{zvR6&=udD0$72?v~W(ZD99pKa4X7<7!)7jxvLCHwtwX#Y19q%NDK;POGcSehM z^-rAw&aNy_2zP-n=&3*(v&pyw9tO*=#|CXKNrdM>L&w(A-E=!(G4gqeyPB21(=a0N zryA6-_MH{7#Adz|F#9zHur^0VSlq=Jqxlviji{Jv@vMnH&ZeOpa+>#M@bT_8dVeR&{NWVdI&?wXXhnda`qs+jp3=Ks*DlZ#uc?A?iSzCJ_DJ`HzE|rJse4tG zUnd8!aBwznEhb+imeVN8FW8=Fgg<(;MacIvzlz=NilQnq15>p}#O%9Ol99chLRmpl zb4+ro8+R1y!71);WD|^nn&C2ZJKDidmi`?#~Jo4Me{yRkOZkjjP@L zDt^_TO`eMA1ma0Ubr*B-VA94H9!L%w3$yvIW2!FzKLc%;HprN&LJOIQ9f&-ZeV--E z-Pj5YFTeSQF)0V8ak&Si3>mj-S?|CIrk@e|ZF};sDB=f(TqKe zb_#uGHKp=QIIC({-<{uZ5*r2Cr~HiL!pBX|0D1gZ$mt@m!n_ZMd(_RUUC=$Im-Z(( zZ^QlIp4noG8ORdiNc!ophl^3wvH@&3E9EOtUG7x@`A1MuI6vk!94slXfsW!w!dx~E+se@J z1;)W=zjN``Gp_f-vzQ3)M4J~ zl^>*)Q|YffXv*{jnne`r+s{7gX>qB8&yaqckg3V?;3w zcq*3o(T|E6r`DN0W{EKwUX%4HJ~%(m{eG24(JwC~JDfcw@Np_cpj!SR*BR(~$D2x3 zR`rP8eZ$=C9_^0uuUZb$+=dTW7cbw5cmJcPu8ImKKUtHHTK`_43k9`3D4mUoZE987 z;SVLo&o`SSsBSZMM$s<0@Ka2(IM?oG^pi%LFJ;^)ZlJg91M9b*biQE6-A{vm?`~JL z1y1D?O+}4f3Niqjt8=(>lS6U1pZ*5bHJK2ABSQMT2`aHQs(`f9C9;@5l8R(a9p1o@ z2DEMu1|S0xOD@4cSVR%?2Dmj*iUzhNBa}gN16E}^pzs0JwcL<(?ZZSbLuyo8z4*$4 z!QJ}0Nn6TB4Pnk!jShTy+kPuT5HbO^v@K~yxMey>RP!}%!qs#dt646HEa{c9o9NS* zJU88)gA+`ye(a3h9`D4xVgEr`Bc6a#N-V>b!+!%HbU4nK=tlow(QCeK$@jPObG7;C zc&x`n4v6t;3xuutTgh`F5&jF(6SWkYEYf@WGGY^}J0i9Sn& z$vZSb-aMInKp5VL+VsoXQ$NViY!J2 zdR(`-Cv&cqveD~m{1>gG!3ObIILk)`k7fgtev|46onW#}-LakOZNSPZ(r(5cBYq9n zm#qN7LGF5E;feOq#l5r{{qu-CCwQ*y%5pkpBS4^8T8XG<+Y(V-4MB0vcg4BrKbrK# zSF$&S(eh7zv@?+j#q(PkYQbjsBE9EMWmqLjjPPVUxzA2@cNl6ML@ao%_crd{ah~oL zjyl=5aJhore4v^Lt-Z@!ji5c^^@#8N!_IUo6LR7KQFyg-zReP$;_T?Qq_K?RI{$SK zu`&_HENJ4H>?b2TWxcgj2D@I6oedSiJ+Z$%fxRG~%-rzd&qe zYJ);`4hyIeoj4axUVUH5SDY*~owf7c%Xg=}gTmWclhA=JOT#b|RSB|Nz0$j7XI7fM zPC=7a1IFK#b!oIaFcz-MiNV=o&M?P2ND=iju$(5UAcF^1jPVD>0&30I-%^@!QPfd^ zAcF@jhRWN#&hWRQyO`RW{dGe-C6|i)Pcy!k@qJoNsIoJ;w*rFKQ<}u6_*Rs4Q)8BN zJC5WGh)|GjJ?mEifCFo1gQCoEM+@{y2Nh;UDd4h(^-)FYH#u&z=7;QehsY5J=72<6 zx38zVll1eb28)BCrC_fV>tE_reC6$mBYsaR-T;QD;(hFnm0ETP@yaPaXyWAYsF7Z* zsN(i4YxjIFErzT|nCxENP*8$@SR}i@JY<^xG3Y>+jVP*MsIUyzdT*EeP^4|%@!ds^6HCv+)D;hMWG&T%NT3G2i_4mrS;?qDpH8(KpzR?}+l zn5rlQAf;mqX`^}am&Nsp3TGNsq@6Vz(x_q3n!e-yTaUSeUGbU}E+hm8f`g3&1-99X z%KM^DqLD**`4tC=x)$W&&!_pXD(yqv2MnL~f4)p76UqOY3VJk>`h)Sgw4H;t1?%%f z|8cD$hX#YnE4EgKnS*g(H@4xrxcCBTo)Sg|Natn3x|UO>+d+;lx+|-}NTDZ389DBy zWg+#_2SRl=A@hpT7wTB{wxJ0S!GhGRy~;E=1p_3v$2tW3ALVZO@dT%DPuMe9OCn!y zPV#qA)O8z>(hxF31I?-FH|CgsG+Z>GfXHWM{t^Q`)l3Gy2j5maGZ1^dITn7_OXD^9 zXcn9PVh!Dq1_1+N+t+>uHT&7WxFDn;oaI?d(OBZym}k5XlnPy>9PtTWd(@DhrDItx zZ0}&EYO9_q2n){j_xdW;8zCc(-Z?_;)TiR{?Q?Q|lQ9?rcfzxr8aqSoHanU3QpvW> z*ahpQgFOCRupG-sqa%gfkgE+l{Co!E12f>cWwN6ciYwfUT=O;k&7TdPB-T6rA<4J% z#&zcT^-(}DeO4R3?ym-Q#$BFA%!^oObHzcLzDV){IgffOk%7Tddr;ck6;nDB_QGou zngHl;P}kD(r?D^31w30BYqdK`T#AbV-QPFl#JZVT5cFx9`~h7~Nov>C)-yl3-V&P7 ztH+gJP6ZmaNcg42@K9DIWRmRTr0K@SL98S@Tb2 zRyzNKvaz5FL;Jp&NobDbMc5d9DKTT3bdks^N(1o}rUui{M$NlQ;I{_@7@4_(B-m(9+8CLE|NJNA!aYJ2Q`JR7yw;lW&2y zogmMyKX?h(VY*cNyCT3Cjrla_?GrE%BVTOTa!=ru>rD={!Y^PUclMb|NN0+_{Q^PD zCT3%v(p{y~&BhVqj!*V?gvX3hpOY3)^B&zQrDLhOi+*6&x>9w3kDT0dW$=aWNAu@+1ITQepSpWy?B`vPkAu5UB$C_t9@j*7Wop{5rtCLF%G z+PlTq7fIBMhw%+P*o*6)Yr7FfY*P#)&P?jvXMlpzW9Wv=N@p=`WselOX^ZV2!u6Xe zZyT@*jf9f)3TIPU@$UqjSNFN0{SdGPBwBM|lGQ4{zu$;iA#%Qi=Ly~Zwi2K*$*r0? zCuh(EqFYm=C*ozVOe811(R1`|XY!b)fDkW?UIP{=FY=7;vX&gX87-?hvuyv0-a27h ztxjJi^SL22PQz+J6O%~~x%R}&YKGm|hF93LD)Mwav*G8JeGHp3x-c_z^e}jLYzpdDlrsg*S*WQgCT1;?f zBz%pnJ4y80nL7cACcPw!!pPypk*d`3LeqsiEA8bqG9~j?N=Lq>{;5s7Hv_EM(%pXY z?u*T?jNjj8g>FB*=bKUbRzqF(;-05OEDX<^XZr9EGcS6x`w{rmDl}AGZ%Fv=trI?a zV2<0&3ER61C_cJ=^s92<;<_X5NTK@qt9>Sf-jm8+e|hTZEUyjS*IvDu=n6XYg3G|* z##ixo1^Pm#ls31|KxE^-Cw#5){OF~ml?Nj%W+@+X`^;Y0rkLbLOl4vXl@JT=*^!aSD&r#YF)dQOKZAbA?XTUW4ZW?|e>+yvj z8@Dq`R9WK3d7HiRFJ92jUo;|*l#BRB?m&F~mlXF!Uu$Pb3`u9&o3nr!v7BtYTGQ*9 zxvJClxeNQnq_)uX>@Amm!)Dz1KUp<&ePcv0gjNLh(?im~!p}o%oJub0rt7on%6f5i z`W4D*>U^&1hn|44v;0uO<T1I{!zJd*_ao$}O>w=Z-<$j`E z!lbKkH?GE6MP{(_XQa!wI;3k{4cZ27^<@8ZL(dU~T!HjwS&P<-(l7JnTVV_{23orf zMFT6(-R*K-S7r(-R(=aiXAh`h@KpSW4{EwMhXAI_fnY>K&7;TtJnN5Q8MWk!Oh>oM z_DuSQ$8ZzeM>`%XXD4FSE8~^fcR8CFg7FUVad*2QsG_?dVC_Jv9NPqM$akuYu6;Se z+309~$vGq9lGQG>{Apx8kgD(cTYvgFib*qY7Lpe$(^l3IiY~6_bqJO+_Mh(Uh5N~t z<9BuGl&IDkWNv3i@VDMDI-BW!&uh(*5;C=tc#bh3hKU-r;3ViBxy)1?Ykm+euCYk7b*BXki4sH^ou(x)Z|^a`jRh0bR6y8g?^1e z;VpW=*DTW3i|;!n>t>)=yZbxtu2v+4j|Etj=x-~^IY^#*u&1x$k!4-xCjr49+{co zNLw2?PpKU2Q&=f?+fDv}KN)~3Yn8~Di)YK10h&F(t)340@%z}__}yOg zLDqUOE5cghg$BDqg96Frl#s{^jkSrE&x|B|0L?TuJo0gMV7v53mQCvcm@@cglY&*i z$YThcU(xaTJ=R*|FN?D{W3bNAL-D6hNBHe2eOdzH+l=W8lyBcqP$0WS~{+LddfLTjojxrD<65ZP98$kSQUhC--x#GGM)g63yL7Mhxf zCWT*5&aAkNh-8VO6^1^fUnnqY7rI}J%wv8j06o%BxK}ZYtFQUx&1RY^{Tf=E0Ghu@ zVvZLMci6Q>nKK)&S9=lp+TLX!mNTObXs>GuCk4EAj!-IO$*Vi=(b?5z=G=R;GG%OS zNLS_i6p)-vIbFKIbC7=ms$BjOW~sgM+^%5vN15h&A;nQOTuL+G@i~;~B0#bq&9`VX z6SY^(0S*rbMU5Sm8%H9^_bT2fIjA7o=dEgPIL_hzq$QvP3Vz8WZ=lVT8whzl?a<9&ODtH@vjl8I!H^hoP#vZLRn#{qr zPmt_OXN6%NGt?jmipkUe5q7;LA(+gj-R!ea(Kw|WhEUq8tBkMq=+~*OU%!dDfk*|A zrf%Q{=g;_4sTWEi2%Y?KQ1sd10?jDnA@hvMwNy;Rk5Uf9D4FK|%vZ+ikRlG$woJcW0t5z5J#+cnIuuat$F{E__IrA)A)z`a!Yoq%RIXz(TtuQkcFp?e93Se^ zlHZUtK(2wA1|eq#Te?}EyQ@qYDeJ~h2@mt zW;^K%?gn3YC4@W)I?zbdW0rMns^rqh{W$qmZw=2nfy%VX-b1O6jEaAC^6QLV43VU| z$Xb}&b1vnuy;qIFQuF(sm~R2wgH%{^3@5Y&c0zB2Tz{Mx+VICvsAbeEV!QUeZ}N5R zGPFZkzs0_aKgeIma7)4eC`C{P`R6jnGI*-V!0!cC=kcu7jmr zY89JNh5zz#VPE_|<6Dh^M^su`eU@L1b+B}uLoju``6LqrBTZ{C!n>94aQp~FELNgw zd!Kx!6V;7w<;A?=xp%ZBc>>zvJ*l@Gi&MXYJnONvdoO1?>(n#NONUGT((sDHB-R9A z+Z;?TMj^E7^q3hSyMC6zm=TP0yopQXsWfuMU-UeDa^T{ zJB^epixkLXWjdn)!EaTQm^`W_kiaR|A6~a5px6AyQdfBD-q1*Y&ct(>jVhn>88XTn zn_+=;yqR9;ui7uollbSompwEJm^!0o~#d7s`qXKg|%YXV)y z`2cBke*}oWYm8PCx5h*JIZ^eWMGo=<&dy9rfj(=IOH#*A;yNpxjX#HGV>#iEzaG-rDksNZw`h-XBfB(mb0alfJuN7dpazkRFZ z%cu+Y<^*x)yxCJhW~IF!_*&2Z@b+NDxdf*^beoP>M0?j-R9ep+xpiU78}1q5{3a$c zsZ7pMLS8Kadv~j#!E#60XjRxHMlh0;)*aNqqKJ` z^iRCjSqX}Lgb*&^ed~>JaST8ScAS7Yk*(lQH{Be}U!f&P5^p$4Ch2>+C5uxL5pIdk z<<$?~i=W*gLC}31%;j)v?`7spUVgdHk^NYNP}q90=}$fXOX_jRYB;ne@W9rro+VnJ z1@hRZm<$H4R#iuR#YjNe(8B08WU|)5wY4B%`0_2MS3*tjvyVcoqZf&r6%RhK0eK`L ze*J=jMiQ9&Em6VZ^gAc%F#gc6RB4?;I8}CpOeBMwOUquevlSg}SHSPh`8+GF@#h2K z-3WD^{HdiZ`Bu8)GvftQaBG zv6Ev^{&+FVU>aknZCHxgL{`5nkS~D+ypJEYFL>d1rkc*RK(z&hF&)tj)GLLO^n1fW`)FuhzNGu)%{qu*Bc;++PkkNd3n);cFll8absdaN zR;Z(XrR)<4Ia8jy$l8s%Tq=sqS#|a5;2*#6wJmuo7xb$&=eCcw zK6a&j&%Lv;;@TYsYvt^K5z~}~t84;$;5*-xR2S-G$Jc$&1^p_WcCk8&an`Hf-OmuB zRods0o%vq?P}C4pD>AbARs8ZpK~Pa}P3`zF7D5z6(nOtH&p5G^R_)s0+!D^@Y`tw# z!r9tp=TY=Ya-jipJo;dS~pm7y0hW73j$o(R@-UM#*fjX=}b&X}VTNk!UgQ^KBZ-JH7jxM{s zlx0CEiwEJ)NA?t^T6W?q^jSLSg)~orjWfK2eq66;)#+VlHk58QJEwmR`$=foh@SI- z8AwjhJxh98EE!T1hySUyXXT*n3J}PHgJgBT-O&T<@wN+45t^h2#*2{~udE4)u`%(5OMEYz+q zeC(0nWY$IhmG-pKtZx!#EQ|gOMmbE_PGt6L9!DME>;u~$Kx&a5CcwjhdoRxaY+ATn zl7Y~pwy1PQxEUijV%{kLyKz#e@9iyIa!U`2t<`8qWqY>Z{k-7LvC~Gg6G&_QaEvaZ ziNaE2)GE1UbRgctwfVNEd=Tc?Rl2t-B>s5Da&zb7A+zEdsY|$0DiUD3-8nhRzSj-b zBw~(MZOi#z7094ClrUj1<`63vZIo^z(@#(~Z8_;w+@*R zb?YKEHNReeMX~k)%(t=GEJ6qG ziUSof4VyP@dQ;--;Bm5aUaT{ z%BS6SKl#e;+=SLZW;+EE!22AMak z(bH|@SM6O4YUU&WCTapXY|0L&~M?0+-y?abMcG;^+^9Kn}dqp*nCTE|Kk?PLX zw;gG9BMT1@p$nJg-$4_tx~J9)s--gtF>D|U`rohNXZ*>>HWcYBq0cbQ^AH<5L!IQX z))H4ww#?Kq>BTOLjqBJfA(-69c55qpsn&X1mQ+HrRnkr~@%><_d58AV%<1nZix7HJv3x?a2Jg(GrTM8Qt^U8haxEYwmxL)(Jm#-dk{=K8j`4v4ZFGtLu*3^LvVVxe|M1R`@UN|p z{)o!Be&nkwSWeq{8ssGVqjG2Z{vbFiwzoRIAI|FFL0i?;ZP(9A2*{CgLyG8trRk#g%2UIVDxg88o*o4M0k# zI04M#S50`i;Z;x&??4tGgqo>=t6$A7mQd4^d6DR;g)E|dvj3PgJy4bjW4;P9F55sX zQ#Jd#@gDIcOJDAC=n`Ezl~<*8z-BIPIF-wBu>iq6v@4B05jPGF;V znHDVVdG5`P(!P{sb9(9R1M64v+=klIe!UuA4&4uU2PGSl=9`Bu5=nE-%mw=wd8OlT>{3xTry0Er^?lE55vMw`9*X#)pA7B-^4>T2`>Rt=O7|)ueG6S^&iIo;6~&=S<&dq}Dy(FSVDyZ6*%C zrrCXRClnfn^e$Sv+bR!yH6`uT#&RpDQ9}ffeb}h!{%c|Vl*V9|S@G_b5!haN%sAGM zXXyM7lk0JzAiMY#fj_O4p>nDdKWex&IF?QuN95-j3ccLD*PH+*{(J95<1PRT*pixx z*_?A;6Q1_HJ46Po=6ZYg2x6Bi@=g<1d!=XHfB-YV`{S-W_oWCLm&5&KW};&=hl;Vv zFNg0>#Of%jh0n2yc{U3)FwD184u{vcI%Yq-mO4K|w4a^j3c?)stc`tAef`+)r`K~^ ziGBgu`70u6$o$MRA93n_IG+lKtyLxkYtJBK>c5hfei;w=9mJvxTEU#?JF?2Y{6Lgv zC;;SMINlPP+T#U$8H~{M(w5NvJpVYp&QFJKsy^jCh*fiXuvy5}>j0PRj1;HiK!H_P z814+Ja&Kj7)%b=&1Rs=_t8n-67g=;lXJ^Davp2z9klb;s-AibN<9FGgZBvkFgi1L$ zno7>Rgr>fsF1O46BaF(sAA_|h=MUEsJiY13`$CFed@+wKYa)dSw_Uve(89O^(c)WN zhkw#@J6l|*TlhaYaQM>7Ui_+C>ESun@k_%W_SULbY?evisSkpB8J-|Zf9`zz#a-x@ zKRT`eE6C--FIFfeq`zmKZ8^ny`b1-OMkU9l^f%GFr-KxL+f(#9HXRUVSI65+fuDW7 zA%XqrUwYm@QL=Dti(DFP4Bh6BrVI;xZ1_aqf@j&NppUju6Iqu}8uJFGj9kwKl3PXE z)l1=@Dl!T4mnM=N$QfF)1J3c{a4cX~WeYxw-TmtLr#{lWx_9I>6!fv1nFxCARYV%{ zBE@wzvzn0kjWDgFfDyN%rVrn6w4r}83dXoD!@>Iy92*vss-rka>`(2MawfB9#wrxGB#J}xwy!m zWP^^cUIVzv5R))Uo({7i8DL%E7{^NY*Pn1d$zQcWxH|=?R9s*{|j2bg~8uUK`8YC6lBWG zvz|vT&~It;8H`4+tgkOS-@{VR?`zo8k7Vt+%Tbm-dEmG zUX;}v^3M;iB%lduwuzaDwU&%k<&~Evvpp ztV1kYKSDc)`mIW1=L-@zFHj60M>xF`Z4Sr>xz`lbvYk01hJ>idH`I$`p8hl->S^ry zp7NFTBnnb+2O82!yripUC>+NkYdt@&rvz?t0M)N>ytSy6)>cH&PiQRp z_AQ)v4je9x1RBq>U&}smPg9hiH=Zn#1E=w7Ux8(v)cd2BDF1;!L)wPkIdfSrTEsaz zv?(KfqbF-=$T3Us34~o%JvHB=(>Mq^ThYVLA4Blw6CaHy-rdpjeqU2Ck}2WLykr-r zF+@DOc~$q|v&f(O86_fd^sr`dQrKSw|H}n_u6Cq3n}`Iq^nCavDJ5*ZS}?%H%wn5q zk<3 zRz`o>HzWFK66cTJRP?sISLn(`XnAmFex}zgK2#=%@AVNfUS;P-wRl3mKi8AB`?e}j zRoipU@?SW1?eZ(v@Q2Vc!|{a6m+VZ|Ijpf^se3*euK0+$5oSR5s;{GoBcQ8L`wU2U ze|1sf$DgQbYi2nhf>^414mX!WW}A<>W7O;;@x2u`utm~M#QRnd^qR@0;}3($AVnHQ z`U@lq`gwUu*2PARH_^p6-`hQ3QX8wQdtKvZ-PsS7@3*Cn;jp?_B03jw9Z!$}OaMPz zW;}i$P5$f|N}S33&o;S+p$9ivv;*AEtMp6iO*t|n?Ix7!U&;maz+CWZ$rciEp?Z$E zI+a0VXMhVE0#IF(SMnGFEi7GZ;*;c%KzgIv@F0C@<`S1*HmLHMpmYy}Mu#gMdHwvx zBt^o__gbGaEnZfNS^w?_w7VKL`bR#~s++Uk;=mt4%g2PZ+Ui=}XzmdYIR+a-(@40Q zoRrj$!nl_f4O2uEDFTkN{i_`1IJ$o=zBSf%CG$ff@L_Cu)y-@(H2vwP^B15#mk2G{ zI{5|sUK|r{0^~~UNpy$tq@&Anz?uNK@A!|=mftp{DnOpmkAM6->xPovm-#zkp1hy! z%z(z!s7FNMA=8X`?#z;mH8jj~ybe40)8kVwTRgazF83^p-#xRUehLe(-kXw@d9l%% zyxc9fc_0v3n4fd{m<(s0_{@ezd9mjF&$d1>^FvLxqaS7;MlV;m$S>L0vlrj&;s3CU z7QQAFx9-#gS)!Jg{T&sJqek*LW%ZUL2Zs>rh=!(@nwYo+w(3=ea~+gEB|0_EXx){v zB=z{NSZUuAMcT&;&uIR`UK3Twpg!BOCXn*VH43De>0Tw=U(3TSs2S8@;({e23t#Mu zk;StBfsLWBLRkGfNER&+;t!b~QA=CM+puRl5^FdVfN!}iBEA5@BtVx<6`E-)X>?kl zIu8}G_l<1joF-1?Jx*n0HtM(9tbqfrmOhJ+Z*RN$G3<|BnO9>JY#14Q&?g}nmV>{oE5kD{knHg7T< zOz2!qp)T&{SOxsT@Mb??JAg|hfrwZb?vu$fY z`XG&$<<+g$Z=PU=wm^1Zqv|5{68Uy$U9P^SQq|1%eU7c}(w&AHRn8`RgU=H2zx#Vv ziMJ1CcT+#-zdRDXpJ>$T>tb|d-=G0C8l{zG64Dcq;CGD3c-*a_eMB4l@%TzrfB5gm3>Mme4^ol!b+MV zf7l&?MKgTkxVzf<3wY$&H`*vYZ>cG-Yumf^>r)PXRuI2MRj5$M|CNTY&nz#4e=m*+ zNjgE>fK01UJs~#(U~dP%U7(RNdmG*J8g9F6zKgbX*p}O0Cg}kM$Y!9A$@#NZLtWgR zBB*}%d@JfLqsir;jcBlGTXmq$@WmFkP{Epgj-77jXl8U^oi6+HC?S3 zrZ-jKUBAKKnhd}{N!a0hZk1GIpfX1bX=E*)#l*+{iG}T5K*BJ>ypx8I!n86WQB-|X zze3hDLCo2KYytl|y3!FU%C7?_aVrY*<8x%jP}=x_8sD}ejD%B$ zlRC>$>J3#S$DYLG`3^^V>DJ#Qhd`j{lN}daoXBi(Z|uPps2w9nNSNq=vr;1kq=wn*|9~uLjFvX$EZP3zMD-YzBPqF zBvQlX>2DGTTPNYQ^VwsiAt<0_>BA+C1s+XhWPT+4G1p?4n7J?Vo?SNAb?qS`nk>W3 zE6zE9@fla7@anVA`k;dV71q;F6CySD&ikfo_w&w4P!?!2Hv@(B4y8RC7KFL{lp<1~rK}!iObeA5Jxr z0J!e+$a%*XE|k3M-wre4MaIsb)Kajc*R*qWw&^S6jv>L#?XtEX=lT{_riJh}Ppa#; zQ8wD%5NJi*MGnQOlS_9(^pbaNOg595I{3LB>5^nnI3Ue3_=E0lcG_1jre)^a5Q^|Uv%#zy86ts#=Wl6&y@bK!$D$?C!!owcX+GwStm=@| zl;U=Q$`anF5as0<7`U3m5>&iK>jO6Z<#4myORcKz*H)|P{EBJ?2fMXQMkY3IIbth5 zcQ5yUs{9P6e6z?W5+JGDL>woGNn}K9?v#XL&q6+tYBWHEOXfAh)bm4#xWqc~*SCpAIf3b*75$ zg}m1s&yn~6372?z#V~adWMH<8Gyim?pXC`9(BN<|hFcKsRq38PDnofM#qBQfWYsKg z<~-(7O3)qco#22b&)FbqdE^8JJ5&~?B^M@`6g)u*wR;NVRSVy8cY#O_qE^)rP{2IT zo1$yXU~4qjT5ROsKSwBEg^&*;UNyZaMr(5$aahD`Qyv~X~*K3fBy`Gw^;!`@!wyM)jokj;or@N z0xXmNw*UXp|MbQG=ewzKEAiPJoewM6jQ`u}K%)CUzXesQ#K}*b`af4x_k8Op|98aU z5jxx^K$!NQrzZ2yby(&8zswPMlpw_wY`WHHCMO&;7f6B(>;5xD~g>krGi!5SQzcl++jBX-?NueU>a3B$Kg6f zVr^)HDNXDsnpR`t12gh@LSIRKw1}eQ(78+f$_5@*?8*BtcHlCEENV!S2d+E?3M>|)mPU$4-Ja(D zbwFqOaP1bhZE+AwTFGj_28>Pq#`==1+%`D^j&8y087eIf(Kr&EfQP&E!B>w6E|^<^ zty?`Q!fp+24iWsny3CLM@)O?hcZc8fM4VWWUnzrvRL`22;2P#;=V~$)+ z3Xz8sZJX2h19T@gv~Bex)|W_Ji@+rA%QTR89HW*pFv&Xud!HTS8`d{#c^Yzge{b#~ zkF1{WC=PpLhFte>WAH!*BLYcbh+t%4GL^hkjjw6?6cv*wdQ@MMD`ha%Vdc9*^2z`d zB^(p&wn9U*cSD$C<>n}X*SvQBQv+(!2=sR4=DKsZx6(wwobPHa#wOrEhLKRKIW>ww z`Zm#J(VormTx@(=;WOXC8G!vK(F+KuLZ;{&( z_GlOP=V-U#aC}tiUzH7y@0wg$&bXsgahwEL1@1m7970q7=Wz&vcSc%rFa4+d;lHk~ z5rNbvkd6807O3|2^{5PBTL1UT+KK;NiC)2i2w~u${PTHZLBhE%tBe10Pvg6)LVwzd zU>)wl|6PBUd;1a*)Mw_1>i=^uBpKBaP)JH1pkO z=84Gv^K`eF`dog%zF^3@&$a*k5-i?B?8pIJJvNs9Y03C#T|v_95`WNJ5Iy_nve(s& zZQ&!YxQb1Iz{xM33Kc+`;GYj0=LeAT)#9?J)_oX2Pycfrf>uB19x9zyJFIco+VZt9 zejA0k^Y7Zn|GFora#|E2cx&#?qjxKSiTclTYhI%|+{6DV75ne2@U}R7`<@DE)?$E# z2lbzlxBvR6(Ih7g>F+0@f*1os`pbYX&|LKdycj?5^^VUYGR|wfiFo<;j zXPgHeuA^9z_+jTdW+eaTA!x!}PJ4n?eU5sLcnl!^(@@`&)e$NPC$Q~$eSbi6jkpb* z#ecU+4^8HE`w^7J^(e*bCk=6S$*XvOjt2q>7uu2z3sC1vDc0W)|;0F-={W+sa1Y(_kHzl`tc{R0+r-<(; z&A5HPTepl8a>rGf(Aua75~-t!b9m^8?*yWbx5?-4C!nzo|AJVfpUhnvys@~d^Qp-r z7bQ?lofVxg9L)_yKZN|+Z)iPVLClZPW`W{YKj zpYV6{Ic1b6K+t7O+sBrUxlc54mV{jjwIl8Er5B3)@nmUgU$zS zp-$mChZNTmNA$-7ZekS@p8f=484%9=uB2IuAov^9AVu%*)_LC^_dODj+A=-o+ciSg zjYc?Ah7hYa+g}QtPPS<9=63n0%* zhOP)s`3;2-Ha#Sefo*voZgWQ<+F1XY(U4+{UqS44`gz7e{|LnxV;2c{MmO@%H1WV3 zk8Z1GR}?SBDNPxvT#CBG*!tfWbkxn(%JMw8wHo$Gzf7CLPq-APu_iiK7$$}ZD2zY& z>*TsmwzmJ&-~SLadFv|XMO~T8by)p9F`S~J7fW4o_sYB~$Y|CH-o6%uqXo0=N2>W> z|2*LXPrb?zT{w2lKX+i=nRbT}q$+EyaW{{7DGnP$+BWwuMd2q~PX2v=5KxZQ?cgm5 z^DHeC30b!R$=6*MUd{#88#Z`@Kt(nU+FnN6#RnwXHZ;*57uES!o2*YS+Y%YR=4~$= zr8%s3-697UY+T?AH|b8+T*2p4&tVt6*P94n^*pJo`uic^4x93w)F$PTBYWtkAFSdt2T=+eR79I?@1(kS2g;!m3(H!UulBr;h%G ze87*0f3_{i4=C<|g@b+pYHz3?&Tgd`)S3K573AZWy&!Ht$l!-0$m~z}h^qKN%_g8YAT$fhD;j&`=pu`J z9|jNF-QD_UepnE?R;vS|_5W#GO`k0Ph>Gsqns3LNZkh*smyUV`(BrI9juaX|Mr_$=l z_1fY}){4aRlErTkgLx`XL(l#5w2PiCI$7=a)d;ZI#9Qnvawe?ofO3o}brfcV&bJwoRZ7;mo+Zthzm^{*8hCNu zqjyn;lwhk|75MaQU5`yWbUzF`K#MNRjCyjY`l$K8`}t%_c6+pn$U2yV#mTj>$`!oo zx0bZ-&G+~G%lc0e%6IDzlK6q%^@@}Pk1)$mzv>UYrumV0>^SYj)zb4#_c{X^DM|ki zXKx-2b^AU5&(o&GQc)>1T4c*ok$r?pmW(KCmLerG$}*NQql8i+`##B5StBL}qm*TA zMT{_p7?Nce%NVo0pPuKNncj2W-yiSi%sI|6^SSTqzV2(kulu^V_JX%uO0IuW@M{G6 z0j=cSOV}ii(B7K10u(UWRr?T|@8l&`ADp_`>E_4a!7Sw3WXbsvYY6czy}9va;H%8(Mv!e%p_YD3Nvg@){L-7-jE0>xN03 zwu;hJSQROUW+shgT-vf>m8j8LI2e;or&Nw%eeIVS3P}RvZ498s8J$&gU^DHz{Z1!} z&m+BT=G&q!F|J+=?YcS3IgN8NfES(`!D{mjcTV8!wblY=wZhJ2yvu}kXs<5*qU}?( zust5DTRj%n6vUS*kE+m#mYzy=Q_S@w~rGBaFiD&8od8fcqQaXyL#Om%;eN?J&_Lpf)9fYf~wDvv# z`d{UvfNWSSP=(_3lB(MFQ5BD)&^2x8*@+&)%Hk}c6E``{*Jh&=o1A7od~~xu-3Pno za%m#yVT!eCxH@NHsCR4~vQVR$Tol_f&hx-y3H%H#N@l7eV6oF^nw~ElOr1En4;L7c zzI8m0>fFm0VeZ&nzu}fVO4&!Xw&T=~HvSkLoxSTLsqZn>^tI3&k7l@Nma$_8^h>C)~Ir8QK|r#ni13gu3+7kYnVQY z!ku-C$*d&V-jSx<`HV%oHB2h}f|BUsN>m?qm~BT z{bpXjr7myd$NUF$V)(+1^RzTBj)d$wt&=%TeM&n}Uq}yP=oC;! zqyYrR5(_6gIR<@IdefPhoIHZrw4}PpaV@+WJO4d*r)Noo((Kfon3&D$IB<-ZnW7sL zD_rw-Ls-=9cfSsH#Nyn=_Ke|xoN>$<}W zqI~FKgkQzt$$MS#fljmf?C2+|RdX(KSUdD>WV1sT4tDY{ULtfY0ucVMQZ$6=qU6QhAjq`=*DG7`dJl)L)353AO+jhqvY5^P&-gPY8xg6+< zCECW^3Y1s)^AwE;+r1_*M#x}VhP&4_Q(ybo={SqEr_G2Rj(c0Ai*dIOCnkzzck06I z`b`#1AA0!jgCy^>+nQf;>N9m_>;2P`e?|gAr~}nwIhgMuf>k{!KE^chfEX7xLix4U zg~&$Qck=EcThZ9FjJ2DqElJChalkFSj_lgYR`6AV^a?U;^@XTvWxkWop3XuF*AE+R z#$NUS3}w8AtFg~cbkl)P*d~?awn*o-c+-6G_R{_MbaICIGO~yjiVOv+JXzSfzZA!t zT$E>=!fqeCc(P4l${=-@lXYED-5S?gcvU6JPZ%73y=hh!N5S_}G@inr8Cj$il8GVp zx{87KmXFygx8{}%+Q>i?nWeRgv9O7Qp67yt^??&Q`3ainr%1`qw=B;wmqcf#-mWjd zKNbG^GzovlD~zUb874PkX}JxJxNSt*GEXX&@$R~^7^1YfLc2?+B;CpETji6P{GK<(siEpbXFOriDN=M5+*sVHaDLgI%|8=RYTHzm54csYtbKNgV*yw}${# z1(3U&3SH-9b^0cCq}+e%G^b>X^p%L;4$rrMNXe1G%V}roOX8I8$URp}mmf3OHV(g* zwhI<@0`m$}{xaPAz&hOaw3(KL+8?K%IAGACG|-&}nQ@ci@&e?eurU3uryR*-6_WI#+Ui5W zCF412{*RDf+MJIMT;Z>EI~_`}iS`5&DHjEbFrGvi+eqIzLH}8mBZ<6y(aGw|CyAYQj>C~jG zgDuIEKW`I%P5Yd{+=98~mU`Rwy%PuF}@n zHX8%bcD;nEB|7I$Ub|lwLOFfA7j~5~&3cwr*Qcz0NeWd_z(;leEM5589SZXiW66#+FSx#wJAuPrn3h89RYj47ybl&DV z<9Wyh7ix7c;uM1=@hoRLz}I%`Nh4zR!yoc#`t*v;yWYse;w>}%Y{mSK3*1Z zvTmCB!CqIt&T6I_o*aht8V1z{TwB*g_lz9a&RFW26a|XS;-rl9_8y(?Q)(BGN>A)6 z=G-NkYzTxdzIkN5O;aEnzU!?09g`E*jf6g?M`^^mB4`MnUvm2pN3L3Aef87sJAO}B z*4x+um9ZniW$26y$@jQ)0%y2QZro}41z)`DBL0ca=7qhvqHP(EzP!sPHM-27)xNq; zn6UizFz6UN&I#@=el-OB#J||;Rq3m}0@yCt`q=MYXk+4%>4=m9Q70tL9rHN4;dwWIz?L{7G9TsuFiHFDLrbw7k#zVYH*$} z{lTi}VseV`I>JFSZI`8#WK&vAf7ST;7{uqAZ-0|GNfgGTmdlftaW~{feKHD1bs>)w zXIEXeR__L`{qY2UKuuqlX)wi^#HwBRbfc&nNr>+0fj79<9h<3@2ZlWbU($A-Pfyhc zMwn&^$#(%&mi|0t0+kkQCr(_h_FByo57HaAk~$Nk!wE3YW3fVcn%Xl8kA$l8&OR+T z_2Z%(=g&(Z&>1TO`qW142IDQQ9*n2p@eHv`BC`lItr>oA3{+S;%Vh|9wRv%G$jA5u4=V&R0$C^M&f`j{( zGS09)-4HC6*+1|4U@>KKw5$BEBygdMu9;C>9{p|FUgeqPw_L&Jy$_t{=-71A#J?rH z+XIM)9zR9)IA5ctT{ui1sAT&7*T{6hv>o; zgd!_pmxS?HmD}iSrpE^Q$s-{IJ!bV$;K1KRhGJoSu`pulB;BWV8+o1UKto>QanUDj zm4U8j?^hJ$HV={gXHF!b>?C1n@?#!dYdSYt=L*11JGw3L`}nU3k_#x81V@`KPL!Iz znW#jXa6|8)LA9rfjP%6|jCjK*rS1m?C48P!e`;n%vPZLaw-Cw#VtR+>2*6p*f_H2D z2k@IFBQV-rcSW_@L zV!44{x8;+r&ZUxY>Kq-687QycMxORNCc9bos8M!xiG)A+&lsSF#iP>hYra{z^|bD1 zS~s8jC9K#1AynXclo~);D75QIfHqw-#?2dMHrqy$%t`^Qj5MnDy2*Dz3(h<$0nBA-0A5mWV!xCjoXf>xpg8sR1d3 z7(Q7#HQghj{vmbQNc5w&3&ck7*YusiMarb3q8(QZk1ST3jKwZl>se7hdyxaF7M(g; zvqus*Ct^t+Ul>uTn@JH=3&*^;t449QJs<0b_Cm?T?)u@h7xmG}q-hFp1?_)NgSAEi zTp}ia=cMhNNBRJPArgtqh5g14wsh;*;51t{0ouB_eUFyF#Nc3}1-<6-1|~JP7m0%X z83Cvda1SmJ=F3c0Lzn!N*Bu{CCPS{6mwwOEy; z+jMC6tj0TsBad*tV!(ZEsk{?L$5Kt*{HY;X358Q_n3RN@?a6QGWn-j;b0y21@;_sO zid=W>-*5G!Tm1scbUXT6aogfW?*@Zrh6r1S;uhT0&SeOk%Qx}x7)fr728TqPhCNa;3;ykB&yPEk~xwMt3TrOhU{Qb zoTB72(She!ye=oHZRZ~Rmw6~Y3oF!3({B}aS!MOI&r5VUVEY*FSHhOWv0KM6;-Ao@ zPO#zD03f*xQ2^wwYb2oOJSoHxothCe=c9xvq{@#r?eut!R3XK|6G0yg-4=W1yKX_4h$W$1KZELXn@% zk#dUB%PVy^CkEGA&ajCnS?P*VRIRsT-F3a~WU&E;Q|XaBdd*-U)lJN1iYoz~_l*4n zq`1Dy|HM$BTl@D3^*5P6S^kh?u_)S3_CQFDY65NC7;r_LN^*>4yAt7TSEzo1242Cq zl{&67SN2Xk2piozRO5)M62=o&mSv~z7|>&YKpN17f-(sB4cM!JosE^#X(g6)ql}}k zA5wRJ;2yk}sm%f9K<_OEwX&Z#&R6C%imGg0pd7&C{3JQ8dQ3X2R#gVt>hu2K%#R(p zj>*!1*vY-BKmqEx0*CQ`NM$6xT6oK7p-RmbBg3{tYNW2zPN(OoA|{pfjNpkz*!~vW z*hbb<1_COh1h*}7FJaRC$UBU4CL|$E;+?1<8IBheToD49{6jJg9@2cRYO$*zG} z2=yYgSf4p0P*w$5F-fuCOr@-h)c;_Um=8;R$YF{=EvL0NDifTGamJOk$1#=bOaY`Q z4w>X3lmxzt7zj3EcH>Pn2#A8AfW`YvEu9pTTi_TldR6Tqb=I%XeAuBpMV=fF9_R_H&;!6m5pU_o++l$vZp6nzcQVC!&D!cqij#yN$QyqyZx1@P{)UD>H3 zM+0ABVA!tdD;okot`cfqKdZxVhZNe|0s{e_l|sB_HIj`>jZu1v^B847ge z`tu;NE>Eu0Eti*anUG;K9wSpz6>dGQ2BOnHq&Hd;Dgm=q69wOWCBo~V7q=O z>Gb~y(|DOn7(hRixNo$y^H(FwkRRqQ17~vGRr++&W@>&Rx#{7;;9YAO3caHv@j<-+ zpy|==$#B_E%x@Qdx7hsiK#WtRmA;F#fcHuyAZ@p5Fb^Jm2HVqux&H8O!U zNWLe7zIqVf?6x*HSl|pn6<$C7cUUy*r56E%EwLtuP+<%ut`6pp8K%d#$-at4})4b`4zT!RpAhxsq$KGq#dYX*xj2Sj zx8rb6Xv*NO!2wBtCgmq1iHU=kHl329F)wS{Rz6pX zZ=#3DqG0ti12OASF;FN;6i~ch3xHHNFRyym$q)DTQEVn!OB3(HC$H5ef*?)Z)3{9q zmZB!2oD&DPkyUks5NltE1)M?UdRBj(_SZH-QD-7*{Pa4!p#Frr-Vy~bVXpzN=4G5= z(%@Sw8IrAV3*V`5=jytE<9hC|Z?7z@$Vl)5w9tCTyZ5?sCezIw zjSfhKpG+P;9^?IL4^VpK&odlr;tt%vDKQqRLQV&Hc!imCZ_h^TGgjj4G~Vhoi6ER_ zKJ3i#U8XV2D-j`H-=xbKmvxk;f@IM5o;=#wMq6WMaLvSdq{TgfuqE29dq$kq3cx;i zpOE|6fL=0vZ!4_o*_G`!T{*qfIBEs0Y0@m@0ikN=K@&fOyOSOd;nWuV-s+0@Q)c?g=rh^@iu=>*;COGnee)3Vvj%J74E*N2HW(l*i)CeBHoxZr5@+FW*B_RMRy zZgZLsnzKN)k7kDt)gylm)yHLAG9oM^fRcTgnK-dp*rNI>Fl~ru7ATh^2Bs zJisI};+1=r!B!95!(23ZC0b-jE2XmOU3VT*t)jx}OmCrXY+(l!Amiu`^ee#Dm-LgB zD)%hj*%3_ZZW^Af+O@1-$qfaALTBGBjx%r;0%VT(yP(wCRFUhg^3B!e^zUBV$GdK} zx}Y8R;++DnS7tL?)A3J^j87lskzZ8`@Mixhna?Mo^-rd6hTMVAS%*_er$Mv{)I^KH z8aaMG0x47ppc1NRS4b{6y>ju)Iu=3BjP9SB2Yq%h-rZ+@PcWd1ny7OgY~EnKk-l{C zoVMQ2dX{DabZucq4_`Wy>*TR;sV-Eq^PJNbcE zSLEeZz!`@q(muGiy0fL6Z0QL#g&F%+2R)x1!R}e|Fn6ybyFUJMImR7>*$}U?(tTn) zW5GN2V}u1q4(f7~*RajCe+Ca);@gu8xZEfBcrYCaI#! zW!1jZ#|R5Dy|MFOG9!L?l*JCVP3{`(N|)w@gx8`3$aNCOg_wQMvTM=0V;!zHeDyQs z!TOFmmQF>RxQy*oE&S5?M%H92t@-Lxk7E*!-%hfv@-tL}Zk?n`yZ+FvDxw`@6`1Ih z1im*$);yqc1PCX>7v1QSH7fbcALi}WH}boGA!iM_UUq{9Ks-Pvuc!H-Ep3=0>-Z(H{UpYRGoGSSGU0Do0h}RCAy_>u? zyvR>;-X6J(b;e{f>5pi^4*cUvH-2rJeNV8Io1m<+$Ft;r+~|3=8Qz+ctL`MVzCoe0 z7mPFyPWlg^PVdG?#**R=3Xw~ziqLM&@y~xTIRW}Q z=Ywif0AU$K?j(H3?Jp*6)=K$y&i%_+HgkDDH4o^Mazne9`o7sxKX7V7QYTURm24yx zlC;mzb8jjyy8`ztUQ>LsXLU`>y;wF%n`D#PPtsYo^j=vap+vg6&1n2?fs@XS+mDcw zQNnQa$3VC{P*t^EN#xHeLhBC8eXy#=HXV9R$wRgj&tMvifg)m2u_!NFCAl99;VN=D!8*gTE$Ta~Fk13t+~pRhU%}AO z$2WtF^AI6s!*_LxNu4Pm963~1%PR8rEUt3KBN}#winD+YgLWOA^vf4-@vTmet*?dRv zI&2`Z$!d#wUE}5)mHcHFy;HJHOgBAUtBsN963^Lk6r#Rzf{O%D|7mE+UGL=(!AXq8 zWv@flZJdMxxURz`v7}@0z}Xu@+F$K_xGn(5)84p*Efc<5=3q@v--5@hL@IFTb#Yh`CRG<6A zcFkRqvM5o5tUO8$kkIG8weQGWqu9OVh(o%89j0y;a2s7ge!VENs-J8EdP5*wmM-43 zsQJk*3-Dszm2t5JX;*$f1Gp%%pH4Q1d>*v4Cs+HeM``ZKN-L{)d>?1{|^ShZu)$SIPSRaX1sP?%#m| z;BzI}$?T*}%r5luWNT!;2;`ZMKT;!B`t7F(?T`{4+ZIDs%p3nVj=X8=%bimRoZT(L zO)gKePFr(_YZ&}pgdZq(msM-@t7<3EJy0*s#HB{0h2vWqn#jvLuZHpfa^M)}57qxx z6j5%A_V8)7yo7rPp~qtORC?(5ArEoM&L$a<=!!e4L+Xs8uSVX7rtRHVlTA&%cTFpvDOD71WyOjL#jq>azYx{wFNcYG#<;x*<-cO zK%>9)$1kgvEk$;xS`douWp#l7_Z^-2&J_7|s6aD=>JxH-JCZ6I-#f~XfH+I&9iBkX z?+SQ*Mlxddwpxzr^*(h>-J+( zN%)ax)hLcOmvZM*Z_A)A$C|E18XX#sqFcA!N6;tj4%MbUmJy~z-&9^7x(q67bl_^8 z(V>*%7w+CSM`j)3bcAOlEwBFo6sndK=OJq9f81wWs8ooIMJtW~C1<$bH!w_qDoZs* z?@Fy{1LhD+5tJ^#{WcVubbczpbo(J08^N(KM`1i%)&VV{OL|!e<|dDVKv_qmrYI+j z_AVKAX9r)Bq)ajB+_Xm!gzvkgB+!mMHhSV@s%iHqbnZIGG&33OKRRhLr)%BCHQoZm zo|bQkI)FEcGXkmyKrj~d*tH7F?#ePQdw@dWldYka`JA}>Bbfba}ytdo))P9TV)9cq#Fbh#;#DM@7H4G zpO5Y;hRc>Bz%a^<) z#idq+42@*^Y0JtXDZ&>M)dw8QVIQrjTb!KIQ{#mCo7^=yMriMRf6*B5G+j@J&mT%k zrK&j^N|V1YSWKBift$SChiV}Uejs~xYNuCebnxVWLy|5=1z1X8HuOjK59~@NW;1>uxC0}=B|I&xD$=XuIVf7D^@u`Wexs$Yw zXP@(L3DY}?t%)NAWLdi-g`SFRl286>cseucrY0{=27hEE9A$NSJ>78R-18Xf)FXs1 z#^cx2Di^PztXn(D!R%K7?l%%*Y_4z#1k|vmE-m%e(mKxd8-==kgY5PPXZkdVv$?!` z&bV}d9DM$y`}1TGTaQ$p1bxtmqPq0wxA8_fwa*V<=e|;gQolLJHUky4+RDx?=OCO# z?$9=JgS2IS>a7R*ul5<&WyL=g@uY?Q~<66|goYG(8EZz?-5FzW zWXU6QKiUkhwQSvgs`s(Lc^+t1c43>FKV&jB8H4p92gnTU=f~9k3q?g-O%%%B&iF(` zbm({kp*3x84mMDmC)8If^hCE^*nDSeWT25=SuH**JFv+5EYLRW&r?PyP6>j?dF>rw zsFky>tTe5vLlc^V%F4N{+mKZiy@i&aT_XDo;mz*s?EFXce+|fw4`~i}Srz0vx8 ziZS*hkGYxyU_J58bboaPv;?Y=k>NT^rBfR^lzD^%D8$_f{Lo*zb=7aB5H_AMzINnG zK5ApuT9{=7moA^bh$A_G`a2IkE zpA*B&pzp(%wCM>a)NC(O5E+;cYD0pIEj(NZs=sf~YEpPvI}2?WJF?k5gEXfE8hpSj z1K`f9SLrI>(#5>Kpo=KY^ak&GCX$!-R-O~Rk1@PX)Z&L*3~9Y;7jUH0KMm=#$S?gC zJd1G#A8LW|7bKEQq-F1_ZCm_>R!|bKBJw5BL+gm&&paiu zZ}929S6E-ZQ|}?KXUX6&yLg1E^Ty(=IQU%C;#g*)$f^u%jq;*{qVvIDmuGYPr;F^5 ze6t5n7uyFO)L9YarEBLMHj@P-k%VtrgDCf-`z{=Ep$6mc@C9Z)=aGN#W_R-b#m31t zE&1=xz03W*DZF&Q=Oo47r;sEXMXl030ekAY0i~n+miUBsd4r$wIKcN|`}%PF8(uQK z&c*Wit2g2t{>;&^rCj_<-B|7=Zt@)2zG?+KpXCZ1CLn7p5Z14Jug?i(`ySkgZlFnC8w8yh>zd!_+tCFZtrc z-IGeDZIt7tJg_mgefGDummoiT{?r~~J-h`Om35z<$x8r${(OELjuq>Srx*qTBEaLQ z@TyD~G&uMz4|{|BWu;rI6RqE~Kh;(qKiltx*)uMo%Z)aH`ri)Cw;^Mt@i1MhKCUg+ zpjZ`Tj9ldpyeTD5uUui#u1)hw4baNYX{J=7S(_G?8srJ#Mf=PNv%(*YHx=Y!mqeD8 z^9>y?Rn6#`d7PyoQ<9%QI1_edrClp+XG_0A;V>@nH~S=^g@AW$%A{#$L4&>{e{joRM;-6TGnY}S&u zH8Pf-*q@AZ;aL$Vw8(z{_{OmuL{Of}9L+^T_MN zfWVmLrB9I8$TxJFTAQ`Hbn6AZ7kba7+ezX)6xwf?fn_in*rVf|c2ReY2Cdcs`&_ec`!MTB{894 z!1Jy*AtPxFFg|9{3NYG&a)2)l{)eqWAZLuT<>}Ks-U&iQTlnzy3eYZ!G!I&Ti$|A= zJk+P6MVRQA3*tI+x@iWjy2A4lP(y@|L8*;VlTqhVR}xA3QWg*DLH#Ob$WsQ+hy+X( z02*=ML?pP#p0OZSfzaZmW9OdlqcZ50=9w2LqQCC@EA8_ejloU_1{gUUGYjXZrktj! z<`ieT-(T;T^ds9($89j`H1^-|vetIGvnRCP>M}*w)_LA$BXQ}U{I?KMw&-84XsIuc z)h=E`HoioR6!clTABPfJ#FkwcU+e-;y@NxP4Hl5AD<3YtWXF!im=yfn#x-0)p$Y_8 zAKNt0$X_P3R6RXJ<{^WYF17(1air#id?VJ%tV9S}E+jTY_%&_4nK`)j@-G>jlj(1# zwi53ffB>{o*^&gyoi6!o#EtH9(V4lacEMx3<4ap5gkYyP%zv>=NH=0+FQ>=5(CLIn zozKsOlRP?lMz@p53ISnU{CtJ1F4h%1*Uq#NdU|Q6=;l$XpIdKpDWpwDRCAIgW{sy& zx-?M!ta(4oa^)+|TQB;eU`d4sN{|;LBhkfsKJb0LN)7(`OgBe|zdh>l%Ft3o7j<5bAy~U_`GWA!u$3w@jJHkFj><)_6I0bj34HtrdAXU zCE%4xW1wNd2a3X8ps)?c`Doc!md>l0)tX?kY;aQytC^3uFeUFJI9rdahCIqDGz4E1 zbR*yw0Eu%Dag)4tyHYb8m9A`~I#n-MU%Hy%cI9VsAH>q}fN4ExKA@5cls2akpApj2 zhlY#p63_G6l??|mL3N0lVI2nnm_CX%QsdkkIA?IPMyRhC!%XMwCD*ep%M&t#;Jx{3a@Fw|!?>+BBDqhqd_AcG^QH^S|k{(ir z@nKyAb4I{wju@*1HTceH!rB^vpPH@_$94If8DBQQBlj4V@);18bAm-hadHrWU+1@9 z)UBd*A)#F`Cy60G`N_x<6OB8Lmr1QwhV(u1v(}^)tGB2N*(jM^&g7jM*s#9S< zhjnpv9Jb1Pp-#9^MBmo}uyDy$OI#C?#JoF_?{L7yz`=|W?OcVefh1YS|N9pnx z5?Sf;1>o*62N&5{#}LDLrB&o4IczpU9dPQcT`nDbI~4k>2UeDVY|-zJ(vTeTQk zc{Bnjyv<`Z^e0=DrhrXPi^;0Eef|#Ame)g->s-h|d_ntCP*-;zFHJANP#hFlk^Aef z_c8#JYF#;(MW&|L?n)sq4&@=w2zB=^HaUGvyzfATMH&=NSr@%-t{;hTs<9`<@+=R~ zVsosZ3}krY2cSJF@xrxRA`jg@*97)BT?7keEz^qDgalNydQoOK| zA7o!yJQlmg8Y+#CdHS+NMl@>Sn2iSgAU_}N%Gb;(8c{ye8O+|VS@GfmcYif8Vi=p6BR`#gOnjuZL(W5epHA-?Ge>nxhr2Jl$VV|dOL z%f&{ex06MC$kw%}TU27vnmSEjA!K=2iwLS|wMAV{0Sd1Xyw*opiwLcRU3vPUv3>!XVhe z2Ns@*01mR@^XCu9>ZpRh0IbrwDjZ#RFeQ~Ue1HV9K0`Y81f`mFB;LbO{L`&-Im`ic6rvnvTO3yV1M8i`H9F9 zu`E|8EPkmA3C@ZJXYi4PD18H3J17{0bKJ#@qC|aZqw}3~S$YFv@trmg<26J#S#Dj4 zPS0dOYO4=r-h;+nAqIMVYPE?qrpFpjb3EWG~^ zg*b9VmY;>Sjtt~AO#8q7T+r(Jb)WKK|Gbw>1J<_^!4Y4{Hli(sOzmG_j}3J`n!_v$ z%wK~%W=;3)-&|yp^< zTdzw?^~pwU2*0L_H#x~0nQIWl*ay#gB?5&ehs~_pX$7Qs*BcqoxKT+`45cui1f$c3 z6r-suSc*w*zpbr@2%xh@a520loYp`|bfs4RFSD%k%O5lY)l`}x9nT5GB4z6y?7rzV=#&F&}eCXY#DdlkhVv7(V&##8+^@IvSURR+oVph=Z#(6^d;19&RHEud4C^XZxblDW#!I}=M7*Z7(if7{k z)kKJuC-ID_)zP;!)-_CV`AweSZ$osIebC}Bzj=A9&)6&RbF5Z4n3OC%Q0xHV5MP6d znf_gB*LKY0%kavcmFEr`cj_AtF4~bA^}I1{KsyOp+URPQjgddygnDAQcq?ty4J-AR zi7|6)koc;{kJ^3D8yrn(jHei#R9P-zj|X$gHLFUqUNvVL;m}$d?ZV^tCAy3TK5+J~ z`v}-4gCWFg@@bV~L7z)Bdvr3rlbO?xFBTAq_in)rz%Eh+EOm6xU%#+s=R z?J2LwkAXFI!*LC`)(T-TcY_Sc%qa*7KoO1A#&#&26uX`(d-#~nw7 zTI#;1NssV(kRQ)!4VyjvYj~|Rha(ZCkQic3B4N-qaKrG*M(j5yL);qws;?nSVGfLK zG}E&FdpmvHFM~Ckfj1U(-pZFc3C^4OuNKip84}Em!5wDX7J0$fN~^FKir35}yTd&g z6dyvCA_Fa!j@UH7-|*PvztO_1g>LO|YP z8Q2PCURnmaSr2)o{Pm+UL6XSdFc$R`zvR^%{f2YnOb-xd(oKGb7r!9S(B8j5m^lJO zdD1-s{$guT!xo=t9>WUMkk2cWfa3^W%?t9}z>87PUq=x$(q33Fs0_s`41ty|Jahyc zG@Kk{?F9eb}Q&3P;eA6=}liu;>vfOK%<8o1l_cuDd`;S&bi~o!6`)f>QXl6#| z7Zj*!XuNi-c&*HT<@IG12&Cls^Ihb{!0>Aq{$z?*?fe%r{TtId@{dVNtE#CLcww~O zd)>Wz$;HJ*GhqJ3o8C7kQ~5n+eox^XI6qC%FySloBuGjjQ#eJLg z@10)$Hs$-Stn39a(X;62H+IEx=^b)gHz4o+8{5O0uhAfEGd_?O_`hlMGJJrmwr>d2 zX=!P8yT&46J+~`?5x(70QPI*Wv@6aB#oiXipA}P(qk2K9K*ue|f2_O?~p4=V{dwC$dvh_xou|XiSQ1 z>i!Vc?NMrkViC-iYnDFm>kg(EIfY0mD6T1^BW9PL(t(`~sw+|EC-9R!Y$d)Dwo@80 zwygRkpZzXY2#8C&WPL$AxKXLNGAyRctwL_^6FHIXc()2xO!CJst)jB5cb!H}o3=Mz zNHsOPbhhC)E0hKEH?PV>tz!94e|jTK0eK#Npk3CufVKkmKE=l@)6CG)(lRY8%L+?O z@`0R*dAcgfA+a&ti(Mww8Jry}Bv$4Ujzj5g1~X(xw=QIM-UH08vqo{R2-C!!?NY=A zI@RkLt{1=#bj$nicly$*aCf7IVH<4hPNt=&&qcy>e!CroS370n@8VsbmfOmrlgqzf zxO6$z=g4hLb3$8hLhE=HqxoN{k8v%QU^*zox9$WQYwY{a55+$8F`MayOw|EZ!S zubTe$M}JGoNW`|4rME>$&nXj+Sph=n@`=W7lB@v7OE&YKQy#vQ$c8B9D%zNf(s-Veme|Dy$yqed@3e?I4cLpnTp@&usLIH7K7s4#8^@StJYx>Lz;Rq}$8S(AEr_GKBHJ=?9m7hRUQkQk+M`j~{~ zQ3jHM zmh01_M&GtpA?ow@*(T*uVelhcLc9=a_qbpT)=Ksz+OYT6JDk3Iv5Zgp>S% z{{aOTK2+iQJ^atAl&Cv&Wt-#B&IxCO11Tpb^(qw8UNwKHIZtAxc_w zsHC@tIMs|9ywlOuRX8|1>}%5Siy>N%9%W!{i%75fQ5CdOwxg(vmFEQ;`YE+AT0!!X zhY7mndA+I9UGdWQof-v_TV0E0w~wb=9UB zi%INM<*;Or@U`@i&R*z<4eM<5XeheX^|Fk}<=2-Jx+ZNu0PGwZ(xFjcR*(aHB)2AX zxB=n(GQNMUh)@Z|XcvX!$6q;?781RLI-hk-<_SyZQczB7^sYR^gA3E&DM?N{Uc(Z*Dq)q<$4fu)rMo)3*e2J8p3$dLcW7G-Ps0@^9!`nvJ_>b3!}y^<;Alw*Y7}Q z{T(tp-)Uxg={lxoS2E2mxdJE0->^Pv5O-&~kswBJwlICIW30|=dJH#J)ptPS=9U;G zRqaZg=DSja#fN9|jGnE(*MEF3Koo#>OK5f7BCH#(uNSWW?*UtAi2Sn!0JBY^fMAIB z{WvkeDtPq|b_?h9ZxQWZ2Ar&Z`<8IvS(D_`n-$1PW*71pYY{bP-BBPv03%!7KdocP z9*fB~xrAF>}3dVt)0$(QSr2qecqSF_8w0 zUq0j>zZJ1wmob|+ggiJY5y==lgGL^ZTPd-mdU}0=1{7=eIz$ged8--l3y7WTm`jFzv0D-&mTD``xe5Cs5N1&zkO~RQ5GH zd$7m@s#6_m&lDZDCv<2^X#Y&;(n@UWZh6$R`o5<>C1x%$s^|X3?wlCo<`@PD-KJ1l z1a@@7J%7teUkd6T&y88Y(Jvkt%PYt-UaCNA0L%&uAZ27v^s>)1GpVR}l9pBS>Z^>* z)}njW(NUkPqCO{`Of7l(mPJXPMx(OWPm{tJ-apN7xI)yyDVnoiEXL}WFH0r>enR^S)h+I zU@ykE{?_b>BUcIBre(KGC`^4OagpC24(`uU-J; zQP`E`>I`2Fs~g8Abd#9Rghm^Kbactcg_lA_?%sg5S{oP6QL3M(K#w3WSZ0kAW^RlP z;OG9v$4yNcf)a7j2bU+?(ArZm;*>>!3!vm2 z>Q>TvJWA=!b6}X=TP&+>$X}PKz&PlK?f&?H;0t1@B{?5i}>^KYz*Z>#Fkk@GKl z-nv*xo2g6a$UTcuA}OXXD**vgk}OXCp4sh6CZ0uN_x&Wok0>Z^(Y$-O?^Kt%4x>mn z2U(y!T+FQh^p^CrtW2__iy?g@Lq|S@UG2N@^6OBB(BhLP=PN4Ao}GVrbRmAG@gE3a zJ}0-mws`&Os-k>+EB~?KFiBCF%Fv712;tih@;dVVL5SfM{%XVe*I_BX+5g6B6?W^<{V%lT8cNv zAw+fkjMtJm-RS+g;z>QN^MIsc$8ZcZLk6H{V`8+3C|plG)R;z0zU6uru*m}Fd*29A zzZc=g?^!@f^@>PaJu)w$OEA!`B%uu)`rHc5Y_`gGE@P?C$q2O?<~y5q34;Fl?X?YH zaP_>lWViAKFVO7!*3j_MN$an)AmncLkj7M_5DOjoc$<6Bz^$MGzEwvku(qQ{8xgNe zj}=JT0fxu&xYw4wcCns?vBR4;W3~lh`f|IeH76qJ zJD6RMi8XhbZsN(E3ukXpPf}+`b67M~PCuh*?Bji-Cs9O^*n@$8~CbKx6GvQf4{)(T7k zJ>sLefyc5pz`h_1)e87 zRCxy$EqXXOm^HYW^l=^PH<6~M`q!c@pn~~@&wCPWunAHyRLJrQ3eV3xJ9a`yExGXs zyt_!FD~9&TGn_lyP}1Rg^{O_M7n?V4)`@qTR&!i!B{cR;5RYY%3*m-}(>)b(WSz4W z`yWZ!C%MX#NceO+tZm>3KZ)jzwj%VM9;GgFk;WJOdklx{E5&Tz57#b#yu(|UEVV8r z6?SfZC_^CHNB@cQuw&I$gd+a`>G+Inu+sYF10!gk34~#fV$9NU%RS+$U|>OI;%tg7*=l+irBHJA9G-=8ScVj;!=ulZsnB>( zx)Uv}W+dfoCcY@TZI7}Ob-LET@Z^3~$~~Mzv(prP`OVw0W-V5Gaa12hrEStZ_fpGv z9)25RI?SN?WNFoCJ#WMOfNt??a&ZUg#K!sucNb@YK`967$ipW&Ri7uDj*v^y`qWSD&&}i-#jTZkJeO&8rZeG zN5Z@vKhS2K*DW{hcjkN3`ma~En~AqlhA@)LvDl+k(|6FRs*y>eKU4Lwq&f4@#n%l> z4pa7rBX~cSmI9lgR&8G;9>OSV`SgIfWZszD!`=3GY3>guu&+3CVPR;8hKa%iPR>Y5 zcW5YL>YZpyoQOdfkM_c^A&WK?dP;P-v|D8vlViL*X+c`(U4J7~^l4Brq5IUrtdH?>p@87PfcfE@mx{q}dNJrz%=eEEhkL$+;XUeR17d(MLNf_!v|M#)@RRDurW`CM2`ddW9IQ!U^#P3(k z^4sM&5ppB>q5!aZ=07-&y-6cZbWGh+{KDSG=24mdr*6u{vAb?Nv_DFei$rw=>hnBgC)?YTcS7ePKzkbzi9OzV1p#_r;zPV6VBz3Lw z^zY_-3;AOVrD+inwT~#Y6u@Ze@4Fa&M$KK!rfT!qRhX=>GPvl0-@MpkOVhOw6Q7Cm zOvapR{#;uILyTg(U&GA2sh!9o6;y0#!q>I#?x-7qfULl^3)?h=@njR z-QWqM__xf3pFG0a4v&g(D4t1(2aw1`L_}a4+$A9Zvz*fn_F;8zhI+)8# z-KDKUoPy*tTf$zk$m}pw%v=`A3ieZLOBVBGa01walu!c`*U^hi_&Erp z1q-CB*u2g)--(GZN#2ud7Awd)c*A7@%;4F~WcxQuO#$@n{I9xGLkNsR+H})p zn6z8C#}B1!XObI}ql;|*lan9uB>sgi8)N+TEgg&t`9jr%d_r@r#AqWV^4Iu*Dwx2M zmJPqy`_n7zS8xBiTRj{z_?vKFgDN{i4#fn_J7hA3*_?@#GpwHISWyU?_)a_DK#B&b zFNon6m_IT^fy*N-Mz<`JH@wHFnpRxf(a`wp#*H&78-w+Dz*pqQFr%91#3L0knOAif z7CdtgEkTqa7yPWG@?+oQ3YCNq5kF;22tC<;x8%{aNIXxpD5!?V%bY={+G3(eb??iV zLx28cPjoV#kdvjClRJx3Yc6{jxGJnE>$yF6!d8iJ`~x0MpjzxCJt5b|sX`UIMIDd| zh#84GIW=Ezb~LSoBEz*e9m0kJ%0VjN2El|)+qqr2q6v^qS6A1k>Bz=x_YN0#y+Eol z9&*GIbAe$R9B5Ae7Da72$4sLk=$J}6;uR4qqzya=cmhCJ#9_dm^;p8#!bNvj}Pg5QQy+gPA}7zBza#GI%2z#`oPQJ#dK} z(i}E(<}{>uQ|9kAXnt1BhTBqhTgqNLwM|Ik_@s08+ig4kdTgpa{Q2pH^NP7~%?F@#$Jdv-Lms zZEl6{dy97N+$pE3S_oJIilMncRc!-cqw}>F`pML<60NbAVaLTd5w(X%T^Vu+fTkvP zDWPST{aT26?e0snKZtoWKlzZ|gQZsafCYc-&sPsio2oDj{3D2W&Y(CK#ztu^R`OCR z^7fyLBd+1C3!G9y2vt`zV7l@xh+O36WP;Bpmq6>3blaF|*jVvvY@Hi%jCB;+wf;2q|l58nMNMB#W zRW1sKu(M^uraL9rH_JX+ya@fn-4tS2zGZm!W^`0kuBrHuEwwduCr3YUcFl_P`C+|| zMVlg#q5+wOWqdz&C2QBVf#QLHNRV(B0*PzSc}xlxZ!!w?oFR;`{eYmh5pK{pNF z(^KO*2eob}>1z;Hf!>l8VUY32ARR$rgn3M`jrh(0&u~Nj2Y?52Q9pB_KvG+*8@tPU zd}%yi%h%UDI@CD-^03X*ec`5JPLIAXU7rPdLnAl+DIT%zWx=*YoAAJr=Bk9?T?EdN+aBR z)RGjDEfy_S6NPb+Q@Yyb zvCNy#Tck5h1|nCAje7b~-%OqctNvp9$}fhJ zdCS~LGSEb!@dw&nKh?+uOO0Bz$O@*5=M*2zhCtVY#D1MTbv z-or2wNa%$N3^^&Cm{fan&vF+%wO@-hfY!1P-mkAOcqoFPuOO6beeZ94=WoJfa51Hkg!Pq70 z9MUkZljBTodCj}On6)36oD#8PzxFoyRQ>PYzh8x{GdnvgVcxcDlL7C^hhz756;voaZ&Wkz&SJEQnKUXMs7`| zwYku)()#K3#V=UH+fhSzKjd0I;@RW%e!&h8ic3BThwZ~D*&ki9B zLR-h9d8MO)4a9p`542QCW1f<_e9tM<_Z*xih}06&N&b|b(Rd#@=N0qq;a#XCr^wD&7Yo7h#b;7{m|^05eQ`Fh34n; zOiiSc&u?A(&!RcGiCu9076KNL)z5fu`d3MhOy>58_d?h#*tS(@6s~G4y-(r%E5vo7nDCV zs5dk)aD{OE{fe)bU9ePguDLGt!x{s`$$+Lm^Xm^W$$Nb~TQmZ=e+DJCwHSL1;gg@^ zbD(4fnv9RdAgff-GW}@NQ@oU>Mcrai`P9}jw^kLh77BYbUBwwh&z51Q+?wu5-G-wc$HrPL zo7E=N>AO@eKG`0j8wnX0zc#~ma{c_t zJp;)}!S`4*x}*ov*+8z&jz$;Ram%4S+dRU?{Z=bEJLv%%jBurZ8eGeiE%lp~IN-;f zXY|c7-#=TDr8>uVQdf5miVmRI4k^L40S8T^SQZnes6?C&T%yIde)ktu?K7vBKHk@A zQc6GhWUQ<+_%oJjj2bNM{>zN)l(yAHqsh(pS-;niW}9;$PXXAILra%gYgXCi9+dHs zdbk4$I>`Qc=J|-EU?jHn-=fEF1)F0mK5rFQNg^9rLgY$GOKYQ2Uk6rYq|M4yTk65Q zMc83`Nu%iGj35K?WY4Ngeb(qX%-BOBWc!R8A4zkaIieX4BR?Tm(`?Ohy4#oxWGH=c z8p3Y~{UuOcny|bL8j7<6n#8nMuRHw|KrXQ5@aAAE_^X2=nZ%}=92C7z^1)LA*-QOt zvl1AS^54CCSK|~6A^@UXz@qwnHv%)gCLhOa+c4KY`l&d_=pjV2BgqfUjw-7z<@(Xz z5-^J19!eh#^|c|^?vmEQh5Qkrx94ka-fU7TnA@&{ABa9kwAaO<()jGzYINckryXlo zZC^pDT?y<6bt^c^6BxgaHc{=Pj=@pI=7n}QYKrq%HM~%kRx_U3iEGEI9#);cb^h=W zTI#0;>kx#{zld#UZi1;tGejr$VS2`XDP6r%pWD5qeL~R6?a@Kz<*l?bD(Jote-d>r zm!xErQQ1W{R~N5;OYthiBJzD8?L3}nTxHieJe<8dIyC;E`BuxzrRG^#2F+@zWA^mT zur8B$P}QZf{k1>NEnaFVF6x&QR*uQ>zmW3yVUbN-^^#5?Sry<)9OyNm!HoN5pWrdq zs|~xDYvZ9*7Yi;efP-M7`L`5`*`jGlv6WlB@%~ zgS*t~QL5sXj|VVs`s;?5cNo?x?r!}S1v`@(hNf-A&b^RRy(Xu)>qWbcNaaDvFq*qU zKDeb^%U-}6_Jq5FZa7Ca_)yKROg~g#W=C9DasWG)5-1T--r_s939F`nzLbWcY$lB) z=d`q>m%6H{HuqYimhS#eZGOdizC1n`98T~$jj-aq0XYwLArnT~qz~;K*!ioCsJ3Or!#WVr8SJ zNpkcuH>M3OR_(ZQP{+B&hzKLVxcDKFO4bPx$JH9fE5X6KP$7J}b|qp>>aqQkv79*| zTe_9Keht=yqO1P?<^X#-tTp1yUOpZh)tsRfY*`9*vJ~-<@t)krzp1>sS+1`6n--W{$W@{tl>2`3?oV}-L0O6Vc}*5n z4_j@|DB~UX!6kNgBQjiKJAfnMcOR8qX=1-6%r13qg^1dow=eE&he)+(M$IwFT%OXU zj^`U-7n3o^t1W+J2%s9&-rB$Yowc|)+qyWb>D;{Aw&Jj))NYUuFIAcPybo*_Pxjp{ zT($TJF1?flF>6eOG*O&G#OE}t$-WPi|Iupl^aRh6;o508(jlY*@KFNLg}ecMHC_f3 z(GqukkJKt6k5oB{AeLVsB-I{;>pPn#4*Kc{=OQ0R-xZrsRa3#=o zM^bI8`^|MzQsSlTsC>-X=IFkl<}ik4Eo|tvzfw4EoI$N~sUZKR`={?oC+Z+pJE!BD z?%ewKkh|bD?81GX+pQ4x@fBz1W#{?}+6GUe5OIS*yALYZ(O%zJ+~fYqzR5J)J$oCf z^IM$i#NEXP6coLe{r*}%{iKoQq4>~OQ~TA7%;FJ$LMz5Y>c`@&d9svJy7GvpqN1p6 z)wt*+fo_6G@x|50Q_`r!Y3;$g7-eplS}+@d4RFUMgwzL|Xr2#$Jzl?cfCGGPsjvyn z57jLbb8={OF;Lovv=4j>AfTo>VnpQ`b zsVO?QxrdJX>0w=MH>n@Nm46*g|9UykI`PVtsPVZ|y+y{wyIiguZhPk&(UfuB+J-tY zhNgWOtL4pc>x|mD3!!-eRkKdm#Z1(%{dz_A?p6rKriJEaM|VEq%riV{b~QVfFW+JF zSKyBU7AxKf8a-)Uy?>PjhwS^ebm*kV;6iavC=)|yX4lwkGee2eStR(q3AAo{TX6hZ zFzqE!_#lImpfX&uAsbk#9V{I4U=>9(7qFN2Bzb|cz}Ov#ovLhUdxU#M_KONsMbU_f zR3N+~4~+Q0`KZBw#@J=vKZyNXij5dcJT2Wu(g3BY?-Cu&&bKH80dQ}K>5KL$rf<$@ z`9dJmou*lPj<(RB+!v_3wB&|r6ygTOgWBu`e#|3V(jz~e9eHI|HtyG~+Nvw9RJHWN zZ}6UJ9__#7K-;A;5q!5*{)wa_yX#9~*o|{|w03%oam8QJ(e&9^=M#0#rB<*nK)>VE zbqD?xo;B?J)unj+Nz~VoSHQG@hh|U1_?+_i+%{P6Rg5=8@VDX(7G;OYrhyqjyMIqy z$4b%hI34FE+I1?CXi~K|w`JpczCOc0Dqs?9e*v5}Ac0n*;qvTna)lw#0bw^rgQEz+ zRw-$Zl9CFPh4ClmV=p2?bkvT}+jsVv9^MXOfwqZ2sKoPu&G+xT>ORVecDF+6;rJk~ zc}_dl{5r>|SKS4gnwp@-A|_za8f9e*PfWRh^N?tmUd{a3FzwnNHsgt$ilkOoZVkz` zHQ8PV7d+S;ic5QR_%L0r5@)Fx>4+}dyVl@c+M`A*Gja1UUKJ1yiKWd;+Kiy7IB>uT zE|7GVz^HP59tXCmJ|LC6CzrNQ$2;u^6@;1?Mi9|Kj|*y>Yz2EPDCM9=Zc+c=kVdQw z>BnQHY)f%snK=N;LUY{*4_>BxM{0Da1BkV}x&R60ROa=qCh!BGK8vA4e&RM@nU&x* zXrcN&H8?juw|XuRqgs7XaOlx@YyJo3j*hKscu%O#JtBf)1KgMB;JI^*N0|IWpc8^z z1YEc_gwk}iYoN9wk?M_oEt%X2n9jw|&oqoj*aTe8V2~0B?O_yha;wUJD|(&E9(6Zx zrl(QqRM0T^DggfVdgS#)%d4i3r3a+##dP6%)Rf0TUg1^K&Neugf?JRn0->DR82#*J4?y{ttucXi1%n$C%v%U^?Or((5d*hVy&DL|YH5-EOfuwkk zK_W6|(^Qa51IX`oQc{$4;VJJ)R6-f1wND@m5Z~PmyyL%X?m{HeTVbNOdZG|o@K(r? z^uxub;@~&5sOW8JHOVa|ya{B5;PDwVZWHMVNlDpxM@WMjsL#bVaRxXAW#9T-yJTz0 zED%zOl>D)13Tjs<>0qVb%R+1Z)Hia>~jt&OAG{0#>;Exj1pW5KQ&pU_83B-9@f# z0%FYiC7L5%vET2NxvL!g-8A@Ln%&U>O)gh7tt~gUd2G-Ls5}%A=c{S#l-Q`m|G;1a z4_y?e}R}O5$akILR1*o-wSLahE)Yhj<=7;`MKawnKZM~`8 zMc|Y7F-u)kgG6&=^N5dfFs+0~SXu6b=>N{Dm^{kK!WWv}o&FV*snwx;y&?kE&lTtB z$WNzCl%GvC-{V~kdgcq$SK`U(nwkZ!@~B@ZOcyCal)i&LP-~Jm+}Uz2F7|K#!32ui zOxEWkTXNhL;+&QYS9>AM{c6~gKwpmic%}|&-2d)BjBONhuz%I@qSwO>Iv0QvANNxR zpI?Xdp@{Q)bPJQtE4Z182|)O|f5$Z6s@>Hbkk)BHtQh>5AinFL0| za2CC^Ss8RDLO&!4i1eG(MUEi3hC?jgP;p$~)CXK|xH-AdB>o_n+~EycK>Uuix1(h4 zilNq;fa*9|YQQ34#}RkiST4>+I9agq!@%mgps~X#@L?Rk87Uy6y11#SsCI;p} zr~+`!5^sB)SH6R*%ak*py7dD0F9KK)VM>+VJ#Nib@K%+Yz9=pRSs-KH!qi(nTcm1 z2nbvbS4z`_S6Y!KS95OJt>bX~`xmA^18DGDP1nr7glO*nQguRx;f4UC0zE^=~Bp? zS?(tdJb)(HRX$2t`;Ki|ooDhA;_mpfuwU2K-E_+_*L{!a4WljeC8#ZZ9&0@Wa>S|G zS;0fv2an)k*g@9?>(-fPFrn)I&g$~#h)VO^qiHbQe?~_Ulh6J8H#LkchK5vC8Gf0a z_5r|w9Er?U4+B?WA!bejZ>T1dl0J9-ulMAmW}(DJ&2up)z%pohRHxi^qyr3^jr$S8 zsSn#9Mgvzyp*a};o%FzwZVcsaR#p~((Esh=U2N;SgS}T%9+BkY@BaoZNO-z$j5OAg zVRthJk7NCUnk&y{-kb3(j6MOiFOa50sC3d}9(~s-OYx(Xv}DC917l<=R=`jyOiaIsCd3`5CHaJh0h zusG4&u(SjEyb!*MNW5NV4Oe0q#&al;^2rj-$O9c3u_Ifw^EO_|5jmGl@rLoiz6st+ zvqWhy=i1Yt-a%o+7+_@u$`mw5IT^ke?VEtUd!=Bs5Y0Nc;Cpx=DG? z5NJ0kLFEq(SimYid2)3wP*;3sg|h$Aj?L017?aNC(v|y!Pk1>-8LqqisBy9J`@smb zeYG7}D&m0o4P3qkOoL2H$|gv7&`v}BG7w})+Q%C2qw8ewVe{Uz1+^r z*DS!1HPpaJS;8^&U{TC{q8*F_0UcOK;F_4Ub6E?0vS9FXRZzdKd^KD#GBXO?OPc4- zfrrNwIu5>HdGZg>%yag>zp7gyXaWfD0jAWPoX~8`5g$Wd)g2R`cBNy0YJeE$YW6-s zYHtJd!P!>)5go)XsARG86nEKM0kN3q0)6%1Y+&$!UsHn#gw3{*adl6AcvNd3?6d;=E&JnF%N{20Heb zBMjyOaK8e!Z@0Pvfkvdr*g<7&)a~wHl2Xm~u}efAcnlTA;j=p8v$Tq8i+g4v+|LWDe{cb_xiQ9U84PlymmMF0Zap_vtbKyKW&EAkuvM*g} zNS!X^sRfm{oRT1L-$==!ixICj5_55P*BcrdLe{g>aoD^cZ2zkT+Flpuq+@-W5%?j(^FZ7)ScX4|&cFHlhZ0Wm9pAzuOSGC{!X)n#< za?p$~NbMT91mr>wH)x`Ab-UPQ2~;K=@}mPDbgghtMiaU-t13=5__TrJi7d0$hnS5>OR$A&ALhYbhel>-PtL^g#qV zd=NhH+0p)(=E=^@T(?v|TIZYR%b$>~ZggM(P`;QW@D$%>I;I{cAL%ffLXIB*K+h$8Q_)F+Ue`5PV2T`Y+By3C4Z&8fg%X zz(o@L^_TG2ne!A}@HXI-j7r~~o=czA1uJ|8jX*zz~{E9jvQhqSJ!! z1sJ?yBp)B_wud40B016P>dvyh(UQ_i!2`py_cb(C;t7lks3EtqL>aZ1kZ@c|yc*MT zsh14%rtsctf7>q`F*nB9U~rnSsS3Z}A69Wp)BoVytqRSD4MkoJ6C`k%Q{lmDaFjsz zaIrA7Y3z#`;+KJqaAe~)pzydNRAIE+D}kRx0^)1yU?%caD3%xmSWW2ka`BKd!fzJ?&sp&9 zq5Sq2JbO+&1$r84ynigFg9zX7%d7(DZGBh8s#TDCu7K7dXuN`HW5~~4(>4eD?eAOd zU_Wk$t{UiB@Ed!$1Iz;f%B{e*_IT=gR_+g>J!^UA`)uc~+SB35NKpke3e?(TW01Oc zkFId?a8Mp>Yk`Sq%Dn$3dZa5LbpK2!uaHCw>LLbX2N|(rNp|Smx$S`b+NH5aAgsw9 zA9Mr(AJJl&?~p#&R8Qbbgk8L4jPm(ETN5&X$N}t)m|#EygPs~(b17_Y_UprQ2wXh{ z3jzHeE}NJ_j=}G%`{q4$;UPQ@4IF%O^r*|FOJ_hpgm!)4mVFS5t#7jxqZIpxnoial z8e$gE0s(u2xdmzj=!H54;J=-;_EpDcYlvnui)oOBk>CZb_)zuSTUnzehhUBROgy=V zy5i|8Syj5bprjm*tVK=(y(Rof2@iJ-WGs@mJUl?h)bfGF3RSxuMyW*_b8+sggh|eU z@87k-OpFTN#~`A$Q6W3VewLkz)_iK${Q2FfdV$NO;Ko4A3&@SbU8jEE_V46-#89Tt z+e>d!;U<+!Mo$^MvgVog1IK{>-qAGR3s4=IuoZMnY_y7wvV;X>PN3%?(;Q0y zVI3$q{9u1zBT{a3cjuz{r3JTxLl2@2q%7f+H;i&ju6h~#tC>&T+wQO#*3s3eD~GCt z0~zybT8+eM|3!E%M2Re0c0&5I0ETd6r?nB_y;Bdn1iTov96JG}E%Xin{FoIYMJq-X z*+3b>-R>a-Vo#dvraPy)-OV{2V2E*j$EJTp23Jq$zF2*43mK+@Me8!}wDjbUz(8aH ztE83zT>|ZRrO>bfXMh=e%50|$y|fGbLOO?z-y5U{T`)3Cj<@(!XYmHtvM6vQ8luD! zBA|s8aYVC$^rsrrm4ePZGl%O!*uGfqms4EDiRY)M{F}oJMF)G+L-s(nup^}`L61MO zhP}OCVy{&02sIc&%<_}eS)49#1L>+0%@J5u2x+qW6p{GseeY9NKNkQGQ}L^QetupC zpr?!cZ;$Y8oUtsg=%y5U5d&~cNhz|b!F;ULC%?zduL?HK6 zQRiI%fRgiY+7694*lwKuGC&bN z@AhzLXMiX%8V?(;SuF@sJQmYvDv>0H5MBm}aUZ6J(xAr-XvaSghNktF8a!v@L1(STpIs~B&ZZw5%% z>sz!z6CzhvI-Gbh7l?cTa?AwCEFR?&o%TW7*FvRax?CW1_Xia zFee~e0$Bnj`wBF8ySa%{!S9g2by%i^kI-qbX6afOjXE^>V`72^d$+_FdUZG_aUkL$ z22+imn_}_y383fpYQ({=jz1_^DIJ1kx1S>&`nT6?K$@`;?YqVw%Q1v;ae4J@oOwI3 z6~|=$DsoQgT@)Y`#RB9~i77LO;0rD`i2Bg7RJp%i$PrrH@x(Y^4~?kUOs#hSqS2gn zbmrNIm34G0`s|}sZ?>Gqpnm4|U*YCk2WAcu--j5yI2V;p}wKPtkB%baE0!1Fx>ZL3JiTzyT|sHS0L)<65&vLmw`p;wkY2qmBy$-};~gB^ zzAI<}P^v;B@7#)=fNTEX9s1sve9pDJq1|BzmW1d0deGbZ3WtJWqD%6#-Nr@X=og@T z;KlDYPAnZDwo^GB!zOuK&OpEs`nB?uvkPINYutt5)4VK3Yb&0GS5K)>qzj0@3vM#u zfR+z^i3cN+l9G@T^2?VmHBTs4!@&T&^=Iv|Jq36a3f0-w^%(Xc-@koQed=L4q_ z%%U@uLho?{2=_mKbTn=7L_RAhp6G@CJ1NTA%X1O`z!KwxaVJs;`OsOUA1KNv6fIMh%*7?8*R z2LDy}F$dLE2W|zR(am5JP3WA|n)4jY4kG z@{sm6Hr9ZMv_qrCK{W(sY3tgvFz)OZZT;Fs{WpRHy#Lgc#TPtrx^{wuoc??&zMu?Z zEAalDjvYw;EA%dq5S&+e#6CiVf^vP&fNWoO@r+#|-YA$!-(KPm%Ku`3L zvKsn+jCaWJbAGYJ;smB)4Uqiw!(F-k=b@Bn-BV$_-|l_mEIjx3Lq;;&EU}*Ne=wOV zAZ8!ow8Bsnja!M>D_M*mMOMwUev}M&gQt~OuEv3}aVFrR?19SHG6TPqw2>((;rZXh zKsW88N{JvL)u8i7#j{HoMas$aQ1<7n{5oKXwTnF^R_d3oMiKI7f7!AwC5fE;x7d&$ zdV@O66mq9o2NtG<+6P3z>4Sd><5M%te;>eABKP>~p#Pt;V)Rg;}-i>mfUUu;N zRRo9^S^*GKH+0(~INut2?0{uEs10ZS*m!*E{bR59Z8w$#k{9%W90%9MIyi316}+6V z&VZHaVO--pE~d+9S^Tr7`7P8R1usd)Z{}oVK63F6_vPLg0z1&+0xBr)fuKDNifiY4 zxW@zB3Y&-063Wau9Ws#NmX;=p`85!8A+TrHC%a?-&^{-zgZ_u2a?d;TD?mI<43QP; z@%#IhEQFoe(Co*|5)Euqh+XXwe7MBNg)5)tk5RFCuR3~L{z&z=MaMh+<<&uX0vSoC zR|3YqKJalJY${>3V9SNRpkndFuPMZNwEF4mmbI!5*hI^IV^Iy)THn*|0cCe=TbO>0XkDnwra(ne|I$f z#C~YV^PB7{L|fz^g1!OJQsfjzLEE(`h65zP#6>tNnPWd2-GA4=qHyyrDLBbU7j}{| zhW<7Ng)Z`WSJ}JrWYk+dZ}4~NSGbKV%Ww19F*cGFPD~*!1zr5D*JrQZ@>EEjh#`~u zZ)a)&MSjV6x3DeGgrlRuxmcZ8v=q2qVkxO$*)vF=Nlvx0dDItterc{arx~4GWS=~E zAX@+aVZ zaNo%+2tZtLE`1shy?2_@Rq#mhqAYw!+oy-3$_O%)8WsJSZ$_HFNNPEklWae~s?w-y zs(5DJR2=Cvk&Z_^YztUv#ves6FPY$FU#EXVd_}XP%@c#49_)rRmKCc84RV_7Q`By$ zoK0E%rm2W`CY2GiYr=dzt%AABl*L@1{GGWTStwopU=Qdlw(o4uw^$>n-oyX;_N8rG`Hnwi7_IfKPrlLjIlJ) z%8MPd?~mQI4z0u*&xeD$bXimV+R#5Dzq`>e#h?~BObxii%&@(I;b!aw=%upJ>_bv_ z;%Q8&1<`ZZYATI4wxXWA4Q|bU-DnylKxFO0(Ql{k+3PAZGQMb?i=lm4AY&|+`WEP$ z0*^M1Wbd-4CU;wr`k5CH&yvR?*-JZq>}#R~azsE&*15UgcX@&L@?22o;JYqi__8n| z^WyCOa4!RPo|#u0O#^N0`p8#)+X{dELi33vK0BzTvy<)OneBx5y@8)MIRDCkE)6(; zEQj@nV5Rb{!MmU_SsIbU4Np?;0fhYgnp2{6nX4$n^UoKjTWvkYylV5eEB!4|?woeOPJn@Ys&3Ztcu$P7&*`~Y}7qCzC zAtzkTbveeqtmgzy_f%oQVa3^ngQUg3Bz)IHhbg&mioeTWB)r|K%7H}<3+cVjNaWAI z^O7QTaNwYqpP)A|yI%gq3?cNT`VY-Wb5q!W_3ZFR7fMUf5CAQpe{-GBnA-!W!S z9CN&wE=P~p-oyC35N6ZlxsQfpIYT*}jh*$(ZcI+bk0d80Q7H{5Hy}I=)fTg77U}+I zC%AkB8@RhY?2nATt*C-xdeka$LSE1XaLdCAzrHv#Qe(Z;o~iZ1G~2>Hk@<=6aPN&< zvIFJ1Qlik_Lj5M&N>~nPC9oD6M;kA=A!pt}Ri#S%eOK9ga4nJjfPs1W(Gwk;yTp5T z4lAnE^EUaQtc?kLIAV8Ma|W_RN)(SuN|JuP^F_vR@I>|gI-#K*$881YoyK@I&~K3x&`+LHC8+G7)!f??vmC341RI11Q6dvzADz zs6lu5hN+L%mL?(pvnv6ByWjkz6%a7Jev*vO;k;F>PuQAw(<)X{qDX5qn$FwGT4w36 zdRT|yxD4+}&~c?~-)94T(SX9*0CC>K@ZzM5y>CdTG5MXX{WJan!42vwh+$I6d(Xtu z+=Mc?g8%|L6;=%>yi23fhL9x?OVO((@4bJAild9FHL-fI6+YG&SkvUn*_bH;3)72b zF#uImpa8ak!$&Y>7o1lr|JgGjid;^;{woiAQId@bx*h;x1!t|t?m=Q1)llsSW0ds{ zXsfM*0i|%T*lW5cMud@yO~{ZWL$Aa2Ki@zy&V+cI%+JX~4z<^AJnVnbPVJZDC%54| z2*l;G-32-J%?<2`|IS0SF1e9?lujqB%=E{-On8{bEiUb|r%ekz7DVbbkL<`MFx^PZ zWmsH8mVnZnn={(M?3)ohqiweMjNOTLi~IHd)0hh2OSKZ3{$d~4J>qYkK{-iiCvDfUAyD-DZaDDr$g3iZ1rB?`xP)y!`*_4%=~;9+#(V? zbaWTwZHaQ%=ADi=DlL#>6ZDSj|2%vx{>#iwTZ^KmG^IvWQQ3FOvr7GB?zeu`jH+jSr6FoM&?|}$~aw(ID02Da?=~neuL}RTWdEV(`Hf*tol%!ewQ3%yVz>AK7Dpe(%poF+Rb0Jf>?G`rNwSwrq_R`ug=N%$y#a ztW;1?;KytHZ>ssQp7$uWdG`#vW29a`_GIpDl21W#rh4Ct7cVZ&{`qcdYP#o@e2Cca z_sy8UWp?{eJoupD)_%Rz_4bRAoz=|3@-39N>KYpBVup@g`zhz+6ksv~a*G3U;ST4<+mT_R)9L@; zu)Ou)9gcmi8uCE>O|GKD&o|G>HQPnlQ%>TGZ8#z+nF9mwA{Y4iIs3@A1{*6#5(+#p00K1kpcpwz@CsnBI5H+*n78iSd$-#lHa7Zpk!I{Ayv^X8-K6XYjNaZf+LNHvzaF= z)?K>p-c@q@OM>XizKX+~Q%cn$D-E8imN*@(OY@K~&mx;%51OrZ^b2VNVffBCb?@zcF^!~OZbW}hmJXg4iXg$L-Ho0f^vO!wkU5Ck+uGIj`MG{-SDD+cn4vvBwggm+ z()wze#$#nOGfMp4&AZMR^U-ILL(AMm>Mrd}Rk(KP=j*F$SKs#IHDoW$Y+ut=60L5N zMFqd!m@u^V9FOwM3lF$}wYg7WPr{mbna~$6#FM0Kzs~>d;T5dEkYw>6w&&XPhc(CC zl0M$hF1||q{XEry>Y^^TPwyh5qyI+cY7;DMm|H}UT z@bHaZry7?4NZI~3#GPmM_nK$9n{mI*f1Wm8wqAO(OX*K8a8}wsTK-OtxwIC(-`KvyV4O@X(Rm7k9jeD(B})uiPG*6pa(ZS5}_vt=-PqxN&L+1V5v$ zY6KtGL!0LI9YF>M^)(mv`aiG+H*^Br z-mkoeG`B_6?e8o*YFWaiHh09+!y}IAP`B~Mz`ER``RC@ekGm?Hc-%TWN*o(_?$qq- z?(Qb-eU6N7xR%PF>FtIOv=m7*+5R5Bsf)ET!e!457fSir3)2oZuT_P=f+)6!34sk15ZnQuH?Bz!A(*{Dgww?;H%DNwWt@3F4R&QYN6NgyO4CN{rxj`6-yz@TZ$`9 z4EGr|71{2enVI40B4E*if`VI6YBtZf%?HPER+6Rpspp<&mc|$olTT1P&=GCd~LeaFNrwc~c2qPEJnQ zLAfj6(E7l{x&zgf$vh>QI33!dG|XO}PSdc3k>CikC+uHMbBwvIGIh(Uv{ltLE`yJ! z_KRq3UBvVc_0V1R?gyo%wKVQO%gnsvaO`u}OUM66t~)r>5O=zk*X}LmZE)|~?-NHj z;ghfO7zU~lfI#Gj7c2XDegAyeMc6o0pA*z}K-F{1=X|jM;``~!HAS%W*b(U@jEHOd3xoTVWZU%ty*bD1*29W? zJ8%7VWM}PT87V8P|L)YR4O*BQDJ<{H%*;H{tIod2xYK%ZI4v@zJg8P)+Ng8HOg?hgyC!vbFt= z1PU5uNKnQ9=$mW!{~KO)`Zc0I@%f=D(pjM(_OJ-rK!SDaD7e_1p}K*4NV3tbn^9I= z^XnaH?@O&E{fuA7FW((##=gnTlR2Bkr{M8R3kKl)b3NnDoZsh*TlG~z@*2t3D`hl- z{4H&UJ(I`Zo;|>4USxCg^Rd3s*^dqOOp}Y1S{DY61rLi%&lL;R$H-eIts0!{t4h7x zm}G2chxr_{{ofiucT29S%x`9}|L(ID#_}rhxq6czYU77I{Kt@mny#0~#r4YpKpGM{ z7NTsKR5R+ETUdDcdy4#I*UL4X*NOiJSv24L;mmcMy7!*2>k}QYL+8~)Db5-H^)sZP zUJj}|5YjXJWjX=(;RycJK8NW=WJo4Di=82^{11b!->TBPW-EI$RW}OMb`)Odh6R7R zmS(iE=_4n6RIwDz{4!_RP#wI;a7hy-GaXQDmzN=Z(G(6I;2(-cz?Z z`_}KXKy8e$O4sYF#M2V~va$pJkF76{hkF11mx_vLktJ&qD!a0TnHEJUDoL^%OU2mt zWfUPS!f&;3D&+{)rPqFmCVkY$Vp+m4jlY^v1?-#Tg!1?4$xpYVDsx#^Z;G`?{dVC?gi2(Bk&RckV>t=EG`Y>x&3_T&ea9j z7shc!-}pBT5qGhDBUouvdjfPX2QZb5C-BPXUDqJ$J>-4A55RDCY0KaC^9}NnXS2%A zh*au;U{pKqW3V{d`FJqz3mW}=KaYM;h9=+KJHu43Kmh;&1v;X+T!T~0!d^&s#hss9 zS~uvsCK`^C$-N$)ot~~v-b1RVLlO7(-zwEkI^+#iE*(Qao1+iuZ}PSX|Gb+l4KTLT zK*agR?yj!9H~+5e>{(Ed-%C!XCy(skadnn%so>SC=G|$a#y?3a6N3l{3?wnJxxc&( zQaXL4iCEoZ4UO6~jr0!~{3KVxUKD)b@ZG!L&|6uccLZU6sm8e}FGq+D>zjCIcs$l{ z}?Zhus?hw&%9C)zWg_iK{-rKuLYIGj7A~%iy{ONwP8w}n(a|5Nl zxiF>03KN%G`lkFkj%;NF1wE|m>HC$kb^y`Qv$5$-yJBp5N*u0&hFXpEXCKgw@-Wr! z6_=-=fed1o9w`wS@>!rtJO#o>Q-5}VIke&elh;zKw`7||`D6Z2ke#XKCeGWCLKJN_n>px>HTcyUN_|(J3_xSUS$TQD+Z}D@dL-hTZj5> zXv4#uNkQVzo}HLmEp@?R2heW9CY2h>l6|b)^z)V%<7A^O+sRk%)mva&>A*z zYJf2E^2*3r(|Lw9G*_-%X;-+mA0Myp>;+dnkNT4*w*b+!Sb?(=w~QOkNBIobluPyS zwv*!BM1*vDHWGp`_?>E*l9KYjEBJhQ|K%zg<+ASF<7*8R%4)4%$za1Cz;Mca8G6*# zwLq@f0qMG(3Q`xu-toU*p0a=Wr$DcC>5M-gk?ihk*ZQtQjTR+3kaRXQ>pZyjqQnA+ za&cckzW#97YyUqeb0;3$_ypE7n<-mh$=O2kQHGw?r>*ZySR5dpEsQ4u-%LyrK#TDm?FvkQq z%eR8ZWy2vbka}k?fQ|p`CuNCW|G;$s9&40x^H+KxNaObp8F~|wa?gJAtamdO zM6|f?;-YP1yZCN-0q^_JLGZs4{y7R{y7@$NVh@7Rd_SCy*B%doZaEjEu^j3t zpqrX@TV*|ZG{?n`2+0O12F7ik`ANDi$E=MDBx6@6p8bpXx*q^v($dqD%E~yXP>jq% zZ)*dpx>Bi5r==N?EPD#G3CQa%67p*XL`Y?Rt5=7rdHEVY7c$>+;D$!SUZaFbcBA6; z_N(}~TUXfL28x5;fvmTS`m+lAOGPfWa=7I?hfF+}h9L^hO8In-ye5&~MkV zN=Oc0w*UCw{`mf#hdICyE9NB9jKcNhy;L;7FnrJQeZ}NUKUt0sK7X{fHpeEZ zw*6bVQ@>=}`vtuAHUsdk?euSfPr@GT<)P4ogH%8zUY7%sRG_%A@vjKY+xPC3C|znV z<)CeBGF*A{qJ$|@=$%=@yOZo?r?&oSUf?SHp6wSGH^{CjcqD+?rI6eC3n`eLp$4Gs zcQ>c=K+brgua9%{-oI|P{4Gh zDaDIgW~d2gP*#@vzG zl3W3as@$v{iK={mNu|ue?SbGCK*@$Gd-c5xz;I2M+ld)cmyybUXe_2{W6>osLS`;hCJ<+q!#Z}4-bA>=;hAZB*-TN<^~3&) zL5Kj14&WLU^`W8(-g$C|!j;epLW}eTW^d5eceL~7`K#{5CK|Wh80WVfcZkRWVsU;K<@1-+UcXZ-6o*12N3dqk)G=*{TnPX}YwqK8RXXjV3Vh(SJ@klRffTfyZGQym&6=A>MQ4i^59r05ZP46{DwD|kXbhd(I+EKm>Qej=3B(Dq{uNG*@U#p zE-ia!u`~D;kEb=Qbq(kn&&}K&9cOy1H-`tK%0*;LEB%4Lb%=?_0L4-t3iy1!2c7BE z)==#O;_2kclb==g7@Uwl1x38&N_((L85*w4*HdgK0AMD@L6?eOb@_?~60KWq^3H_q z%yAE$kaw`jr($*04)7Cni!m~WGZ(r^WQx!Y_#wv4MK|}64Yj9FuN}f1&$EngVf1{p zfPvnI&;CW4cL@=3FPcXtQ{6~$?`yyn)UiI#*2}!I*L<7~wM@3^*-Z!=Y%qF|%XWB` zSJyu4AX;TZ;s+EkIYOY{)Bq3QR8V!SmFqV3!x*s04Tt*yx3kS#9}VhW{H6_Ui4Ik_ ziQ`zEr2|B?UcsjCNhN7?v0b_2LKa>6^Mc^qLLr@F>+6{$b93__KYmR9ubvp}=ZKA% zNEbXiI{+!PZw>y$BKzj*wucL!H3Bf@MygIw&{MfriEF!W7fftl1yPrtT^3G@a1k{V z(zz)pa|Dy?LWURN8Js5)FQT-;653;aC$s3r#vVWKDkbo9_^OCLidR8^X6b*)iT~gi zhbr>k0;k!*VW%%OekJ87M9)1)!Q=~Nw-hRSu1=*7#u4joiVYFkNeNDhWLe9)YgyA#uCx>FfH3n{(@rMjD{j#BFUYVso< z=a@$AYLv1@l}PRpVdKqJXuA)!WjqvfeQ%J+<}0tJsIClFX3;f8u57Je7JMt&s+{>r zRN+%P-5%~!Oy=Bg<0$W^OLhbRWxjTK!cUfZGqV~kGY6~EjZXZPkf^P6G;>$hilugB zZElBvlk3)+_X3#`SKxf1a&w_jmN;|w$l>DOMhGc*-WqPZV6DZf4DZ<0Up!dpf5f7< zedT7QoQ}=iHxZjajRI|8IrO03AKLFhm7$=Xs+pKv3dS1*-bbgS835;QY4nf%BT-+5%FJyOG;d zz6ULhbl2sy==nn?yskb%w7Rbn;V#4sBh3x`|9-teU}8o_AZS6tr`B##F^kR>JFbA$ zd`+Tmvr~s8Zr^J4Y#Xs0@VtNjv=d_36tU%PC9%}=qsQ?BI7~5SLtWZ(ELnunn}&%_ z*gPRXDSRyPp+JJGxwP7dXxCcu)Z6#D$o`GHJg*!oxmT^qw z0gvQa4q7Ae7X?=o2p0V^#MHaj&R^m}rkaWE|IWj2E3|eI{$!0#_cy@eI?D$GVD={@ zbl4{_NvY<;X$2@vlf)$CB(LssZMt*kGD)eAVt&70fVs`C2}dl_seTS>WBFxM_Fx^g z$>*RWeES0Hjm}slE}`eys<>h~LR=?$1qjBI>^syu_)8g@x`&XH8NqtkuPG@s-45b) zLrX484@*UwV`-}l+K^QQ&{a~}R77uGn;Jk11%OSZ-?}l6U%dE*oLfIH&KTckwY zV?ZSEhQ6}YBo-jm_;^meJ$}{|BBV*vO*!MAbu`n~xGM`@9v>Ul(l49eE*05}X&Xwg z8f*xurskmi{8&a1bSipa-t$ z*PI|~_(dB7ANOk~PM*{|mHxQGO`fDPMF}Is zN6%e2&EU6Qz1{yCWQJTJI+#K23Fn#IuI@Xk492Feg=ddD<4^XK72A=mPA-;WW_o{+ zno8|H9Z-R{6!&2VcV~OnpbbZ$I4kVfk+P81JcBtMjck&paMcg|&DWPL`bG=bHCb^U zdd`UsB|Zi`zx=W*^{FXo@V+#cS2tceBWd*!eWzNq(8G7vfZ84ZH z_4-z0-j@n4DT{dosHS87iX=^0#(SY3y7MaTT3Sj;nmtq@<$M}%PH0fdF88|0^A^v# zI_IOm)oyNBY5#+z{jjs7#*yCK8l#rat;9+>(V1u&U`*pY*a8_bLk5*fvksICgT~jgS~LXqjgPDZk3qo+pjE^MSg}PX}bsq6Rba8KV3UGN@SRC<8C+$}u6VQb=gwn| zf5jfsQjUm$nixp=3Sd>H&;rl*^X84a2QTEAx_U>7Zn<>!&uLdEtnSs;+E&I-Ch#So z^ieM9)>tTn^&#myO|Yguyd18@Oe|gNw`cqj?=1grI^x%1JvUcanaFWC8%$8t$$9Kt z(Z(C+O&g+voy^te&e{1%nUTENt*uT^iBl7X&_Z~@9vXvf4iM` zFUBKqx}>wa8((56;Y?aD>*}I9%fIskzNei?aHf{BLVvhdUW}if;<LrGK0ssdbiz@K-NW$R%H=78gF2`r6u!d_A4gMqqcvUK@L}v<4GH`A#Jqz zW_KQ)lqdBAV+QG>l_4sYZU>#RpFiL3(YOCbHV%-I$3uB8f%8Gsdh?cAdaT?*u7wyR zaS&hd?5s+gzv57Xz;I@v(7iy`rZ`#VQpc*03wm#_48Ta1ue5)AG{3i*v87Gx)KI8y!h}d<=_TAeSQ-vdnW$0$S8O-z+Sl+~70XwpN)G#1jWldA-t(4%1lxdmAI`qB0 z18(v@WCin;olwo0eVC$pQUbAQ!^E88_Uv#6o#;>IIElt9yzC%Lb@luealRAw-MJt6qB}8 z`2d?20KShfQi@xtCLd0pVl-Wz=&C%OHQf$|<>opr?VX7B?6nSsz1H;pzn-2R{t)RG z%tcuwN!w(WKTfnTraIEkMO)yD`BE{+%XDSv4sn~tCGl8?0JJtzc>4iqo+d7cUE7L4 zAV_%hC4=LsUO_3qY84_Rkz3QR1I77XHg3KH0`v3d%!o?vZuplJnz>?3y1l3{kOxm+ zVqNxHvX*hEyyJKKo^Q8qjm?*=){)BX>lQs!L{Dg(n139If)Mci;wKFB1qC2exq3Dx`|nz0(mNn43ye!6P1)*N8u3pr5M>yG@gY%B zN**48A3q+kDmRgt7Gf3ux}tncyMEm;@V>9D|9eeN#sO*1vNXKgV4lhRXc%*yF_05~ z7ig9yCsKFw?%fh4S?dg4I^ls%ICgy5X9=8t5!t0cbvA`JGB+0~R)JNo z=WanQdc=57f4Bz+C}l~QfOYJgCsW?v*7|KE6%;hzZ)c5#5B4v@MNMC&Cm-q4>pnF( z#kahl6}{uG>@frzr(pC8&hp=GcR7?l<|;d}o^-PPTpg*5Qx1Ht=WX9hZU+a*py#A} zTH2dv&vpyycT_cgB0SRFU(+5uqAqR9GtoOI&FT)}Hj8t#Eu8ao>g5{LEeLMWE_|Yo zd)r2Ub=D8ZS#R0|vdg7ur!APZeXjcG)SV(^r^|w|5fl>QW2HC3K9PcZJ&GObft8{? zoARO|9yfrC>1#>JXT|Eo40^%kZ$_p%tt6ho|(rHTsu%a<)m^=)kea&oaHC4#-ZkIJ@6 zCZF-(q@Y0HdG<`v(NQW^+R7C8>STiN2+?F$TK1H&WtB5Ci~5d?bj>a<8ItBADf<8l z;I|V68M_c;@(y6Eo>t4u-(HSPTg_@_8xU9dx6txg?wwPq6VAsBRbU-Q_4hmKhdR>G zsup4T5apHqXpxJ7`@KiA0k5WjA!lu}(zTU@dn&BYoaQ8bU26MU^j*v( zM%>remj)064?ZYzOidX~wzn2!T4D1B-yoLEjE%({rk()<+dYsF{NMXbznlR)T|TNR z-l=-(Unch4xdK2SxlRS`iGJlOEHeSi=l45G4`r1hr!SGG%5!o8dp|C60{%}LTKwtLnN0*VYg&N-$1+s5p^whOMUR0g<3Kh^Um#+rKYi+D(pw~Q z?Yfqb{#=XjcC+MQErW}T0alo-?z1OYd{EZ>ZnCS-DRYm=s6HrleRUFl_|P#wq($Xt z=?W)#5=Vv>{%9effi8#fe~Mr;?F)zXWy)E0x(N!dU6ylXO?jk3swWqIQ_)TZ%Dp?F zErw6e5(YHPi@IMr^_Ps%4sIJGXsbJct!Dj>TDo#jllR5U;>1HHPsCQB`= zABM|Y+e%@1t8Yto@>K%4zh5U9Xi`#EgAYMfwNpV5Z-IzCGT@zh#8=3GIA(kH_3x`Z&eeAxKfX+VR(gA>uCV*;zlB)o8r1fT1``GkNqNNC zvSxEpc6g0#lt3uZ_M94xp}(qC|ItaG_q@+z!2z>x+pbHG#OkQ&V}|L+n;}_EWMDuY zN6S^#Hf5LJ=Q~qHBuQo@e_)5$Uh39$JDQ}#>0a@{*Y_Tm>)Mkok{i^_+)krxx}+@M z_9S=FIR6}Z(n-s{&x_&k!r_69UNvjX0PfPDj{ji$`O4b);Tk~f9TEa2Y>w4}j{aG$ zd1^{9Af{6u#@v4Lm#pzIMfX_h?c@WI{a^7Ue2zF$4y- zy2HjMCboDb=x=N`r1p`t&K;S!Q1=Xbtg2=4ishhI@rHGc@@J`)=OVPTVnT~+duP|oE%K0C!uXg#oHccgA0x)HVnZNQEJM5dOYxp-T2V1LvZXo6uj&A)9F&tDXRP>gT;3F>oQpON>v6>yThokG8n zy=ePAjT*C%R)~~yd=o`ln7_C^!j0UHt*bi*=E8KG=VEpP(|mkcWL5wQMG`#-B6F0k zcw;lOOHtX_9DjC*3%iEKzxcj30m~xa3qD61$U9sR7H9{?rlun@QVT`3FeIlt)WqZm zr^M~}S2ZDFVKo_A`K(Zc`-8jX;xrf=ppU=NKG3F)9xzKGk&!F3c|zCPoTVrHd2z}| zz{Z~M*|eC2C)dDJY5v?A{r6&wltcT4LIukW_qw2%Td!Y}-CZ<6nWX@%y5Qvi!AwY8BpX1pJ-uf##fr{NpTKcLsA_$NikYjhGK3 z_n;|5!Y3spYx>vzGA@)`dCFc2*Uz^+3tg|ZQodIB6&fB3aTHFvhkm}Ul=L@z7Wfja zIjnV^DGtQzJ)s5W+NEz^MBa6DbWCma2Ss>swBaENQm*>}aA@^FEdS5{YX9lr^^F=B z>he&*FkHP5U@}jeOMoJJC0?MLt6AB*3t|8l;1Bq9x^XW1);VS^t(ehK=Cl642FoWQ zk`(Yk9BStuc7TG~3{#z0MmspHY))-+8Be3*jeR9$$bmi_P&Z~Zg(dw~`EBpbNzv^u z?nKDvuTS1gPq{43p6hoc6v`}ZGA{ON@UhK$TXHB`ge|XSeEjd<+8_6te_i)@u1q$n*-aH{+CT20m=I^Rj&CLkW5 z%LvPo;qw4rQJo`SU9a2T`mV0A7@(>hVp|D1Di=9XQ6zAL%FjIt%`v`@A%D+!SdNN{ z>i%YDuEp%*?Ikz?J}A^4&dC1?sCg&_R*^-7rUToX4ng_Jb{Dtw_il z()({Jh66X~x>v4zRAS)1r|WUp&a`c28KU~xgI_Y`k#Q5V=ulK^dZv#DxeOa=Vl%Vc z;5Yl=4{%q_|L$m0uW;f%TNgAOsfGw=!>Eptp%uuD4c}2$aPl}jHy0kpNL*seI6NbA zmEfy3P#0^JDKjAsg4%thwasR-mhdU`bhU%7o+r#DHEond*y7|UFz=x6cY9ayxVX50 z0G4OC`rKZAtg0(BvrxE+mxF=(uL}c>Hxmm>SZF8!G7TpCuhiE0;K-gL@Px%7IeKrf zEQiW`hSPookqkNS13rqAhCh2eHZYLh9TE$wVTx)@&m@JO?deUioahw(0Eg*zkI0QE zjr1?Mr#UbNSSdO+$d3-JB`!BWSi3MZG_(p3x(#lk@_w^&jtk9pqWs+rjg2Gz0tp7d z!n)&d7f5jS3caYr&yCZ4-YQ&(@M&yJ^XA&2xyyaVkpZBXti^Q565}N6 z>%p?oidI?tm6V5EEsJA%zeMBnjgGRy47Hd+3EfcyRIN%!Bcwmnjy#N)e;3dS1(bO+ zOilhya>Lc@pqWn~}`2cNd^<3>aq*7#nE64uZC%)K?U&CplEWdP8AzYVsf zIl)1Q#u*&#%NlF6XWyv%a4CE_0={X=T8TqWyJp9DZsk)}HQ-riCoBkW0fo{G+JL8z zAOC6)K*iY_dhIoQcitomw3{zS?0W2!xovY!00&;XLf*S7!gK;fkr&J-{P{!W|NgEZ z)7KmxWavd-@#&&T-9g;%<1oNh(YviW+kI6bWaypDnjR3TZ-b4z&y62+q|~)AF^$@6 zxiQ;SFJKPM*C(m*rv?dLxiYefwX!N4xSSeS-R8NqWc+KkM5Gcigv`(_oD9Lp&33x< z+f1j%T!)wb$RSM!@aAt7__Tc_VfdEYx?h`)qzUB*4=|8YtU9Q<}%!!XD zzPA?Oh#10BXhej=Gx9zdVzW5tS!^Q53NoUSI&Lk!yNI^E)Udi3X%ZS0Ta%M`N5*8! zpXuB=M;A{-CF=57XtfW)t?G@^(mNG5Imfr+gG7VPqQAPIFP2wSgo21>7S?$SpxTZZ zZ`L(X{6%Cf@U?;-glLTo5Gnc4p$1iOsWj5RROmT|^~?AK^i>__EvM`@wxYR7xx>Q6zDeI@Pp)8dCVF6DY(!xrZ_RVD)0*SYo{ z#vcr}9UOiek=`|Yt?)e~jknOtpA#WiZeWV(2iD+*oAPH~k1Q2>QbIHqg;UgGn?e0l zetioUT5M-}`oz&(ID1oGU&}>(&@b|wdS!{VS|EBBLeQpV9~nyE~4v6<+NDUUXV;S;89T#Xwmz}WqSXn7Ne zkvVWWn2;|si#Ti}Tm%k%J>s0Anh;&4Us33#SbeB03owdpkO?&4qX2zrhYylYIWk~X zng7vYT8He6W;{SXeitXv4`ek`WQGbC{8*eQA%tb*Rt zr=M)~o@dN&Wv0E+6#(xL)#mgJ57?D~jk0}6PebRCxhr(EV}e){!ThE3oUCZLbRC^# zzC;cE)yqb$Gx(BAIUM5dtap7<^E}+7nj))$IVTZy9vyQ7dQsGG4a9x{Wu*Fk_B+w}@rMy6Fizx-cYVU343;p!QfhurZ8>^%$ro z^-WFYBOZ(gtVvu)+5J|6s#&H3({!=PS^NJxU|2&*oQRHYH(btV+~xmy?U7N z#>#xM{Tql^SYTpu@_T@>W(#o%7RLd@S6M`499Y%S?XJBpQWwpDZPkvvtE#HH=#rsr zwv_ET*1pKJiSYD`SlLAv5=CsVZ*IqUy$?Lz5Rn~z{?uE~t+OLG*}y~tr#=Kd>LMFg zJke0t@V1$QRMl||`iGq)$GISx$-CFJ>caB_~&RV|yr z&~81qARx(sS)(-vNVR0jq!$ZcJ4_%ygo08>lNezMBi8ZSBujptct9Uh8D z1qKG*fpG6<;7P3m093SNlf4O8n1(aTe9Gu_MxWcpW+oC=b2FCEL9GBalg@dqBFm6( zDv4l3&Fl*is2OQjh>n6xqh)r?yO+k1kP&SaA68xtx(Z`$a^y{rarvwcKbuK6UgR;$I)XZaco9`%6h*DUfqO83Sfr zpkRIs@Utf`NJvOHZ+~Msb7CyV3RR0onv1M63(rmk<<_@0j&_ErO+`{nO?}_3?)*JB z5CHlZFc2Pi{@)Fas<9~j1p3;u{zufHOSh#V=63Z`8}DxNd^=I`?K5~E_mErzLHGk# zM%KO?xElr3%Rg(IbkmMQzfroE+XI^{MH;fLeUE5br%jVXGKfA=B+ZI z!lJ>f#DsPHK&ca+M7}H{GXDOosj2lKl>vgJy@5{_j~J4_wO@KeD`+3y!KUY?e$2iyy!n63#{GH~;yX+v6Al zK7j2!>|>7#T24zhkB34y80@;(QXR1se)N}l(daB_>#=B}{FF^C{`i^WwA~J2nG<+rKJh*8@!jKQ&!N zP$3D@WD6wBk6)#IO5Fxp{BYtxcM>K6^rb9uPW;gp9JE{>OpQ$)P9i%_gWN-dF2LwO zq=cYiYZ{i+X1XYh>@U6GSb)@kCRUkmKlv1lD}*7HlAbV&>NWeY==BV*!lUG}nm%a` z%1numjg3cmFsK6h7lW=^4*_+)EUBb4&s> zIjyvqAt*)|JqY#Vcnk=G9~l`_xp*=KVYyZx5y&q2(YYT};$V&Qc>E+ZVd;rhOadPL zqNJ1VGpE2WU`CQOU9Jbl9K%~&3(j%ijoP(b@6K^vFk%+bsjp##KIA)-n3EH-gXf+k z-E%0Se7zeme_dYz7C2lRr4OAFKgs?wt{<2V25xoBiDeWDT{ThNpAmZumaA=(pt0p2aVh9s=a=UbA7%N-rrN zY`JN_jPrQRAk;DdI8Q_0-u%^eU!ZkvmBI+9R|`gNBnEtW%^2)ka9>X19*f0o@`H0? z0*)>100Qh30FuinrC?f$b0wNTkUKz}21ft))$*5V4G!ywy2L*0f6w$H`K02gwh zj(xsW&KFEoURDQ+n_K1#mf)cAJ)4x)AU8s~bB~6eo#w1Sb+wOmW8w+WjycQF{v z=B!n(MbBgKRc!k5f9E_XuCHEE