From ec4da476252151688eb2b87e6e5a2e6598296526 Mon Sep 17 00:00:00 2001 From: qrrk <19731636+qrrk@users.noreply.github.com> Date: Sat, 18 Sep 2021 22:45:29 +0300 Subject: [PATCH] Add help dialog for font settings --- icons/help.svg | 16 ++++++ icons/help.svg.import | 34 ++++++++++++ images/font-rect.png | Bin 0 -> 56062 bytes images/font-rect.png.import | 34 ++++++++++++ images/font-sizes.png | Bin 0 -> 14743 bytes images/font-sizes.png.import | 34 ++++++++++++ scenes/Catapult.tscn | 95 +++++++++++++++++++++----------- scenes/FontSizeHelpDialog.tscn | 96 +++++++++++++++++++++++++++++++++ scenes/ModReinstallDialog.tscn | 1 - scripts/FontSizeHelpDialog.gd | 38 +++++++++++++ scripts/FontsUI.gd | 6 +++ 11 files changed, 322 insertions(+), 32 deletions(-) create mode 100644 icons/help.svg create mode 100644 icons/help.svg.import create mode 100644 images/font-rect.png create mode 100644 images/font-rect.png.import create mode 100644 images/font-sizes.png create mode 100644 images/font-sizes.png.import create mode 100644 scenes/FontSizeHelpDialog.tscn create mode 100644 scripts/FontSizeHelpDialog.gd diff --git a/icons/help.svg b/icons/help.svg new file mode 100644 index 00000000..bf89c454 --- /dev/null +++ b/icons/help.svg @@ -0,0 +1,16 @@ + + + + + diff --git a/icons/help.svg.import b/icons/help.svg.import new file mode 100644 index 00000000..0a43add6 --- /dev/null +++ b/icons/help.svg.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/help.svg-ab0e78fdbc27e34b7b2a494b462b374b.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://icons/help.svg" +dest_files=[ "res://.import/help.svg-ab0e78fdbc27e34b7b2a494b462b374b.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=0 +flags/filter=true +flags/mipmaps=false +flags/anisotropic=false +flags/srgb=2 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +stream=false +size_limit=0 +detect_3d=true +svg/scale=1.0 diff --git a/images/font-rect.png b/images/font-rect.png new file mode 100644 index 0000000000000000000000000000000000000000..ae6ec04ce6118603e0c63c203a08517236d6af25 GIT binary patch literal 56062 zcma&O1yogA6g7MR=~lW!1!?I{X(gnjOG3K4yF(OIT0rUUMp_!_?oMeC`1gIj_r>_X zKZZlR-f=nS>{x5fHRs$nTuDJ16O9B7f*?#;nHR4i2%!Rk;KERlz&i6&sO%hUP2X9WKoEVrcf62HyC_+wzDg%HLxehxeUDNqQ&?g+C)Nme%h|bNW;OS;}+&>8>D5D^|Se#mjH%oz)sn8H7Sx-BJBa#tQF^%=w!SmREOmKbdifTx@Q={zZV`MRUx= z@iN&h(9Pl(H}ByiWK9M2@S$+&SM^lKw3GO;i@avK1a79oFFQ8F13QeW{XZg^@~P0K zJ;uuWqHrZXYW(qpz^q8gsLJyp({i4~5_@5E1R8qcM zp>(=^Scm7Z-qus*N5k1uO!)`f$JNs0X;)LW=mT?a`;=J23~R#NMDop>Df@gnzkA}^ z(cL>E#7}pRn{+0{rA05e?d)|YKL{;3AQQQPGdc^&m3E+&5M&lr607O|7$8z%`{Yiko5CrHA< z#L&s)EtTs#Cvz%k*;h&${#b+%L&kmSvKDk;`0BLqIiyoGyf` z^kDh|@{e1)knZPtE|B~neUdLFAW9^NOvs-46~yhbTm|m#zPCh@m)f zNIYaf90Erjgd>guevA@p6%jz3T1C~81>*$os%E^kid@{CovTJC>eaK9DJj!$h(fOX zOr~Fi7`i#-qW=4Pr*?h?6Xu+BRa*N6YHDiV$+1kmy}YJz9#Rp}wAf(TL5HF>bzX z^*Cgdn)bh^l!l)X1Roe@%P_$ttR1J7_hWIEg|s^)&yTH0r_7fdBCtum8UZr~W^_%ry9KXej^ZmxvYrjjm_D^SgxT zKaY7jGdo+C9utF=J8r>GA2dhnCP;DVB^)G9eIe1t#FZZu=b5dXQyq!35@nqvmF53B z?}eiy2R}dm7W(5g3b5>%>IEYc6W`DYuDoP&Uf0&v`kCA;Wavq;Bw6MuKMCTEY+lHH zJu8V~UtKMqrz)PQB%1SjgisRYxjYq4>-ac63kwTg|LZI{lJAng8=E+p#|A_p0h$)7sMNQae;>%oI!V1CSUl5DJTrqe5N8EPLqnss zzWzMiuX-rTafBz|>A4Jw{R?AbT0Atw%9#d7{g@dR@i2~RU1nxxyq<^R{F0eU896yQ zihJ_usHXost#Ou|H6eA!^bAYRYgwKp6l&eksVNlj`k%SLF|$_9+ouWQ)t=26G2cQW zqt4c*$3rvc{NgF_DM#ufn52KlVAb$J?g@S#ZIBcCM>*$7PqRZ0Hu-1<>JDO3HH!um z>cJ@&E*_p=aCAYZ$=tz*g~(K*JJBs&uQt;T83%v(zdw=cD}3ca0@>A`^6WMHbgfi} zxII{^%axUCaeSNF`B~qtg>q>nBwjf1c?T`z^AMY}l4n)R_=$qX#;S+Plgi;yO+^{( znr9EggIG{dsmEOAGn<-HH(H(sITe7#uB@q%pvPPAY_rlJ83z}MPK!N>5Ey1ngGpn8{eZr1L!eU)C0)e=3^z{iKN}5FAF1M=2c4-f|s&_{WkJF ztHz}bA~mUlh3$}=>C^+3IBRp;Hdl?<)hu*@vS$}i1W6wpBy8l$6rPSsnC3U=A%1Nz zD^3^`gaezw4)+;??--^{I&Z-hq1M=7;<>|6ccjluHIX~sT&k3~#vv$mdaq{n?W}=IOgf?CsEcF3L z{91eVhiex$#ja48r`NaN3|$yxA)tVm+dptp&-T|_OJM5~11=@AOVXRYw9 zf&R2keIGXs`iqvvN1RQu6_)jG*bn1+e?xYs8;DWAiKF~qE57hR9MMz^d&HAJU*+xT zaDVoGUHKCQe~9OSIkVqGNv=V4-TmL(cUQCbFB7x0;DUIiXF;HCQ#}&DR-667zlyAQ z77GXISl6OfsRu@t_d$?t8HQ2wvD^Ojxv5TJ9af^@66+ba$E$uqnqg;XW{lxO&6ukP zIklpz;*!yTGyQntVg3P&u!NZa^=*doe(`>C-))UXgdhn9QDjMS0pjrdtN~bg>FkxW zAWb(m^9KPY!Z^ndbW;6VI)tM-k7Grj;{1}8ML|pk#ib=+de9C(Y}sS?$JSeS7HEE0 zugQ+5u9sihMi0u^oo2(^&fKLIdVQTNJ0xZ{(VJgy;k;-|pT8AF8wA-gUEC|A=E3fm z0Y(ZEX{N!1SbU9x3S7q0MCWS>PYzX*`C&3gAyOW^amcBON^s*`It?eAl*Ow$KSO)s znPpx@{ow$)wNn?aIK-QH2Ep|(p_{Ce~X zr5b;nxq8vDU*=poEY@)a*ift55Sv8rb;7rt}sR!*U)S7|Zxb8-fS;TV0n z(I3@8fQSx7<~Hg-*Su!zx|9qsc^QgIx^Z^V!A->GGKofSJ2Af&d5RVgDkG;a2rCQq zn2VoX)H@!vDz2bHJ@g#St^E4BJ(#Fi4rgM^MS9vzQRQTFhdg+Bch74RHT;Q6aG+Ly z(oN>(^sL=2&(NYgOO;mXJq0rg>I+`Sx_c0d%MSP20!*8WyC>JijS^s)rFx6vAN#Fq zLGyK(`eh9gRq$yP+;9-v93x)$PnOXn#ju1Eyt_zE~kQw{O*>3!~ivwF090BQ8^ zgU^So8g@OB|%geEJ&=hTyffIb>4MRjw(gbXm}280-9{J8fn%wj zrecn|`)^`jSKV*tt1!KVnU~%aL9X#1Sa49ck>A@^DVy2O_y4vp^X<@7Hs+&1iQ*vD zv8dG2u`Jv>wys6%aO1Y1ftC^?8;&Me^_MBl?kN{|&z_)>{KVPfZ#5_35Jy3*(CspF zlj@Wj(~9n8zkcQcwJKV9m>o=NyI0vG{D2@40Jl%P$u+yvWa6gT;|KWTx3LOesKn(pF9(c{o`mRL9k zGkvM3u)Z^vESbt%$J!dp9nnLrX)7G`7KKYbC8JITDhF_o=xD3qm>#Zpo7DxXU6at_ zt}MFbt76VMif`Z3S$-&0mE+0<3Rd`TTQ`9fSL=NVugq7>S-3&&bX`4>du}(es&lBr@@a#yZHvxI&YgL>bf2BlBUx% z+Xc*x*W3GTHg5tRg&m_wRpbv?_o3c-|b@#3W`3Kn#A444Wl12(8*{1#+r(QX4+treQ0oS9HdRC zJ@KaApkB!llklL{ud;K&`LS30IJGN=@m!V|O5Md&!VTpXKXfc?czM2~T+sGaxWw11 z)vm!3_JoDK*VV)mXiFSpNDo&E-7q3$Vnr)+XKHs-RX)0houY{cHHZunN3oP`=s3eY zMWk!hr5BU%jI?pHlWf-I>8`KG^!_d$nLl6@-$-Ke2%?(PRnX_B_D=bQ!Qm3}mD(Zv z49(+pbJ!rS_<`Yk{J*L3C-=dev9u+klli-1Yw?uvR_#f?&+9d_&%DcW1PZ=tt7KV; zCu;@2ITV{aT1vp@!`hcOt665SgM(BTNocGU8bh=}bIBkFwcK34OO|jKP(jbAm>m|^NPUyezHDCP=fVYmGH*e)f4$fA zPl8pv@c!Rqf<&C~aHDXw6RL)j)#dqUY}E7=9PQmJR^w{sl`+V1y3-*9TG!&JnFiIa zx`lN%8p4vMnhGUI6(TwVt*a8R;UHhKFEK+7=b!gBdEGI1;$3a_G5JqW>blts_&?qp zQae=f4Jg32tqJMm7Y4S=37v|V3A9qDiddY{nmY6xoZpwQA=Tl!W}cH!V37FVc+u`* znOc5`HrH?!?OCO*VEV3dGxphf3w^Zi&1cO$hd-4I&CCy~5gGyf z7Szy(ySyCB^U%~-@mN#!8R^nbS1~P7CUINDNf4%9slFcu1;r1ZHyd3jtlxEeVE!m8 zkM!QD(6Odp4bZIXcr>mq)lW2mW^Qh4pWBKK5_j0?m>N1({FTxAmb+9*Srp49>9zoo z2;SSN@!dScqwSpeqldjpqdN0>-aGx=r}$CGwYAzhQVs?4ql5u8u$5yj=2DxPR;v11 zm4&&Y$55LcOmOe&PPu_0+irI#W=AM{92#c-v~Qd~`RF(}b&Nx-M@S~!5(yOibOM~& z&46k7s?JYjf)D+StKefk>SaIj$D!jI6!~JA?&g)*S=~1)X?li~lnKz49NxI@46AgF zvae-!dv9{jg64!#$5)NN6T@2>$wF5?H?I6>{dEZ z=NjFA?KHni=Eh8*Q|wyrOFABrrc`De$96->(Lo#-T)V@z$KFy&m(Ch@$yXQk*5*jX z2;$Ae`OFF}S*iJVnnc*-xaC|*Uu+wwXN}Vo!%dmP7D(Az2I!D_S06~aj9P*%Y zt}T>Wj5B0y%F4>hyn3~tOed5c>we;NC9Lm#_Ho)oz3`2{Kf8>G48H3fAFDZIEGru}SMicAFUi;I-+-o5J?9PBbn_cpDJ$-KR}F#f&P z8x|2EZeTzqCnvY{z|mnuuWfD>jN&^|$4X`D?ioQozGzRAaa4No!-gsv`|A`p*US!6 z!`cSx$+KTFN2uKrZCOfVZ~VVX>5eeK^|dF&V?)Dg=HDvW#OXghxdB*=XJ8lE8)1tRay=j`FE3Zp&_GT!!KI*xd8YDBlnRIH*)!C;ySq0v zHsqWnm=tbHaG*o7we7C9p0!);!UTggzCPVPIy;lp(IF#XdgB*O%JZdv8Wobuc_kt_HO!TUcaVUdyT!6scuZKkLqsGQmd)6H;Z*FGE zzP!BVR*dhb7p>B;-MkZsut3Bay}ybOa=IrRXGm@;(p1yHT_q1F`<*LH-VfgzJhSU| z(eFyMNf~Wkf+KT9qm#!fDK%}fHa4H39*INO*0cV*;rv2NU0rHXlydBI%Cx|f$B&n$ z&C(HvYaC25FD#E&I?Zits)DcE&AI1YEJQq_!jG3pFc{CX01B zG^OeBjM_smby^$kmc=7y_3Ip-G&VIobFEHTbKrv!8x{?@Fz)&%pcf8j~G*Kbs? zY>%<@ggx9mJdXZ= z0CPJV*El}zrj*E2{R%h-QgNn-n(6!&hYL-g1YB9Ze*H@IFnoAoLduu-FCC@C=6Uhz z6PrJJF{E2!Xl2E;;I@j%q*IFnHvgPutnfAc&!0b!e)q9zHj7ZEv2(``T%5 zt}cNw@k3l3%M+d z;0|zGA@c_dO{ATjol1GCM<*xkAD*dzVi>JiVJZf;Ggz}!;RT5hjAaV_CXXuZW{GxE zEDx|_q~Q3VC=#v+bW=tKhP@dV2?+!+kT;2va&l<@(Tt#|^NJa!NI{jJw2^m(WG!&4A)p>yg0j)CDLMI{>oIJ;^X~Y z7u=DJ%7{)j26k213b32umezU`F0Xe>qJ=dK4XG7U`GY@mn9+bt3>IYfHCq8CQXw{8 zgB-(0afXlZ!Be3O2U1swy5)$aC%6 zPyeiXoF}e)=+Xh7=Xs&>lF`(O%kA|(gCANjJQSCd6dDi!U*TV<2Z+;Zt7&-XX}dn0 z!Cb99uje_F%i)5xhJn*s4{ny|#F4i!NP;ZhcbjRRSdfyAPSij$Px7q}xT|)J&3+>M z>yeR>x#LPYx(R~z%n|V3Iz>%&wL|Qg%AZmubc$GH2&<`PS;^SD^yOa?I@931*uu(+ z(?d_w-SbZNqnyd<7h1$P3Wr=|m`SIgN zy%X8qXNjup>}>hN<&_m9ZqdEHY651h4)Q?f-3elE{gBw?FJEfEs)V#mZvL1t;w77D zZ*R9!X8p^RgK88fmm}pLE5t7#G?3bEQG_Wnj@&GsiSz8)GgtrwiD$MSZp+|OS7}*0 z%Tx&W>{+lC42|r|Uh5gOx)GITfe1-t(fvt&gDvuB`0;(BA<==oyE~t&7e&7a2a-%Q3D5~yf=WtQAp@}KOi#iwJ$up7(BeLP2nq=aQNXulZ~SaftNTAjqhQ<_ zfvZAz`s09$Mo2M+>KNLwUp zbI)11&3rxncg1w>hQb##%N~{`I(6`^wNpuV0+peLvE@x_aew6pusJB40GdnTwg0Mk zkSvUH4MHS7KHkutFJ5Mh`S5$X?F5MCb*ym8(epUrUa@e!e^ zD$Att098FbJ$gn)gp6HOR(kqYP_p}*4tm&J+A}*het-LWt2zy3E@L{Uov~*HCA*<* zF49L_wQukPXsNDG$z}0j{?PVQi?>pL;;n`9kwpL0KH#__2ibqIOn2(Q-l;ai&(kGDL@BUo9 zY4)lc_}Q!L3@U`+pQCmiKkI`0<0xW|xWq&xXsX#;;QVmW*7=IVY|vmVR~c+tB2IH0 zFi_L;22viI6xmkW-lOGqxUFxOWv8i+#1EPQt_v92%&M)OG8%x_-oF;Pzfz1WX}P=J zHMg*E*fH*4!&vaSvA(>#T++Y4CUkIcNcrsu_G+Pa4Hi`Dc5IaO?hIsuQ) z3uYfhcIqImW=Y46hARRN2D}J~jm7@i*SC-LR##USmy$BJo6?tzQN6G=1d|ko^O@e1 zLcP7calLO{T3V8mNuMgDgh@sc7~Wo=x$PF!uz8+a0U#)F$_MnJQrAO0s8vN#NKzjN zg>#Z)9J?>ReEC9^(934O@*;}pIedf5zBqtFj~}8M85z}5v{YG6u3T-VA3E5715J=Q zCrRV^jAc)Me+Q@r8L#tj0QSyP`R;(2$8A0Hw!By_=LZPCxU@7ZTU%Qu-FiF$*8|R- zvVs2o7jAC64<9`O5W*i@_!0u(w>?KbDMN`KV4Ed?(KDD1RmQAlt1$r(f$em71cc*F zk^AYbGeUhYT+qbfqoJc8U#`XmnrLR{t1e zhL4{-X#>sT?nDuX0Q-?Sw6Z3-J9aND#S2MOC%UT18zmRhGDq z9t9q+cGGflj_p;75fc+%t|#f^5EF;T(@GnGI~@J~EiNyQE+;P^pO6p;u%?T=sOwTI z9GGwa?p10kstoCaZ-;1QEwCT|=Z#DI8%AC9)U2K}EYr`qh*$>#B&lOb9#ouJ%x_QccLZ}by4oF8tc z`$~a67Bo-*FYjB-f}QBZ3Z&)5s)Dz-Iw@HDY<^H4k5Q8Z?lv)GOUPqhNdm;lueoJp zb!R#B%Bm81Hr+GX-v^L2wJ=F$wUtM-LK|lu>J&D_TyviwlEG&$Tw2aK9b7f9Fp<&o z*;Yp7Tqx&iDFX&nPxl$iB>t+YBXi|2`N5N8j%8XGE25*7epWJJJ?|@`H(K3k#!Ef! zq6e=W>KYZRbhCYTE#T-KLFqaIkpypd0Iw91-o6kZOB0U*f|fhKIB9o3dI#-Kag#<|JPyOah4yCGm=ii;4iU%NLwn zadE>ySB%F?qj^Rn1pl1eI8NX9(fxox7I1VXkBxoZ57ZBEIG&VLyMMsAW z3tnaA`0*9D5V4Wp>wU^9DhQ&J6-i&dM1YT8UR`D8=c9pcf!BElFCsFM*(TPI=!LX2 zEa!oS8?>*Yz()gm>wfEo@3J|sK~IB*ii(PYg5n2&sir2eLb`A?n8M1+%F~}dFVl+~ zh_zn7Hga8Gtghy6NL2Y>JK(qM#3ZE7_xfNA|If`ZJJZ8(HoGO!hQQ_~&kLi2xjK-a z17seTd$yo%+hW|Cf~yD$3Ed2sC4*-9OLDUP!5m-1q@gB3W@aWV4>&n-0wkgY^1$An z)!VmkGroTPabOKHIgDGmn0KYr(bctwg&waRgoucU7!AMaW8aA^*G63MP0sW#ByI6a4d<>T%f3k)8@#9CGHVJ>x*4qWP zO>T~p^H&3Yeo#$n7z016=9FE)sfq^5du8!E=-X2h95>iq~&3D(9p~6F;X0kbMyzEaEAWZkUeuh}l zw9Q(E?FcsxVp2*uYnwcJ?+cArf-i>sLMG9UyXVfw`g79{+{p{5EwA+>(&Y!2t8in1 z%;evoWOQ1e6p7)bu2FW;{R5*PZE`&W>jdKmE55sFjmC(U?Pkg5Hb*jde5)?jQQ=(4ldv5sS z!R7V!7hMf{yp_7mGzrkyvU70QpYLhrsxkxx2ivPHfg1RiCMggY0MiJF2gHos<+&zL z9*{sXU+2N_9bjl%XJ<((Oa}s#=-0k|-bVe0B+)LQTEq|G5yaTU=1B=)=HZ#7&p`H5 z&XTfkD>P)41(d=0{;b)gCl4p5o!W1e*RNq5YWm3L-2M5iEmq0RFGUe*T3Q6O;2*h7 zT8(bcU#qAn0}=pm>{>eM-K)!>^+pB-S3}>slbP|O9Eb>81JJ_Mx*dO&*pHFR5eFNg zD~25X^UICXlOzNM&Y?o#)~kaZ`wF7psO>LVr9m*Vu)BvaM^|S2P^Y@Q}#SJ-~X4rg(?6hj*;&7m)Z(axn zs(1`cO#OHF)>_OOseC|L08TwhF6!H$$Vhas@c^^aJug~SqwBU`H3?(nvP21nUp=}y z^t~sAjzUHLv{@v_1NyJ*O%%Xvq=-!e0|T(>LWDkv_%^ri4}t^%*Sg2_1h4-*Af=wv zC0*t`U!D8QS~$FDzApx}WYPXAw~FNL2VEq{Ez$%FTYucVswcmG#w@m=f;=#d7aN7T zX~+)Cq)6S;Df9|V&YW>OI()kUXd19V?pHrCOioU&%j^YRz|qlBX}uy)h}uE>TjqIT z6KO4@uAbO=AqWcWw9dDU4O6eXtIfF+&>1-GmaQGT!I(q{0?Z(QbQROyV-{6Y_0Ej0 z(mp$5c|zy6Qqt0ni|I{{wfsNq=+7pKw4?Pn1Qjtnt0Uo>n*bMSI8mti29WLQMOwikx7&(R zJhp|)Cs(j0rslvnR%l{(vr37clm98K%>+Ckb-av+vj`w>;G9?_e`wt`3j68I)FCn`Iv_=3_Kq-Kr_4ReY*8=k))?yqJBV!=wN&rK8-HFNj9o^KEfj7@QkHe#w zRp$XjXN#Zkv!q3clX-67I6{}}XY>5W!zE{Q^9;aIrbs4xQ50*}x zr(d4;GwWHPaB<-S zYr7U*U4=F^Y0C0fJ;}!U4t!_UdZPyDxY1gZ6*EBaT>`1=+OHKk#9Frn;(po6-V$oOR zVk(VK5tDWJ@x$=>k0JXemqL86>wYa*vuag_34DWfjC}eSf$Hs(fQ_it({5kfb<{s= zD{NYfTt0e-jg8$95fy(&&B%x@;Iii@O4SMqyVouZlrScAxIHDxd+g-OH) z$tNWGyKqGj43P#d@_z1zDn>-Ky8dF30ceYNrMBY*`j(DGDwhUa}CA@0=v)OLd+ zM4W5itq^=mxcRtB&@H@7<;NG#+&@Lu?sLisiv>=1{xwa?7dx!)JB-R?71Yd#3AATw z?Xx6yBVK&9!8XNgp=&p6*6mz9E(P&%;0c3y0~@O(&EE}&9ATvIAIu@1_Judvi`g)#@8@){1*Ja91vfSdzL1n$2I9$F-N)3_XaF>huDr5F;6iv(`{&(8%{gHR5EO18 z=hxoa+R3_bky=F?@S3*+X{+6_#;02&Fh#-5%`Fz+ z0l^OxL{noID{B&^|9LJer(oz2PHb%xU34oLC#j{ebnRaI4~3%;HKKJ97R(&w`T?PMdx57Op4*?9Mg7t9h(%0R}q=~)FZkZG{W zoG69#e3TFm52l3!EJrZJBORdGZi2ZOdg>d(^Aa$LxL})e=1b_iy`;kVglTFG$U}dS zl>k+~hi1w}65VU(DGm7TAA5DaTf@`IpIuBy*sA==CF751nJ`z?N$= zO0VG^j#A8VBq!P$Fm~Jhnu4J8^)|&l|5HC+Q0wQe(>MP_X{_1|>0SZ_evcmsSU$EU zj6G^%#q?oye^4ICb1;Fx&Jzp^@GNo3ES+(HFjX(nvz~Mz&(qpA&#*dVPt6p;y5@6k z5I}MLu-xhC`d}ZUeF>zAH4n8Kn|TXob6qvHk0Zf(&4jCf-h-kdV~H22lnchO&N_$| zP)g~RsBS|I1+pkvEZkP578Bp}wV7%XC@U+&gksPlEgc-#ls7i{ihw$dH6K>@3s^x0 z?)3B>TT8{=Tz_4#c(}P4Y>(y;#NrzWl4~fA5H_(F1}&(irKPzo2ZIAMps?FtKGj!I zc?7y%0cYbih3o2wfN8z4V)f;~y?vsU<=DmGsEq*Prc4Srq8(f)T0N2yO<@W6ZZ5R4 zrKu*K3R#~B`OxzMKXeH#q`L6jEMG25D*P*ne=!2i;iC}S5{h-bWCD+tt1g9t&guMu z%c>PL;4D9sTQv0LL(=5~lgUq~kkT6dh%V*MF^Y`uJ-RronF77_8=Y#pZ*9-J`}+De z*h3I`>L2nh=H=udJ`8_A6Q8TNW=(?RlKO1M*^KI@pJT|*-52o9D`;;tU+d^toi=^= zxV^(PHZk!vBLfn-_qzF(zg&9rW-#OPsZ|Zx@4sofzyF1I5ZXa3hj0I;(IK@(bv_cN5m8%a|~V| z^h=UsHWY|Wl8)bW@Irp+Q|BV)z;XWLQAT6VpcPKdpQMruP7Y=T+xpq=47#B}N;LMZ z77^;(I3I9W4iGUP#!WnT4>)4G5&Fv2J*6>NQ5rasH~|R+V4Z;`0la@}Hi?rh2gX=n zKtO$Ek^9L8plaZtQXu{A%~bVeqTf(UgxINUnOA8g1n>i9cWyN$g$zt9n|_gir+t_^ zSR56;0Phh%N>eBF+8r&40WJPlHqkIZ=AJJI8FQ#a8GgPTiAx*`38zoLG5fhh%2DQb|~4ljZ)XpaAl}P zs&CCCv6N`J4dhXo*&d9Y2}WQ zE9K9Q%#D~jnK8GXo$I`!>l?V2XfTR9e8(&3I$uYrY&aa*Yy1Y-^o~1*k#T@U4F3Yr zaQ(Awbi}i>#5)g+Jw9w$=jhAcXl!j+o9KgS-;>r%kE4d6F5nCxpye4}f|C6WVrAXdK&^pkj|>kR|L-x0DY|^X{G+ znn|skswy1Kw|-3rUdAQ2X_G%ZlTK60x}F?z$(FV0rt8jpll$f|zh?{J~qI#ZtYn@|{uX1fPM}AIn@XytWrwM%;a|mBih{~%e z%dRM58F_gG2#{#=2cqh}ffD-T00hB!bdCoiLv(2cxi|_~5o&j=ij-6II=E0JiMUWxY-j)m=nyF`7=gjV~ zQ)bY)%;Ky{_e+$BZk6_@pZ*96KR!Db5t}$CzXQ(TbHd%9ddPB3b<~aCYQDTkx1z7@lTjVL8wmS?r^6BivAV9l(%0{v?41EDWxUc64mn-L-dr5IUfyDQ zHo}^T1X5y9d_c#y7PAjrV&n{Wj|n2{((YjTAmx*?WFHwjbMxHk$*iobI;v`cf;8=f zloYG#R9Qtu}+?VFr@Eav(94Q#786mllke*UD{Qd+A9F9d|r} zDPH~v$fdya6FRvF=pSgwwdE$Y*Agg3K?MbjTH4wIYOSmQtF-Q~=z-?@`8soIy1M^< zX3$nUkMC+gLAUMtm-Fd_ujyog#VIhhiWRUM4W7b4R&2aIpRENv6Al4E$fr+4f0nU* zTVb3wXmJ4+Pa}n&0hVb{Fzin@UcuDGPe9Iw87zUc2rA6V?Zx7z2LnuAthh}0t1m)Z z9>{>khyZK=Ej@kMP2C9%4+lp=@(nvMDN%YI!I=)FMQ?4H1E$=dCyrW1R<;cQ_fnUA zEr5Efq&>Z10^_{Q@CD73@zGM7PMofWMks)(Swq&_n}Y^bz~coI8C}Kdfp;ML+cz3c zPCQzvs8$#w5?K%XAX@i18=3I_R{h$-#MD$6a93dfM-6ZrNnPawiPH`A6?I=tQi;ch ziGi5md)ZDI70?M}Ie@0J^72rD`>n!K0NDA=t*wJ~Sa>{*hu*U`4-d>d2L$Tlr%y@t zk=xmTBuS;`zK);efhx2O6s6R=^yh%&i=q%B0aT9;=~^y~X0NKEW?+bruY#O-XkZKx z)Cx$X?IXcjjCLw88w?-w^|Pf;`%p*bf^^d>z5W`{{~(_HV?3|)^du+YI-lo_3=NQO zQ=^iyl=e&)i4pR~NLd!73Ody#iADl?R!6x>-_rIrs=mIy;MtgpR3G3{SAn7>rL2t0 zqEqV!2KM5`i_4;>}2Zu+uPw!!a=4BShOIT`<0q z6)XG$Fr&|X@4R5-@A&vQ5t{)7AV3VcfE{pGGU+#y0ZSZk3hKlj{_?#$q5N|k>-)mN zft`Voad~|mQ8*pDN-G-ZkTbUznd276>Gyw-eQ$U5k7q1PGV}7n<&!T@e~kGcfj$(v3|>TO-%G;=!{;DHI!FgF7r$zebhJR1PuZJ36Na&kLk zY--Z$o14bd!9V{hm(to8W`yS7A@zsj(wt0tkagSR=@`A1Yld+H6>T09ew=p z!2n41M0^g9L3IlRbQ0L8AQQk$tzeHeO(aiEOoRY|siU*A4G?1o?%9~0)7JRMJ+WFm3qQf?Y|LD(+jLd` z&1ELFMHKZ>Iy1k@KUwM<-S>@=A?8^i838HwrJkqpn(+~yEHg#YU<&fa0%!|`G;v4b z!FgqPCap>o;5mR*1YkG|> z!#?HD27ShosVW^YC&f;&_LB!b%Zqtakemfn-s1GmFWKMu&-5n0 z?Dcs9aeHKD1nIf{+ly*^h9@jzI_;vp`?82%6Ic+l;^!0$M(pq*yFNNS*CFQ*MI3;CU$Y`0-=AU*3Es!`+*!pw^OO zQ3#qlE;xYbZT+p!(=I_TnL8^Q)PUVV^_g`p_;o2pWXQQGI8;dez4$?$^An|f0eu}= z%9QEdx9$|92%!R}6apowT@}iYZuZI!ij0Soh7f=yYu*w#=iXG9Vp4b=iS5ld5Q1~u z3Rir<_C|SsDGjy4M2Ypc;FRq5Z{MCa{`uXfaL)%U!GJ{m;d61z`)ZJBn*w;B4qNVp zp^VyEBEVE~Yi_`fNz~o}pudpi>Ie%UL4YCXSy{UU4jYXf-9ecEqcZ@SA~*s8+7ofK6M-m;Lt@3@iZg@Zki|vtV|3BH&BzwFEpG z3MOW!1h!BRAjp%OreMOyQ^mBX++2E)vlc$?dI z#i^93Z{W)LJ2-(5`4nV|3puuAU}ysVa$p5caDRje&^(Og4Sn%7S-QHhkqlTrUx2I# zz7_!VP5|X}4IG=qyw2+w$&!u-s`~dd4>V9jvl9aUx}DKXW%YAZ8OjXW0)%VyL1qO@ zga8#d<~_#<1QpHBe-Eg&K|udVW^z4Vkpz7J0#l#X+{FK8?02nq>zQvGrKa*0 z1N<|go2i+ZwhjyE{lM2ds3T|!6{({G^XBo{%#7C9*w!}zkF|K|E&0D+ozM}kG_0(``R%Ch8t)9}Rs z^OlKF*d?QF0$1wB@@p1h2VsJJ-%ziKWP@L3Yb2llNy06#4VZS2)xqHjQ1!%~0`u6>13V;2JoLPo4z- z_w5y6JD!Jyg^2=T9hNSDb={$bm4QJVB(%Hp8gPV_!uwR&3bgxLa@(*AIAqWVCRR#%}fPpXoH#G<6ae($!W;4$Z z^R@H39Z}Wv13>iLTOhLXn>S%VG=DPyjh3ZPi5SOSC&jtbDkhoPgu={~17`^QV2TPaBsZ?OLJBe3~DEg7Gf zFaqO(sgSzhA!qiMmzOz%E5c5Upa(KdxVz*LGDDDCL#|bglt@rEsBt$_lt7PizM`{QCTK*rM&L)8L=4+Jh>v+z>F`@PgqZ3F4b`wti`6RTY(l@ks%G{-`u?Tn1*O1F|Fz zTCjp|BO*N9MQv5p_`w+7hi7zO?BJ0jc*hxNhuBHib}{($PghZqEa$vuFT00 zGL(uEDwz@`MTjzogotFy%r;XZW0@++cU#)(jH_P0;ZsX@srMxF<0C2Qd1I;%i&bjNe;(9d`TF_!|GVs|Zs<+2$IpnFMz_Ow z)i6Q${+CYtCp2y{^Ikz!)?fSkeI>guWt?7;<}T>r@g%?CXFA0Jnz!T^;Pq1vrvZI< ze_gKQs*|LA8Ux!q`L}Yr>{Cl_d{=v>EwMl4Sc&2G1J7L<`{=LIP)aXVdJq2<>TH;O zK*O{86;J&ZmK}fcWTzNcc?$+TyfK^chx^2)N$=B4KBf9{S2m@v36>~StuH>ZeZN`$ z=*^ymoxhe|3;f)1fmhRqXNV%pvVq}-!V=dzYhP@udON2pue0*an<_bfs>HSG+2N1R zJVxfu518fg&TR{5pZhD>$q&BZ8k0bdzNHyUC@)RlEw?)y{U7Cequ76x>j^*9ugld2 zEg1p}AQ67f$|^mXG0bHA3wUHM1bl7u;m+)S{78O}q*VrXvip%1!cK9KMBeFASQMJ;N`dcUB zvTkn$#m6LO|Bt7eYX`pMLE>^#yWh$G{~}!JEy(EB=Wu+`?ZA4Ny&zhyIx;vhcYc7n z$C+V$6;-;X(=&#|?*J`$j3%WA8d^`s?y1WoEej6|=7Ivgepo19xX;YAMUy|ou#T{%i5GFnwliM{b_vLkMSAnXAhD6>21)i6Y z{VD9S(lRo$svDj1*;*PKKL-0a-SF|^QdjskpK^L7J)@pL;HGoy+*HHA+9=!YcFn$yG$=Xu#LB| ziTe`sdJS4$gVDKOBeSd{F@*;|N4T7kBeMJL5uQtchS>AV<9w9-nVZema##43;Stx@ zNx{Lv?}l?rRT)^U=>N#7zq%d`RDF#u+*J>Tx1{wZPIP z51L~bHpkE<=~MZ4-JDrYL+MBoz78bcv0~5biB>89(E~5Pe6M?EM+%9HMeh}+v|H4(? zvDM>A*-vTQ_VB3|xUR?<3*Rt$;PIYg(rY#6m?iTI`wt{ad44$@9v%F~LEV$XFwOkz z^ON2AnQxY}i?4DzBnNHBU13W*n;{T}N4$*m^;e|n*hmcSS?hoTE9!`zMN?p;ULeHi zuyZO2gzCNS0)|M$uW=9C+uC$Fo(~7zkqA9;^LEf+t?S54)I$1ofgd;ZyuY|`aB-z} zQcD#n4sWKUDLn)8rUR2jUTe%xx!5G_a??tw`7>hkM|Nh~jLM2fL(k^(g|57BS@31` zmz(XAF6VoC|G3#9O1;2hcXEAya`HC8q>{i7%@24tzoB~)lzLk_&-ANL?+?*k%hrFe z(>W1eT=S-C*da&Z_iXdtFBNvo%9&qdLix(2$8*4n7>DH~boj&TF;>im_U)TNGYdN;3*~#tiGkV+q zjY;DWU1qip+%WeI zs`!eNUhj9VtsF^qiGGSHOMJU*n6La&Tm9!Ko4uLKz}CU(?L9ABBet%5XZ}z`mRpML+Mdt0 zpkKsh_M2u`&f4+59Tk1mwl}up%5-M7C0D)mPA4`gQ?CgvhYZ)Zzk4>=)b2BNVNV!0 zDsJn0&LuCOeM!A?)3{k>=)?Bc3%&krSkPv!H9PL@KH=;k$CrKih+omnS-L{M8_JvE z@J&CW_{?v}k``9P-TCsJJ;9G5fhER^LP4q;a}NC z+q=4ADvU2d{FY?!q|%^aDE(*4qY8(t;g+X!{b_qy+UM(<{`4kLDI$N08wCPCST+tX zIY8a^&lmSVBs5RdI_7u0t>1n=@+y#-EHALzAS|L6<& zf!noraL}LFphtwGP|IJx-kdNFrGyGhrO*%e^!J-NbR;Rp77aBd&`_|v2pR~HapdQe zjl))|@LjO_98^}0Fvx!XoT>2l_Z5_)h6YxYq(m1=Jh8yZp{Zsg7+r{9Wk=?rJj1A6 zr{AcD-g1ik{q^`j;@*cP?`}?fN#ijWpwIuISenDI;<-lW!!aFUH!Y$2Cw}$sUdq8G z%b^#N$`}4=&@=4Vw}Xn@+y`@9!cA`0ibzf9g)Hk#61KZw7OOV!X{mi|>xev8{uk-B zZB)^$Ywm|_e6wXdY}Mi_M7udhBfPSu*nPa#>@oX2=Z5UUurGZ^TGr8=J2!Upj=P`! zBKg_IIL1PMayw_kSW?0h*I2tU3G?Z%O;8d0Wn_rMV)E_7&KHB8UG?=>P;1A5ri9a1 zrMxETgurvdd^RE&m*QZC&`W5-Kn0O22<5cmez(6{!B*+5k!eRz9;M@}2%u`KNY5u>A3Ki`?R zE$ljb_dxgg;n0WY+lyM0QcWw%Gjp1?Og&nkH~VdHF)#`rOZZhRTg4IfGdryA?tY5T zmHT4P_G~hE@j8$vyxClybI9w3$878%-Spfs>G;l*n#-1EJc)*HWP-??0L>F72?#a6j ziNE9PY?n@lo6Zjw-tYVp>~@IWw=nIl@xXLRf9zVTbvUyXz7F0L$)Vuf*Y(x+5$?bj;6XF zM#D%!w1Y{VBZQ3ZDKS=An<674Vb!{-y7et^9_BM=&HyBV(n!40u+Xd1#`+xGwJ=}Y zzJ1&Hm@ZmfBr4nvZTfkG8TfXJU1v&aY8kv;4rmixMl&E+P!jrZHPerN)2FV&fQ~r^ zE+@6oRgod5tRJuR*hWdw3_l|$!Az$-hAS}FaPClHc(B=laHcLP2VD-!av%{hB~dTfbJwu`!LEN+oUCz2h$ zx=6=NEh~9&xh`T*ZY|FH{U){>#}Lm(E$P{@FQtOLVJwnaQI^~3i{_4kve&0{v}$Be zSlRb{exFftn&AjNQ2)rQDjj$PqsNIkre4yb;yJCD%!g$(&7_wx2k> zJ5lfG3mb`_53_UPBHTRR>@M#SlT2EO(BSV7Vmat7$#KzEb>Yx1C4RqmDvv^zc)ML% zL!Zx7l(c%EPV}$S1?H*+>o^-~UL-sjmvWQgthVBdU%7!sGgf?n>6Ycb{1Yy$+w4zU z=4I;nE-eb$S;Vw(Y+_Az4X^iCjq4T8*K-k@n>uJt|KgNH?EX5Y(|2Sp+5{cw)D6F? zaVGxGx0kN8xS(y-w!Fzd&vuS2`|I9`B~?-`N>U?Znwnw zzc>{AZLN;&_-0+P=fs|t{#~oeZfmfMaI~jWH7t%c9S_cz?iWcBt)CCh4dqi@@0;T9 z!m)4C{gydP(7ad0<7S0Wl|c5{@jmWIhL>W$YjM3_6#B8lrb4!HI9UGg8@2!0-6^;= z{8NwUwqw;UWdfdbLVZAGDsn6o%^!*q^B?n#c z=~fqq>?`RJaynpQ8`lEP+Ak;};W8saH3I2c5G|On~*S{vCvbkm7BY zX1O{g+7?=TDUqoF53PX%AH^!_Pt6b|uxTa{X3cA@Tc&)Jg$2Do(A z+^iRUC&`4$9!Fz;*?hj|_e*j~<(WH&cMKJ*wc>M3vfGmIRpL#4n>3eLv-ei=E^3O- zu5G;6=cQKAme=va*uXMC@5YCCJ+f1*PaZgXERw5zs1#6h@8-hz%xa~$=N}Yhhs2q- zbXc%0HLBEd5#7@qR8szsn>}DX7dwM}>;}K(UKxp#ishM;!#ftUNmXS+B~H8@E@ri3 z3uroL=GieC9dRqTc|%{H-vz!l?UW1gKbFT#ZKRh7xYm}w{gUHQp{H1@+dWhPOQ!LpP~s_Ndaz<6QXxnxed^d478@DM5*5l{ZYt7L+UfTBMe!-TP^@ z@*>q$io!ojU> zaa2dED{<7WpQ|I2;?q%eD{B-U`LI+01OteAwo+bbP^6 zoP|%1?#Q=kr)6F>HZvc4bmzA&`vuWg>JipFI4sJH!)Zo0Rk}}liEaw5o*4hKY`x5C zfheoFsh{pAum+m7>I+((7~R9*-XY{Hgp)jAR8L>}wiF6hACzY|BE@H5fkY2{qQIW#S8BWA1kOE%m7!h%m5xmCr=Eeaf)j;`0U`M+S<4 zglP3GiRA1tC4TF(kBWQWHZ#n5Z<t z-4GhXjbH;phAg3_SxiiUKN+T|Wm{=CJTp0#q5n(KRu zfPH^hjgv6vp4NBaZk}nsuOArxG^C!hW>oHp;l>@BofSnJ4h{RJujdMQyDhOhOIKy! z)3w7ZLU`A;oSM1c+}U+W-8PFnhH6u@Y1T=H%!xJi0^dJQ@YJz%Rr zqM3SZ)yy5fUAyztoz>_XH?4f|gV~{H`P2ui#9KEnVO4V|meNt1Jl=*)JvF21f5nM1 za|cS1=j)BF_UztGBwJ;WE*JHG%d?dSLCx?{n%T8BMvk7&5)L8~_f+b?n&pPF)0$=Dp1BcntSo;Mo%rB{4gV z2X-34`IT~pXqMcJVQt6NK6*VdqBU*AX!im z*9h&L+h(;hT_@CbGz$FIyR@$VHNDwgr-%x{*Q^D8rV+`7b+yU&hbJC(bnWFx&f(J1 zPsL5qcCa3pe4tlYR8;%uTpfK4co6Zn?~upbj)?HzC~o=j(ALsh>1A_2diuDgzN|o{ z&3aiQW`Z@hzj_ zciyU19nm^n--7GuS;CXqW9J$#j^}tQeI2~cD@@ljy8U`Wf%xu^JTLN=Y+UzK^~L+~ zdOvmSa+*w+49OO;2$yj-e1IYjm?tVNf%iR5vP zid^k__V;}~nM>Qc=1}l-lfVu)r@3V73?{lFNc)b^2NHD*%>77F`Z$mQDE~_3=lj)` zHq~C4VS>7EZzb&Emy+551G1QogrfUhJHvQuL=>kQIw6Lsbs(#9tyQF_|IzJNqobow z4i5&IWNAYT+jjoN&!0azQ+Y<)Y60yhD*naU72Wx8e69f>wpA^?5lJ*MYt8R#oj%>& zJKkhC_ZQ&5itM;U!RKsjN+E9=Quy~5w?||xCE;aY>$B(g%E&|+s%&5DGUtVTYuEke z$hs?kzps90+7Qc>AnMweI)WjUKjzpqf2Kw+gjQR+e)Vd#aY;~TQ2xtY5D@YhQr^C7 z{Nx}7Yq!`hH(OgFlJ`{5Fw44OgX%WFf4{m|P*jkgzijZ#z};hDb7?3@_I_nxmoRd$ zojO;qwky*1+rRt_ymIbiW@WdE5jE2Odc3E{2cB#?ik=>mruxJC_dmP_vM_RQexyBT zm4bE4Cjc;rq+sui|7+YivhB{lH<7ZP=ESO@DaL1X2mXEN)?uG5f|njb#4~#O zt|P4`4)c&p?B2b*sJNI04f=KTqaf#KLk~BN%_A6x4uB5Ht%40l{?E5nM3#W;gad|# zoOo!mva)c8EyD>&DZ*+WGXEEgp0`qM^PRKqR$m~u2p+lILZ5&t9|LjL+>q-W&0tX3SP9%w;gc;M-L z_1LgBqet1FQnoqXl@x12slbZS5-LpTmY+)S2%}y!p^v+zStHIJEUIjp($~Dspr` z_;v(hFfLzyMV;Rl-m^{Y?B{34453iwfl#bMyCeFR^ErAS=m(}$BQxQS3Q8=98`mxZRa;n2UJ{;5q^e=MB}B*+e}=d+|F+Nf$3=%8TQSq@$qL~%)FNb)eYKRM*kVZ-40 z77rF)E(K&6a7rQ2+ftmPdIr4c>^Z z?#9&9g+WlGLCqEE*-AxP1Q357et!BFufHz`HL9{M5UYJ@Mz(;kaE*D3$>|>hbs+54<&@-PC3u4$Jb0k4k#BZWBC-L7 z?mG`2FiAuOzI-VHUkbcD2!`v25gs&w3L;kg-mpehU-$E40DpT0`8rtGt?li^Dh=~I zm~k+j#xXtKsCsZC68ds6dIx-a1Oi^TJVr#3gh4hW#DMtLmq~&U4imE-1!&OHsyQg( zAth9RVig})k!8mD@h&;??GO>YudMV%F#qzy@3*KU^gl)0x7so;De1$=_f3KEEzGs# z7XV&@Kq4hCXgPAhet#=>aB!edKn`z4J`c_-q|RMd-KvP_HG~3~f0ID|lLNp?EXIBW z(-gx3nwXA34+ve|g(C;>ua;lV7Pf%mFOx`?fzN8yfF}xfD3pNr^#iLaeiyL5J!>A1 zA?`x;;jL@%Fw~I^85kHyJdRy~53wqA1ljO``9b1U;Ea4JqT9p))dz`Zj`VFI0RgL& zK?7mfahM|2n=Rc&MakQs^w@jPu|o&;?EC8P{tyzpMg3v($HPI21BOLf3i1VPzPV#% zqk%X>+lIx`i_i|+uu4dipysNsIgmOGo#TFZ`*E8A;)b$BeO=JvBJ&Il4?mS)Q;vl~ zcwiiU|1wb^nBT&~LrF_Z>v7Dz2owCVQ>V^M#J}UXqq>B0G`R`+XbPa$A#Q*!4oik* z&6+DPcNSp@;tV5NzDVcJ&Q1~?f;S5ieG8x@2x@TBKo_wTI{_~T7EB;`N5V?V%Mb3l z4WLDiLhKxjOiW8C&@GU7H&EwC1wtJh9pB#ORT4pPW3t@`M&2iqD^{+wNIeJ8hV8|A zSfL~(B||Ph4^xRt6KMB>zT~gyBF1BE?4vj6;>lH1qm~!#tR73 z2C!$WZoJ{eX?X%lF8pdK!~nHj?p>)z?_Y+-3hvMPTJ#s%}NU7m)}qyh0rb$S542z=~;G`?yMKop4z z^5gbmr2LqCxNwVj^38eJxw&7ge-F$Qa1{S-s9@jWqM<&ILJS?$ArNBFZVJ3Ez|GtF zDC7Dj9huVN+bu>OE5W$ic0mF0mMnztKj53=q&Q%^C#N&W&vsm>+Ve_om1Ona^LC*BZz`L@O*&x`LYGm1^q1dTLZ|Ck`E%X&>Wv8v+^Qq|P7Z}~+>&!hme zIXyFnzt{Y)*e6exKw$*o@O~vF-vjOVxX4Z?Z2%tdBZw*lHZ9F4rLwQ4Ks4j+mlIBk z>G%Jmn5Jfpc61nIR5rG>n03GLgm_>dR@GE|68=u15l`|-ZEd0$gi0Ac&`q7$Cj|Cv zcu(ttMmVDbS3;njQi^sz6!s^+F%DUBZnXM%hnLwiQgy4T-YLy!X^U^}z(LLI%#o8+ z&u7sv?~UW;eUi4BqW^h>7~(wncy_n;kuN`B;fQieX&3nzlDTTT>nPR2c?(@sbs1_6 z5->_3-g5x~0iHXm6CD?7V-dB4jwk9}JD^ey@`lm;^;PaFd~#EzSTOA>AZ(I?nCTK= zJFcT`SRTwhepH0I(Q9Ge)pz`%ym!~2bhxmgqN=KYh1oQOD;t^2FEs=ylbvq~N+fCW74ng}Zv6roJQu(v%|XhUZ2INd5UQ zC+s>(h2d%S)i;!1=H%p9c>wT&mYB49%A1b`*RX4#;9Q1l7Qql^b|29Yf81es`iRBn z6Nx9b@7Qr!dGpY{aUK>%EOTBK#;GfZl-f@vH}Tv1k98N?Pl>~;!GF5|(P&XHvybl+ z$4mGBiCi@x)`xywI`I9}}OAmy)Wd)ZIBxdEW z?QjI*!4myRHf-ArcYVwauu{1=#|wyRs-wjrl4mD#F5M z?X0MQEMlbMJ%&aPd64!OY!g#bY)^@}gBL}R8a)gH%^nknwnvOQV@}P;$jEcOgR}I{ z;&7e7jl2v>W=d=3xsa2Ro8xJ9FG#K+_55Yk!EDWo$wp^;Z5DA3>!3m@szan3+$gMtCtwwSKgRVl>Dk5cZy*|XbG@DRZ?3Ul#?Uy#!PslT>! zIp*MS;n7J+OK0z7Y2xhb`TCWb;HwMM_mqE{OOV~cg9ituA*Z`uUw{14OxqdvN&D{C zZmc9L7-nTAWy9z;ifgInt@Zb;lk*b`^Uel0-J zc+kS)X`Qokc|uZ?749m0Z1`A-`N1)l1GYoaxpn~|A&b14eGfug*#fbw6s&_~tkHb& zk6(%Pi{p%~J4acTv3r&E6?)OI7}z-ov8^b9|QzZK2i^xs8#r*yLfkNmkhu$ zsQe<&AIr-;*DRxkW#cl|af4{&|0P;MJW1uR3x$#r@f}O=s9wdPj=&LKDXECuUUmed ziNAS!G-s`%YD=2sv&#xRBDq3p*QL&W(Hu>7@>oAaAJ|Nv!OYAI3w{w^EajClY%c^izY?dc~F*aMNDHMm2#r9C0*p6=H+@#% zRmIc=ZbY`>@sLv%#z$kU_-8L(ltU7`C}HAyJ@f$)c}I`3pcQG4Hi?7?>NAO}yLYc~ z^zsPo5jXMPDJdIWSy@?SoVmlE=(cFkHF8lEu<#c3EgrE$Ot`UHk+}jUhdfBEu>CwN zJ=K!kB*}xRi=(Bvxetf_D~DcMpJru>rtG&RF`hHJc##PEF+&YXGLh#us6K3JDA~a@ zFMOnKRN&0^9U)mt9MlHi(y&3xr}j2BnZJs!Xd^bZ!bBLwu(}94+{7nEl4Y1vU&tHq zct*jTkH;D5*8}T_A2a7$a$Mk=!EcE(ycQ4;u#*1?$`%s42 z(;=0gwIv15zTks^p16sPyyu-UEDFI@B$?U!SHnXQ=dUM7+57C-vzK``R6jdJEMOLv zh?)~(UxOpNC$M?=6M~0SMXZG@t``=1`^}mOH|1upa6Th<@uL^_HO0%oFGV)0h70Om zfuOcy~& zaSgV-=-$FwWkpvH1xs>E(;s<~8Hl_a6L^BEoNrZIl5AoUcT7?u;P%kpI*8#=an;`k^7qIe66H+knhjOr*lg>;fXWfc{7)N+o+S0A&GK9 zs%aUtSG~i-0Tm(J;N>oU?2NpIqbE)*fl#}^&gJUuu7KJvv#l(CUFtb}?Nsfvox+{* zWxvir^e9#_+iH{jt~kSP_*UyQwbcJD#Ed2Ur51s_=5dRG0Q(NUD}>idNHzg?s+KXuM`2x)}E^Ff5N1+k0B zXVmCS25=r>E*V=&@~F$X=fAH`t&rxwjZWY}Ql;h|FbC%i7 ziP`RS^>F_<*i{(4&y(6CM#6H4-WIow9%t3ew2>Sd_hb^?q7|=h0(}?fd)kz?UNJE- z>ehpf4h}_tmuZT6E*a$&4}wh6B!op^iRO&OiSr< z`@%^Q7sx;Xtn|R_O^6k|+HddGu79OuM8^#Q(khrk!^M4rQQ z4nZ3+wV}P^BP9PRf97d^!|R7;}m0(VhUJ3ux45NM$ppV;0El!1|42p+?HRn#Oo{; zW8Kg<(1Wdk*#i=2i#OJ%T&6L-jjOX+&icBPj+jaYwz_HBtIp1f=Nn_{+CVoU4xx8! ztj3_7%36hSpyH@9gNHax&^amdns~GMC+j_PW;5#ib0Of{>mIF2B((O-T7%Myb~TA&E{t zl(WHZe|5h9dhzrsP%6kmL+&0)6~SrUIClxf@PC(_Wag%|BL;Ul!jD5ko1U7Tq3QW2 zZ9u6wW#^c6A!j3k-qX;!xYT;6F%B8!wQWz?*k^o*{|i78^jS#UAXV7;XJJMcvZ_|r z4lYNTZpw8ZnmYXlO|M|lM|p%M^(qJ=G%2^}qw*GlNmh<_s6DB~l;}25_j4VfZrpmS z(=|;;(9+9RNw*^qg48ScD5N-onp%W*SeD=W8n)(8YwqjMp}tZqyzO2g|xb#yHCc|83W0Oc3bMg08^Le ztf39^dBNQ%7#VRPqym9y#DPYN9`Z|2ksL6~VNByi^Ic_a+cP85$;+%4HpNs|z-1LO zrQ6@zyRoy=Pw?3M??!?%qF$wCv!d|ucxYeAkS?$9i^0BIhYf*b&;}n zGiQ&LS>7d13f5A+5K0mbV};@0)uXZ1XZJbu6mjhp2JMc=UNzmWM>X+4mm~7S4Nw-P z2f-5B_A;nRDHDKEw3dz?cxI99=kz2rYs(xu9m|kH*vW~5jpBpTKwNX>o`33%P>U(r zdy$ceuB;aC;d}}7T0ov@-!AW;B*`=~(Ge?XD(v)|OM79MK%+f@lIAV44}j;q@|YFI z2}MG0VHVjfAz_L^4ivpFdR5ic2axzk;Q{%Da~Y=7Qi2|=yUW6UFC?TPm6sU+7n^N9 z%5ZGl2>9bsUY`H_VO>ECSNwG^9WmLs=g+H*W3JQyqpA9|9j1mNAdiAZIsYVM@Z~UR zYHE_uD!*0SD*N}-pes>SR3sK5%b%#V^_t=i(A&~pPQ%x@fF z>Mf^$IxJnmhCvHU5K)w*T~DmGSFiTedjAo};xL(>5~t2>gF73(J^q&?8c2fPNlQnE zJJEV7rXd1O#;ON!&PIPd7xthTfkCa8`l)~D{Vn-P^xP2 z$x+n43qur<5@hWV`TqolYX+tA;EE|NE#*P)c0BQf{eum>r4r~Z5MNCF%F8SkSv8W4 zI2r`l1pLL>8StR1SUpovAKvG1wXnNbhN!Y*M~{BAC?6mjU*1a=p>+Y!n-wRCnu4wM zL6Hmt-b!S&z*Mryzz(5v+6+&q{jHb?YF7JxiyAfrqLFm6Z8jRgB}@#jDE%D}+7BoI zS2#>Ei@D5bl~C5P*-9d7$-=^dK-{2oA{q1{bdz$QdUoJ5!jfN1VmV-aJCgNnQW@Ni8R zj&&D!tOrn9j^bDJ(hmn5_dtY6t&d-2b;@q7ZO&(~x?1l>Ep*o0cvAjno2W$H?jhZ> zyp67WXcSQq`=IW`v4#Fv^i>C{4w4)KvSfpe^Jm9g0*eU0hF|rdsp;clTZq&}w0>Or zHI#tCN%0}wev8!4or6Z;ac~`x69i_Wr1DCHeP2fBwoYOAqQT)m%HV~VFhA)Xs%%pi z=5J%5n_pT~vcYTBOYo(T2D%nut?e{xht{F2i)34+WoFmk2cgDyi?~idFiqeQ%6`j{ z81D9@=g+Si2s2P*0sJ|wK`=v*M5Gp4=@7ZB1hk{X2uSgPZ|yjb8lz~^lRQy0l{V^jWX4pp2 z<@{|(mT`Ok7A596j3p@sh@Y&TVtOS%ER2nS@UG)s2VlCxx$1}Rix(gV4DObduo=az ze-AqAjZ(LvtFX9re6Yy7yW=zzz>QT?>wta7VQ6&y7yL*Q96F$1M5NBxxMEuqBlI$g zoLCbB$TqOr>(TL-fGQ;kogDIB1}~xgq#NRw*LIA_5LbEoO|%45x|utcr;!Y%7#^CP*T*q-#SESAjzF-PFQ(ChmO(yIzglVxXg@ znNTYV1MAN21`wdwLqnzVsL0org8ChDx<^S0Cz&54Rc54B6cLRs z28mF4qnzI5TZt=|S<=31$w%rs61)p$nc@SFT_1-0sC;QoN=z&U1RofNLd3eiJ`179vu{#UHFixjM#qorBaZ@=U@<)-b2nBJC>BZYL^DaD zU~8M-m2kc{X5dTJK1l#OviTuOr|7ZnGep{QlI>tNv*eyV$1MJ`=%w^W#T%9W0Z{px zo5BNdm4;Lz&Ay=Uo$2}fnNawe0jevZsz4Ae8MsC?RmiM+u9Nn-v)^Im(%_n!8f}Jj z+ynwxhcpy2Uk%qslf}nTJp(N*C3)Jv_GKGNRuz@!!hY`X%BJBrD=0`$8D$>JO34FA zub*v0^HEyGx#BM0s1@Io)-?lJE;YJnil#crMpK^ zT47)rBW1(BOHu^ci!=0fljQ;%W_|2v!MO(hfpJWEN>J)nbJg37JrYu>@fV_?pxk+P^hT zkTG%IQeN7&OI(_&I|!h@6i=1FqbRvz(b@q6Cx1wW)uEIFAP5XKLP!nFCYh`BdgAR0 z{O6I6v(N}!2lxs)72ape<*^WpSgKc^Juon!x4UKr?V^f&!zdL^vPF{l)mEu%ip2(+ zXPFjcN ziR(WadvH<41Q%NuVzmh=0>RN+3}_&18}8aTfDj-?rM&;hI$pRC`7KKiD;;BOV7O)= zCUmS-s52>NM}yEuk*Ra2<$%<8KTbz90g0tYTI%q`tTY66pbb_r`_bXEL{pGZ8T=IQ z<%P zL)0djQDhBJ$dDM2+YldYK?jQ96zE;aF^r)KxV;Ex?j%FvqQ#Gd6FdzZb9VcOSiZH( zN$rVuQG%FnG`7$by>c2_13p|@R$emJdc9%(FD^vDf7+s(Zocf^VLr~a(ATUuT8VS` zHW%N2L(Gu56RR|mt}eQ9!~Fv9GIE5H3mW7`#8VGhQf5Jq0Vza6x^iD}U^ z6y%J8NalTv9@ZBb?|vpkXEC8aw+6;qU-LkT^R#zd{UA z6v1I0Nv>=|?FJYtuYiNhd&BKbp&)`<%4K8&85VeSJMr+N;87H0>&FgfcvxGG+HLR? zt0EGSmtCP_;q0a{jfb|mNLm42oG5_?Sqj4 za`hOotLt|em4Yok`&@n~3u0rOA5)od<*?5SN=k;ir9^8aONN%Tw5&(u1%-rvhX|Db zumko^@!1x0kru3`#y(z&s`7FMVi&_}AhsaXJiUNG%krFuF)64j^)z4`tU4%-rqAvL z6gLs<{hJP{@P^I1jWVb%9zoZ~I8_~VI3j~}PKp-c;z zi$qkX#j@j6tsr0|VwG#xuaD~V8*4NJiUDpWVYz~TAW4+R0-ivqf>^^4NwI~(suU?F zzMA`fmVTm3MKDT?TY>YiwnJ`*-7XT!4PwI;GCgD5OYSY(aq5s5slP)9GG2v-qcS8D zS(ZU_AtNJ`+&uIlEgI#kWqIzvmoMVy7Tjcw!aI&;<#2$+Y|P)7bzOny5eiOr$Ob1K zF8n??PScJ@JW#!i3BQ-UZ;)CUAhKvRJoMOwI_||XVzdvUE_d+xNRUg(L z`mwQHHpU)(|2lhjA6NIBwQ{!K!Qdv@dhN5QLya`zXDCYrs3Pw!W|9 zNaSrc66{!~%dcJ05a2ab=3#Nt_i5eeuCIC5@0>>%uEQP(5>6CD(}wNnpJjlV11`Cr z9i-G}vteY*ko1FJpC#ZOJZs}&js|&7%OGE&_yB$amKm+Fo!9WmqeqX_$|v+I(Q}^t zxRL_EX1M9|$Lv8X*7nt=*3SwlYpT@_Fz1Xs4Oa5yP%)dC zndhAPmZhCXHzu)RiAJQ@QUbYJe#=I?LzBsG_BGWJaaz4lgaN(TAm^Sr^yu;x!}=BH zl{eQNl*_tc=G(N4_eoslA)!Gi($D$kqT(X?TS!GgrwvRO3>i0ON~OWP!!Pn1=Te0B z5-n(-$YlquBw|FM4tN9z1cfq0n2=FnVA+v`uzsvZM7CdEjC~c2SC4$_GS0^YCFXggHr!5H?F}-@0`PP6|qRRi-OF} zfSfk?J%N#tE*TsvTVT%UEk`m@0l|!=kZ>IZvkV%}k{xpuk!NxkTkiQ zYG{u>ysBF7OclOa+I^iweiXjOPkLSP+5;g_9D# z`RnlTdCWk>j*F;%{YM0^81gdX5BGKu>nOTJANhfsqaPem05RAX&P$LA3PNHiQcz%G zHW-;$3h)QuVmzycJ2WjgeW#WmewwcJrO4LKP6hEo&~N5tktL6^zVXWb_gfw#>7L|2 zqP!^A$YtgNT7XY#c*YUYIR>vBXn+7c3OQ^;ANYxXvBbjv{im7y-~Lhm;Ic>m>gl)M z3v;J`&lWB`b!4e8d1evzw}(^ouQnk?S=3+<|2SBy(9{R7qf#*gnJAD|XAOv+TK8|u z#KtRaRb$=Xyw^AbA=ta7BLT;^+JKj-5JyqNO$C%qqgWX6AL}Ij=ye0W8xO z7#NnI2nO3A0;>MH6XAlerp)o6f3x~X$I)d~MYY&3#$difC5tpw-;5d*phLu>{l`kkC%Pyl{tf{`ca z&Ku_haZ}@FB~$>K$T{H^=DGi$*4T4YH2S}3jni49icHg9qFlohrI4W=2M#O+UO*7J zJ{;yFAIFpP=OGKSG@ASIgJ<8q7!9$%+h>Rg=wQ`wSy`EId+>kv&_PKEFS!cJPiWGL zKRbRy*QW{M96RH>-Yr)Okfo>DBD2A8VRhC^~({Wy8!#ZCz!W)dmg+&P&>gs)^f&33+LW zCr3rw7&5i5>UQ7av0zag^ljG9FF!902*}( zn%qIY@yzee?j~cdtQ}q{W5ngY`6(^g$tv*(F^lCGLR&i=qpr$Hj$`|s|!4g>8Pj77+ZztB*m&qpY{L){s*z)UZ0~YCC>>Tn#Xi`SydJ+G zwq^J{$reN+BxaqY=Vnp~cZ9KEggU_@D)OPB6G1xI}()bZAQ1U0v%=b|leU1)UGjIY2G0{h6mQVJ!34=oalZ zYObQr`P->vg*?c%3SEf|2&52`nIRZk1!oQ`nbw4uy9u%dv2&Vc?Y&wpL^j~1LwJXr z12QuP8INQz9(e4`Tp{qzBr+672rzRWq~TaRUqJJNFp9U9eCgtrRm56CX040g8AV;n zg|V}g_{iyMv&Wz^$QH$<-KI#XfQYI!t5@qntA@Fkv!i16ODu2Q|@xu z`l})6#Ut=neyr^&whQOL2?3l2!(06T!-loszzo!mPjRkDjeh;%vtx4k>a}al51GF( zDzFm2v-E3CkTim{38$)VH5As{-%m&RXq9E#Ebt4cNH2yIkxA`BvwHaaQTSdVl5LXj znOt_Xz$h4~mkCsY&Sfk(j8KW0eg9NJMh=ha2@_+Ff}Y+cglRALEvD>eallMD(@*d3 zkh>NWG~@WUr3df(wVk9yz~zL42Ol@!`Ypk-w7$hYB#*78V+jI6;dnBZH4{@)R+hYp z^9L)k{)}FIR&pX@BH=Ye3=BO5R)rn7AgEjKWSwlwcN)6O7kTgSQ|1@XKA4L!Z4_JL z+UXqrd9K~vTgfKtZR40W@BnttZUAQx)UB#4tj;*xeiw)sB1nk_8kZdTfzUq^j0~w3 zKqDXYGY-Y?Iaj}xLWUz#N2FVmWx}7u@C=XfIuDwbIE>Ztvq^ECsaJ$A> zgkabR4&9Dp7ssh4oL>$3f}?;7GOBs3kRb{XNgonq_`d9W@9e) zEt|rBKN+H{kKIg%(hu!_o4Tc>E%n4Wua8CoCWNj=35TaK62s(B|Acrk6|Jn2IwyrA zS_&j;MKl+8^~m8Qk{#*q&q#@1c8fasNg>GQJbF>m0tux&L0MJ~))t7%@fTOV4h&q! z`_5^bRmUBMNybF;hdY)Fq)s`yEA|K5hhK!&!jf0i)U*zCBRQ&Yr3x9wn=Jeg#8lb0XQx!}e4HH-zD#VJbx=Jn5w*?vNR0=Ao=`VS-PHe8 z73@J7pvGl!b^cfmv`B)!Y#>~Y^##OxS8J2>aUfbidmss>qo}8FLh)82H``&B_?sD< z0_*nm-imkt2UDZ%Edz5ni@M{>pB~*#ly<21NQS1%^ppdn9w)5DXX`~=qiu!I%Yb*W zik?ot;OHoLz8;txI%SuXord`g>b3(69?k9{5!e1oy8%8Ca2JT=OT6s-Hvw+XM_#*4 z614@eBkK1eV-zv~KqE@REw}JzC@VK!mIGlv*qJX$X}I;aIqbr@YIALtCCQrIFnMSpGD3d#>CG%x8dD z_}t0tfxvwVJmgI}t%wA{3^x!Xg$x<>f?15+MG!S$poR;e>eU-IFcxJ7J<0lDGOFBy z3UJ`6de#}f?4~_+uMO_xuIUWJ-Is>yiG+~Dpa2|XceYJi{d3!OYu6HW7twA&f>O<} zOqp`~&Ye0-vmc|pm~#tF5w2V_u$0;!Co}oiuMbxV@upyQgMF4KVlE+ z5cgXeqGco038e@QD}UmV(v+KC3rxp;)>jp)4LbrTg)#U7!m1-N9;sBmeq8R1WTK$` z`x%E->5TsVgDMyrd&T1TBis|6AC=ieQn=eAs3DeZdem5#^-4G!^4G|SC!Vm{)25-S z`to;vV#aY9V!{$ywgAt?N5J8h_LY}@>!pO<5OkIrIR6K47($Y?JPl`S2nDPr7NW*A zJ@f;rS2aLcc>i7%Z4uT0yU@1Dyyj+0P1h&XRV>()X<(=@(p`3@)vUV95{(!>UU7=E zM*~ZU?&i&TOFPe(b1tScH2laO$e!4XL*=+{=vpu`vVVT`W9Ouze#*>?Mh8|o3=Kd# z$F{JT7^4J(O?~h$gHCUZWckqb)RChC2R=}(FmDuQIYuka!|{p+G)3FMV`k*sxs*1H zShZ*T>cHjo!vtPLQ#?Kwp`Z2l(RX$lKM*Z%g_nk!#d)Enjkwkd>@S4(QA!C3h z*n9|0go6`~^!-rskf(`C2l{g|A{;A};sf%J0Tqo8NMs0X?BD;~DJWP9WGEQ&ByM=B zBOpRXNqp{SzMr4p)1_O1oS-&VLdAYdWy|Y=0>ausqN4xdt4hv$);&!SmDj;zNKU## z;-9nG;Oxd!!(N0*WS1s@%p?Qt0I94@rD?y7Esh$OPn0@RsGgEJv~Z~rRXx!p0Upa%S3TK|y~sX# zc=i-glat~AGfD_taeq&8O?Nj$*JP%ZfF1%7-eT%7BYr4^y1D{KEJ0krfKA2-Ydny; zj29wF&3Y+>Ss{->`w&$SRuwa+wE14itdMy~5v2{|tP!Si@k_KTN1oBHW7Z)R<`^dM zgilxhrSbl_@p*tDn>hW(RSDxoBGt*&1qujwBFHWjd(Q61TTORwN<&aA2_G*f#uPl& zN~KqzB9`EmU+Fb~Vz>-&L@?RoS_v8l@X=urf;K@QJv|Y<5IZ)ie`E}}DAhz^mPTWnTpaWVMW@byZ`Xgc z0GDykY=M3UZgM4P#<6yILJwo=Ffl%Z*nU5ttfxGBY;>cW?Gc+s?M|y*Mz8&G9P|Xq zj43?a=Xun~CvFeyA zAB1|MAIipC`lCZ$OpJ`LOwPom9k_GDUr&IC$0sddBpqX`DMf_rK~~;N1^=`F>08io z@c?WghInwtx;#!=Wy01{G;1N6z?ZYsVo`?Gx7egE{uwzt$=Bn;9-A__A(WLlKVp8G zAMX30rTcRPv&lz_uVa2CVdR*7S{)-7bq%TGjWlT%sC&rQVsk^jNi>r0?@u!&l|K3U zuV47zzsKq%K6jlrm-dG3Ivs>#GCSFfbqNi5+2ju*A|luwnb7iteFqHq+SuR!J@2a; zwAI+TrwhF%rl${RXfUHNHETHolnH54*Pze@`&Nt|7R)jVk`jy*BiI*qKz?v61b#%( zOC+&m&^eKPX)^tLxsO%6KJl%QMae?(!3&_KZiP82cMwm$ps>PR421j^fGeb|CrBJ1 zWH$GLu2fQIt{^`TMI_F=ek_04{mROvq!jf3%8pDyEJ!pnxVudz=dnqh*R-JxAqED7 zTfyf?bZcM@nPH{h?@P~%kaQxKWuo`3wmqe-ZHl)*8V-`-j-ea>r?Ib&i>mF`9uSd| zl5R&3L_$ggK?G^(l2?Yd{P!Oa+x{+>B5l}(}LAph0MWh+{*7kYd^PTg1&mU+0 zd&YT&*?Zsjy4SkabzLix{oi+4-3asxh?61eZ*}nrva@+ah7Xs!TGwn0;4|<}Iw3zJ zrK5WcoFZh4!8Uq)!RMIj8}Jv1HNB?O_GMllKnQGi#KT>a)82xQ>+fzcwF4!S){ zkj2A)+oC!6SPGCitk=u;a}YJfR7I@Nd9^009qy zO^C1pARCJVs-$3JIs9J8Y^ebYf#+W5SuXB6hl0%eT<)OlDBr>1VUB9nElAbwz)``1 zhYhRV4M=1N2?oAt;G`XLjeD<5vHnu#k>I+{};vUx{D5rqq=R9f?jM>peB%V-jKpO1*Ga=HM8ws6|e?a4R{UjRP6o6jjzq1++ z1ry@Z0g4)sjQ4;905<<*p2g=CPlW$;StUKvBp5TYc|#7_6w6eL-@f6Xkc8#3QnDH^ zJ`wO{khvhxj1{#IggF=g%&1xx&DsKIP^b(MISWWmx%8@WU(2`yeOc7S{lD0z?5|^csqY(7^{%YqDV z0Y-kze=tL~y;c@*&7oF72E#vxsW{N+1_lKkd=Erkq-=l_a-_5sp)(?yPZV_O=fROc z7S2t8yppDN01O&kU zl~0_3BjJ?v9=oXK>juPCeJkd=KFM;ONlX*mI2s~csD}VZ2!j%QL;z0wzh*aS$KxP` zuz-}v%RCT}(#+r!KO#m^3S`Jnd*IRfOeWMN$isa897k7o^fLEd*?*qjV5u%I^tH?Y zQ-W-^cw6uUr1;QJP;INygpE_nT8$Je(8n?Q;ejA`|6ngbEqI8GX9w}b&Mvg$9Pgr! zpv*xmOLwf7l~q+E0AL4S*Dv3scY#abSR+k^;0bH2aphZcKM#IfF9u3 zfjA-!Uc5Mxw(eJj$);PunF1OVuE0zJuFK`Fq#v096>nY=0y`h^r$DH`NN)@=B}iEK zh#XMQpNByJGJ~firtmjfuPUmjAmb9Y0EiGg%!F)K-xz?QzD6||`~Z^3);GNh@ZiDD zE)*UV2!Ii17-#|{b%5j;$>~rCtcVbjV>VBLK6?)=@TL>9=jP_Ft6E}ZLmH4IT_dz> z!{dVjuQlZaiC}2o-A!p}YQr2_l_yihqxN8;W1lmv3INS~tCgg=nEZN2q5IA@Zq7 z>PQ^nNYC-UC@kEdFs*$FjpnLUO}}Bb(*}uq(kPN7*PejwOJA6(@^nYJ^kn*bV^C8M z02VteQ~5G)P<=8J1nv3eNMrAMX?TwJs101^F(m4(SVf(yGi^7KsXIVIT>uCzDFB>y z;IyqD{B*FtZwgETR0s^b8MYGv`pRWMRQSN599q9at0xfcA49(idFs%iED{*Z0InqB z0R*V*{|6+8tc@ICN(Wp0P5$cRJbf-w0>NL+@9`u?8T4D!WVUln}U z&5ZdAg@nA&*%KE?DXFOeo=_PN<1lm^60L_CFz1K-FSfY*O^@x2K zgdt+9o-$wU>yW)!1?(wE>KC9^w{=|*eJ$v41W^>`z=gwcMJ<|9VZ09Oup#aE^U8yB zOi29zxCX$O*K76knwy*TV z2KqEmuJ;^Xfg%&3M5ZVo{tK*3YisM^DVH98MoaYQvQGnblr(Hu)aPHJf*C3iz(hd! zH$X(S7xbfp5qhXEq){E0tF4ulr@)0M4BX71F1qfZbpLL$h5Lrzd4`t|B%p;Lsi1%l zx%^<6Q*yxOv6oI@bJY!N1ZxW~=-0PXk*D{cHjH&Vi?qB5d0S2ObaH}EPm&Z;^bIx$ z%9|+b*l;9YL-omRbPB|dP=qFLn^tEKclGL3zb(xOZ%F@JdWO5M={k&(rfAavNJ(AUgX_!{M=4HxcEq!B-8mEMk!g#DE&^U)Z4S zI|S{7l@3ih3xtCLbDSBj^Ni|*_Zdbx*rCA*!LzTi1H5?1SeEC-nOC>MI>q`L>J*0h_ZlxPD1!C{YIx=3Ybi3VDefqt_=Jk9BjaG0|gQk|$rfK>-u-x^3BO8agAgmBMzlqsv=%gQfkrLh2J z0PSp8%1OP?bDIAkJvrzZ$f$9n0k+oBGP@@Hc_^i44EY*BD>mIf8=_nL&w#f;)N9 zIAB8v8HfqaK0yf)4+LK{g^!PpHgu6-BMxSO(;y@T1XbFqs{86|Y)|{I>)DtP>bp?~ zIlX>{{Clw{Y$5)O;tsqbZl{>NhTbZum%a{VxPlD;Ql*q8DR2C|7tn1TpqzXS3xL5h zs4|0wk1wOj4(898uFBed`er08Ouu~x%$L3{kL|*Q)w|fU$xw%)t_{4J)cEc^5K_G3 z2JJ(@5fBh?qRgMOxC4@8{Q7UApf6iFY5~~~ zEdLMCqMtEcVu#ujC}k+6wSn*7z6~E7flC;7pE(lM05G?!z4{7zL-3o^rnJZYJIJPO zvsK>K5Bf#5gj)eUj6SAt;-i!ni5aIKuLJktU=x`F9ambklRB(_1BXF@}?xkAqdZ7bKbX3 z_AUBEV<9=}Ml>-9ixTQ}IY_~gPrp7xf*^>9y6$Tg6&00!^Dj8nkprzRvR|fCd??(EK5R>2ipxBj6HiF+z~l-Sn48V0q0Cp zpOzFOIXfa1f}EE)BSw!D2TEtj(h+xC>6@K=2!d}$ON5Ku00b^Z<`aUH7B0JS<_LlT zly32|S1$sE6hS;PgAVPaWn~eEyuVNQ_n0BlNtc!9qcxT$GvohzI>= z;q@1+;Ie8H5~(kx1gvqs2lgd1!pKJl1^JqEdtf0pLb( zM3iR3A_VmMN=H0w#FG#R+K6Q7ax z6dnUJ2p82y7yobI>wO9RG`eumHu)Vn*|Sc!euy&2>px+#e{iFJgFOGsXFU4=c;&)D zHy4{fS=PZUNWaVOh2PVlu^una%4PY#z5l`TKi`iwLLfO>t*A&!DM;&?TE=R^A{i9W z&!#3maD{S`dDZ^?TE;pl=nd$NNqc^IM=@A#jQaPVQ(V{Jpn!~s%N1?U2MqaeDK`i9 z8ln>EVX{z83u-d2cVleiQ9#~&E5)8ex5C1$qo} zCPs>yt68n1b7E;)a3p~NLdg7{Og#b0M3}03_908{lSMn>FK(%!C6J^-Vegku`fOTq zWPJSK(OKLsfj)Pmq4JuMnQ%9F@@Pqo0 zttidNQ^fC0rY=`bN=JmNrK5uk6co*f1@H`&oOE83GZ899;rrEv#0mdgJTjJL_-x@B^Q3#@}k{kTXO zKv|L3-@_Jp?|)*b2-1qQBLBYr^E3YjcK?^pAgA5m*MEHGzt-V@0>u9X>Hc3nGpxhP zg^jjX`V?ua^px)92=!tNVG|cAL{n1Aa30MO6zWG-#YOSy_fi-CUc~UppA|3+JS$NxCSIArmDt2<2W``oZ+@fG4U&O7owjxynVU-{o{NK; z%Seg&<0;Ook4BsGPm)dDyw7lQ(M2zRRpLkedhYj+Wab<}Wrd2X8}%w? z`kvNZlgqBHq_!}Nfa;QUpCK(g_}O(OVEUE{5wfI z?>YH{vkKBUxABOi|McQ{Mm5|D44qpc8kPL$N>39Oa*hYRGhaqOw6Jnr313h0EP={( zV=O9B-FwC_!Ubk7RH?|pvz&~&Dl+;?bHbHPc7ra~twI|W($+MZJt)jD_t9AR6-!iP zl%uDhf8|ElZ4yl-LAsqH(Ojwdtu>Bzt+QUmsK)nm6!QdeII8>I?^!5u;I89oO zc^z35X*rEz?hSWHJUY=OZU_vh@;6^BFP|8($);Pw=2Z~sl`t#iB3ttWkh(r&EO4F0 zTljaw{!H7ok0XKwzd8lvp6S0u$w?2h&W;qJCkw|(Q)%dKx(o;D2r zJile0b}&smRUS*r;I~=2Gzut!vZzaKSxf*kG z`Ya8R_L$Z^eGe?fWrQjy7ZZh0yBjIvc95kR4+eBFbydwA!_lc zG%rkazV#im8f~9fWRE-U7vR&gc8E7f)re&M<>xQqa(ddQ zbM$tXtn-&H4UGle^z(WnC}9)!{_OI3?e`qq?|uY-f7u#!;o;*h#b^=&8D^g=VrI9W z$;J$~Dmh-UpLq1#+01v?B#MUsU-}`{Xz$}+BZ&-sb>?#=^xteZH-oV=p)A*>XGo z*4IQ=nj_DZj9#roebLv9_~eC&neKFHlh;5&(jAA9fg-ywz^Zg~8Clx*h>q#ZSL6Au ze&DvW(pJ%wxT#w!uMS2W9*qhS&|psO+;wK(pb zh`EG+>DtvX#+UJjJ&Ah$ly_AbI!}L>pHpcPBY1M;-G#%8|4jZ(zd!-!Hfr&OSBdbzY~saNvmTlGQKcl3a-v=xQJW( zyG%w@G7Wtl7e@JZ)Sfd5%y;=UX8PIG<6Y2l{1MB%7dy_QC#zk!&q`>z`c%wE3kw2_ z4ir`Yq%UCcemdN1=V%~hyQ^aMqd_NDh>K{R*N=r`@N8xV-DWb|H_F`oZB2Ph<2;S| z+7Vfm%Bb6_XJ8AfnR*z>LI&MQ%U88<3B})A-CKg|9M@~@8Ra<7cM443aZRf{*L+i$ zA?x?>+5O{V$@}TWb)}nDE=Dy?OLNQ3v_d2;w6iScRph5G%hIhE=AH4iMuqGxwY6Au zb3=)-S<&pQUXQ!K4q^uT^lTHH##>FLH+?<)DDq`>L^N}}Qk(?Q1{-}WM)yok+tg;IaRGdem%E-F3Dfes2D0DeX)T{-K z-l{ua+_!#@3VUD1(2)IF{N&QBTOSy6r`}zo<9t@g)04HTnCxNd5>8^gDMYZ?+C}r+ zmG^6xe@;t3DyE&hY1Q3OGi?ul|K`E`#=DoxYvvd#azd5HFE$+Q%nNb&Od*3sGVRR_ zx>q^XvjqZmF6u07{t6m$I91fnYESn`(w2zELobTy6TUvT2a3Ln)=Z$+2PuW zkSk6mo?Yvg@B~e+cE)kWy?``wy3uU-_ zYe_@d{7-SS-XzC~YV?v@A!QZ5lF7%B zKIiU3GS%{-;RG`|dB$0hyVgpGl2o$vLA{dho`jbGX9AkGd*%yuXonj5h9S-~mCzC~ zp_Khjw1#t2#+wmti#QxF&UgM|pPE~;3&|eL=G2Y(ZFs(RWan~d2esksW@vk0 zx%5*J45?3{fil{_`0P%d`*Y*+u;$)c)!eLeQ`CPt^Ayta6PK+kzU-{<;jcBPUAS?H zptRR5e_fR4Md>q>>D8;0AIKKxd1!+mG(or{b%XD~CMjKa@W0OjZ z!&3fxF5OEVqL&Xv4ooGFIh1~1m@EqzHyCyF6S+~~EIZJn(I&aMF3cn###xdzX81~a;;Q6iIvB~H4hVQ$9+REczv9fko zvOa!?=BJ*!%h3VYn7N9U;pOY!y)&XCj<2e}y!w`ens;tdqWW3BuoUZdXknEzf6H1e zq5C2ai_lHNS)-3-Uk*7FWEK-2;3sdYmOaK`Os_Pwe+P4qKlMY$^a`9xoW7D1;A< zU&M*AB-*RhZ(@JM)MOV-Rx06E9!w8nPN(KB3P?>}#U*Js3Ue_oijvfhbLy@{ky1Ts z*-hm%uZSQq$QWq6^2bG_(?~07Z8oE)YV-+EOf#+p1mtc%&Rph`Cycaw+Cd#->2pSU zg1@N!@Jz%EM|d~G<+pD?TlrDH`!kFpxA6?>p^bPXG)1Ypy(MY;^S5kQJN7rH-tO@U zqsKtB3mT&j?8Xm~C)g+rdL7r)Y8vJIRx~3)kmwYDR0{P}^I255oGMyIyJ6&7f8o_l zlHXmXKWc91**Wfre(ds~SEHkg4Qv`8^JKel+E-bYFsJ&2IZ9aSY$Oh?@dj-)bAw_1 zA>&4|gJ=!|gSK$)cZls9t+#2y8jd}&v#O`&PA!+S;-ynt3N6lEZl`sYkUJgsaWdtL_au@)QK~>c-{1%cq2K0 zzd_~msJ-_7=!wvN^C5m}gc!>GP2>;axFVm+AB?$W-qj1zyz0Y{<{$E z9}Q;Sha(-eIu5_qm|L#-F{|lgI)28jpWDOTR1|J_urK&}m~ney$D+|`FGchXIjTNW zwJVUlRavzd0(e71^#kbzvVQOD8ENZ}1sWIkGQWe;%J-tHox;KEorT^K>fx z3e|+T&TeHiyJ}9g=q61%rmS6;Q~0gJ$i?;K3=^N@64}tV!3AcY1k7zq&qbJYNKkEV zI_;k+yY@EVz-&F$AOQ^4)$^sk=Q-Ulv45=KPhui(7Pj6bxb9c31LjciZtk?`H55)oW}mSulXcmu;uD8W?b~Hr@+^hRSlqb{csXBBkUAztCf9gypac{ZJBoTg3 z>?}+bSGhxUCR4%_$BvR)^|@!WAy-AoW-l7Q{?NE?lYgdp%r_pRtfQQNqhaA%P``t( zW2mu7Y<}0rkp~~nSE+nGW1oMEkT=8Wz6NEYy}0#K3pUCU?V_}-)zK-vw~xnR8b&62 zjQN!nb=dcAi5bRwT|q#bCz_u`DfzRv04w1t*Zm!xMT;Vy(@mpo zi;MtriIXw;elFggVu6n%OE00{y`AuRiu*x9H3D63#j`cju6aIG)BNNbU&}@5D$Uqq zY*6_qC6*a2eMN@5!lAwv*+f82X8bs7bhR|0lqgLgePw6Kx8?O26bto{d0s@(NWE2` z<_KY=?rP!(Ir4+Bc(ktxE|>kL;*8co~M z(ogPXFL{l*ytU^d!(^ik+!*Dm9DvMoz2+ zua}$hw32h~k7RMLfuy9++*Rvgeg=WbZi>h9f69Z_lT1>~Osc*0NcPi=_qLNv4XV25 zC#z*34ST&xMX9~iM3wkvbN%6WlUL+Etj&F-=tQY2WRh2s-g4BtWXtQf@ATG4YSv7B zG^5A*TvV!XpAEf+wd49=<6YaUZ>W;!P8RAAJQ7`$kdfoJh1=1jx;~-9MSPdW{0VDi zuVR%<8e%BX+0A`V44J~0SLZ5Ank~1JVWA#ZoRfX*Hydw3(`UcQCuut#&L+7NX!Gh; z#m(hc8~fQ3t|(CpRe79Coal5cLzjf#cq#&8M#iJWlgl4+Dku}yF;*`=WHaQ2X|iK! zTqrHc71%xhQQg_#G)OitZh8I4Zel}Mioh|k7Ft?Fs0)tsEcevj0 z?^{#(Iy{xfaLJp;w|r1n|6!sAr+uQ+IGTKvt6jUqZe00Zal_ATCZ^7+oJ#gbH%7&F zNyik=rn zSNd;>#6NW5*?rq*)W$dT>FfjZOAnv7CzG!{!8cQvKiDS9RQlvRB1(*sXFc(?FqIJd z##W*|JIEqeE*Wkd0i^_8C~;yu=^vlUT8H4>uR>`C#IYr5WC`QMat=i}rm3&qDcjG6 z^HPe8Dze6uS92Tu>E=Z7pitCyYcCR%s2-jYdEYUqVv?n);@uN#Z+jjkJr?20G71BXM`#54siDZ!HxncL-3;wO~#0CGO=;-@o9W4zi_wDUPZj?C7a`%wE zcTy_9MdC5SJ**9kyXU)!Zi}CDMV}=ai9~pPpnlq37KC;n zkabLCYaUjf_I3Y|a-v9%8$5VOF!$)fpRl$rsXEkDriIM+7|^8AVut$vApF z+092BS8Qi=$dh}r{XR~sV&um-^(Ps@Q~bGelm*-0xuRaX(tp`McQ8%p^HKdav337I zSNk;2NJ^rBe-N4JX@nKObkHV=-%kEoP4BKHi|8qhZ-7B?+-Q2LTf=BaDKmBWP^y)i zClBM#0#Y#t|GFYA+0vy+p_l2@R|dJ&3TtG_Z^fvV{$O|-HLYJBdns|0^&4k-U8Xm` z*u2ri_aCGBe^;%N_04p`p1nE!9Zd5p8|=4bI1f5@n$B;H-0e8Nf8bjRS9_u7i79a+ zVZg3*Ud|3r)&)_`y*pLex2pp>kI0@RCJSF9ulBxGpowmr3(d@oIT2?)Hs-1@?rf0S zvk6_x$xx7pieIff(AvXl?CbF!e?k{oYG*@{H2QOQ1Ka9So0tsRN9>a#cb(4CTrs9m z$G(I?%RB0=c-kFO8rw?>MEH^o&)-Di3;Dcg3*$Y_V&o(!m z%ur^a+aYDERjj5nZJtB?b9laY(skz3Z&7cp#ijLw71uCPw`j4!0pr38c{BBEq-Yp7| z1@$$wE8bV);UC<^-Mxs&zWK@~67*O{sok@B%-GB{FMr%d{itj;x}s)k{)-%TaRbHgTTH+F zasM;1bBB*1PdS6QH_*pGTf49ig~w+3G%C`9a+60qSqm5 zz!=UPsrYt#-m68h=djz{ZfJU6EDu|cGB(4qIREd~t|PJ$XqQyUIw7uE@|nk|@rhXl z`8KyOTlXxhfi)a!5+LAlD{iVPU0ID1JD#}$A4J>@>dR(N1<2#O7u-}Crz~&za!s6z zlQ|=LNiD#z{iE7Y&hMtDTQ0|>x2O^_yng9~E#y9U>3c^riZk-!i}!Pv`LRFG@2#Kl z-Tke`!1Ouj(@sb1lBxM86`DEb7_5`QqR)2Oe32|Kz8c>dh>`@aC1#1#-Bv9;5oizYff47Y*(3Stf>*+TxSSn!{zSv!nHk*&8k5w z_6}wG*e>FCoas2FQR#@A;@!Bps41TPsSa}TXY`pd%#Tv4wAI#dJW9*DGS@##$qg35xBAL!J?C8$uFPFc zc<F9aT>=Ybf7^Ip?8v&%Mzo>qkyWXJf$H*<)4hDC|&_O%xGRbt+3%DbH&;_6Bo* z{bvJC7+=o|j~G9^*)`|xEgcP^WEsX!qHHE$80d(0;T1A$(s2;j8mkxI7i__98cCpr zoV~Fx4|$-N`M1W=vq$WYw`shJcWCw)y9ZBhR=I=|G*Nqfz8-&z%3;r3I^S1d=G zgs3vEBa5+}9Dy-meJX-as$GBTR@=3Qd30uNn4`SNIl?W$s$lm1$7K(B06gl9&ygn>aF@SzL9t=}&lA?A24nfz@dT1_N- zRCnG{;nvsEVd47*_4@%~rmcn8?HXAA8MwN`GWQaUu;nU-IjGK=n?J>#cjv>&rJ}C* z0hRA#@4#D_`)CB^;p=<~fZ6f?g`{HcY)l_W_D zE&NukICRsU*8OXeaBH;EC03v5aJQ>UZFj_|*WZ+A`}gf)Ha#BJbWo5RvDNkvx{2hk ztW7nGQJ`i?@mXcLYg5?XAL~rJ_1?Q2+B189j+XV&z0Z;_v>zQaE2@9I_*=TcGNYow zhl6}N?^im@&aS}xVpzVk`XqxWUq zsx|bsi;UQ6co`Mn=<3l?5vbD_XY~93(;2aONlI1~dq?=9x4>nj_x^wCzUN%OY(_>Z zlBr_waJ#Eur%Q|O3}IN&d0Lo%cE5f24+$mvIy>5&F~V8LFf{_{@kd6AGW;L@fO>=~ zjNblu`mgpsawLS|p?(bi^UHE#-?8x1#ZYn~hN19U<%pKG2!C%YX#I-g@85_lI>S~& zi_RTvOpyWE67pi?NSWpWVkQT8k)^QUnN#8a!x5<4me#5KvSKI=o}`Jmp=Qia!v6V+ ziJPHsUR8oiorYG%_(!0P>r)Z_>wnRe%~f|0r2By#f`T;!b)8CjT z8y=mGC|DB`5S(12A@YGQwBX`7Jl&Xlc^+GmB5YpRP#*8F0=1frqM(ww%Ax-f|ClmF zPVII1W!7)grlfepe9cldaJKU9l^>%X=g+1Vh-hioJrm5o zh5Xy=WXIX8V9SP|o9uVqRIJsfH1+p?_10iR{ta-jw3Kn{@9wtmW$*i@1Zt1&C=D48 zDGo^uiJ>pY+tMK)`nBd76S?eU;$-5;?DSLdN`uSzIlRZ*9C$h3z~2dlQjk%Ru8=Z) G`2PT=*&rSO literal 0 HcmV?d00001 diff --git a/images/font-rect.png.import b/images/font-rect.png.import new file mode 100644 index 00000000..cf96881b --- /dev/null +++ b/images/font-rect.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/font-rect.png-890c7bdb16b292867449fd0d1dbb3dd8.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://images/font-rect.png" +dest_files=[ "res://.import/font-rect.png-890c7bdb16b292867449fd0d1dbb3dd8.stex" ] + +[params] + +compress/mode=1 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=0 +flags/filter=true +flags/mipmaps=false +flags/anisotropic=false +flags/srgb=2 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +stream=false +size_limit=0 +detect_3d=true +svg/scale=1.0 diff --git a/images/font-sizes.png b/images/font-sizes.png new file mode 100644 index 0000000000000000000000000000000000000000..90ed9001985043642c9824df606a8e4c5935ec2e GIT binary patch literal 14743 zcmbum2UJsAyDl6+P(eVp0;04nAOZ@~n{)vK(t8JKQlnG}B?t-#2oib+>0P>jA)+FN z-XmZVR62yvLQl90_u1$B_C4qP|Gnc5#vFsSV9hnlnsYwS^FHrOeO*m@+N-o65QrXp z|DGWTM6m#r$#XQooj1#Z4}pspZfa`!U^O-F$374jH&15}=w?!AlEVE@%Iw{CMkRvG z2J$g7PUX5R$ExhjwCd#--Cvk;JP;;D+@J@?#ud$4KHhMwUzz<`T@_iyeJ(8gU7M^x z`~83+y799pnDxVYnV|o^zDjCCEiR$TZDj=+BFNeS({^o8@3u-mtlL!$s*q z*>vhWHnHTFK|e3nXLvZ2ys*HI$CSlJzQDKLGKLvZY=$OVyIXSE=Q+9vi3$vav`bX*h)GatJBjf{4~`#9`pQLlBT zQjaBGc(OcIDuQTHky@3}mWb9bin?6ky#CBc3I>K}N$k#b!S6eYnpIRzjZ-Od}N4?vU=6=Z)9Y| zXuWUB%znH+8`FE^+|6v`k+d4+Lbq&}BNCHS5{q}?FmI>=7b928avPV=kOE46abe*z zFV*PSSTe$vz^a&Emx&_;o}r`wI;EU>i$(jx!}`mXx6*F2#LfFQPThr)4vF18GwT@? zGvx+F&o~oZRl#8Jb(;&I4`AwM+>gh%>dkNMd3}59;MNw|W{ZGY-R0D?ymO^kngUeL zZCW+4`d9`#)8sa$6BW^BP^4jYnUxjxlL&QORs?}`Uw!-bjjP(!BcJ}7l;$BN3!Z($e@Uipl5g|HmWtSG(9 zfBc>M<72^V$|a8^9>)mBZT77lsbAuU1^MVXRnYq%P2}=|af2}JDk+w+F5tcQkV1q| z)%0o8)ryydKD=U^<)SrOFZ5D~SWu_Jvc0ZMNB!Y0UI@H37xu>FTI-XyK(op|Mvf_( zUeg@jr{Sye^TPEky)!B>MF#JDki_#fqs3dCd#`l7(4{!%Vk~(c4Av6Vyp#QYlc_cF zwpB}tH0;&n@lX2IqviWG!5fQESX?0t=$=U?s>2pn`z`o;0L#gjm}wE$WIEznqhqt{ zgguembNIHiZsz2Oi}bzl#Z}7|_n%GdhiADn3{o=@9y_y<76z?$lI?qm8AmG?NJF(+ zL z^G%$UWYScJ5gn3rFpE!Xy0PMWFkhJouYMY5mG>UEgM=tfz$JUgUk8JzqCE6fmqN#` z%w(<%7cMZtM85AL(jYtRjT)YP335tU5%A%9N4KDWK!;aVoJiW36Z|;1c|V)0&(rmZ z+(fO35ZG`tfzad^iefqv0cWE_i*oLsh!U(GjJ32c{M?ljlGRACFQjcD6$dJjx9pY9 zCipHZtM4QhId~A;=l&=$ZR}&YW%wh(bAaUD5{6y*^$Zxpa!(tL&hk#y{Id2<&9lAD zt=}tht2)OKj{K=?GN_tqxBd*+%`4xkYB9CR72X~s-_J$vGu*biV@X~eL{dkrbZAL% zPdxfd4v$)a2Cfj=v`2LJ(U{f$AQfcn_=Vl#S0Z2F%0jd>hj0Gi8rIHHPBMj8L4E~F z+RMh2w8UvcDmD|9!e*tBQ5V)~^IOyMeon~kPG-Ou;Jl&a$pOoDaw5;J9h^-12-3;4 zIMjq!SI`p^4MfU~pgHWNpT=6Fp_r!~EyASxfl9=LfOMvQ{u!mtKalM7R;&3uoJP?! zo3J*e~PL|l7}u+7-0mXnT8H{xW*PgUS&0^Q6y^(eq%Q_N!< zS~_|A8SZ=>2Zz%2V4;$3=JK~2!=6KPGj$(7e&itwZS5y^KspqI3A00??It3PHUm{> zIk7w|=o*(yFGfV&weji~@_iHN-KHDRg=W;sw2Uc(k$!1`CUu7|QFEOE|9#QugQZRL z4A~~%nLf40OQ`t^YF95}8;aN;ed_PMWE>wmuekC}h8d>IsFS@PZb&|irM3TZAqUEu z7^)e%5*?O+vM5d`i>ng`QHuM4n%e>G{=?^pvLY7P&uLj3JERrS4T1T^v%S?pi!s4Y zjjStZ2)SqzqO0_?=q{L}cJgg}w4cSm^@BgAmtO`Cjpinv_-qiexez)Eyizqpsi5{T>ORL_F$EI8|2{>>`p*q1ii$McTs^^#h$rJl+C5w^g7`!?dXvVxBls*od9dp2cU;<(XE_?55O-@tl|!J2_eo7z*1?9p~r3*W1L{E}iP zwjOskN(5{VxgQYFDV}MgGk)niqXMfP(pwKxEUNU$`xIJF!V2#0CFSomqur{r8FK_O zjyA3R*U$!e?tuc5&VvSJc)b7B)!1+PCv%W2i`pZDqD5|E9UJY;H;ysCg=-Sv%fRa_4oAMp%jwr*h}x`%_OyDNh~5F%Y1|VwPY*3ngeo)u8f@uzM5_8n!m__ zT*pB>zJ!#ZKP|bH?2>U|gcM?Qg;Vo7tZS)$`C}wqf5x**OfmRMQO9=9R?KsL@8KT0 zEe3MfHtqpDqT%w;7%OgFexW6-)e2HQRWey)c)3Y>Y<`jd5w?L;B0U(i{cg|ss3oKV zTJ02T{mX21m`(9>6ANtOIhzSM>Rp$rWTI`XvXIjYBvg$7WiS$bg z9#>aV_YyDQ#)YNtZwUcgl}P%0`fAvP2j_Deq*!4kZ8%o;Mlb9l*VkY($dqoE)%#K< ztjxm1vL@%XMF9mVkhsh2hFPxvps8>0Qml1P-qaUWZ*t*St5+6Z%9QuiN@x#E^oPO@ zwi5GXh10zoSv~UpVH|J8q%23mem25|1Cz-v*G!uDIDBghc}=YgUmn6t!{5^#84S+>+&ZkniL2lx~v%84xLHYTaFFs4ZWY$$3^(M)1HE{vg z_>%sBBifHuu$G}5!QAaYY8?if>C!B0ZlgAQyx0l?R&RKRo5-?LJ!)C(7;2u{W6bqR zC5MqL&PK{EkE#(~z&5(qw}{QeVaKiyN`{pMdRVf2 z^p1A+wvczewOeE}ytkUI2so}382CFM0jb5*`>x?1}c6J#76z4G8ivHr>^Q<)% zg7A1ZYUt(Mf)LyGFX76Ntj&_%Z0cX~Wv~X#myazMuj1{b^sGV(qj#FkcF+fBYu|?b zD#DkvoCNJg7jpaW8epipJOx7Zrev{~4)(I*Q(-!Q}!>wmfmpsJ~$bP!EfI*USUIA~i5s#4?Yp)mS$&d2{ zZLF)2Bp<&7ok(R6LNVC6iN@OGM4zg|=Jt`(qyDP=3XeB>9kDfK2w3?24_`IL`@+JW zf8o`cRO46yg9rTQ2L>jbKb&K}9K_tz)90qNQ=gk*W9Kou!J5$FW2|l==9Ux7$ysTh zYSk7NBBhz*zTTtkc#Pp|92gd8;f9-~V*%7Zesa={D$K9hCdIhc1Q4yBrZ%!hAPela(~L zP1h7ENSg~ztMyiO6HU(YDU0+92y=E_K3*AS4`N?~l2w(fQbpb;ESk*KDT^mj-J?wI zo2MP6AE{{SK6l;!SyHT%$2V0o>&Kmg@vUE1ri$=WLPXR@ozyU7mVbxEZNpq2nmu>B zK}&@EVo%JvYus2xOYTv*3Vk$t7iqe~KeZHAA4UElN*|GFzo2qqBST{jI4A#~sM7x( z(>i5Y|6p4GN00x5q&-*qYfM0(JC1;M^WRmVJlB}F0^^qEPq$TkVO>!xb|U3Iep5|S zOib)Tb6;=o8%|<5s|!&~Ts-Ky(-(jl{yQtwSI^ywLnin?fg60fEHzRN21KQ-_lFT5yP?WeNS z+uJKPF3iL8NnhUd5zs(gJB6Y|Tz~(AytNEbs=qkuDOdgX5&TEzV=muF?_<8OC!d*} z96at-Ys{)icuGpk_9*8Nk}ybwCRq*5|7?5B_CK-We`mzuFP22s<_PEJ?c zduVmaDzLPXM5niT7bb(p?GZfywfOprVWdz@JnFPghv$Ej=hGQ+7}R0~mES2zbjX72X!^`&qAbv<{?n7|TAj56DZwbd{? zH{CV7#}}nz#*i0XP%(1?LnP6*ZkD-cUCbQv$FF(6@zW;vfPH-v!V==5649rx3AY!v zT8&~rkesM=pvAUrtvcS1CR&ZMSF5D6eViyjXMELT=!_Y45Hh_*{J@r0M6>Ru$rR}fF%(Z~!_$&FmC@-yrB}&k_h2EWBHHEpr=afMv z3E4$-pct7{GTu;Ubw*+#@9-=vvHpdvkPJR7bU&oM@am?hi|mS@A$M&nubb~P6Q#kh z(?_^7`uftwjVCPc29M)aJR&NaGakLuo&9hU7cqKC+{O2_soO8j+k8rDIS&im{Rnk{ z6fjwErjEUI3ys>$mXH+D(7y4?2-qcM8h{x)xYvdb<=<;3q$ucGD%rowI||lgW`X+Q zb0c3df5nN^$tM;auv%DH{OgNz9`9&~FxwGpr$ldQP2-YiR&P7M&w22l>*Cyk(Q0&{ z?Qpv-B86o!U7A0e=M2zpp_vRuCH;rVrtBQRSg|t%=)x@IWr1A|_-ewxUZltIGLLlS zWIas6ID{yqtg(v}u>ew#S<2-ya3Z6&(bz6#E)jn{GiQFf)2K}MuMuWi8E^8K{(N?> zV$vWifeDz!T5F3$hSV}kP4Fl-T*9HwW~OysX!iC(3?M%(j8#10sQP)$?grTMEsv=q zp+mhh=M}pENIBKsr_H+Sal4utWW8e5o1-?o7@MeA2T&&&E&iL*(r94y@5rH`GxU>H zZf~)akwiJR>cFZlD8zJw)@9Ui{!5Q!gmov7KAN zwAuZ0uXp-;Y=O&dtlAwji8=vO_?!r~FNO-lUgA(`@{8+H_46;Ecs(K`TUnWz-6nso zYc@%uB|N@-qIZUa31Mkffs1pO`sY&{%kIH1Lm0&lK_Ja5-;XX3+dOh2CflQ?&jy@n z5;(AEuD(=eyFd*M9K7U!Ok8-}p~fX*$*VV9ygzqO65M!)mI4GXz9z@N64ha+c%^qc z?)KHriPA+hSFlP2y%Omb*k=NAmFb8rplfaFopqcv^UX&-kLK`HS6+fZ;86_KiC)9_ zxD*mh;vX_}Y1M9q+Mk{348dp2)L3)?eTu6ov`x=dyOST|+M`rT&v#?OOIleZ!IQTm zm*PCgWGa=_B)KBM3Ou^a6;gsf3Bqo);7D(mW`_itv!9bXO?!j;Z(sdVJ}--MCS%OD zvP}`>ycH}~Z=n5s<&b<$+H#_Fljne<*8oufdFSzWm}76hSG*G_=8u6vq$#|qak#pq z?v((#rL!h`p8md6qf=a!#+~$qH@Z|4tq?n^+iG+^H24ALYH5|46|e@fB&henWG_wl zBc^M1Ht@Ltob9?7J^*T?iFlpZ723(p%A&w za0211PGQ@gv)CqL+u1dy1=3Peoy%=BG@=RvsxO*qAhMX>Kb-tb+X=HX-5@1*LDSi) zr6ZXUx(l1xnVA-Rc|(&Vg90o(XTs1=1zMd}DGek?e5VxCuz%xqumMBuEkKi@X#oc4? z)>2rbF5F3*P||JWZM+)wr04rWzI1-Yk%mH5cu87_irdGsr278G)KB!Fm@|!HXR89H zLx>e3K|}2}zic^pwMQgmcL~OY#WGgSEo9o1NRv1k ze)yz)m?>phWT109L&E=;q8AGK;Kiz$#<*}4zGCh3^LrB&Zs@lZ&EuUmItQL$+O?^| zKt)Uim@Abm+fvNiC>C{>kMK-?_bgvNZ#0a{`_kRYI{AjD zZQtf?wUUJ-j){+{=G$m{j_cAJwJp#CTWk6Z|4eSX%l=Kw6K8&f;pQUmcco=Cp-uOW zC{-%LSegyb&{XPBcLpO18w|m<=%0i-R;#LAXh%XkThE*PvhtY^AQE;nL->O*o z2B}==#A^GyYvA@MqiycYxi% zbF6W#p)K_N%Mx&w#k)Z_PE&hI&oc*qmtPS@uj?X^b!&I}4x zq7!PYD&w^*R_=Icvk@;i=*Zmu4Cp!rJ5=W8ccOR*Q;NSso! zBW)Vf7Pa7m?kC}$S)`Z+hX;Qr*scxk@_> zMG%yE>~h!`Dup@v?CW!Op#30^pZGPm+27$(nOrM)w5$$u+s-;`>-a|K4hqRO0J^B& zLJEE#^*yW=EBBg1y`ps~6=l&*D79p26>$h+PQl?PpU((S^r+>JPUH&f@0lYXJ}|7s z6-x(xUO8Iinj|}K^Md=hI@J-m0%8;8CGfT3K>x6J$1WJ3uu%WCy%xD$x`|tI`oYt1 z&x00km&;VjDFRc6jo9{z8kWSTy1zPd%A8iGR-VjstbAW*i)ecYeRmJ3AgyXK1hxq1 zc+m2E_>b(8jrQ&0Ph=_Qah={!@2GXiAHf?b;UYJkYp1K!6TkN^QHS5$?b|={>pRx= z+gswFxQ(jH_`-93!H8+J3;y1x`6T2~AW4KoDVyDzhFV1D`S;Ded|OAB18^Sz{OVQB z*@&g40PYX|6aur8HYadK5{0GA35%)m$mFNTE-o(c&m}j_>+k=9th}LSM3(Z4JV?dd zyA$2>%mQgly_znjO2Pf{wr#zt8DprvO5M=DhIeb4l3((n&4gYJq4)IwI~!N3a|y63 z?fZ7j+wNh`d$sRvyJhViNVxR({PNQpx=>XHM9oG%yUAuX%h!98ZqX%BCHG*d=~lPhOc}y& z+)E`eZ}(PS_tKeg!I;Jh>r{FmsF|a~2apnn(#m`tNq~aH?0+UwFV|O^@R$a4%n@lM zJvKQt2v6n~7OuLR&71CsS^h;!M8@n9iGpr04gfz_%rcJ%OPWKNgr28WM$t zam#R@*gtz!sBrTRYI=4Sudc41)%@;=$!kDzAZzonTBg%zNB;Z@M)u$@Fl<1xr>GXX zezmNixwdfk83%=zR+#DS)z1~_LC>(c+h>6OzxnE1lRMqkQzwbMoIdr%J6+=hksue~ zT^(MNu(nRjIvk;KMzki|E3!%Z>5kI}BC88ZN_pMF>ea;qvrJmw>YvM(O<%gN} z$<@qN;!>C{fDBx|VHgD}$U)N$>ui{?p^t_$A>4q8$fVr zd=AU{w5f|x*f`ofzg?YA&zJ^*SRbBx z0apB{WaA$KAWyd}#d^;gb-Aj$EmX@ZnP|^QJ*EnqS&&|S5o%gPjOsKMEVPKqV~2`% zg;9I0~QjC<;XG_ z9l1StC%l*oV@lu7qb43~^CtLcXOtBgrORM9>;MAl%*ut;@VdDcT4>t|;RHo~qs-@F zE!`%LyuiXOH)u`b6{x#ej<NHR}O3lL?6UU5rW``$w$R> z*)r!Bwqjq^34^y5AR>D$0Ub`_FFLCldF@?JD~oxlqz0dxN;f+!t|jsTt!mL$BF#To zJsiS~km34sl5U)2ZJ#I`D1LK>4-96oYiq?nc@m1cEa$wr>Mg><26}VP;R90^k>;)@ zsRm~vY~h|O1kTz+@|AcKgr-?(_n(WOTiCMP(|pE@vbe3zTHKT7F;gWUWqY2Pri9vV z$oaGt-`0hbc=^6?kR0Buwtr`LH+ndk)0!{f9~>>aqgaNXJ9iXH-;t<&`_QSu$9tt_ z{7Q#dG_J6UM(++wFUL=lI{ZBCeal>%f)5EbCSlyJ&dzM^=}AcrEh<;EQVjWo=t zTQV6T8h4QbTf3k~Rg-|az=h1r%ryCVu(q1tvLpo-1xt<--<%mZ2te{yIBJ&}X4&w9 z554_sDGxM7gq>TpH|wRSdGU%DH-K}#ixA*(C|xLx_gY3YJ?(wvj=8g*F>}1VAnuPV zcV&J%4i~wpv!4PfqYQrpS0GT;;5bs8CVBQSReeKx`iXH>s}-7Ly&Jv_-&Nd3gCQyH zc>na=s&Gla5%e@}J3}--#v(J)MBc0Oa6J9JE2j2I9Rs}NQ5O4AV5Poc&h7H$Uso&E zad2Z}{0(aSz|LX>Zs?d`=9RrES9AsRreE84VYTF%h}j5R?#_mIVXN?oHPsppN3Q+o zysd><|4FCD8Z{qu%M!V9$)%rvW#UhpoevE*TW9z({{qXFpZLHk9y#t!VJ5)&W;%?0 z05`svLIXQUUQqNADgu`Ha63v*@K;~+^fj3sj5fJoXTK5wJ^5kP`@J@3n+0B+iu6p3 zAzi?U)ZY{s+2c7{IxO`vfo$BQFXt+w<50;YkFLolf{mot$I_~MjNgUv@c@;68*(HV z;95sho(>*}S=0#b&+{`wtW8{klf~81opO4kcky;7JYCjI-#yYE>1YHh@S>97g28wR z6lYbzP!T-G&g7%IEl9uQsc%DSda_r!*Klsx`!<5+IN5?{c@VngGl%MPFs1~(Vd--O zEG2*qBz*Kd#C!YqiS@W`q zFBsM7>U5Oqged2^bIdPZIn@bzQ;AFZL6!a~ymOVR1plH zNqKN59o-Yhg1RIjpeSpgGkPojCSXzunlI$sl2?89Ua*H_cTak)ws+Uly0$x;cD$|7 zhzG(|pi+c$F{V&v9&75-OR490ZNJBFQu|jb);rvm{UCQ8<`Ai+b)|eh^3ZTMCL^X&UD1AXYjFKaR1_O#9~u+Te> zZ{;)$Z69fcja8y?MwpqS3X60zVo=$H7-=&qt!ApMrcH64l_uc`@*uPAl@m?)xn`ev zEgOX$m5C*+9cv4uM&-P%?1TBbL|3Jc{yg4VaMC1pnrhwA%agPt)bu$NQ-Cg9+x~G@%X3t4Wv|gN zVk*7SAlTgf5=fsxz6@ENYhtf7!0rwLRqn?F;#lnKzf`e=%-mn6P^0{2GrSu56Wf@A zE$uk2Hv^Zx^YOw}812IzMgwZ^z2{LCrl(epkn?zkkPIm~rhbF!-kK$5qb?yRn@!S6 zYGw0vlNWpWBTy>AceWW^j75od>3t^7d1JOAe$RoYc)`I`qt6imUbwWn@YW2V&RIYA z83_$hdO0mP%UaCDwU?FNz-z1Luw-Jg()L>xBCq*d zHdH8!$x8fe=>!^Lz}z3u;inO=2cMJT6Ngi9$KI6>i=PbcubkP{Ks<&Om1Bm=581bc z7>TcOOtf<*vfdh^pnFNPb$ybM<373I&kF8XqRH)dA*m_brD-+TvKslj(`Jv4uNt{{ z(;bl{00gKN%8zgh&HnP;=wy~4+9J+8GiQ()a?~7*zpo|<#G-u0my4CHA>h#k%BuCH zAaE+z=OT?)fD-R+dM+41g;qjOsVhVQSa`~M1>0@mfX-;PK@yTO7a6oiY<~>C``0=8 zmxd&aD6i*4g=pQ_M&;5w*LYHSf^|%4x*Ii-VhuOSE#qEBt)5{xM&7)sAnGV3avSLJ z8Ba-FxfCAtlC#^rsY3q5;j<=1!7!U|oy|0SPv`HXB6SmR#T7xKmO#L7YZ3POCQbOw zEn=+y3TbKk%=Yq6+r8ZHtDQ!>GH#^sAJBDzf{FRkNOK^Alqok1`F{PbhA`+}MS;9t z@SBkCy0^3opZ>WP#II6-Otj2xQxz6IF{XSgX4X6lZ1~ZUxnp*dx(W24Ss7s^B^AKD zaFetqBkOo;+HMv-J@CS^Js_W@=4Q;-(4R-ZB4FYJ#D=oy5&^&}LOY#k9VV-8IL&7m z2rh+}SV}_PXmn=O!2gJ7`&d$H?i6^%uKbpKPv0pK8WY15p4Y>PKpygQK$sE=NR*NU z=(EoD$1OAr!7A5$L(XiY%2S;tF74%&>_}ne6A@Zs-Kic&_xCT#f(k+|HJ#T};)6VV zB$__YcLP!Hk{&RWUjesi+e*LO$9}0y#>}R~uTw+qnoO!UUFAEdG=ix5ruLnG{C98I zH-c+P-LXm5zt*SjJDRRr^8hsnroOrktj?O&etQMql~N3_8ePD((bYZE6L^mo^#fM7rQC~?(q-NUY2Tditzh#>gVUbwYI z$MN!5K@qQ8SAzK~1cBwiM@mePqJVZ4-PlN(=5!D_iY$#6LAP*)9gFz4oiH3+8XT2O zmm21$lYT+$jKZK5TOepPz*zQL;?Gq9RW?w;Q!_O{l@EQfRZT9np7GAxuKmte80h6u z(tP0*McN1ay=R0mTZGYr9(yW!z4 z%I|PQpq|Xb&Q2~j-Bg^s0iHI!NH%i@1RKIvI%=Oc3SaM^0o{kEoos2|Z2DPM1w%La zcm?a_Ycs$7T+Vwlw9W7IY$Xh2^9Sn3>gXDe9ZG5NfRy`O5hZqXw+agoPhP{}@!e*Y zl{yO0-4x!MLxeu|RTa>XE!Vm+xDGWORmjvzbe5n5@q)*YWEHq^4)mpq9_Je&5v{u} zM=A ztQq+&#a7ytoy}|4Wn>*nb{z5~)fefntLFcaYdZ0uMi_8rP~&g!EXw!l-NwGb6OgBx zeVPz#3U4^XfLoVa}rj4QZV_e!YRwc7T%pE z`omq(HJAQ$+i~+mCq=$wSqr%hOa4cYKT8nhlWv9{k^ZIqPGDV7j1*v-qKmdEn)i|u zA`M3S0j4T{A&@i zOM_#arpEv(GcaujqO-a#4`2^as7=duzg&$3Xk&kXfNru}Q-v_tvNHhLvVQYrEJ<4Y z3=kph#;U4V2_4*~Pn@a-SH($s?i^i}It=w+3Q-VW7{hOEUm7p9h!`D8NEZL{hD04! zgRw3z@z`@4iKV0wJH>|+aCkoyYMwPZgR3e)OfkW{JDl6q@;iyIuiET>F(^DXQ#qmr&KI3f;@~;S2lHOOAdvV1Z7QI4JTJ?K zON%za2e?i^Lz@Rfu6d)`RgbkdPnF! zOSpTbw+J~^3F%=-!r>JwF^b?Bm-n>}|GC{*bh}ztFA_Rz0~JMce}^(10tJBpkcp(F z^`BrUAsTUrD}M&K_kI8e0%?y6z1;Xp5o~yPU?Y1Pc5J)8vpQt~cvO#7mhFtbqs^RmpwcCNJKunkoLtm}J;Lc_-} z=LP<=iyprkCHx>4l%YZnF@;xyCXV}YN>pO56b&5nrlD9w} zKj8d3bkr>T{z8#YuBI~6(kAb-BJH#lyQj3v2+Qq|wSa``Vj$;$&7E~u==p6ibCJ#n zv)At3v9@I;SUQ?j8^h)Vh-q5=o~k(Dz-WjQbLe=xv$|(nlmDf&Xhi3dQ`%f&oAry@ zK9d1HQV_y_(*Ym2Uvk!^PJefsN2c<0R^J?8yl=Ayyh>|buHKR78XbU%SG1A7qC%BN zUDaJe-*1_bcBjo#JxQ57v_ME$uOx!7=zg&0+iVSQ9-N8=KS4Rw3(N|bqSENM+P7t5 zPwN!hZ}B$mnjByU5*2`S0c9D~07_v+%FKNZM(6tC7;od?L8p9-)0<5(wcfnm$GV6!H`?3vG!6P>TOI zi3{N|tSn~EcH@E;bV|36Xg?PS=su%T!UY*oVI*hw&4g^HdE$PD^7ZZwrwJo(WAtZ~ zA81CJ0KgeA5eVagA82i4$N(u(&(-cE;?Z$HQjPMvGvc~6)wdkWwuQW2ye(vY|0aEe zIqSyn)*V$wB-V{=`XIZYw*|{i;uXXGV**e0$=@j!|8AuD&8?G}cDd4f{~Aa^y9*5e z^3qf?oceg8wmIgEcfmV0-nE4RsVzUpE<_Sn00mgD#{8Mk_0<7sbCEXpSFGt(D~eni z9*U=ypVKUjf0#Y~OM=Inj8x$m+kbfp%zg+dn(V~d%A1P{Rj%qtm=jbYiI=fQ9y_P; zQB*R=>EQnD@Az#K5R8pOf(q{T?!U1vVimZW`llnSv-`Q|xyL1;%yTcx`|A=+BBI5mdY%iy|3v0v-@rRRCT-nI2{+~!HK(DAtMP+``g=>Os>`TJ}5ho$A- zh0a~k*uRd(B!{)tdGo@T&~f=t;@>0g_`e&HP83!B}^A=rECt{b$r z8QQSR@`R@U(-Cy=f9eQwD4}~}W@?)D`#2vj;v`;gvUPE}p%?I9`czqN6t-#RW;b&s zL6V2r?%DbOYNn~Y@&9Y$`ftCde+<)qrtAE79Il9BnDZI;FfcT&<{Nk|92jRP(naNwd~RBZ|(m93eLuCqg;y;})I zzq6Paq8(9(#MQWgvtev5Vwp?KAduj*33nop?RCVvY=0G9Wd_lH^5n^1X;brlawm;$ zW2M;%=Ul*YtJRIP2wTW4n=?R071OnAN1sHH$D>N#a7qNo^lk*kCfG&^T;iv?zF{T*FjUytvj zop&6}U`)@;%UdHtksAjg1IJ-Vo{Q%;rUXHt1dh)XaovWG>djlsZ>0?lxNI*GSJA9o ckd6~Zy2{xvD~3mauL^K@sO#RVRke@!U+7S7DF6Tf literal 0 HcmV?d00001 diff --git a/images/font-sizes.png.import b/images/font-sizes.png.import new file mode 100644 index 00000000..c9960f59 --- /dev/null +++ b/images/font-sizes.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/font-sizes.png-5979e2fb93ab7e04e7276bb3d7a9e34d.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://images/font-sizes.png" +dest_files=[ "res://.import/font-sizes.png-5979e2fb93ab7e04e7276bb3d7a9e34d.stex" ] + +[params] + +compress/mode=1 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=0 +flags/filter=true +flags/mipmaps=false +flags/anisotropic=false +flags/srgb=2 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +stream=false +size_limit=0 +detect_3d=true +svg/scale=1.0 diff --git a/scenes/Catapult.tscn b/scenes/Catapult.tscn index 8144212f..4cafc3d9 100644 --- a/scenes/Catapult.tscn +++ b/scenes/Catapult.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=30 format=2] +[gd_scene load_steps=32 format=2] [ext_resource path="res://icons/info.svg" type="Texture" id=1] [ext_resource path="res://icons/download.svg" type="Texture" id=2] @@ -28,6 +28,8 @@ [ext_resource path="res://scenes/InlineIconButton.tscn" type="PackedScene" id=26] [ext_resource path="res://scripts/FontsUI.gd" type="Script" id=27] [ext_resource path="res://scripts/FontManager.gd" type="Script" id=28] +[ext_resource path="res://scenes/FontSizeHelpDialog.tscn" type="PackedScene" id=29] +[ext_resource path="res://icons/help.svg" type="Texture" id=30] [sub_resource type="ButtonGroup" id=1] @@ -122,11 +124,12 @@ margin_bottom = 91.0 ]] margin_top = 97.0 margin_right = 784.0 -margin_bottom = 418.0 +margin_bottom = 682.0 tab_align = 0 script = ExtResource( 16 ) [node name="Game" type="VBoxContainer" parent="Main/Tabs"] +visible = false anchor_right = 1.0 anchor_bottom = 1.0 margin_left = 7.5 @@ -586,7 +589,6 @@ current_dir = "/mnt/data/Godot/Catapult/Project" current_path = "/mnt/data/Godot/Catapult/Project/" [node name="Fonts" type="VBoxContainer" parent="Main/Tabs"] -visible = false anchor_right = 1.0 anchor_bottom = 1.0 margin_left = 7.5 @@ -597,11 +599,11 @@ script = ExtResource( 27 ) [node name="FontSelection" type="HBoxContainer" parent="Main/Tabs/Fonts"] margin_right = 769.0 -margin_bottom = 428.0 +margin_bottom = 432.0 [node name="RightPane" type="VBoxContainer" parent="Main/Tabs/Fonts/FontSelection"] margin_right = 299.0 -margin_bottom = 428.0 +margin_bottom = 432.0 size_flags_horizontal = 3 size_flags_stretch_ratio = 2.0 @@ -623,9 +625,9 @@ items = [ "Item 0", null, false, "Item 1", null, false, "Item 2", null, false, " allow_reselect = true [node name="Buttons" type="VBoxContainer" parent="Main/Tabs/Fonts/FontSelection/RightPane"] -margin_top = 310.0 +margin_top = 312.0 margin_right = 299.0 -margin_bottom = 409.0 +margin_bottom = 411.0 size_flags_vertical = 6 [node name="Grid" type="GridContainer" parent="Main/Tabs/Fonts/FontSelection/RightPane/Buttons"] @@ -670,12 +672,12 @@ text = "Reset All Fonts" [node name="VSeparator" type="VSeparator" parent="Main/Tabs/Fonts/FontSelection"] margin_left = 305.0 margin_right = 313.0 -margin_bottom = 428.0 +margin_bottom = 432.0 [node name="LeftPane" type="VBoxContainer" parent="Main/Tabs/Fonts/FontSelection"] margin_left = 319.0 margin_right = 769.0 -margin_bottom = 428.0 +margin_bottom = 432.0 size_flags_horizontal = 3 size_flags_stretch_ratio = 3.0 custom_constants/separation = 4 @@ -712,19 +714,39 @@ margin_right = 450.0 margin_bottom = 230.0 custom_constants/separation = 0 -[node name="Label2" type="Label" parent="Main/Tabs/Fonts/FontSelection/LeftPane"] -margin_left = 145.0 +[node name="HBoxContainer" type="HBoxContainer" parent="Main/Tabs/Fonts/FontSelection/LeftPane"] margin_top = 234.0 -margin_right = 304.0 -margin_bottom = 263.0 +margin_right = 450.0 +margin_bottom = 234.0 +custom_constants/separation = 0 + +[node name="OtherSettings" type="HBoxContainer" parent="Main/Tabs/Fonts/FontSelection/LeftPane"] +margin_left = 152.0 +margin_top = 238.0 +margin_right = 298.0 +margin_bottom = 267.0 +size_flags_horizontal = 4 +size_flags_vertical = 4 + +[node name="Label" type="Label" parent="Main/Tabs/Fonts/FontSelection/LeftPane/OtherSettings"] +margin_right = 120.0 +margin_bottom = 29.0 size_flags_horizontal = 4 -text = "Other font settings:" +text = "Other settings" align = 1 +[node name="HelpIcon" parent="Main/Tabs/Fonts/FontSelection/LeftPane/OtherSettings" instance=ExtResource( 26 )] +margin_left = 126.0 +margin_top = 4.0 +margin_right = 146.0 +margin_bottom = 24.0 +rect_min_size = Vector2( 20, 20 ) +texture_normal = ExtResource( 30 ) + [node name="FontSizeUI" type="HBoxContainer" parent="Main/Tabs/Fonts/FontSelection/LeftPane"] -margin_top = 267.0 +margin_top = 271.0 margin_right = 450.0 -margin_bottom = 296.0 +margin_bottom = 300.0 size_flags_vertical = 6 [node name="Label" type="Label" parent="Main/Tabs/Fonts/FontSelection/LeftPane/FontSizeUI"] @@ -742,9 +764,9 @@ max_value = 64.0 value = 8.0 [node name="FontSizeMap" type="HBoxContainer" parent="Main/Tabs/Fonts/FontSelection/LeftPane"] -margin_top = 300.0 +margin_top = 304.0 margin_right = 450.0 -margin_bottom = 329.0 +margin_bottom = 333.0 size_flags_vertical = 6 [node name="Label" type="Label" parent="Main/Tabs/Fonts/FontSelection/LeftPane/FontSizeMap"] @@ -762,9 +784,9 @@ max_value = 64.0 value = 8.0 [node name="FontSizeOvermap" type="HBoxContainer" parent="Main/Tabs/Fonts/FontSelection/LeftPane"] -margin_top = 333.0 +margin_top = 337.0 margin_right = 450.0 -margin_bottom = 362.0 +margin_bottom = 366.0 size_flags_vertical = 6 [node name="Label" type="Label" parent="Main/Tabs/Fonts/FontSelection/LeftPane/FontSizeOvermap"] @@ -782,29 +804,29 @@ max_value = 64.0 value = 8.0 [node name="FontBlending" type="CheckButton" parent="Main/Tabs/Fonts/FontSelection/LeftPane"] -margin_top = 366.0 +margin_top = 370.0 margin_right = 450.0 -margin_bottom = 395.0 +margin_bottom = 399.0 text = "Font blending" [node name="BtnSaveFontOptions" type="Button" parent="Main/Tabs/Fonts/FontSelection/LeftPane"] margin_left = 198.0 -margin_top = 399.0 +margin_top = 403.0 margin_right = 251.0 -margin_bottom = 428.0 +margin_bottom = 432.0 size_flags_horizontal = 4 text = "Save" [node name="HSeparator" type="HSeparator" parent="Main/Tabs/Fonts"] -margin_top = 434.0 +margin_top = 438.0 margin_right = 769.0 -margin_bottom = 434.0 +margin_bottom = 438.0 custom_constants/separation = 0 [node name="FontConfigInfo" type="RichTextLabel" parent="Main/Tabs/Fonts"] -margin_top = 440.0 +margin_top = 444.0 margin_right = 769.0 -margin_bottom = 528.0 +margin_bottom = 532.0 custom_fonts/bold_italics_font = ExtResource( 24 ) custom_fonts/italics_font = ExtResource( 23 ) custom_fonts/bold_font = ExtResource( 22 ) @@ -820,6 +842,13 @@ text = "Existing font configuration will be shown here. ..." fit_content_height = true +[node name="FontSizeHelpDialog" parent="Main/Tabs/Fonts" instance=ExtResource( 29 )] +anchor_right = 0.0 +anchor_bottom = 0.0 +margin_top = 538.0 +margin_right = 769.0 +margin_bottom = 539.0 + [node name="Settings" type="VBoxContainer" parent="Main/Tabs"] visible = false anchor_right = 1.0 @@ -1088,7 +1117,7 @@ size_flags_horizontal = 4 text = "Print a random Tip of the Day" [node name="Log" type="RichTextLabel" parent="Main"] -margin_top = 424.0 +margin_top = 688.0 margin_right = 784.0 margin_bottom = 984.0 focus_mode = 2 @@ -1152,12 +1181,15 @@ __meta__ = { [node name="Fonts" type="Node" parent="."] script = ExtResource( 28 ) +__meta__ = { +"_editor_description_": "Installs fonts from launcher's internal storage to the game directory, reads, manipulates and saves font-related settings." +} [connection signal="meta_clicked" from="Main/GameInfo/Description" to="." method="_on_Description_meta_clicked"] -[connection signal="tab_changed" from="Main/Tabs" to="." method="_on_Tabs_tab_changed"] -[connection signal="tab_changed" from="Main/Tabs" to="Main/Tabs/Soundpacks" method="_on_Tabs_tab_changed"] [connection signal="tab_changed" from="Main/Tabs" to="Main/Tabs/Fonts" method="_on_Tabs_tab_changed"] [connection signal="tab_changed" from="Main/Tabs" to="Main/Tabs/Mods" method="_on_Tabs_tab_changed"] +[connection signal="tab_changed" from="Main/Tabs" to="Main/Tabs/Soundpacks" method="_on_Tabs_tab_changed"] +[connection signal="tab_changed" from="Main/Tabs" to="." method="_on_Tabs_tab_changed"] [connection signal="item_selected" from="Main/Tabs/Game/Builds/BuildsList" to="." method="_on_BuildsList_item_selected"] [connection signal="pressed" from="Main/Tabs/Game/Builds/BtnRefresh" to="." method="_on_BtnRefresh_pressed"] [connection signal="pressed" from="Main/Tabs/Game/BtnInstall" to="." method="_on_BtnInstall_pressed"] @@ -1193,6 +1225,7 @@ script = ExtResource( 28 ) [connection signal="pressed" from="Main/Tabs/Fonts/FontSelection/RightPane/Buttons/Grid/BtnSetFontAll" to="Main/Tabs/Fonts" method="_on_BtnSetFontX_pressed" binds= [ true, true, true ]] [connection signal="pressed" from="Main/Tabs/Fonts/FontSelection/RightPane/Buttons/BtnResetFont" to="Main/Tabs/Fonts" method="_on_BtnResetFont_pressed"] [connection signal="toggled" from="Main/Tabs/Fonts/FontSelection/LeftPane/PreviewCyrillic" to="Main/Tabs/Fonts" method="_on_PreviewCyrillic_toggled"] +[connection signal="pressed" from="Main/Tabs/Fonts/FontSelection/LeftPane/OtherSettings/HelpIcon" to="Main/Tabs/Fonts" method="_on_HelpIcon_pressed"] [connection signal="pressed" from="Main/Tabs/Fonts/FontSelection/LeftPane/BtnSaveFontOptions" to="Main/Tabs/Fonts" method="_on_BtnSaveFontOptions_pressed"] [connection signal="toggled" from="Main/Tabs/Settings/ShowGameDesc" to="Main/Tabs/Settings" method="_on_ShowGameDesc_toggled"] [connection signal="toggled" from="Main/Tabs/Settings/PrintTips" to="Main/Tabs/Settings" method="_on_PrintTips_toggled"] diff --git a/scenes/FontSizeHelpDialog.tscn b/scenes/FontSizeHelpDialog.tscn new file mode 100644 index 00000000..9200bf3a --- /dev/null +++ b/scenes/FontSizeHelpDialog.tscn @@ -0,0 +1,96 @@ +[gd_scene load_steps=6 format=2] + +[ext_resource path="res://fonts/OpenSans-Regular.tres" type="DynamicFont" id=1] +[ext_resource path="res://fonts/OpenSans-SemiboldItalic.tres" type="DynamicFont" id=2] +[ext_resource path="res://fonts/OpenSans-Italic.tres" type="DynamicFont" id=3] +[ext_resource path="res://fonts/OpenSans-Semibold.tres" type="DynamicFont" id=4] +[ext_resource path="res://scripts/FontSizeHelpDialog.gd" type="Script" id=5] + +[node name="FontSizeHelpDialog" type="WindowDialog"] +anchor_right = 1.0 +anchor_bottom = 1.0 +script = ExtResource( 5 ) +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="Panel" type="PanelContainer" parent="."] +anchor_right = 1.0 +anchor_bottom = 1.0 +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="Margin" type="MarginContainer" parent="Panel"] +margin_left = 14.0 +margin_top = 14.0 +margin_right = 786.0 +margin_bottom = 986.0 +custom_constants/margin_top = 8 +custom_constants/margin_bottom = 8 + +[node name="VBox" type="VBoxContainer" parent="Panel/Margin"] +margin_top = 8.0 +margin_right = 772.0 +margin_bottom = 964.0 +custom_constants/separation = 16 + +[node name="Help" type="RichTextLabel" parent="Panel/Margin/VBox"] +margin_right = 772.0 +margin_bottom = 919.0 +size_flags_vertical = 3 +custom_fonts/bold_italics_font = ExtResource( 2 ) +custom_fonts/italics_font = ExtResource( 3 ) +custom_fonts/bold_font = ExtResource( 4 ) +custom_fonts/normal_font = ExtResource( 1 ) +bbcode_enabled = true +bbcode_text = "As you've probably already noticed, you can set a separate font for game UI, map and overmap. Additionally, each of these three fonts in Cataclysm has three size parameters that define how it is drawn. They can be set in the game under [i]Settings > Graphics > Font Settings[/i]. + +IMG_1 + +[b]Font Height[/b] and [b]Font Width[/b] define the pixel size of the rectangle the game reserves for each character. If this rectangle is too small, the letters will be clipped. If it is too large, they will be far apart and appear undersized. + +IMG_2 + +[b]Font Size[/b] is the actual size at which font glyphs will always be rendered, whether they fit into reserved space or not. + +For the default Cataclysm fonts, [i]Terminus[/i] and [i]Unifont[/i], these values have a very simple relationship: Font Height should be the same as Font Size, and Font Width should be half that for UI, and equal to Height for everything else (so that tiles are square). + +These ratios also work for many 3rd party fonts one may decide to use, but for some fonts a bit of tinkering is required to figure out a good-looking combination of font height, width and size. + +Fortunately, Catapult already knows good size ratios for the fonts it offers, so you only need to specify the desired [b]Font Size[/b], and it will calculate and apply the other two values automatically. They are also applied when you set a custom font in the left pane without changing the size. + +It is also recommended to turn on [b]Font Blending[/b] for smoother font rendering. + + +" +text = "As you've probably already noticed, you can set a separate font for game UI, map and overmap. Additionally, each of these three fonts in Cataclysm has three size parameters that define how it is drawn. They can be set in the game under Settings > Graphics > Font Settings. + +IMG_1 + +Font Height and Font Width define the pixel size of the rectangle the game reserves for each character. If this rectangle is too small, the letters will be clipped. If it is too large, they will be far apart and appear undersized. + +IMG_2 + +Font Size is the actual size at which font glyphs will always be rendered, whether they fit into reserved space or not. + +For the default Cataclysm fonts, Terminus and Unifont, these values have a very simple relationship: Font Height should be the same as Font Size, and Font Width should be half that for UI, and equal to Height for everything else (so that tiles are square). + +These ratios also work for many 3rd party fonts one may decide to use, but for some fonts a bit of tinkering is required to figure out a good-looking combination of font height, width and size. + +Fortunately, Catapult already knows good size ratios for the fonts it offers, so you only need to specify the desired Font Size, and it will calculate and apply the other two values automatically. They are also applied when you set a custom font in the left pane without changing the size. + +It is also recommended to turn on Font Blending for smoother font rendering. + + +" + +[node name="BtnOK" type="Button" parent="Panel/Margin/VBox"] +margin_left = 345.0 +margin_top = 935.0 +margin_right = 427.0 +margin_bottom = 972.0 +size_flags_horizontal = 4 +text = "Close" + +[connection signal="pressed" from="Panel/Margin/VBox/BtnOK" to="." method="_on_BtnOK_pressed"] diff --git a/scenes/ModReinstallDialog.tscn b/scenes/ModReinstallDialog.tscn index 1039adbf..d7f72c9e 100644 --- a/scenes/ModReinstallDialog.tscn +++ b/scenes/ModReinstallDialog.tscn @@ -3,7 +3,6 @@ [ext_resource path="res://scripts/ModReinstallDialog.gd" type="Script" id=1] [node name="ModReinstallDialog" type="WindowDialog"] -visible = true anchor_right = 1.0 anchor_bottom = 0.268 size_flags_horizontal = 3 diff --git a/scripts/FontSizeHelpDialog.gd b/scripts/FontSizeHelpDialog.gd new file mode 100644 index 00000000..8fad92c2 --- /dev/null +++ b/scripts/FontSizeHelpDialog.gd @@ -0,0 +1,38 @@ +extends WindowDialog + + +const _IMG1_RES := "res://images/font-sizes.png" +const _IMG2_RES := "res://images/font-rect.png" + +const _IMG1_SZ := 200 +const _IMG2_SZ := 450 + +var _text := "" + +onready var _geom := $"/root/WindowGeometry" +onready var _label := $Panel/Margin/VBox/Help + + +func _ready() -> void: + + _text = _label.bbcode_text + + +func open() -> void: + + var text := _text + var img1_size := int(_IMG1_SZ * _geom.scale) + var img2_size := int(_IMG2_SZ * _geom.scale) + text = text.replace("IMG_1", "[img=%s]%s[/img]" % [img1_size, _IMG1_RES]) + text = text.replace("IMG_2", "[img=%s]%s[/img]" % [img2_size, _IMG2_RES]) + _label.bbcode_text = text + _label.scroll_to_line(0) +# + rect_min_size = get_tree().root.size * Vector2(0.9, 0.9) + set_as_minsize() + popup_centered() + + +func _on_BtnOK_pressed() -> void: + + hide() diff --git a/scripts/FontsUI.gd b/scripts/FontsUI.gd index df205500..72c88b0d 100644 --- a/scripts/FontsUI.gd +++ b/scripts/FontsUI.gd @@ -69,6 +69,7 @@ onready var _sb_font_ui := $FontSelection/LeftPane/FontSizeUI/sbFontSizeUI onready var _sb_font_map := $FontSelection/LeftPane/FontSizeMap/sbFontSizeMap onready var _sb_font_om := $FontSelection/LeftPane/FontSizeOvermap/sbFontSizeOM onready var _cbtn_blending := $FontSelection/LeftPane/FontBlending +onready var _help_dlg := $FontSizeHelpDialog func _make_preview_string(cyrillic: bool = false) -> String: @@ -200,3 +201,8 @@ func _on_BtnSaveFontOptions_pressed() -> void: _fonts.set_game_option("FONT_BLENDING", str(_cbtn_blending.pressed)) _fonts.write_game_options() + + +func _on_HelpIcon_pressed() -> void: + + _help_dlg.open()