ub_LPQCTJXP!@?Wr&~wv
zEp0szg+|0A{oQA9AZig$K+##n^oe9U?&uS5c1)6=p(gwe4Wj|}2#pF9ln>qV=eB*{
z;?sW23jMhetwwjx2v*5$8$lZft~Q>rjWo_?zcySIXvC$;*p5=pl~Pwm(5J@KJbROh
z-bCp2{5)I75UcXl+Txa39Z3#rSrR7Q6K-emR~`BQh7GiT2S*8l4n?y97i0h`LGc1a
zrC`MGV9Io8c4!gkgkyZq3OZW^mCv>e9+^Z3xWE_@9KbmjAsZti#N0e1!M)FexTH&v
zZna7CQP6%}N7dh8Et2E#HjX}Q5MhIdDk`O7eq|ls4oi)srzGtsF?uN-%f)Eug^f9P
zd5XBsTQ=-GjdSD=l9UW<0xXF
zu9XMV$zi@4AT+!~8fEE;=SiQM+VdoqADlJA{V*#MDH+;ZDo==I%PB?i_sfC;EMcB>
zRubJ1E=tJGv-Ky?>n$ka7ZZ<)$qfv)2*t}o*Q`^+H{aq+m3syNQjk{~yx!X720S>q
zkW3;oWGAmOulmR~cp`>Y=1UNrp{EusS6EVPeJNAN?)Y_#)jji4^Wj;SG*B3%!l*&4
zTFM(fpv*!NR+zw~AFdrO?`N7A?R@IQFZoIc3%HfkQ(G}Hh8Bzbjky~EpeHQIG1E--
zE`mV-W-PmvxJmVREU5^E{HhuSQt8YTdj31tbo+drx(}9DGUh9tGLsqagBoNiM1(4u
z7n5?{E56ZCZWxgx4BY4awKM3Udi-qDLzu%_%})Z<+2J|od}(xTC6sClNf;i+?IxN#z>Cv?-8xZa~{
z@ZsaH?Sk0RaH8#T>D6mM+7COHpzmUOyAU?UUDe?v)@n(uVH%|rjn
znzz&H%b>wOVbj2I&FZ;}uOv1>6|L#M-&W=cD+*T_bo9JmtYwMW4JCZcecm~
zz3dDP$ET|Ow9Wft&lY(Ws*REm7B_?p0$JrBq3vRSe$W=8&}XhIzK~vXnsmCNu2}E~Wul?~6rcbQ
z6n4E*iM-W>3h25dLt1qfsvq7aA&OB4M(-0jaBz+folbI#o5)F;e;1%yKl(gM!hHiS
zF0NKVjMTx7k2OczgK^<(K9bb}aG3bJIch@yaL)&(y!4l;NP>0Fco=R2ef0@O_
zUX(6X32lLC;nkU+UX?A?s3uLpV#m@J4S
z??t>bbRy9;1qhpLl^vv2SA#TwP>7mEKw}A;1G>uP(7h$PV7_`zA#TD2J#EcY>;z0H
zFAM|^Xik^Av=I)hBS|pnM=fN9hf;*NS3+bk&0@ML6U-#n;$TE;SSo!?9UmD~cBj!x
z0MrZVSbW6f=R`aOB?VuFG&$)|$Pq1vK;u*#nioaPb$-ss4Tbt}3qI
zO3mtePd{}q^XXTNUmsz2xR3trn~?f_rrDHC)E0)AkRwkTl(@E2t)8{klZ#fe)jj$-BPBu`y~RyuC)f!{@ofUisxVwOSNSJ6T0qiAnX
zGv`z@ko29VBQ9#1%>6O<-7y-CI=o+$Fay?`2nHGPN&pEmtXVQ?GKE-qF+TE`#8}w%
zB~`o@ii19-@2&=shyrZ#b<9l6lYT!{z7oPm49PZCo?syBWd#x1Lq3bm;v-tkz5?U{
z#$ZTO>w((fJ}4^}7Mh-jSKGrHC)>Qd$TGSQ+f^6=rqGS4AWzld8g^9*4^dJ&p^5N-
zyaGcZf_E{4x|M}W6xq;+`D~zCQJLcmL+q`EDKG6PVJ0EK9Ww{2S6?Ft1n6f05c
z@RRj@^B8>rE#TdpwL(}=9#@n2Qm?>ke{z6siO
zJq&O)X$EZgDyqUo_mp{j5DsZ9S&qAj;c^t*zK_VZ6nRSjGGvkZav?F=6@PZ)-cfQL
zQG+2GIOX=I(#MxP?aQ?261P@ewEnm)xqEG^x
zm{Al`;D5CI((J52vE*pG`(}fO!AQA@Swffvga~>i#9$?i#)02E45kDF
z5dc(64pAgWT;zoa^zRnCRNcr09*n&5A*f
z(9#!Rq-r7RX%V9poo9?!JCfc{KH1Y%pOc=^rNjDykC+JhIK)JA7h~B;^BXfm;2lsj
zJA#~z$zmuS-rzYdXu1lEzxQ;fp1ShH(aEgVMJ7c7Quq$PrCr^9%EQJdf*rh$JMgEm
z+;y6SnrdcHbV|Yu6BB?VcTuCYcSJ2T+2;MJXU8V(i4a-4tiGDZTU)PiNHTub@LfS}
zV`R!qm~OGiR+#%k46SX`5o;XC
z-l)YXocVrD^I_h-cru!}^nm1FZ|zba)fP=MuTy8ws;Vj?JF9k7FxqE_4iE~NLWw`y
zbw`0UG3Eo>1XA|f1q~k_h;S^HjLKO}vSfSw#`0{OTgHcyKXM@pLmvoZBe`@GSv#r+
z<8_8^(4*L{tiqtX5YcdCggs-Gc|?6MgnI=>P^vXNsUBJ52Cn+QXi
z?&>;No)a-(5i0939mTN{2FARd5H{+&*+<-=3`e)|=cX^1;vOu82&z6DDb?~xeU|>0
z6cfCAX(f{}jk9|T*ZaJY>mOD3j3&N2w3a^{g93A%TbnmG?6?(TMCELcwky$ke19Jr
z$?IB`$oJ@|s}A0CZfD)TgxVzDRn_Vfek;tcOOnZK1q%?me?AyZJEtS+L9=}^gPP1DmjLpJj`X+j^C!X93#D-
z@luEx1fT(ip~j-g+j)k4k&O{7v#B>{E{J3=!T7n%yp!5?F?o~zs)DR?lJ-+J)5gic
zP}=<2c6I1Acv;Jh#G744%89RpsDPUe@g+3|GImaY@D&NBi=LJOp?5?LK-mk#0IW=+
z3aR%uL>v23-%+CSgipoHH@oDoY7HhHX3v%Ke+>yoh7JJ2y?L|yXdPd78+R5|pJEH6
zBYtdr{T{*Qw@rVH#_=nJUh4NsZ8#-gj&e3m5IGO;YWm>t^|!sWRtl>FS8-Q@&+=mp1N2(sq;1^i@^o
zQT31czC}&_32WG~wkrXnu<=M)|H^pA2+Q$&u`b_xpUj5fBg2=cz`9gennQ5O)7q1x
zMIeRfo;0>cu4U@|k3Y_14DnFjPwxcpyN;?ZRn^Ya2$x@?bB%;IY;AMW-M#K)D5VJ~
zALr9=ak9356`ks`d^|CMN`T0#Actk;T``|_f87N2OT1bk0``p>3nDPZ^o5Nr
zOc<>!71>mrN?JxWMr5x`44?(0Y3-eliWGLA2PW>tlBP!Fe98wkPPs<0kBz8&wOrjU
zVGJJOvPYS~qrX`S-OKB7{|7Awzm6+1OD
z*FK}xP-GZKapv_EV4|7wJVa=Jo1J}JAwc{)5iIj)VaN9!xc#{&`$sZ2v)s=;=rojA
z+R>Tv1u;R7ue`W_5+`2Kt7=B|ri=fHY9e9uYYlah|B<#VPX6u7N`66#!w-};{@tg#
zN|BHk*Q)whj}M@(smHA5=H_!1NtOn?MGwKbf_I&Ue&fqic&tIrF=H{I6}H9nHn5ey
zRT6FiK;;6{6(o67xE{O+HOwSCAcPjunka9uM1jaP#ekAw+UH$!byt9W#Vh~(_w5!x
zAHlF8AxHFuC_HBp&3gJvwJ%|J2)@h9e(lpQl@G!NO+8+hFIu)~PqXCD!>z2;9gML#
zI~^+xJw)}!G~kk&3E5Cvhn7Y9uJ;C02B!^E9@x_0r)k;5|kkOp!iZz^OcYW(B%1c%?_26lfxJ>1Y*mf4KbKi)3`?T0sjypGFj5}b)=GL
zX!uhfpsD9QH{YiE^yQ8^>NKfTcaU}!#`2D8_BYoXe>DGmQ3RY9WvdMAXkOOL$s1lh
z97
zD*sY;0cs1V5UuAQ&BH%U$BjIUwyB^$!BiP=Yv#hG2rhHG;&KdGs&OXsN;ZWwSvp_P
zCmIV&AK2`+XF+xYfE}Is5-_hNd45TsN3;B3JRq3JGz=h$-)9vci_00b&COd0>
zC^tLPQ_}OvBEenm-mB%D>bdZa^xK%d<U*&Y&G{OP)z{|WP}gwXW@8J6N*RrEYQK}j@dq`P}*yM60pf)!_vOO}4l
z(ZHlFZ8e)+gv8}lS7p&Sxx8}!r=j}2V5Z{w=oWrX#Cx8`M8F&!))We9%sD7j_!v}E
z^sR~SOa!WhoI12wn+n5y{YBryi)4_~|EvbV@#(7aiZ{8G-ec^s%&!4no~xYeI_F+A
z>{~0HLFwptC6ol*q)4s$qB8Yz>=G&iQ~*oWWSF%2@O@lSl6Z+^FTgPK^Jkq2Xdyd8embbhO+u)URZ2Lcd-06!U$_O8Bv0j|
z1FCsD39^GdMaC7AkNAWw)g!PoOMP2MKl0~a$jlf+$#vhCx~OKH0b_dC|ffl%itUbR%``5q?Soi1d$Y4;FuYz(1bwS~9wtmuo|O
zz9wqxKwMR6oqMYum!&pQ4^8s+iXxxblM=RsGS;=<)(@Tdi!YSr@v-ZBZV`nRSbBH8
zRSp!0ny?kftBV!giz=pki}7_oq(CHAh1BUh@TOH0We>M`#Rw6dMlqY7}WrY1y$YpEm|BVMXur@&pBDZ*lKx
zH40>wOE4dSUNq6rG-D=D;xtBdfviIqgfj*)_4B=z|FIN^V+9j6qU6MawcJfAlY%Id
z+GG|)Cw^EID#n#r{xGReyQOtKey+@y$AFpe^Y4weRb1cBWXi#*j;W{bFH#$EiuOV}
z3O(bLj+E}-z+P?IY`nZ99;8JQG<&y@AJef~d-v-Rt&Zg9^5l|43$JKd>xXCJmfWh!
zO&5m((i%LL>aO%@>kg5RGpU6NU$shiDW$68PDu#lwA%t+?$|2WOa&`FOfM=uB<$2d
z06>a3w{|`6rK*uke{fA%^e1*UINuol-Gj6+2v&G<++{t36g8-JPUgl=XKH_8_W*%k
zjZmVp$RNy4dz4Av-9H%Hg~{jn&Y6)K~uvNj)QVW%ziXAnbn8
zH$~IMR&MR!$5`dXs_hk1d5sbZF1O0XI)Tb3oI1CWUoI2kHv|hU?BE|l5u78pjsfCl
zPg~pHO7z>_YI)l|cjG+-eO{x}YkLB%%;z)TFO@Sa-r_l@$Rc0ro`zwgdP98sWh!nN
zKCddY7`()9s8*%K%gF{tbb-ujI5j>hEDeMah5vCWxKRW_PL9|j;y03~elVzUN3&Oz
zVX|-4j>ZZe>8iym(qLFio}bi_-7G=%AalaesU%&q(S`l5%C`3NfSYT0Ete%ys*aju
z-U^ee{)w18Dr^lI6y7IlHZ`*bMjdMr?)QVMj?O}HL;JO)ncV?J-!0!>@CONA_L-Nl
zcabT4vqi0Vl*v1)!Jled;UU|4yfEpkf12xQ`teKEaXY|LjWmnd5KZava^b}=+FlM{
zTbIQk^7G5fg_sIn)Y5_aOwx;MWs^bckTJ>DN#M%E7P~Sjh}(FMP}oDFB$8YMk?1vYQ1}mmCUVhBaIcW6sK|FA5j^u3?J-Ze~%X$
zY`XY|IFS}DE&aaS=t^*sJAFsYxZ|$d@?GUBj{b|F7iQ!AfsM8cBih$u;>qLu^uDL*
zTwQy-nLF!>Fk-Q6*aLBvK~Qyiq7Q1BE+;Zg=y|Y4y~s$R{qk^Gn?UT
z5*C%VoYRjOnVOuCp~zTCS}>+=Fz2+p7->J2Q^^s0N*FdFrvOtS%*5*3`g5}K%TKEU
z8~wtTfFp*T@*5rVxza~f_%Fvj&YeLYtyYp1QQmxy+9pMhEGxAtvm}aEp23JgS7D{?
zuMs)S7t?G~A+K{O>w0d{5)8D|Wd0CqwT%?y@z%2GBU|qM1qls3;qvBVKp**)#gFIN
z^+bF0n!2NTw#b+&{YL(1#i_ve53K<;))G{2+etq>;x5R%Z<5jS@ANxM_-Uo1BP3Lr
zV(|T2!*h5@Z?9N*ugLi=p?5(TDe1y+ggoiwlVprMO~zBxxV+FjG2@UVks
zO0qD$RLsJSv7L^Q!IJhOQLR$yqBPtzf0vDs#|^)aRSe7uN*m7}rZ;j{PN95jb{2aj
zR35zi-c)tM+iaJimk<-8Lj;sTvS{^wqm^LFK~U@$mz=QU&6+*TEzQ~V7lsguI=yln6L|B+*lpEkUfBMeIb+kaW2tX3TAh&xS^k#SdO!e|T$I)DtqZpZ6
zHk6aI81s|sX(7{<-G{n0kHGFwuGN{d?w8fYhS*ici4#xz2Z$gl?Etq$)n(WyI<2HbpwG-|mv1>3B?mrt=
zzu?yLH#1y9(1{h+ilKu;2%CuD;KE=hY~+%V
z0Cq5swJs`@0?C7}CV9em=B4%7VXkC>u4e5IR?A%4X=MPd*4Fs$xhwqmxyHDPBzmInT384>bWY|&HQb!444)9S5^jF+;a=)b^xS0T
z9aQJLk;k6M`zB7WI^+d^
zho!X;ZI3TXFZ_>70gL%ggSmb=V(>p3)=ok-IF9HEVl`J!lQq>=HW@8O_~PB4l;ISm
zG0G7u7(w5v_fI}I@WiRu)s}pkHdnU~cB5vGG1YKXft~G^f2j1^x~h?1d;Yl6!heEe
z66LxeHMySq;?d$|6Zdk$RH5d|?QiLJ>Ad^%^p>RSlFrr0q%y0OT_w`VbHwu~;Y_z%
zO_;njTQ}cfa^38nGyRT+&*a9v2pV$nFrxQ1k~$+=u8$tf8>f+0jw;g>W9V4a{!+*e
z!%d&v7`3o@pQ9^HrD%@$KCUe`LSb$a?Vew?{gb&I6DdLU4+1WN<9EbP)q!H4txtUA
z(cV=>GIzmh5@On}Xsz^?`Ib-bpjx)Fez$KELf3Zq=s2?WBXCaow6QSUMweZZ#g7|Cb12kT7I=00il+2QlbS
zK#p>MwAIAd)qi+`?(Zco={QRmLt3XMkpAq8AR+H5(n@y9j>1tom{^zwiAHrGrg)md
zjhpJdy~ouK#Xn=IcK*`8K0b=SZKPo!AMV+7B`9E+m)}Z#c=+MS+y~!BI_%1%jF#RZ
z1p5-(*THcQUf5Eo(*X%D<1hD4;<>cM%S+&Q?sVV03uAE{%8sO@>u6M*3;Iin6_tVT
zhukyLtJ{WMaPAIW2mlxiwH7W+rCPU?Fghoxv-gdtagX?INa8T$S;d=D&x{+(7g%aS
ztVjSeL{WW>FgqD5Q}hFro~m@iKWw#gNh9F&(2h3J0vY=_{d6(6`d+OJ+!<
z*NnReyO2S_`e~+yO5+ic1_?f3#eNY*V_86w)?~kv|D1B6AIckPATd|zrY8YUiKuu>
zOmwI&2o-gOEJ@8JNIG4m^Jg?bCvd2OlwK!2C1BR9GauO|<{p#E3U-En*9cwMp=iuAf6TIGgDbFqx*1qh)E4%P7DrHBzo5F7#wCn~}ktsXoyP`WMt89A{CF~wtVoD0+fdcHy~{OQ>Zp;+pJPJ?gY!TwI+`9(cwI4-gI8^Q&}
zI_WdXx%LpNk)j
z!!v}!zUtZP7ZXnR?Ns|0-Jg`P-M$5~;mRfJB~3**9{Z|QSDmUFEiZaf;+&caYXK-w
z=x>5&^>?sKp)bS41QeGE;9>bwwLg0o2X{Do|NJB5TiRA}SDrn+)(7uKOerD}g?=@h*l_UH!U#vq$yLeq?o9k4tRk`vG=a%>_z@1KnT%XT<`ctKZ!PC3EQMc(9c@{DiMT!zb>NwCJ`mUH^p5v)cezwLSA;^h=Z*jQDr+??fD
z-<-5f6vqw`(-?pQUgyR%kppyTF&Rs7aw7>t-pFbv}pR%A3!28F$-D%EH+>}w}!uOiftxkQ@|w=
z3!K&_9Z8G5pkX6%g;OkFa?)5k(57B5pOi1QGWa~eqDa+K^|~1}6^C)#ay0DMO3SYh
z!)ANsONe|pU@}=cIMOk}Q)w#^)Djh9z8{^KfmQvpn)dCLP+IWqgT88&Jb5W?!9O8Z
zEE5d1*msK&*$^ixq?DMy-FvEkym?vP3RPmA{OaYS=5Ij#_sz?Vi<=Bgo3Bl}RbA_?
z!OE{Wz3(IH-OVu^zpU-l$1U8?>tv&Or@OLjNdgaQ{PC(Z`hW;n0E$tT8!1#1R~8z5
zg$NUS_D5?Kts1v;#Me^o39b9fIJTUpG^h}pP+1>F5zGX?64of5g<+6D7b+}zMuUQ$
zEw`4rm`tCPBo^h?!kwkF3Ef9dB-&rYE4E*b{JnmU%)HUt%gPV%cSoqWsQv4I`8(Q>
zlld~diN)#cy7AP}zwHR*Eg#lP-^@w5Sbu{>I_%$eMFpkHd{oXePgg)9fI?5tt%;jA}
zQX`Di*uwf8Y)R~T4T=&slD}xlrKyd&=qg{0
zJodg!g^YN;gT%tFLGHz+=0c)>NvG)>f9P^UP0fDcX9_oRs0AsxWyp$y%*gX&x1pDs
zG>~eVEf}Y_ZFg_kwRRG*MNglm
zSxfeo$OwYWDZQ$UcJ8kJ6RU}wtHd_PDqS9tmC`zz-)L*C&8(Igv&(!>o$eNG>Z*v@
zk~(vI8Ct&E&j>CESlygl#4qw=(i?97S|N%=uP758z;go?(gaG5QEeP|WxXx*iXEz|
zqvA>Kiss};ALeEmb5g~D-pb;v=!(*VxD6pb{
zFyi3l;qycoTWK;yeWv@0BDJ75XmLRf+^W576DhMeiS5iO{e)P_vZR3M#1kjxzIv2Y
ziiDx!TF1U#7#Us-2ffu~ApPe;AE*x5s)aoi^l+bl`uiZM+JZ
zchlxGqb>iL<>+(bOwCB>h|{TZ-O-y2spY~y%FnH^^DIUSD38fBo@;fKI(%pfP<3HT
zOTF~=w6C7NA_~K7Pe6LVH))>pUZ*j8^Dui(Eb+a=j33wH-6D~0m+orihjO)~FSQ4#
zGNdr|xp7N#Zp`gk_eko|6#y83qN6+cG*}9UL)f8h=^PXU6c>KN8IEDb)gC1_<~nVt
z#_VP84`#5hcZZLSPic8$ox4+eU4o*tSq+Ji^JeZ=CN}qts%)o^X`2>1I!(~>zmFKSfYlm!X0_A`j5eyHN
z)FOb&EaX@ZDCRvID>MXDC|O+9Wy}G|QODk7s!k~_ItkFq17ce{RF%p){
z(Cxqhbx_cPRP<8_o#MC8mdpI?v;$nf|N8w@Fk`8%xv;W98NoMguqu$@@+fPi+tS;o
z@6Sfv*z}4}JpP8&=teW+n|v`Qifw!GaW$JTR4!nsrq)bNH+53BeIxK*b$iB$N}FLj
z_vPfKuI_l@*8f3qaYn*R4hS+C%d|uwg$0ZB4`Ai<(YP851NFU(&7Ae#AY(&gyhGOw
zm*7UmVZtu4B;A@vQbHYVGK~<$Q+(ypitAoAh8Yl)yoe+{v`*b07-v&2()81~uZ~n%
z8Pa5}hT|L3O;$a|?FH{P%eB~&(H3j;6-i}hBm-`uQz$sjC5gf~bQegG@81(&WG_!)|A`%j>V(A=G`7ahjyh?*Kpmuxn?h>Z
zj~Rj5uQKV48;pNmG}J|h+%XC^aTb&=-z1bPLxU12F*cOJbueqK-zc6kRcF_y?x2Oo
z>O~zMq1x{wtpjE8(FfdIyl-(~*9=ZX#C5*7ClZwRc^H3tohVP-zB+aq#{m0_L%Q|G
zGB0`%rLR*6#u*m-6WXLVen_a~Nq8O3qKWT%1(%Bk?xz!Y2
z?VC{O(hN#i#^Te0h#U)*^c>GP~gEr6YH_l_0Q)k&QWB%(58}F40Ud(W>Z&o;n*nZcqbLqwf4B
zJ}w_mNMeo8A8qA`+5B+e?%#d-eK6
z0HEy-wv(}k7k?)&2iy(*>Y1K_t*6Y7(}u~0eth^IN00hpfA!4Xo=pVS>}Xj3I(-XT
zgL_fciXFP3|E{6YTp{#})$qaq)Ac$lX(4KuYlT)V14i3reHT8I7=&o%Rt-<~mW(DT
za11$C5LLP*1x{>48jGOK?M>^|$F@g9m)WnUeZoA!!^j$hiaaY*W)&C_
zqwhRZ+S~j>S!dn6>P||?xYe{ih`qQjoH!u05R|yn%)jexOe{}=m=iE&s4YzyAZ>Y8
zC*6uTNsL)z#6dWiP$Y>EmdQSGn75xkyY8cl2U)O^Smb2HAVkwdq9R5#AW)*C@h=%4
zAASr)oukYBg%Vfe?$p^ueIVhW_DYB`?9NDDbs$r2pLO>iTMp-snS5-$_h>Nyf?QU>
znG;R7;kWtad~LmCERj2DB&bqEBw_=qay2(aVdITe(a_d}0a+y5A9v4DvKk7E9Wsvs
zF}ixst(Jj49|EpemHjAOT!lr;7{v(%=0)U&w|5dSt!EivO+lE}`R}S#ZzK&aFk~RL@eR1sTYqijbOn{08J8~`-P^PELA)I0jd?M6H
zY=IAjs>!f%Hg0#rMC5$8=J=&rREJ8F!-QZShD9*rtS*Q$O(&^!7;{=Z6c?i^ZVv%=
z5U831Hy2-@dN|`qO1Sp9pi%W>?H`X_(b$sMy^&03EH1g@8pFzIdo$;jK;0LRj@}&U
z>0C6TN!2pizH*W@FyR`aU}CRTa*?N_v(b&F_IcgQVrH&m-|*;*Y#4N5vAAIquF<}s
z$99!J^p3+_%%-%2QDyTjoPc1G**;?dWJm!TVR~8rNz_<0eRsGwIlNR*lwY}ep>Jzj
z=nYxF*>XRuKN0W7eBBe~`N!HO0N<_{s%_ZgvorL*dcpvVE-RzzVi)O5Fr_eNth3Hu
z1gDjX$qFnIt6PRR=Xlfr`Ix@QXk_1-i!6@DER<+Nd_r820QZ|Tg7urUvjWtxfIFJ#xM_cHht!l~*t_Yv{Hv!GQU<7m>y)XW!d
zzaUC^?w4G`!qr0i+pY>#fEam49d~ywE?$9&wKF8Z>ft|G}z~
z^%;4&O6Nk!-}|dXhFKeT(Pb~^*id9ebhe{+5pC~2)p|7>TUXiDDaRh(^W0tNRqget
z)d%~!PRIx}s*!WI{-|haYyT%wFstp8^&1t)-Tx9RoQhJs43LLI|H$NDdMoiiiUn_d=Ra7$JN@+UW!|@Khcy&%nL=2>C6rLP2|_>VNO!RqVO#QPj!)2#tNh*ieKfImT|Kt
ztmVd=FtnTHBu1ucTKgdzDTcpM@`2~)rc1wlo+7)ltg&+sPF}Ia?N~g|yU;?Zx&Os>
zkLn*MdJO{LsChi)X<@aAn{25Ot1YxVs0^DI#yCnGx6W6~M$Hbox_{y)?%b7HJ(U+d
z87W>Yz8i8-s~i;ufR6^mT-@qZtU-``-j7CX0F}=!z&wVXQoV{sjmD=yf0BP~Y=av)
z5vdWl@3y%3Sv2A7O+v=D3Bh`uO_w`AK9mmSGAeSX63?Uvjy@RTHHS9gNplt#&f$xUco9b+d
z+E1e;G-|a+E>%x#72bQ+eJ;*?YoUabm*s58!x#Z>s(ybMy7Jt=KGS}H6S#;dR8g0v
zDx-~ZRUI0}5BWv@Lvqd3{_)Cf+q)F+k-@}5qc#|5Y&p*u
zd?JM6vQ3(DP_Z@#h(9Qsb7;Hr5Nhf?F_sB+fF1?lN%s#2LYE~h-XHdt)T5Tt5~`*?
zzVS*H>JYnn9CJiP$bS35uU`G=>6*|*6_hl7!?lOGyW2e!iV#B|W8D}%1aEIwKYMIa
zOg)H$qM80g;^F2d@u-yZGW}6Gd287_cRuRLXygIGaA!RQ7FX&=X^8_tgy#ZbsC`kO
znNQMjcWVXe%ZnP;{fpG&%gebf9-zzI118j&5G5oWLc_q!!goK1v(bbv4XgZ`fpQ;A~B#AFxY_DTpJ{?_o_Vl*=^KArJD>2jD)K5Fvpo)Ja=NhArQID}E3#_8S`
zJ(F7Yy_4Y(Ru|9|L?|uL@c8^ew|1Y>hUd;BEe_8Som24}22XVGc*-b!{&I%Q9)UTw
zMK>?Rx(K`(HE>(Oeae@6EhUsu@NXfGh6VP-!rj^&W@weIffq-t6B8UWICw{i}Y%4
z!=M+-R0duwRbpll((e_6S&dJUg51=ZM3#(a9MP?v)OAZG6#OkOEqs-be0LweB>IX7
zMhUX~OmAzKVVt)N9_PhP^==a5;ReSjWVi<5s|7Q~?_S-w-A@Rj2(COl{|Rho
zvX+^~#`Z~>xDpk9=1V30BU3=!Dpg-vV;&ryCZoG@;@M@>sb;1(UL#BSqB@;q9;K#g
z?JxQqmyASFdoehIC;Y8o-)uN}l9qp7JbF`%?-$8mJ@74y#l0nx$((Yc!y$o5p8jX@2VrK;=%*1oh_$kY=S1vBi7X1
zT5>!UZ?d-RJd}K;<>OXGHERnHZC48mFhl<{^1AzDUvXK8CJLG7+|bZ%Iu>2&_pH;Gqj_5-Nr)20_r5KuF3BR%
z>Jhg#m7Shyf7m74MrG
z)MKdgo%qXQp$N5{sG1r*yv)kWlJ2{P#ssRRS%^Yn_HD-`vs=x&~61tGW!xngATKm1Rt~l|0V@=p0i#;Wpt{I(S
zjL&XjJ$L(Sx*S>9?YN{GiaakB1H@8*rIN+$^Hq~C_Ux^AO=tuF2P<+7f5qRIItS)O
zbJjWX42`<*Z&2WvG)=BQeUaN|?63Su;mNg(UZg7RoZ&j3jTsJ?Xd5z`LEqwA-DdbK
z^Onh{>+Jt%?<=C>>Vj??4G@9_cXxLW?(Xic!3n{FyLNC0?u|Ra-QC?KNC+0B;WhdG
z^`>v|PhZdO;I3Zl>|0gm?Ap7IU$bq1j|Ex@`JS0yVe)J0EfAso(y*cA1#II1OXnC-
zc>r{7Ud)7xcrMU-3AL?xF5#TKZ+GJX*$G!TJZ;V2-IYNDl*TZa=q46K%|>?SnM|2J
zc#3N>3d%QKtcd$z2g&DHAT^s7yY7gdN7Nuu58~TZd|H&sM5?J={Sn(O4y%u0Ij;$w
ztf+I8C8S3~$~k}W=PX5>G%t6k)Zni2kglNDoe$
zmEWIfGl6UMWFDEE+3U&gxNt+?LWmq1)=YI)o?42XD)+x8c+7wlL`b4j3^1*M0A$RV
zCKt8|G~N20NKYpPI^I0A@4Rpl#IoY}u9=rY>ocdVSmHOg-ZeBa7}xAs-M4-PgReYb
zW*g}X%C+hvGvrDB!qf?dSp;Wm+0S_`*|iI;Vu6g&sHbk3Z2X~B7TG#)v8kRC_&SXE
z_7lmm1lVb?|6*q{Sp|O!6(fx*jp3Ml5u{%}?_*gN=CB@lq<<${w(@=iA+pI6W@y%O
zuu#3pW#y>IP&7H|_x{1wLJ5|ii@kuhXxorOc3_Y=EH7rp)RG1CG3t%myPdYQoJLJdPsZk*m}#*-l1{*JWwvBPm;
zWjzXs4a@P~zZ(4YrRjmj;g$Nj6a-MQ0NCUMrl8bezUiByM@X|$xDLW0j|`aTPZq#1
z>s554l=8}|v=daoe0{&Ys81eJo@CHGA$m_Z8QynAsV9U$CFX}+`N_cN7AX9AWR_~n
zl8Uk1e&B?ZE`MMEII?8)h7cR-jRK46dtTEUmTg>8NEt$>ViQ9y^q#KyPZPW~Kje68
z3}|77f}WqYNlrqsil#*v(Ok_p3kh_#p0689yNh6v%;#@2$`FafM|achC=~-o6|Bl`
zP7|G&Ho7yvm`2w&%&R7y3Ugt$Hkw5j<>ZV_@M(mxS{}1KBljR+RL)@Presy&HcGI|
zA70M4$x|O0s-mAhaalz4MweMQNIIysxRfRG(
zQd*uXNJ8UgIC2>|IVbCF*g4qW@nIif8L8ZJggMU@V}0n#iah)3S&!qEjD~Pxs<_%%
zXn!CQF2?*>IYE}iJ}aBNwrj=NoRT)$frLG`H+ne?{Si(xUCW`fEx{Hu(KH)e?SB>)
zj`LgxNP;l)OpB$+=#jw;aPLtDgOH^fU)nIrY8fl!OrG2Hun9A;m8G47OnMSipV#|0qo#lMRaDM22X);1H(*1oTLPR_z$&&r+1
z%gMFsD&sB`{U*_tH-vZtZzPOn)fqXuDYpNKvGC5n@-ud%Mx+LsK|%=7pJ|6V^4t;d
zw-&9i1-a(HgTKS
zv?{^wMjU8_TqReQSHYEr?8n6lNu3}kq2}qWKFlF1x{_P35~C$3OBS92zv{Ytj~4F(
zEE%@aN&y3L!3=VQ*|&~H8X{eG!cFKyF)@8T+@g+0-5jHrE;zgjJd{0j?nQC)@i+m!
zfiV9HF2fV|He1(oX
zc3c&-B@UM1ZnbX+Q3u{G8K}Z2OS+P5|JNSMdR6?ux`fd3=3)f^kOOVxk_r-$r^y%q@xk8H+6^Za)=YgK?UsWgXtf`mAKXi5QU*$5!fzFLqQ6%9H<%LvDY4MZ%r+y%#H
zv9j|zWQ7P55&s;;LZq_r;^Y3L>ZZ0aTR=y}u>4yFatig$&8c7or0c>JZHOiu%dq6n
zt!swwi4fa+n)W{+MSp$w3EXAoYR5146tEqj8DI1XQ@dPSZ8wF9-ru!L-YUqqV9L<&
zWo%J1%EpZ!e$GM~t7)6aFon5nkq+4%8nV2G3>c0%`3h4Xkkw;g^BNZPXCjK+=i=xW
z75$j9_5ZntFoJFz3^dK@hG!mh(r9uc!Q0v|MZ64mOahQjhp_cV|_ABg%YA*_Hc0`aYXik?ugkMr8
z-pm;!b@1Akp3ZWRB0a&e5W~tf=<$;iIGL$)SdGV#&qhSYTi-nKM7)Ji{=*roz}f8iqpXjDuoA
zJwtlGcMlAixpo|7YdvCRLcQ{QBD;Pj+!r0WS(~a#Olla(Azv$jj|!0?{jwUz87K(N
z5mBvtjq#~fe&(#IM0vbA!el?bN*|VymtYKk4D=;6J@^?Ak|}BGIO51Anf2JfJ*>?k
z8XG_aE_T~G!t4A6e2E4789Uqq^BbLO?=O$}8v)_f`Ar=w-sLe}6RI6QeX_m|L^fKT
z=fxFq?J*=5EpWQx0)dip^8f&2b()UJC9inpiBTDwM3mN-X+-{%3AWRcfS#dlR9FO)
zUiW|Al#gLIkZ+ZPg^Qh*^xsYa;{jcrNpOC+G>{a6F(6PI{S?>5!;YnfHU}$hOQME4
z-o?z-DS|x~ON<@ApH@q~WpsM-PF^}TW`^>cOohdELvE#;O6fGUh1_A!L-bJD60_Ur
zN1Rj{N9&T>c}AbGvNHtp%Rr`N``Fq^Wsp
zR911nOI4(fAwc*AyPz|U_RDS`j#rX>g$V#LqYfRHs>N(bU^p<<3ZE?vZJSc=n3g;r
z+4dqP9w}%xQUiHs0q%Wh#HYZ+n(@ddC`I~0SEY|)BJQOMnD5y&F)%Rguy18{#}IRb
z(Tezczs)bi%eQ6Dv?RDvHsH!xql-S$q)#PsjmXlL)zJxZoFv1U5IS3>Uv3HM+pFjC
zPsqb;ZYpf)M(Y5(;KDsW!bjZ$wQq^bw#!zi-UY~Zy~sg5X!%C{V*GmDYQ6S&_3_UZ
zgYJ5wdcMlJwbm)tHbi}mqtiI18k=dZaE`S6`OricT?8c&0nqZjM@uc|{I+yNBcGD)
zA1#L&c9S7GU!cH^!2od&0VsIUg+jGsDfJ?LzQs@sz?KKCRL)}#-69fB;&c$$d)ALO
zYhWV>&UQ0KjPBEe>PIKrZBix`W~XWSb2B1+Y(W}>&`Md15DZPnS7kp>(d@r~rzxYj
zK=Jhh{~+g}gL96ZGU(4Ys1V*8hOCR`39n6u$xV<4OV3EB?{)y~eyWBN?#^FCA?hK0jb7z=BPCNOqsGxU5OOJTGAQ6>`&Q
zpo&!J$xe-DlMI!?r(_b~a$wfcGx+=pMIJ&}wC~
za&tJ>ZcF-rcshVmTRxjHi)pUX?mrnKO~+(8PN6K84^(SgUyC>y;3ufqz$@~JFLIDg
z#VmtcxFHpReD-+Gy?H!R#nu{2;Xzg6qTFS^6Wa+z&YV)bVyD=n_ML;Z%IuFe<^}n0
zbqF#|q1X_T<%sj?0RP3%0GT>+&GK;Lf5)M9E#!dcotOoWMEZR$Y{jt~_t=?=3Ds#1
zq-Cv=SdmZ_A96}@h69CP>9CkCy8ldAS&f1mBGCoT92RnnuCkc%?#@h3U&Mm
zZGY0nYi#WLx%GVO3cmFCYwyUnSzbm=0!g#A?D{on9BDBxH5QhiZi%VC-CfwswWX&g(Uq`mCB
zwncs~&)Jq9=V?n#^v2`!MbRFuWuAqP?sUo)w6@LP+QX6kdj^*u>0MVU^qsa^qnTdj
zq%>6kfl%Qp!~?iw2^RRLqz(P{PN75)+g@O9d6l8xkxcR{X7fQ<6UBv_M
ziU>qv2gFB+g^%I{taDmK*%GE{7s=Y
z1CJH!OZJA$n6Y`gsd4s*OF&mV-RZgz!vhlw;{w>0>iX@LJ_TBgOlH$)isS@@{j%*n
z1-jY-f=tp9twkm{K~@u7o>lzt{kR?PvC)EQjZg5o-VHaTS_liB_9L@lRi(bgKFx*p
zS?Jim)hL@Ya@dc^l`Uf93W3fRk+KG5?}a3&M%%^5?p(U`-upS=8nvyIy`*?uT>97h
zDqvhardMM!)IMM}HQgS%4zg5
z5{t0{a9JS{h#_gH$wcWB(fziUivXzTUJv2As{42fAhYw+r7u&Loq(m$#%~k%L0D7o
z5M4|~;Qcv?W_t7HL3+N*0Ybtg^#>ko0lZegR
z29}tY^DE@;o>tvJ2T7Pl>XCINc^7d!(Ph-F@0{dxf4+VA8#L@ucHaU*6gMqi&JZ)S
zaFAJ0l-+Vz&kWN^A`G%?tf9DxVh(}E^{~NMaIvE=uPUg;yZydcKORM5yJ__!#rmAf
zo^JN974paX=zD#c=<1@LUnyy`*4&hii;X^&pvRBGk$aaHWz`Lzi-dO%ef*E|3rX@f
z@6E;6CdeXz>ZdViB9JDM0sinwdO1$h#9+I%+9CNLl=%*|b}li-#kUwj4Vl~L(Aq=h
zV*j6sBp+vN)g2)+g?NA&ECeutx_-lSYDYY`rAgDXZ)7XiXq~Ipaq1}FheGyNCy;$;
zC0+cM883D2K|UqsYUK@jzI{`)!N{y9vel>Vg|#iSW;_?`MZOkp8?Uc8Or7%xr#zh<
z=itMx6#Kn%5GRNc3^nwd+`_oJMB3RNC}tQd>r8Q_b&Tm)BP0*ini65KS54A7*#`XO
zM#4Y=X
zV)`wVK7T?}kldKqweS-Up%)Cj$}O-s4F`5<3wU<@p{@_1RHQ0(-HYO0#Jie!kQ^
z%m7hlD0OXa=oCTr&v_L>{7-8!*DK`T*;u~58voJj9273T&m(E&pB*Rv;0Fnv4Yqm+oL8~iENgkWzdJSgYP%(82FM7PP(!V+ce>0@3DKAT02dP7E
zuVWPHYBI65K=yL~XgQQ`L3w}AvVYg}@ef{_>wX8qWJJu{H(9#d2`QFmg$T-|S=CBN
zjK7V++26|NN>tmG+$Vph@lg%mb(VFocMtn+kIwMy*W*_0buSFAtaHFmhPE)l
zyxF7mXvWH-*oJ(A_17Be6TH9U)yxKmRpO+UWC$1qH2(jMAp3kH?J~DrURNUPZbS
z{fSi|7=|S=07g?3Kv84q9e2Qtq;&VxJQ^leCN6@>q4(g31op&@7T<2&d^{(sv5k`|
zrV~i%845!Oze9mRp?3&IkZA5Hy6jTlpIwD8Tiy>^@XnNcN#-dEA#B{^a#p_=SHgTLfS=1@oGO(bs
zzZEe^l&|&YpzKN|#>uwQ;1B|%7Zx8OJH2@1?wVQ@O&
zQ5q+kHf+fS7Bwcf>`ZWsp@JeSqXr=9iceeSSow%UEtTZ=$hp^?nVC&
z?=uz_GBSF#Ez6PG5X-!TT%LGSybQjm2G{Nnk4dM7BA!s)=0-}Ly5pAKto8&PhkQ;)
zP*#+$-F>4T^n|LXqaQ5v8SiP!tz~4hjm46P4PV5J3Y-E+o{Z#O=A_4u=Ce&hT0O19
zm)N!Jra0h?tS@eruBCYQC`C{&nwjEvGP^Z;8#>IXd`i;~qH0XncRg#iz~%m19zG%j
zQ=~BSAkvGia{oln7mDwo3K@8s?q5F
zpBRcZoeUBKeGuo^_im`rr;Hk|dt~pB4&^w|EU{uOt}pp0;&@E|aojf8b$83kEPD@_
zg|U7l%+H!sab5lLP~HAJ6}iCpx%oJ{6)0orl!~75MK4hs^!3np%gL^ueXk4v5nlRH
z%cae3x7>B9g9~KW$IQai0thqHQeu`5oab)ee|jRU_jHoof47`K1{j3G)CA&LnBmnN
zAX!WPwLS02!Gg_w#v1`3h60vE>s}fb%w@XKFqzR{VZtmUwpE11+4WkoDhX1%Yp{tI
z6H8Iv$A8Z@q}oxsT`_rpSD`;4O$ub(F#tj#Y(Vkn86q==0V~I2zfh0YT^z?t-!#jw
zFf>1`*epsF9!-Y0Bt#Q9Oj)HVv+TZq=Hpa~uVF8*SH{)3Yc;=4j`y{N9s&;oi_X0$Nccc^$vB3>2zXJ(qY-&hDqI}>!_a50IX@QWIL6ts*wYzLZ
zBIV7TQ1u23mCI*&cMkVNMYLl7_Hv|gH;z2B$!TK08AK31!%{e*gWO~kYjlPy|7#Cb
z{_59{Rt&&nIzeGukApK=x7ia<#d)8>Cc}p&g3TWcMI4N@|q+zgbrS((LTl!26v9fc_f{ggeyDzdxensh-92{eq>?BB-KVMA?JO&F;aKs
zIUAqpC_^c?6T$}umZ?=(L}veV=3Lc%l@+uv9Uni
z@J4-~R^~w?%
z00U6;Xw!g2A@p3K>E*%_#ramudSDWmhg3mj?qH{4^qbW?Bc$1Sz;s5DZN)5uTKrEf
zHNt+)Mj|OSX2Y05+{T3M1e69sqcY=(4+d&r;Chd7!=Kw(0^RlWo$r1Z#tBptkzKE6
zw8p1~<6WsG2k<8yoakF4aVBX|y(k)PJQRkCVm>^Vez+ZsE*4En%I6-;yEg)_IC;$N
zPZ&5bhj>L(ub11u`WD0}e*QbAzEzU!Z9T6QKHm4y2=bwopV
z)WT*VWYp?MTB8ebx{-HpS&k#_rddxdT7j67VH?2&Qg|>HI24#5a=AK)7z^?!5{#nM
z15=lnqasoK#VA;NEllnXXYRR8e->?oAdnxJu~-)jng<&isK}}8jM{rR8WG-kQ~&)H*`CqNF2Wk5#$S17>m&y
zvTyj$IC3r&asdNU5IpZ!{s
zuA918Ytp=T&tAZTKfreaA;ZZZt`ixhyh3^@C5K8+1Ee>^B=s7`{}etzfOUc1=4d{7H45I_myeh(z!c0Kwg~0$
z3B`arWV42I&B*VcQW{O_DaoPD@*j~oOLDcE7ET{G2>0?$pu!m5A@+Lyv95@BN5jPs
zRJmMTAUweKIAk%XB^ukKpaNj6w2y4Hpkl&OS+#w!!dfhUY+fojd3E(3D!8lz+o?C&
z_&fXkAbw-UpjU7yDbb3rf?LpbDxq`p%M)z4kMv`ksn@KUj;Z+hsY|i65X5Nt;mrzR
z!{TK2JgHopzqF4Ur)EPkQPLgay8)5qN+-)-uHv(HS}u-BR(8IWzZicOCUHsQskS@i
zuR4~^$ua9G<-dr$A;c4PBhNK2PsfcxMGBd_1Tjg@&?$@;whXre$RJOEMxD8eSE1?7
z!&lfyyx=Ocs*dv3j3a9KzOD|iq;t(;7BBySJS~i()Iaj}clBTWBrqrx{4q5#L&|!!z(GBOjwj6y_}J|!4|$`w$JW(@Z*8wpg>8Q{yiW_XN=6C>
zLchqH0_xDm
zOd_!2Thk?(P_U={OynK2Ih`U~X8cS_H-^S&M>&m*rVa>|#|uH2-5HBAIHtFC4eO=F
z_j!%&%uO&5h6|}*ER_;qCrYibka2&oaK7NngY)5O78!iz-eEq8QkkP4+C!3s_S6vE=
zo6k-{f4_mb$xukym^csGs3pJ1eMfI_weV+HC`=VW+*=76
zmcfA>D%6EJNK`6JDol&3%F-uU{)f`T!O}9`YUXam5qNDyb_F@EHTu3dR3#DwznA_M
z%b4;P4j7qH*OTCM^_yHom1Il74NF}ICh36YWbIS=MLt05Sc|O_sseY1V2F^CD}+`7
zU381urj*i|{NdN;c47H35osC^)u`6&3>Oz_%x!GVF}}p)H#F8y!RqESzl&AfCmS5$
zgc1vV8f`KZ%{zHrYiM-z48anUC#!HsR}mT}DZgEiskkN9lU?h+-+@#;6K6wz<2Vw7L0tSi7f|f*R>u~;jA@Hz@0EYV8=CMmiV?-y1iaoNW
zGi510eFL11E4kDaFjds$t4xIRPg#Lm*wb^XxiTyxxx6n$od!G%kE^BFz;ouDN#d_+
zt#l1Cp3jCXq73w%hQ#jfMrw2IIYG)+AQJwKocbV!36U8ML%9&6qG8^HLh
zA#3iMeT(c3JW}V>IQv`1TY5h%nU0CeGgj>&oJuIgLxF|_G_6Z4f+@u`48WFRlxjH_
zwws(%a4NB9Ac&X>mZeBwafLEJglg?`Nf^FapSJqEXsyYy9|sMh*bwmJj+8bkHk(&0fLIGi^IKue?<949;N;<`;eqk>Xv~7%ff5xyM57V
zA>dcECAF?AFVw}ma()IULmM@HM+{|kq|S0sllO4=YT+s2eO~7LlL60|rsp3FNPvnqG}RdQQVUi8M6{l*3>QN7|{r0o!<~
zNE3n=;Usgf#QN{h{5~$g;!{S@Ya__Ojc9bydsI(%(S^Xd>wy=OcDH^Jv1#fRX)oJP
z%C+lr_=LxVpZOnUKi*tj)Tt)zbiz>iO>d0ZXRf|XY;j#(J>aw&r8ZZBxE71*lb)D(
z!e;NPjq=HZ8>wOr(Gi;pWr+ZJ76m*)e8jv0VoG_D7~kFLxBdutv~mGp*~H`0Xrfsg
zdvSxJIE!b3B`|wWd&UeKzMCc;L4BusLiS$~2Sf-lxjbtPiC$~n`X6-Wv69oPeHQ-x
zKun97g^@>e3_NJEgkH_u~M)D&%-oc#M^9evk@9Oz#i
z3gQwnQ%*+a>ZTOIr39D*FkQmMKoDN85VDtpOst2Ub&DTGP0aW$$K2Hs@oU*u~n9xOl@l9=o7&%7901{6WRLUSt7^kmS)
z+zLav=*O(cct7Gt1d$S|>;(Sp?l*AFPKobr#`OiBA5WY!9bVoOs#hL4%Z8haNxKyn
zcMuIM62_$W6C;TpDg`#GeH}TNv`BwGSKIO4z?4My^m}TN1i8XtC0QGzUe*enf|DlJ
z26fE>qSzd&MhV!}vs4f2LLn3B0iS#4MHoQVeP!qrc511ip#CgA!79_)aNBc{(>W{!
zzYc%!LrPfcvRu$IFO?W~(l9p8@Fv8)`zC=X7+j3KNdNv3&H6X$i`@g^ngfV+
z%R%K>!SR84KYy&Ex?*~2qgm?k<#EGMa24k(g@;bgJdFodm&!Du1#A(_Ha=Mpr@|i$
zkq@rVE))sDwZz8j=_CU7Nu?pXZGwop8F8WEE;IT%hAnx?Dc8#H9)x53=u3AG!B-}H
zO4me)$|Tp~Vq{s9@7fF}R6dg-{W<#*Cs7`YzaF0Sou2gbpl?b{g+acN%
za4C?E--l8XoU$Zu*k*Jbp+Yh>SQF%-
z{toL%w`Dha0PM}tl)%#GKThYyqWye53w(*GGB@?^cO^rxgO!=0AtJ8&2%=GndJ{BK
z!@y=r&(U2Hx-vn|L$Ksd7_wyl5Gs1p%S8b4wI*gQ{3xrD^T^OODle>|TnW!p)GArI
zMG~8;a{DnGh{DiPR3Z&>3NWNSrQ6HeI3C15cuXA?e=rPJU5M&R0eNxjT<*TCYqTc0
zq70ujM$bqcv7Nm%r`daK-l1%=X2hO|aQ(t}cG
zEBxPWZ`BfgcO{$ZC&6k|Q)k865_v38ur8dGsx+tg@ng`qRa*69O8xzx)w1CfA4}1R
z6DxAb$VVnmpG@-xr|@ej#`8Ts`KGsWUnX3=8h8DuaJ0?O7Sv=-7K@-?+SJ65cdie>
zAq<;tdObT64|u{V`Q>yTXAHR|q6mr#0C4JKH7d*bW-q%Rw&8vKcsfT%oFuGK_`0qocfYX#*KDyEw)dS
zayPVKYeR2EVTM9JYxBqCvS;9KbZ@9EASriqBmXvuFK&5tEB<4A7h9X+lky8UiPJ_G
z_)i7K-9hD$ZcJLm$_#lb`Z2DvvZTQBygvLCtxZeT?n0jXAc#SScVf#z6>R70TF%z(
ztbNC4W-9|QPlL;249gsdxaCKjITn(ao9CP{;rub^q^)eA8^uZG+M02?AqQGLp4Cf4
z(PZuS>CH>O-K>gKg(GAPInn%CqLgkzHhJ8J4Q-0~Gu8xyg6ZTsEmBOwqv2D$QDu8j
zfkRtX23`>54FU6WR|Ld`fhK
zp~mtmkC){ykV;u})GMQvb+U4vPr?#^2s=gyYg>!goQ9aYVJ(khQXN>mAw(7nn{3|y
z?TomF!33caBK1LSjEAMEaqd0>y!pGl>Ee>{aC$TFu(U|b_DfL7O1)h=nZ?}}4=R#v
zG=5I8H-=7^`7~sliu6EnVyV_Y<05i*_fKOwGzqev)|X?!kx1lXdaR@hRjG^#<9Weq
zHmFikQE8|nk@XoZ(u1W?dA{Or=%|g>#{6~m^2qcr(isa_9P~53xi~LErhwIxpwqJ1
zMnuC^K2SgJS@a-Za$Opp)atzq2q3}}ux@$CXz-X2vYX$(O;T+kR}^9);k*NR(a-%-
z_V9Q}Rm#c8ljz=NAU93%qRL;ptQg7U(1R5v$2ub
zPUgXhWNwu{#8xz!(A8ME+}ZT`!df|OUBYC{u2orNfv?!7>1F#)4Yp)Mqi1Spw6{}i
zNAki~`JfLAN|q-D=)ZKQ>DGqJAu5q1d*p(T)`OMJ5TXiazqb^o
zH6;qN9B-}xP@u_w&pFEtv0d@uFa)y4k;97k*GUz1yHw3-41^$M*jcIh&|hBYJy_
zJX)X%TiKvqO-pM>z&tSgN1s&$>%9jPtPZNkSYa=h40zLe(bmwp=
z13uq1Y%Ke*=4<8j<$?TyrdZnG7x{5Ve!Tgjt`}=M{Zlny5jvD)j5*%8xh9jQMgb91{GNT^
zX($v%d1FR(dD$yoJmjrNI06J(TI&CMy;)pcsy?smV^H|xR3qCa%tz&YPJzweyiIS2ShasDdE!xwZ#
z>rk@BjQK|&@bDmaYi*YySe%jQQ>qWLY;taTvs|_bSSPaM5JD$m!vTWy0TKoyYB%Sv
z8yoW-8y#QU#Xhq03D^ali2@iE0Fg)0-rroSk!`)r_zhE-ncD{><6L#YC(huZ%^U
zz7#`c`8EWDd$4ow0n9#rhV*9(5ANK?qx<(zuyT@`%^|EV#_KzXcs&?%p|Z?_;h_Pz
zy<0Idp1@FS6ub2xI**^k)q%5enDlk-B!EIjY8p<(r#@wwr4T{z)tn1scW05K5~xkB
zDDimFdbk6lH?LtOot9O_H}DF`GEFALiS;#dEu_gv6poTEl-5WS*cS?+wxJP|!*N)a
zC2MV^wH%$HTkS_bl~CL=`5
diff --git a/packages/website-legacy/src/app/auth/[provider]/constants.ts b/packages/website-legacy/src/app/auth/[provider]/constants.ts
deleted file mode 100644
index 4b7bc6cbd..000000000
--- a/packages/website-legacy/src/app/auth/[provider]/constants.ts
+++ /dev/null
@@ -1 +0,0 @@
-export const PROVIDERS = ['wargaming', 'patreon'];
diff --git a/packages/website-legacy/src/app/auth/[provider]/layout.tsx b/packages/website-legacy/src/app/auth/[provider]/layout.tsx
deleted file mode 100644
index 4f3113bc5..000000000
--- a/packages/website-legacy/src/app/auth/[provider]/layout.tsx
+++ /dev/null
@@ -1,9 +0,0 @@
-import { PROVIDERS } from './constants';
-
-export async function generateStaticParams() {
- return PROVIDERS.map((provider) => ({ provider }));
-}
-
-export default function Layout({ children }: { children: React.ReactNode }) {
- return children;
-}
diff --git a/packages/website-legacy/src/app/auth/[provider]/page.tsx b/packages/website-legacy/src/app/auth/[provider]/page.tsx
deleted file mode 100644
index a3e9773e7..000000000
--- a/packages/website-legacy/src/app/auth/[provider]/page.tsx
+++ /dev/null
@@ -1,89 +0,0 @@
-import { Flex, Heading, Text } from '@radix-ui/themes';
-import { useRouter } from 'next/navigation';
-import { useEffect } from 'react';
-import { PageWrapper } from '../../../components/PageWrapper';
-import * as App from '../../../stores/app';
-
-export interface PatreonAuthResponse {
- access_token: string;
- expires_in: number;
- token_type: 'Bearer';
- scope: string;
- refresh_token: string;
- version: string;
-}
-
-export default function Page({
- params,
- searchParams,
-}: {
- params: { provider: string };
- searchParams: { [key: string]: string };
-}) {
- const router = useRouter();
- const mutateApp = App.useMutation();
-
- useEffect(() => {
- switch (params.provider) {
- case 'wargaming': {
- if (
- !searchParams.expires_at ||
- !searchParams.access_token ||
- !searchParams.account_id
- ) {
- break;
- }
-
- mutateApp((draft) => {
- draft.logins.wargaming = {
- id: Number(searchParams.account_id),
- token: searchParams.access_token,
- expires: Number(searchParams.expires_at) * 1000,
- };
- });
-
- break;
- }
-
- case 'patreon': {
- if (!searchParams.code) break;
-
- // cannot await here because async breaks router.push :(
- fetch(`/api/patreon/auth/${searchParams.code}`)
- .then((response) => response.json() as Promise)
- .then((data) => {
- mutateApp((draft) => {
- draft.logins.patreon = {
- token: data.access_token,
- refreshToken: data.refresh_token,
- expires: Date.now() + data.expires_in * 1000,
- };
- });
- });
-
- break;
- }
-
- default: {
- console.error(`Unknown provider: ${params.provider}`);
- }
- }
-
- router.push(searchParams.return ?? '/');
- });
-
- return (
-
-
- Verifying you...
- You'll be on your way shortly.
-
-
- );
-}
diff --git a/packages/website-legacy/src/app/components/Checks.tsx b/packages/website-legacy/src/app/components/Checks.tsx
deleted file mode 100644
index 7f08b73b6..000000000
--- a/packages/website-legacy/src/app/components/Checks.tsx
+++ /dev/null
@@ -1,191 +0,0 @@
-import { assertSecret, idToRegion } from '@blitzkit/core';
-import { Button, Flex, Heading, Link, Text } from '@radix-ui/themes';
-import { usePathname } from 'next/navigation';
-import { useEffect, useState } from 'react';
-import * as App from '../../stores/app';
-import { CURRENT_POLICIES_AGREEMENT_INDEX } from '../../stores/app/constants';
-import { PatreonAuthResponse } from '../auth/[provider]/page';
-
-type Extension =
- | {
- status: 'ok';
- data: {
- access_token: string;
- account_id: number;
- expires_at: number;
- };
- }
- | {
- status: 'error';
- };
-
-/**
- * Wargaming: 14 (refresh: 7)
- * Patreon: 31 (refresh: 15)
- */
-export function Checks() {
- const mutateApp = App.useMutation();
- const logins = App.use((state) => state.logins);
- const appStore = App.useStore();
- const policiesAgreementIndex = App.use(
- (state) => state.policiesAgreementIndex,
- );
- const pathname = usePathname();
- const isLegal = pathname.startsWith('/legal');
- const [showPoliciesAgreement, setShowPoliciesAgreement] = useState(false);
-
- useEffect(() => {
- function unsubscribe() {
- window.removeEventListener('scroll', show);
- window.removeEventListener('pointermove', show);
- window.removeEventListener('pointerdown', show);
- }
-
- function show() {
- setShowPoliciesAgreement(true);
- unsubscribe();
- }
-
- if (
- policiesAgreementIndex !== CURRENT_POLICIES_AGREEMENT_INDEX &&
- !isLegal
- ) {
- window.addEventListener('scroll', show);
- window.addEventListener('pointermove', show);
- window.addEventListener('pointerdown', show);
- }
-
- return unsubscribe;
- }, [policiesAgreementIndex, isLegal]);
-
- useEffect(() => {
- if (logins.wargaming) {
- const expiresIn = logins.wargaming.expires - Date.now();
- const expiresInDays = expiresIn / 1000 / 60 / 60 / 24;
-
- if (expiresInDays < 0) {
- mutateApp((draft) => {
- draft.logins.wargaming = undefined;
- });
- } else if (expiresInDays < 7) {
- const { wargaming } = appStore.getState().logins;
-
- if (!wargaming) return;
-
- fetch(
- `https://api.worldoftanks.${idToRegion(
- wargaming.id,
- )}/wot/auth/prolongate/?application_id=${assertSecret(
- process.env.PUBLIC_WARGAMING_APPLICATION_ID,
- )}&access_token=${wargaming.token}`,
- )
- .then((response) => response.json() as Promise)
- .then((json) => {
- mutateApp((draft) => {
- if (json.status === 'error') {
- draft.logins.wargaming = undefined;
- } else {
- draft.logins.wargaming = {
- id: wargaming.id,
- token: json.data.access_token,
- expires: json.data.expires_at * 1000,
- };
- }
- });
- });
- }
- }
-
- if (logins.patreon) {
- const expiresIn = logins.patreon.expires - Date.now();
- const expiresInDays = expiresIn / 1000 / 60 / 60 / 24;
-
- if (expiresInDays < 0) {
- mutateApp((draft) => {
- draft.logins.patreon = undefined;
- });
- } else if (expiresInDays < 15) {
- const { patreon } = appStore.getState().logins;
-
- if (!patreon) return;
-
- fetch(`/api/patreon/refresh/${patreon.refreshToken}`)
- .then((response) => response.json() as Promise)
- .then((data) => {
- mutateApp((draft) => {
- draft.logins.patreon = {
- token: data.access_token,
- refreshToken: data.refresh_token,
- expires: Date.now() + data.expires_in * 1000,
- };
- });
- });
- }
- }
- });
-
- if (!showPoliciesAgreement) return null;
-
- return (
-
-
-
-
-
- {policiesAgreementIndex === -1
- ? "BlitzKit's policies"
- : "BlitzKit's policies have changed"}
-
-
-
- This website utilizes cookies to perform analytics and personalize
- your experience. You can learn more through{' '}
- our privacy policy.
- You may opt out of personalized advertizement by visiting{' '}
- WebChoices. By
- using BlitzKit, you also agree to our{' '}
- terms of service.
-
-
-
-
-
-
-
- );
-}
diff --git a/packages/website-legacy/src/app/components/PageLoader.tsx b/packages/website-legacy/src/app/components/PageLoader.tsx
deleted file mode 100644
index 6c36d4b5d..000000000
--- a/packages/website-legacy/src/app/components/PageLoader.tsx
+++ /dev/null
@@ -1,9 +0,0 @@
-import { Flex, Spinner } from '@radix-ui/themes';
-
-export function PageLoader() {
- return (
-
-
-
- );
-}
diff --git a/packages/website-legacy/src/app/layout.css b/packages/website-legacy/src/app/layout.css
deleted file mode 100644
index 7a8709d1d..000000000
--- a/packages/website-legacy/src/app/layout.css
+++ /dev/null
@@ -1,8 +0,0 @@
-*,
-html {
- scroll-behavior: smooth;
-}
-
-.radix-themes {
- --default-font-family: var(--font-inter);
-}
diff --git a/packages/website-legacy/src/app/layout.tsx b/packages/website-legacy/src/app/layout.tsx
deleted file mode 100644
index fa14e9662..000000000
--- a/packages/website-legacy/src/app/layout.tsx
+++ /dev/null
@@ -1,78 +0,0 @@
-import { Flex, Theme } from '@radix-ui/themes';
-import '@radix-ui/themes/styles.css';
-import { Roboto_Flex } from 'next/font/google';
-import { usePathname } from 'next/navigation';
-import { ReactNode, Suspense } from 'react';
-import { Footer } from '../components/Footer';
-import { Navbar } from '../components/Navbar';
-import { Party3 } from '../components/Party3';
-import * as App from '../stores/app';
-import { Checks } from './components/Checks';
-import { PageLoader } from './components/PageLoader';
-import './layout.css';
-
-const robotoFlex = Roboto_Flex({
- subsets: ['latin'],
- display: 'swap',
- variable: '--font-roboto-flex',
-});
-
-export default function Layout({ children }: { children: ReactNode }) {
- const pathname = usePathname();
- const hideNav = false;
- const isRoot = pathname === '/';
-
- return (
-
-
-
- {isRoot && (
- <>
- BlitzKit
-
- >
- )}
-
-
-
-
-
-
-
-
-
- {!hideNav && }
-
-
-
- }>{children}
-
- {!hideNav && }
-
-
-
-
-
- );
-}
diff --git a/packages/website-legacy/src/app/not-found.tsx b/packages/website-legacy/src/app/not-found.tsx
deleted file mode 100644
index 47935cef4..000000000
--- a/packages/website-legacy/src/app/not-found.tsx
+++ /dev/null
@@ -1,41 +0,0 @@
-import { DiscordLogoIcon, HomeIcon } from '@radix-ui/react-icons';
-import { Button, Flex, Heading, Text } from '@radix-ui/themes';
-import { redirect, usePathname } from 'next/navigation';
-import { PageWrapper } from '../components/PageWrapper';
-
-const redirects = new Map([
- ['/tools/ratings', '/tools/rating'],
- ['/tools/tank-performance', '/tools/performance'],
-]);
-
-export default function Page() {
- const pathname = usePathname();
-
- redirects.forEach((to, from) => {
- if (pathname.startsWith(from)) {
- redirect(to);
- }
- });
-
- return (
-
-
- 404: page not found
- Where would you like to go?
-
-
-
-
-
-
-
-
-
-
-
- );
-}
diff --git a/packages/website-legacy/src/app/page.tsx b/packages/website-legacy/src/app/page.tsx
deleted file mode 100644
index cdc95374a..000000000
--- a/packages/website-legacy/src/app/page.tsx
+++ /dev/null
@@ -1,104 +0,0 @@
-import { Flex, Heading } from '@radix-ui/themes';
-import { Hero } from '../../../website/src/components/Hero';
-import { Plugs } from '../../../website/src/components/Plugs';
-import { ToolCard } from '../../../website/src/components/ToolCard';
-import {
- compareTool,
- discordTool,
- moreTool,
- ratingTool,
- sessionTool,
- tankopediaTool,
- tankPerformanceTool,
-} from '../../../website/src/constants/tools';
-import { AdMidSectionResponsive } from '../components/AdMidSectionResponsive';
-import { useAdExempt } from '../hooks/useAdExempt';
-
-export default function Page() {
- const exempt = useAdExempt();
-
- return (
- <>
-
-
-
-
-
-
-
-
-
- {/* */}
-
-
-
-
- {!exempt && (
-
-
-
- )}
-
-
-
- {/* */}
-
-
-
- {!exempt && (
-
-
-
- )}
-
-
-
-
-
-
- {!exempt && }
-
- Other cool projects
-
-
-
-
-
-
-
-
-
- >
- );
-}
diff --git a/packages/website-legacy/src/app/settings/page.tsx b/packages/website-legacy/src/app/settings/page.tsx
deleted file mode 100644
index 0ab5fc4f0..000000000
--- a/packages/website-legacy/src/app/settings/page.tsx
+++ /dev/null
@@ -1,28 +0,0 @@
-import { Flex, Heading, Switch, Text } from '@radix-ui/themes';
-import { PageWrapper } from '../../components/PageWrapper';
-import * as App from '../../stores/app';
-
-export default function Page() {
- const developerMode = App.useDeferred(false, (state) => state.developerMode);
- const appStore = App.useStore();
-
- return (
-
-
-
- Advanced
-
-
- Developer mode
-
- appStore.setState({ developerMode: checked })
- }
- />
-
-
-
-
- );
-}
diff --git a/packages/website-legacy/tsconfig.json b/packages/website-legacy/tsconfig.json
deleted file mode 100644
index e0e6007ea..000000000
--- a/packages/website-legacy/tsconfig.json
+++ /dev/null
@@ -1,16 +0,0 @@
-{
- "extends": "../../tsconfig.json",
- "compilerOptions": {
- "plugins": [
- {
- "name": "next"
- }
- ]
- },
- "include": [
- "src/**/*",
- ".next/types/**/*.ts",
- "../website/src/components/Performance/PerformanceInfo.tsx",
- "../website/src/pages/tools/session/_index.tsx"
- ]
-}
diff --git a/packages/website-legacy/vercel.json b/packages/website-legacy/vercel.json
deleted file mode 100644
index ab0a7d9c2..000000000
--- a/packages/website-legacy/vercel.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "buildCommand": "yarn build:website",
- "outputDirectory": "dist/website",
- "public": true
-}
diff --git a/packages/website/package.json b/packages/website/package.json
index e8cfc3a57..129c8ef72 100644
--- a/packages/website/package.json
+++ b/packages/website/package.json
@@ -4,6 +4,7 @@
"scripts": {
"dev": "astro dev",
"start": "astro dev",
+ "lint": "astro check",
"build": "astro check && astro build",
"preview": "astro preview",
"astro": "astro"
diff --git a/packages/website/src/components/Ad.tsx b/packages/website/src/components/Ad.tsx
index 706e90b5c..16bb0a53a 100644
--- a/packages/website/src/components/Ad.tsx
+++ b/packages/website/src/components/Ad.tsx
@@ -1,8 +1,4 @@
-import { imgur } from '@blitzkit/core';
-import { Box, type BoxProps, Text } from '@radix-ui/themes';
-import { uniqueId } from 'lodash-es';
-import { useEffect, useRef } from 'react';
-import type { Vector2Tuple } from 'three';
+import { type BoxProps } from '@radix-ui/themes';
export enum AdType {
MediumRectangleHorizontalPurple = 738182777,
@@ -11,65 +7,65 @@ export enum AdType {
HalfPageVerticalPurple = 880185176,
}
-const AD_DIMENSIONS: Record = {
- [AdType.MediumRectangleHorizontalPurple]: [300, 250],
- [AdType.LeaderboardHorizontalPurple]: [728, 90],
- [AdType.WideSkyscraperVerticalPurple]: [160, 600],
- [AdType.HalfPageVerticalPurple]: [300, 600],
-};
+// const AD_DIMENSIONS: Record = {
+// [AdType.MediumRectangleHorizontalPurple]: [300, 250],
+// [AdType.LeaderboardHorizontalPurple]: [728, 90],
+// [AdType.WideSkyscraperVerticalPurple]: [160, 600],
+// [AdType.HalfPageVerticalPurple]: [300, 600],
+// };
type AdProps = BoxProps & {
type: AdType;
};
-export function Ad({ type, style, ...props }: AdProps) {
+export function Ad({}: AdProps) {
return null;
- const id = useRef(uniqueId());
- const dimensions = AD_DIMENSIONS[type];
+ // const id = useRef(uniqueId());
+ // const dimensions = AD_DIMENSIONS[type];
- useEffect(() => {
- (window as any).msAdsQueue.push(function () {
- (window as any).mmnow.render({
- adUnitId: type,
- elementId: `${type}-${id.current}`,
- });
- });
- }, [type]);
+ // useEffect(() => {
+ // (window as any).msAdsQueue.push(function () {
+ // (window as any).mmnow.render({
+ // adUnitId: type,
+ // elementId: `${type}-${id.current}`,
+ // });
+ // });
+ // }, [type]);
- return (
-
-
- Advertisement
-
+ // ...style,
+ // }}
+ // {...props}
+ // >
+ //
+ // Advertisement
+ //
-
-
- );
+ //
+ //
+ // );
}
diff --git a/packages/website/src/components/AdMidSectionResponsive.tsx b/packages/website/src/components/AdMidSectionResponsive.tsx
index 1e77d6002..bea58b26c 100644
--- a/packages/website/src/components/AdMidSectionResponsive.tsx
+++ b/packages/website/src/components/AdMidSectionResponsive.tsx
@@ -1,25 +1,24 @@
-import { Flex, type FlexProps } from '@radix-ui/themes';
-import { Ad, AdType } from './Ad';
+import { type FlexProps } from '@radix-ui/themes';
-export function AdMidSectionResponsive(props: FlexProps) {
+export function AdMidSectionResponsive(_: FlexProps) {
return null;
- return (
-
-
-
-
- );
+ // return (
+ //
+ //
+ //
+ //
+ // );
}
diff --git a/packages/website/src/components/Party3.astro b/packages/website/src/components/Party3.astro
index 91948cc7c..4936e63e4 100644
--- a/packages/website/src/components/Party3.astro
+++ b/packages/website/src/components/Party3.astro
@@ -1,8 +1,8 @@
-
-
+